Add editor_get_calltip_text().
Add tooltips for the symbol list items. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3288 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
7589d8a4e5
commit
13682cfd10
@ -4,6 +4,10 @@
|
|||||||
Simplify the tooltips code for the Open Files treeview.
|
Simplify the tooltips code for the Open Files treeview.
|
||||||
Change the dependency handling for GTK 2.12 for some features
|
Change the dependency handling for GTK 2.12 for some features
|
||||||
from compile time to run time.
|
from compile time to run time.
|
||||||
|
* src/editor.c, src/editor.h, src/symbols.c, src/treeviews.c,
|
||||||
|
src/treeviews.h:
|
||||||
|
Add editor_get_calltip_text().
|
||||||
|
Add tooltips for the symbol list items.
|
||||||
|
|
||||||
|
|
||||||
2008-11-28 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
2008-11-28 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
||||||
|
|||||||
14
src/editor.c
14
src/editor.c
@ -1387,6 +1387,20 @@ gboolean editor_show_calltip(GeanyEditor *editor, gint pos)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
gchar *editor_get_calltip_text(GeanyEditor *editor, const TMTag *tag)
|
||||||
|
{
|
||||||
|
GString *str;
|
||||||
|
|
||||||
|
g_return_val_if_fail(editor != NULL, NULL);
|
||||||
|
|
||||||
|
str = g_string_new(NULL);
|
||||||
|
if (append_calltip(str, tag, FILETYPE_ID(editor->document->file_type)))
|
||||||
|
return g_string_free(str, FALSE);
|
||||||
|
else
|
||||||
|
return g_string_free(str, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void show_autocomplete(ScintillaObject *sci, gint rootlen, const gchar *words)
|
static void show_autocomplete(ScintillaObject *sci, gint rootlen, const gchar *words)
|
||||||
{
|
{
|
||||||
/* store whether a calltip is showing, so we can reshow it after autocompletion */
|
/* store whether a calltip is showing, so we can reshow it after autocompletion */
|
||||||
|
|||||||
@ -256,4 +256,6 @@ void editor_set_indentation_guides(GeanyEditor *editor);
|
|||||||
|
|
||||||
void editor_apply_update_prefs(GeanyEditor *editor);
|
void editor_apply_update_prefs(GeanyEditor *editor);
|
||||||
|
|
||||||
|
gchar *editor_get_calltip_text(GeanyEditor *editor, const TMTag *tag);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -831,8 +831,7 @@ static void hide_empty_rows(GtkTreeStore *store)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const gchar *get_symbol_name(GeanyDocument *doc, const TMTag *tag,
|
static const gchar *get_symbol_name(GeanyDocument *doc, const TMTag *tag, gboolean found_parent)
|
||||||
gboolean found_parent)
|
|
||||||
{
|
{
|
||||||
gchar *utf8_name;
|
gchar *utf8_name;
|
||||||
const gchar *scope = tag->atts.entry.scope;
|
const gchar *scope = tag->atts.entry.scope;
|
||||||
@ -879,6 +878,22 @@ static const gchar *get_symbol_name(GeanyDocument *doc, const TMTag *tag,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static gchar *get_symbol_tooltip(GeanyDocument *doc, const TMTag *tag)
|
||||||
|
{
|
||||||
|
gchar *utf8_name = editor_get_calltip_text(doc->editor, tag);
|
||||||
|
|
||||||
|
/* encodings_convert_to_utf8_from_charset() fails with charset "None", so skip conversion
|
||||||
|
* for None at this point completely */
|
||||||
|
if (! utils_str_equal(doc->encoding, "UTF-8") && ! utils_str_equal(doc->encoding, "None"))
|
||||||
|
{
|
||||||
|
setptr(utf8_name,
|
||||||
|
encodings_convert_to_utf8_from_charset(utf8_name, -1, doc->encoding, TRUE));
|
||||||
|
}
|
||||||
|
|
||||||
|
return utf8_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* find the last word in "foo::bar::blah", e.g. "blah" */
|
/* find the last word in "foo::bar::blah", e.g. "blah" */
|
||||||
const gchar *get_parent_name(const TMTag *tag, filetype_id ft_id)
|
const gchar *get_parent_name(const TMTag *tag, filetype_id ft_id)
|
||||||
{
|
{
|
||||||
@ -989,6 +1004,7 @@ static void add_tree_tag(GeanyDocument *doc, const TMTag *tag, GHashTable *paren
|
|||||||
{
|
{
|
||||||
const gchar *name;
|
const gchar *name;
|
||||||
const gchar *parent_name = get_parent_name(tag, ft_id);
|
const gchar *parent_name = get_parent_name(tag, ft_id);
|
||||||
|
gchar *tooltip;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
GtkTreeIter *icon_iter = NULL, *child = NULL;
|
GtkTreeIter *icon_iter = NULL, *child = NULL;
|
||||||
GdkPixbuf *icon = NULL;
|
GdkPixbuf *icon = NULL;
|
||||||
@ -1025,11 +1041,15 @@ static void add_tree_tag(GeanyDocument *doc, const TMTag *tag, GHashTable *paren
|
|||||||
gtk_tree_store_append(tree_store, child, parent);
|
gtk_tree_store_append(tree_store, child, parent);
|
||||||
|
|
||||||
name = get_symbol_name(doc, tag, (parent_name != NULL));
|
name = get_symbol_name(doc, tag, (parent_name != NULL));
|
||||||
|
tooltip = get_symbol_tooltip(doc, tag);
|
||||||
gtk_tree_store_set(tree_store, child,
|
gtk_tree_store_set(tree_store, child,
|
||||||
SYMBOLS_COLUMN_ICON, icon,
|
SYMBOLS_COLUMN_ICON, icon,
|
||||||
SYMBOLS_COLUMN_NAME, name,
|
SYMBOLS_COLUMN_NAME, name,
|
||||||
SYMBOLS_COLUMN_TAG, tag, -1);
|
SYMBOLS_COLUMN_TAG, tag,
|
||||||
|
SYMBOLS_COLUMN_TOOLTIP, tooltip,
|
||||||
|
-1);
|
||||||
|
|
||||||
|
g_free(tooltip);
|
||||||
if (G_LIKELY(G_IS_OBJECT(icon)))
|
if (G_LIKELY(G_IS_OBJECT(icon)))
|
||||||
g_object_unref(icon);
|
g_object_unref(icon);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -122,6 +122,10 @@ static void prepare_taglist(GtkWidget *tree, GtkTreeStore *store)
|
|||||||
g_object_set(tree, "show-expanders", interface_prefs.show_symbol_list_expanders, NULL);
|
g_object_set(tree, "show-expanders", interface_prefs.show_symbol_list_expanders, NULL);
|
||||||
if (! interface_prefs.show_symbol_list_expanders)
|
if (! interface_prefs.show_symbol_list_expanders)
|
||||||
g_object_set(tree, "level-indentation", 10, NULL);
|
g_object_set(tree, "level-indentation", 10, NULL);
|
||||||
|
/* Tooltips */
|
||||||
|
g_object_set(tree,
|
||||||
|
"has-tooltip", TRUE,
|
||||||
|
"tooltip-column", SYMBOLS_COLUMN_TOOLTIP, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* selection handling */
|
/* selection handling */
|
||||||
@ -180,7 +184,7 @@ void treeviews_update_tag_list(GeanyDocument *doc, gboolean update)
|
|||||||
if (doc->priv->tag_tree == NULL)
|
if (doc->priv->tag_tree == NULL)
|
||||||
{
|
{
|
||||||
doc->priv->tag_store = gtk_tree_store_new(
|
doc->priv->tag_store = gtk_tree_store_new(
|
||||||
SYMBOLS_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER);
|
SYMBOLS_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_STRING);
|
||||||
doc->priv->tag_tree = gtk_tree_view_new();
|
doc->priv->tag_tree = gtk_tree_view_new();
|
||||||
prepare_taglist(doc->priv->tag_tree, doc->priv->tag_store);
|
prepare_taglist(doc->priv->tag_tree, doc->priv->tag_store);
|
||||||
gtk_widget_show(doc->priv->tag_tree);
|
gtk_widget_show(doc->priv->tag_tree);
|
||||||
|
|||||||
@ -42,6 +42,7 @@ enum
|
|||||||
SYMBOLS_COLUMN_ICON,
|
SYMBOLS_COLUMN_ICON,
|
||||||
SYMBOLS_COLUMN_NAME,
|
SYMBOLS_COLUMN_NAME,
|
||||||
SYMBOLS_COLUMN_TAG,
|
SYMBOLS_COLUMN_TAG,
|
||||||
|
SYMBOLS_COLUMN_TOOLTIP,
|
||||||
SYMBOLS_N_COLUMNS
|
SYMBOLS_N_COLUMNS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user