Référence du fichier /opt/cairo-dock/trunk/cairo-dock/src/cairo-dock-applet-facility.h

Aller au code source de ce fichier.

Structures de données

struct  CairoDockMeasure

Macros

#define cairo_dock_set_icon_surface(pIconContext, pSurface)   cairo_dock_set_icon_surface_full (pIconContext, pSurface, 1, 1, NULL, NULL)
#define cairo_dock_remove_quick_info(pIcon)   cairo_dock_set_quick_info (NULL, NULL, pIcon, 1)
#define CD_APPLET_H
#define CD_APPLET_PRE_INIT_BEGIN(cName, iMajorVersion, iMinorVersion, iMicroVersion, iAppletCategory)
#define CD_APPLET_PRE_INIT_END
#define CD_APPLET_DEFINITION(cName, iMajorVersion, iMinorVersion, iMicroVersion, iAppletCategory)
#define CD_APPLET_INIT_BEGIN(erreur)
#define CD_APPLET_INIT_END
#define CD_APPLET_STOP_BEGIN
#define CD_APPLET_STOP_END
#define CD_APPLET_RELOAD_BEGIN
#define CD_APPLET_RELOAD_END
#define CD_APPLET_MY_CONFIG_CHANGED   (pKeyFile != NULL)
#define CD_APPLET_MY_CONTAINER_TYPE_CHANGED   bContainerTypeChanged
#define CD_APPLET_MY_OLD_CONTAINER   pOldContainer;
#define CD_APPLET_MY_CONF_FILE   cConfFilePath
#define CD_APPLET_MY_KEY_FILE   pKeyFile
#define CD_APPLET_GET_CONFIG_BEGIN
#define CD_APPLET_GET_CONFIG_END
#define CD_APPLET_CONFIG_H
#define CD_CONFIG_GET_BOOLEAN_WITH_DEFAULT(cGroupName, cKeyName, bDefaultValue)   cairo_dock_get_boolean_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, bDefaultValue, NULL, NULL)
#define CD_CONFIG_GET_BOOLEAN(cGroupName, cKeyName)   CD_CONFIG_GET_BOOLEAN_WITH_DEFAULT (cGroupName, cKeyName, TRUE)
#define CD_CONFIG_GET_INTEGER_WITH_DEFAULT(cGroupName, cKeyName, iDefaultValue)   cairo_dock_get_integer_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, iDefaultValue, NULL, NULL)
#define CD_CONFIG_GET_INTEGER(cGroupName, cKeyName)   CD_CONFIG_GET_INTEGER_WITH_DEFAULT (cGroupName, cKeyName, 0)
#define CD_CONFIG_GET_DOUBLE_WITH_DEFAULT(cGroupName, cKeyName, fDefaultValue)   cairo_dock_get_double_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, 0., NULL, NULL)
#define CD_CONFIG_GET_DOUBLE(cGroupName, cKeyName)   CD_CONFIG_GET_DOUBLE_WITH_DEFAULT (cGroupName, cKeyName, 0.)
#define CD_CONFIG_GET_STRING_WITH_DEFAULT(cGroupName, cKeyName, cDefaultValue)   cairo_dock_get_string_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, cDefaultValue, NULL, NULL)
#define CD_CONFIG_GET_STRING(cGroupName, cKeyName)   CD_CONFIG_GET_STRING_WITH_DEFAULT (cGroupName, cKeyName, NULL)
#define CD_CONFIG_GET_STRING_LIST_WITH_DEFAULT(cGroupName, cKeyName, length, cDefaultValues)   cairo_dock_get_string_list_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, length, cDefaultValues, NULL, NULL)
#define CD_CONFIG_GET_STRING_LIST(cGroupName, cKeyName, length)   CD_CONFIG_GET_STRING_LIST_WITH_DEFAULT(cGroupName, cKeyName, length, NULL)
#define CD_CONFIG_GET_ANIMATION_WITH_DEFAULT(cGroupName, cKeyName, iDefaultAnimation)   cairo_dock_get_animation_type_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, iDefaultAnimation, NULL, NULL);
#define CD_CONFIG_GET_ANIMATION(cGroupName, cKeyName)   CD_CONFIG_GET_ANIMATION_WITH_DEFAULT(cGroupName, cKeyName, CAIRO_DOCK_BOUNCE)
#define CD_CONFIG_GET_COLOR_WITH_DEFAULT(cGroupName, cKeyName, pColorBuffer, pDefaultColor)   cairo_dock_get_double_list_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, pColorBuffer, 4, pDefaultColor, NULL, NULL);
#define CD_CONFIG_GET_COLOR(cGroupName, cKeyName, pColorBuffer)   CD_CONFIG_GET_COLOR_WITH_DEFAULT(cGroupName, cKeyName, pColorBuffer, NULL)
#define CD_CONFIG_GET_COLOR_RVB_WITH_DEFAULT(cGroupName, cKeyName, pColorBuffer, pDefaultColor)   cairo_dock_get_double_list_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, pColorBuffer, 3, pDefaultColor, NULL, NULL);
#define CD_CONFIG_GET_COLOR_RVB(cGroupName, cKeyName, pColorBuffer)   CD_CONFIG_GET_COLOR_RVB_WITH_DEFAULT(cGroupName, cKeyName, pColorBuffer, NULL)
#define CD_CONFIG_GET_THEME_PATH(cGroupName, cKeyName, cThemesDirName, cDefaultThemeName)   cairo_dock_manage_themes_for_applet (MY_APPLET_SHARE_DATA_DIR, cThemesDirName, CD_APPLET_MY_CONF_FILE, pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, cDefaultThemeName)
#define CD_APPLET_RESET_CONFIG_BEGIN
#define CD_APPLET_RESET_CONFIG_END
#define CD_APPLET_RESET_DATA_BEGIN
#define CD_APPLET_RESET_DATA_END
#define CD_APPLET_ABOUT(cMessage)
#define CD_APPLET_ABOUT_H   void about (GtkMenuItem *menu_item, gpointer *data);
#define CD_APPLET_ON_CLICK   action_on_click
#define CD_APPLET_REGISTER_FOR_CLICK_EVENT   cairo_dock_register_notification (CAIRO_DOCK_CLICK_ICON, (CairoDockNotificationFunc) CD_APPLET_ON_CLICK, CAIRO_DOCK_RUN_FIRST);
#define CD_APPLET_UNREGISTER_FOR_CLICK_EVENT   cairo_dock_remove_notification_func (CAIRO_DOCK_CLICK_ICON, (CairoDockNotificationFunc) CD_APPLET_ON_CLICK);
#define CD_APPLET_ON_CLICK_BEGIN
#define CD_APPLET_ON_CLICK_END
#define CD_APPLET_ON_CLICK_H   gboolean CD_APPLET_ON_CLICK (gpointer *data);
#define CD_APPLET_ON_BUILD_MENU   applet_on_build_menu
#define CD_APPLET_REGISTER_FOR_BUILD_MENU_EVENT   cairo_dock_register_notification (CAIRO_DOCK_BUILD_MENU, (CairoDockNotificationFunc) CD_APPLET_ON_BUILD_MENU, CAIRO_DOCK_RUN_FIRST);
#define CD_APPLET_UNREGISTER_FOR_BUILD_MENU_EVENT   cairo_dock_remove_notification_func (CAIRO_DOCK_BUILD_MENU, (CairoDockNotificationFunc) CD_APPLET_ON_BUILD_MENU);
#define CD_APPLET_ON_BUILD_MENU_BEGIN
#define CD_APPLET_ON_BUILD_MENU_END
#define CD_APPLET_ON_BUILD_MENU_H   gboolean CD_APPLET_ON_BUILD_MENU (gpointer *data);
#define CD_APPLET_MY_MENU   pAppletMenu
#define CD_APPLET_CLICKED_ICON   pClickedIcon
#define CD_APPLET_CLICKED_CONTAINER   pClickedContainer
#define CD_APPLET_SHIFT_CLICK   (iButtonState & GDK_SHIFT_MASK)
#define CD_APPLET_CTRL_CLICK   (iButtonState & GDK_CONTROL_MASK)
#define CD_APPLET_ALT_CLICK   (iButtonState & GDK_MOD1_MASK)
#define CD_APPLET_ADD_SUB_MENU(cLabel, pSubMenu, pMenu)
#define CD_APPLET_CREATE_AND_ADD_SUB_MENU(cLabel, pMenu)   cairo_dock_create_sub_menu (cLabel, pMenu);
#define CD_APPLET_ADD_IN_MENU_WITH_DATA(cLabel, pFunction, pMenu, pData)
#define CD_APPLET_ADD_IN_MENU(cLabel, pFunction, pMenu)   CD_APPLET_ADD_IN_MENU_WITH_DATA(cLabel, pFunction, pMenu, NULL)
#define CD_APPLET_ADD_IN_MENU_WITH_STOCK(cLabel, gtkStock, pFunction, pMenu, pData)
#define CD_APPLET_ADD_SEPARATOR()
#define CD_APPLET_ADD_ABOUT_IN_MENU(pMenu)   CD_APPLET_ADD_IN_MENU (_("About"), about, pMenu)
#define CD_APPLET_LAST_ITEM_IN_MENU   pMenuItem
#define CD_APPLET_ON_MIDDLE_CLICK   action_on_middle_click
#define CD_APPLET_REGISTER_FOR_MIDDLE_CLICK_EVENT   cairo_dock_register_notification (CAIRO_DOCK_MIDDLE_CLICK_ICON, (CairoDockNotificationFunc) CD_APPLET_ON_MIDDLE_CLICK, CAIRO_DOCK_RUN_FIRST);
#define CD_APPLET_UNREGISTER_FOR_MIDDLE_CLICK_EVENT   cairo_dock_remove_notification_func (CAIRO_DOCK_MIDDLE_CLICK_ICON, (CairoDockNotificationFunc) CD_APPLET_ON_MIDDLE_CLICK);
#define CD_APPLET_ON_MIDDLE_CLICK_BEGIN
#define CD_APPLET_ON_MIDDLE_CLICK_END
#define CD_APPLET_ON_MIDDLE_CLICK_H   gboolean CD_APPLET_ON_MIDDLE_CLICK (gpointer *data);
#define CD_APPLET_ON_DROP_DATA   action_on_drop_data
#define CD_APPLET_REGISTER_FOR_DROP_DATA_EVENT   cairo_dock_register_notification (CAIRO_DOCK_DROP_DATA, (CairoDockNotificationFunc) CD_APPLET_ON_DROP_DATA, CAIRO_DOCK_RUN_FIRST);
#define CD_APPLET_UNREGISTER_FOR_DROP_DATA_EVENT   cairo_dock_remove_notification_func (CAIRO_DOCK_DROP_DATA, (CairoDockNotificationFunc) CD_APPLET_ON_DROP_DATA);
#define CD_APPLET_ON_DROP_DATA_BEGIN
#define CD_APPLET_RECEIVED_DATA   cReceivedData
#define CD_APPLET_ON_DROP_DATA_END
#define CD_APPLET_ON_DROP_DATA_H   gboolean CD_APPLET_ON_DROP_DATA (gpointer *data);
#define CD_APPLET_REDRAW_MY_ICON   cairo_dock_redraw_my_icon (myIcon, myContainer);
#define CD_APPLET_SET_SURFACE_ON_MY_ICON(pSurface)
#define CD_APPLET_SET_SURFACE_ON_MY_ICON_WITH_ZOOM(pSurface, fScale)
#define CD_APPLET_SET_SURFACE_ON_MY_ICON_WITH_ALPHA(pSurface, fAlpha)
#define CD_APPLET_SET_SURFACE_ON_MY_ICON_WITH_BAR(pSurface, fValue)
#define CD_APPLET_SET_IMAGE_ON_MY_ICON(cImagePath)
#define CD_APPLET_SET_LOCAL_IMAGE_ON_MY_ICON(cImageName)
#define CD_APPLET_SET_USER_IMAGE_ON_MY_ICON(cUserImageName, cDefaultLocalImageName)
#define CD_APPLET_SET_ZOOMED_SURFACE_ON_MY_ICON(pSurface, fScale)
#define CD_APPLET_SET_NAME_FOR_MY_ICON(cIconName)   cairo_dock_set_icon_name (myDrawContext, cIconName, myIcon, myContainer);
#define CD_APPLET_SET_QUICK_INFO_ON_MY_ICON(cQuickInfoFormat,...)   cairo_dock_set_quick_info_full (myDrawContext, myIcon, myContainer, cQuickInfoFormat, ##__VA_ARGS__);
#define CD_APPLET_SET_QUICK_INFO_ON_MY_ICON_AND_REDRAW(cQuickInfoFormat,...)
#define CD_APPLET_SET_HOURS_MINUTES_AS_QUICK_INFO(iTimeInSeconds)   cairo_dock_set_hours_minutes_as_quick_info (myDrawContext, myIcon, myContainer, iTimeInSeconds);
#define CD_APPLET_SET_MINUTES_SECONDES_AS_QUICK_INFO(iTimeInSeconds)   cairo_dock_set_minutes_secondes_as_quick_info (myDrawContext, myIcon, myContainer, iTimeInSeconds);
#define CD_APPLET_ANIMATE_MY_ICON(iAnimationType, iAnimationLength)   cairo_dock_animate_icon (myIcon, myContainer, iAnimationType, iAnimationLength);
#define CD_APPLET_LOAD_SURFACE_FOR_MY_APPLET(cImagePath)   cairo_dock_create_surface_for_icon (cImagePath, myDrawContext, myIcon->fWidth * (myDock ? (1 + g_fAmplitude) / myDock->fRatio : 1), myIcon->fHeight* (myDock ? (1 + g_fAmplitude) / myDock->fRatio : 1));
#define CD_APPLET_SET_DESKLET_RENDERER_WITH_DATA(cRendererName, pConfig)
#define CD_APPLET_SET_DESKLET_RENDERER(cRendererName)   CD_APPLET_SET_DESKLET_RENDERER_WITH_DATA (cRendererName, NULL)
#define CD_APPLET_INCLUDE_MY_VARS
#define D_(message)   dgettext (MY_APPLET_GETTEXT_DOMAIN, message)
#define _D   D_
#define CD_APPLET_DEFINE_TIMER(_get_data, _read_data, _load_data)
#define CD_APPLET_START_TIMER   cairo_dock_launch_measure ();
#define CD_APPLET_STOP_TIMER
#define CD_APPLET_TIMER_IS_RUNNING   (myData.iSidTimer != 0)

Fonctions

gchar * cairo_dock_check_conf_file_exists (gchar *cUserDataDirName, gchar *cShareDataDir, gchar *cConfFileName)
void cairo_dock_free_minimal_config (CairoDockMinimalAppletConfig *pMinimalConfig)
void cairo_dock_set_icon_surface_full (cairo_t *pIconContext, cairo_surface_t *pSurface, double fScale, double fAlpha, Icon *pIcon, CairoDockContainer *pContainer)
void cairo_dock_draw_bar_on_icon (cairo_t *pIconContext, double fValue, Icon *pIcon, CairoDockContainer *pContainer)
void cairo_dock_add_reflection_to_icon (cairo_t *pIconContext, Icon *pIcon, CairoDockContainer *pContainer)
void cairo_dock_set_icon_surface_with_reflect (cairo_t *pIconContext, cairo_surface_t *pSurface, Icon *pIcon, CairoDockContainer *pContainer)
void cairo_dock_set_image_on_icon (cairo_t *pIconContext, gchar *cImagePath, Icon *pIcon, CairoDockContainer *pContainer)
void cairo_dock_set_icon_name (cairo_t *pSourceContext, const gchar *cIconName, Icon *pIcon, CairoDockContainer *pContainer)
void cairo_dock_set_quick_info (cairo_t *pSourceContext, const gchar *cQuickInfo, Icon *pIcon, double fMaxScale)
void cairo_dock_set_quick_info_full (cairo_t *pSourceContext, Icon *pIcon, CairoDockContainer *pContainer, const gchar *cQuickInfoFormat,...)
void cairo_dock_set_hours_minutes_as_quick_info (cairo_t *pSourceContext, Icon *pIcon, CairoDockContainer *pContainer, int iTimeInSeconds)
void cairo_dock_set_minutes_secondes_as_quick_info (cairo_t *pSourceContext, Icon *pIcon, CairoDockContainer *pContainer, int iTimeInSeconds)
void cairo_dock_animate_icon (Icon *pIcon, CairoDock *pDock, CairoDockAnimationType iAnimationType, int iNbRounds)
gchar * cairo_dock_manage_themes_for_applet (gchar *cAppletShareDataDir, gchar *cThemeDirName, gchar *cAppletConfFilePath, GKeyFile *pKeyFile, gchar *cGroupName, gchar *cKeyName, gboolean *bFlushConfFileNeeded, gchar *cDefaultThemeName)
GtkWidget * cairo_dock_create_sub_menu (gchar *cLabel, GtkWidget *pMenu)
void cairo_dock_launch_measure (CairoDockMeasure *pMeasureTimer)
CairoDockMeasurecairo_dock_new_measure_timer (int iCheckInterval, GVoidFunc acquisition, GVoidFunc read, GVoidFunc update)
void cairo_dock_stop_measure_timer (CairoDockMeasure *pMeasureTimer)
void cairo_dock_free_measure_timer (CairoDockMeasure *pMeasureTimer)
gboolean cairo_dock_measure_is_active (CairoDockMeasure *pMeasureTimer)
void cairo_dock_change_measure_frequency (CairoDockMeasure *pMeasureTimer, int iNewCheckInterval)


Description détaillée

Les macros forment un canevas dedie aux applets. Elles permettent un developpement rapide et normalise d'une applet pour Cairo-Dock.

Pour un exemple tres simple, consultez les sources de l'applet 'logout'.


Documentation des macros

#define cairo_dock_set_icon_surface ( pIconContext,
pSurface   )     cairo_dock_set_icon_surface_full (pIconContext, pSurface, 1, 1, NULL, NULL)

Applique une surface sur un contexte, en effacant tout au prealable.

Paramètres:
pIconContext le contexte du dessin; est modifie par la fonction.
pSurface la surface a appliquer.

#define cairo_dock_remove_quick_info ( pIcon   )     cairo_dock_set_quick_info (NULL, NULL, pIcon, 1)

Efface l'info-rapide d'une icone.

Paramètres:
pIcon l'icone.

#define CD_APPLET_H

Valeur :

CairoDockVisitCard *pre_init (void); \
void init (GKeyFile *pKeyFile, Icon *pIcon, CairoDockContainer *pContainer, gchar *cConfFilePath, GError **erreur); \
void stop (void); \
gboolean reload (GKeyFile *pKeyFile, gchar *cConfFilePath, CairoDockContainer *pNewContainer);
Definition des fonctions d'initialisation de l'applet; a inclure dans le .h du fichier d'init de l'applet.

#define CD_APPLET_PRE_INIT_BEGIN ( cName,
iMajorVersion,
iMinorVersion,
iMicroVersion,
iAppletCategory   ) 

Valeur :

Icon *myIcon = NULL; \
CairoDock *myDock = NULL; \
CairoDockDesklet *myDesklet = NULL; \
CairoDockContainer *myContainer = NULL; \
cairo_t *myDrawContext = NULL; \
AppletConfig myConfig; \
AppletData myData; \
CairoDockVisitCard *pre_init (void) \
{ \
        CairoDockVisitCard *pVisitCard = g_new0 (CairoDockVisitCard, 1); \
        pVisitCard->cModuleName = g_strdup (cName); \
        pVisitCard->cReadmeFilePath = g_strdup_printf ("%s/%s", MY_APPLET_SHARE_DATA_DIR, MY_APPLET_README_FILE); \
        pVisitCard->iMajorVersionNeeded = iMajorVersion; \
        pVisitCard->iMinorVersionNeeded = iMinorVersion; \
        pVisitCard->iMicroVersionNeeded = iMicroVersion; \
        pVisitCard->cPreviewFilePath = g_strdup_printf ("%s/%s", MY_APPLET_SHARE_DATA_DIR, MY_APPLET_PREVIEW_FILE); \
        pVisitCard->cGettextDomain = g_strdup (MY_APPLET_GETTEXT_DOMAIN); \
        pVisitCard->cDockVersionOnCompilation = g_strdup (MY_APPLET_DOCK_VERSION); \
        pVisitCard->cUserDataDir = g_strdup (MY_APPLET_USER_DATA_DIR); \
        pVisitCard->cShareDataDir = g_strdup (MY_APPLET_SHARE_DATA_DIR); \
        pVisitCard->cConfFileName = (MY_APPLET_CONF_FILE != NULL && strcmp (MY_APPLET_CONF_FILE, "none") != 0 ? g_strdup (MY_APPLET_CONF_FILE) : NULL); \
        pVisitCard->cModuleVersion = g_strdup (MY_APPLET_VERSION);\
        pVisitCard->iCategory =iAppletCategory ;\
        pVisitCard->cIconFilePath = g_strdup_printf ("%s/%s", MY_APPLET_SHARE_DATA_DIR, MY_APPLET_ICON_FILE);
Debut de la fonction de pre-initialisation de l'applet (celle qui est appele a l'enregistrement de tous les plug-ins). Defini egalement les variables globales suivantes : myIcon, myDock, myDesklet, myContainer, et myDrawContext.
Paramètres:
cName nom de sous lequel l'applet sera enregistree par Cairo-Dock.
iMajorVersion version majeure du dock necessaire au bon fonctionnement de l'applet.
iMinorVersion version mineure du dock necessaire au bon fonctionnement de l'applet.
iMicroVersion version micro du dock necessaire au bon fonctionnement de l'applet.
iAppletCategory Catégorie de l'applet (CAIRO_DOCK_CATEGORY_ACCESSORY, CAIRO_DOCK_CATEGORY_DESKTOP, CAIRO_DOCK_CATEGORY_CONTROLER)

#define CD_APPLET_PRE_INIT_END

Valeur :

return pVisitCard; \
}
Fin de la fonction de pre-initialisation de l'applet.

#define CD_APPLET_DEFINITION ( cName,
iMajorVersion,
iMinorVersion,
iMicroVersion,
iAppletCategory   ) 

Valeur :

CD_APPLET_PRE_INIT_BEGIN (cName, iMajorVersion, iMinorVersion, iMicroVersion, iAppletCategory) \
CD_APPLET_PRE_INIT_END
Fonction de pre-initialisation generique. Ne fais que definir l'applet (en appelant les 2 macros precedentes), la plupart du temps cela est suffisant.

#define CD_APPLET_INIT_BEGIN ( erreur   ) 

Valeur :

void init (GKeyFile *pKeyFile, Icon *pIcon, CairoDockContainer *pContainer, gchar *cConfFilePath, GError **erreur) \
{ \
        g_return_if_fail (pContainer != NULL && pIcon != NULL); \
        myIcon = pIcon; \
        myContainer = pContainer; \
        myDock = (CAIRO_DOCK_IS_DOCK (pContainer) ? CAIRO_DOCK_DOCK (pContainer) : NULL); \
        myDesklet = (CAIRO_DOCK_IS_DESKLET (pContainer) ? CAIRO_DOCK_DESKLET (pContainer) : NULL); \
        read_conf_file (pKeyFile, cConfFilePath); \
        if (CAIRO_DOCK_IS_DOCK (myContainer)) \
        { \
                if (myIcon != NULL) \
                { \
                        myDrawContext = cairo_create (myIcon->pIconBuffer); \
                        g_return_if_fail (cairo_status (myDrawContext) == CAIRO_STATUS_SUCCESS); \
                } \
        } \
        else \
                myDrawContext = NULL;
Debut de la fonction d'initialisation de l'applet (celle qui est appelee a chaque chargement de l'applet). Lis le fichier de conf de l'applet, et cree son icone ainsi que son contexte de dessin.
Paramètres:
erreur une GError, utilisable pour reporter une erreur ayant lieu durant l'initialisation.

#define CD_APPLET_INIT_END

Valeur :

return; \
}
Fin de la fonction d'initialisation de l'applet.

#define CD_APPLET_STOP_BEGIN

Valeur :

void stop (void) \
{
Debut de la fonction d'arret de l'applet.

#define CD_APPLET_STOP_END

Valeur :

reset_data (); \
        reset_config (); \
        myDock = NULL; \
        myDesklet = NULL; \
        myContainer = NULL; \
        myIcon = NULL; \
        if (myDrawContext != NULL) \
                cairo_destroy (myDrawContext); \
        myDrawContext = NULL; \
}
Fin de la fonction d'arret de l'applet.

#define CD_APPLET_RELOAD_BEGIN

Valeur :

gboolean reload (GKeyFile *pKeyFile, gchar *cConfFilePath, CairoDockContainer *pNewContainer) \
{ \
        cd_message ("%s (%s)\n", __func__, cConfFilePath); \
        g_return_val_if_fail (pNewContainer != NULL, FALSE); \
        CairoDockContainer *pOldContainer = myContainer; \
        gboolean bContainerTypeChanged = (myContainer == NULL || myContainer->iType != pNewContainer->iType); \
        myContainer = pNewContainer; \
        myDock = (CAIRO_DOCK_IS_DOCK (pNewContainer) ? CAIRO_DOCK_DOCK (pNewContainer) : NULL); \
        myDesklet = (CAIRO_DOCK_IS_DESKLET (pNewContainer) ? CAIRO_DOCK_DESKLET (pNewContainer) : NULL); \
        if (pKeyFile != NULL) \
                read_conf_file (pKeyFile, cConfFilePath); \
        if (myDrawContext != NULL) \
                cairo_destroy (myDrawContext); \
        if (CAIRO_DOCK_IS_DOCK (myContainer)) \
        { \
                myDrawContext = cairo_create (myIcon->pIconBuffer); \
                g_return_val_if_fail (cairo_status (myDrawContext) == CAIRO_STATUS_SUCCESS, FALSE); \
        } \
        else \
                myDrawContext = NULL;
Debut de la fonction de rechargement de l'applet.

#define CD_APPLET_RELOAD_END

Valeur :

return TRUE; \
}
Fin de la fonction de rechargement de l'applet.

#define CD_APPLET_MY_CONFIG_CHANGED   (pKeyFile != NULL)

TRUE ssi le fichier de conf de l'applet a change juste avant le reload.

#define CD_APPLET_MY_CONTAINER_TYPE_CHANGED   bContainerTypeChanged

TRUE ssi le type de container a change.

#define CD_APPLET_MY_OLD_CONTAINER   pOldContainer;

Le conteneur precedent le reload.

#define CD_APPLET_MY_CONF_FILE   cConfFilePath

Chemin du fichier de conf de l'applet, appelable durant les fonctions d'init, de config, et de reload.

#define CD_APPLET_MY_KEY_FILE   pKeyFile

Fichier de cles de l'applet, appelable durant les fonctions d'init, de config, et de reload.

#define CD_APPLET_GET_CONFIG_BEGIN

Valeur :

void read_conf_file (GKeyFile *pKeyFile, gchar *cConfFilePath) \
{ \
        gboolean bFlushConfFileNeeded = FALSE, bNewKeysPresent = FALSE; \
        reset_config ();
Debut de la fonction de configuration de l'applet (celle qui est appelee au debt de l'init).

#define CD_APPLET_GET_CONFIG_END

Valeur :

if (bNewKeysPresent) \
                cairo_dock_write_keys_to_file (pKeyFile, cConfFilePath); \
        if (! bFlushConfFileNeeded) \
                bFlushConfFileNeeded = cairo_dock_conf_file_needs_update (pKeyFile, MY_APPLET_VERSION); \
        if (bFlushConfFileNeeded) \
                cairo_dock_flush_conf_file (pKeyFile, cConfFilePath, MY_APPLET_SHARE_DATA_DIR);\
}
Fin de la fonction de configuration de l'applet.

#define CD_APPLET_CONFIG_H

Valeur :

void read_conf_file (GKeyFile *pKeyFile, gchar *cConfFilePath); \
void reset_config (void); \
void reset_data (void);
Definition de la fonction de configuration, a inclure dans le .h correspondant.

#define CD_CONFIG_GET_BOOLEAN_WITH_DEFAULT ( cGroupName,
cKeyName,
bDefaultValue   )     cairo_dock_get_boolean_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, bDefaultValue, NULL, NULL)

Recupere la valeur d'un parametre 'booleen' du fichier de conf.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
bDefaultValue valeur par defaut si la cle et/ou le groupe n'est pas trouve (typiquement si cette cle est nouvelle).
Renvoie:
un gboolean.

#define CD_CONFIG_GET_BOOLEAN ( cGroupName,
cKeyName   )     CD_CONFIG_GET_BOOLEAN_WITH_DEFAULT (cGroupName, cKeyName, TRUE)

Recupere la valeur d'un parametre 'booleen' du fichier de conf, avec TRUE comme valeur par defaut.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
Renvoie:
un gboolean.

#define CD_CONFIG_GET_INTEGER_WITH_DEFAULT ( cGroupName,
cKeyName,
iDefaultValue   )     cairo_dock_get_integer_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, iDefaultValue, NULL, NULL)

Recupere la valeur d'un parametre 'entier' du fichier de conf.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
iDefaultValue valeur par defaut si la cle et/ou le groupe n'est pas trouve (typiquement si cette cle est nouvelle).
Renvoie:
un entier.

#define CD_CONFIG_GET_INTEGER ( cGroupName,
cKeyName   )     CD_CONFIG_GET_INTEGER_WITH_DEFAULT (cGroupName, cKeyName, 0)

Recupere la valeur d'un parametre 'entier' du fichier de conf, avec 0 comme valeur par defaut.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
Renvoie:
un entier.

#define CD_CONFIG_GET_DOUBLE_WITH_DEFAULT ( cGroupName,
cKeyName,
fDefaultValue   )     cairo_dock_get_double_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, 0., NULL, NULL)

Recupere la valeur d'un parametre 'double' du fichier de conf.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
fDefaultValue valeur par defaut si la cle et/ou le groupe n'est pas trouve (typiquement si cette cle est nouvelle).
Renvoie:
un double.

#define CD_CONFIG_GET_DOUBLE ( cGroupName,
cKeyName   )     CD_CONFIG_GET_DOUBLE_WITH_DEFAULT (cGroupName, cKeyName, 0.)

Recupere la valeur d'un parametre 'double' du fichier de conf, avec 0. comme valeur par defaut.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
Renvoie:
un double.

#define CD_CONFIG_GET_STRING_WITH_DEFAULT ( cGroupName,
cKeyName,
cDefaultValue   )     cairo_dock_get_string_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, cDefaultValue, NULL, NULL)

Recupere la valeur d'un parametre 'chaine de caracteres' du fichier de conf.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
cDefaultValue valeur par defaut si la cle et/ou le groupe n'est pas trouve (typiquement si cette cle est nouvelle). NULL accepte.
Renvoie:
une chaine de caracteres nouvellement allouee.

#define CD_CONFIG_GET_STRING ( cGroupName,
cKeyName   )     CD_CONFIG_GET_STRING_WITH_DEFAULT (cGroupName, cKeyName, NULL)

Recupere la valeur d'un parametre 'chaine de caracteres' du fichier de conf, avec NULL comme valeur par defaut.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
Renvoie:
une chaine de caracteres nouvellement allouee.

#define CD_CONFIG_GET_STRING_LIST_WITH_DEFAULT ( cGroupName,
cKeyName,
length,
cDefaultValues   )     cairo_dock_get_string_list_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, length, cDefaultValues, NULL, NULL)

Recupere la valeur d'un parametre 'liste de chaines de caracteres' du fichier de conf.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
length pointeur sur un entier, rempli avec le nombre de chaines recuperees.
cDefaultValues valeur par defaut si la cle et/ou le groupe n'est pas trouve (typiquement si cette cle est nouvelle). C'est une chaine de caractere contenant les mots separes par des ';', ou NULL.
Renvoie:
un tableau de chaine de caracteres, a liberer avec 'g_strfreev'.

#define CD_CONFIG_GET_STRING_LIST ( cGroupName,
cKeyName,
length   )     CD_CONFIG_GET_STRING_LIST_WITH_DEFAULT(cGroupName, cKeyName, length, NULL)

Recupere la valeur d'un parametre 'liste de chaines de caracteres' du fichier de conf, avec NULL comme valeur par defaut.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
length pointeur sur un entier, rempli avec le nombre de chaines recuperees.
Renvoie:
un tableau de chaine de caracteres, a liberer avec 'g_strfreev'.

#define CD_CONFIG_GET_ANIMATION_WITH_DEFAULT ( cGroupName,
cKeyName,
iDefaultAnimation   )     cairo_dock_get_animation_type_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, iDefaultAnimation, NULL, NULL);

Recupere la valeur d'un parametre 'type d'animation' du fichier de conf.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
iDefaultAnimation valeur par defaut si la cle et/ou le groupe n'est pas trouve (typiquement si cette cle est nouvelle).
Renvoie:
le type de l'animation, un CairoDockAnimationType.

#define CD_CONFIG_GET_ANIMATION ( cGroupName,
cKeyName   )     CD_CONFIG_GET_ANIMATION_WITH_DEFAULT(cGroupName, cKeyName, CAIRO_DOCK_BOUNCE)

Recupere la valeur d'un parametre 'type d'animation' du fichier de conf, avec CAIRO_DOCK_BOUNCE comme valeur par defaut.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
Renvoie:
le type de l'animation, un CairoDockAnimationType.

#define CD_CONFIG_GET_COLOR_WITH_DEFAULT ( cGroupName,
cKeyName,
pColorBuffer,
pDefaultColor   )     cairo_dock_get_double_list_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, pColorBuffer, 4, pDefaultColor, NULL, NULL);

Recupere la valeur d'un parametre 'couleur' au format RVBA. du fichier de conf.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
pColorBuffer tableau de 4 double deja alloue, et qui sera rempli avec les 4 composantes de la couleur.
pDefaultColor valeur par defaut si la cle et/ou le groupe n'est pas trouve (typiquement si cette cle est nouvelle). C'est un tableau de 4 double, ou NULL.

#define CD_CONFIG_GET_COLOR ( cGroupName,
cKeyName,
pColorBuffer   )     CD_CONFIG_GET_COLOR_WITH_DEFAULT(cGroupName, cKeyName, pColorBuffer, NULL)

Recupere la valeur d'un parametre 'couleur' au format RVBA. du fichier de conf, avec NULL comme valeur par defaut.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
pColorBuffer tableau de 4 double deja alloue, et qui sera rempli avec les 4 composantes de la couleur.

#define CD_CONFIG_GET_COLOR_RVB_WITH_DEFAULT ( cGroupName,
cKeyName,
pColorBuffer,
pDefaultColor   )     cairo_dock_get_double_list_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, pColorBuffer, 3, pDefaultColor, NULL, NULL);

Recupere la valeur d'un parametre 'couleur' au format RVB. du fichier de conf.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
pColorBuffer tableau de 3 double deja alloue, et qui sera rempli avec les 3 composantes de la couleur.
pDefaultColor valeur par defaut si la cle et/ou le groupe n'est pas trouve (typiquement si cette cle est nouvelle). C'est un tableau de 3 double, ou NULL.

#define CD_CONFIG_GET_COLOR_RVB ( cGroupName,
cKeyName,
pColorBuffer   )     CD_CONFIG_GET_COLOR_RVB_WITH_DEFAULT(cGroupName, cKeyName, pColorBuffer, NULL)

Recupere la valeur d'un parametre 'couleur' au format RVB. du fichier de conf, avec NULL comme valeur par defaut.

Paramètres:
cGroupName nom du groupe dans le fichier de conf.
cKeyName nom de la cle dans le fichier de conf.
pColorBuffer tableau de 3 double deja alloue, et qui sera rempli avec les 3 composantes de la couleur.

#define CD_CONFIG_GET_THEME_PATH ( cGroupName,
cKeyName,
cThemesDirName,
cDefaultThemeName   )     cairo_dock_manage_themes_for_applet (MY_APPLET_SHARE_DATA_DIR, cThemesDirName, CD_APPLET_MY_CONF_FILE, pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, cDefaultThemeName)

Liste les themes contenu dans un repertoire, met a jour le fichier de conf avec, et renvoie le chemin correspondant au theme choisi.

Paramètres:
cGroupName nom du groupe (dans le fichier de conf) du parametre correspondant au theme.
cKeyName nom de la cle (dans le fichier de conf) du parametre correspondant au theme.
cThemesDirName nom du sous-repertoire regroupant tous les themes.
cDefaultThemeName valeur par defaut si la cle et/ou le groupe et/ou le theme n'existe(nt) pas.
Renvoie:
Le chemin vers le repertoire du theme, dans une chaine nouvellement allouee.

#define CD_APPLET_RESET_CONFIG_BEGIN

Valeur :

void reset_config (void) \
{
Debut de la fonction de liberation des donnees de la config.

#define CD_APPLET_RESET_CONFIG_END

Valeur :

memset (&myConfig, 0, sizeof (AppletConfig)); \
}
Fin de la fonction de liberation des donnees de la config.

#define CD_APPLET_RESET_DATA_BEGIN

Valeur :

void reset_data(void) \
{
Debut de la fonction de liberation des donnees internes.

#define CD_APPLET_RESET_DATA_END

Valeur :

memset (&myData, 0, sizeof (AppletData)); \
}
Fin de la fonction de liberation des donnees internes.

#define CD_APPLET_ABOUT ( cMessage   ) 

Valeur :

void about (GtkMenuItem *menu_item, gpointer *data) \
{ \
        cairo_dock_show_temporary_dialog (cMessage, myIcon, myContainer, 0); \
}
Fonction 'A propos' toute faite, qui affiche un message dans une info-bulle. A inclure dans le .c.
Paramètres:
cMessage message a afficher dans l'info-bulle.

#define CD_APPLET_ABOUT_H   void about (GtkMenuItem *menu_item, gpointer *data);

Definition de la fonction precedente; a inclure dans le .h correspondant.

#define CD_APPLET_ON_CLICK   action_on_click

#define CD_APPLET_REGISTER_FOR_CLICK_EVENT   cairo_dock_register_notification (CAIRO_DOCK_CLICK_ICON, (CairoDockNotificationFunc) CD_APPLET_ON_CLICK, CAIRO_DOCK_RUN_FIRST);

Abonne l'applet aux notifications du clic gauche. A effectuer lors de l'init de l'applet.

#define CD_APPLET_UNREGISTER_FOR_CLICK_EVENT   cairo_dock_remove_notification_func (CAIRO_DOCK_CLICK_ICON, (CairoDockNotificationFunc) CD_APPLET_ON_CLICK);

Desabonne l'applet aux notifications du clic gauche. A effectuer lors de l'arret de l'applet.

#define CD_APPLET_ON_CLICK_BEGIN

Valeur :

gboolean CD_APPLET_ON_CLICK (gpointer *data) \
{ \
        Icon *pClickedIcon = data[0]; \
        CairoDockContainer *pClickedContainer = data[1]; \
        guint iButtonState = GPOINTER_TO_INT (data[2]); \
        if (pClickedIcon == myIcon || (myIcon != NULL && pClickedContainer == CAIRO_DOCK_CONTAINER (myIcon->pSubDock)) || pClickedContainer == CAIRO_DOCK_CONTAINER (myDesklet)) \
        {
Debut de la fonction de notification au clic gauche.

#define CD_APPLET_ON_CLICK_END

Valeur :

Fin de la fonction de notification au clic gauche. Par defaut elle intercepte la notification si elle l'a recue.

#define CD_APPLET_ON_CLICK_H   gboolean CD_APPLET_ON_CLICK (gpointer *data);

Definition de la fonction precedente; a inclure dans le .h correspondant.

#define CD_APPLET_ON_BUILD_MENU   applet_on_build_menu

#define CD_APPLET_REGISTER_FOR_BUILD_MENU_EVENT   cairo_dock_register_notification (CAIRO_DOCK_BUILD_MENU, (CairoDockNotificationFunc) CD_APPLET_ON_BUILD_MENU, CAIRO_DOCK_RUN_FIRST);

Abonne l'applet aux notifications de construction du menu. A effectuer lors de l'init de l'applet.

#define CD_APPLET_UNREGISTER_FOR_BUILD_MENU_EVENT   cairo_dock_remove_notification_func (CAIRO_DOCK_BUILD_MENU, (CairoDockNotificationFunc) CD_APPLET_ON_BUILD_MENU);

Desabonne l'applet aux notifications de construction du menu. A effectuer lors de l'arret de l'applet.

#define CD_APPLET_ON_BUILD_MENU_BEGIN

Valeur :

gboolean CD_APPLET_ON_BUILD_MENU (gpointer *data) \
{ \
        Icon *pClickedIcon = data[0]; \
        CairoDockContainer *pClickedContainer = data[1]; \
        if (pClickedIcon == myIcon || (myIcon != NULL && pClickedContainer == CAIRO_DOCK_CONTAINER (myIcon->pSubDock)) || pClickedContainer == CAIRO_DOCK_CONTAINER (myDesklet)) \
        { \
                GtkWidget *pAppletMenu = data[2]; \
                GtkWidget *pMenuItem, image; \
                pMenuItem = gtk_separator_menu_item_new (); \
                gtk_menu_shell_append(GTK_MENU_SHELL (pAppletMenu), pMenuItem);
Debut de la fonction de notification de construction du menu.

#define CD_APPLET_ON_BUILD_MENU_END

Valeur :

Fin de la fonction de notification de construction du menu. Par defaut elle intercepte la notification si elle l'a recue.

#define CD_APPLET_ON_BUILD_MENU_H   gboolean CD_APPLET_ON_BUILD_MENU (gpointer *data);

Definition de la fonction precedente; a inclure dans le .h correspondant.

#define CD_APPLET_MY_MENU   pAppletMenu

Menu principal de l'applet.

#define CD_APPLET_CLICKED_ICON   pClickedIcon

Icone cliquee.

#define CD_APPLET_CLICKED_CONTAINER   pClickedContainer

Container clique.

#define CD_APPLET_SHIFT_CLICK   (iButtonState & GDK_SHIFT_MASK)

La touche 'SHIFT' est-elle enfoncee au moment du clic ?

#define CD_APPLET_CTRL_CLICK   (iButtonState & GDK_CONTROL_MASK)

La touche 'CTRL' est-elle enfoncee au moment du clic ?

#define CD_APPLET_ALT_CLICK   (iButtonState & GDK_MOD1_MASK)

La touche 'ALT' est-elle enfoncee au moment du clic ?

#define CD_APPLET_ADD_SUB_MENU ( cLabel,
pSubMenu,
pMenu   ) 

Valeur :

GtkWidget *pSubMenu = gtk_menu_new (); \
        pMenuItem = gtk_menu_item_new_with_label (cLabel); \
        gtk_menu_shell_append  (GTK_MENU_SHELL (pMenu), pMenuItem); \
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (pMenuItem), pSubMenu);
Cree et ajoute un sous-menu a un menu.
Paramètres:
cLabel nom du sous-menu, tel qu'il apparaitra dans le menu.
pSubMenu GtkWidget du sous-menu; il doit juste avoir ete declare, il sera cree par la macro.
pMenu GtkWidget du menu auquel on rajoutera le sous-menu.

#define CD_APPLET_CREATE_AND_ADD_SUB_MENU ( cLabel,
pMenu   )     cairo_dock_create_sub_menu (cLabel, pMenu);

Cree et ajoute un sous-menu a un menu deja existant.

Paramètres:
cLabel nom du sous-menu, tel qu'il apparaitra dans le menu.
pMenu GtkWidget du menu auquel on rajoutera le sous-menu.
Renvoie:
le GtkWidget du sous-menu.

#define CD_APPLET_ADD_IN_MENU_WITH_DATA ( cLabel,
pFunction,
pMenu,
pData   ) 

Valeur :

pMenuItem = gtk_menu_item_new_with_label (cLabel); \
        gtk_menu_shell_append  (GTK_MENU_SHELL (pMenu), pMenuItem); \
        g_signal_connect (G_OBJECT (pMenuItem), "activate", G_CALLBACK (pFunction), pData);
Cree et ajoute un sous-menu a un menu.
Paramètres:
cLabel nom du sous-menu, tel qu'il apparaitra dans le menu.
pFunction fonction appelee lors de la selection de cette entree.
pMenu GtkWidget du menu auquel on rajoutera le sous-menu.
pData donnees passees en parametre de la fonction.

#define CD_APPLET_ADD_IN_MENU ( cLabel,
pFunction,
pMenu   )     CD_APPLET_ADD_IN_MENU_WITH_DATA(cLabel, pFunction, pMenu, NULL)

Ajoute une entree a un menu deja existant.

Paramètres:
cLabel nom de l'entree, tel qu'il apparaitra dans le menu.
pFunction fonction appelee lors de la selection de cette entree.
pMenu GtkWidget du menu auquel on rajoutera l'entree.

#define CD_APPLET_ADD_IN_MENU_WITH_STOCK ( cLabel,
gtkStock,
pFunction,
pMenu,
pData   ) 

Valeur :

menu_item = gtk_image_menu_item_new_with_label (_(cLabel)); \
        image = gtk_image_new_from_stock (gtkStock, GTK_ICON_SIZE_MENU); \
        gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); \
        gtk_menu_shell_append  (GTK_MENU_SHELL (pMenu), menu_item); \
        g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK(pFunction), pData);
Ajoute une entree avec une icone GTK a un menu deja existant.
Paramètres:
cLabel nom de l'entree, tel qu'il apparaitra dans le menu.
gtkStock nom d'une icone de GTK.
pFunction fonction appelee lors de la selection de cette entree.
pMenu GtkWidget du menu auquel on rajoutera l'entree.
pData donnees passees en parametre de la fonction.

 
#define CD_APPLET_ADD_SEPARATOR (  ) 

Valeur :

pMenuItem = gtk_separator_menu_item_new (); \
        gtk_menu_shell_append(GTK_MENU_SHELL (pSubMenu), pMenuItem);
Ajoute un separateur dans un menu deja existant

#define CD_APPLET_ADD_ABOUT_IN_MENU ( pMenu   )     CD_APPLET_ADD_IN_MENU (_("About"), about, pMenu)

Ajoute une entree pour la fonction 'A propos'.

Paramètres:
pMenu GtkWidget du menu auquel sera ajoutee l'entree.

#define CD_APPLET_LAST_ITEM_IN_MENU   pMenuItem

Recupere la derniere entree ajoutee dans la fonction.

Renvoie:
le GtkWidget de la derniere entree.

#define CD_APPLET_ON_MIDDLE_CLICK   action_on_middle_click

#define CD_APPLET_REGISTER_FOR_MIDDLE_CLICK_EVENT   cairo_dock_register_notification (CAIRO_DOCK_MIDDLE_CLICK_ICON, (CairoDockNotificationFunc) CD_APPLET_ON_MIDDLE_CLICK, CAIRO_DOCK_RUN_FIRST);

Abonne l'applet aux notifications du clic du milieu. A effectuer lors de l'init de l'applet.

#define CD_APPLET_UNREGISTER_FOR_MIDDLE_CLICK_EVENT   cairo_dock_remove_notification_func (CAIRO_DOCK_MIDDLE_CLICK_ICON, (CairoDockNotificationFunc) CD_APPLET_ON_MIDDLE_CLICK);

Desabonne l'applet aux notifications du clic du milieu. A effectuer lors de l'arret de l'applet.

#define CD_APPLET_ON_MIDDLE_CLICK_BEGIN

Valeur :

gboolean CD_APPLET_ON_MIDDLE_CLICK (gpointer *data) \
{ \
        Icon *pClickedIcon = data[0]; \
        CairoDockContainer *pClickedContainer = data[1]; \
        if (pClickedIcon == myIcon || (myIcon != NULL && pClickedContainer == CAIRO_DOCK_CONTAINER (myIcon->pSubDock)) || pClickedContainer == CAIRO_DOCK_CONTAINER (myDesklet)) \
        {
Debut de la fonction de notification du clic du milieu.

#define CD_APPLET_ON_MIDDLE_CLICK_END

Valeur :

Fin de la fonction de notification du clic du milieu. Par defaut elle intercepte la notification si elle l'a recue.

#define CD_APPLET_ON_MIDDLE_CLICK_H   gboolean CD_APPLET_ON_MIDDLE_CLICK (gpointer *data);

Definition de la fonction precedente; a inclure dans le .h correspondant.

#define CD_APPLET_ON_DROP_DATA   action_on_drop_data

#define CD_APPLET_REGISTER_FOR_DROP_DATA_EVENT   cairo_dock_register_notification (CAIRO_DOCK_DROP_DATA, (CairoDockNotificationFunc) CD_APPLET_ON_DROP_DATA, CAIRO_DOCK_RUN_FIRST);

Abonne l'applet aux notifications du glisse-depose. A effectuer lors de l'init de l'applet.

#define CD_APPLET_UNREGISTER_FOR_DROP_DATA_EVENT   cairo_dock_remove_notification_func (CAIRO_DOCK_DROP_DATA, (CairoDockNotificationFunc) CD_APPLET_ON_DROP_DATA);

Desabonne l'applet aux notifications du glisse-depose. A effectuer lors de l'arret de l'applet.

#define CD_APPLET_ON_DROP_DATA_BEGIN

Valeur :

gboolean CD_APPLET_ON_DROP_DATA (gpointer *data) \
{ \
        Icon *pClickedIcon = data[1]; \
        CairoDockContainer *pClickedContainer = data[3]; \
        if (pClickedIcon == myIcon || (myIcon != NULL && pClickedContainer == CAIRO_DOCK_CONTAINER (myIcon->pSubDock)) || pClickedContainer == CAIRO_DOCK_CONTAINER (myDesklet)) \
        { \
                const gchar *cReceivedData = data[0]; \
                g_return_val_if_fail (cReceivedData != NULL, CAIRO_DOCK_LET_PASS_NOTIFICATION);
Debut de la fonction de notification du glisse-depose.

#define CD_APPLET_RECEIVED_DATA   cReceivedData

Donnees recues (chaine de caracteres).

#define CD_APPLET_ON_DROP_DATA_END

Valeur :

Fin de la fonction de notification du glisse-depose. Par defaut elle intercepte la notification si elle l'a recue.

#define CD_APPLET_ON_DROP_DATA_H   gboolean CD_APPLET_ON_DROP_DATA (gpointer *data);

Definition de la fonction precedente; a inclure dans le .h correspondant.

#define CD_APPLET_REDRAW_MY_ICON   cairo_dock_redraw_my_icon (myIcon, myContainer);

Redessine immediatement l'icone de l'applet.

#define CD_APPLET_SET_SURFACE_ON_MY_ICON ( pSurface   ) 

Valeur :

cairo_dock_set_icon_surface_with_reflect (myDrawContext, pSurface, myIcon, myContainer); \
        cairo_dock_redraw_my_icon (myIcon, myContainer);
Applique une surface existante sur le contexte de dessin de l'applet, et la redessine. La surface est redimensionnee aux dimensions de l'icone.
Paramètres:
pSurface la surface cairo a dessiner.

#define CD_APPLET_SET_SURFACE_ON_MY_ICON_WITH_ZOOM ( pSurface,
fScale   ) 

Valeur :

cairo_dock_set_icon_surface_full (myDrawContext, pSurface, fScale, 1., myIcon, myContainer); \
        cairo_dock_add_reflection_to_icon (myDrawContext, myIcon, myContainer); \
        cairo_dock_redraw_my_icon (myIcon, myContainer);
Applique une surface existante sur le contexte de dessin de l'applet, et la redessine. La surface est redimensionnee aux dimensions de l'icone, et zoomee.
Paramètres:
pSurface la surface cairo a dessiner.
fScale le facteur de zoom (>= 0)

#define CD_APPLET_SET_SURFACE_ON_MY_ICON_WITH_ALPHA ( pSurface,
fAlpha   ) 

Valeur :

cairo_dock_set_icon_surface_full (myDrawContext, pSurface, 1., fAlpha, myIcon, myContainer); \
        cairo_dock_add_reflection_to_icon (myDrawContext, myIcon, myContainer); \
        cairo_dock_redraw_my_icon (myIcon, myContainer);
Applique une surface existante sur le contexte de dessin de l'applet, et la redessine. La surface est redimensionnee aux dimensions de l'icone, et avec un facteur de transparence.
Paramètres:
pSurface la surface cairo a dessiner.
fAlpha la transparence (dans [0 , 1]).

#define CD_APPLET_SET_SURFACE_ON_MY_ICON_WITH_BAR ( pSurface,
fValue   ) 

Valeur :

cairo_dock_set_icon_surface_full (myDrawContext, pSurface, 1., 1., myIcon, myContainer); \
        cairo_dock_draw_bar_on_icon (myDrawContext, fValue, myIcon, myContainer); \
        cairo_dock_add_reflection_to_icon (myDrawContext, myIcon, myContainer); \
        cairo_dock_redraw_my_icon (myIcon, myContainer);
Applique une surface existante sur le contexte de dessin de l'applet, et la redessine. La surface est redimensionnee aux dimensions de l'icone, et une barre est dessinee a sa base.
Paramètres:
pSurface la surface cairo a dessiner.
fValue la valeur en fraction de la valeur max (donc dans [0 , 1]).

#define CD_APPLET_SET_IMAGE_ON_MY_ICON ( cImagePath   ) 

Valeur :

if (cImagePath != myIcon->acFileName) \
        { \
                g_free (myIcon->acFileName); \
                myIcon->acFileName = g_strdup (cImagePath); \
        } \
        cairo_dock_set_image_on_icon (myDrawContext, cImagePath, myIcon, myContainer);
Applique une image definie par son chemin sur le contexte de dessin de l'applet, mais ne la rafraichit pas. L'image est redimensionnee aux dimensions de l'icone.
Paramètres:
cImagePath chemin du fichier de l'image.

#define CD_APPLET_SET_LOCAL_IMAGE_ON_MY_ICON ( cImageName   ) 

Valeur :

{ \
                gchar *cImageFilePath = g_strconcat (MY_APPLET_SHARE_DATA_DIR, "/", cImageName, NULL); \
                CD_APPLET_SET_IMAGE_ON_MY_ICON (cImageFilePath); \
                g_free (cImageFilePath); \
        }
Idem que precedemment mais l'image est definie par son nom localement au repertoire d'installation de l'applet
Paramètres:
cImageName nom du fichier de l'image

#define CD_APPLET_SET_USER_IMAGE_ON_MY_ICON ( cUserImageName,
cDefaultLocalImageName   ) 

Valeur :

{ \
                gchar *cImagePath; \
                if (cUserImageName != NULL) \
                        cImagePath = cairo_dock_generate_file_path (cUserImageName); \
                else \
                        cImagePath = g_strdup_printf ("%s/%s", MY_APPLET_SHARE_DATA_DIR, cDefaultLocalImageName); \
                CD_APPLET_SET_IMAGE_ON_MY_ICON (cImagePath); \
                g_free (cImagePath); \
        }
Idem que precedemment mais l'image est definie relativement au repertoire utilisateur, ou relativement au repertoire d'installation de l'applet si la 1ere est NULL.
Paramètres:
cUserImageName nom du fichier de l'image cote utilisateur.
cDefaultLocalImageName image locale par defaut cote installation.

#define CD_APPLET_SET_ZOOMED_SURFACE_ON_MY_ICON ( pSurface,
fScale   ) 

Valeur :

cairo_dock_set_icon_surface_with_zoom (myDrawContext, pSurface, fScale, myIcon, myContainer); \
        cairo_dock_redraw_my_icon (myIcon, myContainer);
Applique une surface existante sur le contexte de dessin de l'applet, et la redessine. La surface est redimensionnee aux dimensions de l'icone.
Paramètres:
pSurface 
fScale 

#define CD_APPLET_SET_NAME_FOR_MY_ICON ( cIconName   )     cairo_dock_set_icon_name (myDrawContext, cIconName, myIcon, myContainer);

Remplace l'etiquette de l'icone de l'applet par une nouvelle.

Paramètres:
cIconName la nouvelle etiquette.

#define CD_APPLET_SET_QUICK_INFO_ON_MY_ICON ( cQuickInfoFormat,
...   )     cairo_dock_set_quick_info_full (myDrawContext, myIcon, myContainer, cQuickInfoFormat, ##__VA_ARGS__);

Ecris une info-rapide sur l'icone de l'applet.

Paramètres:
cQuickInfoFormat l'info-rapide, au format 'printf'. Ce doit etre une chaine de caracteres particulièrement petite, representant une info concise, puisque ecrite directement sur l'icone.

#define CD_APPLET_SET_QUICK_INFO_ON_MY_ICON_AND_REDRAW ( cQuickInfoFormat,
...   ) 

Valeur :

cairo_dock_set_quick_info_full (myDrawContext, myIcon, myContainer, cQuickInfoFormat, ##__VA_ARGS__); \
        cairo_dock_redraw_my_icon (myIcon, myContainer);
Ecris une info-rapide sur l'icone de l'applet et la redessine.
Paramètres:
cQuickInfoFormat l'info-rapide, au format 'printf'. Ce doit etre une chaine de caracteres particulièrement petite, representant une info concise, puisque ecrite directement sur l'icone.

#define CD_APPLET_SET_HOURS_MINUTES_AS_QUICK_INFO ( iTimeInSeconds   )     cairo_dock_set_hours_minutes_as_quick_info (myDrawContext, myIcon, myContainer, iTimeInSeconds);

Ecris le temps en heures-minutes en info-rapide sur l'icone de l'applet.

Paramètres:
iTimeInSeconds le temps en secondes.

#define CD_APPLET_SET_MINUTES_SECONDES_AS_QUICK_INFO ( iTimeInSeconds   )     cairo_dock_set_minutes_secondes_as_quick_info (myDrawContext, myIcon, myContainer, iTimeInSeconds);

Ecris le temps en minutes-secondes en info-rapide sur l'icone de l'applet.

Paramètres:
iTimeInSeconds le temps en secondes.

#define CD_APPLET_ANIMATE_MY_ICON ( iAnimationType,
iAnimationLength   )     cairo_dock_animate_icon (myIcon, myContainer, iAnimationType, iAnimationLength);

Lance l'animation de l'icone de l'applet.

Paramètres:
iAnimationType type de l'animation (un CairoDockAnimationType).
iAnimationLength duree de l'animation, en nombre de tours.

#define CD_APPLET_LOAD_SURFACE_FOR_MY_APPLET ( cImagePath   )     cairo_dock_create_surface_for_icon (cImagePath, myDrawContext, myIcon->fWidth * (myDock ? (1 + g_fAmplitude) / myDock->fRatio : 1), myIcon->fHeight* (myDock ? (1 + g_fAmplitude) / myDock->fRatio : 1));

Charge une image dans une surface, aux dimensions de l'icone de l'applet.

Paramètres:
cImagePath chemin du fichier de l'image.
Renvoie:
la surface nouvellement creee.

#define CD_APPLET_SET_DESKLET_RENDERER_WITH_DATA ( cRendererName,
pConfig   ) 

Valeur :

cairo_dock_set_desklet_renderer_by_name (myDesklet, cRendererName, NULL, CAIRO_DOCK_LOAD_ICONS_FOR_DESKLET, pConfig); \
        myDrawContext = cairo_create (myIcon->pIconBuffer);
Definit le moteur de rendu de l'applet en mode desklet et le contexte de dessin associe a l'icone. A appeler a l'init mais ausi au reload pour prendre en compte les redimensionnements.
Paramètres:
cRendererName nom du rendu.
pConfig donnees de configuration du rendu.

#define CD_APPLET_SET_DESKLET_RENDERER ( cRendererName   )     CD_APPLET_SET_DESKLET_RENDERER_WITH_DATA (cRendererName, NULL)

Definit le moteur de rendu de l'applet en mode desklet et le contexte de dessin associe a l'icone. A appeler a l'init mais ausi au reload pour prendre en compte les redimensionnements.

Paramètres:
cRendererName nom du rendu.

#define CD_APPLET_INCLUDE_MY_VARS

Valeur :

extern Icon *myIcon; \
extern cairo_t *myDrawContext; \
extern CairoDock *myDock; \
extern CairoDockDesklet *myDesklet; \
extern CairoDockContainer *myContainer; \
extern AppletConfig myConfig; \
extern AppletData myData;
Exportation des variables globales de l'applet. A inclure dans chaque .c ou elles sont utilisees (directement ou via les macros).

#define D_ ( message   )     dgettext (MY_APPLET_GETTEXT_DOMAIN, message)

Macro pour gettext, similaire a _() et N_(), mais avec le nom de domaine en parametre. Encadrez toutes vos chaines de caracteres statiques avec ca, de maniere a ce que l'utilitaire 'xgettext' puisse les trouver et les inclure automatiquement dans les fichiers de traduction.

#define _D   D_

#define CD_APPLET_DEFINE_TIMER ( _get_data,
_read_data,
_load_data   ) 

#define CD_APPLET_START_TIMER   cairo_dock_launch_measure ();

#define CD_APPLET_STOP_TIMER

Valeur :

if (myData.iSidTimer != 0) { \
                g_source_remove (myData.iSidTimer); \
                myData.iSidTimer = 0; }

#define CD_APPLET_TIMER_IS_RUNNING   (myData.iSidTimer != 0)


Documentation des fonctions

gchar* cairo_dock_check_conf_file_exists ( gchar *  cUserDataDirName,
gchar *  cShareDataDir,
gchar *  cConfFileName 
)

Verifie que le fichier de conf d'un plug-in est bien present dans le repertoire utilisateur du plug-in, sinon le copie a partir du fichier de conf fournit lors de l'installation. Cree au besoin le repertoire utilisateur du plug-in.

Paramètres:
cUserDataDirName le nom du repertoire utilisateur du plug-in.
cShareDataDir le chemin du repertoire d'installation du plug-in.
cConfFileName : le nom du fichier de conf fournit a l'installation.
Renvoie:
Le chemin du fichier de conf en espace utilisateur, ou NULL si le fichier n'a pu etre ni trouve, ni cree.

void cairo_dock_free_minimal_config ( CairoDockMinimalAppletConfig pMinimalConfig  ) 

void cairo_dock_set_icon_surface_full ( cairo_t *  pIconContext,
cairo_surface_t *  pSurface,
double  fScale,
double  fAlpha,
Icon pIcon,
CairoDockContainer pContainer 
)

Applique une surface sur un contexte, en effacant tout au prealable, et en appliquant un facteur de zoom et de transparence.

Paramètres:
pIconContext le contexte du dessin; est modifie par la fonction.
pSurface la surface a appliquer.
fScale le zoom.
fAlpha la transparence.
pIcon l'icone.
pContainer le container de l'icone.

void cairo_dock_draw_bar_on_icon ( cairo_t *  pIconContext,
double  fValue,
Icon pIcon,
CairoDockContainer pContainer 
)

Dessine une barre degradee rouge->vert representant une valeur donnee a la base de l'icone.

Paramètres:
pIconContext le contexte du dessin; est modifie par la fonction.
fValue la valeur representant un pourcentage, <=1.
pIcon l'icone.
pContainer le container de l'icone.

void cairo_dock_add_reflection_to_icon ( cairo_t *  pIconContext,
Icon pIcon,
CairoDockContainer pContainer 
)

Cree les surfaces de reflection d'une icone.

Paramètres:
pIconContext le contexte de dessin lie a la surface de l'icone; est modifie par la fonction.
pIcon l'icone.
pContainer le container de l'icone.

void cairo_dock_set_icon_surface_with_reflect ( cairo_t *  pIconContext,
cairo_surface_t *  pSurface,
Icon pIcon,
CairoDockContainer pContainer 
)

Applique une surface sur le contexte d'une icone, en effacant tout au prealable et en creant les reflets correspondant.

Paramètres:
pIconContext le contexte de dessin lie a la surface de l'icone; est modifie par la fonction.
pSurface la surface a appliquer a l'icone.
pIcon l'icone.
pContainer le container de l'icone.

void cairo_dock_set_image_on_icon ( cairo_t *  pIconContext,
gchar *  cImagePath,
Icon pIcon,
CairoDockContainer pContainer 
)

Applique une image sur le contexte d'une icone, en effacant tout au prealable et en creant les reflets correspondant.

Paramètres:
pIconContext le contexte de dessin lie a la surface de l'icone; est modifie par la fonction.
cImagePath chemin de l'image a appliquer a l'icone.
pIcon l'icone.
pContainer le container de l'icone.

void cairo_dock_set_icon_name ( cairo_t *  pSourceContext,
const gchar *  cIconName,
Icon pIcon,
CairoDockContainer pContainer 
)

Modifie l'etiquette d'une icone.

Paramètres:
pSourceContext un contexte de dessin; n'est pas altere par la fonction.
cIconName la nouvelle etiquette de l'icone.
pIcon l'icone.
pContainer le container de l'icone.

void cairo_dock_set_quick_info ( cairo_t *  pSourceContext,
const gchar *  cQuickInfo,
Icon pIcon,
double  fMaxScale 
)

Ecris une info-rapide sur l'icone. C'est un petit texte (quelques caracteres) qui vient se superposer sur l'icone, avec un fond fonce.

Paramètres:
pSourceContext un contexte de dessin; n'est pas altere par la fonction.
cQuickInfo le texte de l'info-rapide.
pIcon l'icone.
fMaxScale le facteur de zoom max.

void cairo_dock_set_quick_info_full ( cairo_t *  pSourceContext,
Icon pIcon,
CairoDockContainer pContainer,
const gchar *  cQuickInfoFormat,
  ... 
)

Ecris une info-rapide sur l'icone, en prenant une chaine au format 'printf'.

Paramètres:
pSourceContext un contexte de dessin; n'est pas altere par la fonction.
pIcon l'icone.
pContainer le container de l'icone.
cQuickInfoFormat le texte de l'info-rapide, au format 'printf' (s, d, etc)
... les donnees a inserer dans la chaine de caracteres.

void cairo_dock_set_hours_minutes_as_quick_info ( cairo_t *  pSourceContext,
Icon pIcon,
CairoDockContainer pContainer,
int  iTimeInSeconds 
)

void cairo_dock_set_minutes_secondes_as_quick_info ( cairo_t *  pSourceContext,
Icon pIcon,
CairoDockContainer pContainer,
int  iTimeInSeconds 
)

void cairo_dock_animate_icon ( Icon pIcon,
CairoDock pDock,
CairoDockAnimationType  iAnimationType,
int  iNbRounds 
)

Prepare l'animation d'une icone, et la lance immediatement.

Paramètres:
pIcon l'icone a animer.
pDock le dock contenant l'icone.
iAnimationType le type d'animation voulu, ou -1 pour utiliser l'animtion correspondante au type de l'icone.
iNbRounds le nombre de fois ou l'animation sera jouee, ou -1 pour utiliser la valeur correspondante au type de l'icone.

gchar* cairo_dock_manage_themes_for_applet ( gchar *  cAppletShareDataDir,
gchar *  cThemeDirName,
gchar *  cAppletConfFilePath,
GKeyFile *  pKeyFile,
gchar *  cGroupName,
gchar *  cKeyName,
gboolean *  bFlushConfFileNeeded,
gchar *  cDefaultThemeName 
)

Liste les themes contenu dans un repertoire, met a jour le fichier de conf avec, et renvoie le chemin correspondant au theme choisi.

Paramètres:
cAppletShareDataDir chemin du repertoire contenant les donnees de l'applet.
cThemeDirName nom du sous-repertoire regroupant tous les themes.
cAppletConfFilePath chemin du fichier de conf.
pKeyFile le fichier de conf ouvert.
cGroupName nom du groupe (dans le fichier de conf) du parametre correspondant au theme.
cKeyName nom de la cle (dans le fichier de conf) du parametre correspondant au theme.
bFlushConfFileNeeded pointeur sur un booleen mis a TRUE si la cle n'existe pas.
cDefaultThemeName nom du theme par defaut au cas ou le precedent n'existerait pas.
Renvoie:
Le chemin du repertoire du theme choisi, dans une chaine nouvellement allouee.

GtkWidget* cairo_dock_create_sub_menu ( gchar *  cLabel,
GtkWidget *  pMenu 
)

Cree un sous-menu, et l'ajoute a un menu deja existant.

Paramètres:
cLabel nom du sous-menu, tel qu'il apparaitra dans le menu.
pMenu menu auquel on rajoutera le sous-menu.
Renvoie:
le sous-menu cree et ajoute au menu.

void cairo_dock_launch_measure ( CairoDockMeasure pMeasureTimer  ) 

Lance les mesures periodiques, prealablement preparee avec cairo_dock_new_measure_timer. La 1ere iteration est executee immediatement. L'acquisition et la lecture des donnees est faite de maniere asynchrone (dans un thread secondaire), alors que le chargement des mesures se fait dans la boucle principale.

Paramètres:
pMeasureTimer la mesure periodique.

CairoDockMeasure* cairo_dock_new_measure_timer ( int  iCheckInterval,
GVoidFunc  acquisition,
GVoidFunc  read,
GVoidFunc  update 
)

Cree une mesure periodique.

Paramètres:
iCheckInterval l'intervalle en ms entre 2 mesures.
acquisition fonction d'acquisition des donnees.
read fonction de lecture des donnees acquises.
update fonction de mise a jour de l'interface en fonction des nouvelles donnees.
Renvoie:
la mesure nouvellement allouee. A liberer avec cairo_dock_free_measure_timer.

void cairo_dock_stop_measure_timer ( CairoDockMeasure pMeasureTimer  ) 

Stoppe les mesures. Si une mesure est en cours, le thread d'acquisition/lecture se terminera tout seul plus tard, et la mesure sera ignoree. On peut reprendre les mesures par un simple cairo_dock_launch_measure.

Paramètres:
pMeasureTimer la mesure periodique.

void cairo_dock_free_measure_timer ( CairoDockMeasure pMeasureTimer  ) 

Stoppe et detruit une mesure periodique, liberant toutes ses ressources allouees.

Paramètres:
pMeasureTimer la mesure periodique.

gboolean cairo_dock_measure_is_active ( CairoDockMeasure pMeasureTimer  ) 

Dis si une mesure est active, c'est a dire si elle est appelee periodiquement.

Paramètres:
pMeasureTimer la mesure periodique.
Renvoie:
TRUE ssi la mesure est active.

void cairo_dock_change_measure_frequency ( CairoDockMeasure pMeasureTimer,
int  iNewCheckInterval 
)

Change la frequence des mesures. La prochaine mesure aura lien dans 1 iteration si elle etait deja active.

Paramètres:
pMeasureTimer la mesure periodique.
iNewCheckInterval le nouvel intervalle entre 2 mesures, en ms.


Généré le Wed Apr 16 03:27:16 2008 pour Cairo-Dock par  doxygen 1.5.3