summaryrefslogtreecommitdiff
path: root/src/glibext
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-12-26 23:52:44 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-12-26 23:52:44 (GMT)
commit2c28d59fb3671c0fdd1987784076d4968c58b651 (patch)
treea301f6cd9c1fd9f92191fba7fe7b59a7e3a01b5a /src/glibext
parent67b4887317b7394d63b543aa48cb368406374103 (diff)
Created the GLoadedContent interface to load all kinds of content.
Diffstat (limited to 'src/glibext')
-rw-r--r--src/glibext/gloadedpanel-int.h9
-rw-r--r--src/glibext/gloadedpanel.c52
-rw-r--r--src/glibext/gloadedpanel.h21
3 files changed, 76 insertions, 6 deletions
diff --git a/src/glibext/gloadedpanel-int.h b/src/glibext/gloadedpanel-int.h
index 8686d1b..904041d 100644
--- a/src/glibext/gloadedpanel-int.h
+++ b/src/glibext/gloadedpanel-int.h
@@ -29,6 +29,12 @@
+/* Définit le contenu associé à un panneau de chargement. */
+typedef void (* set_loaded_panel_content_fc) (GLoadedPanel *, GLoadedContent *);
+
+/* Fournit le contenu associé à un panneau de chargement. */
+typedef GLoadedContent * (* get_loaded_panel_content_fc) (const GLoadedPanel *);
+
/* Place en cache un rendu destiné à l'aperçu graphique rapide. */
typedef void (* cache_loaded_glance_fc) (GLoadedPanel *, cairo_t *, const GtkAllocation *, double);
@@ -38,6 +44,9 @@ struct _GLoadedPanelIface
{
GTypeInterface base_iface; /* A laisser en premier */
+ set_loaded_panel_content_fc set_content;/* Définition du contenu */
+ get_loaded_panel_content_fc get_content;/* Récupération du contenu */
+
cache_loaded_glance_fc cache_glance; /* Cache de la mignature */
};
diff --git a/src/glibext/gloadedpanel.c b/src/glibext/gloadedpanel.c
index fa12ec7..4d5a1e1 100644
--- a/src/glibext/gloadedpanel.c
+++ b/src/glibext/gloadedpanel.c
@@ -57,6 +57,58 @@ static void g_loaded_panel_default_init(GLoadedPanelInterface *iface)
/******************************************************************************
* *
+* Paramètres : panel = composant GTK à compléter. *
+* content = contenu quelconque chargé en mémoire. *
+* *
+* Description : Définit le contenu associé à un panneau de chargement. *
+* *
+* Retour : *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_loaded_panel_set_content(GLoadedPanel *panel, GLoadedContent *content)
+{
+ GLoadedPanelIface *iface; /* Interface utilisée */
+
+ g_object_ref(G_OBJECT(content));
+
+ iface = G_LOADED_PANEL_GET_IFACE(panel);
+
+ iface->set_content(panel, content);
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : panel = composant GTK à consulter. *
+* *
+* Description : Fournit le contenu associé à un panneau de chargement. *
+* *
+* Retour : Contenu quelconque chargé en mémoire. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GLoadedContent *g_loaded_panel_get_content(const GLoadedPanel *panel)
+{
+ GLoadedContent *result; /* Contenu à retourner */
+ GLoadedPanelIface *iface; /* Interface utilisée */
+
+ iface = G_LOADED_PANEL_GET_IFACE(panel);
+
+ result = iface->get_content(panel);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : panel = composant GTK à manipuler. *
* cairo = assistant pour la création de rendus. *
* area = taille de la surface réduite à disposition. *
diff --git a/src/glibext/gloadedpanel.h b/src/glibext/gloadedpanel.h
index 51f4f36..c2c9e85 100644
--- a/src/glibext/gloadedpanel.h
+++ b/src/glibext/gloadedpanel.h
@@ -29,13 +29,16 @@
#include <gtk/gtk.h>
+#include "../analysis/loaded.h"
-#define G_TYPE_LOADED_PANEL (g_loaded_panel_get_type())
-#define G_LOADED_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_LOADED_PANEL, GLoadedPanel))
-#define G_LOADED_PANEL_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST((vtable), G_TYPE_LOADED_PANEL, GLoadedPanelIface))
-#define GTK_IS_LOADED_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_LOADED_PANEL))
-#define GTK_IS_LOADED_PANEL_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE((vtable), G_TYPE_LOADED_PANEL))
-#define G_LOADED_PANEL_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE((inst), G_TYPE_LOADED_PANEL, GLoadedPanelIface))
+
+
+#define G_TYPE_LOADED_PANEL (g_loaded_panel_get_type())
+#define G_LOADED_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_LOADED_PANEL, GLoadedPanel))
+#define G_LOADED_PANEL_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST((vtable), G_TYPE_LOADED_PANEL, GLoadedPanelIface))
+#define G_IS_LOADED_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_LOADED_PANEL))
+#define G_IS_LOADED_PANEL_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE((vtable), G_TYPE_LOADED_PANEL))
+#define G_LOADED_PANEL_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE((inst), G_TYPE_LOADED_PANEL, GLoadedPanelIface))
/* Composant d'affichage basique (coquille vide) */
@@ -48,6 +51,12 @@ typedef struct _GLoadedPanelIface GLoadedPanelIface;
/* Détermine le type d'une interface pour la mise en place de lignes. */
GType g_loaded_panel_get_type(void) G_GNUC_CONST;
+/* Définit le contenu associé à un panneau de chargement. */
+void g_loaded_panel_set_content(GLoadedPanel *, GLoadedContent *);
+
+/* Fournit le contenu associé à un panneau de chargement. */
+GLoadedContent *g_loaded_panel_get_content(const GLoadedPanel *);
+
/* Place en cache un rendu destiné à l'aperçu graphique rapide. */
void g_loaded_panel_cache_glance(GLoadedPanel *, cairo_t *, const GtkAllocation *, double);