summaryrefslogtreecommitdiff
path: root/src/gtkext
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2020-06-01 17:06:10 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2020-06-01 17:06:10 (GMT)
commit95773bfde8a6915fcd206286b433dca38883b736 (patch)
tree80b59caa6913b7559c7126545539d26331722bb9 /src/gtkext
parent4b7f7fb9db0dfb66bd25534a74b8ce69742fdc3b (diff)
Updated the Python bindings for the GtkDockable interface.
Diffstat (limited to 'src/gtkext')
-rw-r--r--src/gtkext/gtkdockable-int.h16
-rw-r--r--src/gtkext/gtkdockable.c49
-rw-r--r--src/gtkext/gtkdockable.h10
-rw-r--r--src/gtkext/gtkdockstation.c15
-rw-r--r--src/gtkext/tiledgrid.c6
5 files changed, 65 insertions, 31 deletions
diff --git a/src/gtkext/gtkdockable-int.h b/src/gtkext/gtkdockable-int.h
index 7390913..656e16c 100644
--- a/src/gtkext/gtkdockable-int.h
+++ b/src/gtkext/gtkdockable-int.h
@@ -32,20 +32,20 @@
-/* Indique si le composant représenté à du contenu à fouiller. */
-typedef bool (* can_dockable_search_fc) (const GtkDockable *);
-
/* Fournit le nom court du composant encapsulable. */
-typedef const char * (* get_dockable_name_fc) (const GtkDockable *);
+typedef char * (* get_dockable_name_fc) (const GtkDockable *);
/* Fournit le nom court du composant encapsulable. */
-typedef const char * (* get_dockable_desc_fc) (const GtkDockable *);
+typedef char * (* get_dockable_desc_fc) (const GtkDockable *);
+
+/* Indique si le composant représenté à du contenu à fouiller. */
+typedef bool (* can_dockable_search_fc) (const GtkDockable *);
/* Fournit le composant principal à encapsuler au besoin. */
typedef GtkWidget * (* get_dockable_widget_fc) (const GtkDockable *);
/* Démarre l'actualisation du filtrage des paramètres. */
-typedef void (* update_filtered_data_fc) (GtkDockable *, char *);
+typedef void (* update_filtered_data_fc) (GtkDockable *, const char *);
/* Elément accepté dans les rassemblements (interface) */
@@ -53,10 +53,10 @@ struct _GtkDockableIface
{
GTypeInterface base_iface; /* A laisser en premier */
- can_dockable_search_fc can_search; /* Contenu fouillable ? */
-
get_dockable_name_fc get_name; /* Nom pour titre */
get_dockable_desc_fc get_desc; /* Description humaine */
+ can_dockable_search_fc can_search; /* Contenu fouillable ? */
+
get_dockable_widget_fc get_widget; /* Composant à représenter */
update_filtered_data_fc update_filtered;/* Mise à jour du filtrage */
diff --git a/src/gtkext/gtkdockable.c b/src/gtkext/gtkdockable.c
index c4291b7..26feb95 100644
--- a/src/gtkext/gtkdockable.c
+++ b/src/gtkext/gtkdockable.c
@@ -44,6 +44,9 @@
/* Procède à l'initialisation de l'interface de rassemblement. */
static void gtk_dockable_default_init(GtkDockableInterface *);
+/* Applique un nouveau filtre sur un composant intégré. */
+static void gtk_dockable_update_filter(GtkDockable *, const char *);
+
/* ------------------------ FONCTIONS DE RECHERCHE INTEGREES ------------------------ */
@@ -151,13 +154,16 @@ static void gtk_dockable_default_init(GtkDockableInterface *iface)
* *
******************************************************************************/
-const char *gtk_dockable_get_name(const GtkDockable *dockable)
+char *gtk_dockable_get_name(const GtkDockable *dockable)
{
+ char *result; /* Désignation à retourner */
GtkDockableIface *iface; /* Interface utilisée */
iface = GTK_DOCKABLE_GET_IFACE(dockable);
- return iface->get_name(dockable);
+ result = iface->get_name(dockable);
+
+ return result;
}
@@ -174,13 +180,16 @@ const char *gtk_dockable_get_name(const GtkDockable *dockable)
* *
******************************************************************************/
-const char *gtk_dockable_get_desc(const GtkDockable *dockable)
+char *gtk_dockable_get_desc(const GtkDockable *dockable)
{
+ char *result; /* Description à retourner */
GtkDockableIface *iface; /* Interface utilisée */
iface = GTK_DOCKABLE_GET_IFACE(dockable);
- return iface->get_desc(dockable);
+ result = iface->get_desc(dockable);
+
+ return result;
}
@@ -191,7 +200,7 @@ const char *gtk_dockable_get_desc(const GtkDockable *dockable)
* *
* Description : Indique si le composant représenté à du contenu à fouiller. *
* *
-* Retour : - *
+* Retour : Etat de la capacité. *
* *
* Remarques : - *
* *
@@ -234,7 +243,6 @@ GtkWidget *gtk_dockable_build_widget(GtkDockable *dockable)
iface = GTK_DOCKABLE_GET_IFACE(dockable);
widget = iface->get_widget(dockable);
- g_object_ref(G_OBJECT(widget));
/* Encapsulation avec un panneau coulissant ? */
@@ -267,6 +275,30 @@ GtkWidget *gtk_dockable_build_widget(GtkDockable *dockable)
/******************************************************************************
* *
+* Paramètres : dockable = instance GTK dont l'interface est à manipuler. *
+* filter = nouveau filtre à appliquer. *
+* *
+* Description : Applique un nouveau filtre sur un composant intégré. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void gtk_dockable_update_filter(GtkDockable *dockable, const char *filter)
+{
+ GtkDockableIface *iface; /* Interface utilisée */
+
+ iface = GTK_DOCKABLE_GET_IFACE(dockable);
+
+ iface->update_filtered(dockable, filter);
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : dockable = instance GTK dont l'interface est à consulter. *
* support = composant à partir duquel décrocher ou NULL. [OUT]*
* *
@@ -392,15 +424,14 @@ static GtkWidget *build_search_area(GtkDockable *dockable, GtkWidget **search)
static void on_dockable_search_changed(GtkSearchEntry *entry, GtkDockable *dockable)
{
char *filter; /* Nouveau filtre à considérer */
- GtkDockableIface *iface; /* Interface utilisée */
filter = NULL;
update_regex_on_search_entry_changed(entry, &filter);
- iface = GTK_DOCKABLE_GET_IFACE(dockable);
+ gtk_dockable_update_filter(dockable, filter);
- iface->update_filtered(dockable, filter);
+ free(filter);
}
diff --git a/src/gtkext/gtkdockable.h b/src/gtkext/gtkdockable.h
index 9f98312..0e08070 100644
--- a/src/gtkext/gtkdockable.h
+++ b/src/gtkext/gtkdockable.h
@@ -49,14 +49,14 @@ typedef struct _GtkDockableIface GtkDockableIface;
/* Détermine le type d'une interface pour rassemblement. */
GType gtk_dockable_get_type(void) G_GNUC_CONST;
-/* Indique si le composant représenté à du contenu à fouiller. */
-bool gtk_dockable_can_search(const GtkDockable *);
-
/* Fournit le nom court du composant encapsulable. */
-const char *gtk_dockable_get_name(const GtkDockable *);
+char *gtk_dockable_get_name(const GtkDockable *);
/* Fournit le nom long du composant encapsulable. */
-const char *gtk_dockable_get_desc(const GtkDockable *);
+char *gtk_dockable_get_desc(const GtkDockable *);
+
+/* Indique si le composant représenté à du contenu à fouiller. */
+bool gtk_dockable_can_search(const GtkDockable *);
/* Fournit le composant graphique intégrable dans un ensemble. */
GtkWidget *gtk_dockable_build_widget(GtkDockable *);
diff --git a/src/gtkext/gtkdockstation.c b/src/gtkext/gtkdockstation.c
index 314467e..1757542 100644
--- a/src/gtkext/gtkdockstation.c
+++ b/src/gtkext/gtkdockstation.c
@@ -257,10 +257,9 @@ static gboolean gtk_dock_station_switch_panel(GtkNotebook *notebook, gpointer *p
void gtk_dock_station_add_dockable(GtkDockStation *station, GtkDockable *dockable)
{
GtkWidget *widget; /* Composant GTK à intégrer */
- const char *caption; /* Nom à donner à l'onglet */
- const char *desc; /* Description à y associer */
+ char *name; /* Nom à donner à l'onglet */
+ char *desc; /* Description à y associer */
int max; /* Taille maximale des titres */
- char *str; /* Titre des prochaines fois */
GtkWidget *label; /* Etiquette d'onglet */
GtkNotebook *notebook; /* Autre version du composant */
@@ -280,7 +279,7 @@ void gtk_dock_station_add_dockable(GtkDockStation *station, GtkDockable *dockabl
g_object_set_data(G_OBJECT(widget), "dockable", dockable);
- caption = gtk_dockable_get_name(dockable);
+ name = gtk_dockable_get_name(dockable);
desc = gtk_dockable_get_desc(dockable);
/* Mise en place de la page */
@@ -288,9 +287,9 @@ void gtk_dock_station_add_dockable(GtkDockStation *station, GtkDockable *dockabl
if (!g_generic_config_get_value(get_main_configuration(), MPK_ELLIPSIS_TAB, &max))
max = -1;
- str = ellipsis(strdup(caption), max);
- label = qck_create_label(NULL, NULL, str);
- free(str);
+ name = ellipsis(name, max);
+ label = qck_create_label(NULL, NULL, name);
+ free(name);
notebook = GTK_NOTEBOOK(station);
@@ -302,6 +301,8 @@ void gtk_dock_station_add_dockable(GtkDockStation *station, GtkDockable *dockabl
gtk_widget_set_tooltip_text(label, desc);
+ free(desc);
+
if (gtk_notebook_get_n_pages(notebook) > 1)
g_signal_connect(notebook, "switch-page",
G_CALLBACK(gtk_dock_station_switch_panel), station);
diff --git a/src/gtkext/tiledgrid.c b/src/gtkext/tiledgrid.c
index e04685c..5287352 100644
--- a/src/gtkext/tiledgrid.c
+++ b/src/gtkext/tiledgrid.c
@@ -885,14 +885,16 @@ void gtk_tiled_grid_set_default_main_panel(GtkTiledGrid *tgrid, GPanelItem *pane
void gtk_tiled_grid_add(GtkTiledGrid *tgrid, GPanelItem *panel)
{
const char *path; /* Chemin d'accès */
+ char *name; /* Nom à donner à l'onglet */
grid_tile_t *tile; /* Tuile d'accueil */
path = gtk_panel_item_get_path(panel);
if (!is_valid_tile_path(path))
{
- log_variadic_message(LMT_ERROR, _("Invalid path '%s' for panel '%s'"),
- path, gtk_dockable_get_name(GTK_DOCKABLE(panel)));
+ name = gtk_dockable_get_name(GTK_DOCKABLE(panel));
+ log_variadic_message(LMT_ERROR, _("Invalid path '%s' for panel '%s'"), path, name);
+ free(name);
}
else