diff options
Diffstat (limited to 'plugins/pychrysalide')
-rw-r--r-- | plugins/pychrysalide/gui/core/global.c | 43 | ||||
-rw-r--r-- | plugins/pychrysalide/gui/menubar.c | 323 |
2 files changed, 57 insertions, 309 deletions
diff --git a/plugins/pychrysalide/gui/core/global.c b/plugins/pychrysalide/gui/core/global.c index 26d51cb..a3b62ee 100644 --- a/plugins/pychrysalide/gui/core/global.c +++ b/plugins/pychrysalide/gui/core/global.c @@ -25,6 +25,7 @@ #include "global.h" +#include <assert.h> #include <pygobject.h> @@ -36,6 +37,9 @@ +/* Fournit l'adresse du constructeur principal de l'éditeur. */ +static PyObject *py_global_get_editor_builder(PyObject *, PyObject *); + /* Fournit l'adresse de la fenêtre principale de l'éditeur. */ static PyObject *py_global_get_editor_window(PyObject *, PyObject *); @@ -49,6 +53,44 @@ static PyObject *py_global_get_current_content(PyObject *, PyObject *); * Paramètres : self = objet Python concerné par l'appel. * * args = non utilisé ici. * * * +* Description : Fournit l'adresse du constructeur principal de l'éditeur. * +* * +* Retour : Constructeur principal référencé. * +* * +* Remarques : - * +* * +******************************************************************************/ + +static PyObject *py_global_get_editor_builder(PyObject *self, PyObject *args) +{ + PyObject *result; /* Instance Python à retourner */ + GtkBuilder *builder; /* Constructeur principal */ + +#define GLOBAL_GET_EDITOR_BUILDER_METHOD PYTHON_METHOD_DEF \ +( \ + get_editor_builder, "", \ + METH_NOARGS, py_global, \ + "Provide access to the Chrysalide main window builder.\n" \ + "\n" \ + "The result should be an instance of Gtk.Builder, never None." \ +) + + builder = get_editor_builder(); + assert(builder != NULL); + + result = pygobject_new(G_OBJECT(builder)); + g_object_unref(G_OBJECT(builder)); + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : self = objet Python concerné par l'appel. * +* args = non utilisé ici. * +* * * Description : Fournit l'adresse de la fenêtre principale de l'éditeur. * * * * Retour : Fenêtre principale référencée. * @@ -150,6 +192,7 @@ bool populate_gui_core_module_with_global(void) PyObject *module; /* Module à recompléter */ static PyMethodDef py_global_methods[] = { + GLOBAL_GET_EDITOR_BUILDER_METHOD, GLOBAL_GET_EDITOR_WINDOW_METHOD, GLOBAL_GET_CURRENT_CONTENT_METHOD, { NULL } diff --git a/plugins/pychrysalide/gui/menubar.c b/plugins/pychrysalide/gui/menubar.c index 0234fba..5c6270e 100644 --- a/plugins/pychrysalide/gui/menubar.c +++ b/plugins/pychrysalide/gui/menubar.c @@ -47,296 +47,9 @@ " 'menubar' as key." -/* Fournit le composant GTK associé au menu "Fichier". */ -static PyObject *py_menu_bar_get_file_menu(PyObject *, void *); +/* Fournit le constructeur associé à la barre de menus. */ +static PyObject *py_menu_bar_get_builder(PyObject *self, void *); -/* Fournit le composant GTK associé au menu "Edition". */ -static PyObject *py_menu_bar_get_edition_menu(PyObject *, void *); - -/* Fournit le composant GTK associé au menu "Affichage". */ -static PyObject *py_menu_bar_get_view_menu(PyObject *, void *); - -/* Fournit le composant GTK associé au menu "Projet". */ -static PyObject *py_menu_bar_get_project_menu(PyObject *, void *); - -/* Fournit le composant GTK associé au menu "Binaire". */ -static PyObject *py_menu_bar_get_binary_menu(PyObject *, void *); - -/* Fournit le composant GTK associé au menu "Débogage". */ -static PyObject *py_menu_bar_get_debug_menu(PyObject *, void *); - -/* Fournit le composant GTK associé au menu "Options". */ -static PyObject *py_menu_bar_get_options_menu(PyObject *, void *); - -/* Fournit le composant GTK associé au menu "Aide". */ -static PyObject *py_menu_bar_get_help_menu(PyObject *, void *); - - - -/****************************************************************************** -* * -* Paramètres : self = objet Python concerné par l'appel. * -* closure = non utilisé ici. * -* * -* Description : Fournit le composant GTK associé au menu "Fichier". * -* * -* Retour : Instance de composant graphique correspondant au menu visé. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static PyObject *py_menu_bar_get_file_menu(PyObject *self, void *closure) -{ - PyObject *result; /* Valeur à retourner */ - GMenuBar *bar; /* Elément à consulter */ - GtkWidget *menu; /* Composant GTK visé */ - -#define MENU_BAR_FILE_MENU_ATTRIB PYTHON_GET_DEF_FULL \ -( \ - file_menu, py_menu_bar, \ - "File menu included in the main menubar, as a" \ - " Gtk.MenuItem instance." \ -) - - bar = G_MENU_BAR(pygobject_get(self)); - - menu = g_menu_bar_get_file_menu(bar); - - result = pygobject_new(G_OBJECT(menu)); - g_object_unref(G_OBJECT(menu)); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : self = objet Python concerné par l'appel. * -* closure = non utilisé ici. * -* * -* Description : Fournit le composant GTK associé au menu "Edition". * -* * -* Retour : Instance de composant graphique correspondant au menu visé. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static PyObject *py_menu_bar_get_edition_menu(PyObject *self, void *closure) -{ - PyObject *result; /* Valeur à retourner */ - GMenuBar *bar; /* Elément à consulter */ - GtkWidget *menu; /* Composant GTK visé */ - -#define MENU_BAR_EDITION_MENU_ATTRIB PYTHON_GET_DEF_FULL \ -( \ - edition_menu, py_menu_bar, \ - "Edition menu included in the main menubar, as a" \ - " Gtk.MenuItem instance." \ -) - - bar = G_MENU_BAR(pygobject_get(self)); - - menu = g_menu_bar_get_edition_menu(bar); - - result = pygobject_new(G_OBJECT(menu)); - g_object_unref(G_OBJECT(menu)); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : self = objet Python concerné par l'appel. * -* closure = non utilisé ici. * -* * -* Description : Fournit le composant GTK associé au menu "Affichage". * -* * -* Retour : Instance de composant graphique correspondant au menu visé. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static PyObject *py_menu_bar_get_view_menu(PyObject *self, void *closure) -{ - PyObject *result; /* Valeur à retourner */ - GMenuBar *bar; /* Elément à consulter */ - GtkWidget *menu; /* Composant GTK visé */ - -#define MENU_BAR_VIEW_MENU_ATTRIB PYTHON_GET_DEF_FULL \ -( \ - view_menu, py_menu_bar, \ - "View menu included in the main menubar, as a" \ - " Gtk.MenuItem instance." \ -) - - bar = G_MENU_BAR(pygobject_get(self)); - - menu = g_menu_bar_get_view_menu(bar); - - result = pygobject_new(G_OBJECT(menu)); - g_object_unref(G_OBJECT(menu)); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : self = objet Python concerné par l'appel. * -* closure = non utilisé ici. * -* * -* Description : Fournit le composant GTK associé au menu "Projet". * -* * -* Retour : Instance de composant graphique correspondant au menu visé. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static PyObject *py_menu_bar_get_project_menu(PyObject *self, void *closure) -{ - PyObject *result; /* Valeur à retourner */ - GMenuBar *bar; /* Elément à consulter */ - GtkWidget *menu; /* Composant GTK visé */ - -#define MENU_BAR_PROJECT_MENU_ATTRIB PYTHON_GET_DEF_FULL \ -( \ - project_menu, py_menu_bar, \ - "Project menu included in the main menubar, as a" \ - " Gtk.MenuItem instance." \ -) - - bar = G_MENU_BAR(pygobject_get(self)); - - menu = g_menu_bar_get_project_menu(bar); - - result = pygobject_new(G_OBJECT(menu)); - g_object_unref(G_OBJECT(menu)); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : self = objet Python concerné par l'appel. * -* closure = non utilisé ici. * -* * -* Description : Fournit le composant GTK associé au menu "Binaire". * -* * -* Retour : Instance de composant graphique correspondant au menu visé. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static PyObject *py_menu_bar_get_binary_menu(PyObject *self, void *closure) -{ - PyObject *result; /* Valeur à retourner */ - GMenuBar *bar; /* Elément à consulter */ - GtkWidget *menu; /* Composant GTK visé */ - -#define MENU_BAR_BINARY_MENU_ATTRIB PYTHON_GET_DEF_FULL \ -( \ - binary_menu, py_menu_bar, \ - "Binary menu included in the main menubar, as a" \ - " Gtk.MenuItem instance." \ -) - - bar = G_MENU_BAR(pygobject_get(self)); - - menu = g_menu_bar_get_binary_menu(bar); - - result = pygobject_new(G_OBJECT(menu)); - g_object_unref(G_OBJECT(menu)); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : self = objet Python concerné par l'appel. * -* closure = non utilisé ici. * -* * -* Description : Fournit le composant GTK associé au menu "Débogage". * -* * -* Retour : Instance de composant graphique correspondant au menu visé. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static PyObject *py_menu_bar_get_debug_menu(PyObject *self, void *closure) -{ - PyObject *result; /* Valeur à retourner */ - GMenuBar *bar; /* Elément à consulter */ - GtkWidget *menu; /* Composant GTK visé */ - -#define MENU_BAR_DEBUG_MENU_ATTRIB PYTHON_GET_DEF_FULL \ -( \ - debug_menu, py_menu_bar, \ - "Debug menu included in the main menubar, as a" \ - " Gtk.MenuItem instance." \ -) - - bar = G_MENU_BAR(pygobject_get(self)); - - menu = g_menu_bar_get_debug_menu(bar); - - result = pygobject_new(G_OBJECT(menu)); - g_object_unref(G_OBJECT(menu)); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : self = objet Python concerné par l'appel. * -* closure = non utilisé ici. * -* * -* Description : Fournit le composant GTK associé au menu "Options". * -* * -* Retour : Instance de composant graphique correspondant au menu visé. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static PyObject *py_menu_bar_get_options_menu(PyObject *self, void *closure) -{ - PyObject *result; /* Valeur à retourner */ - GMenuBar *bar; /* Elément à consulter */ - GtkWidget *menu; /* Composant GTK visé */ - -#define MENU_BAR_OPTIONS_MENU_ATTRIB PYTHON_GET_DEF_FULL \ -( \ - options_menu, py_menu_bar, \ - "Options menu included in the main menubar, as a" \ - " Gtk.MenuItem instance." \ -) - - bar = G_MENU_BAR(pygobject_get(self)); - - menu = g_menu_bar_get_options_menu(bar); - - result = pygobject_new(G_OBJECT(menu)); - g_object_unref(G_OBJECT(menu)); - - return result; - -} /****************************************************************************** @@ -344,33 +57,32 @@ static PyObject *py_menu_bar_get_options_menu(PyObject *self, void *closure) * Paramètres : self = objet Python concerné par l'appel. * * closure = non utilisé ici. * * * -* Description : Fournit le composant GTK associé au menu "Aide". * +* Description : Fournit le constructeur associé à la barre de menus. * * * -* Retour : Instance de composant graphique correspondant au menu visé. * +* Retour : Instance du constructeur (principal) associé à la barre. * * * * Remarques : - * * * ******************************************************************************/ -static PyObject *py_menu_bar_get_help_menu(PyObject *self, void *closure) +static PyObject *py_menu_bar_get_builder(PyObject *self, void *closure) { PyObject *result; /* Valeur à retourner */ GMenuBar *bar; /* Elément à consulter */ - GtkWidget *menu; /* Composant GTK visé */ + GtkBuilder *builder; /* Instance GTK visée */ -#define MENU_BAR_HELP_MENU_ATTRIB PYTHON_GET_DEF_FULL \ -( \ - help_menu, py_menu_bar, \ - "Help menu included in the main menubar, as a" \ - " Gtk.MenuItem instance." \ +#define MENU_BAR_BUILDER_ATTRIB PYTHON_GET_DEF_FULL \ +( \ + builder, py_menu_bar, \ + "Builder linked to the main menubar, as a Gtk.Builder instance." \ ) bar = G_MENU_BAR(pygobject_get(self)); - menu = g_menu_bar_get_help_menu(bar); + builder = g_menu_bar_get_builder(bar); - result = pygobject_new(G_OBJECT(menu)); - g_object_unref(G_OBJECT(menu)); + result = pygobject_new(G_OBJECT(builder)); + g_object_unref(G_OBJECT(builder)); return result; @@ -396,14 +108,7 @@ PyTypeObject *get_python_menu_bar_type(void) }; static PyGetSetDef py_menu_bar_getseters[] = { - MENU_BAR_FILE_MENU_ATTRIB, - MENU_BAR_EDITION_MENU_ATTRIB, - MENU_BAR_VIEW_MENU_ATTRIB, - MENU_BAR_PROJECT_MENU_ATTRIB, - MENU_BAR_BINARY_MENU_ATTRIB, - MENU_BAR_DEBUG_MENU_ATTRIB, - MENU_BAR_OPTIONS_MENU_ATTRIB, - MENU_BAR_HELP_MENU_ATTRIB, + MENU_BAR_BUILDER_ATTRIB, { NULL } }; |