2010/9/30 Cristian Morales Vega <[email protected]>:
> 2010/9/30 Cristian Morales Vega <[email protected]>:
>> In the "Developers" forum I badly copy&pasted these patches. I
>> resubmit them here to make them clearer since it seems some of them
>> didn't hit the CVS.
>
> A new one to solve the "/usr/share/pixmaps/gmerlin-player.png ->
> ../../src/packages/BUILDROOT/gmerlin-0.4.3-1.x86_64/usr/share/gmerlin/icons/player_icon.png"
> problem explained in the forum.
> Not perfect, but solves the problem and at least RPM removes the
> unneeded "../" automatically.
> It also install the icons in /usr/share/icons following the Icon Theme
> Specification.
And a new problem. There are multiple uses of GTK_WIDGET_SET_FLAGS,
but it is deprecated since GTK 2.22. In its place, since GTK 2.18,
there is gtk_widget_set_*().
And since 2.21.6 GtkNotebookPage is also deprecated.
Index: lib/gtk/gtkutils.c
===================================================================
--- lib/gtk/gtkutils.c.orig
+++ lib/gtk/gtkutils.c
@@ -465,7 +465,7 @@ GtkWidget * bg_gtk_get_toplevel(GtkWidge
return (GtkWidget*)0;
toplevel = gtk_widget_get_toplevel(w);
- if(!GTK_WIDGET_TOPLEVEL (toplevel))
+ if(!bg_gtk_widget_is_toplevel(toplevel))
toplevel = (GtkWidget*)0;
return toplevel;
}
@@ -508,3 +508,45 @@ GdkPixbuf * bg_gtk_pixbuf_from_frame(gav
else
return NULL;
}
+
+int bg_gtk_widget_is_realized(GtkWidget * w)
+ {
+#if GTK_CHECK_VERSION(2,20,0)
+ return gtk_widget_get_realized(w);
+#else
+ return GTK_WIDGET_REALIZED(w);
+#endif
+ }
+
+int bg_gtk_widget_is_toplevel(GtkWidget * w)
+ {
+#if GTK_CHECK_VERSION(2,18,0)
+ return gtk_widget_is_toplevel(w);
+#else
+ return GTK_WIDGET_TOPLEVEL(w);
+#endif
+ }
+
+void bg_gtk_widget_set_can_default(GtkWidget *w, gboolean can_default)
+ {
+#if GTK_CHECK_VERSION(2,18,0)
+ gtk_widget_set_can_default(w, can_default);
+#else
+ if(can_default)
+ GTK_WIDGET_SET_FLAGS(w, GTK_CAN_DEFAULT);
+ else
+ GTK_WIDGET_UNSET_FLAGS(w, GTK_CAN_DEFAULT);
+#endif
+ }
+
+void bg_gtk_widget_set_can_focus(GtkWidget *w, gboolean can_focus)
+ {
+#if GTK_CHECK_VERSION(2,18,0)
+ gtk_widget_set_can_focus(w, can_focus);
+#else
+ if(can_focus)
+ GTK_WIDGET_SET_FLAGS(w, GTK_CAN_FOCUS);
+ else
+ GTK_WIDGET_UNSET_FLAGS(w, GTK_CAN_FOCUS);
+#endif
+ }
Index: lib/gtk/vumeter.c
===================================================================
--- lib/gtk/vumeter.c.orig
+++ lib/gtk/vumeter.c
@@ -687,7 +687,8 @@ static void draw_dynamic(bg_gtk_vumeter_
{
int i;
- if(!GTK_WIDGET_REALIZED(m->layout) || !m->pixmap_width || !m->pixmap_height)
+ if(!bg_gtk_widget_is_realized(m->layout) ||
+ !m->pixmap_width || !m->pixmap_height)
return;
if(!m->pixmaps_valid)
Index: lib/gtk/auth.c
===================================================================
--- lib/gtk/auth.c.orig
+++ lib/gtk/auth.c
@@ -80,8 +80,8 @@ static userpass_win * userpass_win_creat
ret->ok_button = gtk_button_new_from_stock(GTK_STOCK_OK);
ret->cancel_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
- GTK_WIDGET_SET_FLAGS(ret->ok_button, GTK_CAN_DEFAULT);
- GTK_WIDGET_SET_FLAGS(ret->cancel_button, GTK_CAN_DEFAULT);
+ bg_gtk_widget_set_can_default(ret->ok_button, TRUE);
+ bg_gtk_widget_set_can_default(ret->cancel_button, TRUE);
g_signal_connect(G_OBJECT(ret->ok_button),
"clicked", G_CALLBACK(button_callback), ret);
Index: apps/visualizer/gmerlin_visualizer.c
===================================================================
--- apps/visualizer/gmerlin_visualizer.c.orig
+++ apps/visualizer/gmerlin_visualizer.c
@@ -387,7 +387,7 @@ static void grab_notify_callback(GtkWidg
visualizer_t * win = (visualizer_t*)data;
if(!was_grabbed)
{
- GTK_WIDGET_SET_FLAGS(win->current_window->socket, GTK_CAN_FOCUS);
+ bg_gtk_widget_set_can_focus(win->current_window->socket, TRUE);
gtk_widget_grab_focus(win->current_window->socket);
}
}
@@ -457,7 +457,7 @@ static void plug_added_callback(GtkWidge
gtk_widget_hide(v->toolbar);
/* Seems that this is switched off, when an earlier client exited */
- GTK_WIDGET_SET_FLAGS(w, GTK_CAN_FOCUS);
+ bg_gtk_widget_set_can_focus(w, TRUE);
gtk_widget_grab_focus(w);
}
Index: lib/gtk/cfg_dialog.c
===================================================================
--- lib/gtk/cfg_dialog.c.orig
+++ lib/gtk/cfg_dialog.c
@@ -398,9 +398,9 @@ static bg_dialog_t * create_dialog(const
ret->close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
ret->ok_button = gtk_button_new_from_stock(GTK_STOCK_OK);
- GTK_WIDGET_SET_FLAGS(ret->apply_button, GTK_CAN_DEFAULT);
- GTK_WIDGET_SET_FLAGS(ret->close_button, GTK_CAN_DEFAULT);
- GTK_WIDGET_SET_FLAGS(ret->ok_button, GTK_CAN_DEFAULT);
+ bg_gtk_widget_set_can_default(ret->apply_button, TRUE);
+ bg_gtk_widget_set_can_default(ret->close_button, TRUE);
+ bg_gtk_widget_set_can_default(ret->ok_button, TRUE);
gtk_window_set_modal(GTK_WINDOW(ret->window), TRUE);
@@ -413,9 +413,9 @@ static bg_dialog_t * create_dialog(const
g_signal_connect(G_OBJECT(ret->window), "delete_event",
G_CALLBACK(delete_callback), (gpointer)ret);
- GTK_WIDGET_SET_FLAGS (ret->close_button, GTK_CAN_DEFAULT);
- GTK_WIDGET_SET_FLAGS (ret->apply_button, GTK_CAN_DEFAULT);
- GTK_WIDGET_SET_FLAGS (ret->ok_button, GTK_CAN_DEFAULT);
+ bg_gtk_widget_set_can_default(ret->close_button, TRUE);
+ bg_gtk_widget_set_can_default(ret->apply_button, TRUE);
+ bg_gtk_widget_set_can_default(ret->ok_button, TRUE);
gtk_widget_show(ret->apply_button);
gtk_widget_show(ret->close_button);
Index: lib/gtk/driveselect.c
===================================================================
--- lib/gtk/driveselect.c.orig
+++ lib/gtk/driveselect.c
@@ -192,8 +192,8 @@ bg_gtk_drivesel_create(const char * titl
ret->add_button = gtk_button_new_from_stock(GTK_STOCK_ADD);
ret->close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- GTK_WIDGET_SET_FLAGS(ret->close_button, GTK_CAN_DEFAULT);
- GTK_WIDGET_SET_FLAGS(ret->add_button, GTK_CAN_DEFAULT);
+ bg_gtk_widget_set_can_default(ret->close_button, TRUE);
+ bg_gtk_widget_set_can_default(ret->add_button, TRUE);
/* Set callbacks */
Index: lib/gtk/message.c
===================================================================
--- lib/gtk/message.c.orig
+++ lib/gtk/message.c
@@ -86,7 +86,7 @@ void bg_gtk_message(const char * message
gtk_window_set_modal(GTK_WINDOW(q->window), 1);
gtk_window_set_title(GTK_WINDOW(q->window), TR("Message"));
gtk_window_set_position(GTK_WINDOW(q->window), GTK_WIN_POS_CENTER_ON_PARENT);
- GTK_WIDGET_SET_FLAGS (q->ok_button, GTK_CAN_DEFAULT);
+ bg_gtk_widget_set_can_default(q->ok_button, TRUE);
gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER);
Index: lib/gtk/multiinfo.c
===================================================================
--- lib/gtk/multiinfo.c.orig
+++ lib/gtk/multiinfo.c
@@ -77,7 +77,7 @@ multiwindow_create(const char * title, c
/* Create close button */
ret->close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- GTK_WIDGET_SET_FLAGS(ret->close_button, GTK_CAN_DEFAULT);
+ bg_gtk_widget_set_can_default(ret->close_button, TRUE);
g_signal_connect(G_OBJECT(ret->close_button), "clicked",
G_CALLBACK(button_callback), (gpointer)ret);
Index: lib/gtk/plugininfo.c
===================================================================
--- lib/gtk/plugininfo.c.orig
+++ lib/gtk/plugininfo.c
@@ -79,7 +79,7 @@ pluginwindow_create(const char * title,
/* Create close button */
ret->close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- GTK_WIDGET_SET_FLAGS(ret->close_button, GTK_CAN_DEFAULT);
+ bg_gtk_widget_set_can_default(ret->close_button, TRUE);
g_signal_connect(G_OBJECT(ret->close_button), "clicked",
G_CALLBACK(button_callback), (gpointer)ret);
Index: lib/gtk/question.c
===================================================================
--- lib/gtk/question.c.orig
+++ lib/gtk/question.c
@@ -92,8 +92,8 @@ int bg_gtk_question(const char * questio
gtk_window_set_modal(GTK_WINDOW(q->window), 1);
gtk_window_set_title(GTK_WINDOW(q->window), TR("Question"));
gtk_window_set_position(GTK_WINDOW(q->window), GTK_WIN_POS_CENTER_ON_PARENT);
- GTK_WIDGET_SET_FLAGS (q->ok_button, GTK_CAN_DEFAULT);
- GTK_WIDGET_SET_FLAGS (q->cancel_button, GTK_CAN_DEFAULT);
+ bg_gtk_widget_set_can_default(q->ok_button, TRUE);
+ bg_gtk_widget_set_can_default(q->cancel_button, TRUE);
gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER);
Index: lib/gtk/textwindow.c
===================================================================
--- lib/gtk/textwindow.c.orig
+++ lib/gtk/textwindow.c
@@ -75,7 +75,7 @@ bg_gtk_textwindow_create(const char * te
/* Create close button */
ret->close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- GTK_WIDGET_SET_FLAGS(ret->close_button, GTK_CAN_DEFAULT);
+ bg_gtk_widget_set_can_default(ret->close_button, TRUE);
g_signal_connect(G_OBJECT(ret->close_button), "clicked",
G_CALLBACK(button_callback), (gpointer)ret);
Index: lib/gtk/treewidget.c
===================================================================
--- lib/gtk/treewidget.c.orig
+++ lib/gtk/treewidget.c
@@ -1853,7 +1853,11 @@ static void tree_changed_callback(bg_med
}
+#if GTK_CHECK_VERSION(2, 21, 6)
+static void notebook_change_page(GtkWidget * widget, gpointer page, int num, gpointer data)
+#else
static void notebook_change_page(GtkWidget * widget, GtkNotebookPage *page, int num, gpointer data)
+#endif
{
bg_gtk_tree_widget_t * wid;
bg_gtk_album_window_t * win;
Index: lib/gtk/urlselect.c
===================================================================
--- lib/gtk/urlselect.c.orig
+++ lib/gtk/urlselect.c
@@ -152,8 +152,8 @@ bg_gtk_urlsel_create(const char * title,
ret->add_button = gtk_button_new_from_stock(GTK_STOCK_ADD);
ret->close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- GTK_WIDGET_SET_FLAGS(ret->close_button, GTK_CAN_DEFAULT);
- GTK_WIDGET_SET_FLAGS(ret->add_button, GTK_CAN_DEFAULT);
+ bg_gtk_widget_set_can_default(ret->close_button, TRUE);
+ bg_gtk_widget_set_can_default(ret->add_button, TRUE);
/* Set callbacks */
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Gmerlin-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gmerlin-general