diff options
Diffstat (limited to 'src/gtkext')
-rw-r--r-- | src/gtkext/easygtk.c | 39 | ||||
-rw-r--r-- | src/gtkext/easygtk.h | 3 | ||||
-rw-r--r-- | src/gtkext/gtkbufferview.c | 7 | ||||
-rw-r--r-- | src/gtkext/gtkgraphview.c | 2 | ||||
-rw-r--r-- | src/gtkext/gtkviewpanel-int.h | 2 | ||||
-rw-r--r-- | src/gtkext/gtkviewpanel.c | 6 | ||||
-rw-r--r-- | src/gtkext/gtkviewpanel.h | 2 |
7 files changed, 55 insertions, 6 deletions
diff --git a/src/gtkext/easygtk.c b/src/gtkext/easygtk.c index fb623ab..d4f01e3 100644 --- a/src/gtkext/easygtk.c +++ b/src/gtkext/easygtk.c @@ -477,6 +477,45 @@ GtkWidget *qck_create_check_button(GObject *object, const char *name, const char * * * Paramètres : object = espace dédié à l'inscription de références. * * name = nom à donner au nouveau composant. * +* caption = désignation apparaîssant sur le corps de l'objet. * +* member = membre de la liste des autres boutons. * +* handler = éventuelle fonction de sélection associée. * +* data = données à transmettre avec l'événement si besoin. * +* * +* Description : Crée et enregistre un composant 'GtkRadioButton'. * +* * +* Retour : Composant mis en place. * +* * +* Remarques : - * +* * +******************************************************************************/ + +GtkWidget *qck_create_radio_button(GObject *object, const char *name, const char *caption, GtkRadioButton *member, GCallback handler, gpointer data) +{ + GtkWidget *result; /* Résultat à renvoyer */ + + result = gtk_radio_button_new_with_label_from_widget(member, caption); + + if (G_IS_OBJECT(object) && name != NULL) + { + g_object_ref(G_OBJECT(result)); + g_object_set_data_full(object, name, result, (GDestroyNotify)g_object_unref); + } + + gtk_widget_show(result); + + if (handler != NULL) + g_signal_connect(result, "toggled", handler, data); + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : object = espace dédié à l'inscription de références. * +* name = nom à donner au nouveau composant. * * handler = éventuelle fonction de sélection associée. * * data = données à transmettre avec l'événement si besoin. * * * diff --git a/src/gtkext/easygtk.h b/src/gtkext/easygtk.h index 2dcd821..12de4d3 100644 --- a/src/gtkext/easygtk.h +++ b/src/gtkext/easygtk.h @@ -68,6 +68,9 @@ GtkWidget *qck_create_button_with_img(GObject *, const char *, const char *, GCa /* Crée et enregistre un composant 'GtkCheckButton'. */ GtkWidget *qck_create_check_button(GObject *, const char *, const char *, GCallback, gpointer); +/* Crée et enregistre un composant 'GtkRadioButton'. */ +GtkWidget *qck_create_radio_button(GObject *, const char *, const char *, GtkRadioButton *, GCallback, gpointer); + /* Crée et enregistre un composant 'GtkComboBox'. */ GtkWidget *qck_create_combobox(GObject *, const char *, GCallback, gpointer); diff --git a/src/gtkext/gtkbufferview.c b/src/gtkext/gtkbufferview.c index e58ae5c..032fcf9 100644 --- a/src/gtkext/gtkbufferview.c +++ b/src/gtkext/gtkbufferview.c @@ -62,7 +62,7 @@ static gboolean gtk_buffer_view_draw(GtkWidget *, cairo_t *); static gboolean gtk_buffer_view_key_press(GtkWidget *, GdkEventKey *); /* Indique la position d'affichage d'une adresse donnée. */ -static bool gtk_buffer_view_get_address_coordinates(const GtkBufferView *, vmpa_t, gint *, gint *); +static bool gtk_buffer_view_get_address_coordinates(const GtkBufferView *, const vmpa2t *, gint *, gint *); /* Place en cache un rendu destiné à l'aperçu graphique rapide. */ static void gtk_buffer_view_cache_glance(GtkBufferView *, cairo_t *, const GtkAllocation *, double); @@ -246,8 +246,11 @@ static gboolean gtk_buffer_view_button_press(GtkWidget *widget, GdkEventButton * } else { + return FALSE; + /* addr = g_buffer_view_compute_caret(view->buffer_view, line, index, real_x, &new); if (addr == VMPA_INVALID) return FALSE; + */ gtk_buffer_view_compute_relative_coords(view, &view->caret.x, &view->caret.y); @@ -586,7 +589,7 @@ static gboolean gtk_buffer_view_key_press(GtkWidget *widget, GdkEventKey *event) * * ******************************************************************************/ -static bool gtk_buffer_view_get_address_coordinates(const GtkBufferView *view, vmpa_t addr, gint *x, gint *y) +static bool gtk_buffer_view_get_address_coordinates(const GtkBufferView *view, const vmpa2t *addr, gint *x, gint *y) { return g_buffer_view_get_address_coordinates(view->buffer_view, addr, x, y); diff --git a/src/gtkext/gtkgraphview.c b/src/gtkext/gtkgraphview.c index 3b4fb78..f34cf21 100644 --- a/src/gtkext/gtkgraphview.c +++ b/src/gtkext/gtkgraphview.c @@ -154,7 +154,7 @@ static void gtk_graph_view_init(GtkGraphView *view) viewpanel->define = (define_address_fc)gtk_graph_view_define_main_address; viewpanel->resize = (prepare_resize_fc)gtk_graph_view_prepare_resize; - viewpanel->get_coordinates = (get_addr_coordinates_fc)gtk_graph_view_get_address_coordinates; + ////////viewpanel->get_coordinates = (get_addr_coordinates_fc)gtk_graph_view_get_address_coordinates; viewpanel->cache_glance = (cache_glance_fc)gtk_graph_view_cache_glance; //binview = GTK_BIN_VIEW(view); diff --git a/src/gtkext/gtkviewpanel-int.h b/src/gtkext/gtkviewpanel-int.h index b3a6cf6..1970402 100644 --- a/src/gtkext/gtkviewpanel-int.h +++ b/src/gtkext/gtkviewpanel-int.h @@ -43,7 +43,7 @@ typedef void (* define_address_fc) (GtkViewPanel *, vmpa_t); typedef void (* prepare_resize_fc) (GtkViewPanel *); /* Indique la position d'affichage d'une adresse donnée. */ -typedef bool (* get_addr_coordinates_fc) (const GtkViewPanel *, vmpa_t, gint *, gint *); +typedef bool (* get_addr_coordinates_fc) (const GtkViewPanel *, const vmpa2t *, gint *, gint *); /* Place en cache un rendu destiné à l'aperçu graphique rapide. */ typedef void (* cache_glance_fc) (GtkViewPanel *, cairo_t *, const GtkAllocation *, double); diff --git a/src/gtkext/gtkviewpanel.c b/src/gtkext/gtkviewpanel.c index 739fde7..e4e73a4 100644 --- a/src/gtkext/gtkviewpanel.c +++ b/src/gtkext/gtkviewpanel.c @@ -468,7 +468,7 @@ bool gtk_view_panel_contain_address(const GtkViewPanel *panel, vmpa_t addr) * * ******************************************************************************/ -void gtk_view_panel_scroll_to_address(GtkViewPanel *panel, vmpa_t addr) +void gtk_view_panel_scroll_to_address(GtkViewPanel *panel, const vmpa2t *addr) { gint x; /* Abscisse à garantir */ gint y; /* Ordonnée à garantir */ @@ -476,8 +476,12 @@ void gtk_view_panel_scroll_to_address(GtkViewPanel *panel, vmpa_t addr) GtkAdjustment *adj; /* Défilement à mettre à jour */ double limit; /* Limite à ne pas dépasser */ + + /* if (panel->define != NULL) panel->define(panel, addr); + */ + if (panel->get_coordinates(panel, addr, &x, &y)) { diff --git a/src/gtkext/gtkviewpanel.h b/src/gtkext/gtkviewpanel.h index 5867634..c8d0f6c 100644 --- a/src/gtkext/gtkviewpanel.h +++ b/src/gtkext/gtkviewpanel.h @@ -75,7 +75,7 @@ GLoadedBinary *gtk_view_panel_get_binary(const GtkViewPanel *); bool gtk_view_panel_contain_address(const GtkViewPanel *, vmpa_t); /* S'assure qu'une adresse donnée est visible à l'écran. */ -void gtk_view_panel_scroll_to_address(GtkViewPanel *, vmpa_t); +void gtk_view_panel_scroll_to_address(GtkViewPanel *, const vmpa2t *); /* Place en cache un rendu destiné à l'aperçu graphique rapide. */ void gtk_view_panel_cache_glance(GtkViewPanel *, cairo_t *, const GtkAllocation *, double); |