2
#ifndef __CAIRO_DOCK_FACTORY__
3
#define __CAIRO_DOCK_FACTORY__
7
#include "cairo-dock-struct.h"
11
* Teste si le container est un dock.
12
* @param pContainer le container.
13
* @return TRUE ssi le container a ete declare comme un dock.
15
#define CAIRO_DOCK_IS_DOCK(pContainer) (pContainer != NULL && (pContainer)->iType == CAIRO_DOCK_TYPE_DOCK)
17
* Caste un container en dock.
18
* @param pContainer le container.
21
#define CAIRO_DOCK(pContainer) ((CairoDock *)pContainer)
24
* Retourne le zoom max des icones contenues dans un conteneur donne.
25
* @param pContainer le container.
26
* @return le facteur d'echelle max.
28
#define cairo_dock_get_max_scale(pContainer) (CAIRO_DOCK_IS_DOCK (pContainer) ? (1 + g_fAmplitude) : 1)
31
* Cree un nouveau dock principal.
32
* @param iWmHint indicateur du type de fenetre pour le WM.
33
* @param cDockName nom du dock, qui pourra etre utilise pour retrouver celui-ci rapidement.
34
* @param cRendererName nom de la fonction de rendu a applisuer au dock. si NULL, le rendu par defaut sera applique.
35
* @return le dock nouvellement alloué, a detruire avec #cairo_dock_destroy_dock
37
CairoDock *cairo_dock_create_new_dock (GdkWindowTypeHint iWmHint, gchar *cDockName, gchar *cRendererName);
39
* Desactive un dock : le rend inoperant, en detruisant tout ce qu'il contient, sauf sa liste d'icones.
40
* @param pDock le dock.
42
void cairo_dock_deactivate_one_dock (CairoDock *pDock);
44
* Detruit un dock et tout ce qu'il contient, y compris ses icones et lui-meme.
45
* @param pDock le dock.
47
void cairo_dock_free_dock (CairoDock *pDock);
49
* Diminue le nombre d'icones pointant sur un dock de 1. Si aucune icone ne pointe plus sur lui apres ca, le detruit ainsi que tous ses sous-docks, et libere la memoire qui lui etait allouee. Ne fais rien pour le dock principal, utiliser #cairo_dock_free_all_docks pour cela.
50
* @param pDock le dock a detruire.
51
* @param cDockName son nom.
52
* @param ReceivingDock un dock qui recuperera les icones, ou NULL pour detruire toutes les icones contenues dans le dock.
53
* @param cReceivingDockName le nom du dock qui recuperera les icones, ou NULL si aucun n'est fourni.
55
void cairo_dock_destroy_dock (CairoDock *pDock, const gchar *cDockName, CairoDock *ReceivingDock, gchar *cReceivingDockName);
58
* Recharge les reflets d'un dock. Utile si le dock a changé de position.
59
* @param pDock un dock.
61
void cairo_dock_reload_reflects_in_dock (CairoDock *pDock);
64
* Incremente de 1 la reference d'un dock, c'est-a-dire le nombre d'icones pointant sur ce dock. Si le dock etait auparavant un dock principal, il devient un sous-dock, prenant du meme coup les parametres propres aux sous-docks.
65
* @param pDock un dock.
66
* @param pParentDock son dock parent, si sa reference passse a 1, sinon peu etre NULL.
68
void cairo_dock_reference_dock (CairoDock *pDock, CairoDock *pParentDock);
71
* Cree un nouveau dock de type "sous-dock", et y insere la liste des icones fournie. La liste est appropriee par le dock, et ne doit donc _pas_ etre liberee apres cela. Chaque icone est chargee, et a donc juste besoin d'avoir un nom et un fichier d'image.
72
* @param pIconList une liste d'icones qui seront entierement chargees et inserees dans le dock.
73
* @param cDockName le nom desire pour le dock.
74
* @param iWindowTypeHint indicateur du type de fenetre pour le WM.
75
* @param pParentDock le dock parent du sous-dock cree.
76
* @return le dock nouvellement alloue.
78
CairoDock *cairo_dock_create_subdock_from_scratch_with_type (GList *pIconList, gchar *cDockName, GdkWindowTypeHint iWindowTypeHint, CairoDock *pParentDock);
79
#define cairo_dock_create_subdock_from_scratch(pIconList, cDockName, pParentDock) cairo_dock_create_subdock_from_scratch_with_type (pIconList, cDockName, GDK_WINDOW_TYPE_HINT_DOCK, pParentDock)
80
#define cairo_dock_create_subdock_for_class_appli(cClassName, pParentDock) cairo_dock_create_subdock_from_scratch_with_type (NULL, cClassName, GDK_WINDOW_TYPE_HINT_DOCK, pParentDock)
83
* Charge un ensemble de fichiers .desktop definissant des icones, et construit l'arborescence des docks.
84
* Toutes les icones sont creees et placees dans leur conteneur repectif, qui est cree si necessaire. Cette fonction peut tres bien s'utiliser pour
85
* A la fin du processus, chaque dock est calcule, et place a la position qui lui est assignee.
86
* Il faut fournir un dock pour avoir ujn contexte de dessin, car les icones sont crees avant leur conteneur.
87
* @param pMainDock un dock quelconque.
88
* @param cDirectory le repertoire contenant les fichiers .desktop.
90
void cairo_dock_build_docks_tree_with_desktop_files (CairoDock *pMainDock, gchar *cDirectory);
93
* Detruit tous les docks et toutes les icones contenues dedans, et libere la memoire qui leur etait allouee. Les applets sont stoppees au prealable, ainsi que la barre des taches.
95
void cairo_dock_free_all_docks (void);
100
* Recalcule la taille maximale du dock, si par exemple une icone a ete enlevee/rajoutee. Met a jour la taille des decorations si necessaire et adapte a la taille max imposee.
101
* Le dock est deplace de maniere a rester centre sur la meme position, et les coordonnees des icones des applis sont recalculees et renvoyees au WM.
102
* @param pDock le dock.
104
void cairo_dock_update_dock_size (CairoDock *pDock);
107
* Insere une icone dans le dock, a la position indiquee par le champ /a fOrder.
108
* Insere un separateur si necessaire, et reserve l'espace correspondant aux nouvelles dimensions du dock si necessaire.
109
* @param icon l'icone a inserer.
110
* @param pDock le dock dans lequel l'inserer.
111
* @param bUpdateSize TRUE pour recalculer la taille du dock apres insertion.
112
* @param bAnimated TRUE pour regler la taille de l'icone au minimum de facon a la faire grossir apres.
113
* @param bApplyRatio TRUE pour appliquer le facteur de taille propre au sous-dock.
114
* @param bInsertSeparator TRUE pour inserer un separateur si necessaire.
115
* @param GCompareFunc la fonction de comparaison
117
void cairo_dock_insert_icon_in_dock_full (Icon *icon, CairoDock *pDock, gboolean bUpdateSize, gboolean bAnimated, gboolean bApplyRatio, gboolean bInsertSeparator, GCompareFunc pCompareFunc);
119
#define cairo_dock_insert_icon_in_dock(icon, pDock, bUpdateSize, bAnimated, bApplyRatio, bInsertSeparator) cairo_dock_insert_icon_in_dock_full (icon, pDock, bUpdateSize, bAnimated, bApplyRatio, bInsertSeparator, NULL)
124
* Demande au WM d'empecher les autres fenetres d'empieter sur l'espace du dock.
125
* L'espace reserve est pris sur la taille minimale du dock, c'est-a-dire la taille de la zone de rappel si l'auto-hide est active,
126
* ou la taille du dock au repos sinon.
127
* @param pDock le dock.
128
* @param bReserve TRUE pour reserver l'espace, FALSE pour annuler la reservation.
130
void cairo_dock_reserve_space_for_dock (CairoDock *pDock, gboolean bReserve);
133
* Met un dock principal a sa taille et a sa place initiale.
134
* @param pDock le dock.
136
void cairo_dock_place_root_dock (CairoDock *pDock);
138
* Borne la position d'un dock a l'interieur de l'ecran.
139
* @param pDock le dock.
141
void cairo_dock_prevent_dock_from_out_of_screen (CairoDock *pDock);
144
* Autorise un widget a accepter les glisse-deposes.
145
* @param pWidget un widget.
146
* @param pCallBack la fonction qui sera appelee lors d'une reception de donnee.
147
* @param data donnees passees en entree de la callback.
149
void cairo_dock_allow_widget_to_receive_data (GtkWidget *pWidget, GCallback pCallBack, gpointer data);
151
* Dis si une chaine est une addresse (file://xxx, http://xxx, ftp://xxx, etc).
152
* @param cString une chaine de caracteres.
154
gboolean cairo_dock_string_is_adress (const gchar *cString);
157
void cairo_dock_notify_drop_data (gchar *cReceivedData, Icon *pPointedIcon, double fOrder, CairoContainer *pContainer);