~cairo-dock-team/ubuntu/oneiric/cairo-dock/2.3.0-3

« back to all changes in this revision

Viewing changes to src/gldit/cairo-dock-class-manager.h

  • Committer: Bazaar Package Importer
  • Author(s): Matthieu Baerts (matttbe)
  • Date: 2010-08-09 23:26:12 UTC
  • mto: This revision was merged to the branch mainline in revision 13.
  • Revision ID: james.westby@ubuntu.com-20100809232612-pocdxliaxjdetm37
Tags: upstream-2.2.0~0beta4
Import upstream version 2.2.0~0beta4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
* This file is a part of the Cairo-Dock project
 
3
*
 
4
* Copyright : (C) see the 'copyright' file.
 
5
* E-mail    : see the 'copyright' file.
 
6
*
 
7
* This program is free software; you can redistribute it and/or
 
8
* modify it under the terms of the GNU General Public License
 
9
* as published by the Free Software Foundation; either version 3
 
10
* of the License, or (at your option) any later version.
 
11
*
 
12
* This program is distributed in the hope that it will be useful,
 
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
* GNU General Public License for more details.
 
16
* You should have received a copy of the GNU General Public License
 
17
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
18
*/
 
19
 
 
20
 
 
21
#ifndef __CAIRO_DOCK_CLASS_MANAGER__
 
22
#define  __CAIRO_DOCK_CLASS_MANAGER__
 
23
 
 
24
#include <X11/Xlib.h>
 
25
 
 
26
#include "cairo-dock-struct.h"
 
27
G_BEGIN_DECLS
 
28
 
 
29
/**
 
30
*@file cairo-dock-class-manager.h This class handles the managment of the applications classes.
 
31
* Classes are used to group the windows of a same program, and to bind a launcher to the launched application.
 
32
*/
 
33
 
 
34
/// Definition of a Class of application.
 
35
struct _CairoDockClassAppli {
 
36
        /// TRUE if the appli must use the icon provided by X instead the one from the theme.
 
37
        gboolean bUseXIcon;
 
38
        /// TRUE if the appli doesn't group togather with its class.
 
39
        gboolean bExpand;
 
40
        /// List of the inhibators of the class.
 
41
        GList *pIconsOfClass;
 
42
        /// List of the appli icons of this class.
 
43
        GList *pAppliOfClass;
 
44
};
 
45
 
 
46
/*
 
47
* Initialise le gestionnaire de classes. Ne fait rien la 2eme fois.
 
48
*/
 
49
void cairo_dock_initialize_class_manager (void);
 
50
 
 
51
/*
 
52
* Libere une classe d'appli, en enlevant au passage tous les indicateurs des inhibiteurs de cette classe.
 
53
* @param pClassAppli la classe d'appli.
 
54
*/
 
55
void cairo_dock_free_class_appli (CairoDockClassAppli *pClassAppli);
 
56
/*
 
57
* Fournit la liste de toutes les applis connues du dock appartenant a cette classe.
 
58
* @param cClass la classe.
 
59
* @return la liste des applis de cettte classe.
 
60
*/
 
61
const GList *cairo_dock_list_existing_appli_with_class (const gchar *cClass);
 
62
 
 
63
/*
 
64
* Enregistre une icone de lanceur/applet dans sa classe. N'inhinibe pas la classe.
 
65
* @param pIcon l'inhibiteur.
 
66
* @return TRUE si l'enregistrement s'est effectue correctement ou si l'icone etait deja enregistree, FALSE sinon.
 
67
*/
 
68
gboolean cairo_dock_add_inhibator_to_class (const gchar *cClass, Icon *pIcon);
 
69
/*
 
70
* Enregistre une icone d'appli dans sa classe. Ne fais rien aux inhibiteurs.
 
71
* @param pIcon l'icone de l'appli.
 
72
* @return TRUE si l'enregistrement s'est effectue correctement ou si l'appli etait deja enregistree, FALSE sinon.
 
73
*/
 
74
gboolean cairo_dock_add_appli_to_class (Icon *pIcon);
 
75
/*
 
76
* Desenregistre une icone d'appli de sa classe. Ne fais rien aux inhibiteurs.
 
77
* @param pIcon l'icone de l'appli.
 
78
* @return TRUE si le desenregistrement s'est effectue correctement ou si elle n'etait pas enregistree, FALSE sinon.
 
79
*/
 
80
gboolean cairo_dock_remove_appli_from_class (Icon *pIcon);
 
81
/*
 
82
* Force les applis d'une classe a utiliser ou non les icones fournies par X. Dans le cas ou elles ne les utilisent pas, elle utiliseront les memes icones que leur lanceur correspondant s'il existe. Recharge leur buffer en consequence, mais ne force pas le redessin.
 
83
* @param cClass la classe.
 
84
* @param bUseXIcon TRUE pour utiliser l'icone fournie par X, FALSE sinon.
 
85
* @return TRUE si l'etat a change, FALSE sinon.
 
86
*/
 
87
gboolean cairo_dock_set_class_use_xicon (const gchar *cClass, gboolean bUseXIcon);
 
88
/*
 
89
* Ajoute un inhibiteur a une classe, et lui fait prendre immediatement le controle de la 1ere appli de cette classe trouvee, la detachant du dock. Rajoute l'indicateur si necessaire, et redessine le dock d'ou l'appli a ete enlevee, mais ne redessine pas l'icone inhibitrice.
 
90
* @param cClass la classe.
 
91
* @param pInhibatorIcon l'inhibiteur.
 
92
* @return TRUE si l'inhibiteur a bien ete rajoute a la classe.
 
93
*/
 
94
gboolean cairo_dock_inhibate_class (const gchar *cClass, Icon *pInhibatorIcon);
 
95
 
 
96
/*
 
97
* Dis si une classe donnee est inhibee par un inhibiteur, libre ou non.
 
98
* @param cClass la classe.
 
99
* @return TRUE ssi les applis de cette classe sont inhibees.
 
100
*/
 
101
gboolean cairo_dock_class_is_inhibated (const gchar *cClass);
 
102
/*
 
103
* Dis si une classe donnee utilise les icones fournies par X.
 
104
* @param cClass la classe.
 
105
* @return TRUE ssi les applis de cette classe utilisent les icones de X.
 
106
*/
 
107
gboolean cairo_dock_class_is_using_xicon (const gchar *cClass);
 
108
/*
 
109
* Dis si une classe donnee peut etre groupee en sous-dock ou non.
 
110
* @param cClass la classe.
 
111
* @return TRUE ssi les applis de cette classe ne sont pas groupees.
 
112
*/
 
113
gboolean cairo_dock_class_is_expanded (const gchar *cClass);
 
114
 
 
115
/*
 
116
* Dis si une appli doit etre inhibee ou pas. Si un inhibiteur libre a ete trouve, il en prendra le controle, et TRUE sera renvoye. Un indicateur lui sera rajoute (ainsi qu'a l'icone du sous-dock si necessaire), et la geometrie de l'icone pour le WM lui est mise, mais il ne sera pas redessine. Dans le cas contraire, FALSE sera renvoye, et l'appli pourra etre inseree dans le dock.
 
117
* @param pIcon l'icone d'appli.
 
118
* @return TRUE si l'appli a ete inhibee.
 
119
*/
 
120
gboolean cairo_dock_prevent_inhibated_class (Icon *pIcon);
 
121
 
 
122
/*
 
123
* Enleve un inhibiteur de la classe donnee.
 
124
* @param pInhibatorIcon l'icone inhibitrice.
 
125
* @return TRUE ssi la classe est encore inhibee après l'enlèvement, FALSE sinon.
 
126
*/
 
127
gboolean cairo_dock_remove_icon_from_class (Icon *pInhibatorIcon);
 
128
/*
 
129
* Empeche une icone d'inhiber sa classe; l'icone est enlevee de sa classe, son controle sur une appli est desactive, sa classe remise a 0, et l'appli controlee est inseree dans le dock.
 
130
* @param cClass la classe.
 
131
* @param pInhibatorIcon l'icone inhibitrice.
 
132
*/
 
133
void cairo_dock_deinhibate_class (const gchar *cClass, Icon *pInhibatorIcon);
 
134
/*
 
135
* Met a jour les inhibiteurs controlant une appli donnee pour leur en faire controler une autre.
 
136
* @param Xid l'ID de l'appli.
 
137
* @param cClass sa classe.
 
138
*/
 
139
void cairo_dock_update_Xid_on_inhibators (Window Xid, const gchar *cClass);
 
140
/*
 
141
* Enleve toutes les applis de toutes les classes, et met a jour les inhibiteurs.
 
142
*/
 
143
void cairo_dock_remove_all_applis_from_class_table (void);
 
144
/*
 
145
* Detruit toutes les classes, enlevant tous les inhibiteurs et toutes les applis de toutes les classes.
 
146
*/
 
147
void cairo_dock_reset_class_table (void);
 
148
 
 
149
 
 
150
cairo_surface_t *cairo_dock_duplicate_inhibator_surface_for_appli (Icon *pInhibatorIcon, int iWidth, int ifHeight);
 
151
/*
 
152
* Cree la surface d'une appli en utilisant le lanceur correspondant, si la classe n'utilise pas les icones X.
 
153
* @param cClass la classe.
 
154
* @param pSourceContext un contexte de dessin, ne sera pas altere.
 
155
* @param fMaxScale zoom max.
 
156
* @param fWidth largeur de la surface, renseignee.
 
157
* @param fHeight hauteur de la surface, renseignee.
 
158
* @return la surface nouvellement creee, ou NULL si aucun lanceur n'a pu etre trouve ou si l'on veut explicitement les icones X pour cette classe.
 
159
*/
 
160
cairo_surface_t *cairo_dock_create_surface_from_class (const gchar *cClass, int iWidth, int ifHeight);
 
161
 
 
162
/*
 
163
* Met a jour les inhibiteurs controlant une appli donnee pour les faire reagir au changement de visibilite de la fenetre, de la meme maniere que si l'icone etait dans la barre des taches.
 
164
* @param cClass la classe.
 
165
* @param Xid l'ID de l'appli.
 
166
* @param bIsHidden TRUE ssi a fenetre vient de se cacher.
 
167
*/
 
168
void cairo_dock_update_visibility_on_inhibators (const gchar *cClass, Window Xid, gboolean bIsHidden);
 
169
/*
 
170
* Met a jour les inhibiteurs controlant une appli donnee pour les faire reagir a la prise d'activite de la fenetre, de la meme maniere que si l'icone etait dans la barre des taches.
 
171
* @param cClass la classe.
 
172
* @param Xid l'ID de l'appli.
 
173
*/
 
174
void cairo_dock_update_activity_on_inhibators (const gchar *cClass, Window Xid);
 
175
/*
 
176
* Met a jour les inhibiteurs controlant une appli donnee pour les redessiner en mode normal lors de la perte d'activite de la fenetre.
 
177
* @param cClass la classe.
 
178
* @param Xid l'ID de l'appli.
 
179
*/
 
180
void cairo_dock_update_inactivity_on_inhibators (const gchar *cClass, Window Xid);
 
181
 
 
182
void cairo_dock_update_name_on_inhibators (const gchar *cClass, Window Xid, gchar *cNewName);
 
183
 
 
184
Icon *cairo_dock_get_classmate (Icon *pIcon);
 
185
 
 
186
gboolean cairo_dock_check_class_subdock_is_empty (CairoDock *pDock, const gchar *cClass);
 
187
 
 
188
 
 
189
void cairo_dock_set_overwrite_exceptions (const gchar *cExceptions);
 
190
 
 
191
void cairo_dock_set_group_exceptions (const gchar *cExceptions);
 
192
 
 
193
 
 
194
Icon *cairo_dock_get_prev_next_classmate_icon (Icon *pIcon, gboolean bNext);
 
195
 
 
196
Icon *cairo_dock_get_inhibator (Icon *pIcon, gboolean bOnlyInDock);
 
197
 
 
198
 
 
199
void cairo_dock_reorder_classes (void);
 
200
 
 
201
void cairo_dock_set_class_order (Icon *pIcon);
 
202
 
 
203
 
 
204
G_END_DECLS
 
205
#endif