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_RENDERER_MANAGER__
22
#define __CAIRO_DOCK_RENDERER_MANAGER__
26
#include "cairo-dock-struct.h"
27
#include "cairo-dock-desklet.h"
28
#include "cairo-dock-dock-factory.h"
29
#include "cairo-dock-dialogs.h"
30
#include "cairo-dock-data-renderer.h"
33
struct _CairoDockAnimationRecord {
35
const gchar *cDisplayedName;
38
CairoDockRenderer *cairo_dock_get_renderer (const gchar *cRendererName, gboolean bForMainDock);
39
void cairo_dock_register_renderer (const gchar *cRendererName, CairoDockRenderer *pRenderer);
40
void cairo_dock_remove_renderer (const gchar *cRendererName);
42
CairoDeskletRenderer *cairo_dock_get_desklet_renderer (const gchar *cRendererName);
43
void cairo_dock_register_desklet_renderer (const gchar *cRendererName, CairoDeskletRenderer *pRenderer);
44
void cairo_dock_remove_desklet_renderer (const gchar *cRendererName);
45
void cairo_dock_predefine_desklet_renderer_config (CairoDeskletRenderer *pRenderer, const gchar *cConfigName, CairoDeskletRendererConfigPtr pConfig);
46
CairoDeskletRendererConfigPtr cairo_dock_get_desklet_renderer_predefined_config (const gchar *cRendererName, const gchar *cConfigName);
48
CairoDialogRenderer *cairo_dock_get_dialog_renderer (const gchar *cRendererName);
49
void cairo_dock_register_dialog_renderer (const gchar *cRendererName, CairoDialogRenderer *pRenderer);
50
void cairo_dock_remove_dialog_renderer (const gchar *cRendererName);
52
CairoDeskletDecoration *cairo_dock_get_desklet_decoration (const gchar *cDecorationName);
53
void cairo_dock_register_desklet_decoration (const gchar *cDecorationName, CairoDeskletDecoration *pDecoration);
54
void cairo_dock_remove_desklet_decoration (const gchar *cDecorationName);
56
CairoDataRendererNewFunc cairo_dock_get_data_renderer_entry_point (const gchar *cRendererName);
57
void cairo_dock_register_data_renderer_entry_point (const gchar *cRendererName, CairoDataRendererNewFunc pFunc);
58
void cairo_dock_remove_data_renderer_entry_point (const gchar *cRendererName);
61
void cairo_dock_initialize_renderer_manager (void);
63
void cairo_dock_set_renderer (CairoDock *pDock, const gchar *cRendererName);
64
void cairo_dock_set_default_renderer (CairoDock *pDock);
66
void cairo_dock_set_desklet_renderer (CairoDesklet *pDesklet, CairoDeskletRenderer *pRenderer, cairo_t *pSourceContext, gboolean bLoadIcons, CairoDeskletRendererConfigPtr pConfig);
67
void cairo_dock_set_desklet_renderer_by_name (CairoDesklet *pDesklet, const gchar *cRendererName, cairo_t *pSourceContext, gboolean bLoadIcons, CairoDeskletRendererConfigPtr pConfig);
69
void cairo_dock_set_dialog_renderer (CairoDialog *pDialog, CairoDialogRenderer *pRenderer, cairo_t *pSourceContext, CairoDialogRendererConfigPtr pConfig);
70
void cairo_dock_set_dialog_renderer_by_name (CairoDialog *pDialog, const gchar *cRendererName, cairo_t *pSourceContext, CairoDialogRendererConfigPtr pConfig);
72
CairoDialogDecorator *cairo_dock_get_dialog_decorator (const gchar *cDecoratorName);
73
void cairo_dock_register_dialog_decorator (const gchar *cDecoratorName, CairoDialogDecorator *pDecorator);
74
void cairo_dock_remove_dialog_decorator (const gchar *cDecoratorName);
75
void cairo_dock_set_dialog_decorator (CairoDialog *pDialog, CairoDialogDecorator *pDecorator);
76
void cairo_dock_set_dialog_decorator_by_name (CairoDialog *pDialog, const gchar *cDecoratorName);
79
void cairo_dock_render_desklet_with_new_data (CairoDesklet *pDesklet, CairoDeskletRendererDataPtr pNewData);
80
void cairo_dock_render_dialog_with_new_data (CairoDialog *pDialog, CairoDialogRendererDataPtr pNewData);
83
void cairo_dock_update_renderer_list_for_gui (void);
84
void cairo_dock_update_desklet_decorations_list_for_gui (void);
85
void cairo_dock_update_desklet_decorations_list_for_applet_gui (void);
86
void cairo_dock_update_animations_list_for_gui (void);
87
void cairo_dock_update_dialog_decorator_list_for_gui (void);
90
int cairo_dock_register_animation (const gchar *cAnimation, const gchar *cDisplayedName);
91
void cairo_dock_free_animation_record (CairoDockAnimationRecord *pRecord);
92
int cairo_dock_get_animation_id (const gchar *cAnimation);
93
const gchar *cairo_dock_get_animation_displayed_name (const gchar *cAnimation);
94
void cairo_dock_unregister_animation (const gchar *cAnimation);
97
#define CAIRO_CONTAINER_IS_OPENGL(pContainer) (g_bUseOpenGL && ((CAIRO_DOCK_IS_DOCK (pContainer) && CAIRO_DOCK (pContainer)->pRenderer->render_opengl) || (CAIRO_DOCK_IS_DESKLET (pContainer) && CAIRO_DESKLET (pContainer)->pRenderer && CAIRO_DESKLET (pContainer)->pRenderer->render_opengl)))
98
#define CAIRO_DOCK_CONTAINER_IS_OPENGL CAIRO_CONTAINER_IS_OPENGL