[Xfce4-commits] [xfce/xfce4-session] 13/30: Port balou to Gtk3

noreply at xfce.org noreply at xfce.org
Sun May 15 18:03:32 CEST 2016


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository xfce/xfce4-session.

commit 4dd2ff792e932dbb327a86ebad8a638a8d536626
Author: Eric Koegel <eric.koegel at gmail.com>
Date:   Mon Apr 18 15:53:30 2016 +0300

    Port balou to Gtk3
---
 engines/balou/balou-theme.c | 64 ++++++++++++++++++++++-----------------------
 engines/balou/balou-theme.h |  4 +--
 engines/balou/balou.c       | 26 +++++++++---------
 engines/balou/balou.h       |  5 ++--
 engines/balou/config.c      | 32 +++++++++--------------
 5 files changed, 59 insertions(+), 72 deletions(-)

diff --git a/engines/balou/balou-theme.c b/engines/balou/balou-theme.c
index b74542b..5952cf7 100644
--- a/engines/balou/balou-theme.c
+++ b/engines/balou/balou-theme.c
@@ -48,8 +48,8 @@
 
 static void       load_color_pair (const XfceRc *rc,
                                    const gchar  *name,
-                                   GdkColor     *color1_return,
-                                   GdkColor     *color2_return,
+                                   GdkRGBA      *color1_return,
+                                   GdkRGBA      *color2_return,
                                    const gchar  *color_default);
 static GdkPixbuf  *load_pixbuf    (const gchar *path,
                                    gint         available_width,
@@ -62,9 +62,9 @@ static void store_cached_preview (const BalouTheme *theme,
 
 struct _BalouTheme
 {
-  GdkColor  bgcolor1;
-  GdkColor  bgcolor2;
-  GdkColor  fgcolor;
+  GdkRGBA   bgcolor1;
+  GdkRGBA   bgcolor2;
+  GdkRGBA   fgcolor;
   gchar    *name;
   gchar    *description;
   gchar    *font;
@@ -114,8 +114,8 @@ balou_theme_load (const gchar *name)
                        DEFAULT_BGCOLOR);
 
       spec = xfce_rc_read_entry (rc, "fgcolor", DEFAULT_FGCOLOR);
-      if (!gdk_color_parse (spec, &theme->fgcolor))
-        gdk_color_parse (DEFAULT_FGCOLOR, &theme->fgcolor);
+      if (!gdk_rgba_parse (&theme->fgcolor, spec))
+        gdk_rgba_parse (&theme->fgcolor, DEFAULT_FGCOLOR);
 
       spec = xfce_rc_read_entry (rc, "font", DEFAULT_FONT);
       theme->font = g_strdup (spec);
@@ -139,9 +139,9 @@ balou_theme_load (const gchar *name)
     }
 
 set_defaults:
-  gdk_color_parse (DEFAULT_BGCOLOR, &theme->bgcolor1);
-  gdk_color_parse (DEFAULT_BGCOLOR, &theme->bgcolor2);
-  gdk_color_parse (DEFAULT_FGCOLOR, &theme->fgcolor);
+  gdk_rgba_parse (&theme->bgcolor1, DEFAULT_BGCOLOR);
+  gdk_rgba_parse (&theme->bgcolor2, DEFAULT_BGCOLOR);
+  gdk_rgba_parse (&theme->fgcolor, DEFAULT_FGCOLOR);
   theme->font = g_strdup (DEFAULT_FONT);
   theme->logo_file = NULL;
 
@@ -172,7 +172,7 @@ balou_theme_get_font (const BalouTheme *theme)
 
 void
 balou_theme_get_bgcolor (const BalouTheme *theme,
-                         GdkColor         *color_return)
+                         GdkRGBA          *color_return)
 {
   *color_return = theme->bgcolor1;
 }
@@ -180,7 +180,7 @@ balou_theme_get_bgcolor (const BalouTheme *theme,
 
 void
 balou_theme_get_fgcolor (const BalouTheme *theme,
-                         GdkColor         *color_return)
+                         GdkRGBA          *color_return)
 {
   *color_return = theme->fgcolor;
 }
@@ -203,18 +203,18 @@ balou_theme_draw_gradient (const BalouTheme *theme,
                            GdkRectangle      logobox,
                            GdkRectangle      textbox)
 {
-  GdkColor color;
+  GdkRGBA  color;
   gint     dred;
   gint     dgreen;
   gint     dblue;
   gint     i;
   cairo_t *cr;
 
-  cr = gdk_cairo_create (GDK_DRAWABLE (root));
+  cr = gdk_cairo_create (root);
 
-  if (gdk_color_equal (&theme->bgcolor1, &theme->bgcolor2))
+  if (gdk_rgba_equal (&theme->bgcolor1, &theme->bgcolor2))
     {
-      gdk_cairo_set_source_color (cr, &theme->bgcolor1);
+      gdk_cairo_set_source_rgba (cr, &theme->bgcolor1);
 
       gdk_cairo_rectangle (cr, &logobox);
       cairo_fill (cr);
@@ -235,7 +235,7 @@ balou_theme_draw_gradient (const BalouTheme *theme,
           color.green = theme->bgcolor2.green + (i * dgreen / logobox.height);
           color.blue = theme->bgcolor2.blue + (i * dblue / logobox.height);
 
-          gdk_cairo_set_source_color (cr, &color);
+          gdk_cairo_set_source_rgba (cr, &color);
           cairo_move_to(cr, logobox.x, logobox.y + i);
           cairo_line_to(cr, logobox.x + logobox.width, logobox.y + i);
           cairo_stroke(cr);
@@ -243,7 +243,7 @@ balou_theme_draw_gradient (const BalouTheme *theme,
 
     if (textbox.width != 0 && textbox.height != 0)
       {
-        gdk_cairo_set_source_color (cr, &theme->bgcolor1);
+        gdk_cairo_set_source_rgba (cr, &theme->bgcolor1);
         gdk_cairo_rectangle (cr, &textbox);
         cairo_fill(cr);
       }
@@ -292,7 +292,7 @@ balou_theme_generate_preview (const BalouTheme *theme,
     }
 
   root = gdk_screen_get_root_window (gdk_screen_get_default ());
-  cr = gdk_cairo_create(GDK_DRAWABLE(root));
+  cr = gdk_cairo_create(root);
 
   logobox.x = 0;
   logobox.y = 0;
@@ -314,9 +314,7 @@ balou_theme_generate_preview (const BalouTheme *theme,
       g_object_unref (G_OBJECT (pixbuf));
     }
 
-  /* replace with gdk_pixbuf_get_from_window in GTK 3 */
-  pixbuf = gdk_pixbuf_get_from_drawable (NULL, GDK_DRAWABLE (root),
-                                         NULL, 0, 0, 0, 0, WIDTH, HEIGHT);
+  pixbuf = gdk_pixbuf_get_from_window (root, 0, 0, WIDTH, HEIGHT);
   scaled = gdk_pixbuf_scale_simple (pixbuf, width, height, GDK_INTERP_BILINEAR);
 
   g_object_unref (pixbuf);
@@ -351,8 +349,8 @@ balou_theme_destroy (BalouTheme *theme)
 static void
 load_color_pair (const XfceRc *rc,
                  const gchar  *name,
-                 GdkColor     *color1_return,
-                 GdkColor     *color2_return,
+                 GdkRGBA      *color1_return,
+                 GdkRGBA      *color2_return,
                  const gchar  *color_default)
 {
   const gchar *spec;
@@ -361,8 +359,8 @@ load_color_pair (const XfceRc *rc,
   spec = xfce_rc_read_entry (rc, name, color_default);
   if (spec == NULL)
     {
-      gdk_color_parse (color_default, color1_return);
-      gdk_color_parse (color_default, color2_return);
+      gdk_rgba_parse (color1_return, color_default);
+      gdk_rgba_parse (color2_return, color_default);
     }
   else
     {
@@ -370,20 +368,20 @@ load_color_pair (const XfceRc *rc,
 
       if (s[0] == NULL)
         {
-          gdk_color_parse (color_default, color1_return);
-          gdk_color_parse (color_default, color2_return);
+          gdk_rgba_parse (color1_return, color_default);
+          gdk_rgba_parse (color2_return, color_default);
         }
       else if (s[1] == NULL)
         {
-          if (!gdk_color_parse (s[0], color1_return))
-            gdk_color_parse (color_default, color1_return);
+          if (!gdk_rgba_parse (color1_return, s[0]))
+            gdk_rgba_parse (color1_return, color_default);
           *color2_return = *color1_return;
         }
       else
         {
-          if (!gdk_color_parse (s[0], color2_return))
-            gdk_color_parse (color_default, color2_return);
-          if (!gdk_color_parse (s[1], color1_return))
+          if (!gdk_rgba_parse (color2_return, s[0]))
+            gdk_rgba_parse (color2_return, color_default);
+          if (!gdk_rgba_parse (color1_return, s[1]))
             *color1_return = *color2_return;
         }
 
diff --git a/engines/balou/balou-theme.h b/engines/balou/balou-theme.h
index d7bd927..91994d9 100644
--- a/engines/balou/balou-theme.h
+++ b/engines/balou/balou-theme.h
@@ -35,9 +35,9 @@ const gchar *balou_theme_get_name         (const BalouTheme *theme);
 const gchar *balou_theme_get_description  (const BalouTheme *theme);
 const gchar *balou_theme_get_font         (const BalouTheme *theme);
 void         balou_theme_get_bgcolor      (const BalouTheme *theme,
-                                           GdkColor         *color_return);
+                                           GdkRGBA          *color_return);
 void         balou_theme_get_fgcolor      (const BalouTheme *theme,
-                                           GdkColor         *color_return);
+                                           GdkRGBA          *color_return);
 GdkPixbuf   *balou_theme_get_logo         (const BalouTheme *theme,
                                            gint              available_width,
                                            gint              available_height);
diff --git a/engines/balou/balou.c b/engines/balou/balou.c
index d98eab5..211a584 100644
--- a/engines/balou/balou.c
+++ b/engines/balou/balou.c
@@ -24,6 +24,7 @@
 #endif
 
 #include <X11/Xlib.h>
+#include <gdk/gdkx.h>
 
 #include <engines/balou/balou.h>
 
@@ -39,10 +40,7 @@ static void            balou_window_init     (BalouWindow  *window,
                                               GdkWindow    *root,
                                               GdkCursor    *cursor);
 static void            balou_window_destroy  (BalouWindow  *window);
-#if 0
-static void            balou_window_set_text (BalouWindow  *window,
-                                              const gchar  *text);
-#endif
+
 static GdkFilterReturn balou_window_filter   (GdkXEvent    *xevent,
                                               GdkEvent     *event,
                                               gpointer      data);
@@ -98,11 +96,11 @@ balou_init (Balou        *balou,
   balou_theme_get_bgcolor (theme, &balou->bgcolor);
   balou_theme_get_fgcolor (theme, &balou->fgcolor);
 
-  cursor = gdk_cursor_new (GDK_WATCH);
+  cursor = gdk_cursor_new_for_display (display, GDK_WATCH);
   description = pango_font_description_from_string (balou_theme_get_font (theme));
 
   /* determine number of required windows */
-  nscreens = gdk_display_get_n_screens (display);
+  nscreens = XScreenCount (gdk_x11_display_get_xdisplay (display));
   for (n = 0; n < nscreens; ++n)
     {
       screen = gdk_display_get_screen (display, n);
@@ -181,12 +179,12 @@ balou_init (Balou        *balou,
   /* draw the background and display logo pixbuf (if any) */
   window = balou->mainwin;
 
-  cr = gdk_cairo_create (GDK_DRAWABLE (window->window));
+  cr = gdk_cairo_create (window->window);
 
   ww = gdk_window_get_width (GDK_WINDOW (window->window));
   wh = gdk_window_get_height (GDK_WINDOW (window->window));
 
-  gdk_cairo_set_source_color (cr, &balou->bgcolor);
+  gdk_cairo_set_source_rgba (cr, &balou->bgcolor);
   cairo_rectangle (cr, 0, 0, ww, wh);
   cairo_fill (cr);
 
@@ -208,7 +206,7 @@ balou_init (Balou        *balou,
     }
 
   pango_font_description_free (description);
-  gdk_cursor_unref (cursor);
+  g_object_unref (cursor);
 }
 
 
@@ -237,9 +235,9 @@ balou_fadein (Balou *balou, const gchar *text)
   ww = gdk_window_get_width (GDK_WINDOW (window->window));
   wh = gdk_window_get_height (GDK_WINDOW (window->window));
 
-  cr = gdk_cairo_create (GDK_DRAWABLE (window->window));
+  cr = gdk_cairo_create (window->window);
 
-  gdk_cairo_set_source_color (cr, &balou->bgcolor);
+  gdk_cairo_set_source_rgba (cr, &balou->bgcolor);
   cairo_rectangle (cr, 0, 0, ww, wh);
   cairo_fill (cr);
 
@@ -262,11 +260,11 @@ balou_fadein (Balou *balou, const gchar *text)
   median = (window->area.width - area.width) / 2;
   for (x = 0; (median - x) > BALOU_INCREMENT; x += BALOU_INCREMENT)
     {
-      gdk_cairo_set_source_color (cr, &balou->bgcolor);
+      gdk_cairo_set_source_rgba (cr, &balou->bgcolor);
       gdk_cairo_rectangle (cr, &window->textbox);
       cairo_fill (cr);
 
-      gdk_cairo_set_source_color (cr, &balou->fgcolor);
+      gdk_cairo_set_source_rgba (cr, &balou->fgcolor);
       cairo_move_to (cr, x, window->textbox.y);
       pango_cairo_show_layout (cr, window->layout);
 
@@ -295,7 +293,7 @@ balou_run (Balou     *balou,
 
   window->dialog_active = TRUE;
 
-  gtk_widget_size_request (dialog, &requisition);
+  gtk_widget_get_preferred_size (dialog, NULL, &requisition);
   x = window->area.x + (window->area.width - requisition.width) / 2;
   y = window->area.y + (window->area.height - requisition.height) / 2;
   gtk_window_move (GTK_WINDOW (dialog), x, y);
diff --git a/engines/balou/balou.h b/engines/balou/balou.h
index 16d626d..1f96af2 100644
--- a/engines/balou/balou.h
+++ b/engines/balou/balou.h
@@ -37,8 +37,8 @@ typedef struct _Balou       Balou;
 
 struct _Balou
 {
-  GdkColor      bgcolor;
-  GdkColor      fgcolor;
+  GdkRGBA       bgcolor;
+  GdkRGBA       fgcolor;
 
   BalouTheme    *theme;
 
@@ -47,7 +47,6 @@ struct _Balou
   gint           nwindows;
 
   GdkRectangle   fader_area;
-  GdkPixmap     *fader_pm;
 };
 
 
diff --git a/engines/balou/config.c b/engines/balou/config.c
index f912569..7c21a2a 100644
--- a/engines/balou/config.c
+++ b/engines/balou/config.c
@@ -324,8 +324,8 @@ config_install_theme (GtkWidget *item,
   chooser = gtk_file_chooser_dialog_new (_("Choose theme file to install..."),
                                          GTK_WINDOW (toplevel),
                                          GTK_FILE_CHOOSER_ACTION_OPEN,
-                                         GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                         GTK_STOCK_OPEN, GTK_RESPONSE_OK,
+                                         _("_Cancel"), GTK_RESPONSE_CANCEL,
+                                         _("_Open"), GTK_RESPONSE_OK,
                                          NULL);
   if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_OK)
     {
@@ -337,11 +337,11 @@ config_install_theme (GtkWidget *item,
                                             file);
           xfce_message_dialog (GTK_WINDOW (toplevel),
                                _("Theme File Error"),
-                               GTK_STOCK_DIALOG_ERROR,
+                               "dialog-error",
                                primary,
                                _("Please check that the file is a valid splash "
                                  "theme archive."),
-                               GTK_STOCK_CLOSE, GTK_RESPONSE_ACCEPT, NULL);
+                               _("_Close"), GTK_RESPONSE_ACCEPT, NULL);
           g_free (primary);
         }
 
@@ -491,8 +491,8 @@ config_export_theme (GtkWidget *item,
   dialog = gtk_file_chooser_dialog_new (_("Choose theme filename..."),
                                         GTK_WINDOW (toplevel),
                                         GTK_FILE_CHOOSER_ACTION_SAVE,
-                                        GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                        GTK_STOCK_SAVE, GTK_RESPONSE_OK,
+                                        _("_Cancel"), GTK_RESPONSE_CANCEL,
+                                        _("_Save"), GTK_RESPONSE_OK,
                                         NULL);
   file = g_strconcat (name, ".tar.gz", NULL);
   gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), file);
@@ -617,22 +617,17 @@ config_create_popupmenu (void)
 {
   GtkWidget *menu;
   GtkWidget *item;
-  GtkWidget *image;
 
   menu = gtk_menu_new ();
 
-  item = gtk_image_menu_item_new_with_mnemonic (_("_Install new theme"));
-  image = gtk_image_new_from_stock (GTK_STOCK_ADD, GTK_ICON_SIZE_MENU);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
+  item = gtk_menu_item_new_with_mnemonic (_("_Install new theme"));
   g_object_set_data (G_OBJECT (menu), "install-theme", item);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
   g_signal_connect (G_OBJECT (item), "activate",
                     G_CALLBACK (config_install_theme), menu);
   gtk_widget_show (item);
 
-  item = gtk_image_menu_item_new_with_mnemonic (_("_Remove theme"));
-  image = gtk_image_new_from_stock (GTK_STOCK_REMOVE, GTK_ICON_SIZE_MENU);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
+  item = gtk_menu_item_new_with_mnemonic (_("_Remove theme"));
   g_object_set_data (G_OBJECT (menu), "remove-theme", item);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
 #ifdef RM_CMD
@@ -647,9 +642,7 @@ config_create_popupmenu (void)
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
   gtk_widget_show (item);
 
-  item = gtk_image_menu_item_new_with_mnemonic (_("_Export theme"));
-  image = gtk_image_new_from_stock (GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
+  item = gtk_menu_item_new_with_mnemonic (_("_Export theme"));
   g_object_set_data (G_OBJECT (menu), "export-theme", item);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
   g_signal_connect (G_OBJECT (item), "activate",
@@ -860,12 +853,12 @@ config_create (XfsmSplashRc *rc)
 
   theme = xfsm_splash_rc_read_entry (rc, "Theme", "Default");
 
-  page = gtk_vbox_new (FALSE, BORDER);
+  page = gtk_box_new (GTK_ORIENTATION_VERTICAL, BORDER);
   gtk_container_set_border_width (GTK_CONTAINER (page), BORDER);
 
   frame = xfce_gtk_frame_box_new (_("Balou theme"), &bin);
   gtk_box_pack_start (GTK_BOX (page), frame, TRUE, TRUE, 0);
-  vbox = gtk_vbox_new (FALSE, 0);
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_container_add (GTK_CONTAINER (bin), vbox);
 
   swin = gtk_scrolled_window_new (NULL, NULL);
@@ -951,9 +944,8 @@ config_configure (XfsmSplashConfig *config,
   dialog = gtk_dialog_new_with_buttons (_("Configure Balou..."),
                                         GTK_WINDOW (parent),
                                         GTK_DIALOG_MODAL
-                                        | GTK_DIALOG_NO_SEPARATOR
                                         | GTK_DIALOG_DESTROY_WITH_PARENT,
-                                        GTK_STOCK_CLOSE,
+                                        _("_Close"),
                                         GTK_RESPONSE_CLOSE,
                                         NULL);
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list