Revision: 1728 http://geany.svn.sourceforge.net/geany/?rev=1728&view=rev Author: ntrel Date: 2007-07-20 09:33:16 -0700 (Fri, 20 Jul 2007)
Log Message: ----------- Apply patch to add symbol list icons from Jean-Fran?\195?\167ois Wauthy (thanks). Also thanks to KDevelop for the icons. Add list of projects to THANKS.
Modified Paths: -------------- trunk/ChangeLog trunk/Makefile.am trunk/THANKS trunk/configure.in trunk/src/symbols.c trunk/src/treeviews.c trunk/src/treeviews.h
Added Paths: ----------- trunk/icons/ trunk/icons/16x16/ trunk/icons/16x16/Makefile.am trunk/icons/16x16/classviewer-class.png trunk/icons/16x16/classviewer-macro.png trunk/icons/16x16/classviewer-member.png trunk/icons/16x16/classviewer-method.png trunk/icons/16x16/classviewer-namespace.png trunk/icons/16x16/classviewer-other.png trunk/icons/16x16/classviewer-struct.png trunk/icons/16x16/classviewer-var.png trunk/icons/Makefile.am
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-07-20 12:06:51 UTC (rev 1727) +++ trunk/ChangeLog 2007-07-20 16:33:16 UTC (rev 1728) @@ -5,6 +5,17 @@ Rename ui_close_buttons_toggle() ui_document_buttons_update(). Move app->sensitive_buttons to ui_utils.c for easier maintenance, rename to document_buttons. + * configure.in, src/treeviews.c, src/treeviews.h, + src/symbols.c, THANKS, Makefile.am, icons, icons/16x16, + icons/16x16/classviewer-member.png, icons/16x16/classviewer-var.png, + icons/16x16/classviewer-namespace.png, + icons/16x16/classviewer-method.png, icons/16x16/Makefile.am, + icons/16x16/classviewer-macro.png, icons/16x16/classviewer-other.png, + icons/16x16/classviewer-struct.png, + icons/16x16/classviewer-class.png, icons/Makefile.am: + Apply patch to add symbol list icons from Jean-François Wauthy + (thanks). Also thanks to KDevelop for the icons. + Add list of projects to THANKS.
2007-07-19 Nick Treleaven nick.treleaven@btinternet.com
Modified: trunk/Makefile.am =================================================================== --- trunk/Makefile.am 2007-07-20 12:06:51 UTC (rev 1727) +++ trunk/Makefile.am 2007-07-20 16:33:16 UTC (rev 1728) @@ -1,6 +1,6 @@ ## Process this file with automake to produce Makefile.in
-SUBDIRS = tagmanager scintilla src plugins po doc +SUBDIRS = tagmanager scintilla src plugins icons po doc
WIN32_BUILD_FILES = \ geany_private.rc \
Modified: trunk/THANKS =================================================================== --- trunk/THANKS 2007-07-20 12:06:51 UTC (rev 1727) +++ trunk/THANKS 2007-07-20 16:33:16 UTC (rev 1728) @@ -1,10 +1,11 @@ What's this file about? ----------------------- This file lists all external people that have contributed to this project. +If any contributors are missing, please email the developers - see the AUTHORS file.
Testers and contributors: --------------------------- +------------------------- These people have contributed to Geany by testing the software, reporting problems, sending patches and making useful suggestions. Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - heavy testing @@ -33,9 +34,10 @@ François Cami <francois.cami(at)free(dot)fr>, Guillaume Duviol - tab replacement patch Alexander Rodin <rodin(dot)alexander(at)gmail(dot)com> - class builder patch Shiv <shivakumar(dot)gn(at)gmail(dot)com> - Sun Studio compiler compatibility patch +Jean-François Wauthy <pollux(at)xfce(dot)org> - Symbol list icons patch
Translators: ----------------------------------- +------------ These people have translated Geany to foreign languages. Yura Semashko <yurand2(at)gmail(dot)com> - be_BY Dilyan Rusev <dilyanrusev(at)gmail(dot)com> - bg @@ -57,3 +59,12 @@ Clytie Siddall <clytie(at)riverland(dot)net(dot)au> - vi_VN Dormouse Young <dormouse.young(at)gmail(dot)com> - zh_CN KoViCH <kovich.ian(at)gmail(dot)com> - zh_TW + +Projects: +--------- +GTK/GLib +Scintilla +Tagmanager +CTags +Anjuta (tagmanager) +KDevelop (symbol list icons)
Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2007-07-20 12:06:51 UTC (rev 1727) +++ trunk/configure.in 2007-07-20 16:33:16 UTC (rev 1728) @@ -178,6 +178,8 @@
AC_OUTPUT([ Makefile +icons/Makefile +icons/16x16/Makefile tagmanager/Makefile tagmanager/include/Makefile scintilla/Makefile
Property changes on: trunk/icons ___________________________________________________________________ Name: svn:ignore + Makefile Makefile.in
Property changes on: trunk/icons/16x16 ___________________________________________________________________ Name: svn:ignore + Makefile Makefile.in
Added: trunk/icons/16x16/Makefile.am =================================================================== --- trunk/icons/16x16/Makefile.am (rev 0) +++ trunk/icons/16x16/Makefile.am 2007-07-20 16:33:16 UTC (rev 1728) @@ -0,0 +1,13 @@ +iconsdir = $(datadir)/icons/hicolor/16x16/apps +icons_DATA = \ + classviewer-class.png \ + classviewer-macro.png \ + classviewer-member.png \ + classviewer-method.png \ + classviewer-namespace.png \ + classviewer-other.png \ + classviewer-struct.png \ + classviewer-var.png + +EXTRA_DIST = \ + $(icons_DATA)
Property changes on: trunk/icons/16x16/Makefile.am ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native
Added: trunk/icons/16x16/classviewer-class.png =================================================================== (Binary files differ)
Property changes on: trunk/icons/16x16/classviewer-class.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream
Added: trunk/icons/16x16/classviewer-macro.png =================================================================== (Binary files differ)
Property changes on: trunk/icons/16x16/classviewer-macro.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream
Added: trunk/icons/16x16/classviewer-member.png =================================================================== (Binary files differ)
Property changes on: trunk/icons/16x16/classviewer-member.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream
Added: trunk/icons/16x16/classviewer-method.png =================================================================== (Binary files differ)
Property changes on: trunk/icons/16x16/classviewer-method.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream
Added: trunk/icons/16x16/classviewer-namespace.png =================================================================== (Binary files differ)
Property changes on: trunk/icons/16x16/classviewer-namespace.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream
Added: trunk/icons/16x16/classviewer-other.png =================================================================== (Binary files differ)
Property changes on: trunk/icons/16x16/classviewer-other.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream
Added: trunk/icons/16x16/classviewer-struct.png =================================================================== (Binary files differ)
Property changes on: trunk/icons/16x16/classviewer-struct.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream
Added: trunk/icons/16x16/classviewer-var.png =================================================================== (Binary files differ)
Property changes on: trunk/icons/16x16/classviewer-var.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream
Added: trunk/icons/Makefile.am =================================================================== --- trunk/icons/Makefile.am (rev 0) +++ trunk/icons/Makefile.am 2007-07-20 16:33:16 UTC (rev 1728) @@ -0,0 +1,16 @@ +SUBDIRS = \ + 16x16 + +gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor + +install-data-hook: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + $(gtk_update_icon_cache); \ + else \ + echo "*** Icon cache not updated. Remember to run:"; \ + echo "***"; \ + echo "*** $(gtk_update_icon_cache)"; \ + echo "***"; \ + fi +
Property changes on: trunk/icons/Makefile.am ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native
Modified: trunk/src/symbols.c =================================================================== --- trunk/src/symbols.c 2007-07-20 12:06:51 UTC (rev 1727) +++ trunk/src/symbols.c 2007-07-20 16:33:16 UTC (rev 1728) @@ -41,8 +41,8 @@ #include "document.h" #include "support.h" #include "msgwindow.h" +#include "treeviews.h"
- const guint TM_GLOBAL_TYPE_MASK = tm_tag_class_t | tm_tag_enum_t | tm_tag_interface_t | tm_tag_struct_t | tm_tag_typedef_t | tm_tag_union_t; @@ -50,7 +50,6 @@
static gchar **html_entities = NULL;
- typedef struct { gboolean tags_loaded; @@ -425,10 +424,27 @@ for (; iter = va_arg(args, GtkTreeIter*), iter != NULL;) { gchar *title = va_arg(args, gchar*); + gchar *icon_name = va_arg(args, gchar *); + GdkPixbuf *icon = NULL;
+ if (icon_name) { + GtkIconTheme *icon_theme; + gint x, y; + + gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &x, &y); + icon_theme = gtk_icon_theme_get_default(); + icon = gtk_icon_theme_load_icon (icon_theme, icon_name, x, 0, NULL); + } + g_assert(title != NULL); gtk_tree_store_append(tree_store, iter, NULL); - gtk_tree_store_set(tree_store, iter, 0, title, -1); + + if (G_IS_OBJECT (icon)) { + gtk_tree_store_set(tree_store, iter, SYMBOLS_COLUMN_ICON, icon, + SYMBOLS_COLUMN_NAME, title, -1); + g_object_unref (icon); + } else + gtk_tree_store_set(tree_store, iter, SYMBOLS_COLUMN_NAME, title, -1); } va_end(args); } @@ -446,69 +462,73 @@ case GEANY_FILETYPES_DIFF: { tag_list_add_groups(tag_store, - &(tv_iters.tag_function), _("Files"), NULL); + &(tv_iters.tag_function), _("Files"), NULL, NULL); break; } case GEANY_FILETYPES_DOCBOOK: { tag_list_add_groups(tag_store, - &(tv_iters.tag_function), _("Chapter"), - &(tv_iters.tag_class), _("Section"), - &(tv_iters.tag_member), _("Sect1"), - &(tv_iters.tag_macro), _("Sect2"), - &(tv_iters.tag_variable), _("Sect3"), - &(tv_iters.tag_struct), _("Appendix"), - &(tv_iters.tag_other), _("Other"), NULL); - // &(tv_iters.tag_namespace), _("Other"), NULL); + &(tv_iters.tag_function), _("Chapter"), NULL, + &(tv_iters.tag_class), _("Section"), NULL, + &(tv_iters.tag_member), _("Sect1"), NULL, + &(tv_iters.tag_macro), _("Sect2"), NULL, + &(tv_iters.tag_variable), _("Sect3"), NULL, + &(tv_iters.tag_struct), _("Appendix"), NULL, + &(tv_iters.tag_other), _("Other"), NULL, + NULL); + // &(tv_iters.tag_namespace), _("Other"), NULL, NULL); break; } case GEANY_FILETYPES_HASKELL: tag_list_add_groups(tag_store, - &tv_iters.tag_namespace, _("Module"), - &tv_iters.tag_struct, _("Types"), - &tv_iters.tag_macro, _("Type constructors"), - &tv_iters.tag_function, _("Functions"), + &tv_iters.tag_namespace, _("Module"), NULL, + &tv_iters.tag_struct, _("Types"), NULL, + &tv_iters.tag_macro, _("Type constructors"), NULL, + &tv_iters.tag_function, _("Functions"), "classviewer-method", NULL); break; case GEANY_FILETYPES_CONF: tag_list_add_groups(tag_store, - &tv_iters.tag_namespace, _("Sections"), - &tv_iters.tag_macro, _("Keys"), + &tv_iters.tag_namespace, _("Sections"), NULL, + &tv_iters.tag_macro, _("Keys"), NULL, NULL); break; case GEANY_FILETYPES_LATEX: { tag_list_add_groups(tag_store, - &(tv_iters.tag_function), _("Command"), - &(tv_iters.tag_class), _("Environment"), - &(tv_iters.tag_member), _("Section"), - &(tv_iters.tag_macro), _("Subsection"), - &(tv_iters.tag_variable), _("Subsubsection"), - &(tv_iters.tag_struct), _("Label"), - &(tv_iters.tag_namespace), _("Chapter"), - &(tv_iters.tag_other), _("Other"), NULL); + &(tv_iters.tag_function), _("Command"), NULL, + &(tv_iters.tag_class), _("Environment"), NULL, + &(tv_iters.tag_member), _("Section"), NULL, + &(tv_iters.tag_macro), _("Subsection"), NULL, + &(tv_iters.tag_variable), _("Subsubsection"), NULL, + &(tv_iters.tag_struct), _("Label"), NULL, + &(tv_iters.tag_namespace), _("Chapter"), NULL, + &(tv_iters.tag_other), _("Other"), NULL, + NULL); break; } case GEANY_FILETYPES_PERL: { tag_list_add_groups(tag_store, - &(tv_iters.tag_class), _("Package"), - &(tv_iters.tag_function), _("Functions"), - &(tv_iters.tag_member), _("My"), - &(tv_iters.tag_macro), _("Local"), - &(tv_iters.tag_variable), _("Our"), NULL); - //&(tv_iters.tag_struct), _("Label"), - //&(tv_iters.tag_namespace), _("Begin"), - //&(tv_iters.tag_other), _("Other"), NULL); + &(tv_iters.tag_class), _("Package"), NULL, + &(tv_iters.tag_function), _("Functions"), "classviewer-method", + &(tv_iters.tag_member), _("My"), NULL, + &(tv_iters.tag_macro), _("Local"), NULL, + &(tv_iters.tag_variable), _("Our"), NULL, + NULL); + //&(tv_iters.tag_struct), _("Label"), NULL, + //&(tv_iters.tag_namespace), _("Begin"), NULL, + //&(tv_iters.tag_other), _("Other"), NULL, NULL); break; } case GEANY_FILETYPES_PHP: { tag_list_add_groups(tag_store, - &(tv_iters.tag_class), _("Classes"), - &(tv_iters.tag_function), _("Functions"), - &(tv_iters.tag_macro), _("Constants"), - &(tv_iters.tag_variable), _("Variables"), NULL); + &(tv_iters.tag_class), _("Classes"), "classviewer-class", + &(tv_iters.tag_function), _("Functions"), "classviewer-method", + &(tv_iters.tag_macro), _("Constants"), NULL, + &(tv_iters.tag_variable), _("Variables"), "classviewer-var", + NULL); //&(tv_iters.tag_struct), _("Label"), //&(tv_iters.tag_namespace), _("Begin"), //&(tv_iters.tag_other), _("Other"), NULL); @@ -517,12 +537,13 @@ case GEANY_FILETYPES_RUBY: { tag_list_add_groups(tag_store, - &(tv_iters.tag_class), _("Classes"), - &(tv_iters.tag_member), _("Singletons"), - &(tv_iters.tag_macro), _("Mixins"), - &(tv_iters.tag_function), _("Methods"), - &(tv_iters.tag_struct), _("Members"), - &(tv_iters.tag_variable), _("Variables"), NULL); + &(tv_iters.tag_class), _("Classes"), "classviewer-class", + &(tv_iters.tag_member), _("Singletons"), NULL, + &(tv_iters.tag_macro), _("Mixins"), NULL, + &(tv_iters.tag_function), _("Methods"), "classviewer-method", + &(tv_iters.tag_struct), _("Members"), "classviewer-member", + &(tv_iters.tag_variable), _("Variables"), "classviewer-var", + NULL); //&(tv_iters.tag_namespace), _("Begin"), //&(tv_iters.tag_other), _("Other"), NULL); break; @@ -530,9 +551,10 @@ case GEANY_FILETYPES_PYTHON: { tag_list_add_groups(tag_store, - &(tv_iters.tag_class), _("Classes"), - &(tv_iters.tag_member), _("Methods"), - &(tv_iters.tag_function), _("Functions"), NULL); + &(tv_iters.tag_class), _("Classes"), "classviewer-class", + &(tv_iters.tag_member), _("Methods"), "classviewer-member", + &(tv_iters.tag_function), _("Functions"), "classviewer-method", + NULL); //&(tv_iters.tag_macro), _("Mixin"), //&(tv_iters.tag_variable), _("Variables"), //&(tv_iters.tag_struct), _("Members"), @@ -543,11 +565,12 @@ case GEANY_FILETYPES_VHDL: { tag_list_add_groups(tag_store, - &(tv_iters.tag_function), _("Functions"), + &(tv_iters.tag_function), _("Functions"), "classviewer-method", //&(tv_iters.tag_class), _("Constants"), //&(tv_iters.tag_member), _("Members"), //&(tv_iters.tag_macro), _("Macros"), - &(tv_iters.tag_variable), _("Variables"), NULL); + &(tv_iters.tag_variable), _("Variables"), "classviewer-var", + NULL); //&(tv_iters.tag_namespace), _("Namespaces"), //&(tv_iters.tag_struct), _("Signals"), //&(tv_iters.tag_other), _("Other"), NULL); @@ -556,39 +579,42 @@ case GEANY_FILETYPES_JAVA: { tag_list_add_groups(tag_store, - &(tv_iters.tag_namespace), _("Package"), - &(tv_iters.tag_struct), _("Interfaces"), - &(tv_iters.tag_class), _("Classes"), - &(tv_iters.tag_function), _("Methods"), - &(tv_iters.tag_member), _("Members"), + &(tv_iters.tag_namespace), _("Package"), NULL, + &(tv_iters.tag_struct), _("Interfaces"), NULL, + &(tv_iters.tag_class), _("Classes"), "classviewer-class", + &(tv_iters.tag_function), _("Methods"), "classviewer-method", + &(tv_iters.tag_member), _("Members"), "classviewer-member", // &(tv_iters.tag_macro), _("Macros"), // &(tv_iters.tag_variable), _("Variables"), - &(tv_iters.tag_other), _("Other"), NULL); + &(tv_iters.tag_other), _("Other"), "classviewer-other", + NULL); break; } case GEANY_FILETYPES_D: default: { - gchar *namespace_name = _("Namespaces"); - if (ft_id == GEANY_FILETYPES_D) - namespace_name = _("Module"); // one file can only belong to one module + tag_list_add_groups(tag_store, + &(tv_iters.tag_namespace), _("Module"), NULL, NULL); + else + tag_list_add_groups(tag_store, + &(tv_iters.tag_namespace), _("Namespaces"), "classviewer-namespace", NULL);
tag_list_add_groups(tag_store, - &(tv_iters.tag_namespace), namespace_name, - &(tv_iters.tag_class), _("Classes"), - &(tv_iters.tag_function), _("Functions"), - &(tv_iters.tag_member), _("Members"), - &(tv_iters.tag_struct), _("Structs / Typedefs"), NULL); + &(tv_iters.tag_class), _("Classes"), "classviewer-class", + &(tv_iters.tag_function), _("Functions"), "classviewer-method", + &(tv_iters.tag_member), _("Members"), "classviewer-member", + &(tv_iters.tag_struct), _("Structs / Typedefs"), "classviewer-struct", + NULL);
if (ft_id != GEANY_FILETYPES_D) { tag_list_add_groups(tag_store, - &(tv_iters.tag_macro), _("Macros"), NULL); + &(tv_iters.tag_macro), _("Macros"), "classviewer-macro", NULL); } tag_list_add_groups(tag_store, - &(tv_iters.tag_variable), _("Variables"), - &(tv_iters.tag_other), _("Other"), NULL); + &(tv_iters.tag_variable), _("Variables"), "classviewer-var", + &(tv_iters.tag_other), _("Other"), "classviewer-other", NULL); } } } @@ -617,6 +643,8 @@ { gchar buf[100]; const GeanySymbol *symbol = (GeanySymbol*)tmp->data; + GtkTreeIter *parent = NULL; + GdkPixbuf *icon = NULL;
g_snprintf(buf, sizeof(buf), "%s [%d]", symbol->str, symbol->line);
@@ -627,31 +655,27 @@ case tm_tag_function_t: { if (tv_iters.tag_function.stamp == -1) break; - gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_function)); - gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, buf, -1); + parent = &(tv_iters.tag_function); break; } case tm_tag_macro_t: case tm_tag_macro_with_arg_t: { if (tv_iters.tag_macro.stamp == -1) break; - gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_macro)); - gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, buf, -1); + parent = &(tv_iters.tag_macro); break; } case tm_tag_class_t: { if (tv_iters.tag_class.stamp == -1) break; - gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_class)); - gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, buf, -1); + parent = &(tv_iters.tag_class); break; } case tm_tag_member_t: case tm_tag_field_t: { if (tv_iters.tag_member.stamp == -1) break; - gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_member)); - gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, buf, -1); + parent = &(tv_iters.tag_member); break; } case tm_tag_typedef_t: @@ -661,32 +685,40 @@ case tm_tag_interface_t: { if (tv_iters.tag_struct.stamp == -1) break; - gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_struct)); - gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, buf, -1); + parent = &(tv_iters.tag_struct); break; } case tm_tag_variable_t: { if (tv_iters.tag_variable.stamp == -1) break; - gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_variable)); - gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, buf, -1); + parent = &(tv_iters.tag_variable); break; } case tm_tag_namespace_t: case tm_tag_package_t: { if (tv_iters.tag_namespace.stamp == -1) break; - gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_namespace)); - gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, buf, -1); + parent = &(tv_iters.tag_namespace); break; } default: { if (tv_iters.tag_other.stamp == -1) break; - gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv_iters.tag_other)); - gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, buf, -1); + parent = &(tv_iters.tag_other); } } + + if (parent) { + gtk_tree_model_get(GTK_TREE_MODEL(doc_list[idx].tag_store), parent, + SYMBOLS_COLUMN_ICON, &icon, -1); + gtk_tree_store_append(doc_list[idx].tag_store, &iter, parent); + gtk_tree_store_set(doc_list[idx].tag_store, &iter, + SYMBOLS_COLUMN_ICON, icon, + SYMBOLS_COLUMN_NAME, buf, -1); + + if (G_LIKELY(G_IS_OBJECT(icon))) + g_object_unref(icon); + } } gtk_tree_view_set_model(GTK_TREE_VIEW(doc_list[idx].tag_tree), model); // Re-attach model to view g_object_unref(model);
Modified: trunk/src/treeviews.c =================================================================== --- trunk/src/treeviews.c 2007-07-20 12:06:51 UTC (rev 1727) +++ trunk/src/treeviews.c 2007-07-20 16:33:16 UTC (rev 1728) @@ -69,13 +69,24 @@ /* the prepare_* functions are document-related, but I think they fit better here than in document.c */ static void prepare_taglist(GtkWidget *tree, GtkTreeStore *store) { - GtkCellRenderer *renderer; + GtkCellRenderer *text_renderer, *icon_renderer; GtkTreeViewColumn *column; GtkTreeSelection *select; PangoFontDescription *pfd;
- renderer = gtk_cell_renderer_text_new(); - column = gtk_tree_view_column_new_with_attributes(_("Symbols"), renderer, "text", 0, NULL); + text_renderer = gtk_cell_renderer_text_new(); + icon_renderer = gtk_cell_renderer_pixbuf_new(); + column = gtk_tree_view_column_new(); + + gtk_tree_view_column_pack_start(column, icon_renderer, FALSE); + gtk_tree_view_column_set_attributes(column, icon_renderer, "pixbuf", SYMBOLS_COLUMN_ICON, NULL); + g_object_set(icon_renderer, "xalign", 0.0, NULL); + + gtk_tree_view_column_pack_start(column, text_renderer, TRUE); + gtk_tree_view_column_set_attributes(column, text_renderer, "text", SYMBOLS_COLUMN_NAME, NULL); + g_object_set(text_renderer, "yalign", 0.5, NULL); + gtk_tree_view_column_set_title(column, _("Symbols")); + gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE);
@@ -144,7 +155,7 @@ { // updating the tag list in the left tag window if (doc_list[idx].tag_tree == NULL) { - doc_list[idx].tag_store = gtk_tree_store_new(1, G_TYPE_STRING); + doc_list[idx].tag_store = gtk_tree_store_new(SYMBOLS_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING); doc_list[idx].tag_tree = gtk_tree_view_new(); prepare_taglist(doc_list[idx].tag_tree, doc_list[idx].tag_store); gtk_widget_show(doc_list[idx].tag_tree); @@ -476,7 +487,7 @@
if (gtk_tree_selection_get_selected(selection, &model, &iter)) { - gtk_tree_model_get(model, &iter, 0, &string, -1); + gtk_tree_model_get(model, &iter, SYMBOLS_COLUMN_NAME, &string, -1); if (NZV(string)) { gint idx = document_get_cur_idx();
Modified: trunk/src/treeviews.h =================================================================== --- trunk/src/treeviews.h 2007-07-20 12:06:51 UTC (rev 1727) +++ trunk/src/treeviews.h 2007-07-20 16:33:16 UTC (rev 1728) @@ -35,6 +35,12 @@ GtkWidget *popup_openfiles; } tv;
+enum +{ + SYMBOLS_COLUMN_ICON, + SYMBOLS_COLUMN_NAME, + SYMBOLS_N_COLUMNS, +};
void treeviews_update_tag_list(gint idx, gboolean update);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.