anjuta r4651 - in trunk: . plugins/build-basic-autotools plugins/debug-manager
- From: sgranjoux svn gnome org
- To: svn-commits-list gnome org
- Subject: anjuta r4651 - in trunk: . plugins/build-basic-autotools plugins/debug-manager
- Date: Sat, 31 Jan 2009 09:55:09 +0000 (UTC)
Author: sgranjoux
Date: Sat Jan 31 09:55:08 2009
New Revision: 4651
URL: http://svn.gnome.org/viewvc/anjuta?rev=4651&view=rev
Log:
* plugins/debug-manager/Makefile.am:
* plugins/debug-manager/anjuta-debug-manager.ui:
* plugins/debug-manager/disassemble.c:
* plugins/debug-manager/plugin.c (dma_plugin_activate):
* plugins/debug-manager/registers.c:
* plugins/debug-manager/registers.h:
* plugins/debug-manager/sharedlib.c (sharedlibs_update),
(sharedlibs_update_controls), (create_sharedlibs_menu),
(sharedlibs_ui_create_treeview_and_store), (create_sharedlibs_gui),
(sharedlibs_new), (sharedlibs_clear), (sharedlibs_free):
* plugins/debug-manager/sharedlib.h:
* plugins/debug-manager/signals.c (signals_update_controls),
(signals_update), (on_signals_send_activate), (on_signals_event),
(on_column_toggled), (signals_add_toggle_column),
(signals_create_list_store_and_treeview), (create_signals_gui),
(signals_new), (signals_clear), (signals_free):
* plugins/debug-manager/signals.h:
Remove GnomeDialog and GnomeMenuShell as well as GtkCList from signals
and sharedlibs window
#513156 â Get rid of libgnome(ui)
* manuals/build-basic-autotools/Makefile.am:
* plugins/build-basic-autotools/executer.c (execute_program):
#513156 â Get rid of libgnome(ui)
Modified:
trunk/ChangeLog
trunk/plugins/build-basic-autotools/Makefile.am
trunk/plugins/build-basic-autotools/executer.c
trunk/plugins/debug-manager/Makefile.am
trunk/plugins/debug-manager/anjuta-debug-manager.ui
trunk/plugins/debug-manager/disassemble.c
trunk/plugins/debug-manager/plugin.c
trunk/plugins/debug-manager/registers.c
trunk/plugins/debug-manager/registers.h
trunk/plugins/debug-manager/sharedlib.c
trunk/plugins/debug-manager/sharedlib.h
trunk/plugins/debug-manager/signals.c
trunk/plugins/debug-manager/signals.h
Modified: trunk/plugins/build-basic-autotools/Makefile.am
==============================================================================
--- trunk/plugins/build-basic-autotools/Makefile.am (original)
+++ trunk/plugins/build-basic-autotools/Makefile.am Sat Jan 31 09:55:08 2009
@@ -54,7 +54,6 @@
# Plugin dependencies
libanjuta_build_basic_autotools_la_LIBADD = \
$(GLADE_LIBS) \
- $(GNOME_LIBS) \
$(GIO_LIBS) \
$(LIBANJUTA_LIBS)
Modified: trunk/plugins/build-basic-autotools/executer.c
==============================================================================
--- trunk/plugins/build-basic-autotools/executer.c (original)
+++ trunk/plugins/build-basic-autotools/executer.c Sat Jan 31 09:55:08 2009
@@ -24,7 +24,6 @@
#include <unistd.h>
#include <string.h>
-#include <gnome.h>
#include <glade/glade.h>
#include <libanjuta/resources.h>
@@ -425,13 +424,12 @@
}
else
{
- DEBUG_PRINT ("%s", "No installed terminal plugin found");
- gnome_execute_shell (dir, cmd);
+ anjuta_util_execute_shell (dir, cmd);
}
}
else
{
- gnome_execute_shell (dir, cmd);
+ anjuta_util_execute_shell (dir, cmd);
}
g_free (dir);
Modified: trunk/plugins/debug-manager/Makefile.am
==============================================================================
--- trunk/plugins/debug-manager/Makefile.am (original)
+++ trunk/plugins/debug-manager/Makefile.am Sat Jan 31 09:55:08 2009
@@ -13,7 +13,6 @@
AM_CPPFLAGS= \
$(WARN_CFLAGS) \
- $(DEPRECATED_FLAGS) \
$(GIO_CFLAGS) \
$(LIBANJUTA_CFLAGS)
Modified: trunk/plugins/debug-manager/anjuta-debug-manager.ui
==============================================================================
--- trunk/plugins/debug-manager/anjuta-debug-manager.ui (original)
+++ trunk/plugins/debug-manager/anjuta-debug-manager.ui Sat Jan 31 09:55:08 2009
@@ -96,5 +96,11 @@
<menuitem name="SetCurrentThread" action="ActionDmaSetCurrentThread" />
<menuitem name="JumpToThread" action="ActionDmaJumpToThread" />
</popup>
-
+ <popup name="PopupSignals">
+ <menuitem name="SendSignal" action="ActionDmaSignalSend" />
+ <menuitem name="UpdateSignalList" action="ActionDmaSignalUpdate" />
+ </popup>
+ <popup name="PopupSharedlibs">
+ <menuitem name="UpdateShlList" action="ActionDmaSharedlibsUpdate" />
+ </popup>
</ui>
Modified: trunk/plugins/debug-manager/disassemble.c
==============================================================================
--- trunk/plugins/debug-manager/disassemble.c (original)
+++ trunk/plugins/debug-manager/disassemble.c Sat Jan 31 09:55:08 2009
@@ -32,7 +32,6 @@
#include <unistd.h>
#include <string.h>
-#include <gnome.h>
#include "disassemble.h"
#include "sparse_buffer.h"
Modified: trunk/plugins/debug-manager/plugin.c
==============================================================================
--- trunk/plugins/debug-manager/plugin.c (original)
+++ trunk/plugins/debug-manager/plugin.c Sat Jan 31 09:55:08 2009
@@ -1068,9 +1068,8 @@
dma_plugin_activate (AnjutaPlugin* plugin)
{
DebugManagerPlugin *this;
- static gboolean initialized = FALSE;
+ static gboolean initialized = FALSE;
AnjutaUI *ui;
- GtkAction *action;
DEBUG_PRINT ("%s", "DebugManagerPlugin: Activating Debug Manager plugin...");
this = ANJUTA_PLUGIN_DEBUG_MANAGER (plugin);
Modified: trunk/plugins/debug-manager/registers.c
==============================================================================
--- trunk/plugins/debug-manager/registers.c (original)
+++ trunk/plugins/debug-manager/registers.c Sat Jan 31 09:55:08 2009
@@ -27,8 +27,6 @@
#include <unistd.h>
#include <string.h>
-#include <gnome.h>
-
/*#define DEBUG*/
#include <libanjuta/resources.h>
#include <libanjuta/anjuta-debug.h>
Modified: trunk/plugins/debug-manager/registers.h
==============================================================================
--- trunk/plugins/debug-manager/registers.h (original)
+++ trunk/plugins/debug-manager/registers.h Sat Jan 31 09:55:08 2009
@@ -27,8 +27,6 @@
#include <libanjuta/interfaces/ianjuta-debugger.h>
#include <libanjuta/interfaces/ianjuta-debugger-register.h>
-#include <gnome.h>
-
typedef struct _CpuRegisters CpuRegisters;
CpuRegisters* cpu_registers_new (DebugManagerPlugin *plugin);
Modified: trunk/plugins/debug-manager/sharedlib.c
==============================================================================
--- trunk/plugins/debug-manager/sharedlib.c (original)
+++ trunk/plugins/debug-manager/sharedlib.c Sat Jan 31 09:55:08 2009
@@ -25,14 +25,22 @@
#include <unistd.h>
#include <string.h>
-#include <gnome.h>
-
#include <libanjuta/resources.h>
+#include <libanjuta/anjuta-shell.h>
#include "utilities.h"
#include "sharedlib.h"
#include "queue.h"
+enum
+{
+ SHL_COLUMN_SHARED_OBJECT,
+ SHL_COLUMN_FROM,
+ SHL_COLUMN_TO,
+ SHL_COLUMN_SYM_READ,
+ SHL_COLUMN_COUNT
+};
+
static gint
on_sharedlibs_delete_event (GtkWidget* w, GdkEvent *event, gpointer data)
{
@@ -55,33 +63,37 @@
}
-static void
+ static void
sharedlibs_update (const GList *lines, gpointer data)
{
- Sharedlibs *sl;
- gchar obj[512], from[32], to[32], read[32];
- gchar *row[4];
- gint count;
- GList *list, *node;
-
- sl = (Sharedlibs*)data;
-
- list = gdb_util_remove_blank_lines(lines);
- sharedlibs_clear(sl);
- if(g_list_length(list) < 2 ){g_list_free(list); return;}
- node = list->next;
- while(node)
- {
- count = sscanf((char*)node->data, "%s %s %s %s", from,to,read,obj);
- node = g_list_next(node);
- if(count != 4) continue;
- row[0]=(gchar*) g_path_get_basename (obj);
- row[1]=from;
- row[2]=to;
- row[3]=read;
- gtk_clist_append(GTK_CLIST(sl->widgets.clist), row);
- }
- g_list_free(list);
+ Sharedlibs *sl;
+ gchar obj[512], from[32], to[32], read[32];
+ gint count;
+ GList *list, *node;
+ GtkTreeIter iter;
+
+ sl = (Sharedlibs*)data;
+
+ list = gdb_util_remove_blank_lines(lines);
+ sharedlibs_clear(sl);
+ if(g_list_length(list) < 2 ){g_list_free(list); return;}
+ node = list->next;
+ if (node)
+ node = g_list_next (node);
+ while(node)
+ {
+ count = sscanf((char*)node->data, "~%s %s %s %s", from,to,read,obj);
+ node = g_list_next(node);
+ if(count != 4) continue;
+ gtk_list_store_append (sl->widgets.store, &iter);
+ gtk_list_store_set (sl->widgets.store, &iter,
+ SHL_COLUMN_SHARED_OBJECT, g_path_get_basename (obj),
+ SHL_COLUMN_FROM, from,
+ SHL_COLUMN_TO, to,
+ SHL_COLUMN_SYM_READ, strcmp(read, "Yes") == 0,
+ -1);
+ }
+ g_list_free(list);
}
static void
@@ -98,11 +110,11 @@
static void
sharedlibs_update_controls (Sharedlibs* ew)
{
- gboolean R;
+ gboolean R;
- R = dma_debugger_queue_get_state (ew->debugger) == IANJUTA_DEBUGGER_OK;
+ R = dma_debugger_queue_get_state (ew->debugger) == IANJUTA_DEBUGGER_PROGRAM_STOPPED;
- gtk_widget_set_sensitive(ew->widgets.menu_update, R);
+ gtk_action_group_set_sensitive (ew->widgets.action_group, R);
}
static gboolean
@@ -124,44 +136,95 @@
return TRUE;
}
-static GnomeUIInfo sharedlibs_menu_uiinfo[] =
+static GtkActionEntry sharedlibs_menu_actions[] =
{
{
- GNOME_APP_UI_ITEM, N_("Update"),
- NULL,
- on_sharedlibs_update_activate, NULL, NULL,
- GNOME_APP_PIXMAP_NONE, NULL,
- 0, 0, NULL
- },
- GNOMEUIINFO_END
+ "ActionDmaSharedlibsUpdate",
+ GTK_STOCK_REFRESH,
+ N_("Update"),
+ NULL, NULL,
+ G_CALLBACK (on_sharedlibs_update_activate)
+ }
};
static GtkWidget*
-create_sharedlibs_menu (Sharedlibs *sl)
+create_sharedlibs_menu (Sharedlibs *sl, DebugManagerPlugin *plugin)
{
- GtkWidget *sharedlibs_menu;
+ AnjutaUI *ui;
- sharedlibs_menu = gtk_menu_new ();
- sharedlibs_menu_uiinfo[0].user_data = sl;
- gnome_app_fill_menu (GTK_MENU_SHELL (sharedlibs_menu), sharedlibs_menu_uiinfo,
- NULL, FALSE, 0);
- return sharedlibs_menu;
+ ui = anjuta_shell_get_ui (ANJUTA_PLUGIN(plugin)->shell, NULL);
+ sl->widgets.action_group =
+ anjuta_ui_add_action_group_entries (ui,
+ "ActionGroupSharedlibs",
+ _("Sharedlibs operations"),
+ sharedlibs_menu_actions,
+ G_N_ELEMENTS(sharedlibs_menu_actions),
+ GETTEXT_PACKAGE, TRUE, sl);
+ return gtk_ui_manager_get_widget (GTK_UI_MANAGER (ui),
+ "/PopupSharedlibs");
+}
+
+static GtkWidget*
+sharedlibs_ui_create_treeview_and_store (Sharedlibs *sl)
+{
+ GtkWidget *treeview;
+ GtkListStore *store;
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+
+ store = gtk_list_store_new (SHL_COLUMN_COUNT,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_BOOLEAN);
+ treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
+
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Shared Object"),
+ renderer,
+ "text", SHL_COLUMN_SHARED_OBJECT,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("From"),
+ renderer,
+ "text", SHL_COLUMN_FROM,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("To"),
+ renderer,
+ "text", SHL_COLUMN_TO,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+
+ renderer = gtk_cell_renderer_toggle_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Symbols read"),
+ renderer,
+ "active", SHL_COLUMN_SYM_READ,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+
+ sl->widgets.treeview = treeview;
+ sl->widgets.store = store;
+
+ return treeview;
}
static void
-create_sharedlibs_gui (Sharedlibs *sl)
+create_sharedlibs_gui (Sharedlibs *sl, DebugManagerPlugin *plugin)
{
GtkWidget *window3;
GtkWidget *scrolledwindow4;
- GtkWidget *clist4;
- GtkWidget *label6, *label7, *label8, *label9;
+ GtkWidget *treeview;
window3 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize (window3, 170, -2);
gtk_window_set_title (GTK_WINDOW (window3), _("Shared libraries"));
gtk_window_set_wmclass (GTK_WINDOW (window3), "sharedlibs", "Anjuta");
gtk_window_set_default_size (GTK_WINDOW (window3), 240, 230);
- gnome_window_icon_set_from_default(GTK_WINDOW(window3));
scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow4);
@@ -169,46 +232,23 @@
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
- clist4 = gtk_clist_new (4);
- gtk_widget_show (clist4);
- gtk_container_add (GTK_CONTAINER (scrolledwindow4), clist4);
- gtk_clist_set_column_width (GTK_CLIST (clist4), 0, 110);
- gtk_clist_set_column_width (GTK_CLIST (clist4), 1, 90);
- gtk_clist_set_column_width (GTK_CLIST (clist4), 2, 90);
- gtk_clist_set_column_width (GTK_CLIST (clist4), 3, 80);
- gtk_clist_set_selection_mode (GTK_CLIST (clist4), GTK_SELECTION_BROWSE);
- gtk_clist_column_titles_show (GTK_CLIST (clist4));
- gtk_clist_set_column_auto_resize (GTK_CLIST(clist4), 0, TRUE);
-
- label6 = gtk_label_new (_("Shared Object"));
- gtk_widget_show (label6);
- gtk_clist_set_column_widget (GTK_CLIST (clist4), 0, label6);
-
- label7 = gtk_label_new (_("From"));
- gtk_widget_show (label7);
- gtk_clist_set_column_widget (GTK_CLIST (clist4), 1, label7);
-
- label8 = gtk_label_new (_("To"));
- gtk_widget_show (label8);
- gtk_clist_set_column_widget (GTK_CLIST (clist4), 2, label8);
-
- /* Whether the debugging symbols in the shared libraries have been read */
- label9 = gtk_label_new (_("Symbols read"));
- gtk_widget_show (label9);
- gtk_clist_set_column_widget (GTK_CLIST (clist4), 3, label9);
+
+ treeview = sharedlibs_ui_create_treeview_and_store (sl);
+ gtk_widget_show (treeview);
+ gtk_container_add (GTK_CONTAINER (scrolledwindow4), treeview);
- gtk_signal_connect (GTK_OBJECT (window3), "delete_event",
- GTK_SIGNAL_FUNC (on_sharedlibs_delete_event), sl);
- gtk_signal_connect (GTK_OBJECT (window3), "key-press-event",
- GTK_SIGNAL_FUNC (on_sharedlibs_key_press_event), sl);
- gtk_signal_connect (GTK_OBJECT (clist4), "event",
- GTK_SIGNAL_FUNC (on_sharedlibs_event),
+ g_signal_connect (G_OBJECT (window3), "delete_event",
+ G_CALLBACK (on_sharedlibs_delete_event), sl);
+ g_signal_connect (G_OBJECT (window3), "key-press-event",
+ G_CALLBACK (on_sharedlibs_key_press_event), sl);
+
+ g_signal_connect (G_OBJECT (treeview), "event",
+ G_CALLBACK (on_sharedlibs_event),
sl);
sl->widgets.window = window3;
- sl->widgets.clist = clist4;
- sl->widgets.menu = create_sharedlibs_menu (sl);
- sl->widgets.menu_update = sharedlibs_menu_uiinfo[0].widget;
+ sl->widgets.treeview = treeview;
+ sl->widgets.menu = create_sharedlibs_menu (sl, plugin);
}
Sharedlibs*
@@ -225,7 +265,7 @@
ew->win_height = 370;
ew->win_pos_x = 120;
ew->win_pos_y = 140;
- create_sharedlibs_gui(ew);
+ create_sharedlibs_gui(ew, plugin);
}
return ew;
}
@@ -233,8 +273,10 @@
void
sharedlibs_clear (Sharedlibs *sg)
{
- if(GTK_IS_CLIST(sg->widgets.clist))
- gtk_clist_clear(GTK_CLIST(sg->widgets.clist));
+ g_return_if_fail (sg->widgets.store != NULL);
+ g_return_if_fail (GTK_IS_LIST_STORE (sg->widgets.store));
+
+ gtk_list_store_clear (sg->widgets.store);
}
void
@@ -285,6 +327,7 @@
sharedlibs_clear(sg);
gtk_widget_destroy(sg->widgets.window);
gtk_widget_destroy(sg->widgets.menu);
+ g_object_unref (sg->widgets.store);
g_free(sg);
}
}
Modified: trunk/plugins/debug-manager/sharedlib.h
==============================================================================
--- trunk/plugins/debug-manager/sharedlib.h (original)
+++ trunk/plugins/debug-manager/sharedlib.h Sat Jan 31 09:55:08 2009
@@ -35,10 +35,11 @@
struct _SharedlibsGui
{
- GtkWidget* window;
- GtkWidget* clist;
- GtkWidget* menu;
- GtkWidget* menu_update;
+ GtkWidget* window;
+ GtkWidget* menu;
+ GtkActionGroup *action_group;
+ GtkWidget* treeview;
+ GtkListStore* store;
};
struct _Sharedlibs
Modified: trunk/plugins/debug-manager/signals.c
==============================================================================
--- trunk/plugins/debug-manager/signals.c (original)
+++ trunk/plugins/debug-manager/signals.c Sat Jan 31 09:55:08 2009
@@ -26,36 +26,47 @@
#include <string.h>
#include <ctype.h>
-#include <gnome.h>
-
+#include <libanjuta/anjuta-shell.h>
#include <libanjuta/resources.h>
#include "utilities.h"
#include "signals.h"
-static GtkWidget* create_signals_set_dialog (Signals *s);
+enum _SignalColums
+{
+ SIGNAL_COLUMN_NAME,
+ SIGNAL_COLUMN_STOP,
+ SIGNAL_COLUMN_PRINT,
+ SIGNAL_COLUMN_PASS,
+ SIGNAL_COLUMN_DESCRIPTION,
+ SIGNAL_COLUMN_COUNT
+};
static void
signals_update_controls (Signals * ew)
{
gboolean R, Pr;
- R = dma_debugger_queue_get_state (ew->debugger) == IANJUTA_DEBUGGER_OK;
+ R = dma_debugger_queue_get_state (ew->debugger) == IANJUTA_DEBUGGER_PROGRAM_STOPPED;
Pr = dma_debugger_queue_get_state (ew->debugger) == IANJUTA_DEBUGGER_PROGRAM_RUNNING;
- gtk_widget_set_sensitive (ew->widgets.menu_signal, Pr);
- gtk_widget_set_sensitive (ew->widgets.menu_modify, R);
- gtk_widget_set_sensitive (ew->widgets.menu_update, R);
+ gtk_action_group_set_sensitive(ew->widgets.action_group_debugger_ok, R);
+ gtk_action_group_set_sensitive(ew->widgets.action_group_program_running, Pr);
}
+/*
+ * signals_update:
+ */
static void
signals_update (const GList * lines, gpointer data)
{
Signals *sg;
gint j, count;
- gchar *row[5], *str;
+ gchar *str;
gchar sig[32], stop[10], print[10], pass[10];
GList *list, *node;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
sg = (Signals *) data;
signals_clear (sg);
@@ -65,12 +76,20 @@
g_list_free (list);
return;
}
- gtk_clist_freeze (GTK_CLIST(sg->widgets.clist));
+
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (sg->widgets.treeview));
+ gtk_tree_view_set_model (GTK_TREE_VIEW (sg->widgets.treeview), NULL);
node = list->next;
+
+ /* Skip the first two lines */
+ if (node)
+ node = node->next;
+ if (node)
+ node = node->next;
while (node)
{
count =
- sscanf ((char *) node->data, "%s %s %s %s", sig, stop, print, pass);
+ sscanf ((char *) node->data, "~%s %s %s %s", sig, stop, print, pass);
str = node->data;
node = g_list_next (node);
if (count != 4)
@@ -79,10 +98,6 @@
/* Do not worry. This is used to avoid the last line */
if (node == NULL)
break;
- row[0] = sig;
- row[1] = stop;
- row[2] = print;
- row[3] = pass;
for (j = 0; j < 4; j++)
{
while (isspace (*str))
@@ -92,19 +107,20 @@
}
while (isspace (*str))
str++;
- row[4] = str;
- gtk_clist_append (GTK_CLIST (sg->widgets.clist), row);
+
+ gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+ SIGNAL_COLUMN_NAME, sig,
+ SIGNAL_COLUMN_STOP, strcmp (stop, "Yes") == 0,
+ SIGNAL_COLUMN_PRINT, strcmp (print, "Yes") == 0,
+ SIGNAL_COLUMN_PASS, strcmp (pass, "Yes") == 0,
+ SIGNAL_COLUMN_DESCRIPTION, str,
+ -1);
}
- g_list_free (list);
- gtk_clist_thaw (GTK_CLIST(sg->widgets.clist));
-}
-static void
-on_signals_clist_select_row (GtkCList *clist, gint row,
- gint column, GdkEvent *event, gpointer user_data)
-{
- Signals *s = (Signals*)user_data;
- s->idx = row;
+ /* FIXME: do we need to free the char data as well? */
+ g_list_free (list);
+ gtk_tree_view_set_model (GTK_TREE_VIEW (sg->widgets.treeview), model);
}
static gint
@@ -129,29 +145,29 @@
}
static void
-on_signals_modify_activate (GtkMenuItem *menuitem, gpointer user_data)
-{
- GtkWidget* dialog;
- Signals *s = (Signals*)user_data;
-
- dialog = create_signals_set_dialog (s);
- if (dialog)
- gtk_widget_show (dialog);
-}
-
-static void
on_signals_send_activate (GtkMenuItem *menuitem, gpointer user_data)
{
- #if 0
+ Signals *s = (Signals*)user_data;
+#if 0
gchar* sig;
- Signals *s = (Signals*)user_data;
-
- if (debugger_program_is_running (s->debugger) == FALSE) return;
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+#endif
+ if (dma_debugger_queue_get_state (s->debugger) != IANJUTA_DEBUGGER_PROGRAM_RUNNING)
+ return;
+ /* has FIXME in debugger.c in gdb plugin */
+#if 0
signals_show (s);
- gtk_clist_get_text(GTK_CLIST (s->widgets.clist), s->idx, 0, &sig);
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (s->widgets.treeview));
+ gtk_tree_selection_get_selected (selection, &model, &iter);
+ gtk_tree_model_get (model, &iter,
+ SIGNAL_COLUMN_NAME, &sig,
+ -1);
debugger_signal(sig, TRUE);
- #endif
+ g_free (sig);
+#endif
}
static void
@@ -164,17 +180,17 @@
s);
}
+/*
+ * Show popup menu on #GtkTreeView
+ */
static gboolean
-on_signals_event (GtkWidget *widget, GdkEvent *event, gpointer user_data)
+on_signals_event (GtkWidget *widget, GdkEventButton *bevent, gpointer user_data)
{
- GdkEventButton *bevent;
Signals *ew = (Signals*)user_data;
- if (event->type != GDK_BUTTON_PRESS) return FALSE;
- if (((GdkEventButton *)event)->button != 3) return FALSE;
+ if (bevent->type != GDK_BUTTON_PRESS) return FALSE;
+ if (bevent->button != 3) return FALSE;
- bevent = (GdkEventButton *)event;
- bevent->button = 1;
signals_update_controls(ew);
gtk_menu_popup (GTK_MENU(ew->widgets.menu), NULL,
NULL, NULL, NULL,
@@ -182,134 +198,155 @@
return TRUE;
}
-static void
-on_signals_togglebutton1_toggled (GtkToggleButton *togglebutton,
- gpointer user_data)
-{
- Signals *sig = (Signals*) user_data;
-
- sig->stop = gtk_toggle_button_get_active (togglebutton);
- if (sig->stop)
- gtk_label_set_text (GTK_LABEL(GTK_BIN (togglebutton)->child), _("Yes"));
- else
- gtk_label_set_text (GTK_LABEL(GTK_BIN (togglebutton)->child), _("No"));
-}
-
-static void
-on_signals_togglebutton2_toggled (GtkToggleButton *togglebutton,
- gpointer user_data)
-{
- Signals *sig = (Signals*) user_data;
-
- sig->print = gtk_toggle_button_get_active(togglebutton);
- if (sig->print)
- gtk_label_set_text (GTK_LABEL(GTK_BIN(togglebutton)->child), _("Yes"));
- else
- gtk_label_set_text (GTK_LABEL(GTK_BIN(togglebutton)->child), _("No"));
-}
-
-static void
-on_signals_togglebutton3_toggled (GtkToggleButton *togglebutton,
- gpointer user_data)
-{
- Signals *sig = (Signals*) user_data;
-
- sig->pass = gtk_toggle_button_get_active (togglebutton);
- if (sig->pass)
- gtk_label_set_text (GTK_LABEL(GTK_BIN(togglebutton)->child), _("Yes"));
- else
- gtk_label_set_text (GTK_LABEL(GTK_BIN(togglebutton)->child), _("No"));
-}
-
-static void
-on_signals_set_ok_clicked (GtkButton *button,
- gpointer user_data)
-{
- Signals *s = (Signals*) user_data;
+/*
+ * on_column_toggled:
+ *
+ * @renderer: cell renderer on which the toggle happened
+ * @path: row in list where the change happened
+ * @sig: instance of #Signals
+ *
+ * Callback if one of the three boolean columns has been toggled by the
+ * user. If the debugged program is not stopped this function will
+ * do nothing. Function will fetch state of signal from list store, update the
+ * affected column and pass on the data to the debugging backend using
+ * dma_queue_handler_signal().
+ */
+static void
+on_column_toggled(GtkCellRendererToggle *renderer, gchar *path, Signals *sig)
+{
+ GtkTreeIter iter;
+ gchar *signal;
+ gboolean data[SIGNAL_COLUMN_COUNT];
+ guint column;
- if(s->stop)
- {
- gtk_clist_set_text(GTK_CLIST(s->widgets.clist), s->idx, 1, "Yes");
- }
- else
- {
- gtk_clist_set_text(GTK_CLIST(s->widgets.clist), s->idx, 1, "No");
- }
- if(s->print)
+ if (dma_debugger_queue_get_state (sig->debugger) != IANJUTA_DEBUGGER_PROGRAM_STOPPED)
{
- gtk_clist_set_text(GTK_CLIST(s->widgets.clist), s->idx, 2, "Yes");
- }
- else
- {
- gtk_clist_set_text(GTK_CLIST(s->widgets.clist), s->idx, 2, "No");
- }
- if(s->pass)
- {
- gtk_clist_set_text(GTK_CLIST(s->widgets.clist), s->idx, 3, "Yes");
+ return;
}
- else
- {
- gtk_clist_set_text(GTK_CLIST(s->widgets.clist), s->idx, 3, "No");
+
+ column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (renderer), "__column_nr"));
+
+ gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (sig->widgets.store),
+ &iter,
+ path);
+ gtk_tree_model_get (GTK_TREE_MODEL (sig->widgets.store),
+ &iter,
+ SIGNAL_COLUMN_NAME, &signal,
+ SIGNAL_COLUMN_STOP, &data[SIGNAL_COLUMN_STOP],
+ SIGNAL_COLUMN_PRINT, &data[SIGNAL_COLUMN_PRINT],
+ SIGNAL_COLUMN_PASS, &data[SIGNAL_COLUMN_PASS],
+ -1);
+
+ data[column] = !data[column];
+
+ gtk_list_store_set (sig->widgets.store,
+ &iter,
+ column, data[column], -1);
+ dma_queue_handle_signal (sig->debugger, signal,
+ data[SIGNAL_COLUMN_STOP],
+ data[SIGNAL_COLUMN_PRINT],
+ data[SIGNAL_COLUMN_PASS]);
+ g_free (signal);
+}
+
+static void
+signals_add_toggle_column (GtkTreeView *tv, const gchar *title, guint column_num, Signals *sig)
+{
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+
+ renderer = gtk_cell_renderer_toggle_new ();
+ g_object_set (G_OBJECT (renderer), "editable", TRUE, NULL);
+ column = gtk_tree_view_column_new_with_attributes (title,
+ renderer,
+ "active", column_num,
+ NULL);
+ gtk_tree_view_append_column (tv, column);
+ g_object_set_data (G_OBJECT (renderer), "__column_nr", GINT_TO_POINTER (column_num));
+ g_signal_connect (G_OBJECT (renderer),
+ "toggled", G_CALLBACK (on_column_toggled), sig);
+}
+
+static GtkWidget *
+signals_create_list_store_and_treeview(Signals *sig)
+{
+ GtkListStore *store;
+ GtkWidget *w;
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+
+ store = gtk_list_store_new (SIGNAL_COLUMN_COUNT,
+ G_TYPE_STRING,
+ G_TYPE_BOOLEAN,
+ G_TYPE_BOOLEAN,
+ G_TYPE_BOOLEAN,
+ G_TYPE_STRING
+ );
+
+ w = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
+
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Signal"),
+ renderer,
+ "text", SIGNAL_COLUMN_NAME,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (w), column);
+
+ signals_add_toggle_column (GTK_TREE_VIEW (w), _("Stop"), SIGNAL_COLUMN_STOP, sig);
+ signals_add_toggle_column (GTK_TREE_VIEW (w), _("Print"), SIGNAL_COLUMN_PRINT, sig);
+ signals_add_toggle_column (GTK_TREE_VIEW (w), _("Pass"), SIGNAL_COLUMN_PASS, sig);
+
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Description"),
+ renderer,
+ "text", SIGNAL_COLUMN_DESCRIPTION,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (w), column);
+
+ g_signal_connect (G_OBJECT (w), "button-press-event",
+ G_CALLBACK (on_signals_event), sig);
+
+ return w;
+}
+
+/* Actions table
+ *---------------------------------------------------------------------------*/
+
+static GtkActionEntry actions_signals_program_running[] = {
+ {
+ "ActionDmaSignalSend", /* Action name */
+ NULL, /* Stock icon, if any */
+ N_("Send to process"), /* Display label */
+ NULL, /* short-cut */
+ NULL, /* Tooltip */
+ G_CALLBACK (on_signals_send_activate) /* action callback */
}
- dma_queue_handle_signal (s->debugger, s->signal, s->stop, s->print, s->pass);
-}
+};
-static GnomeUIInfo signals_menu_uiinfo[] =
-{
- {
- GNOME_APP_UI_ITEM, N_("Modify Signal"),
- NULL,
- on_signals_modify_activate, NULL, NULL,
- GNOME_APP_PIXMAP_NONE, NULL,
- 0, 0, NULL
- },
+static GtkActionEntry actions_signals_debugger_ok[] = {
{
- GNOME_APP_UI_ITEM, N_("Send to process"),
+ "ActionDmaSignalUpdate",
+ GTK_STOCK_REFRESH,
+ N_("Update"),
NULL,
- on_signals_send_activate, NULL, NULL,
- GNOME_APP_PIXMAP_NONE, NULL,
- 0, 0, NULL
- },
- {
- GNOME_APP_UI_ITEM, N_("Update"),
NULL,
- on_signals_update_activate, NULL, NULL,
- GNOME_APP_PIXMAP_NONE, NULL,
- 0, 0, NULL
- },
- GNOMEUIINFO_END
+ G_CALLBACK (on_signals_update_activate)
+ }
};
-static GtkWidget*
-create_signals_menu (Signals *s)
-{
- GtkWidget *signals_menu;
-
- signals_menu = gtk_menu_new ();
-
- signals_menu_uiinfo[0].user_data = s;
- signals_menu_uiinfo[1].user_data = s;
- signals_menu_uiinfo[2].user_data = s;
-
- gnome_app_fill_menu (GTK_MENU_SHELL (signals_menu), signals_menu_uiinfo,
- NULL, FALSE, 0);
- return signals_menu;
-}
static void
create_signals_gui (Signals *cr)
{
GtkWidget *window3;
GtkWidget *scrolledwindow4;
- GtkWidget *clist4;
- GtkWidget *label6, *label7, *label8, *label9, *label10;
+ GtkWidget *tv;
window3 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize (window3, 170, -2);
gtk_window_set_title (GTK_WINDOW (window3), _("Kernel signals"));
gtk_window_set_wmclass (GTK_WINDOW (window3), "signals", "Anjuta");
gtk_window_set_default_size (GTK_WINDOW (window3), 240, 230);
- gnome_window_icon_set_from_default(GTK_WINDOW(window3));
scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (scrolledwindow4);
@@ -317,240 +354,51 @@
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- clist4 = gtk_clist_new (5);
- gtk_widget_show (clist4);
- gtk_container_add (GTK_CONTAINER (scrolledwindow4), clist4);
- gtk_clist_set_column_width (GTK_CLIST (clist4), 0, 100);
- gtk_clist_set_column_width (GTK_CLIST (clist4), 1, 50);
- gtk_clist_set_column_width (GTK_CLIST (clist4), 2, 50);
- gtk_clist_set_column_width (GTK_CLIST (clist4), 3, 50);
- gtk_clist_set_column_width (GTK_CLIST (clist4), 4, 80);
- gtk_clist_set_selection_mode (GTK_CLIST (clist4), GTK_SELECTION_BROWSE);
- gtk_clist_column_titles_show (GTK_CLIST (clist4));
- gtk_clist_set_column_auto_resize (GTK_CLIST(clist4), 4, TRUE);
-
- label6 = gtk_label_new (_("Signal"));
- gtk_widget_show (label6);
- gtk_clist_set_column_widget (GTK_CLIST (clist4), 0, label6);
-
- label7 = gtk_label_new (_("Stop"));
- gtk_widget_show (label7);
- gtk_clist_set_column_widget (GTK_CLIST (clist4), 1, label7);
-
- label8 = gtk_label_new (_("Print"));
- gtk_widget_show (label8);
- gtk_clist_set_column_widget (GTK_CLIST (clist4), 2, label8);
-
- label9 = gtk_label_new (_("Pass"));
- gtk_widget_show (label9);
- gtk_clist_set_column_widget (GTK_CLIST (clist4), 3, label9);
-
- label10 = gtk_label_new (_("Description"));
- gtk_widget_show (label10);
- gtk_clist_set_column_widget (GTK_CLIST (clist4), 4, label10);
-
+ tv = signals_create_list_store_and_treeview (cr);
+ gtk_widget_show (tv);
+ gtk_container_add (GTK_CONTAINER (scrolledwindow4), tv);
gtk_signal_connect (GTK_OBJECT (window3), "delete_event",
GTK_SIGNAL_FUNC (on_signals_delete_event), cr);
gtk_signal_connect (GTK_OBJECT (window3), "key-press-event",
GTK_SIGNAL_FUNC (on_signals_key_press_event), cr);
- gtk_signal_connect (GTK_OBJECT (clist4), "event",
- GTK_SIGNAL_FUNC (on_signals_event),
- cr);
- gtk_signal_connect (GTK_OBJECT (clist4), "select_row",
- GTK_SIGNAL_FUNC (on_signals_clist_select_row),
- cr);
-
cr->widgets.window = window3;
- cr->widgets.clist = clist4;
- cr->widgets.menu = create_signals_menu (cr);
- cr->widgets.menu_modify = signals_menu_uiinfo[0].widget;
- cr->widgets.menu_signal = signals_menu_uiinfo[1].widget;
- cr->widgets.menu_update = signals_menu_uiinfo[2].widget;
-}
-
-static GtkWidget*
-create_signals_set_dialog (Signals *s)
-{
- GtkWidget *dialog1;
- GtkWidget *dialog_vbox1;
- GtkWidget *hbox1;
- GtkWidget *label1;
- GtkWidget *label2;
- GtkWidget *hbox2;
- GtkWidget *label3;
- GtkWidget *label4;
- GtkWidget *hseparator1;
- GtkWidget *hbox4;
- GtkWidget *label5;
- GtkWidget *label6;
- GtkWidget *label7;
- GtkWidget *hbox3;
- GtkWidget *togglebutton1;
- GtkWidget *togglebutton2;
- GtkWidget *togglebutton3;
- GtkWidget *dialog_action_area1;
- GtkWidget *button1;
- GtkWidget *button2;
- GtkWidget *button3;
- gchar *row[5];
-
- if(s->idx < 0)
- return NULL;
-
- gtk_clist_get_text(GTK_CLIST(s->widgets.clist), s->idx,0, &row[0]);
- gtk_clist_get_text(GTK_CLIST(s->widgets.clist), s->idx,1, &row[1]);
- gtk_clist_get_text(GTK_CLIST(s->widgets.clist), s->idx,2, &row[2]);
- gtk_clist_get_text(GTK_CLIST(s->widgets.clist), s->idx,3, &row[3]);
- gtk_clist_get_text(GTK_CLIST(s->widgets.clist), s->idx,4, &row[4]);
- s->signal = row[0];
-
- if(strcasecmp(row[1], "Yes")==0)
- s->stop = TRUE;
- else
- s->stop = FALSE;
-
- if(strcasecmp(row[2], "Yes")==0)
- s->print = TRUE;
- else
- s->print = FALSE;
-
- if(strcasecmp(row[3], "Yes")==0)
- s->pass = TRUE;
- else
- s->pass = FALSE;
-
- dialog1 = gnome_dialog_new (_("Set Signal Property"), NULL);
- gtk_window_set_transient_for (GTK_WINDOW(dialog1),
- GTK_WINDOW(s->widgets.window));
- GTK_WINDOW (dialog1)->type = GTK_WINDOW_TOPLEVEL;
- gtk_window_set_position (GTK_WINDOW (dialog1), GTK_WIN_POS_MOUSE);
- gtk_window_set_policy (GTK_WINDOW (dialog1), FALSE, FALSE, FALSE);
- gtk_window_set_wmclass (GTK_WINDOW (dialog1), "set_signal", "Anjuta");
- gnome_dialog_set_close (GNOME_DIALOG (dialog1), TRUE);
-
- dialog_vbox1 = GNOME_DIALOG (dialog1)->vbox;
- gtk_widget_show (dialog_vbox1);
-
- hbox1 = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (dialog_vbox1), hbox1, TRUE, TRUE, 0);
-
- label1 = gtk_label_new ("Signal: ");
- gtk_widget_show (label1);
- gtk_box_pack_start (GTK_BOX (hbox1), label1, FALSE, FALSE, 0);
-
- label2 = gtk_label_new (row[0]);
- gtk_widget_show (label2);
- gtk_box_pack_start (GTK_BOX (hbox1), label2, FALSE, FALSE, 0);
-
- hbox2 = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox2);
- gtk_box_pack_start (GTK_BOX (dialog_vbox1), hbox2, TRUE, TRUE, 0);
-
- label3 = gtk_label_new ("Description: ");
- gtk_widget_show (label3);
- gtk_box_pack_start (GTK_BOX (hbox2), label3, FALSE, FALSE, 0);
-
- label4 = gtk_label_new (row[4]);
- gtk_widget_show (label4);
- gtk_box_pack_start (GTK_BOX (hbox2), label4, FALSE, FALSE, 0);
-
- hseparator1 = gtk_hseparator_new ();
- gtk_widget_show (hseparator1);
- gtk_box_pack_start (GTK_BOX (dialog_vbox1), hseparator1, TRUE, TRUE, 0);
-
- hbox4 = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox4);
- gtk_box_pack_start (GTK_BOX (dialog_vbox1), hbox4, TRUE, TRUE, 0);
-
- label5 = gtk_label_new (_("Stop:"));
- gtk_widget_show (label5);
- gtk_box_pack_start (GTK_BOX (hbox4), label5, TRUE, TRUE, 0);
-
- label6 = gtk_label_new (_("Print:"));
- gtk_widget_show (label6);
- gtk_box_pack_start (GTK_BOX (hbox4), label6, TRUE, TRUE, 0);
-
- label7 = gtk_label_new (_("Pass:"));
- gtk_widget_show (label7);
- gtk_box_pack_start (GTK_BOX (hbox4), label7, TRUE, TRUE, 0);
-
- hbox3 = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox3);
- gtk_box_pack_start (GTK_BOX (dialog_vbox1), hbox3, TRUE, TRUE, 0);
-
- togglebutton1 = gtk_toggle_button_new_with_label (row[1]);
- gtk_widget_show (togglebutton1);
- gtk_box_pack_start (GTK_BOX (hbox3), togglebutton1, TRUE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER (togglebutton1), 3);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(togglebutton1), s->stop);
-
- togglebutton2 = gtk_toggle_button_new_with_label (row[2]);
- gtk_widget_show (togglebutton2);
- gtk_box_pack_start (GTK_BOX (hbox3), togglebutton2, TRUE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER (togglebutton2), 3);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(togglebutton2), s->print);
-
- togglebutton3 = gtk_toggle_button_new_with_label (row[3]);
- gtk_widget_show (togglebutton3);
- gtk_box_pack_start (GTK_BOX (hbox3), togglebutton3, TRUE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER (togglebutton3), 3);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(togglebutton3), s->pass);
-
- dialog_action_area1 = GNOME_DIALOG (dialog1)->action_area;
- gtk_widget_show (dialog_action_area1);
- gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1),
- GTK_BUTTONBOX_SPREAD);
- gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area1), 8);
-
- gnome_dialog_append_button (GNOME_DIALOG (dialog1),
- GNOME_STOCK_BUTTON_HELP);
- button1 = g_list_last (GNOME_DIALOG (dialog1)->buttons)->data;
- gtk_widget_show (button1);
- GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT);
-
- gnome_dialog_append_button (GNOME_DIALOG (dialog1), GNOME_STOCK_BUTTON_OK);
- button2 = g_list_last (GNOME_DIALOG (dialog1)->buttons)->data;
- gtk_widget_show (button2);
- GTK_WIDGET_SET_FLAGS (button2, GTK_CAN_DEFAULT);
-
- gnome_dialog_append_button (GNOME_DIALOG (dialog1),
- GNOME_STOCK_BUTTON_CANCEL);
- button3 = g_list_last (GNOME_DIALOG (dialog1)->buttons)->data;
- gtk_widget_show (button3);
- GTK_WIDGET_SET_FLAGS (button3, GTK_CAN_DEFAULT);
-
- gtk_signal_connect (GTK_OBJECT (togglebutton1), "toggled",
- GTK_SIGNAL_FUNC (on_signals_togglebutton1_toggled),
- s);
- gtk_signal_connect (GTK_OBJECT (togglebutton2), "toggled",
- GTK_SIGNAL_FUNC (on_signals_togglebutton2_toggled),
- s);
- gtk_signal_connect (GTK_OBJECT (togglebutton3), "toggled",
- GTK_SIGNAL_FUNC (on_signals_togglebutton3_toggled),
- s);
- gtk_signal_connect (GTK_OBJECT (button2), "clicked",
- GTK_SIGNAL_FUNC (on_signals_set_ok_clicked),
- s);
- return dialog1;
+ cr->widgets.treeview = tv;
+ cr->widgets.store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (tv)));
}
Signals *
signals_new (DebugManagerPlugin *plugin)
{
Signals *ew;
+ AnjutaUI *ui;
ew = g_malloc (sizeof (Signals));
if (ew)
{
+ ew->plugin = plugin;
ew->debugger = dma_debug_manager_get_queue (plugin);
ew->is_showing = FALSE;
ew->win_width = 460;
ew->win_height = 320;
ew->win_pos_x = 150;
ew->win_pos_y = 130;
- ew->idx = -1;
create_signals_gui (ew);
+ ui = anjuta_shell_get_ui (ANJUTA_PLUGIN(plugin)->shell, NULL);
+ ew->widgets.action_group_debugger_ok =
+ anjuta_ui_add_action_group_entries (ui, "ActionGroupSignalsDebuggerOk",
+ _("Signal operations"),
+ actions_signals_debugger_ok,
+ G_N_ELEMENTS (actions_signals_debugger_ok),
+ GETTEXT_PACKAGE, TRUE, ew);
+ ew->widgets.action_group_program_running =
+ anjuta_ui_add_action_group_entries (ui, "ActionGroupSignalsProgramRunning",
+ _("Signal operations"),
+ actions_signals_program_running,
+ G_N_ELEMENTS (actions_signals_program_running),
+ GETTEXT_PACKAGE, TRUE, ew);
+ ew->widgets.menu = GTK_MENU (gtk_ui_manager_get_widget (GTK_UI_MANAGER (ui),
+ "/PopupSignals"));
+
}
return ew;
}
@@ -558,9 +406,10 @@
void
signals_clear (Signals * sg)
{
- if (GTK_IS_CLIST (sg->widgets.clist))
- gtk_clist_clear (GTK_CLIST (sg->widgets.clist));
- sg->idx = -1;
+ g_return_if_fail (sg->widgets.store != NULL);
+ g_return_if_fail (GTK_IS_LIST_STORE(sg->widgets.store));
+
+ gtk_list_store_clear (sg->widgets.store);
}
void
@@ -611,7 +460,10 @@
{
signals_clear (sg);
gtk_widget_destroy (sg->widgets.window);
- gtk_widget_destroy (sg->widgets.menu);
+ g_object_unref (sg->widgets.store);
+ g_object_unref (sg->widgets.menu);
+ g_object_unref (sg->widgets.action_group_debugger_ok);
+ g_object_unref (sg->widgets.action_group_program_running);
g_free (sg);
}
}
Modified: trunk/plugins/debug-manager/signals.h
==============================================================================
--- trunk/plugins/debug-manager/signals.h (original)
+++ trunk/plugins/debug-manager/signals.h Sat Jan 31 09:55:08 2009
@@ -36,25 +36,22 @@
struct _SignalsGui
{
- GtkWidget* window;
- GtkWidget* clist;
- GtkWidget* menu;
- GtkWidget* menu_modify;
- GtkWidget* menu_signal;
- GtkWidget* menu_update;
+ GtkWidget* window;
+ GtkWidget* treeview;
+ GtkListStore* store;
+ GtkActionGroup *action_group_debugger_ok;
+ GtkActionGroup *action_group_program_running;
+
+ GtkMenu* menu;
};
struct _Signals
{
SignalsGui widgets;
+ DebugManagerPlugin *plugin;
DmaDebuggerQueue *debugger;
gboolean is_showing;
gint win_pos_x, win_pos_y, win_width, win_height;
- gint idx;
- gchar *signal;
- gboolean stop;
- gboolean print;
- gboolean pass;
};
Signals* signals_new (DebugManagerPlugin *plugin);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]