diff options
Diffstat (limited to 'src/gtkext')
| -rw-r--r-- | src/gtkext/gtkbufferview-int.h | 3 | ||||
| -rw-r--r-- | src/gtkext/gtkbufferview.c | 10 | ||||
| -rw-r--r-- | src/gtkext/gtkdockstation.c | 13 | ||||
| -rw-r--r-- | src/gtkext/gtkdockstation.h | 4 | ||||
| -rw-r--r-- | src/gtkext/gtkviewpanel-int.h | 3 | ||||
| -rw-r--r-- | src/gtkext/gtkviewpanel.c | 89 | ||||
| -rw-r--r-- | src/gtkext/gtkviewpanel.h | 12 | 
7 files changed, 124 insertions, 10 deletions
diff --git a/src/gtkext/gtkbufferview-int.h b/src/gtkext/gtkbufferview-int.h index 31b911e..db27b9e 100644 --- a/src/gtkext/gtkbufferview-int.h +++ b/src/gtkext/gtkbufferview-int.h @@ -40,9 +40,6 @@ struct _GtkBufferView      GCodeBuffer *buffer;                    /* Code sous forme de texte    */      GBufferView *buffer_view;               /* Affichage de cette forme    */ -    bool *display_addr;                     /* Affichage des adresses ?    */ -    bool *display_code;                     /* Affichage du code binaire ? */ -      gint line_height;                       /* Hauteur maximale des lignes */      gint left_margin;                       /* Marge gauche + espace       */      gint left_text;                         /* Début d'impression du code  */ diff --git a/src/gtkext/gtkbufferview.c b/src/gtkext/gtkbufferview.c index 6a2e93d..3e58500 100644 --- a/src/gtkext/gtkbufferview.c +++ b/src/gtkext/gtkbufferview.c @@ -181,7 +181,8 @@ static void gtk_buffer_view_size_request(GtkWidget *widget, GtkRequisition *requ      if (view->buffer_view != NULL)          g_buffer_view_get_size(view->buffer_view,                                 &requisition->width, &requisition->height, -                               *view->display_addr, *view->display_code); +                               *GTK_VIEW_PANEL(view)->display_addr, +                               *GTK_VIEW_PANEL(view)->display_code);  } @@ -225,7 +226,7 @@ static void gtk_buffer_view_size_allocate(GtkWidget *widget, GtkAllocation *allo      view = GTK_BUFFER_VIEW(widget);      g_buffer_view_get_size(view->buffer_view, &width, &height, -                           *view->display_addr, *view->display_code); +                           *panel->display_addr, *panel->display_code);      gtk_view_panel_compute_allocation(panel, &valloc); @@ -324,7 +325,7 @@ static gboolean gtk_buffer_view_expose(GtkWidget *widget, GdkEventExpose *event)      if (view->buffer_view != NULL)          g_buffer_view_draw(view->buffer_view, event, pview->gc, fake_x, fake_y, -                           *view->display_addr, *view->display_code); +                           *pview->display_addr, *pview->display_code);      gdk_window_end_paint(drawable); @@ -383,9 +384,6 @@ void gtk_buffer_view_attach_buffer(GtkBufferView *view, GCodeBuffer *buffer, boo      view->buffer_view = g_buffer_view_new(view->buffer); -    view->display_addr = addr; -    view->display_code = code; -      //gdk_threads_enter();      /* Taille des marges */ diff --git a/src/gtkext/gtkdockstation.c b/src/gtkext/gtkdockstation.c index afea11d..4b837bc 100644 --- a/src/gtkext/gtkdockstation.c +++ b/src/gtkext/gtkdockstation.c @@ -29,6 +29,7 @@  #include "easygtk.h" +#include "iodamarshal.h" @@ -61,6 +62,13 @@ G_DEFINE_TYPE(GtkDockStation, gtk_dock_station, GTK_TYPE_VBOX)  static void gtk_dock_station_class_init(GtkDockStationClass *class)  { +    g_signal_new("switch-widget", +                 GTK_TYPE_DOCK_STATION, +                 G_SIGNAL_RUN_LAST, +                 G_STRUCT_OFFSET(GtkDockStationClass, switch_widget), +                 NULL, NULL, +                 g_cclosure_user_marshal_VOID__OBJECT, +                 G_TYPE_NONE, 1, GTK_TYPE_WIDGET);  } @@ -175,7 +183,7 @@ static gboolean gtk_dock_station_switch_panel(GtkNotebook *notebook, GtkNotebook      gtk_dock_panel_update_title(GTK_DOCK_STATION(data), widget, caption); -    //g_signal_emit_by_name(GTK_DOCK_PANEL(data), "switch-item", ditem); +    g_signal_emit_by_name(GTK_DOCK_STATION(data), "switch-widget", widget);      return TRUE; @@ -214,6 +222,9 @@ void gtk_dock_panel_add_widget(GtkDockStation *station, GtkWidget *widget, const      gtk_dock_panel_update_title(station, widget, caption); +    if (gtk_notebook_get_n_pages(station->notebook) == 1) +        g_signal_emit_by_name(station, "switch-widget", widget); +  } diff --git a/src/gtkext/gtkdockstation.h b/src/gtkext/gtkdockstation.h index c92f43d..41adacc 100644 --- a/src/gtkext/gtkdockstation.h +++ b/src/gtkext/gtkdockstation.h @@ -59,6 +59,10 @@ struct _GtkDockStationClass  {      GtkVBoxClass parent_class;              /* Présence obligatoire en 1er */ +    /* Signaux */ + +    void (* switch_widget) (GtkDockStation *, GtkWidget *); +  }; diff --git a/src/gtkext/gtkviewpanel-int.h b/src/gtkext/gtkviewpanel-int.h index 6ef3567..79f6f4c 100644 --- a/src/gtkext/gtkviewpanel-int.h +++ b/src/gtkext/gtkviewpanel-int.h @@ -56,6 +56,9 @@ struct _GtkViewPanel      attach_binary_fc attach;                /* Association avec un binaire */      scroll_fc scroll;                       /* Défilement du contenu       */ +    bool *display_addr;                     /* Affichage des adresses ?    */ +    bool *display_code;                     /* Affichage du code binaire ? */ +  };  /* Composant d'affichage générique (classe) */ diff --git a/src/gtkext/gtkviewpanel.c b/src/gtkext/gtkviewpanel.c index 7ffeccc..9ccf209 100644 --- a/src/gtkext/gtkviewpanel.c +++ b/src/gtkext/gtkviewpanel.c @@ -339,6 +339,9 @@ void gtk_view_panel_attach_binary(GtkViewPanel *panel, GOpenidaBinary *binary, b      g_object_ref(G_OBJECT(binary));      panel->binary = binary; +    panel->display_addr = addr; +    panel->display_code = code; +      panel->attach(panel, binary, addr, code);  } @@ -348,6 +351,92 @@ void gtk_view_panel_attach_binary(GtkViewPanel *panel, GOpenidaBinary *binary, b  *                                                                             *  *  Paramètres  : panel = composant GTK à consulter.                           *  *                                                                             * +*  Description : Indique si les adresses doivent apparaître dans le rendu.    * +*                                                                             * +*  Retour      : Consigne d'affichage.                                        * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +bool gtk_view_panel_get_addresses_display(const GtkViewPanel *panel) +{ +    return *panel->display_addr; + +} + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : panel = composant GTK à consulter.                           * +*                state = nouvel état à prendre en compte.                     * +*                                                                             * +*  Description : Définit si les adresses doivent apparaître dans le rendu.    * +*                                                                             * +*  Retour      : -                                                            * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +void gtk_view_panel_set_addresses_display(const GtkViewPanel *panel, bool state) +{ +    if (*panel->display_addr != state) +    { +        *panel->display_addr = state; +        gtk_widget_queue_draw(GTK_WIDGET(panel)); +    } + +} + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : panel = composant GTK à consulter.                           * +*                                                                             * +*  Description : Indique si le code doit apparaître dans le rendu.            * +*                                                                             * +*  Retour      : Consigne d'affichage.                                        * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +bool gtk_view_panel_get_code_display(const GtkViewPanel *panel) +{ +    return *panel->display_code; + +} + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : panel = composant GTK à consulter.                           * +*                state = nouvel état à prendre en compte.                     * +*                                                                             * +*  Description : Définit si le code doit apparaître dans le rendu.            * +*                                                                             * +*  Retour      : -                                                            * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +void gtk_view_panel_set_code_display(const GtkViewPanel *panel, bool state) +{ +    if (*panel->display_code != state) +    { +        *panel->display_code = state; +        gtk_widget_queue_draw(GTK_WIDGET(panel)); +    } + +} + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : panel = composant GTK à consulter.                           * +*                                                                             *  *  Description : Fournit le binaire associé à la représentation.              *  *                                                                             *  *  Retour      : Représentation de contenu binaire.                           * diff --git a/src/gtkext/gtkviewpanel.h b/src/gtkext/gtkviewpanel.h index d2b69af..6edee69 100644 --- a/src/gtkext/gtkviewpanel.h +++ b/src/gtkext/gtkviewpanel.h @@ -53,6 +53,18 @@ GType gtk_view_panel_get_type(void);  /* Associe à un panneau d'affichage un binaire chargé. */  void gtk_view_panel_attach_binary(GtkViewPanel *, GOpenidaBinary *, bool *, bool *); +/* Indique si les adresses doivent apparaître dans le rendu. */ +bool gtk_view_panel_get_addresses_display(const GtkViewPanel *); + +/* Définit si les adresses doivent apparaître dans le rendu. */ +void gtk_view_panel_set_addresses_display(const GtkViewPanel *, bool); + +/* Indique si le code doit apparaître dans le rendu. */ +bool gtk_view_panel_get_code_display(const GtkViewPanel *); + +/* Définit si le code doit apparaître dans le rendu. */ +void gtk_view_panel_set_code_display(const GtkViewPanel *, bool); +  /* Fournit le binaire associé à la représentation. */  GOpenidaBinary *gtk_view_panel_get_binary(const GtkViewPanel *);  | 
