cairo-dock-applet-factory.h

Aller à la documentation de ce fichier.
00001 
00002 #ifndef __CAIRO_DOCK_APPLET_FACTORY__
00003 #define  __CAIRO_DOCK_APPLET_FACTORY__
00004 
00005 #include <glib.h>
00006 
00007 #include "cairo-dock-struct.h"
00008 
00009 
00010 cairo_surface_t *cairo_dock_create_applet_surface (gchar *cImageFilePath, cairo_t *pSourceContext, double fMaxScale, double *fWidth, double *fHeight);
00011 
00012 
00013 Icon *cairo_dock_create_icon_for_applet (CairoDock *pDock, int iWidth, int iHeight, gchar *cName, gchar *cIconName);
00014 
00015 
00016 
00017 GKeyFile *cairo_dock_read_header_applet_conf_file (gchar *cConfFilePath, int *iWidth, int *iHeight, gchar **cName, gboolean *bFlushConfFileNeeded);
00018 
00019 
00020 GHashTable *cairo_dock_list_themes (gchar *cThemesDir, GHashTable *hProvidedTable, GError **erreur);
00021 
00022 
00023 gchar *cairo_dock_check_conf_file_exists (gchar *cUserDataDirName, gchar *cShareDataDir, gchar *cConfFileName);
00024 
00025 
00026 void cairo_dock_set_icon_surface (cairo_t *pIconContext, cairo_surface_t *pSurface);
00027 void cairo_dock_add_reflection_to_icon (cairo_t *pIconContext, Icon *pIcon, CairoDock *pDock);
00028 void cairo_dock_set_icon_surface_with_reflect (cairo_t *pIconContext, cairo_surface_t *pSurface, Icon *pIcon, CairoDock *pDock);
00029 
00030 void cairo_dock_set_icon_name (cairo_t *pIconContext, const gchar *cIconName, Icon *pIcon, CairoDock *pDock);
00031 
00032 void cairo_dock_set_quick_info (cairo_t *pIconContext, const gchar *cExtraInfo, Icon *pIcon);
00033 #define cairo_dock_remove_quick_info(pIcon) cairo_dock_set_quick_info (NULL, NULL, pIcon)
00034 
00035 void cairo_dock_animate_icon (Icon *pIcon, CairoDock *pDock, CairoDockAnimationType iAnimationType, int iNbRounds);
00036 
00037 int cairo_dock_get_number_from_name (gchar *cValue, gchar **cValuesList);
00038 
00039 
00040 
00041 #define CD_CONFIG_APPLET \
00042 void read_conf_file (gchar *cConfFilePath, int *iWidth, int *iHeight, gchar *cName)
00043 
00044 #define CD_CONFIG_BEGIN \
00045         GError *erreur = NULL; \
00046         gboolean bFlushConfFileNeeded = FALSE; \
00047         GKeyFile *pKeyFile = cairo_dock_read_header_applet_conf_file (cConfFilePath, iWidth, iHeight, &cName, &bFlushConfFileNeeded); \
00048         g_return_if_fail (pKeyFile != NULL);
00049 #define CD_CONFIG_END \
00050         if (bFlushConfFileNeeded) \
00051                 cairo_dock_write_keys_to_file (pKeyFile, cConfFilePath); \
00052         g_key_file_free (pKeyFile);
00053 
00054 #define CD_CONFIG_GET_BOOLEAN(cGroupName, cKeyName) cairo_dock_get_boolean_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, TRUE)
00055 #define CD_CONFIG_GET_INTEGER(cGroupName, cKeyName) cairo_dock_get_integer_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, 0)
00056 #define CD_CONFIG_GET_DOUBLE(cGroupName, cKeyName) cairo_dock_get_double_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, 0.)
00057 #define CD_CONFIG_GET_STRING(cGroupName, cKeyName) cairo_dock_get_string_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, NULL)
00058 #define CD_CONFIG_GET_ANIMATION(cGroupName, cKeyName) cairo_dock_get_animation_type_key_value (pKeyFile, cGroupName, cKeyName, &bFlushConfFileNeeded, NULL);
00059 
00060 
00061 #define CD_APPLET_DEFINITION(cName, iMajorVersion, iMinorVersion, iMicroVersion) \
00062 CairoDockVisitCard *pre_init (void)\
00063 {\
00064         CairoDockVisitCard *pVisitCard = g_new0 (CairoDockVisitCard, 1);\
00065         pVisitCard->cModuleName = g_strdup (cName);\
00066         pVisitCard->cReadmeFilePath = g_strdup_printf ("%s/%s", MY_APPLET_SHARE_DATA_DIR, MY_APPLET_README_FILE);\
00067         pVisitCard->iMajorVersionNeeded = iMajorVersion;\
00068         pVisitCard->iMinorVersionNeeded = iMinorVersion;\
00069         pVisitCard->iMicroVersionNeeded = iMicroVersion;\
00070         return pVisitCard;\
00071 }
00072 
00073 #define CD_INIT_APPLET Icon *init (CairoDock *pDock, gchar **cConfFilePath, GError **erreur)
00074 #define CD_STOP_APPLET void stop (void)
00075 #define CD_PRE_INIT_APPLET gchar *pre_init (void)
00076 
00077 #define CD_APPLET_INIT_BEGIN \
00078         myDock = pDock; \
00079         *cConfFilePath = cairo_dock_check_conf_file_exists (MY_APPLET_USER_DATA_DIR, MY_APPLET_SHARE_DATA_DIR, APPLET_CONF_FILE); \
00080         int iOriginalWidth = 48, iOriginalHeight = 48; \
00081         gchar *cAppletName = NULL; \
00082         read_conf_file (*cConfFilePath, &iOriginalWidth, &iOriginalHeight, &cAppletName); \
00083         myIcon = cairo_dock_create_icon_for_applet (pDock, iOriginalWidth, iOriginalHeight, conf_defaultTitle, NULL); \
00084         myDrawContext = cairo_create (myIcon->pIconBuffer);
00085 
00086 #define CD_APPLET_INIT_END \
00087         g_free (cAppletName); \
00088         return myIcon;
00089 
00090 
00091 #define CD_CLICK_ON_APPLET \
00092 gboolean action_on_click (gpointer *data)
00093 
00094 #define CD_CLICK_ON_APPLET_BEGIN \
00095         if (data[0] == myIcon) \
00096         {
00097 
00098 #define CD_CLICK_ON_APPLET_END \
00099         } \
00100         return CAIRO_DOCK_LET_PASS_NOTIFICATION;
00101 
00102 
00103 #endif

Généré le Tue Dec 4 16:38:28 2007 pour Cairo-Dock par  doxygen 1.4.6