[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