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_BACKENDS_MANAGER__
22
#define __CAIRO_DOCK_BACKENDS_MANAGER__
26
#include "cairo-dock-struct.h"
27
#include "cairo-dock-desklet-factory.h"
28
#include "cairo-dock-dock-factory.h"
29
#include "cairo-dock-dialog-factory.h"
30
#include "cairo-dock-data-renderer.h"
33
struct _CairoDockAnimationRecord {
35
const gchar *cDisplayedName;
39
struct _CairoDockDataRendererRecord {
40
CairoDataRendererNewFunc new;
41
const gchar *cThemeDirName;
42
const gchar *cDefaultTheme;
45
CairoDockRenderer *cairo_dock_get_renderer (const gchar *cRendererName, gboolean bForMainDock);
46
void cairo_dock_register_renderer (const gchar *cRendererName, CairoDockRenderer *pRenderer);
47
void cairo_dock_remove_renderer (const gchar *cRendererName);
49
CairoDeskletRenderer *cairo_dock_get_desklet_renderer (const gchar *cRendererName);
50
void cairo_dock_register_desklet_renderer (const gchar *cRendererName, CairoDeskletRenderer *pRenderer);
51
void cairo_dock_remove_desklet_renderer (const gchar *cRendererName);
52
void cairo_dock_predefine_desklet_renderer_config (CairoDeskletRenderer *pRenderer, const gchar *cConfigName, CairoDeskletRendererConfigPtr pConfig);
53
CairoDeskletRendererConfigPtr cairo_dock_get_desklet_renderer_predefined_config (const gchar *cRendererName, const gchar *cConfigName);
55
CairoDialogRenderer *cairo_dock_get_dialog_renderer (const gchar *cRendererName);
56
void cairo_dock_register_dialog_renderer (const gchar *cRendererName, CairoDialogRenderer *pRenderer);
57
void cairo_dock_remove_dialog_renderer (const gchar *cRendererName);
59
CairoDeskletDecoration *cairo_dock_get_desklet_decoration (const gchar *cDecorationName);
60
void cairo_dock_register_desklet_decoration (const gchar *cDecorationName, CairoDeskletDecoration *pDecoration);
61
void cairo_dock_remove_desklet_decoration (const gchar *cDecorationName);
63
CairoDataRendererNewFunc cairo_dock_get_data_renderer_entry_point (const gchar *cRendererName);
64
CairoDockDataRendererRecord *cairo_dock_get_data_renderer_record (const gchar *cRendererName);
65
void cairo_dock_register_data_renderer_entry_point (const gchar *cRendererName, CairoDataRendererNewFunc pFunc, const gchar *cThemeDirName, const gchar *cDefaultTheme);
66
void cairo_dock_remove_data_renderer_entry_point (const gchar *cRendererName);
68
CairoDockHidingEffect *cairo_dock_get_hiding_effect (const gchar *cHidingEffect);
69
void cairo_dock_register_hiding_effect (const gchar *cHidingEffect, CairoDockHidingEffect *pEffect);
70
void cairo_dock_remove_hiding_effect (const gchar *cHidingEffect);
72
CairoIconContainerRenderer *cairo_dock_get_icon_container_renderer (const gchar *cRendererName);
73
void cairo_dock_register_icon_container_renderer (const gchar *cRendererName, CairoIconContainerRenderer *pRenderer);
74
void cairo_dock_remove_icon_container_renderer (const gchar *cRendererName);
75
void cairo_dock_foreach_icon_container_renderer (GHFunc pCallback, gpointer data);
77
void cairo_dock_init_backends_manager (void);
79
void cairo_dock_set_renderer (CairoDock *pDock, const gchar *cRendererName);
80
void cairo_dock_set_default_renderer (CairoDock *pDock);
82
void cairo_dock_set_desklet_renderer (CairoDesklet *pDesklet, CairoDeskletRenderer *pRenderer, CairoDeskletRendererConfigPtr pConfig);
83
void cairo_dock_set_desklet_renderer_by_name (CairoDesklet *pDesklet, const gchar *cRendererName, CairoDeskletRendererConfigPtr pConfig);
85
void cairo_dock_set_dialog_renderer (CairoDialog *pDialog, CairoDialogRenderer *pRenderer, CairoDialogRendererConfigPtr pConfig);
86
void cairo_dock_set_dialog_renderer_by_name (CairoDialog *pDialog, const gchar *cRendererName, CairoDialogRendererConfigPtr pConfig);
88
CairoDialogDecorator *cairo_dock_get_dialog_decorator (const gchar *cDecoratorName);
89
void cairo_dock_register_dialog_decorator (const gchar *cDecoratorName, CairoDialogDecorator *pDecorator);
90
void cairo_dock_remove_dialog_decorator (const gchar *cDecoratorName);
91
void cairo_dock_set_dialog_decorator (CairoDialog *pDialog, CairoDialogDecorator *pDecorator);
92
void cairo_dock_set_dialog_decorator_by_name (CairoDialog *pDialog, const gchar *cDecoratorName);
95
void cairo_dock_render_desklet_with_new_data (CairoDesklet *pDesklet, CairoDeskletRendererDataPtr pNewData);
96
void cairo_dock_render_dialog_with_new_data (CairoDialog *pDialog, CairoDialogRendererDataPtr pNewData);
99
void cairo_dock_update_renderer_list_for_gui (void);
100
void cairo_dock_update_desklet_decorations_list_for_gui (void);
101
void cairo_dock_update_desklet_decorations_list_for_applet_gui (void);
102
void cairo_dock_update_animations_list_for_gui (void);
103
void cairo_dock_update_dialog_decorator_list_for_gui (void);
106
int cairo_dock_register_animation (const gchar *cAnimation, const gchar *cDisplayedName, gboolean bIsEffect);
107
void cairo_dock_free_animation_record (CairoDockAnimationRecord *pRecord);
108
int cairo_dock_get_animation_id (const gchar *cAnimation);
109
const gchar *cairo_dock_get_animation_displayed_name (const gchar *cAnimation);
110
void cairo_dock_unregister_animation (const gchar *cAnimation);
111
void cairo_dock_foreach_animation (GHFunc pHFunction, gpointer data);
114
#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)))
115
#define CAIRO_DOCK_CONTAINER_IS_OPENGL CAIRO_CONTAINER_IS_OPENGL