summaryrefslogtreecommitdiff
path: root/src/glade-gtk.c
diff options
context:
space:
mode:
authorChema Celorio <chema@celorio.com>2001-08-12 02:48:55 +0000
committerJose Maria Celorio <chema@src.gnome.org>2001-08-12 02:48:55 +0000
commit8b9ec7363e5590e4b434ae90d4b3a11b64483693 (patch)
treecc10c761d73a1ec9b92764ae06b94a206660a75a /src/glade-gtk.c
parentb2a8539ccb594e4582e8b935223dd0219cec16b9 (diff)
downloadglade-8b9ec7363e5590e4b434ae90d4b3a11b64483693.tar.gz
try to fix gettext support. Duno why translations are not working. Feel
2001-08-11 Chema Celorio <chema@celorio.com> * src/glade.h: try to fix gettext support. Duno why translations are not working. Feel free to fix it ;-). * src/glade-widget.c (glade_property_refresh): implement (glade_widget_new): clean widget creation (glade_widget_new_full): ditto (glade_widget_get_from_gtk_widget): ditto (glade_widget_apply_property_from_node): impl. (glade_widget_new_from_node): impl. * src/glade-property.c : port to GValue * src/glade-property.h: ditto * src/glade-property-class.c : port to GValue * src/glade-property-class.h : ditto * src/glade-project.c (glade_project_new_from_node): implement. (glade_project_open_from_file): implement. (glade_project_open): implemnt. * src/glade-project-view.h (struct _GladeProjectViewClass): add a selection_update signal. * src/glade-project-view.c (glade_project_view_populate_model_real): add a add_childs parameter (glade_project_view_selection_update): implment (not yet working) * src/glade-parameter.c (glade_parameter_adjustment_new): port to GValue * src/glade-palette.c (glade_palette_clear): impl. * src/glade-gtk.c: port to GValue from string (glade_gtk_box_set_size): impl. * src/glade-editor.c (glade_editor_property_changed_*): use g_property_set_foo rather than g_property_changed_foo. port to GValues from string * src/glade-choice.c (glade_choice_list_new_from_node): use _TAG_ENUM and not _CHOICES * src/glade-catalog.c: remove <config.h> * src/Makefile.am (SUBDIRS): remove tests
Diffstat (limited to 'src/glade-gtk.c')
-rw-r--r--src/glade-gtk.c149
1 files changed, 96 insertions, 53 deletions
diff --git a/src/glade-gtk.c b/src/glade-gtk.c
index 14482688..39cc8e85 100644
--- a/src/glade-gtk.c
+++ b/src/glade-gtk.c
@@ -24,15 +24,17 @@
#include <stdlib.h>
#include "glade.h"
+#include "glade-widget.h"
+#include "glade-placeholder.h"
#include "glade-property-class.h"
-
static void
-glade_gtk_entry_set_text (GObject *object, const gchar *string)
+glade_gtk_entry_set_text (GObject *object, GValue *value)
{
GtkEditable *editable = GTK_EDITABLE (object);
gint pos;
gint insert_pos = 0;
+ const gchar *text = g_value_get_string (value);
g_return_if_fail (GTK_IS_EDITABLE (object));
@@ -40,33 +42,40 @@ glade_gtk_entry_set_text (GObject *object, const gchar *string)
gtk_editable_delete_text (editable, 0, -1);
/* FIXME: will not work with multibyte languages (strlen) */
gtk_editable_insert_text (editable,
- string,
- strlen (string),
+ text,
+ strlen (text),
&insert_pos);
gtk_editable_set_position (editable, pos);
}
-static gchar *
-glade_gtk_entry_get_text (GObject *object)
+static void
+glade_gtk_entry_get_text (GObject *object, GValue *value)
{
GtkEntry *entry = GTK_ENTRY (object);
+
const gchar *text;
- g_return_val_if_fail (GTK_IS_ENTRY (entry), NULL);
+ g_return_if_fail (GTK_IS_ENTRY (entry));
text = gtk_entry_get_text (entry);
- return g_strdup (text);
+ g_value_set_string (value, text);
}
static void
-glade_gtk_option_menu_set_items (GObject *object, const gchar *items)
+glade_gtk_option_menu_set_items (GObject *object, GValue *value)
+/*const gchar *items)*/
{
GtkOptionMenu *option_menu;
GtkWidget *menu;
- const gchar *pos = items;
- const gchar *items_end = &items[strlen (items)];
+ const gchar *items;
+ const gchar *pos;
+ const gchar *items_end;
+ items = g_value_get_string (value);
+ pos = items;
+ items_end = &items[strlen (items)];
+
option_menu = GTK_OPTION_MENU (object);
g_return_if_fail (GTK_IS_OPTION_MENU (option_menu));
menu = gtk_option_menu_get_menu (option_menu);
@@ -94,9 +103,10 @@ glade_gtk_option_menu_set_items (GObject *object, const gchar *items)
static void
-glade_gtk_progress_bar_set_format (GObject *object, const gchar *format)
+glade_gtk_progress_bar_set_format (GObject *object, GValue *value)
{
GtkProgressBar *bar;
+ const gchar *format = g_value_get_string (value);
bar = GTK_PROGRESS_BAR (object);
g_return_if_fail (GTK_IS_PROGRESS_BAR (bar));
@@ -105,86 +115,111 @@ glade_gtk_progress_bar_set_format (GObject *object, const gchar *format)
}
static void
-glade_gtk_adjustment_set_max (GObject *object, const gchar *string)
+glade_gtk_adjustment_set_max (GObject *object, GValue *value)
{
GtkAdjustment *adjustment;
- gfloat val;
-
- val = atof (string);
adjustment = GTK_ADJUSTMENT (object);
- adjustment->upper = val;
+ adjustment->upper = g_value_get_float (value);
gtk_adjustment_changed (adjustment);
}
static void
-glade_gtk_adjustment_set_min (GObject *object, const gchar *string)
+glade_gtk_adjustment_set_min (GObject *object, GValue *value)
{
GtkAdjustment *adjustment;
- gfloat val;
-
- val = atof (string);
adjustment = GTK_ADJUSTMENT (object);
- adjustment->lower = val;
+ adjustment->lower = g_value_get_float (value);
gtk_adjustment_changed (adjustment);
}
static void
-glade_gtk_adjustment_set_step_increment (GObject *object, const gchar *string)
+glade_gtk_adjustment_set_step_increment (GObject *object, GValue *value)
{
GtkAdjustment *adjustment;
- gfloat val;
-
- val = atof (string);
adjustment = GTK_ADJUSTMENT (object);
- adjustment->step_increment = val;
+ adjustment->step_increment = g_value_get_float (value);
gtk_adjustment_changed (adjustment);
}
+
static void
-glade_gtk_adjustment_set_page_increment (GObject *object, const gchar *string)
+glade_gtk_adjustment_set_page_increment (GObject *object, GValue *value)
{
GtkAdjustment *adjustment;
- gfloat val;
-
- val = atof (string);
adjustment = GTK_ADJUSTMENT (object);
- adjustment->page_increment = val;
+ adjustment->page_increment = g_value_get_float (value);
gtk_adjustment_changed (adjustment);
}
static void
-glade_gtk_adjustment_set_page_size (GObject *object, const gchar *string)
+glade_gtk_adjustment_set_page_size (GObject *object, GValue *value)
{
GtkAdjustment *adjustment;
- gfloat val;
-
- val = atof (string);
adjustment = GTK_ADJUSTMENT (object);
- adjustment->page_size = val;
+ adjustment->page_size = g_value_get_float (value);
gtk_adjustment_changed (adjustment);
}
static void
-glade_gtk_vbox_get_size (GObject *object, const gchar *string)
+glade_gtk_box_get_size (GObject *object, GValue *value)
+{
+ GtkBox *box;
+
+ g_value_reset (value);
+
+ box = GTK_BOX (object);
+ g_return_if_fail (GTK_IS_BOX (box));
+
+ g_value_set_int (value, g_list_length (box->children));
+}
+
+static void
+glade_gtk_box_set_size (GObject *object, GValue *value)
{
- glade_implement_me ();
+ GladeWidget *widget;
+ GtkBox *box;
+ gint new_size;
+ gint old_size;
+
+ box = GTK_BOX (object);
+ g_return_if_fail (GTK_IS_BOX (box));
+
+ new_size = g_value_get_int (value);
+ old_size = g_list_length (box->children);
+
+ if (new_size == old_size)
+ return;
+
+ widget = glade_widget_get_from_gtk_widget (GTK_WIDGET (box));
+ g_return_if_fail (widget != NULL);
+
+ if (new_size > old_size) {
+ int i = new_size - old_size;
+ for (; i > 0; i--) {
+ GladePlaceholder *placeholder;
+ placeholder = glade_placeholder_new (widget);
+ gtk_box_pack_start_defaults (box,
+ GTK_WIDGET (placeholder));
+ }
+ } else {
+ glade_implement_me ();
+ }
}
static void
-glade_gtk_vbox_set_size (GObject *object, const gchar *string)
+empty (GObject *object, GValue *value)
{
- glade_implement_me ();
}
/* ================ Temp hack =================== */
@@ -196,21 +231,29 @@ typedef struct _GladeGtkFunction GladeGtkFunction;
struct _GladeGtkFunction {
const gchar *name;
- gpointer function;
+ void (* function) (GObject *object, GValue *value);
};
GladeGtkFunction functions [] = {
- {"glade_gtk_entry_set_text", &glade_gtk_entry_set_text},
- {"glade_gtk_entry_get_text", &glade_gtk_entry_get_text},
- {"glade_gtk_option_menu_set_items", &glade_gtk_option_menu_set_items},
- {"glade_gtk_progress_bar_set_format", &glade_gtk_progress_bar_set_format},
- {"glade_gtk_vbox_set_size", &glade_gtk_vbox_set_size},
- {"glade_gtk_vbox_get_size", &glade_gtk_vbox_get_size},
- {"glade_gtk_adjustment_set_max", &glade_gtk_adjustment_set_max},
- {"glade_gtk_adjustment_set_min", &glade_gtk_adjustment_set_min},
- {"glade_gtk_adjustment_set_step_increment", &glade_gtk_adjustment_set_step_increment},
- {"glade_gtk_adjustment_set_page_increment", &glade_gtk_adjustment_set_page_increment},
- {"glade_gtk_adjustment_set_page_size", &glade_gtk_adjustment_set_page_size},
+ {"glade_gtk_entry_get_text", glade_gtk_entry_get_text},
+ {"glade_gtk_box_get_size", glade_gtk_box_get_size},
+ {"glade_gtk_widget_get_tooltip", empty},
+
+ {"glade_gtk_entry_set_text", glade_gtk_entry_set_text},
+ {"glade_gtk_option_menu_set_items", glade_gtk_option_menu_set_items},
+ {"glade_gtk_progress_bar_set_format", glade_gtk_progress_bar_set_format},
+ {"glade_gtk_box_set_size", glade_gtk_box_set_size},
+ {"glade_gtk_widget_set_tooltip", empty},
+ {"ignore", empty}, /* For example for gtkwindow::modal, we want to ignore the set */
+
+ {"glade_gtk_adjustment_set_max", glade_gtk_adjustment_set_max},
+ {"glade_gtk_adjustment_set_min", glade_gtk_adjustment_set_min},
+ {"glade_gtk_adjustment_set_step_increment", glade_gtk_adjustment_set_step_increment},
+ {"glade_gtk_adjustment_set_page_increment", glade_gtk_adjustment_set_page_increment},
+ {"glade_gtk_adjustment_set_page_size", glade_gtk_adjustment_set_page_size},
+
+
+
};
static gpointer