summaryrefslogtreecommitdiff
path: root/src/gtkext
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-03-16 23:32:29 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-03-16 23:32:29 (GMT)
commit4021e5f02ce71b35423852cd89fb6f0f2776f7b8 (patch)
tree8f0bbd1632d05d586f7d4af71a80a02906efd5c3 /src/gtkext
parentb94be85e00d7770af4de93bbba91b421cfb6faea (diff)
Created a new feature and stored all main moves in the database.
Diffstat (limited to 'src/gtkext')
-rw-r--r--src/gtkext/gtkviewpanel-int.h2
-rw-r--r--src/gtkext/gtkviewpanel.c58
-rw-r--r--src/gtkext/gtkviewpanel.h11
3 files changed, 71 insertions, 0 deletions
diff --git a/src/gtkext/gtkviewpanel-int.h b/src/gtkext/gtkviewpanel-int.h
index 9a2f885..fcd6ffb 100644
--- a/src/gtkext/gtkviewpanel-int.h
+++ b/src/gtkext/gtkviewpanel-int.h
@@ -103,6 +103,8 @@ struct _GtkViewPanelClass
/* Signaux */
+ void (* move_request) (GtkViewPanel *, const vmpa2t *);
+
void (* caret_moved) (GtkViewPanel *, const vmpa2t *);
};
diff --git a/src/gtkext/gtkviewpanel.c b/src/gtkext/gtkviewpanel.c
index b7829c2..7dab444 100644
--- a/src/gtkext/gtkviewpanel.c
+++ b/src/gtkext/gtkviewpanel.c
@@ -126,6 +126,14 @@ static void gtk_view_panel_class_init(GtkViewPanelClass *class)
panel_class->compute_inc = gtk_view_panel_compute_scroll_inc;
+ g_signal_new("move-request",
+ GTK_TYPE_VIEW_PANEL,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(GtkViewPanelClass, move_request),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
+
g_signal_new("caret-moved",
GTK_TYPE_VIEW_PANEL,
G_SIGNAL_RUN_LAST,
@@ -802,6 +810,36 @@ GLoadedBinary *gtk_view_panel_get_binary(const GtkViewPanel *panel)
}
+
+
+
+
+
+
+
+
+
+/******************************************************************************
+* *
+* Paramètres : panel = composant GTK à consulter. *
+* *
+* Description : Indique la position courante du curseur. *
+* *
+* Retour : Emplacement courant du curseur. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+#include "gtkbufferview.h" // FIXME
+const vmpa2t *gtk_view_panel_get_caret_location(const GtkViewPanel *panel)
+{
+ /* FIXME */
+
+ return gtk_buffer_view_get_caret_location(GTK_BUFFER_VIEW(panel));
+
+}
+
+
/******************************************************************************
* *
* Paramètres : panel = composant GTK à manipuler. *
@@ -894,6 +932,26 @@ void _gtk_view_panel_scroll_to_address(GtkViewPanel *panel, const vmpa2t *addr,
/******************************************************************************
* *
+* Paramètres : panel = composant GTK à manipuler. *
+* addr = adresse à présenter à l'écran. *
+* *
+* Description : Demande à qui veut répondre un déplacement du curseur. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void gtk_view_panel_request_move(GtkViewPanel *panel, const vmpa2t *addr)
+{
+ g_signal_emit_by_name(panel, "move-request", addr);
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : panel = composant GTK à consulter. *
* line = ligne de tampon où se trouve le curseur. [OUT] *
* segment = eventuel segment de ligne actif. [OUT] *
diff --git a/src/gtkext/gtkviewpanel.h b/src/gtkext/gtkviewpanel.h
index 24f0640..0943dd1 100644
--- a/src/gtkext/gtkviewpanel.h
+++ b/src/gtkext/gtkviewpanel.h
@@ -68,6 +68,9 @@ void gtk_view_panel_set_code_display(GtkViewPanel *, bool);
/* Fournit le binaire associé à la représentation. */
GLoadedBinary *gtk_view_panel_get_binary(const GtkViewPanel *);
+
+
+
/* Adaptation d'une position sur une surface */
typedef enum _ScrollPositionTweak
{
@@ -78,11 +81,19 @@ typedef enum _ScrollPositionTweak
} ScrollPositionTweak;
+/* Indique la position courante du curseur. */
+const vmpa2t *gtk_view_panel_get_caret_location(const GtkViewPanel *);
+
/* S'assure qu'une adresse donnée est visible à l'écran. */
void _gtk_view_panel_scroll_to_address(GtkViewPanel *, const vmpa2t *, ScrollPositionTweak, bool);
#define gtk_view_panel_scroll_to_address(p, a, t) _gtk_view_panel_scroll_to_address(p, a, t, true)
+
+
+/* Demande à qui veut répondre un déplacement du curseur. */
+void gtk_view_panel_request_move(GtkViewPanel *, const vmpa2t *);
+
/* Fournit des éléments liés à la position courante dans la vue. */
bool gtk_view_panel_get_position(const GtkViewPanel *, GBufferLine **, GBufferSegment **);