summaryrefslogtreecommitdiff
path: root/src/gui/editor.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-08-26 22:15:05 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-08-26 22:15:05 (GMT)
commit8ca477e012b11a19363542d171b8e973d637641c (patch)
tree94a4fcde1779f031946eff7a36075f41a17cd73b /src/gui/editor.c
parent4fb2ac107092671fe27fc3ebf9fc86dff7c3ec19 (diff)
Removed most of the functions using the editor items as global access to active items.
Diffstat (limited to 'src/gui/editor.c')
-rw-r--r--src/gui/editor.c54
1 files changed, 26 insertions, 28 deletions
diff --git a/src/gui/editor.c b/src/gui/editor.c
index d042acd..a3055c7 100644
--- a/src/gui/editor.c
+++ b/src/gui/editor.c
@@ -38,6 +38,8 @@
#include "menus/menubar.h"
#include "core/core.h"
#include "core/panels.h"
+#include "core/global.h"
+#include "core/items.h"
#include "panels/panel.h"
#include "panels/welcome.h"
#include "tb/portions.h"
@@ -147,7 +149,6 @@ typedef struct _panel_node
/* Support de fond pour les composants. */
-static GObject *_global_ref = NULL;
static GtkWidget *_support = NULL;
static panel_node *_nodes = NULL;
@@ -185,22 +186,22 @@ static void delete_panel_node(panel_node *);
/* Réagit à une demande de placement d'un panneau d'affichage. */
-void on_panel_item_dock_request(GPanelItem *, void *);
+void on_panel_item_dock_request(GPanelItem *, gpointer);
/* Réagit à une demande de suppression d'un panneau d'affichage. */
-void on_panel_item_undock_request(GPanelItem *, void *);
+void on_panel_item_undock_request(GPanelItem *, gpointer);
/* Réagit au changement d'onglet d'un panneau quelconque. */
-static void on_dock_item_switch(GtkDockStation *, GtkWidget *, GObject *);
+static void on_dock_item_switch(GtkDockStation *, GtkWidget *, gpointer);
/* Encastre comme demandé un panneau dans l'éditeur. */
static void dock_panel_into_current_station(GtkCheckMenuItem *, GPanelItem *);
/* Réagit à une demande de menu pour rajouter des panneaux. */
-static void on_dock_menu_request(GtkDockStation *, GtkWidget *, GObject *);
+static void on_dock_menu_request(GtkDockStation *, GtkWidget *, gpointer);
/* Réagit à une demande de fermeture du panneau courant. */
-static void on_dock_close_request(GtkDockStation *, GtkWidget *, GObject *);
+static void on_dock_close_request(GtkDockStation *, GtkWidget *, gpointer);
/* Réagit à une variation dans une séparation de panneaux. */
static void notify_paned_handle_position_change(GObject *, GParamSpec *, gpointer);
@@ -338,7 +339,6 @@ GtkWidget *create_editor(void)
do
{
- _global_ref = ref;
_support = gtk_event_box_new();
gtk_widget_show(_support);
@@ -370,7 +370,7 @@ GtkWidget *create_editor(void)
/* Actualisation des contenus */
- change_editor_items_current_binary(ref, NULL);
+ change_editor_items_current_binary(NULL);
@@ -702,9 +702,9 @@ static panel_node *create_simple_panel_node_for_item(GPanelItem *item, const cha
/* Partie graphique */
station = gtk_dock_station_new();
- g_signal_connect(station, "switch-widget", G_CALLBACK(on_dock_item_switch), _global_ref);
- g_signal_connect(station, "menu-requested", G_CALLBACK(on_dock_menu_request), _global_ref);
- g_signal_connect(station, "close-requested", G_CALLBACK(on_dock_close_request), _global_ref);
+ g_signal_connect(station, "switch-widget", G_CALLBACK(on_dock_item_switch), NULL);
+ g_signal_connect(station, "menu-requested", G_CALLBACK(on_dock_menu_request), NULL);
+ g_signal_connect(station, "close-requested", G_CALLBACK(on_dock_close_request), NULL);
gtk_widget_show(station);
gtk_dock_station_add_dockable(GTK_DOCK_STATION(station), GTK_DOCKABLE(item));
@@ -1234,7 +1234,7 @@ static void delete_panel_node(panel_node *node)
* *
******************************************************************************/
-void on_panel_item_dock_request(GPanelItem *panel, void *unused)
+void on_panel_item_dock_request(GPanelItem *panel, gpointer unused)
{
const char *path; /* Chemin d'accès */
panel_node *node; /* Noeud à supprimer */
@@ -1291,7 +1291,7 @@ void on_panel_item_dock_request(GPanelItem *panel, void *unused)
* *
******************************************************************************/
-void on_panel_item_undock_request(GPanelItem *panel, void *unused)
+void on_panel_item_undock_request(GPanelItem *panel, gpointer unused)
{
GtkWidget *station; /* Support courant */
GtkNotebook *notebook; /* Version parente de station */
@@ -1346,7 +1346,7 @@ void on_panel_item_undock_request(GPanelItem *panel, void *unused)
* *
* Paramètres : station = panneau de support des éléments concerné. *
* item = nouvel élément présenté à l'affichage. *
-* ref = adresse de l'espace de référencement global. *
+* unused = adresse non utilisée ici. *
* *
* Description : Réagit au changement d'onglet d'un panneau quelconque. *
* *
@@ -1356,7 +1356,7 @@ void on_panel_item_undock_request(GPanelItem *panel, void *unused)
* *
******************************************************************************/
-static void on_dock_item_switch(GtkDockStation *station, GtkWidget *widget, GObject *ref)
+static void on_dock_item_switch(GtkDockStation *station, GtkWidget *widget, gpointer unused)
{
GLoadedBinary *old_binary; /* Ancien binaire édité */
GLoadedBinary *binary; /* Binaire en cours d'édition */
@@ -1371,20 +1371,18 @@ static void on_dock_item_switch(GtkDockStation *station, GtkWidget *widget, GObj
{
/* Changement de binaire ? */
- old_binary = G_LOADED_BINARY(g_object_get_data(ref, "current_binary"));
+ old_binary = get_current_binary();
binary = gtk_display_panel_get_binary(GTK_DISPLAY_PANEL(widget));
if (old_binary != binary)
- {
- //notify_panels_of_binary_change(binary);
- change_editor_items_current_binary(ref, binary);
- }
-
- change_editor_items_current_view(ref, GTK_DISPLAY_PANEL(widget));
+ change_editor_items_current_binary(binary);
+ else
+ g_object_unref(G_OBJECT(binary));
- //notify_panels_of_view_change(GTK_DISPLAY_PANEL(widget), false);
+ g_object_unref(G_OBJECT(old_binary));
- g_object_unref(G_OBJECT(binary));
+ g_object_ref(G_OBJECT(widget));
+ change_editor_items_current_view(GTK_DISPLAY_PANEL(widget));
}
@@ -1424,7 +1422,7 @@ static void dock_panel_into_current_station(GtkCheckMenuItem *menuitem, GPanelIt
* *
* Paramètres : station = panneau de support des éléments concerné. *
* button = bouton à l'origine de la procédure. *
-* ref = adresse de l'espace de référencement global. *
+* unsued = adresse non utilisée ici. *
* *
* Description : Réagit à une demande de menu pour rajouter des panneaux. *
* *
@@ -1434,7 +1432,7 @@ static void dock_panel_into_current_station(GtkCheckMenuItem *menuitem, GPanelIt
* *
******************************************************************************/
-static void on_dock_menu_request(GtkDockStation *station, GtkWidget *button, GObject *ref)
+static void on_dock_menu_request(GtkDockStation *station, GtkWidget *button, gpointer unused)
{
GtkWidget *active; /* Composant actif modèle */
GPanelItem *model; /* Panneau encapsulé */
@@ -1512,7 +1510,7 @@ static void on_dock_menu_request(GtkDockStation *station, GtkWidget *button, GOb
* *
* Paramètres : station = panneau de support des éléments concerné. *
* button = bouton à l'origine de la procédure. *
-* ref = adresse de l'espace de référencement global. *
+* unused = adresse non utilisée ici. *
* *
* Description : Réagit à une demande de fermeture du panneau courant. *
* *
@@ -1522,7 +1520,7 @@ static void on_dock_menu_request(GtkDockStation *station, GtkWidget *button, GOb
* *
******************************************************************************/
-static void on_dock_close_request(GtkDockStation *station, GtkWidget *button, GObject *ref)
+static void on_dock_close_request(GtkDockStation *station, GtkWidget *button, gpointer unused)
{
gint index; /* Indice de la page courante */
GtkWidget *active; /* Composant actif modèle */