[glade3] Use accessor functions instead direct access. Second patch
- From: Javier Jardón <jjardon src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [glade3] Use accessor functions instead direct access. Second patch
- Date: Fri, 4 Dec 2009 19:18:37 +0000 (UTC)
commit 4dda3ade8851db79150af9865acc93855ee59e00
Author: Javier Jardón <jjardon gnome org>
Date: Fri Dec 4 20:18:06 2009 +0100
Use accessor functions instead direct access. Second patch
GTK+ 2.19.0 is now the required version
I've used all the GTK+ 2.19.1 api available, still missing:
GTK_WIDGET_UNSET_FLAGS (widget, GTK_TOPLEVEL);
GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
GTK_WIDGET_REALIZED ()
GTK_WIDGET_MAPPED ()
https://bugzilla.gnome.org/show_bug.cgi?id=594957
ChangeLog | 13 +++++++
configure.ac | 2 +-
gladeui/glade-utils.c | 54 +++++++++++++++++------------
plugins/gtk+/glade-cell-renderer-button.c | 41 ++++++++++++++++-----
plugins/gtk+/glade-text-button.c | 4 ++-
5 files changed, 80 insertions(+), 34 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index c21d43a..4e9bd28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2009-12-04 Javier Jardón <jjardon gnome org>
+
+ Use accessor functions instead direct access. Second patch
+
+ GTK+ 2.19.0 is now the required version
+ I've used all the GTK+ 2.19.1 api available, still missing:
+ GTK_WIDGET_UNSET_FLAGS (widget, GTK_TOPLEVEL);
+ GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
+ GTK_WIDGET_REALIZED ()
+ GTK_WIDGET_MAPPED ()
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=594957
+
2009-12-04 Javier Jardón <jjardon gnome org>
Use accessor functions instead direct access.
diff --git a/configure.ac b/configure.ac
index e1afd06..35c9b46 100644
--- a/configure.ac
+++ b/configure.ac
@@ -121,7 +121,7 @@ GTK_DOC_CHECK(1.9)
dnl ================================================================
dnl Check for gtk+
dnl ================================================================
-PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.17.10 gthread-2.0 libxml-2.0 >= 2.4.0])
+PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.19.0 gthread-2.0 libxml-2.0 >= 2.4.0])
AC_SUBST(GTK_LIBS)
AC_SUBST(GTK_CFLAGS)
diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c
index 6a8259a..276c656 100644
--- a/gladeui/glade-utils.c
+++ b/gladeui/glade-utils.c
@@ -260,7 +260,7 @@ glade_util_ui_message (GtkWidget *parent,
gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
if (widget)
- gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->vbox),
+ gtk_box_pack_end (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
widget, TRUE, TRUE, 2);
response = gtk_dialog_run (GTK_DIALOG (dialog));
@@ -424,7 +424,7 @@ glade_util_gtk_combo_func (gpointer data)
ltext = (gchar *) g_object_get_data (G_OBJECT (listitem),
gtk_combo_string_key);
if (!ltext) {
- label = GTK_BIN (listitem)->child;
+ label = gtk_bin_get_child (GTK_BIN (listitem));
if (!label || !GTK_IS_LABEL (label))
return NULL;
ltext = (gchar*) gtk_label_get_text (GTK_LABEL (label));
@@ -556,7 +556,7 @@ add_format_options (GtkDialog *dialog,
gtk_widget_show_all (frame);
- gtk_box_pack_end (GTK_BOX (dialog->vbox), frame, FALSE, TRUE, 2);
+ gtk_box_pack_end (GTK_BOX (gtk_dialog_get_content_area (dialog)), frame, FALSE, TRUE, 2);
}
@@ -712,7 +712,7 @@ glade_util_get_window_positioned_in (GtkWidget *widget)
{
GtkWidget *parent;
- parent = widget->parent;
+ parent = gtk_widget_get_parent (widget);
#ifdef USE_GNOME
/* BonoboDockItem widgets use a different window when floating.
@@ -730,9 +730,9 @@ glade_util_get_window_positioned_in (GtkWidget *widget)
#endif
if (parent)
- return parent->window;
+ return gtk_widget_get_window (parent);
- return widget->window;
+ return gtk_widget_get_window (widget);
}
static void
@@ -801,10 +801,10 @@ glade_util_can_draw_nodes (GtkWidget *sel_widget, GdkWindow *sel_win,
GdkWindow *viewport_win = NULL;
/* Check if the selected widget is inside a viewport. */
- for (widget = sel_widget->parent; widget; widget = widget->parent) {
+ for (widget = gtk_widget_get_parent (sel_widget); widget; widget = gtk_widget_get_parent (widget)) {
if (GTK_IS_VIEWPORT (widget)) {
viewport = widget;
- viewport_win = GTK_VIEWPORT (widget)->bin_window;
+ viewport_win = gtk_viewport_get_bin_window (GTK_VIEWPORT (widget));
break;
}
}
@@ -854,7 +854,7 @@ glade_util_draw_selection_nodes (GdkWindow *expose_win)
/* Find the corresponding GtkWidget */
gdk_window_get_user_data (expose_win, (gpointer)&expose_widget);
- gc = expose_widget->style->black_gc;
+ gc = gtk_widget_get_style (expose_widget)->black_gc;
/* Calculate the offset of the expose window within its toplevel. */
glade_util_calculate_window_offset (expose_win,
@@ -887,10 +887,13 @@ glade_util_draw_selection_nodes (GdkWindow *expose_win)
if (expose_toplevel == sel_toplevel
&& glade_util_can_draw_nodes (sel_widget, sel_win,
expose_win)) {
- x = sel_x + sel_widget->allocation.x - expose_win_x;
- y = sel_y + sel_widget->allocation.y - expose_win_y;
- w = sel_widget->allocation.width;
- h = sel_widget->allocation.height;
+ GtkAllocation allocation;
+
+ gtk_widget_get_allocation (sel_widget, &allocation);
+ x = sel_x + allocation.x - expose_win_x;
+ y = sel_y + allocation.y - expose_win_y;
+ w = allocation.width;
+ h = allocation.height;
/* Draw the selection nodes if they intersect the
expose window bounds. */
@@ -930,6 +933,8 @@ glade_util_add_selection (GtkWidget *widget)
void
glade_util_remove_selection (GtkWidget *widget)
{
+ GtkWidget *parent;
+
g_return_if_fail (GTK_IS_WIDGET (widget));
if (!glade_util_has_selection (widget))
return;
@@ -939,8 +944,8 @@ glade_util_remove_selection (GtkWidget *widget)
/* We redraw the parent, since the selection rectangle may not be
cleared if we just redraw the widget itself. */
- gtk_widget_queue_draw (widget->parent ?
- widget->parent : widget);
+ parent = gtk_widget_get_parent (widget);
+ gtk_widget_queue_draw (parent ? parent : widget);
}
/**
@@ -952,6 +957,7 @@ void
glade_util_clear_selection (void)
{
GtkWidget *widget;
+ GtkWidget *parent;
GList *list;
for (list = glade_util_selection;
@@ -959,8 +965,8 @@ glade_util_clear_selection (void)
list = list->next)
{
widget = list->data;
- gtk_widget_queue_draw (widget->parent ?
- widget->parent : widget);
+ parent = gtk_widget_get_parent (widget);
+ gtk_widget_queue_draw (parent ? parent : widget);
}
glade_util_selection =
(g_list_free (glade_util_selection), NULL);
@@ -1678,6 +1684,7 @@ glade_util_get_placeholder_from_pointer (GtkContainer *container)
{
GtkWidget *toplevel;
GtkWidget *retval = NULL, *child;
+ GtkAllocation allocation;
GList *c, *l;
gint x, y, x2, y2;
@@ -1699,10 +1706,10 @@ glade_util_get_placeholder_from_pointer (GtkContainer *container)
gtk_widget_translate_coordinates (toplevel, child,
x, y, &x2, &y2);
-
+ gtk_widget_get_allocation (child, &allocation);
if (x2 >= 0 && y2 >= 0 &&
- x2 <= child->allocation.width &&
- y2 <= child->allocation.height)
+ x2 <= allocation.width &&
+ y2 <= allocation.height)
{
retval = child;
break;
@@ -2289,7 +2296,10 @@ glade_utils_hijack_key_press (GtkWindow *win,
GdkEventKey *event,
gpointer user_data)
{
- if (win->focus_widget &&
+ GtkWidget *focus_widget;
+
+ focus_widget = gtk_window_get_focus (win);
+ if (focus_widget &&
(event->keyval == GDK_Delete || /* Filter Delete from accelerator keys */
((event->state & GDK_CONTROL_MASK) && /* CNTL keys... */
((event->keyval == GDK_c || event->keyval == GDK_C) || /* CNTL-C (copy) */
@@ -2297,7 +2307,7 @@ glade_utils_hijack_key_press (GtkWindow *win,
(event->keyval == GDK_v || event->keyval == GDK_V) || /* CNTL-V (paste) */
(event->keyval == GDK_n || event->keyval == GDK_N))))) /* CNTL-N (new project) */
{
- return gtk_widget_event (win->focus_widget,
+ return gtk_widget_event (focus_widget,
(GdkEvent *)event);
}
return FALSE;
diff --git a/plugins/gtk+/glade-cell-renderer-button.c b/plugins/gtk+/glade-cell-renderer-button.c
index 7f19490..4893594 100644
--- a/plugins/gtk+/glade-cell-renderer-button.c
+++ b/plugins/gtk+/glade-cell-renderer-button.c
@@ -188,7 +188,9 @@ glade_cell_renderer_button_focus_out_event (GtkWidget *entry,
priv = GLADE_CELL_RENDERER_BUTTON_GET_PRIVATE (cell_text);
- GTK_ENTRY (entry)->editing_canceled = TRUE;
+ g_object_set (entry,
+ "editing-canceled", TRUE,
+ NULL);
gtk_cell_editable_editing_done (GTK_CELL_EDITABLE (entry));
gtk_cell_editable_remove_widget (GTK_CELL_EDITABLE (entry));
@@ -220,6 +222,7 @@ static void
glade_cell_renderer_button_activate (GtkCellEditable *entry,
GtkCellRendererText *cell_text)
{
+ gboolean canceled;
const gchar *path;
const gchar *new_text;
GladeCellRendererButtonPrivate *priv;
@@ -228,10 +231,12 @@ glade_cell_renderer_button_activate (GtkCellEditable *entry,
g_signal_handlers_disconnect_by_func (entry, glade_cell_renderer_button_focus_out_event, cell_text);
- gtk_cell_renderer_stop_editing (GTK_CELL_RENDERER (cell_text),
- GTK_ENTRY (entry)->editing_canceled);
+ g_object_get (entry,
+ "editing-canceled", &canceled,
+ NULL);
+ gtk_cell_renderer_stop_editing (GTK_CELL_RENDERER (cell_text), canceled);
- if (GTK_ENTRY (entry)->editing_canceled)
+ if (canceled)
return;
path = g_object_get_data (G_OBJECT (entry), GLADE_CELL_RENDERER_BUTTON_PATH);
@@ -244,6 +249,7 @@ static void
glade_cell_renderer_button_editing_done (GtkCellEditable *entry,
GtkCellRendererText *cell_text)
{
+ gboolean canceled;
const gchar *path;
const gchar *new_text;
GladeCellRendererButtonPrivate *priv;
@@ -252,10 +258,12 @@ glade_cell_renderer_button_editing_done (GtkCellEditable *entry,
g_signal_handlers_disconnect_by_func (entry, glade_cell_renderer_button_focus_out_event, cell_text);
- gtk_cell_renderer_stop_editing (GTK_CELL_RENDERER (cell_text),
- GTK_ENTRY (entry)->editing_canceled);
+ g_object_get (entry,
+ "editing-canceled", &canceled,
+ NULL);
+ gtk_cell_renderer_stop_editing (GTK_CELL_RENDERER (cell_text), canceled);
- if (GTK_ENTRY (entry)->editing_canceled)
+ if (canceled)
return;
path = g_object_get_data (G_OBJECT (entry), GLADE_CELL_RENDERER_BUTTON_PATH);
@@ -277,20 +285,33 @@ glade_cell_renderer_button_start_editing (GtkCellRenderer *cell,
GladeCellRendererButtonPrivate *priv;
GtkCellRendererText *cell_text;
GladeTextButton *text_button;
+ gboolean editable;
+ gchar *text;
+ gfloat xalign;
cell_text = GTK_CELL_RENDERER_TEXT (cell);
priv = GLADE_CELL_RENDERER_BUTTON_GET_PRIVATE (cell);
- if (cell_text->editable == FALSE)
+ g_object_get (cell_text,
+ "editable", &editable,
+ "text", &text,
+ NULL);
+
+ if (editable == FALSE)
return NULL;
priv->button = text_button = (GladeTextButton *)glade_text_button_new ();
- gtk_entry_set_text (GTK_ENTRY (text_button->entry), cell_text->text ? cell_text->text : "");
+ gtk_entry_set_text (GTK_ENTRY (text_button->entry), text ? text : "");
+ g_free (text);
gtk_editable_set_editable (GTK_EDITABLE (text_button->entry), priv->entry_editable);
+ g_object_get (cell,
+ "xalign", &xalign,
+ NULL);
+
g_object_set (text_button->entry,
"has-frame", FALSE,
- "xalign", cell->xalign,
+ "xalign", xalign,
NULL);
g_object_set_data_full (G_OBJECT (text_button->entry), GLADE_CELL_RENDERER_BUTTON_PATH,
diff --git a/plugins/gtk+/glade-text-button.c b/plugins/gtk+/glade-text-button.c
index f1ba51e..9f77a15 100644
--- a/plugins/gtk+/glade-text-button.c
+++ b/plugins/gtk+/glade-text-button.c
@@ -106,7 +106,9 @@ glade_text_button_key_press_event (GtkEntry *entry,
{
if (key_event->keyval == GDK_Escape)
{
- entry->editing_canceled = TRUE;
+ g_object_get (entry,
+ "editing-canceled", TRUE,
+ NULL);
gtk_cell_editable_editing_done (GTK_CELL_EDITABLE (button));
gtk_cell_editable_remove_widget (GTK_CELL_EDITABLE (button));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]