summaryrefslogtreecommitdiff
path: root/gladeui/glade-editor-property.c
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2010-12-30 01:15:19 +0900
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2010-12-30 01:15:19 +0900
commitecabb8754542fa993a6812ff33f4b29e804da136 (patch)
treee4d28bda1a5dbecdf4920cf4aa2ca97d729d5394 /gladeui/glade-editor-property.c
parent159aa6f695197e17b88b53ae115ed4052e7e8ab8 (diff)
downloadglade-ecabb8754542fa993a6812ff33f4b29e804da136.tar.gz
* Whole tree updated to remove all notion of project conversions and dual project formats,
no more libglade.
Diffstat (limited to 'gladeui/glade-editor-property.c')
-rw-r--r--gladeui/glade-editor-property.c536
1 files changed, 54 insertions, 482 deletions
diff --git a/gladeui/glade-editor-property.c b/gladeui/glade-editor-property.c
index dea25c46..f9334a7e 100644
--- a/gladeui/glade-editor-property.c
+++ b/gladeui/glade-editor-property.c
@@ -85,22 +85,16 @@ static void
glade_editor_property_commit_common (GladeEditorProperty *eprop,
GValue *value)
{
- GladeProject *project;
- GladeProjectFormat fmt;
-
if (eprop->use_command == FALSE)
glade_property_set_value (eprop->property, value);
else
glade_command_set_property_value (eprop->property, value);
- project = glade_widget_get_project (eprop->property->widget);
- fmt = glade_project_get_format (project);
-
/* If the value was denied by a verify function, we'll have to
* reload the real value.
*/
if (glade_property_class_compare (eprop->property->klass,
- eprop->property->value, value, fmt) != 0)
+ eprop->property->value, value) != 0)
GLADE_EDITOR_PROPERTY_GET_CLASS (eprop)->load (eprop, eprop->property);
else
/* publish a value change to those interested */
@@ -1157,7 +1151,6 @@ glade_eprop_color_finalize (GObject *object)
static void
glade_eprop_color_load (GladeEditorProperty *eprop, GladeProperty *property)
{
- GladeProjectFormat fmt;
GladeEPropColor *eprop_color = GLADE_EPROP_COLOR (eprop);
GdkColor *color;
gchar *text;
@@ -1167,11 +1160,9 @@ glade_eprop_color_load (GladeEditorProperty *eprop, GladeProperty *property)
if (property)
{
- fmt = glade_project_get_format (property->widget->project);
-
if ((text = glade_widget_adaptor_string_from_value
(GLADE_WIDGET_ADAPTOR (eprop->klass->handle),
- eprop->klass, property->value, fmt)) != NULL)
+ eprop->klass, property->value)) != NULL)
{
gtk_entry_set_text (GTK_ENTRY (eprop_color->entry), text);
g_free (text);
@@ -1475,7 +1466,6 @@ glade_eprop_text_finalize (GObject *object)
static void
glade_eprop_text_load (GladeEditorProperty *eprop, GladeProperty *property)
{
- GladeProjectFormat fmt;
GladeEPropText *eprop_text = GLADE_EPROP_TEXT (eprop);
/* Chain up first */
@@ -1483,8 +1473,6 @@ glade_eprop_text_load (GladeEditorProperty *eprop, GladeProperty *property)
if (property == NULL) return;
- fmt = glade_project_get_format (property->widget->project);
-
if (GTK_IS_COMBO_BOX (eprop_text->text_entry))
{
if (gtk_combo_box_get_has_entry (GTK_COMBO_BOX (eprop_text->text_entry)))
@@ -1529,7 +1517,7 @@ glade_eprop_text_load (GladeEditorProperty *eprop, GladeProperty *property)
{
gchar *text = glade_widget_adaptor_string_from_value
(GLADE_WIDGET_ADAPTOR (property->klass->handle),
- property->klass, property->value, fmt);
+ property->klass, property->value);
gtk_text_buffer_set_text (buffer, text ? text : "", -1);
g_free (text);
}
@@ -1621,11 +1609,9 @@ glade_eprop_text_buffer_changed (GtkTextBuffer *buffer,
/**
* glade_editor_property_show_i18n_dialog:
* @parent: The parent widget for the dialog.
- * @fmt: the #GladeProjectFormat
* @text: A read/write pointer to the text property
* @context: A read/write pointer to the translation context
* @comment: A read/write pointer to the translator comment
- * @has_context: A read/write pointer to the context setting (libglade only)
* @translatable: A read/write pointer to the translatable setting]
*
* Runs a dialog and updates the provided values.
@@ -1634,11 +1620,9 @@ glade_eprop_text_buffer_changed (GtkTextBuffer *buffer,
*/
gboolean
glade_editor_property_show_i18n_dialog (GtkWidget *parent,
- GladeProjectFormat fmt,
gchar **text,
gchar **context,
gchar **comment,
- gboolean *has_context,
gboolean *translatable)
{
GtkWidget *dialog;
@@ -1648,11 +1632,11 @@ glade_editor_property_show_i18n_dialog (GtkWidget *parent,
GtkWidget *alignment;
GtkWidget *text_view, *comment_view, *context_view;
GtkTextBuffer *text_buffer, *comment_buffer, *context_buffer = NULL;
- GtkWidget *translatable_button, *context_button;
+ GtkWidget *translatable_button;
GtkWidget *content_area, *action_area;
gint res;
- g_return_val_if_fail (text && context && comment && translatable && has_context, FALSE);
+ g_return_val_if_fail (text && context && comment && translatable, FALSE);
dialog = gtk_dialog_new_with_buttons (_("Edit Text"),
parent ? GTK_WINDOW (gtk_widget_get_toplevel (parent)) : NULL,
@@ -1727,53 +1711,42 @@ glade_editor_property_show_i18n_dialog (GtkWidget *parent,
gtk_widget_set_tooltip_text (translatable_button,
_("Whether this property is translatable"));
- /* Has Context */
- context_button = gtk_check_button_new_with_mnemonic (_("_Has context prefix"));
- gtk_box_pack_start (GTK_BOX (hbox), context_button, FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (context_button), *has_context);
- gtk_widget_set_tooltip_text (context_button,
- _("Whether the translatable string has a context prefix"));
- if (fmt == GLADE_PROJECT_FORMAT_LIBGLADE)
- gtk_widget_show (context_button);
/* Context. */
- if (fmt != GLADE_PROJECT_FORMAT_LIBGLADE)
- {
- alignment = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 0, 0, 0);
- gtk_widget_show (alignment);
-
- label = gtk_label_new_with_mnemonic (_("Conte_xt for translation:"));
- gtk_widget_show (label);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
- gtk_container_add (GTK_CONTAINER (alignment), label);
- gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0);
- gtk_widget_set_tooltip_text (alignment,
- "XXX Some explanation about translation context please ???");
-
- sw = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (sw);
- gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN);
-
- context_view = gtk_text_view_new ();
- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (context_view), GTK_WRAP_WORD);
- gtk_widget_show (context_view);
-
- gtk_label_set_mnemonic_widget (GTK_LABEL (label), context_view);
-
- gtk_container_add (GTK_CONTAINER (sw), context_view);
-
- context_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (context_view));
+ alignment = gtk_alignment_new (0.5, 0.5, 1, 1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 0, 0, 0);
+ gtk_widget_show (alignment);
+
+ label = gtk_label_new_with_mnemonic (_("Conte_xt for translation:"));
+ gtk_widget_show (label);
+ gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+ gtk_container_add (GTK_CONTAINER (alignment), label);
+ gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0);
+ gtk_widget_set_tooltip_text (alignment,
+ "XXX Some explanation about translation context please ???");
- if (*context)
- {
- gtk_text_buffer_set_text (context_buffer,
- *context,
- -1);
- }
+ sw = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_show (sw);
+ gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN);
+
+ context_view = gtk_text_view_new ();
+ gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (context_view), GTK_WRAP_WORD);
+ gtk_widget_show (context_view);
+
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), context_view);
+
+ gtk_container_add (GTK_CONTAINER (sw), context_view);
+
+ context_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (context_view));
+
+ if (*context)
+ {
+ gtk_text_buffer_set_text (context_buffer,
+ *context,
+ -1);
}
/* Comments. */
@@ -1821,7 +1794,6 @@ glade_editor_property_show_i18n_dialog (GtkWidget *parent,
/* get the new values for translatable, has_context, and comment */
*translatable = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (translatable_button));
- *has_context = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (context_button));
/* Comment */
gtk_text_buffer_get_bounds (comment_buffer, &start, &end);
@@ -1842,15 +1814,12 @@ glade_editor_property_show_i18n_dialog (GtkWidget *parent,
}
/* Context */
- if (fmt != GLADE_PROJECT_FORMAT_LIBGLADE)
+ gtk_text_buffer_get_bounds (context_buffer, &start, &end);
+ *context = gtk_text_buffer_get_text (context_buffer, &start, &end, TRUE);
+ if (*context[0] == '\0')
{
- gtk_text_buffer_get_bounds (context_buffer, &start, &end);
- *context = gtk_text_buffer_get_text (context_buffer, &start, &end, TRUE);
- if (*context[0] == '\0')
- {
- g_free (*context);
- *context = NULL;
- }
+ g_free (*context);
+ *context = NULL;
}
gtk_widget_destroy (dialog);
@@ -1865,21 +1834,14 @@ static void
glade_eprop_text_show_i18n_dialog (GtkWidget *entry,
GladeEditorProperty *eprop)
{
- GladeProject *project;
- GladeProjectFormat fmt;
gchar *text = g_value_dup_string (eprop->property->value);
gchar *context = g_strdup (glade_property_i18n_get_context (eprop->property));
gchar *comment = g_strdup (glade_property_i18n_get_comment (eprop->property));
gboolean translatable = glade_property_i18n_get_translatable (eprop->property);
- gboolean has_context = glade_property_i18n_get_has_context (eprop->property);
-
- project = eprop->property->widget->project;
- fmt = glade_project_get_format (project);
- if (glade_editor_property_show_i18n_dialog (entry, fmt, &text, &context, &comment,
- &has_context, &translatable))
+ if (glade_editor_property_show_i18n_dialog (entry, &text, &context, &comment, &translatable))
{
- glade_command_set_i18n (eprop->property, translatable, has_context, context, comment);
+ glade_command_set_i18n (eprop->property, translatable, context, comment);
glade_eprop_text_changed_common (eprop, text, eprop->use_command);
glade_editor_property_load (eprop, eprop->property);
@@ -1947,13 +1909,9 @@ static void
glade_eprop_text_show_resource_dialog (GtkWidget *entry,
GladeEditorProperty *eprop)
{
- GladeProject *project;
- GladeProjectFormat fmt;
+ GladeProject *project = eprop->property->widget->project;
gchar *text = NULL;
- project = eprop->property->widget->project;
- fmt = glade_project_get_format (project);
-
if (glade_editor_property_show_resource_dialog (project, entry, &text))
{
glade_eprop_text_changed_common (eprop, text, eprop->use_command);
@@ -2817,15 +2775,12 @@ glade_eprop_object_show_dialog (GtkWidget *dialog_button,
project = glade_widget_get_project (eprop->property->widget);
parent = gtk_widget_get_toplevel (GTK_WIDGET (eprop));
- if (glade_project_get_format (project) != GLADE_PROJECT_FORMAT_LIBGLADE)
- {
- if (eprop->property->klass->create_type)
- create_adaptor = glade_widget_adaptor_get_by_name (eprop->property->klass->create_type);
- if (!create_adaptor &&
- G_TYPE_IS_INSTANTIATABLE (eprop->klass->pspec->value_type) &&
- !G_TYPE_IS_ABSTRACT (eprop->klass->pspec->value_type))
- create_adaptor = glade_widget_adaptor_get_by_type (eprop->klass->pspec->value_type);
- }
+ if (eprop->property->klass->create_type)
+ create_adaptor = glade_widget_adaptor_get_by_name (eprop->property->klass->create_type);
+ if (!create_adaptor &&
+ G_TYPE_IS_INSTANTIATABLE (eprop->klass->pspec->value_type) &&
+ !G_TYPE_IS_ABSTRACT (eprop->klass->pspec->value_type))
+ create_adaptor = glade_widget_adaptor_get_by_type (eprop->klass->pspec->value_type);
if (create_adaptor)
{
@@ -3024,7 +2979,6 @@ glade_eprop_object_show_dialog (GtkWidget *dialog_button,
static void
glade_eprop_object_load (GladeEditorProperty *eprop, GladeProperty *property)
{
- GladeProjectFormat fmt;
GladeEPropObject *eprop_object = GLADE_EPROP_OBJECT (eprop);
gchar *obj_name;
@@ -3033,11 +2987,9 @@ glade_eprop_object_load (GladeEditorProperty *eprop, GladeProperty *property)
if (property == NULL) return;
- fmt = glade_project_get_format (property->widget->project);
-
if ((obj_name = glade_widget_adaptor_string_from_value
(GLADE_WIDGET_ADAPTOR (eprop->klass->handle),
- eprop->klass, property->value, fmt)) != NULL)
+ eprop->klass, property->value)) != NULL)
{
gtk_entry_set_text (GTK_ENTRY (eprop_object->entry), obj_name);
g_free (obj_name);
@@ -3098,7 +3050,6 @@ glade_eprop_objects_finalize (GObject *object)
static void
glade_eprop_objects_load (GladeEditorProperty *eprop, GladeProperty *property)
{
- GladeProjectFormat fmt;
GladeEPropObjects *eprop_objects = GLADE_EPROP_OBJECTS (eprop);
gchar *obj_name;
@@ -3107,11 +3058,9 @@ glade_eprop_objects_load (GladeEditorProperty *eprop, GladeProperty *property)
if (property == NULL) return;
- fmt = glade_project_get_format (property->widget->project);
-
if ((obj_name = glade_widget_adaptor_string_from_value
(GLADE_WIDGET_ADAPTOR (eprop->klass->handle),
- eprop->klass, property->value, fmt)) != NULL)
+ eprop->klass, property->value)) != NULL)
{
gtk_entry_set_text (GTK_ENTRY (eprop_objects->entry), obj_name);
g_free (obj_name);
@@ -3272,383 +3221,6 @@ glade_eprop_objects_create_input (GladeEditorProperty *eprop)
return hbox;
}
-
-/*******************************************************************************
- GladeEditorPropertyAdjustmentClass
- *******************************************************************************/
-typedef struct {
- GladeEditorProperty parent_instance;
-
- GtkWidget *notebook;
-
- GtkWidget *libglade;
- GtkWidget *entry;
-
- GtkWidget *value, *lower, *upper, *step_increment, *page_increment, *page_size;
- GtkAdjustment *value_adj;
- struct
- {
- gulong value, lower, upper, step_increment, page_increment, page_size;
- }ids;
-} GladeEPropAdjustment;
-
-GLADE_MAKE_EPROP (GladeEPropAdjustment, glade_eprop_adjustment)
-#define GLADE_EPROP_ADJUSTMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_ADJUSTMENT, GladeEPropAdjustment))
-#define GLADE_EPROP_ADJUSTMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_ADJUSTMENT, GladeEPropAdjustmentClass))
-#define GLADE_IS_EPROP_ADJUSTMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_ADJUSTMENT))
-#define GLADE_IS_EPROP_ADJUSTMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_ADJUSTMENT))
-#define GLADE_EPROP_ADJUSTMENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_ADJUSTMENT, GladeEPropAdjustmentClass))
-
-static void
-glade_eprop_adjustment_finalize (GObject *object)
-{
- /* Chain up */
- G_OBJECT_CLASS (editor_property_class)->finalize (object);
-}
-
-typedef struct _EPropAdjIdle EPropAdjIdleData;
-
-struct _EPropAdjIdle
-{
- GladeEditorProperty *eprop;
- gdouble value;
-};
-
-static gboolean
-glade_eprop_adj_set_value_idle (gpointer p)
-{
- EPropAdjIdleData *data = (EPropAdjIdleData *) p;
- GladeEPropAdjustment *eprop_adj = GLADE_EPROP_ADJUSTMENT (data->eprop);
-
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->value), data->value);
-
- g_free (p);
-
- return FALSE;
-}
-
-static void
-glade_eprop_adj_value_changed (GtkAdjustment *adj, GladeEditorProperty *eprop)
-{
- EPropAdjIdleData *data;
-
- g_signal_handlers_disconnect_by_func (adj, glade_eprop_adj_value_changed, eprop);
-
- /* Don`t do anything if the loaded property is not the same */
- if (adj != g_value_get_object (eprop->property->value)) return;
-
- data = g_new (EPropAdjIdleData, 1);
-
- data->eprop = eprop;
- data->value = gtk_adjustment_get_value (adj);
-
- /* Update GladeEPropAdjustment value spinbutton in an idle funtion */
- g_idle_add (glade_eprop_adj_set_value_idle, data);
-
- /* Set adjustment to the old value */
- gtk_adjustment_set_value (adj, gtk_spin_button_get_value (GTK_SPIN_BUTTON (
- GLADE_EPROP_ADJUSTMENT (eprop)->value)));
-}
-
-static void
-glade_eprop_adjustment_load (GladeEditorProperty *eprop, GladeProperty *property)
-{
- GladeEPropAdjustment *eprop_adj = GLADE_EPROP_ADJUSTMENT (eprop);
- GladeProjectFormat fmt;
- GObject *object;
- GtkAdjustment *adj = NULL;
-
- /* Chain up first */
- editor_property_class->load (eprop, property);
-
- if (property == NULL) return;
-
- fmt = glade_project_get_format (property->widget->project);
-
- gtk_widget_hide (eprop_adj->libglade);
-
- if (fmt == GLADE_PROJECT_FORMAT_LIBGLADE)
- {
- object = g_value_get_object (property->value);
-
- if (object)
- {
- adj = GTK_ADJUSTMENT (object);
-
- /* Keep track of external adjustment changes */
- g_signal_connect (object, "value-changed",
- G_CALLBACK (glade_eprop_adj_value_changed),
- eprop);
-
- /* Update adjustment's values */
- gtk_adjustment_set_value (eprop_adj->value_adj, gtk_adjustment_get_value (adj));
- gtk_adjustment_set_lower (eprop_adj->value_adj, gtk_adjustment_get_lower (adj));
- gtk_adjustment_set_upper (eprop_adj->value_adj, gtk_adjustment_get_upper (adj));
- gtk_adjustment_set_step_increment (eprop_adj->value_adj, gtk_adjustment_get_step_increment (adj));
- gtk_adjustment_set_page_increment (eprop_adj->value_adj, gtk_adjustment_get_page_increment (adj));
- gtk_adjustment_set_page_size (eprop_adj->value_adj, gtk_adjustment_get_page_size (adj));
- }
- else
- {
- gtk_adjustment_set_value (eprop_adj->value_adj, 0.0);
- gtk_adjustment_set_lower (eprop_adj->value_adj, 0.0);
- gtk_adjustment_set_upper (eprop_adj->value_adj, 100.0);
- gtk_adjustment_set_step_increment (eprop_adj->value_adj, 1);
- gtk_adjustment_set_page_increment (eprop_adj->value_adj, 10);
- gtk_adjustment_set_page_size (eprop_adj->value_adj, 0);
- }
-
- /* Block Handlers */
- g_signal_handler_block (eprop_adj->value, eprop_adj->ids.value);
- g_signal_handler_block (eprop_adj->lower, eprop_adj->ids.lower);
- g_signal_handler_block (eprop_adj->upper, eprop_adj->ids.upper);
- g_signal_handler_block (eprop_adj->step_increment, eprop_adj->ids.step_increment);
- g_signal_handler_block (eprop_adj->page_increment, eprop_adj->ids.page_increment);
- g_signal_handler_block (eprop_adj->page_size, eprop_adj->ids.page_size);
-
- /* Update spinbuttons values */
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->value),
- gtk_adjustment_get_value (eprop_adj->value_adj));
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->lower),
- gtk_adjustment_get_lower (eprop_adj->value_adj));
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->upper),
- gtk_adjustment_get_upper (eprop_adj->value_adj));
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->step_increment),
- gtk_adjustment_get_step_increment (eprop_adj->value_adj));
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->page_increment),
- gtk_adjustment_get_page_increment (eprop_adj->value_adj));
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (eprop_adj->page_size),
- gtk_adjustment_get_page_size (eprop_adj->value_adj));
-
- /* Unblock Handlers */
- g_signal_handler_unblock (eprop_adj->value, eprop_adj->ids.value);
- g_signal_handler_unblock (eprop_adj->lower, eprop_adj->ids.lower);
- g_signal_handler_unblock (eprop_adj->upper, eprop_adj->ids.upper);
- g_signal_handler_unblock (eprop_adj->step_increment, eprop_adj->ids.step_increment);
- g_signal_handler_unblock (eprop_adj->page_increment, eprop_adj->ids.page_increment);
- g_signal_handler_unblock (eprop_adj->page_size, eprop_adj->ids.page_size);
-
- gtk_widget_show (eprop_adj->libglade);
- gtk_notebook_set_current_page (GTK_NOTEBOOK (eprop_adj->notebook), 0);
- }
- else
- {
- gchar *obj_name;
-
- fmt = glade_project_get_format (property->widget->project);
-
- if ((obj_name = glade_widget_adaptor_string_from_value
- (GLADE_WIDGET_ADAPTOR (eprop->klass->handle),
- eprop->klass, property->value, fmt)) != NULL)
- {
- gtk_entry_set_text (GTK_ENTRY (eprop_adj->entry), obj_name);
- g_free (obj_name);
- }
- else
- gtk_entry_set_text (GTK_ENTRY (eprop_adj->entry), "");
-
- gtk_notebook_set_current_page (GTK_NOTEBOOK (eprop_adj->notebook), 1);
- }
-
- gtk_widget_queue_resize (eprop_adj->notebook);
-}
-
-static GtkAdjustment *
-glade_eprop_adjustment_dup_adj (GladeEditorProperty *eprop)
-{
- GtkAdjustment *adj;
- GObject *object;
-
- object = g_value_get_object (eprop->property->value);
- if (object == NULL)
- return GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 100.0,
- 1.0, 10.0, 10.0));
-
- adj = GTK_ADJUSTMENT (object);
-
- return GTK_ADJUSTMENT (gtk_adjustment_new (gtk_adjustment_get_value (adj),
- gtk_adjustment_get_lower (adj),
- gtk_adjustment_get_upper (adj),
- gtk_adjustment_get_step_increment (adj),
- gtk_adjustment_get_page_increment (adj),
- gtk_adjustment_get_page_size (adj)));
-}
-
-static void
-glade_eprop_adjustment_prop_changed_common (GladeEditorProperty *eprop,
- GtkAdjustment *adjustment)
-{
- GValue value = {0, };
-
- g_value_init (&value, GTK_TYPE_ADJUSTMENT);
-
- if (gtk_adjustment_get_value (adjustment) == 0.00 &&
- gtk_adjustment_get_lower (adjustment) == 0.00 &&
- gtk_adjustment_get_upper (adjustment) == 100.00 &&
- gtk_adjustment_get_step_increment (adjustment) == 1.00 &&
- gtk_adjustment_get_page_increment (adjustment) == 10.00 &&
- gtk_adjustment_get_page_size (adjustment) == 10.00)
- {
- g_value_set_object (&value, NULL);
- }
- else
- g_value_set_object (&value, G_OBJECT (adjustment));
-
- glade_editor_property_commit_no_callback (eprop, &value);
-
- g_value_unset (&value);
-}
-
-#define GLADE_EPROP_ADJUSTMENT_DEFINE_VALUE_CHANGED_FUNC(p) \
-static void \
-glade_eprop_adjustment_ ## p ## _changed (GtkSpinButton *spin, \
- GladeEditorProperty *eprop) \
-{ \
- GtkAdjustment *adj = glade_eprop_adjustment_dup_adj (eprop); \
- if (adj == NULL) return; \
- gtk_adjustment_set_ ## p (adj, gtk_spin_button_get_value (spin)); \
- glade_eprop_adjustment_prop_changed_common (eprop, adj); \
-}
-
-GLADE_EPROP_ADJUSTMENT_DEFINE_VALUE_CHANGED_FUNC (value)
-GLADE_EPROP_ADJUSTMENT_DEFINE_VALUE_CHANGED_FUNC (lower)
-GLADE_EPROP_ADJUSTMENT_DEFINE_VALUE_CHANGED_FUNC (upper)
-GLADE_EPROP_ADJUSTMENT_DEFINE_VALUE_CHANGED_FUNC (step_increment)
-GLADE_EPROP_ADJUSTMENT_DEFINE_VALUE_CHANGED_FUNC (page_increment)
-GLADE_EPROP_ADJUSTMENT_DEFINE_VALUE_CHANGED_FUNC (page_size)
-
-#define GLADE_EPROP_ADJUSTMENT_CONNECT(object, prop) \
-g_signal_connect (object, "value_changed", \
-G_CALLBACK (glade_eprop_adjustment_ ## prop ## _changed), eprop);
-
-static void
-glade_eprop_adjustment_table_add_label (GtkTable *table,
- gint pos,
- gchar *label,
- gchar *tip)
-{
- GtkWidget *widget;
-
- widget = gtk_label_new (label);
- gtk_misc_set_alignment (GTK_MISC (widget), 1, 0);
-
- gtk_widget_set_tooltip_text (widget, tip);
-
- gtk_table_attach_defaults (table, widget, 0, 1, pos, pos + 1);
-}
-
-static GtkWidget *
-glade_eprop_adjustment_create_input_libglade (GladeEditorProperty *eprop)
-{
- GladeEPropAdjustment *eprop_adj = GLADE_EPROP_ADJUSTMENT (eprop);
- GtkWidget *widget;
- GtkTable *table;
-
- eprop_adj->value = gtk_spin_button_new_with_range (-G_MAXDOUBLE, G_MAXDOUBLE, 1);
- gtk_spin_button_set_digits (GTK_SPIN_BUTTON (eprop_adj->value), 2);
- eprop_adj->ids.value = GLADE_EPROP_ADJUSTMENT_CONNECT (eprop_adj->value, value);
- eprop_adj->value_adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (eprop_adj->value));
-
- eprop_adj->lower = gtk_spin_button_new_with_range (-G_MAXDOUBLE, G_MAXDOUBLE, 1);
- gtk_spin_button_set_digits (GTK_SPIN_BUTTON (eprop_adj->lower), 2);
- eprop_adj->ids.lower = GLADE_EPROP_ADJUSTMENT_CONNECT (eprop_adj->lower, lower);
-
- eprop_adj->upper = gtk_spin_button_new_with_range (-G_MAXDOUBLE, G_MAXDOUBLE, 1);
- gtk_spin_button_set_digits (GTK_SPIN_BUTTON (eprop_adj->upper), 2);
- eprop_adj->ids.upper = GLADE_EPROP_ADJUSTMENT_CONNECT (eprop_adj->upper, upper);
-
- eprop_adj->step_increment = gtk_spin_button_new_with_range (0, G_MAXDOUBLE, 1);
- gtk_spin_button_set_digits (GTK_SPIN_BUTTON (eprop_adj->step_increment), 2);
- eprop_adj->ids.step_increment = GLADE_EPROP_ADJUSTMENT_CONNECT (eprop_adj->step_increment, step_increment);
-
- eprop_adj->page_increment = gtk_spin_button_new_with_range (0, G_MAXDOUBLE, 1);
- gtk_spin_button_set_digits (GTK_SPIN_BUTTON (eprop_adj->page_increment), 2);
- eprop_adj->ids.page_increment = GLADE_EPROP_ADJUSTMENT_CONNECT (eprop_adj->page_increment, page_increment);
-
- eprop_adj->page_size = gtk_spin_button_new_with_range (0, G_MAXDOUBLE, 1);
- gtk_spin_button_set_digits (GTK_SPIN_BUTTON (eprop_adj->page_size), 2);
- eprop_adj->ids.page_size = GLADE_EPROP_ADJUSTMENT_CONNECT (eprop_adj->page_size, page_size);
-
- /* Eprop */
- widget = gtk_table_new (6, 2, FALSE);
- table = GTK_TABLE (widget);
- gtk_table_set_col_spacings (table, 4);
-
- glade_eprop_adjustment_table_add_label (table, 0, _("Value:"),
- _("The current value"));
-
- glade_eprop_adjustment_table_add_label (table, 1, _("Lower:"),
- _("The minimum value"));
-
- glade_eprop_adjustment_table_add_label (table, 2, _("Upper:"),
- _("The maximum value"));
-
- glade_eprop_adjustment_table_add_label (table, 3, _("Step inc:"),
- _("The increment to use to make minor changes to the value"));
-
- glade_eprop_adjustment_table_add_label (table, 4, _("Page inc:"),
- _("The increment to use to make major changes to the value"));
-
- glade_eprop_adjustment_table_add_label (table, 5, _("Page size:"),
- _("The page size (in a GtkScrollbar this is the size of the area which is currently visible)"));
-
- gtk_table_attach_defaults (table, eprop_adj->value, 1, 2, 0, 1);
- gtk_table_attach_defaults (table, eprop_adj->lower, 1, 2, 1, 2);
- gtk_table_attach_defaults (table, eprop_adj->upper, 1, 2, 2, 3);
- gtk_table_attach_defaults (table, eprop_adj->step_increment, 1, 2, 3, 4);
- gtk_table_attach_defaults (table, eprop_adj->page_increment, 1, 2, 4, 5);
- gtk_table_attach_defaults (table, eprop_adj->page_size, 1, 2, 5, 6);
-
- gtk_widget_show_all (widget);
-
- return widget;
-}
-
-static GtkWidget *
-glade_eprop_adjustment_create_input_builder (GladeEditorProperty *eprop)
-{
- GladeEPropAdjustment *eprop_adj = GLADE_EPROP_ADJUSTMENT (eprop);
- GtkWidget *hbox;
- GtkWidget *button;
-
- hbox = gtk_hbox_new (FALSE, 0);
- eprop_adj->entry = gtk_entry_new ();
- gtk_editable_set_editable (GTK_EDITABLE (eprop_adj->entry), FALSE);
- gtk_widget_show (eprop_adj->entry);
- gtk_box_pack_start (GTK_BOX (hbox), eprop_adj->entry, TRUE, TRUE, 0);
-
- button = gtk_button_new_with_label ("...");
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
-
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (glade_eprop_object_show_dialog),
- eprop);
- return hbox;
-}
-
-static GtkWidget *
-glade_eprop_adjustment_create_input (GladeEditorProperty *eprop)
-{
- GladeEPropAdjustment *eprop_adj = GLADE_EPROP_ADJUSTMENT (eprop);
- GtkWidget *builder;
-
- eprop_adj->libglade = glade_eprop_adjustment_create_input_libglade (eprop);
- builder = glade_eprop_adjustment_create_input_builder (eprop);
-
- gtk_widget_show (eprop_adj->libglade);
- gtk_widget_show (builder);
-
- eprop_adj->notebook = gtk_notebook_new ();
- gtk_notebook_set_show_tabs (GTK_NOTEBOOK (eprop_adj->notebook), FALSE);
- gtk_notebook_set_show_border (GTK_NOTEBOOK (eprop_adj->notebook), FALSE);
-
- gtk_notebook_append_page (GTK_NOTEBOOK (eprop_adj->notebook), eprop_adj->libglade, NULL);
- gtk_notebook_append_page (GTK_NOTEBOOK (eprop_adj->notebook), builder, NULL);
- return eprop_adj->notebook;
-}
-
-
/*******************************************************************************
API
*******************************************************************************/