[glabels] Use glFieldButton instead of GtkComboBox for field selection
- From: Jim Evins <jimevins src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [glabels] Use glFieldButton instead of GtkComboBox for field selection
- Date: Wed, 16 Dec 2009 03:43:09 +0000 (UTC)
commit cbfbbff95d01ff6daffbb24159aa6fa0a4ae2e1c
Author: Jim Evins <evins snaught com>
Date: Tue Dec 15 22:39:39 2009 -0500
Use glFieldButton instead of GtkComboBox for field selection
Extended glFieldButton so that it could be used instead of a GtkComboBox
for field selectors in the object editor. This unifies the dropdown style
with the "Insert field" button on the text editor page.
data/builder/object-editor.builder | 72 +++++++++++++++++------------------
src/field-button.c | 67 ++++++++++++++++++++++++++++++++-
src/field-button.h | 9 ++++
src/object-editor-bc-page.c | 17 +++++---
src/object-editor-data-page.c | 15 ++++---
src/object-editor-fill-page.c | 15 ++++---
src/object-editor-image-page.c | 16 +++++---
src/object-editor-line-page.c | 15 ++++---
src/object-editor-private.h | 7 +++
src/object-editor-shadow-page.c | 16 +++++---
src/object-editor-text-page.c | 14 ++++--
src/object-editor.c | 29 +++++++-------
12 files changed, 196 insertions(+), 96 deletions(-)
---
diff --git a/data/builder/object-editor.builder b/data/builder/object-editor.builder
index 117e360..b618a8a 100644
--- a/data/builder/object-editor.builder
+++ b/data/builder/object-editor.builder
@@ -10,10 +10,12 @@
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox1">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkVBox" id="editor_vbox">
<property name="visible">True</property>
<property name="border_width">6</property>
+ <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkHBox" id="title_hbox">
@@ -57,6 +59,7 @@
<object class="GtkVBox" id="edit_page_vbox">
<property name="visible">True</property>
<property name="border_width">12</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkHBox" id="hbox30">
@@ -124,6 +127,7 @@
<object class="GtkVBox" id="text_page_vbox">
<property name="visible">True</property>
<property name="border_width">12</property>
+ <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkHBox" id="hbox65">
@@ -293,6 +297,7 @@
<child>
<object class="GtkVBox" id="vbox3">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkHBox" id="hbox42">
@@ -352,16 +357,11 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox45">
+ <object class="GtkHBox" id="text_color_key_hbox">
<property name="visible">True</property>
<property name="spacing">12</property>
<child>
- <object class="GtkComboBox" id="text_color_key_combo">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
+ <placeholder/>
</child>
</object>
<packing>
@@ -552,6 +552,7 @@
<object class="GtkVBox" id="line_page_vbox">
<property name="visible">True</property>
<property name="border_width">12</property>
+ <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkHBox" id="hbox71">
@@ -631,6 +632,7 @@
<child>
<object class="GtkVBox" id="vbox2">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkHBox" id="hbox38">
@@ -690,16 +692,11 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox41">
+ <object class="GtkHBox" id="line_key_hbox">
<property name="visible">True</property>
<property name="spacing">12</property>
<child>
- <object class="GtkComboBox" id="line_key_combo">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
+ <placeholder/>
</child>
</object>
<packing>
@@ -742,6 +739,7 @@
<object class="GtkVBox" id="fill_page_vbox">
<property name="visible">True</property>
<property name="border_width">12</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkHBox" id="hbox73">
<property name="visible">True</property>
@@ -762,6 +760,7 @@
<child>
<object class="GtkVBox" id="vbox5">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkHBox" id="hbox50">
@@ -822,16 +821,11 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox53">
+ <object class="GtkHBox" id="fill_key_hbox">
<property name="visible">True</property>
<property name="spacing">12</property>
<child>
- <object class="GtkComboBox" id="fill_key_combo">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
+ <placeholder/>
</child>
</object>
<packing>
@@ -874,6 +868,7 @@
<object class="GtkVBox" id="img_page_vbox">
<property name="visible">True</property>
<property name="border_width">12</property>
+ <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkHBox" id="hbox74">
@@ -934,8 +929,11 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="img_key_combo">
+ <object class="GtkHBox" id="img_key_hbox">
<property name="visible">True</property>
+ <child>
+ <placeholder/>
+ </child>
</object>
<packing>
<property name="position">1</property>
@@ -967,6 +965,7 @@
<object class="GtkVBox" id="data_page_vbox">
<property name="visible">True</property>
<property name="border_width">12</property>
+ <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkHBox" id="hbox76">
@@ -1024,8 +1023,11 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="data_key_combo">
+ <object class="GtkHBox" id="data_key_hbox">
<property name="visible">True</property>
+ <child>
+ <placeholder/>
+ </child>
</object>
<packing>
<property name="position">1</property>
@@ -1155,6 +1157,7 @@
<object class="GtkVBox" id="bc_page_vbox">
<property name="visible">True</property>
<property name="border_width">12</property>
+ <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkHBox" id="hbox79">
@@ -1237,6 +1240,7 @@
<child>
<object class="GtkVBox" id="vbox4">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkHBox" id="hbox46">
@@ -1296,16 +1300,11 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox49">
+ <object class="GtkHBox" id="bc_key_hbox">
<property name="visible">True</property>
<property name="spacing">12</property>
<child>
- <object class="GtkComboBox" id="bc_key_combo">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
+ <placeholder/>
</child>
</object>
<packing>
@@ -1527,6 +1526,7 @@
<object class="GtkVBox" id="lsize_page_vbox">
<property name="visible">True</property>
<property name="border_width">12</property>
+ <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkTable" id="table7">
@@ -1781,6 +1781,7 @@
<object class="GtkVBox" id="shadow_page_vbox">
<property name="visible">True</property>
<property name="border_width">12</property>
+ <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkCheckButton" id="shadow_enable_check">
@@ -1800,6 +1801,7 @@
<child>
<object class="GtkVBox" id="shadow_controls_table">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkHBox" id="hbox63">
@@ -1933,6 +1935,7 @@
<child>
<object class="GtkVBox" id="vbox7">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkHBox" id="hbox57">
@@ -1994,16 +1997,11 @@
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox60">
+ <object class="GtkHBox" id="shadow_key_hbox">
<property name="visible">True</property>
<property name="spacing">12</property>
<child>
- <object class="GtkComboBox" id="shadow_key_combo">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
+ <placeholder/>
</child>
</object>
<packing>
diff --git a/src/field-button.c b/src/field-button.c
index a0061a8..aad5f51 100644
--- a/src/field-button.c
+++ b/src/field-button.c
@@ -37,6 +37,9 @@
/** GL_FIELD_BUTTON Private fields */
struct _glFieldButtonPrivate {
+ gboolean label_is_key;
+ gchar *key;
+
GtkWidget *label;
GtkWidget *menu;
@@ -44,6 +47,7 @@ struct _glFieldButtonPrivate {
enum {
KEY_SELECTED,
+ CHANGED,
LAST_SIGNAL
};
@@ -102,6 +106,15 @@ gl_field_button_class_init (glFieldButtonClass *class)
NULL, NULL,
gl_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
+
+ signals[CHANGED] =
+ g_signal_new ("changed",
+ G_OBJECT_CLASS_TYPE (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (glFieldButtonClass, changed),
+ NULL, NULL,
+ gl_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
}
@@ -159,7 +172,14 @@ gl_field_button_new (const gchar *name)
this = g_object_new (TYPE_GL_FIELD_BUTTON, NULL);
- gtk_label_set_text (GTK_LABEL (this->priv->label), name);
+ if ( name )
+ {
+ gtk_label_set_text (GTK_LABEL (this->priv->label), name);
+ }
+ else
+ {
+ this->priv->label_is_key = TRUE;
+ }
this->priv->menu = gl_field_button_menu_new ();
@@ -183,12 +203,44 @@ gl_field_button_set_keys (glFieldButton *this,
{
gl_field_button_menu_set_keys (GL_FIELD_BUTTON_MENU (this->priv->menu),
key_list);
+ this->priv->key = g_strdup (key_list->data);
+ if ( this->priv->label_is_key )
+ {
+ gtk_label_set_text (GTK_LABEL (this->priv->label), key_list->data);
+ }
gtk_widget_show_all (this->priv->menu);
}
/*****************************************************************************/
+/* Set current key. */
+/*****************************************************************************/
+void
+gl_field_button_set_key (glFieldButton *this,
+ const gchar *key)
+{
+ g_free (this->priv->key);
+ this->priv->key = g_strdup (key);
+
+ if ( this->priv->label_is_key )
+ {
+ gtk_label_set_text (GTK_LABEL (this->priv->label), key);
+ }
+}
+
+
+/*****************************************************************************/
+/* Get current key. */
+/*****************************************************************************/
+gchar *
+gl_field_button_get_key (glFieldButton *this)
+{
+ return g_strdup (this->priv->key);
+}
+
+
+/*****************************************************************************/
/* Menu positioning function. */
/*****************************************************************************/
static void
@@ -301,10 +353,19 @@ button_press_event_cb (GtkWidget *widget,
/*****************************************************************************/
static void
menu_key_selected_cb (glFieldButtonMenu *menu,
- gchar *field,
+ gchar *key,
glFieldButton *this)
{
- g_signal_emit (this, signals[KEY_SELECTED], 0, field);
+ if (this->priv->label_is_key)
+ {
+ gtk_label_set_text (GTK_LABEL (this->priv->label), key);
+ }
+
+ g_free (this->priv->key);
+ this->priv->key = g_strdup (key);
+
+ g_signal_emit (this, signals[KEY_SELECTED], 0, key);
+ g_signal_emit (this, signals[CHANGED], 0);
}
diff --git a/src/field-button.h b/src/field-button.h
index 883558d..1bd990f 100644
--- a/src/field-button.h
+++ b/src/field-button.h
@@ -56,6 +56,9 @@ struct _glFieldButtonClass {
gchar *key,
gpointer user_data);
+ void (*changed) (glFieldButton *object,
+ gpointer user_data);
+
};
@@ -66,6 +69,12 @@ GtkWidget *gl_field_button_new (const gchar *name);
void gl_field_button_set_keys (glFieldButton *this,
GList *key_list);
+void gl_field_button_set_key (glFieldButton *this,
+ const gchar *key);
+
+gchar *gl_field_button_get_key (glFieldButton *this);
+
+
G_END_DECLS
#endif /* __GL_COLOR_COMBO_H__ */
diff --git a/src/object-editor-bc-page.c b/src/object-editor-bc-page.c
index 2412951..b3b2fe2 100644
--- a/src/object-editor-bc-page.c
+++ b/src/object-editor-bc-page.c
@@ -29,6 +29,7 @@
#include "prefs.h"
#include "color-combo.h"
#include "color.h"
+#include "field-button.h"
#include "combo-util.h"
#include "builder-util.h"
@@ -77,7 +78,7 @@ gl_object_editor_prepare_bc_page (glObjectEditor *editor)
"bc_text_check", &editor->priv->bc_text_check,
"bc_cs_check", &editor->priv->bc_cs_check,
"bc_color_hbox", &editor->priv->bc_color_hbox,
- "bc_key_combo", &editor->priv->bc_key_combo,
+ "bc_key_hbox", &editor->priv->bc_key_hbox,
"bc_key_radio", &editor->priv->bc_key_radio,
"bc_color_radio", &editor->priv->bc_color_radio,
"data_format_label", &editor->priv->data_format_label,
@@ -95,8 +96,12 @@ gl_object_editor_prepare_bc_page (glObjectEditor *editor)
editor->priv->bc_color_combo,
FALSE, FALSE, 0);
+ editor->priv->bc_key_combo = gl_field_button_new (NULL);
+ gtk_box_pack_start (GTK_BOX (editor->priv->bc_key_hbox),
+ editor->priv->bc_key_combo,
+ TRUE, TRUE, 0);
+
gl_combo_util_add_text_model ( GTK_COMBO_BOX(editor->priv->bc_style_combo));
- gl_combo_util_add_text_model ( GTK_COMBO_BOX(editor->priv->bc_key_combo));
/* Load barcode styles */
styles = gl_barcode_get_styles_list ();
@@ -257,7 +262,7 @@ gl_object_editor_set_bc_style (glObjectEditor *editor,
g_free (ex_string);
gtk_spin_button_set_value (GTK_SPIN_BUTTON (editor->priv->data_digits_spin),
- format_digits);
+ format_digits);
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->data_literal_radio))) {
gtk_widget_set_sensitive (editor->priv->data_format_label, FALSE);
@@ -349,8 +354,8 @@ gl_object_editor_set_bc_color (glObjectEditor *editor,
gtk_widget_set_sensitive (editor->priv->bc_color_combo, FALSE);
gtk_widget_set_sensitive (editor->priv->bc_key_combo, TRUE);
- gl_combo_util_set_active_text (GTK_COMBO_BOX (editor->priv->bc_key_combo),
- color_node->key);
+ gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->bc_key_combo),
+ color_node->key);
}
editor->priv->stop_signals = FALSE;
@@ -377,7 +382,7 @@ gl_object_editor_get_bc_color (glObjectEditor *editor)
color_node->field_flag = TRUE;
color_node->color = gl_prefs_model_get_default_line_color (gl_prefs);
color_node->key =
- gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->bc_key_combo));
+ gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->bc_key_combo));
} else {
color_node->field_flag = FALSE;
color_node->key = NULL;
diff --git a/src/object-editor-data-page.c b/src/object-editor-data-page.c
index 3c48369..bb2ba93 100644
--- a/src/object-editor-data-page.c
+++ b/src/object-editor-data-page.c
@@ -28,7 +28,7 @@
#include <math.h>
#include "prefs.h"
-#include "combo-util.h"
+#include "field-button.h"
#include "builder-util.h"
#include "object-editor-private.h"
@@ -72,10 +72,13 @@ gl_object_editor_prepare_data_page (glObjectEditor *editor)
"data_literal_radio", &editor->priv->data_literal_radio,
"data_key_radio", &editor->priv->data_key_radio,
"data_text_entry", &editor->priv->data_text_entry,
- "data_key_combo", &editor->priv->data_key_combo,
+ "data_key_hbox", &editor->priv->data_key_hbox,
NULL);
- gl_combo_util_add_text_model ( GTK_COMBO_BOX(editor->priv->data_key_combo));
+ editor->priv->data_key_combo = gl_field_button_new (NULL);
+ gtk_box_pack_start (GTK_BOX (editor->priv->data_key_hbox),
+ editor->priv->data_key_combo,
+ TRUE, TRUE, 0);
/* Un-hide */
gtk_widget_show_all (editor->priv->data_page_vbox);
@@ -187,8 +190,8 @@ gl_object_editor_set_data (glObjectEditor *editor,
!editor->priv->data_format_fixed_flag);
- gl_combo_util_set_active_text (GTK_COMBO_BOX (editor->priv->data_key_combo),
- text_node->data);
+ gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->data_key_combo),
+ text_node->data);
}
@@ -218,7 +221,7 @@ gl_object_editor_get_data (glObjectEditor *editor)
} else {
text_node->field_flag = TRUE;
text_node->data =
- gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->data_key_combo));
+ gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->data_key_combo));
}
gl_debug (DEBUG_EDITOR, "text_node: field_flag=%d, data=%s",
diff --git a/src/object-editor-fill-page.c b/src/object-editor-fill-page.c
index ac60772..45895d7 100644
--- a/src/object-editor-fill-page.c
+++ b/src/object-editor-fill-page.c
@@ -29,7 +29,7 @@
#include "prefs.h"
#include "color-combo.h"
#include "color.h"
-#include "combo-util.h"
+#include "field-button.h"
#include "builder-util.h"
#include "object-editor-private.h"
@@ -71,7 +71,7 @@ gl_object_editor_prepare_fill_page (glObjectEditor *editor)
gl_builder_util_get_widgets (editor->priv->builder,
"fill_page_vbox", &editor->priv->fill_page_vbox,
"fill_color_hbox", &editor->priv->fill_color_hbox,
- "fill_key_combo", &editor->priv->fill_key_combo,
+ "fill_key_hbox", &editor->priv->fill_key_hbox,
"fill_key_radio", &editor->priv->fill_key_radio,
"fill_color_radio", &editor->priv->fill_color_radio,
NULL);
@@ -83,7 +83,10 @@ gl_object_editor_prepare_fill_page (glObjectEditor *editor)
editor->priv->fill_color_combo,
FALSE, FALSE, 0);
- gl_combo_util_add_text_model ( GTK_COMBO_BOX(editor->priv->fill_key_combo));
+ editor->priv->fill_key_combo = gl_field_button_new (NULL);
+ gtk_box_pack_start (GTK_BOX (editor->priv->fill_key_hbox),
+ editor->priv->fill_key_combo,
+ TRUE, TRUE, 0);
/* Modify widgets based on configuration */
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->fill_color_radio), TRUE);
@@ -158,8 +161,8 @@ gl_object_editor_set_fill_color (glObjectEditor *editor,
gtk_widget_set_sensitive (editor->priv->fill_color_combo, FALSE);
gtk_widget_set_sensitive (editor->priv->fill_key_combo, TRUE);
- gl_combo_util_set_active_text (GTK_COMBO_BOX (editor->priv->fill_key_combo),
- color_node->key);
+ gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->fill_key_combo),
+ color_node->key);
}
editor->priv->stop_signals = FALSE;
@@ -185,7 +188,7 @@ gl_object_editor_get_fill_color (glObjectEditor *editor)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->fill_key_radio))) {
color_node->field_flag = TRUE;
color_node->key =
- gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->fill_key_combo));
+ gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->fill_key_combo));
} else {
color_node->field_flag = FALSE;
color_node->key = NULL;
diff --git a/src/object-editor-image-page.c b/src/object-editor-image-page.c
index 072334e..c655a11 100644
--- a/src/object-editor-image-page.c
+++ b/src/object-editor-image-page.c
@@ -27,7 +27,7 @@
#include <math.h>
#include "prefs.h"
-#include "combo-util.h"
+#include "field-button.h"
#include "builder-util.h"
#include "object-editor-private.h"
@@ -80,10 +80,14 @@ gl_object_editor_prepare_image_page (glObjectEditor *editor)
"img_file_radio", &editor->priv->img_file_radio,
"img_key_radio", &editor->priv->img_key_radio,
"img_file_button", &editor->priv->img_file_button,
- "img_key_combo", &editor->priv->img_key_combo,
+ "img_key_hbox", &editor->priv->img_key_hbox,
NULL);
- gl_combo_util_add_text_model ( GTK_COMBO_BOX(editor->priv->img_key_combo));
+ editor->priv->img_key_combo = gl_field_button_new (NULL);
+ gtk_box_pack_start (GTK_BOX (editor->priv->img_key_hbox),
+ editor->priv->img_key_combo,
+ TRUE, TRUE, 0);
+
/* Modify file button properties. */
add_image_filters_to_chooser (GTK_FILE_CHOOSER (editor->priv->img_file_button));
@@ -177,8 +181,8 @@ gl_object_editor_set_image (glObjectEditor *editor,
gtk_widget_set_sensitive (editor->priv->img_file_button, FALSE);
gtk_widget_set_sensitive (editor->priv->img_key_combo, TRUE);
- gl_combo_util_set_active_text (GTK_COMBO_BOX (editor->priv->img_key_combo),
- text_node->data);
+ gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->img_key_combo),
+ text_node->data);
}
editor->priv->stop_signals = FALSE;
@@ -206,7 +210,7 @@ gl_object_editor_get_image (glObjectEditor *editor)
} else {
text_node->field_flag = TRUE;
text_node->data =
- gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->img_key_combo));
+ gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->img_key_combo));
}
gl_debug (DEBUG_EDITOR, "text_node: field_flag=%d, data=%s",
diff --git a/src/object-editor-line-page.c b/src/object-editor-line-page.c
index 957f262..5622be7 100644
--- a/src/object-editor-line-page.c
+++ b/src/object-editor-line-page.c
@@ -29,7 +29,7 @@
#include "prefs.h"
#include "color-combo.h"
#include "color.h"
-#include "combo-util.h"
+#include "field-button.h"
#include "builder-util.h"
#include "object-editor-private.h"
@@ -71,7 +71,7 @@ gl_object_editor_prepare_line_page (glObjectEditor *editor)
"line_page_vbox", &editor->priv->line_page_vbox,
"line_width_spin", &editor->priv->line_width_spin,
"line_color_hbox", &editor->priv->line_color_hbox,
- "line_key_combo", &editor->priv->line_key_combo,
+ "line_key_hbox", &editor->priv->line_key_hbox,
"line_key_radio", &editor->priv->line_key_radio,
"line_color_radio", &editor->priv->line_color_radio,
NULL);
@@ -83,7 +83,10 @@ gl_object_editor_prepare_line_page (glObjectEditor *editor)
editor->priv->line_color_combo,
FALSE, FALSE, 0);
- gl_combo_util_add_text_model ( GTK_COMBO_BOX(editor->priv->line_key_combo));
+ editor->priv->line_key_combo = gl_field_button_new (NULL);
+ gtk_box_pack_start (GTK_BOX (editor->priv->line_key_hbox),
+ editor->priv->line_key_combo,
+ TRUE, TRUE, 0);
/* Modify widgets based on configuration */
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->line_color_radio), TRUE);
@@ -205,8 +208,8 @@ gl_object_editor_set_line_color (glObjectEditor *editor,
gtk_widget_set_sensitive (editor->priv->line_color_combo, FALSE);
gtk_widget_set_sensitive (editor->priv->line_key_combo, TRUE);
- gl_combo_util_set_active_text (GTK_COMBO_BOX (editor->priv->line_key_combo),
- color_node->key);
+ gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->line_key_combo),
+ color_node->key);
}
editor->priv->stop_signals = FALSE;
@@ -232,7 +235,7 @@ gl_object_editor_get_line_color (glObjectEditor *editor)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->line_key_radio))) {
color_node->field_flag = TRUE;
color_node->key =
- gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->line_key_combo));
+ gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->line_key_combo));
} else {
color_node->field_flag = FALSE;
color_node->key = NULL;
diff --git a/src/object-editor-private.h b/src/object-editor-private.h
index a17efb2..c7ad1da 100644
--- a/src/object-editor-private.h
+++ b/src/object-editor-private.h
@@ -77,6 +77,7 @@ struct _glObjectEditorPrivate {
GtkWidget *fill_page_vbox;
GtkWidget *fill_color_hbox;
GtkWidget *fill_color_combo;
+ GtkWidget *fill_key_hbox;
GtkWidget *fill_key_combo;
GtkWidget *fill_key_radio;
GtkWidget *fill_color_radio;
@@ -87,12 +88,14 @@ struct _glObjectEditorPrivate {
GtkWidget *line_color_hbox;
GtkWidget *line_color_combo;
GtkWidget *line_key_radio;
+ GtkWidget *line_key_hbox;
GtkWidget *line_key_combo;
GtkWidget *img_page_vbox;
GtkWidget *img_file_radio;
GtkWidget *img_key_radio;
GtkWidget *img_file_button;
+ GtkWidget *img_key_hbox;
GtkWidget *img_key_combo;
GtkWidget *text_page_vbox;
@@ -105,6 +108,7 @@ struct _glObjectEditorPrivate {
GtkWidget *text_color_hbox;
GtkWidget *text_color_combo;
GtkWidget *text_color_key_radio;
+ GtkWidget *text_color_key_hbox;
GtkWidget *text_color_key_combo;
GtkWidget *text_left_toggle;
GtkWidget *text_center_toggle;
@@ -125,12 +129,14 @@ struct _glObjectEditorPrivate {
GtkWidget *bc_color_hbox;
GtkWidget *bc_color_combo;
GtkWidget *bc_key_radio;
+ GtkWidget *bc_key_hbox;
GtkWidget *bc_key_combo;
GtkWidget *data_page_vbox;
GtkWidget *data_literal_radio;
GtkWidget *data_key_radio;
GtkWidget *data_text_entry;
+ GtkWidget *data_key_hbox;
GtkWidget *data_key_combo;
GtkWidget *data_format_label;
GtkWidget *data_ex_label;
@@ -149,6 +155,7 @@ struct _glObjectEditorPrivate {
GtkWidget *shadow_key_radio;
GtkWidget *shadow_color_hbox;
GtkWidget *shadow_color_combo;
+ GtkWidget *shadow_key_hbox;
GtkWidget *shadow_key_combo;
GtkWidget *shadow_opacity_spin;
gdouble shadow_x;
diff --git a/src/object-editor-shadow-page.c b/src/object-editor-shadow-page.c
index 4afadc9..6f9b062 100644
--- a/src/object-editor-shadow-page.c
+++ b/src/object-editor-shadow-page.c
@@ -29,7 +29,7 @@
#include "prefs.h"
#include "color-combo.h"
#include "color.h"
-#include "combo-util.h"
+#include "field-button.h"
#include "builder-util.h"
#include "units-util.h"
@@ -86,7 +86,7 @@ gl_object_editor_prepare_shadow_page (glObjectEditor *editor)
"shadow_color_radio", &editor->priv->shadow_color_radio,
"shadow_key_radio", &editor->priv->shadow_key_radio,
"shadow_color_hbox", &editor->priv->shadow_color_hbox,
- "shadow_key_combo", &editor->priv->shadow_key_combo,
+ "shadow_key_hbox", &editor->priv->shadow_key_hbox,
"shadow_opacity_spin", &editor->priv->shadow_opacity_spin,
NULL);
@@ -96,7 +96,11 @@ gl_object_editor_prepare_shadow_page (glObjectEditor *editor)
gtk_container_add (GTK_CONTAINER (editor->priv->shadow_color_hbox),
editor->priv->shadow_color_combo);
- gl_combo_util_add_text_model ( GTK_COMBO_BOX(editor->priv->shadow_key_combo));
+ editor->priv->shadow_key_combo = gl_field_button_new (NULL);
+ gtk_box_pack_start (GTK_BOX (editor->priv->shadow_key_hbox),
+ editor->priv->shadow_key_combo,
+ TRUE, TRUE, 0);
+
/* Get configuration information */
units = gl_prefs_model_get_units (gl_prefs);
@@ -245,8 +249,8 @@ gl_object_editor_set_shadow_color (glObjectEditor *editor,
gtk_widget_set_sensitive (editor->priv->shadow_color_combo, FALSE);
gtk_widget_set_sensitive (editor->priv->shadow_key_combo, TRUE);
- gl_combo_util_set_active_text (GTK_COMBO_BOX (editor->priv->shadow_key_combo),
- color_node->key);
+ gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->shadow_key_combo),
+ color_node->key);
}
editor->priv->stop_signals = FALSE;
@@ -372,7 +376,7 @@ gl_object_editor_get_shadow_color (glObjectEditor *editor)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (editor->priv->shadow_key_radio))) {
color_node->field_flag = TRUE;
color_node->key =
- gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->shadow_key_combo));
+ gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->shadow_key_combo));
} else {
color_node->field_flag = FALSE;
color_node->key = NULL;
diff --git a/src/object-editor-text-page.c b/src/object-editor-text-page.c
index 8da1b87..b19d212 100644
--- a/src/object-editor-text-page.c
+++ b/src/object-editor-text-page.c
@@ -31,7 +31,7 @@
#include "color.h"
#include "font-combo.h"
#include "font-util.h"
-#include "combo-util.h"
+#include "field-button.h"
#include "builder-util.h"
#include "object-editor-private.h"
@@ -81,7 +81,7 @@ gl_object_editor_prepare_text_page (glObjectEditor *editor)
"text_color_hbox", &editor->priv->text_color_hbox,
"text_color_radio", &editor->priv->text_color_radio,
"text_color_key_radio", &editor->priv->text_color_key_radio,
- "text_color_key_combo", &editor->priv->text_color_key_combo,
+ "text_color_key_hbox", &editor->priv->text_color_key_hbox,
"text_left_toggle", &editor->priv->text_left_toggle,
"text_center_toggle", &editor->priv->text_center_toggle,
"text_right_toggle", &editor->priv->text_right_toggle,
@@ -101,7 +101,11 @@ gl_object_editor_prepare_text_page (glObjectEditor *editor)
editor->priv->text_color_combo,
FALSE, FALSE, 0);
- gl_combo_util_add_text_model ( GTK_COMBO_BOX(editor->priv->text_color_key_combo));
+ editor->priv->text_color_key_combo = gl_field_button_new (NULL);
+ gtk_box_pack_start (GTK_BOX (editor->priv->text_color_key_hbox),
+ editor->priv->text_color_key_combo,
+ TRUE, TRUE, 0);
+
/* Modify widgets */
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editor->priv->text_color_radio), TRUE);
@@ -488,7 +492,7 @@ gl_object_editor_set_text_color (glObjectEditor *editor,
gtk_widget_set_sensitive (editor->priv->text_color_combo, FALSE);
gtk_widget_set_sensitive (editor->priv->text_color_key_combo, TRUE);
- gl_combo_util_set_active_text (GTK_COMBO_BOX (editor->priv->text_color_key_combo), "");
+ gl_field_button_set_key (GL_FIELD_BUTTON (editor->priv->text_color_key_combo), "");
}
editor->priv->stop_signals = FALSE;
@@ -515,7 +519,7 @@ gl_object_editor_get_text_color (glObjectEditor *editor)
color_node->field_flag = TRUE;
color_node->color = gl_prefs_model_get_default_text_color (gl_prefs);
color_node->key =
- gtk_combo_box_get_active_text (GTK_COMBO_BOX (editor->priv->text_color_key_combo));
+ gl_field_button_get_key (GL_FIELD_BUTTON (editor->priv->text_color_key_combo));
} else {
color_node->field_flag = FALSE;
color_node->key = NULL;
diff --git a/src/object-editor.c b/src/object-editor.c
index dd5d5cc..ed5f676 100644
--- a/src/object-editor.c
+++ b/src/object-editor.c
@@ -580,7 +580,6 @@ set_key_names (glObjectEditor *editor,
glMerge *merge)
{
GList *keys;
- GtkWidget *combo;
GtkWidget *button;
gboolean fixed_flag;
gboolean state;
@@ -693,29 +692,29 @@ set_key_names (glObjectEditor *editor,
keys = g_list_append (keys, g_strdup (""));
}
- combo = editor->priv->img_key_combo;
- gl_combo_util_set_strings (GTK_COMBO_BOX (combo), keys);
+ button = editor->priv->img_key_combo;
+ gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
button = editor->priv->edit_insert_field_button;
gl_field_button_set_keys (GL_FIELD_BUTTON(button), keys);
- combo = editor->priv->data_key_combo;
- gl_combo_util_set_strings (GTK_COMBO_BOX (combo), keys);
+ button = editor->priv->data_key_combo;
+ gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
- combo = editor->priv->fill_key_combo;
- gl_combo_util_set_strings (GTK_COMBO_BOX (combo), keys);
+ button = editor->priv->fill_key_combo;
+ gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
- combo = editor->priv->text_color_key_combo;
- gl_combo_util_set_strings (GTK_COMBO_BOX (combo), keys);
+ button = editor->priv->text_color_key_combo;
+ gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
- combo = editor->priv->line_key_combo;
- gl_combo_util_set_strings (GTK_COMBO_BOX (combo), keys);
+ button = editor->priv->line_key_combo;
+ gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
- combo = editor->priv->bc_key_combo;
- gl_combo_util_set_strings (GTK_COMBO_BOX (combo), keys);
+ button = editor->priv->bc_key_combo;
+ gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
- combo = editor->priv->shadow_key_combo;
- gl_combo_util_set_strings (GTK_COMBO_BOX (combo), keys);
+ button = editor->priv->shadow_key_combo;
+ gl_field_button_set_keys (GL_FIELD_BUTTON (button), keys);
gl_merge_free_key_list (&keys);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]