00001 #include "cairo-dock-struct.h" 00002 #include <libxml/tree.h> 00003 #include <libxml/parser.h> 00004 00005 typedef struct 00006 { 00007 RsvgHandle *svgNeedle; 00008 cairo_surface_t *cairoSurface; 00009 int sizeX; 00010 int sizeY; 00011 } GaugeImage; 00012 00013 typedef struct 00014 { 00015 double posX; 00016 double posY; 00017 double posStart; 00018 double posStop; 00019 double direction; 00020 int nbImage; 00021 GList *imageList; 00022 GList *imageNeedle; 00023 } GaugeIndicator; 00024 00025 typedef struct 00026 { 00027 gchar *themeName; 00028 int sizeX; 00029 int sizeY; 00030 GaugeImage *imageBackground; 00031 GaugeImage *imageForeground; 00032 GList *indicatorList; 00033 } Gauge; 00034 00035 void cd_xml_open_file(gchar *filePath,gchar *mainNodeName,xmlDocPtr *xmlDoc,xmlNodePtr *node); 00036 00037 Gauge *init_cd_Gauge(cairo_t *pSourceContext, gchar *themeName, int iWidth, int iHeight); 00038 GaugeImage *init_cd_GaugeImage(gchar *sImagePath); 00039 00040 void make_cd_Gauge(cairo_t *pSourceContext, CairoDock *pDock, Icon *pIcon, Gauge *pGauge, double dValue); 00041 void make_cd_Gauge_multiValue(cairo_t *pSourceContext, CairoDock *pDock, Icon *pIcon, Gauge *pGauge, GList *valueList); 00042 void draw_cd_Gauge_needle(cairo_t *pSourceContext, Gauge *pGauge, GaugeIndicator *pGaugeIndicator, double dValue); 00043 void draw_cd_Gauge_image(cairo_t *pSourceContext, Gauge *pGauge, GaugeIndicator *pGaugeIndicator, double dValue); 00044 void draw_cd_GaugeImage(cairo_t *pSourceContext, GaugeImage *pGaugeImage, int iWidth, int iHeight); 00045 00046 void free_cd_GaugeImage(GaugeImage *pGaugeImage); 00047 void free_cd_GaugeIndicator(GaugeIndicator *pGaugeIndicator); 00048 void free_cd_Gauge(Gauge *pGauge); 00049 00050 gchar *cairo_dock_get_gauge_key_value(gchar *cAppletConfFilePath, GKeyFile *pKeyFile, gchar *cGroupName, gchar *cKeyName, gboolean *bFlushConfFileNeeded, gchar *cDefaultThemeName);