SF.net SVN: geany-plugins:[2212] trunk/geany-plugins/debugger
cesspit at users.sourceforge.net
cesspit at xxxxx
Sun Sep 25 08:32:06 UTC 2011
Revision: 2212
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=2212&view=rev
Author: cesspit
Date: 2011-09-25 08:32:05 +0000 (Sun, 25 Sep 2011)
Log Message:
-----------
debugger: grouping locals and arguments on a autos page, autos an watch icons, grouping pixbufs in a separate file
Modified Paths:
--------------
trunk/geany-plugins/debugger/img/tabs.gif
trunk/geany-plugins/debugger/src/Makefile.am
trunk/geany-plugins/debugger/src/bptree.c
trunk/geany-plugins/debugger/src/dbm_gdb.c
trunk/geany-plugins/debugger/src/debug.c
trunk/geany-plugins/debugger/src/debug_module.c
trunk/geany-plugins/debugger/src/debug_module.h
trunk/geany-plugins/debugger/src/pconfig.c
trunk/geany-plugins/debugger/src/plugin.c
trunk/geany-plugins/debugger/src/stree.c
trunk/geany-plugins/debugger/src/tabs.c
trunk/geany-plugins/debugger/src/tabs.h
trunk/geany-plugins/debugger/src/vtree.c
trunk/geany-plugins/debugger/src/watch_model.c
trunk/geany-plugins/debugger/src/watch_model.h
trunk/geany-plugins/debugger/src/wtree.c
trunk/geany-plugins/debugger/src/xpm/Makefile.am
Added Paths:
-----------
trunk/geany-plugins/debugger/src/atree.c
trunk/geany-plugins/debugger/src/atree.h
trunk/geany-plugins/debugger/src/pixbuf.c
trunk/geany-plugins/debugger/src/pixbuf.h
trunk/geany-plugins/debugger/src/xpm/argument.xpm
trunk/geany-plugins/debugger/src/xpm/local.xpm
trunk/geany-plugins/debugger/src/xpm/watch.xpm
Removed Paths:
-------------
trunk/geany-plugins/debugger/src/ltree.c
trunk/geany-plugins/debugger/src/ltree.h
Modified: trunk/geany-plugins/debugger/img/tabs.gif
===================================================================
(Binary files differ)
Modified: trunk/geany-plugins/debugger/src/Makefile.am
===================================================================
--- trunk/geany-plugins/debugger/src/Makefile.am 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/Makefile.am 2011-09-25 08:32:05 UTC (rev 2212)
@@ -39,10 +39,12 @@
gui.c \
keys.c \
keys.h \
- ltree.c \
- ltree.h \
+ atree.c \
+ atree.h \
markers.c \
markers.h \
+ pixbuf.c \
+ pixbuf.h \
pconfig.c \
pconfig.h \
plugin.c \
Added: trunk/geany-plugins/debugger/src/atree.c
===================================================================
--- trunk/geany-plugins/debugger/src/atree.c (rev 0)
+++ trunk/geany-plugins/debugger/src/atree.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -0,0 +1,46 @@
+/*
+ * atree.c
+ *
+ * Copyright 2010 Alexander Petukhov <devel(at)apetukhov.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+/*
+ * Contains autos tree view functions.
+ */
+
+#include <gtk/gtk.h>
+
+#include "watch_model.h"
+#include "vtree.h"
+
+/* pointer to a widget */
+static GtkWidget *tree = NULL;
+
+/*
+ * init autos tree, and sets on expanded handler
+ * arguments:
+ * expanded - handler to call when tree item is expanded
+ */
+GtkWidget* atree_init(watch_expanded_callback expanded, watch_button_pressed buttonpressed)
+{
+ tree = vtree_create(NULL, NULL);
+ g_signal_connect(G_OBJECT(tree), "row-expanded", G_CALLBACK (expanded), NULL);
+ g_signal_connect(G_OBJECT(tree), "button-press-event", G_CALLBACK (buttonpressed), NULL);
+
+ return tree;
+}
Added: trunk/geany-plugins/debugger/src/atree.h
===================================================================
--- trunk/geany-plugins/debugger/src/atree.h (rev 0)
+++ trunk/geany-plugins/debugger/src/atree.h 2011-09-25 08:32:05 UTC (rev 2212)
@@ -0,0 +1,23 @@
+/*
+ * atree.h
+ *
+ * Copyright 2010 Alexander Petukhov <devel(at)apetukhov.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+GtkWidget* atree_init(watch_expanded_callback expanded, watch_button_pressed buttonpressed);
+
Modified: trunk/geany-plugins/debugger/src/bptree.c
===================================================================
--- trunk/geany-plugins/debugger/src/bptree.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/bptree.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -40,11 +40,8 @@
#include "utils.h"
#include "dconfig.h"
#include "tabs.h"
+#include "pixbuf.h"
-#include "xpm/breakpoint.xpm"
-#include "xpm/breakpoint_disabled.xpm"
-#include "xpm/breakpoint_condition.xpm"
-
/* Tree view columns */
enum
{
@@ -74,12 +71,6 @@
/* hash table to keep file nodes in the tree */
static GHashTable *files;
-/* pixbufers */
-GdkPixbuf *file_pixbuf = NULL;
-GdkPixbuf *break_pixbuf = NULL;
-GdkPixbuf *break_disabled_pixbuf = NULL;
-GdkPixbuf *break_condition_pixbuf = NULL;
-
/* callback handler */
move_to_line_cb on_break_clicked = NULL;
@@ -545,11 +536,6 @@
(GDestroyNotify)gtk_tree_row_reference_free
);
- file_pixbuf = gdk_pixbuf_new_from_xpm_data(breakpoint_xpm);
- break_pixbuf = gdk_pixbuf_new_from_xpm_data(breakpoint_xpm);
- break_disabled_pixbuf = gdk_pixbuf_new_from_xpm_data(breakpoint_disabled_xpm);
- break_condition_pixbuf = gdk_pixbuf_new_from_xpm_data(breakpoint_condition_xpm);
-
/* create tree view */
store = gtk_tree_store_new (
N_COLUMNS,
@@ -645,11 +631,6 @@
void bptree_destroy()
{
g_hash_table_destroy(files);
-
- g_object_unref(file_pixbuf);
- g_object_unref(break_pixbuf);
- g_object_unref(break_disabled_pixbuf);
- g_object_unref(break_condition_pixbuf);
}
/*
Modified: trunk/geany-plugins/debugger/src/dbm_gdb.c
===================================================================
--- trunk/geany-plugins/debugger/src/dbm_gdb.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/dbm_gdb.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -96,8 +96,8 @@
/* flag, showing that on debugger stop we have to call a callback */
gboolean requested_interrupt = FALSE;
-/* locals list */
-static GList *locals = NULL;
+/* autos list */
+static GList *autos = NULL;
/* watches list */
static GList *watches = NULL;
@@ -113,7 +113,7 @@
void stop();
variable* add_watch(gchar* expression);
void update_watches();
-void update_locals();
+void update_autos();
void update_files();
/* list of start messages, to show them in init if initialization is successfull */
@@ -176,10 +176,10 @@
shutdown_channel(&gdb_ch_in);
shutdown_channel(&gdb_ch_out);
- /* delete locals */
- g_list_foreach(locals, (GFunc)g_free, NULL);
- g_list_free(locals);
- locals = NULL;
+ /* delete autos */
+ g_list_foreach(autos, (GFunc)g_free, NULL);
+ g_list_free(autos);
+ autos = NULL;
/* delete watches */
g_list_foreach(watches, (GFunc)g_free, NULL);
@@ -296,8 +296,8 @@
/* removing read callback (will pulling all output left manually) */
g_source_remove(gdb_id_out);
- /* update locals */
- update_locals();
+ /* update autos */
+ update_autos();
/* update watches */
update_watches();
@@ -633,7 +633,7 @@
{
gchar *name = (gchar*)witer->data;
- variable *var = variable_new(name);
+ variable *var = variable_new(name, VT_WATCH);
watches = g_list_append(watches, var);
witer = witer->next;
@@ -1239,14 +1239,14 @@
}
/*
- * updates locals list
+ * updates autos list
*/
-void update_locals()
+void update_autos()
{
gchar command[1000];
- /* remove all previous GDB variables for locals */
- GList *iter = locals;
+ /* remove all previous GDB variables for autos */
+ GList *iter = autos;
while (iter)
{
variable *var = (variable*)iter->data;
@@ -1257,68 +1257,73 @@
iter = iter->next;
}
- g_list_foreach(locals, (GFunc)variable_free, NULL);
- g_list_free(locals);
- locals = NULL;
+ g_list_foreach(autos, (GFunc)variable_free, NULL);
+ g_list_free(autos);
+ autos = NULL;
- /* add current locals to the list */
- gchar *record = NULL;
- result_class rc = exec_sync_command("-stack-list-locals 0", TRUE, &record);
- if (RC_DONE != rc)
- return;
-
+ /* add current autos to the list */
GList *unevaluated = NULL;
-
- gchar *pos = record;
- while ((pos = strstr(pos, "name=\"")))
+
+ const char *gdb_commands[] = { "-stack-list-arguments 0 0 0", "-stack-list-locals 0" };
+ int i, size = sizeof (gdb_commands) / sizeof(char*);
+ for (i = 0; i < size; i++)
{
- pos += strlen("name=\"");
- *(strchr(pos, '\"')) = '\0';
+ gchar *record = NULL;
+ result_class rc = exec_sync_command(gdb_commands[i], TRUE, &record);
+ if (RC_DONE != rc)
+ break;
- variable *var = variable_new(pos);
+ gchar *pos = record;
+ while ((pos = strstr(pos, "name=\"")))
+ {
+ pos += strlen("name=\"");
+ *(strchr(pos, '\"')) = '\0';
- /* create new gdb variable */
- gchar *create_record = NULL;
-
- gchar *escaped = g_strescape(pos, NULL);
- sprintf(command, "-var-create - * \"%s\"", escaped);
- g_free(escaped);
+ variable *var = variable_new(pos, i ? VT_LOCAL : VT_ARGUMENT);
- /* form new variable */
- if (RC_DONE == exec_sync_command(command, TRUE, &create_record))
- {
- gchar *intname = strstr(create_record, "name=\"") + strlen ("name=\"");
- *strchr(intname, '\"') = '\0';
- var->evaluated = TRUE;
- g_string_assign(var->internal, intname);
- locals = g_list_append(locals, var);
+ /* create new gdb variable */
+ gchar *create_record = NULL;
+
+ gchar *escaped = g_strescape(pos, NULL);
+ sprintf(command, "-var-create - * \"%s\"", escaped);
+ g_free(escaped);
- g_free(create_record);
+ /* form new variable */
+ if (RC_DONE == exec_sync_command(command, TRUE, &create_record))
+ {
+ gchar *intname = strstr(create_record, "name=\"") + strlen ("name=\"");
+ *strchr(intname, '\"') = '\0';
+ var->evaluated = TRUE;
+ g_string_assign(var->internal, intname);
+ autos = g_list_append(autos, var);
+
+ g_free(create_record);
+ }
+ else
+ {
+ var->evaluated = FALSE;
+ g_string_assign(var->internal, "");
+ unevaluated = g_list_append(unevaluated, var);
+ }
+
+ pos += strlen(pos) + 1;
}
- else
- {
- var->evaluated = FALSE;
- g_string_assign(var->internal, "");
- unevaluated = g_list_append(unevaluated, var);
- }
-
- pos += strlen(pos) + 1;
+ g_free(record);
}
- g_free(record);
-
- /* get values for the locals (without incorrect variables) */
- get_variables(locals);
+ /* get values for the autos (without incorrect variables) */
+ get_variables(autos);
+
/* add incorrect variables */
- locals = g_list_concat(locals, unevaluated);
+ autos = g_list_concat(autos, unevaluated);
}
/*
- * get locals list
+ * get autos list
*/
-GList* get_locals ()
+GList* get_autos ()
{
- return g_list_copy(locals);
+ return g_list_copy(autos);
}
/*
@@ -1383,7 +1388,7 @@
name = g_strcompress(pos);
- variable *var = variable_new2(name, internal);
+ variable *var = variable_new2(name, internal, VT_CHILD);
var->evaluated = TRUE;
pos += strlen(pos) + 1;
@@ -1407,7 +1412,7 @@
{
gchar command[1000];
- variable *var = variable_new(expression);
+ variable *var = variable_new(expression, VT_WATCH);
watches = g_list_append(watches, var);
/* try to create a variable */
Modified: trunk/geany-plugins/debugger/src/debug.c
===================================================================
--- trunk/geany-plugins/debugger/src/debug.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/debug.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -53,7 +53,7 @@
#include "stree.h"
#include "watch_model.h"
#include "wtree.h"
-#include "ltree.h"
+#include "atree.h"
#include "tpage.h"
#include "calltip.h"
#include "bptree.h"
@@ -119,17 +119,17 @@
static GtkAdjustment *hadj = NULL;
static GtkAdjustment *vadj = NULL;
-/* stack trace/watch/locals CtkTreeView widgets */
+/* stack trace/watch/autos CtkTreeView widgets */
static GtkWidget *stree = NULL;
static GtkWidget *wtree = NULL;
-static GtkWidget *ltree = NULL;
+static GtkWidget *atree = NULL;
/* watch tree view model and store */
GtkTreeStore *wstore = NULL;
GtkTreeModel *wmodel = NULL;
/* array of widgets, ti enable/disable regard of a debug state */
-static GtkWidget **sensitive_widget[] = {&stree, &wtree, <ree, NULL};
+static GtkWidget **sensitive_widget[] = {&stree, &wtree, &atree, NULL};
/*
* current stack for holding
@@ -468,7 +468,7 @@
}
/*
- * mouse button has been pressed while being in watch(locals) tree view
+ * mouse button has been pressed while being in watch(autos) tree view
*/
gboolean on_watch_button_pressed_callback(GtkWidget *treeview, GdkEventButton *event, gpointer userdata)
{
@@ -520,7 +520,7 @@
*/
static void on_watch_expanded_callback(GtkTreeView *tree, GtkTreeIter *iter, GtkTreePath *path, gpointer user_data)
{
- /* get tree view model and store as it can be watch or locals tree */
+ /* get tree view model and store as it can be watch or autos tree */
GtkTreeModel *model = gtk_tree_view_get_model(tree);
GtkTreeStore *store = GTK_TREE_STORE(model);
@@ -713,9 +713,9 @@
}
g_list_free(files);
- /* locals */
- GList *locals = active_module->get_locals();
- update_variables(GTK_TREE_VIEW(ltree), NULL, locals);
+ /* autos */
+ GList *autos = active_module->get_autos();
+ update_variables(GTK_TREE_VIEW(atree), NULL, autos);
/* watches */
GList *watches = active_module->get_watches();
@@ -759,8 +759,8 @@
/* clear watch page */
clear_watch_values(GTK_TREE_VIEW(wtree));
- /* clear locals page */
- gtk_tree_store_clear(GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ltree))));
+ /* clear autos page */
+ gtk_tree_store_clear(GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(atree))));
/* clear stack trace tree */
stree_clear();
@@ -888,16 +888,16 @@
GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(tab_watch), wtree);
- /* create locals page */
- ltree = ltree_init(on_watch_expanded_callback, on_watch_button_pressed_callback);
- tab_locals = gtk_scrolled_window_new(
- gtk_tree_view_get_hadjustment(GTK_TREE_VIEW(ltree)),
- gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(ltree))
+ /* create autos page */
+ atree = atree_init(on_watch_expanded_callback, on_watch_button_pressed_callback);
+ tab_autos = gtk_scrolled_window_new(
+ gtk_tree_view_get_hadjustment(GTK_TREE_VIEW(atree)),
+ gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(atree))
);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tab_locals),
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tab_autos),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
- gtk_container_add(GTK_CONTAINER(tab_locals), ltree);
+ gtk_container_add(GTK_CONTAINER(tab_autos), atree);
/* create stack trace page */
stree = stree_init(editor_open_position);
Modified: trunk/geany-plugins/debugger/src/debug_module.c
===================================================================
--- trunk/geany-plugins/debugger/src/debug_module.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/debug_module.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -30,7 +30,7 @@
#include "debug_module.h"
/* creates new variable */
-variable *variable_new(gchar *name)
+variable *variable_new(gchar *name, variable_type vt)
{
variable *var = g_malloc(sizeof(variable));
var->name = g_string_new(name);
@@ -39,14 +39,15 @@
var->type = g_string_new("");
var->value = g_string_new("");
var->has_children = var->evaluated = FALSE;
+ var->vt = vt;
return var;
}
/* creates new variable with internal name */
-variable *variable_new2(gchar *name, gchar *internal)
+variable *variable_new2(gchar *name, gchar *internal, variable_type vt)
{
- variable *var = variable_new(name);
+ variable *var = variable_new(name, vt);
g_string_assign(var->internal, internal);
return var;
Modified: trunk/geany-plugins/debugger/src/debug_module.h
===================================================================
--- trunk/geany-plugins/debugger/src/debug_module.h 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/debug_module.h 2011-09-25 08:32:05 UTC (rev 2212)
@@ -29,6 +29,15 @@
void (*report_error) (const gchar* message);
} dbg_callbacks;
+typedef enum _variable_type {
+ VT_ARGUMENT,
+ VT_LOCAL,
+ VT_WATCH,
+ VT_GLOBAL,
+ VT_CHILD,
+ VT_NONE
+} variable_type;
+
/* type to hold information about a variable */
typedef struct _variable {
/* variable name */
@@ -46,6 +55,8 @@
gboolean has_children;
/* flag indicating whether getting variable value was successfull */
gboolean evaluated;
+ /* variable type */
+ variable_type vt;
} variable;
/* type to hold information about a stack frame */
@@ -90,7 +101,7 @@
gboolean (*remove_break) (breakpoint* bp);
GList* (*get_stack) ();
- GList* (*get_locals) ();
+ GList* (*get_autos) ();
GList* (*get_watches) ();
GList* (*get_files) ();
@@ -123,7 +134,7 @@
set_break, \
remove_break, \
get_stack, \
- get_locals, \
+ get_autos, \
get_watches, \
get_files, \
get_children, \
@@ -135,7 +146,7 @@
MODULE_FEATURES }
void variable_free(variable *var);
-variable* variable_new(gchar *name);
-variable* variable_new2(gchar *name, gchar *internal);
+variable* variable_new(gchar *name, variable_type vt);
+variable* variable_new2(gchar *name, gchar *internal, variable_type vt);
void variable_reset(variable *var);
Deleted: trunk/geany-plugins/debugger/src/ltree.c
===================================================================
--- trunk/geany-plugins/debugger/src/ltree.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/ltree.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -1,46 +0,0 @@
-/*
- * ltree.c
- *
- * Copyright 2010 Alexander Petukhov <devel(at)apetukhov.ru>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-/*
- * Contains locals tree view functions.
- */
-
-#include <gtk/gtk.h>
-
-#include "watch_model.h"
-#include "vtree.h"
-
-/* pointer to a widget */
-static GtkWidget *tree = NULL;
-
-/*
- * init locals tree, and sets on expanded handler
- * arguments:
- * expanded - handler to call when tree item is expanded
- */
-GtkWidget* ltree_init(watch_expanded_callback expanded, watch_button_pressed buttonpressed)
-{
- tree = vtree_create(NULL, NULL);
- g_signal_connect(G_OBJECT(tree), "row-expanded", G_CALLBACK (expanded), NULL);
- g_signal_connect(G_OBJECT(tree), "button-press-event", G_CALLBACK (buttonpressed), NULL);
-
- return tree;
-}
Deleted: trunk/geany-plugins/debugger/src/ltree.h
===================================================================
--- trunk/geany-plugins/debugger/src/ltree.h 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/ltree.h 2011-09-25 08:32:05 UTC (rev 2212)
@@ -1,23 +0,0 @@
-/*
- * ltree.h
- *
- * Copyright 2010 Alexander Petukhov <devel(at)apetukhov.ru>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-GtkWidget* ltree_init(watch_expanded_callback expanded, watch_button_pressed buttonpressed);
-
Modified: trunk/geany-plugins/debugger/src/pconfig.c
===================================================================
--- trunk/geany-plugins/debugger/src/pconfig.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/pconfig.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -84,11 +84,11 @@
{
g_key_file_set_boolean(key_file, "tabbed_mode", "enabled", FALSE);
- int all_tabs[] = { TID_TARGET, TID_BREAKS, TID_LOCALS, TID_WATCH, TID_STACK, TID_TERMINAL, TID_MESSAGES };
+ int all_tabs[] = { TID_TARGET, TID_BREAKS, TID_AUTOS, TID_WATCH, TID_STACK, TID_TERMINAL, TID_MESSAGES };
g_key_file_set_integer_list(key_file, "one_panel_mode", "tabs", all_tabs, sizeof(all_tabs) / sizeof(int));
g_key_file_set_integer(key_file, "one_panel_mode", "selected_tab_index", 0);
- int left_tabs[] = { TID_TARGET, TID_BREAKS, TID_LOCALS, TID_WATCH };
+ int left_tabs[] = { TID_TARGET, TID_BREAKS, TID_AUTOS, TID_WATCH };
g_key_file_set_integer_list(key_file, "two_panels_mode", "left_tabs", left_tabs, sizeof(left_tabs) / sizeof(int));
g_key_file_set_integer(key_file, "two_panels_mode", "left_selected_tab_index", 0);
int right_tabs[] = { TID_STACK, TID_TERMINAL, TID_MESSAGES };
Added: trunk/geany-plugins/debugger/src/pixbuf.c
===================================================================
--- trunk/geany-plugins/debugger/src/pixbuf.c (rev 0)
+++ trunk/geany-plugins/debugger/src/pixbuf.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -0,0 +1,83 @@
+/*
+ * pixbufs.c
+ *
+ * Copyright 2010 Alexander Petukhov <devel(at)apetukhov.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+/*
+ * pixbuffers
+ */
+
+#include <gtk/gtk.h>
+
+#include "xpm/breakpoint.xpm"
+#include "xpm/breakpoint_disabled.xpm"
+#include "xpm/breakpoint_condition.xpm"
+
+#include "xpm/argument.xpm"
+#include "xpm/local.xpm"
+#include "xpm/watch.xpm"
+
+#include "xpm/frame.xpm"
+#include "xpm/frame_current.xpm"
+
+GdkPixbuf *break_pixbuf = NULL;
+GdkPixbuf *break_disabled_pixbuf = NULL;
+GdkPixbuf *break_condition_pixbuf = NULL;
+
+GdkPixbuf *argument_pixbuf = NULL;
+GdkPixbuf *local_pixbuf = NULL;
+GdkPixbuf *watch_pixbuf = NULL;
+
+GdkPixbuf *frame_pixbuf = NULL;
+GdkPixbuf *frame_current_pixbuf = NULL;
+
+/*
+ * create pixbuffers
+ */
+void pixbufs_init()
+{
+ break_pixbuf = gdk_pixbuf_new_from_xpm_data(breakpoint_xpm);
+ break_disabled_pixbuf = gdk_pixbuf_new_from_xpm_data(breakpoint_disabled_xpm);
+ break_condition_pixbuf = gdk_pixbuf_new_from_xpm_data(breakpoint_condition_xpm);
+
+ argument_pixbuf = gdk_pixbuf_new_from_xpm_data(argument_xpm);
+ local_pixbuf = gdk_pixbuf_new_from_xpm_data(local_xpm);
+ watch_pixbuf = gdk_pixbuf_new_from_xpm_data(watch_xpm);
+
+ frame_pixbuf = gdk_pixbuf_new_from_xpm_data(frame_xpm);
+ frame_current_pixbuf = gdk_pixbuf_new_from_xpm_data(frame_current_xpm);
+}
+
+/*
+ * free pixbuffers
+ */
+void pixbufs_destroy()
+{
+ g_object_unref(break_pixbuf);
+ g_object_unref(break_disabled_pixbuf);
+ g_object_unref(break_condition_pixbuf);
+
+ g_object_unref(argument_pixbuf);
+ g_object_unref(local_pixbuf);
+ g_object_unref(watch_pixbuf);
+
+ g_object_unref(frame_pixbuf);
+ g_object_unref(frame_current_pixbuf);
+}
+
Added: trunk/geany-plugins/debugger/src/pixbuf.h
===================================================================
--- trunk/geany-plugins/debugger/src/pixbuf.h (rev 0)
+++ trunk/geany-plugins/debugger/src/pixbuf.h 2011-09-25 08:32:05 UTC (rev 2212)
@@ -0,0 +1,33 @@
+/*
+ * pixbufs.h
+ *
+ * Copyright 2011 Alexander Petukhov <devel(at)apetukhov.ru>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+extern GdkPixbuf *break_pixbuf;
+extern GdkPixbuf *break_disabled_pixbuf;
+extern GdkPixbuf *break_condition_pixbuf;
+
+extern GdkPixbuf *argument_pixbuf;
+extern GdkPixbuf *local_pixbuf;
+extern GdkPixbuf *watch_pixbuf;
+
+extern GdkPixbuf *frame_current_pixbuf;
+
+void pixbufs_init();
+void pixbufs_destroy();
Modified: trunk/geany-plugins/debugger/src/plugin.c
===================================================================
--- trunk/geany-plugins/debugger/src/plugin.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/plugin.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -39,6 +39,7 @@
#include "dpaned.h"
#include "tabs.h"
#include "envtree.h"
+#include "pixbuf.h"
/* These items are set by Geany before plugin_init() is called. */
GeanyPlugin *geany_plugin;
@@ -90,6 +91,8 @@
main_locale_init(LOCALEDIR, GETTEXT_PACKAGE);
keys_init();
+
+ pixbufs_init();
/* main box */
hbox = gtk_hbox_new(FALSE, 0);
@@ -155,6 +158,8 @@
g_main_context_iteration(NULL,FALSE);
}
+ pixbufs_destroy();
+
/* destroy debug-related stuff */
debug_destroy();
Modified: trunk/geany-plugins/debugger/src/stree.c
===================================================================
--- trunk/geany-plugins/debugger/src/stree.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/stree.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -32,9 +32,8 @@
#include "breakpoints.h"
#include "utils.h"
#include "debug_module.h"
+#include "pixbuf.h"
-#include "xpm/frame_current.xpm"
-
#define ARROW_PADDING 7
/* Tree view columns */
@@ -65,9 +64,6 @@
/* flag to indicate whether to handle selection change */
static gboolean handle_selection = TRUE;
-/* pixbuf with the frame arrow */
-GdkPixbuf *arrow_pixbuf = NULL;
-
/*
* Handles same tree row click to open frame position
*/
@@ -159,8 +155,6 @@
GtkWidget* stree_init(move_to_line_cb cb)
{
callback = cb;
-
- arrow_pixbuf = gdk_pixbuf_new_from_xpm_data(frame_current_xpm);
/* create tree view */
store = gtk_list_store_new (
@@ -177,7 +171,6 @@
/* set tree view properties */
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), 1);
- g_object_set(tree, "rules-hint", TRUE, NULL);
/* connect signals */
g_signal_connect(G_OBJECT(gtk_tree_view_get_selection(GTK_TREE_VIEW(tree))), "changed",
@@ -193,7 +186,7 @@
/* arrow */
renderer_arrow = gtk_cell_renderer_pixbuf_new ();
column = gtk_tree_view_column_new_with_attributes ("", renderer_arrow, "pixbuf", S_ARROW, NULL);
- gtk_tree_view_column_set_min_width(column, gdk_pixbuf_get_width(arrow_pixbuf) + 2 * ARROW_PADDING);
+ gtk_tree_view_column_set_min_width(column, gdk_pixbuf_get_width(frame_current_pixbuf) + 2 * ARROW_PADDING);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
/* address */
@@ -252,7 +245,7 @@
if (first)
{
gtk_list_store_set (store, &iter,
- S_ARROW, arrow_pixbuf,
+ S_ARROW, frame_current_pixbuf,
-1);
}
@@ -293,5 +286,4 @@
*/
void stree_destroy()
{
- g_object_unref(arrow_pixbuf);
}
Modified: trunk/geany-plugins/debugger/src/tabs.c
===================================================================
--- trunk/geany-plugins/debugger/src/tabs.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/tabs.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -34,7 +34,7 @@
GtkWidget *tab_target = NULL;
GtkWidget *tab_breaks = NULL;
GtkWidget *tab_watch = NULL;
-GtkWidget *tab_locals = NULL;
+GtkWidget *tab_autos = NULL;
GtkWidget *tab_call_stack = NULL;
GtkWidget *tab_terminal = NULL;
GtkWidget *tab_messages = NULL;
@@ -59,9 +59,9 @@
{
id = TID_WATCH;
}
- else if (tab_locals == tab)
+ else if (tab_autos == tab)
{
- id = TID_LOCALS;
+ id = TID_AUTOS;
}
else if (tab_call_stack == tab)
{
@@ -98,8 +98,8 @@
case TID_WATCH:
tab = tab_watch;
break;
- case TID_LOCALS:
- tab = tab_locals;
+ case TID_AUTOS:
+ tab = tab_autos;
break;
case TID_STACK:
tab = tab_call_stack;
@@ -133,8 +133,8 @@
case TID_WATCH:
label = _("Watch");
break;
- case TID_LOCALS:
- label = _("Locals");
+ case TID_AUTOS:
+ label = _("Autos");
break;
case TID_STACK:
label = _("Call Stack");
Modified: trunk/geany-plugins/debugger/src/tabs.h
===================================================================
--- trunk/geany-plugins/debugger/src/tabs.h 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/tabs.h 2011-09-25 08:32:05 UTC (rev 2212)
@@ -25,7 +25,7 @@
TID_TARGET,
TID_BREAKS,
TID_WATCH,
- TID_LOCALS,
+ TID_AUTOS,
TID_STACK,
TID_TERMINAL,
TID_MESSAGES
@@ -34,7 +34,7 @@
extern GtkWidget *tab_target;
extern GtkWidget *tab_breaks;
extern GtkWidget *tab_watch;
-extern GtkWidget *tab_locals;
+extern GtkWidget *tab_autos;
extern GtkWidget *tab_call_stack;
extern GtkWidget *tab_terminal;
extern GtkWidget *tab_messages;
Modified: trunk/geany-plugins/debugger/src/vtree.c
===================================================================
--- trunk/geany-plugins/debugger/src/vtree.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/vtree.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -21,7 +21,7 @@
/*
* Variables tree view.
- * Base class for locals and watch tree views.
+ * Base class for autos and watch tree views.
*/
#include <string.h>
@@ -30,9 +30,13 @@
#include "geanyplugin.h"
+#include "breakpoint.h"
+#include "debug_module.h"
#include "watch_model.h"
#include "utils.h"
+#include "pixbuf.h"
+
/* columns minumum width in characters */
#define MIN_COLUMN_CHARS 20
@@ -68,6 +72,42 @@
/*
* value rendere function
*/
+void render_icon(GtkTreeViewColumn *tree_column,
+ GtkCellRenderer *cell,
+ GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ gpointer data)
+{
+ variable_type vt;
+ gtk_tree_model_get (
+ tree_model,
+ iter,
+ W_VT, &vt,
+ -1);
+
+ if (VT_NONE != vt && VT_CHILD != vt)
+ {
+ g_object_set(cell, "visible", TRUE, NULL);
+
+ GdkPixbuf *pixbuf = NULL;
+ if (VT_ARGUMENT == vt)
+ pixbuf = argument_pixbuf;
+ else if (VT_LOCAL == vt)
+ pixbuf = local_pixbuf;
+ else if (VT_WATCH == vt)
+ pixbuf = watch_pixbuf;
+
+ g_object_set (cell, "pixbuf", (gpointer)pixbuf, NULL);
+ }
+ else
+ {
+ g_object_set(cell, "visible", FALSE, NULL);
+ }
+}
+
+/*
+ * value rendere function
+ */
void render_value(GtkTreeViewColumn *tree_column,
GtkCellRenderer *cell,
GtkTreeModel *tree_model,
@@ -102,13 +142,14 @@
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_INT,
+ G_TYPE_INT,
G_TYPE_INT);
GtkWidget* tree = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store));
/* set tree view parameters */
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), TRUE);
gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(tree), TRUE);
- g_object_set(tree, "rules-hint", TRUE, NULL);
+ gtk_tree_view_set_level_indentation(GTK_TREE_VIEW(tree), 10);
/* connect signals */
g_signal_connect(G_OBJECT(tree), "key-press-event", G_CALLBACK (on_key_pressed), NULL);
@@ -118,8 +159,18 @@
GtkTreeViewColumn *column;
/* Name */
+ column = gtk_tree_view_column_new();
+ gtk_tree_view_column_set_title(column, _("Name"));
+
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Name"), renderer, "text", W_NAME, NULL);
+ gtk_tree_view_column_pack_end(column, renderer, TRUE);
+ gtk_tree_view_column_set_attributes(column, renderer, "text", W_NAME, NULL);
+
+ GtkCellRenderer *icon_renderer = gtk_cell_renderer_pixbuf_new ();
+ g_object_set(icon_renderer, "follow-state", TRUE, NULL);
+ gtk_tree_view_column_pack_end(column, icon_renderer, FALSE);
+ gtk_tree_view_column_set_cell_data_func(column, icon_renderer, render_icon, NULL, NULL);
+
gtk_tree_view_column_set_resizable (column, TRUE);
if (on_render_name)
gtk_tree_view_column_set_cell_data_func(column, renderer, on_render_name, NULL, NULL);
Modified: trunk/geany-plugins/debugger/src/watch_model.c
===================================================================
--- trunk/geany-plugins/debugger/src/watch_model.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/watch_model.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -68,6 +68,7 @@
W_EXPRESSION, "",
W_STUB, FALSE,
W_CHANGED, FALSE,
+ W_VT, VT_NONE,
-1);
/* set W_STUB flag */
@@ -89,38 +90,95 @@
GtkTreeModel *model = gtk_tree_view_get_model(tree);
GtkTreeStore *store = GTK_TREE_STORE(model);
+ GtkTreeIter child;
+
+ /* get existing rows */
+ GHashTable *ht = NULL;
+ if (gtk_tree_model_iter_n_children(model, parent))
+ {
+ /* collect all existing rows */
+ gtk_tree_model_iter_children(model, &child, parent);
+
+ ht = g_hash_table_new_full(g_str_hash, g_str_equal, (GDestroyNotify)g_free, (GDestroyNotify)gtk_tree_row_reference_free);
+
+ do
+ {
+ gchar *name = NULL;
+ gtk_tree_model_get(model, &child, W_NAME, &name, -1);
+ if (name && strlen(name))
+ {
+ GtkTreePath *path = gtk_tree_model_get_path(model, &child);
+ g_hash_table_insert(ht, name, gtk_tree_row_reference_new(model, path));
+ gtk_tree_path_free(path);
+ }
+ }
+ while(gtk_tree_model_iter_next(model, &child));
+ }
+
+ int current_position = 0;
while (vars)
{
variable *v = vars->data;
- /* set row */
- GtkTreeIter child;
- gtk_tree_store_prepend (store, &child, parent);
- gtk_tree_store_set (store, &child,
- W_NAME, v->name->str,
- W_VALUE, v->value->str,
- W_TYPE, v->type->str,
- W_INTERNAL, v->internal->str,
- W_EXPRESSION, v->expression->str,
- W_STUB, v->has_children,
- W_CHANGED, mark_changed,
- -1);
-
- /* expand to row if we were asked to */
- if (expand)
+ GtkTreeRowReference *reference = NULL;
+ if (ht && (reference = g_hash_table_lookup (ht, v->name->str)))
{
- GtkTreePath *path = gtk_tree_model_get_path(model, &child);
- gtk_tree_view_expand_row(tree, path, FALSE);
+ GtkTreePath *path = gtk_tree_row_reference_get_path(reference);
+ if (current_position != gtk_tree_path_get_indices(path)[0])
+ {
+ /* move a row if not at it's place */
+ GtkTreeIter iter;
+ gtk_tree_model_get_iter(model, &iter, path);
+ if (current_position)
+ {
+ GtkTreeIter insert_after;
+ gtk_tree_model_iter_nth_child(model, &insert_after, parent, current_position - 1);
+ gtk_tree_store_move_after(store, &iter, &insert_after);
+ }
+ else
+ {
+ gtk_tree_store_move_after(store, &iter, NULL);
+ }
+ }
+
gtk_tree_path_free(path);
}
+ else
+ {
+ gtk_tree_store_insert(store, &child, parent, current_position);
+ gtk_tree_store_set (store, &child,
+ W_NAME, v->name->str,
+ W_VALUE, v->value->str,
+ W_TYPE, v->type->str,
+ W_INTERNAL, v->internal->str,
+ W_EXPRESSION, v->expression->str,
+ W_STUB, v->has_children,
+ W_CHANGED, mark_changed,
+ W_VT, v->vt,
+ -1);
+
+ /* expand to row if we were asked to */
+ if (expand)
+ {
+ GtkTreePath *path = gtk_tree_model_get_path(model, &child);
+ gtk_tree_view_expand_row(tree, path, FALSE);
+ gtk_tree_path_free(path);
+ }
+
+ /* add stub if added child also have children */
+ if (v->has_children)
+ add_stub(store, &child);
+ }
- /* add stub if added child also have children */
- if (v->has_children)
- add_stub(store, &child);
-
/* move to next variable */
vars = vars->next;
+ current_position++;
}
+
+ if (ht)
+ {
+ g_hash_table_destroy(ht);
+ }
}
/*
@@ -164,6 +222,7 @@
W_EXPRESSION, var->expression->str,
W_STUB, FALSE,
W_CHANGED, changed,
+ W_VT, var->vt,
-1);
}
@@ -324,10 +383,7 @@
add_stub(store, &child);
}
- /* 6. Remove variable from "vars" list */
- vars = g_list_delete_link(vars, var);
-
- /* 7. free name, expression */
+ /* 6. free name, expression */
g_free(name);
g_free(internal);
g_free(value);
@@ -389,6 +445,7 @@
W_EXPRESSION, "",
W_STUB, FALSE,
W_CHANGED, FALSE,
+ W_VT, VT_WATCH,
-1);
}
Modified: trunk/geany-plugins/debugger/src/watch_model.h
===================================================================
--- trunk/geany-plugins/debugger/src/watch_model.h 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/watch_model.h 2011-09-25 08:32:05 UTC (rev 2212)
@@ -30,6 +30,7 @@
W_EXPRESSION,
W_STUB,
W_CHANGED,
+ W_VT,
W_N_COLUMNS
};
Modified: trunk/geany-plugins/debugger/src/wtree.c
===================================================================
--- trunk/geany-plugins/debugger/src/wtree.c 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/wtree.c 2011-09-25 08:32:05 UTC (rev 2212)
@@ -29,6 +29,8 @@
#include "watch_model.h"
#include "vtree.h"
#include "dconfig.h"
+#include "breakpoint.h"
+#include "debug_module.h"
/* drag types */
enum
@@ -65,6 +67,7 @@
W_INTERNAL, "",
W_EXPRESSION, "",
W_VALUE, "",
+ W_VT, VT_NONE,
-1);
/* save reference */
Modified: trunk/geany-plugins/debugger/src/xpm/Makefile.am
===================================================================
--- trunk/geany-plugins/debugger/src/xpm/Makefile.am 2011-09-24 22:28:32 UTC (rev 2211)
+++ trunk/geany-plugins/debugger/src/xpm/Makefile.am 2011-09-25 08:32:05 UTC (rev 2212)
@@ -4,4 +4,7 @@
breakpoint_disabled.xpm \
breakpoint.xpm \
frame_current.xpm \
- frame.xpm
+ frame.xpm \
+ argument.xpm \
+ local.xpm \
+ watch.xpm
Added: trunk/geany-plugins/debugger/src/xpm/argument.xpm
===================================================================
--- trunk/geany-plugins/debugger/src/xpm/argument.xpm (rev 0)
+++ trunk/geany-plugins/debugger/src/xpm/argument.xpm 2011-09-25 08:32:05 UTC (rev 2212)
@@ -0,0 +1,31 @@
+/* XPM */
+static const char * argument_xpm[] = {
+"16 16 12 1",
+" c None",
+". c #206820",
+"+ c #58A058",
+"@ c #509050",
+"# c #407040",
+"$ c #508850",
+"% c #98C098",
+"& c #90B090",
+"* c #C8D8C8",
+"= c #F8F8F0",
+"- c #E8E8E0",
+"; c #FFFFFF",
+" ",
+" ",
+" &....& ",
+" *.$****$.* ",
+" .&;;;;;;&. ",
+" &$;;%##%;;$& ",
+" .*;;#=%#;;*. ",
+" .*;;*#@#*;*. ",
+" .*;-#;%#*;*. ",
+" .*;%#%%#*;*. ",
+" &$;-+##*#;$& ",
+" .&;;;;;;&. ",
+" *.$****$.* ",
+" &....& ",
+" ",
+" "};
Property changes on: trunk/geany-plugins/debugger/src/xpm/argument.xpm
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/geany-plugins/debugger/src/xpm/local.xpm
===================================================================
--- trunk/geany-plugins/debugger/src/xpm/local.xpm (rev 0)
+++ trunk/geany-plugins/debugger/src/xpm/local.xpm 2011-09-25 08:32:05 UTC (rev 2212)
@@ -0,0 +1,24 @@
+/* XPM */
+static const char * local_xpm[] = {
+"16 16 5 1",
+" c None",
+". c #334C6F",
+"+ c #8B98AA",
+"@ c #9DA6B2",
+"# c #657C99",
+" ",
+" ",
+" ",
+" +. .+ ",
+"+.+ +.+ ",
+"#. .+ +. .# ",
+".# +. at .+ #. ....",
+".# +.+ #. ",
+".# +. at .+ #. ....",
+"#. .+ +. .# ",
+"+.+ +.+ ",
+" +. .+ ",
+" ",
+" ",
+" ",
+" "};
Property changes on: trunk/geany-plugins/debugger/src/xpm/local.xpm
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/geany-plugins/debugger/src/xpm/watch.xpm
===================================================================
--- trunk/geany-plugins/debugger/src/xpm/watch.xpm (rev 0)
+++ trunk/geany-plugins/debugger/src/xpm/watch.xpm 2011-09-25 08:32:05 UTC (rev 2212)
@@ -0,0 +1,30 @@
+/* XPM */
+static const char * watch_xpm[] = {
+"16 16 11 1",
+" c None",
+". c #A9B2C6",
+"+ c #8B96AB",
+"@ c #17325D",
+"# c #556C87",
+"$ c #AEB9C6",
+"% c #324E6E",
+"& c #E4E8EC",
+"* c #D5F3FF",
+"= c #EBFAFF",
+"- c #FCFFFF",
+" ",
+" ##. ",
+" %. # .%#+",
+" %. % .% #",
+" #. .% %",
+".%%%.%%.%%%+ ",
+"%*==%..%*==% ",
+"%=--% %=--% ",
+"%&-.% %&-.% ",
+".%%%+ .%%%. ",
+" ",
+" @ @ @@@ ",
+" $@$ $$$ ",
+" @ @ @@@ ",
+" ",
+" "};
Property changes on: trunk/geany-plugins/debugger/src/xpm/watch.xpm
___________________________________________________________________
Added: svn:executable
+ *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list