use an entry with completion for language selection. Still not functional.

2008-02-08  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimptexteditor.c: use an entry with completion 
for
	language selection. Still not functional.


svn path=/trunk/; revision=24834
This commit is contained in:
Sven Neumann 2008-02-08 20:42:34 +00:00 committed by Sven Neumann
parent 904abbfd11
commit 98ae72715b
2 changed files with 58 additions and 28 deletions

View File

@ -1,3 +1,8 @@
2008-02-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimptexteditor.c: use an entry with completion for
language selection. Still not functional.
2008-02-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimplanguagestore.[ch]

View File

@ -46,12 +46,14 @@ enum
};
static void gimp_text_editor_finalize (GObject *object);
static void gimp_text_editor_finalize (GObject *object);
static void gimp_text_editor_text_changed (GtkTextBuffer *buffer,
GimpTextEditor *editor);
static void gimp_text_editor_font_toggled (GtkToggleButton *button,
GimpTextEditor *editor);
static GtkWidget * gimp_text_editor_language_entry_new (void);
static void gimp_text_editor_text_changed (GtkTextBuffer *buffer,
GimpTextEditor *editor);
static void gimp_text_editor_font_toggled (GtkToggleButton *button,
GimpTextEditor *editor);
G_DEFINE_TYPE (GimpTextEditor, gimp_text_editor, GIMP_TYPE_DIALOG)
@ -133,6 +135,10 @@ gimp_text_editor_new (const gchar *title,
{
GimpTextEditor *editor;
GtkTextBuffer *buffer;
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *label;
GtkWidget *entry;
GtkWidget *toolbar;
GtkWidget *scrolled_window;
@ -169,33 +175,16 @@ gimp_text_editor_new (const gchar *title,
gtk_widget_show (toolbar);
}
{
GtkListStore *store;
GtkWidget *combo;
GtkCellRenderer *cell;
store = gimp_language_store_new (FALSE);
combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
g_object_unref (store);
cell = gtk_cell_renderer_text_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cell, TRUE);
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), cell,
"text", GIMP_LANGUAGE_STORE_LANGUAGE,
NULL);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (editor)->vbox),
combo, FALSE, FALSE, 0);
gtk_widget_show (combo);
}
vbox = gtk_vbox_new (FALSE, 6);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (editor)->vbox), vbox, TRUE, TRUE, 0);
gtk_widget_show (vbox);
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 2);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (editor)->vbox),
scrolled_window, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0);
gtk_widget_show (scrolled_window);
editor->view = gtk_text_view_new ();
@ -220,10 +209,23 @@ gimp_text_editor_new (const gchar *title,
gtk_widget_set_size_request (editor->view, 128, 64);
hbox = gtk_hbox_new (FALSE, 6);
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
gtk_widget_show (hbox);
label = gtk_label_new_with_mnemonic (_("_Language:"));
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
gtk_widget_show (label);
entry = gimp_text_editor_language_entry_new ();
gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
gtk_widget_show (entry);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
editor->font_toggle =
gtk_check_button_new_with_mnemonic (_("_Use selected font"));
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (editor)->vbox),
editor->font_toggle, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), editor->font_toggle, FALSE, FALSE, 0);
gtk_widget_show (editor->font_toggle);
g_signal_connect (editor->font_toggle, "toggled",
@ -344,6 +346,29 @@ gimp_text_editor_get_font_name (GimpTextEditor *editor)
/* private functions */
static GtkWidget *
gimp_text_editor_language_entry_new (void)
{
GtkWidget *entry;
GtkListStore *store;
GtkEntryCompletion *completion;
entry = gtk_entry_new ();
completion = gtk_entry_completion_new ();
gtk_entry_completion_set_text_column (completion,
GIMP_LANGUAGE_STORE_LANGUAGE);
store = gimp_language_store_new (FALSE);
gtk_entry_completion_set_model (completion, GTK_TREE_MODEL (store));
g_object_unref (store);
gtk_entry_set_completion (GTK_ENTRY (entry), completion);
g_object_unref (completion);
return entry;
}
static void
gimp_text_editor_text_changed (GtkTextBuffer *buffer,
GimpTextEditor *editor)