2
* This file is a part of the Cairo-Dock project
4
* Copyright : (C) see the 'copyright' file.
5
* E-mail : see the 'copyright' file.
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.
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/>.
21
#ifndef __CAIRO_DOCK_DATA_RENDERER_MANAGER__
22
#define __CAIRO_DOCK_DATA_RENDERER_MANAGER__
26
#include "cairo-dock-struct.h"
27
#include "cairo-dock-manager.h"
28
#include "cairo-dock-data-renderer.h"
32
*@file cairo-dock-data-renderer-manager.h This class manages the list of available Data Renderers and their global ressources.
35
typedef struct _CairoDataRenderersManager CairoDataRenderersManager;
38
extern CairoDataRenderersManager myDataRenderersMgr;
42
struct _CairoDockDataRendererRecord {
43
CairoDataRendererInterface interface;
45
const gchar *cThemeDirName;
46
const gchar *cDistantThemeDirName;
47
const gchar *cDefaultTheme;
53
struct _CairoDataRenderersManager {
56
CairoDockGLFont* (*get_default_data_renderer_font) (void);
58
void (*register_data_renderer) (const gchar *cRendererName, CairoDockDataRendererRecord *pRecord);
59
void (*remove_data_renderer) (const gchar *cRendererName);
60
CairoDataRenderer* (*new_data_renderer) (const gchar *cRendererName);
62
GHashTable* (*list_available_themes_for_data_renderer) (const gchar *cRendererName);
63
gchar* (*get_data_renderer_theme_path) (const gchar *cRendererName, const gchar *cThemeName, CairoDockPackageType iType);
64
gchar* (*get_package_path_for_data_renderer) (const gchar *cRendererName, const gchar *cAppletConfFilePath, GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, const gchar *cDefaultThemeName);
69
NB_NOTIFICATIONS_DATA_RENDERERS
70
} CairoDataRendererNotifications;
73
/** Get the default GLX font for Data Renderer. It can render strings of ASCII characters fastly. Don't destroy it.
74
*@return the default GLX font*/
75
CairoDockGLFont *cairo_dock_get_default_data_renderer_font (void);
77
void cairo_dock_unload_default_data_renderer_font (void); // merge with unload
80
CairoDockDataRendererRecord *cairo_dock_get_data_renderer_record (const gchar *cRendererName); // peu utile.
82
void cairo_dock_register_data_renderer (const gchar *cRendererName, CairoDockDataRendererRecord *pRecord);
84
void cairo_dock_remove_data_renderer (const gchar *cRendererName);
87
CairoDataRenderer *cairo_dock_new_data_renderer (const gchar *cRendererName);
90
GHashTable *cairo_dock_list_available_themes_for_data_renderer (const gchar *cRendererName);
92
gchar *cairo_dock_get_data_renderer_theme_path (const gchar *cRendererName, const gchar *cThemeName, CairoDockPackageType iType);
94
gchar *cairo_dock_get_package_path_for_data_renderer (const gchar *cRendererName, const gchar *cAppletConfFilePath, GKeyFile *pKeyFile, const gchar *cGroupName, const gchar *cKeyName, gboolean *bFlushConfFileNeeded, const gchar *cDefaultThemeName);
97
void gldi_register_data_renderers_manager (void);