summaryrefslogtreecommitdiff
path: root/src/gui/panels/welcome.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2012-08-19 22:40:33 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2012-08-19 22:40:33 (GMT)
commit09d07908465d462101d27ecb1b60df52d63bbe5d (patch)
treee9c8dc53425017efd68feee73ecf9587bd0ba196 /src/gui/panels/welcome.c
parentb226ca8a19e746521f6f0c1e3b71deed7ea9ab2e (diff)
Rewritten a cleaner way to dock panels.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@261 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gui/panels/welcome.c')
-rw-r--r--src/gui/panels/welcome.c179
1 files changed, 179 insertions, 0 deletions
diff --git a/src/gui/panels/welcome.c b/src/gui/panels/welcome.c
new file mode 100644
index 0000000..018f12a
--- /dev/null
+++ b/src/gui/panels/welcome.c
@@ -0,0 +1,179 @@
+
+/* OpenIDA - Outil d'analyse de fichiers binaires
+ * welcome.c - panneau d'affichage d'accueil
+ *
+ * Copyright (C) 2012 Cyrille Bagard
+ *
+ * This file is part of OpenIDA.
+ *
+ * OpenIDA is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * OpenIDA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+
+#include "welcome.h"
+
+
+#include <string.h>
+#include <gtk/gtk.h>
+
+
+#include "panel-int.h"
+#include "../../gtkext/easygtk.h"
+#include "../../gtkext/support.h"
+
+
+
+/* -------------------------- PARTIE PRINCIPALE DU PANNEAU -------------------------- */
+
+
+/* Panneau d'aperçu de graphiques (instance) */
+struct _GWelcomePanel
+{
+ GPanelItem parent; /* A laisser en premier */
+
+};
+
+
+/* Panneau d'aperçu de graphiques (classe) */
+struct _GWelcomePanelClass
+{
+ GPanelItemClass parent; /* A laisser en premier */
+
+};
+
+
+/* Initialise la classe des panneaux d'accueil. */
+static void g_welcome_panel_class_init(GWelcomePanelClass *);
+
+/* Initialise une instance de panneau d'accueil. */
+static void g_welcome_panel_init(GWelcomePanel *);
+
+
+
+/* ---------------------------------------------------------------------------------- */
+/* PARTIE PRINCIPALE DU PANNEAU */
+/* ---------------------------------------------------------------------------------- */
+
+
+/* Indique le type définit pour un panneau d'accueil. */
+G_DEFINE_TYPE(GWelcomePanel, g_welcome_panel, G_TYPE_PANEL_ITEM);
+
+
+/******************************************************************************
+* *
+* Paramètres : klass = classe à initialiser. *
+* *
+* Description : Initialise la classe des panneaux d'accueil. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_welcome_panel_class_init(GWelcomePanelClass *klass)
+{
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : panel = instance à initialiser. *
+* *
+* Description : Initialise une instance de panneau d'accueil. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_welcome_panel_init(GWelcomePanel *panel)
+{
+ GtkWidget *support; /* Fond du panneau */
+ GtkWidget *align; /* Alignement centré */
+ gchar *filename; /* Chemin d'accès au fichier */
+ GtkWidget *image; /* Image chargée */
+ GEditorItem *base; /* Version basique d'instance */
+
+ support = gtk_handle_box_new();
+ gtk_widget_modify_bg(support, GTK_STATE_NORMAL, &support->style->bg[GTK_STATE_NORMAL]);
+ gtk_widget_show(support);
+
+ align = gtk_alignment_new(0.5f, 0.5f, 0.0f, 0.0f);
+ gtk_widget_show(align);
+ gtk_container_add(GTK_CONTAINER(support), align);
+
+ filename = find_pixmap_file("welcome.png");
+ image = qck_create_image(NULL, NULL, filename);
+ gtk_container_add(GTK_CONTAINER(align), image);
+
+ base = G_EDITOR_ITEM(panel);
+ base->widget = support;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : ref = espace de référencement global. *
+* *
+* Description : Crée un panneau d'accueil. *
+* *
+* Retour : Adresse de la structure mise en place. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GEditorItem *g_welcome_panel_new(GObject *ref)
+{
+ GEditorItem *result; /* Structure à retourner */
+
+ result = g_object_new(G_TYPE_WELCOME_PANEL, NULL);
+
+ g_panel_item_init_ext(G_PANEL_ITEM(result), ref, PANEL_WELCOME_ID,
+ _("Welcome"), G_EDITOR_ITEM(result)->widget, "M");
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : ref = espace de référencement global. *
+* *
+* Description : Construit et intègre un panneau d'accueil. *
+* *
+* Retour : Adresse du panneau mis en place. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GPanelItem *create_welcome_panel(GObject *ref)
+{
+ GEditorItem *result; /* Elément réactif à renvoyer */
+
+ result = g_welcome_panel_new(ref);
+
+ /* Enregistre correctement le tout */
+ register_editor_item(result);
+
+ return G_PANEL_ITEM(result);
+
+}