Add ui_combo_box_add_to_history() to API.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5048 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
Nick Treleaven 2010-06-18 12:20:15 +00:00
parent de7e85129d
commit c41b55d692
8 changed files with 37 additions and 15 deletions

View File

@ -1,3 +1,10 @@
2010-06-18 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/ui_utils.h, src/dialogs.c, src/plugindata.h, src/search.c,
src/plugins.c, src/ui_utils.c, plugins/geanyfunctions.h:
Add ui_combo_box_add_to_history() to API.
2010-06-17 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com> 2010-06-17 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/sidebar.c: * src/sidebar.c:

View File

@ -272,6 +272,8 @@
geany_functions->p_ui->ui_is_keyval_enter_or_return geany_functions->p_ui->ui_is_keyval_enter_or_return
#define ui_get_gtk_settings_integer \ #define ui_get_gtk_settings_integer \
geany_functions->p_ui->ui_get_gtk_settings_integer geany_functions->p_ui->ui_get_gtk_settings_integer
#define ui_combo_box_add_to_history \
geany_functions->p_ui->ui_combo_box_add_to_history
#define dialogs_show_question \ #define dialogs_show_question \
geany_functions->p_dialogs->dialogs_show_question geany_functions->p_dialogs->dialogs_show_question
#define dialogs_show_msgbox \ #define dialogs_show_msgbox \

View File

@ -831,7 +831,7 @@ on_input_dialog_response(GtkDialog *dialog,
if (persistent) if (persistent)
{ {
GtkWidget *combo = (GtkWidget *) g_object_get_data(G_OBJECT(dialog), "combo"); GtkWidget *combo = (GtkWidget *) g_object_get_data(G_OBJECT(dialog), "combo");
ui_combo_box_add_to_history(GTK_COMBO_BOX(combo), str); ui_combo_box_add_to_history(GTK_COMBO_BOX_ENTRY(combo), str, 0);
} }
input_cb(str); input_cb(str);
} }

View File

@ -50,7 +50,7 @@
enum { enum {
/** The Application Programming Interface (API) version, incremented /** The Application Programming Interface (API) version, incremented
* whenever any plugin data types are modified or appended to. */ * whenever any plugin data types are modified or appended to. */
GEANY_API_VERSION = 189, GEANY_API_VERSION = 190,
/** The Application Binary Interface (ABI) version, incremented whenever /** The Application Binary Interface (ABI) version, incremented whenever
* existing fields in the plugin data types have to be changed or reordered. */ * existing fields in the plugin data types have to be changed or reordered. */
@ -453,6 +453,8 @@ typedef struct UIUtilsFuncs
void (*ui_widget_modify_font_from_string) (GtkWidget *widget, const gchar *str); void (*ui_widget_modify_font_from_string) (GtkWidget *widget, const gchar *str);
gboolean (*ui_is_keyval_enter_or_return) (guint keyval); gboolean (*ui_is_keyval_enter_or_return) (guint keyval);
gint (*ui_get_gtk_settings_integer) (const gchar *property_name, gint default_value); gint (*ui_get_gtk_settings_integer) (const gchar *property_name, gint default_value);
void (*ui_combo_box_add_to_history) (GtkComboBoxEntry *combo_entry,
const gchar *text, gint history_len);
} }
UIUtilsFuncs; UIUtilsFuncs;

View File

@ -233,7 +233,8 @@ static UIUtilsFuncs uiutils_funcs = {
&ui_menu_add_document_items, &ui_menu_add_document_items,
&ui_widget_modify_font_from_string, &ui_widget_modify_font_from_string,
&ui_is_keyval_enter_or_return, &ui_is_keyval_enter_or_return,
&ui_get_gtk_settings_integer &ui_get_gtk_settings_integer,
&ui_combo_box_add_to_history
}; };
static DialogFuncs dialog_funcs = { static DialogFuncs dialog_funcs = {

View File

@ -1096,7 +1096,7 @@ on_find_dialog_response(GtkDialog *dialog, gint response, gpointer user_data)
if (! utils_str_replace_escape(search_data.text, search_data.flags & SCFIND_REGEXP)) if (! utils_str_replace_escape(search_data.text, search_data.flags & SCFIND_REGEXP))
goto fail; goto fail;
} }
ui_combo_box_add_to_history(GTK_COMBO_BOX(user_data), search_data.text); ui_combo_box_add_to_history(GTK_COMBO_BOX_ENTRY(user_data), search_data.text, 0);
switch (response) switch (response)
{ {
@ -1234,10 +1234,10 @@ on_replace_dialog_response(GtkDialog *dialog, gint response, gpointer user_data)
goto fail; goto fail;
} }
ui_combo_box_add_to_history(GTK_COMBO_BOX( ui_combo_box_add_to_history(GTK_COMBO_BOX_ENTRY(
gtk_widget_get_parent(replace_dlg.find_entry)), find); gtk_widget_get_parent(replace_dlg.find_entry)), find, 0);
ui_combo_box_add_to_history(GTK_COMBO_BOX( ui_combo_box_add_to_history(GTK_COMBO_BOX_ENTRY(
gtk_widget_get_parent(replace_dlg.replace_entry)), replace); gtk_widget_get_parent(replace_dlg.replace_entry)), replace, 0);
switch (response) switch (response)
{ {
@ -1377,8 +1377,8 @@ on_find_in_files_dialog_response(GtkDialog *dialog, gint response,
if (search_find_in_files(search_text, locale_dir, opts->str, enc)) if (search_find_in_files(search_text, locale_dir, opts->str, enc))
{ {
ui_combo_box_add_to_history(GTK_COMBO_BOX(search_combo), search_text); ui_combo_box_add_to_history(GTK_COMBO_BOX_ENTRY(search_combo), search_text, 0);
ui_combo_box_add_to_history(GTK_COMBO_BOX(dir_combo), utf8_dir); ui_combo_box_add_to_history(GTK_COMBO_BOX_ENTRY(dir_combo), utf8_dir, 0);
gtk_widget_hide(fif_dlg.dialog); gtk_widget_hide(fif_dlg.dialog);
} }
g_free(locale_dir); g_free(locale_dir);

View File

@ -1407,15 +1407,24 @@ static gboolean tree_model_find_text(GtkTreeModel *model,
} }
/* Prepends the active text to the drop down list, removing a duplicate element in /** Prepends @a text to the drop down list, removing a duplicate element in
* the list if found. Ensures there are <= history_len elements. */ * the list if found. Also ensures there are <= @a history_len elements.
void ui_combo_box_add_to_history(GtkComboBox *combo, const gchar *text) * @param combo_entry .
* @param text Text to add, or @c NULL for current entry text.
* @param history_len Max number of items, or @c 0 for default. */
void ui_combo_box_add_to_history(GtkComboBoxEntry *combo_entry,
const gchar *text, gint history_len)
{ {
const gint history_len = 10; GtkComboBox *combo = GTK_COMBO_BOX(combo_entry);
GtkTreeModel *model; GtkTreeModel *model;
GtkTreeIter iter; GtkTreeIter iter;
GtkTreePath *path; GtkTreePath *path;
if (history_len <= 0)
history_len = 10;
if (!text)
text = gtk_entry_get_text(GTK_ENTRY(GTK_BIN(combo)->child));
model = gtk_combo_box_get_model(combo); model = gtk_combo_box_get_model(combo);
if (tree_model_find_text(model, &iter, 0, text)) if (tree_model_find_text(model, &iter, 0, text))

View File

@ -184,7 +184,8 @@ GtkWidget *ui_image_menu_item_new(const gchar *stock_id, const gchar *label);
void ui_hbutton_box_copy_layout(GtkButtonBox *master, GtkButtonBox *copy); void ui_hbutton_box_copy_layout(GtkButtonBox *master, GtkButtonBox *copy);
void ui_combo_box_add_to_history(GtkComboBox *combo, const gchar *text); void ui_combo_box_add_to_history(GtkComboBoxEntry *combo_entry,
const gchar *text, gint history_len);
void ui_combo_box_prepend_text_once(GtkComboBox *combo, const gchar *text); void ui_combo_box_prepend_text_once(GtkComboBox *combo, const gchar *text);