diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/dialogs/Makefile.am | 2 | ||||
-rw-r--r-- | src/gui/dialogs/about-int.h | 14 | ||||
-rw-r--r-- | src/gui/dialogs/about.c | 57 | ||||
-rw-r--r-- | src/gui/dialogs/about.css | 9 | ||||
-rw-r--r-- | src/gui/dialogs/about.ui | 80 | ||||
-rw-r--r-- | src/gui/dialogs/gresource.xml | 16 | ||||
-rw-r--r-- | src/gui/style.css | 6 |
7 files changed, 27 insertions, 157 deletions
diff --git a/src/gui/dialogs/Makefile.am b/src/gui/dialogs/Makefile.am index e910c96..3492f63 100644 --- a/src/gui/dialogs/Makefile.am +++ b/src/gui/dialogs/Makefile.am @@ -3,7 +3,9 @@ BUILT_SOURCES = resources.h resources.c noinst_LTLIBRARIES = libguidialogs.la + UI_FILES = \ + about.css \ about.ui \ preferences.ui # bookmark.ui \ diff --git a/src/gui/dialogs/about-int.h b/src/gui/dialogs/about-int.h index 616c73f..96a470e 100644 --- a/src/gui/dialogs/about-int.h +++ b/src/gui/dialogs/about-int.h @@ -37,20 +37,6 @@ struct _GtkAppAboutDialog { GtkWindow parent; /* A laisser en premier */ - union - { - struct - { - GtkPicture *revision_0; /* Numéro #0 */ - GtkPicture *revision_1; /* Numéro #1 */ - GtkPicture *revision_2; /* Numéro #2 */ - GtkPicture *revision_3; /* Numéro #3 */ - GtkPicture *revision_4; /* Numéro #4 */ - GtkPicture *revision_5; /* Numéro #5 */ - }; - GtkPicture *revisions[6]; /* Tous les numéros d'un coup */ - }; - }; /* Boîte "A propos de" dédiée à l'application (classe) */ diff --git a/src/gui/dialogs/about.c b/src/gui/dialogs/about.c index 956918b..1dca752 100644 --- a/src/gui/dialogs/about.c +++ b/src/gui/dialogs/about.c @@ -44,10 +44,10 @@ static void gtk_app_about_dialog_class_init(GtkAppAboutDialogClass *); static void gtk_app_about_dialog_init(GtkAppAboutDialog *); /* Supprime toutes les références externes. */ -static void gtk_app_about_dialog_dispose(GtkAppAboutDialog *); +static void gtk_app_about_dialog_dispose(GObject *); /* Procède à la libération totale de la mémoire. */ -static void gtk_app_about_dialog_finalize(GtkAppAboutDialog *); +static void gtk_app_about_dialog_finalize(GObject *); @@ -74,22 +74,17 @@ static void gtk_app_about_dialog_class_init(GtkAppAboutDialogClass *class) object = G_OBJECT_CLASS(class); - object->dispose = (GObjectFinalizeFunc/* ! */)gtk_app_about_dialog_dispose; - object->finalize = (GObjectFinalizeFunc)gtk_app_about_dialog_finalize; + object->dispose = gtk_app_about_dialog_dispose; + object->finalize = gtk_app_about_dialog_finalize; widget = GTK_WIDGET_CLASS(class); + gtk_widget_class_set_css_name(widget, "aboutdialog"); + gtk_widget_class_add_binding_action(widget, GDK_KEY_Escape, 0, "window.close", NULL); gtk_widget_class_set_template_from_resource(widget, "/re/chrysalide/framework/gui/dialogs/about.ui"); - gtk_widget_class_bind_template_child(widget, GtkAppAboutDialog, revision_0); - gtk_widget_class_bind_template_child(widget, GtkAppAboutDialog, revision_1); - gtk_widget_class_bind_template_child(widget, GtkAppAboutDialog, revision_2); - gtk_widget_class_bind_template_child(widget, GtkAppAboutDialog, revision_3); - gtk_widget_class_bind_template_child(widget, GtkAppAboutDialog, revision_4); - gtk_widget_class_bind_template_child(widget, GtkAppAboutDialog, revision_5); - } @@ -107,40 +102,14 @@ static void gtk_app_about_dialog_class_init(GtkAppAboutDialogClass *class) static void gtk_app_about_dialog_init(GtkAppAboutDialog *dialog) { - unsigned int revision; /* Numéro de révision */ - unsigned int max; /* Nbre. de boucles à effectuer*/ - unsigned int i; /* Boucle de parcours */ - unsigned int level; /* Unité la plus importante */ - char buffer[64]; /* Nom d'image à forger */ - gtk_widget_init_template(GTK_WIDGET(dialog)); - revision = REVISION; - max = log(revision) / log(10); - - assert(max <= 6); - - for (i = 0; i <= max; i++) - { - level = pow(10, max - i); - - snprintf(buffer, 64, "/org/chrysalide/gui/dialogs/about/revision_%u.png", revision / level); - - gtk_picture_set_resource(dialog->revisions[i], buffer); - - revision %= level; - - } - - for (; i < 6; i++) - gtk_widget_set_visible(GTK_WIDGET(dialog->revisions[i]), FALSE); - } /****************************************************************************** * * -* Paramètres : dialog = instance d'objet GLib à traiter. * +* Paramètres : object = instance d'objet GLib à traiter. * * * * Description : Supprime toutes les références externes. * * * @@ -150,18 +119,18 @@ static void gtk_app_about_dialog_init(GtkAppAboutDialog *dialog) * * ******************************************************************************/ -static void gtk_app_about_dialog_dispose(GtkAppAboutDialog *dialog) +static void gtk_app_about_dialog_dispose(GObject *object) { - gtk_widget_dispose_template(GTK_WIDGET(dialog), GTK_TYPE_APP_ABOUT_DIALOG); + gtk_widget_dispose_template(GTK_WIDGET(object), GTK_TYPE_APP_ABOUT_DIALOG); - G_OBJECT_CLASS(gtk_app_about_dialog_parent_class)->dispose(G_OBJECT(dialog)); + G_OBJECT_CLASS(gtk_app_about_dialog_parent_class)->dispose(object); } /****************************************************************************** * * -* Paramètres : dialog = instance d'objet GLib à traiter. * +* Paramètres : object = instance d'objet GLib à traiter. * * * * Description : Procède à la libération totale de la mémoire. * * * @@ -171,9 +140,9 @@ static void gtk_app_about_dialog_dispose(GtkAppAboutDialog *dialog) * * ******************************************************************************/ -static void gtk_app_about_dialog_finalize(GtkAppAboutDialog *dialog) +static void gtk_app_about_dialog_finalize(GObject *object) { - G_OBJECT_CLASS(gtk_app_about_dialog_parent_class)->finalize(G_OBJECT(dialog)); + G_OBJECT_CLASS(gtk_app_about_dialog_parent_class)->finalize(object); } diff --git a/src/gui/dialogs/about.css b/src/gui/dialogs/about.css new file mode 100644 index 0000000..af3fa97 --- /dev/null +++ b/src/gui/dialogs/about.css @@ -0,0 +1,9 @@ + +aboutdialog > box { + + background-color: black; + + background-image: url('resource:///re/chrysalide/framework/gui/dialogs/about/bg.png'); + background-repeat: no-repeat; + +} diff --git a/src/gui/dialogs/about.ui b/src/gui/dialogs/about.ui index 989e53b..7b519d2 100644 --- a/src/gui/dialogs/about.ui +++ b/src/gui/dialogs/about.ui @@ -8,91 +8,13 @@ <property name="modal">true</property> <property name="resizable">false</property> - <style> - <class name="black-bg"/> - </style> - <child> <object class="GtkBox"> <property name="orientation">vertical</property> - <child> - <object class="GtkPicture" id="logo"> - <property name="margin-top">10</property> - <property name="file">resource://org/chrysalide/gui/dialogs/about/chrysalide-full.png</property> - </object> - </child> - - <!-- - Etage intermédiaire pour ne pas que l'image se voie allouer la largeur entière - de la fenêtre. Sinon des marges sont placées autour du rendu lors que l'image - n'est pas étendue pour couvrir cette largeur entière. - --> - <child> - <object class="GtkBox"> - <property name="orientation">horizontal</property> - <property name="halign">center</property> - <property name="margin-top">14</property> - <child> - <object class="GtkPicture" id="text"> - <property name="width-request">253</property> - <property name="file">resource:///org/chrysalide/gui/dialogs/about/chrysalide_text.png</property> - </object> - </child> - </object> - </child> - - <child> - <object class="GtkBox"> - <property name="orientation">horizontal</property> - <property name="margin-start">149</property> - <child> - <object class="GtkPicture" id="revision"> - <property name="width-request">14</property> - <property name="file">resource:///org/chrysalide/gui/dialogs/about/revision.png</property> - </object> - </child> - <child> - <object class="GtkPicture" id="revision_0"> - <property name="width-request">14</property> - <property name="file">resource:///org/chrysalide/gui/dialogs/about/revision.png</property> - </object> - </child> - <child> - <object class="GtkPicture" id="revision_1"> - <property name="width-request">14</property> - <property name="file">resource:///org/chrysalide/gui/dialogs/about/revision.png</property> - </object> - </child> - <child> - <object class="GtkPicture" id="revision_2"> - <property name="width-request">14</property> - <property name="file">resource:///org/chrysalide/gui/dialogs/about/revision.png</property> - </object> - </child> - <child> - <object class="GtkPicture" id="revision_3"> - <property name="width-request">14</property> - <property name="file">resource:///org/chrysalide/gui/dialogs/about/revision.png</property> - </object> - </child> - <child> - <object class="GtkPicture" id="revision_4"> - <property name="width-request">14</property> - <property name="file">resource:///org/chrysalide/gui/dialogs/about/revision.png</property> - </object> - </child> - <child> - <object class="GtkPicture" id="revision_5"> - <property name="width-request">14</property> - <property name="file">resource:///org/chrysalide/gui/dialogs/about/revision.png</property> - </object> - </child> - </object> - </child> <child> <object class="GtkLabel"> - <property name="margin-top">22</property> + <property name="margin-top">368</property> <property name="margin-bottom">10</property> <property name="label" translatable="yes"><span fgcolor='white'>Copyright (C) 2008-2025 Cyrille Bagard</span></property> <property name="use-markup">True</property> diff --git a/src/gui/dialogs/gresource.xml b/src/gui/dialogs/gresource.xml index 169f440..966d9c8 100644 --- a/src/gui/dialogs/gresource.xml +++ b/src/gui/dialogs/gresource.xml @@ -1,22 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <gresources> <gresource prefix="/re/chrysalide/framework/gui/dialogs"> + <file compressed="true">about.css</file> <file compressed="true">about.ui</file> <file compressed="true">preferences.ui</file> </gresource> - <gresource prefix="/org/chrysalide/gui/dialogs/about"> - <file compressed="true" alias="chrysalide-full.png">../../../pixmaps/chrysalide-full.png</file> - <file compressed="true" alias="chrysalide_text.png">../../../pixmaps/chrysalide_text.png</file> - <file compressed="true" alias="revision.png">../../../pixmaps/revision.png</file> - <file compressed="true" alias="revision_0.png">../../../pixmaps/revision_0.png</file> - <file compressed="true" alias="revision_1.png">../../../pixmaps/revision_1.png</file> - <file compressed="true" alias="revision_2.png">../../../pixmaps/revision_2.png</file> - <file compressed="true" alias="revision_3.png">../../../pixmaps/revision_3.png</file> - <file compressed="true" alias="revision_4.png">../../../pixmaps/revision_4.png</file> - <file compressed="true" alias="revision_5.png">../../../pixmaps/revision_5.png</file> - <file compressed="true" alias="revision_6.png">../../../pixmaps/revision_6.png</file> - <file compressed="true" alias="revision_7.png">../../../pixmaps/revision_7.png</file> - <file compressed="true" alias="revision_8.png">../../../pixmaps/revision_8.png</file> - <file compressed="true" alias="revision_9.png">../../../pixmaps/revision_9.png</file> - </gresource> </gresources> diff --git a/src/gui/style.css b/src/gui/style.css index e21d931..dce41fa 100644 --- a/src/gui/style.css +++ b/src/gui/style.css @@ -36,11 +36,7 @@ list.boxed-list, list.boxed-list > row:last-child { /* about.css */ -.black-bg { - - background-color: black; - -} +@import url('resource:///re/chrysalide/framework/gui/dialogs/about.css'); /* welcome.css */ |