This is an automated email from the git hooks/post-receive script. a n d r e p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository apps/xfmpc.
commit 34df965887ad1bdaf09c7057e3ececbc99392a0f Author: Johannes Marbach <[email protected]> Date: Fri Feb 15 22:12:50 2019 +0100 Fix (most) GTK+3 deprecations --- src/dbbrowser.vala | 65 +++++++++++++--------------- src/extended-interface.vala | 42 +++++------------- src/interface.vala | 19 +++++---- src/main-window.vala | 4 +- src/mpdclient.c | 16 +++---- src/playlist.vala | 25 ++++++----- src/preferences-dialog.vala | 53 +++++++++++++---------- src/shortcuts-dialog.vala | 20 ++++++--- src/song-dialog.vala | 2 +- src/xfce-arrow-button.c | 101 ++++++++++++++++++++++++++++---------------- 10 files changed, 183 insertions(+), 164 deletions(-) diff --git a/src/dbbrowser.vala b/src/dbbrowser.vala index 6893794..d27a808 100644 --- a/src/dbbrowser.vala +++ b/src/dbbrowser.vala @@ -21,7 +21,7 @@ using Gtk; namespace Xfmpc { - public class Dbbrowser : VBox { + public class Dbbrowser : Box { private unowned Xfmpc.Mpdclient mpdclient; private unowned Xfmpc.Preferences preferences; @@ -30,7 +30,7 @@ namespace Xfmpc { private Gtk.TreeView treeview; private Gtk.Menu menu; private Gtk.Entry search_entry; - private Gtk.ImageMenuItem mi_browse; + private Gtk.MenuItem mi_browse; private string wdir; private string last_wdir; @@ -55,6 +55,8 @@ namespace Xfmpc { this.wdir = ""; this.last_wdir = ""; + set_orientation (Gtk.Orientation.VERTICAL); + this.store = new Gtk.ListStore (Columns.N_COLUMNS, typeof (int), typeof (Gdk.Pixbuf), @@ -69,7 +71,6 @@ namespace Xfmpc { this.treeview.set_enable_search (true); this.treeview.set_search_column (Columns.COLUMN_BASENAME); this.treeview.set_headers_visible (false); - this.treeview.set_rules_hint (true); this.treeview.set_model (this.store); var cell_pixbuf = new Gtk.CellRendererPixbuf (); @@ -89,24 +90,20 @@ namespace Xfmpc { this.menu = new Gtk.Menu (); - var mi = new Gtk.ImageMenuItem.from_stock (Gtk.Stock.ADD, null); + var mi = new Gtk.MenuItem.with_mnemonic (_("Add")); this.menu.append (mi); mi.activate.connect (add_selected_rows); - mi = new Gtk.ImageMenuItem.with_mnemonic (_("Replace")); - var image = new Gtk.Image.from_stock (Gtk.Stock.CUT, Gtk.IconSize.MENU); - mi.set_image (image); + mi = new Gtk.MenuItem.with_mnemonic (_("Replace")); this.menu.append (mi); mi.activate.connect (cb_replace_with_selected_rows); - this.mi_browse = new Gtk.ImageMenuItem.with_mnemonic (_("Browse")); - image = new Gtk.Image.from_stock (Gtk.Stock.OPEN, Gtk.IconSize.MENU); - this.mi_browse.set_image (image); + this.mi_browse = new Gtk.MenuItem.with_mnemonic (_("Browse")); this.menu.append (this.mi_browse); this.mi_browse.activate.connect (cb_browse); this.menu.show_all (); this.search_entry = new Entry (); - this.search_entry.set_icon_from_stock (EntryIconPosition.PRIMARY, Gtk.Stock.FIND); + this.search_entry.set_icon_from_icon_name (EntryIconPosition.PRIMARY, "edit-find"); this.search_entry.set_icon_activatable (EntryIconPosition.PRIMARY, false); this.search_entry.set_icon_activatable (EntryIconPosition.SECONDARY, true); @@ -181,8 +178,9 @@ namespace Xfmpc { public void append (string filename, string basename, bool is_dir, bool is_bold) { Gtk.TreeIter iter; - var pixbuf = this.treeview.render_icon (is_dir ? Gtk.Stock.DIRECTORY : Gtk.Stock.FILE, - Gtk.IconSize.MENU, null); + var pixbuf = Gtk.IconTheme.get_default () + .load_icon(is_dir ? "folder" : "text-x-generic", + Gtk.IconSize.MENU, 0); this.store.append (out iter); this.store.set (iter, @@ -236,11 +234,8 @@ namespace Xfmpc { bool no_result_buf = false, no_result = false; - Gdk.Color color; - Gdk.Color.parse ("white", out color); - color.red = 0xFFFF; - color.green = 0x6666; - color.blue = 0x6666; + var color = new Gdk.RGBA (); + color.parse ("#F66"); if (i == 0) no_result = true; @@ -251,30 +246,30 @@ namespace Xfmpc { #if MORE_FUNKY_COLOR_ON_SEARCH_ENTRY this.search_entry.modify_base (Gtk.StateType.NORMAL, color); #endif - this.search_entry.modify_bg (Gtk.StateType.NORMAL, color); - this.search_entry.modify_bg (Gtk.StateType.SELECTED, color); + this.search_entry.override_background_color (Gtk.StateFlags.NORMAL, color); + this.search_entry.override_background_color (Gtk.StateFlags.SELECTED, color); } else if (no_result == no_result_buf && !no_result) { #if MORE_FUNKY_COLOR_ON_SEARCH_ENTRY - this.search_entry.modify_base (Gtk.StateType.NORMAL, null); + this.search_entry.modify_base (Gtk.StateFlags.NORMAL, null); #endif - this.search_entry.modify_bg (Gtk.StateType.NORMAL, null); - this.search_entry.modify_bg (Gtk.StateType.SELECTED, null); + this.search_entry.override_background_color (Gtk.StateFlags.NORMAL, null); + this.search_entry.override_background_color (Gtk.StateFlags.SELECTED, null); } if (i == 0) { #if MORE_FUNKY_COLOR_ON_SEARCH_ENTRY - this.search_entry.modify_base (Gtk.StateType.NORMAL, color); + this.search_entry.modify_base (Gtk.StateFlags.NORMAL, color); #endif - this.search_entry.modify_bg (Gtk.StateType.NORMAL, color); - this.search_entry.modify_bg (Gtk.StateType.SELECTED, color); + this.search_entry.override_background_color (Gtk.StateFlags.NORMAL, color); + this.search_entry.override_background_color (Gtk.StateFlags.SELECTED, color); } else if (no_result) { #if MORE_FUNKY_COLOR_ON_SEARCH_ENTRY - this.search_entry.modify_base (Gtk.StateType.NORMAL, null); + this.search_entry.modify_base (Gtk.StateFlags.NORMAL, null); #endif - this.search_entry.modify_bg (Gtk.StateType.NORMAL, null); - this.search_entry.modify_bg (Gtk.StateType.SELECTED, null); + this.search_entry.override_background_color (Gtk.StateFlags.NORMAL, null); + this.search_entry.override_background_color (Gtk.StateFlags.SELECTED, null); } } @@ -293,7 +288,7 @@ namespace Xfmpc { else this.mi_browse.hide (); - this.menu.popup (null, null, null, 0, get_current_event_time ()); + this.menu.popup_at_pointer (null); } /* @@ -440,10 +435,10 @@ namespace Xfmpc { /* revert possible previous applied color */ #if MORE_FUNKY_COLOR_ON_SEARCH_ENTRY - this.search_entry.modify_base (Gtk.StateType.NORMAL, null); + this.search_entry.modify_base (Gtk.StateFlags.NORMAL, null); #endif - this.search_entry.modify_bg (Gtk.StateType.NORMAL, null); - this.search_entry.modify_bg (Gtk.StateType.SELECTED, null); + this.search_entry.override_background_color (Gtk.StateFlags.NORMAL, null); + this.search_entry.override_background_color (Gtk.StateFlags.SELECTED, null); return; } @@ -464,10 +459,10 @@ namespace Xfmpc { private void cb_search_entry_changed () { if (search_entry.get_text () != "") { - search_entry.set_icon_from_stock (EntryIconPosition.SECONDARY, Gtk.Stock.CLEAR); + search_entry.set_icon_from_icon_name (EntryIconPosition.SECONDARY, "edit-clear"); } else { - search_entry.set_icon_from_stock (EntryIconPosition.SECONDARY, null); + search_entry.set_icon_from_icon_name (EntryIconPosition.SECONDARY, null); } if (this.search_timeout > 0) diff --git a/src/extended-interface.vala b/src/extended-interface.vala index d82c2f2..8cc1687 100644 --- a/src/extended-interface.vala +++ b/src/extended-interface.vala @@ -21,7 +21,7 @@ using Gtk; namespace Xfmpc { - public class ExtendedInterface : VBox { + public class ExtendedInterface : Box { private unowned Xfmpc.Mpdclient mpdclient; private unowned Xfmpc.Preferences preferences; @@ -52,6 +52,8 @@ namespace Xfmpc { this.mpdclient = Xfmpc.Mpdclient.get_default (); this.preferences = Xfmpc.Preferences.get_default (); + set_orientation (Gtk.Orientation.VERTICAL); + var hbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 2); pack_start (hbox, false, false, 2); @@ -60,7 +62,7 @@ namespace Xfmpc { button.clicked.connect (cb_playlist_clear); hbox.pack_start (button, false, false, 0); - var image = new Gtk.Image.from_stock (Gtk.Stock.NEW, Gtk.IconSize.MENU); + var image = new Gtk.Image.from_icon_name ("document-new", Gtk.IconSize.MENU); button.set_image (image); button = new Gtk.Button (); @@ -68,7 +70,7 @@ namespace Xfmpc { button.clicked.connect (cb_database_refresh); hbox.pack_start (button, false, false, 0); - image = new Gtk.Image.from_stock (Gtk.Stock.REFRESH, Gtk.IconSize.MENU); + image = new Gtk.Image.from_icon_name ("view-refresh", Gtk.IconSize.MENU); button.set_image (image); this.context_button = new Xfce.ArrowButton (Gtk.ArrowType.DOWN); @@ -134,32 +136,10 @@ namespace Xfmpc { this.single.set_active (this.mpdclient.get_single ()); this.consume.set_active (this.mpdclient.get_consume ()); - this.context_menu.popup (null, null, - (Gtk.MenuPositionFunc) this.position_context_menu, - 0, get_current_event_time ()); - } - - private static void position_context_menu (Gtk.Menu menu, int x, int y, bool push_in) { - Gtk.Allocation allocation; - int root_x; - int root_y; - int pref_height; - - menu.get_preferred_height (null, out pref_height); - (((Gtk.Widget) context_button).get_window ()).get_origin (out root_x, out root_y); - ((Gtk.Widget) context_button).get_allocation (out allocation); - - x = root_x + allocation.x; - y = root_y + allocation.y; - x = 0; - y = 0; - - if (y > Gdk.Screen.height () - pref_height) - y = Gdk.Screen.height () - pref_height; - else if (y < 0) - y = 0; - - push_in = false; + this.context_menu.popup_at_widget ((Gtk.Widget) this.context_button, + Gdk.Gravity.SOUTH_WEST, + Gdk.Gravity.NORTH_WEST, + null); } private void context_menu_new (Gtk.Widget attach_widget) { @@ -187,7 +167,7 @@ namespace Xfmpc { var separator = new Gtk.SeparatorMenuItem (); this.context_menu.append (separator); - var imi = new Gtk.ImageMenuItem.from_stock (Gtk.Stock.PREFERENCES, null); + var imi = new Gtk.MenuItem.with_mnemonic (_("_Preferences")); imi.activate.connect (cb_preferences); this.context_menu.append (imi); @@ -195,7 +175,7 @@ namespace Xfmpc { mi.activate.connect (cb_shortcuts); this.context_menu.append (mi); - imi = new Gtk.ImageMenuItem.from_stock (Gtk.Stock.ABOUT, null); + imi = new Gtk.MenuItem.with_mnemonic (_("_About")); imi.activate.connect (cb_about); this.context_menu.append (imi); diff --git a/src/interface.vala b/src/interface.vala index a942e58..4918cd3 100644 --- a/src/interface.vala +++ b/src/interface.vala @@ -21,7 +21,7 @@ using Gtk; namespace Xfmpc { - public class Interface : VBox { + public class Interface : Box { private unowned Xfmpc.Mpdclient mpdclient; private unowned Xfmpc.Preferences preferences; @@ -40,19 +40,20 @@ namespace Xfmpc { this.mpdclient = Xfmpc.Mpdclient.get_default (); this.preferences = Xfmpc.Preferences.get_default (); + set_orientation (Gtk.Orientation.VERTICAL); set_border_width (4); - var image = new Gtk.Image.from_stock (Gtk.Stock.MEDIA_PREVIOUS, Gtk.IconSize.BUTTON); + var image = new Gtk.Image.from_icon_name ("media-skip-backward", Gtk.IconSize.BUTTON); this.button_prev = new Gtk.Button (); this.button_prev.set_relief (Gtk.ReliefStyle.NONE); this.button_prev.add (image); - image = new Gtk.Image.from_stock (Gtk.Stock.MEDIA_PLAY, Gtk.IconSize.BUTTON); + image = new Gtk.Image.from_icon_name ("media-playback-start", Gtk.IconSize.BUTTON); this.button_pp = new Gtk.Button (); this.button_pp.set_relief (Gtk.ReliefStyle.NONE); this.button_pp.add (image); - image = new Gtk.Image.from_stock (Gtk.Stock.MEDIA_NEXT, Gtk.IconSize.BUTTON); + image = new Gtk.Image.from_icon_name ("media-skip-forward", Gtk.IconSize.BUTTON); this.button_next = new Gtk.Button (); this.button_next.set_relief (Gtk.ReliefStyle.NONE); this.button_next.add (image); @@ -86,7 +87,8 @@ namespace Xfmpc { title.set_attributes (attrs); title.set_selectable (true); title.set_ellipsize (Pango.EllipsizeMode.END); - title.set_alignment (0, (float) 0.5); + title.xalign = 0.0f; + title.yalign = 0.5f; /* Subtitle */ attrs = new Pango.AttrList (); @@ -99,7 +101,8 @@ namespace Xfmpc { this.subtitle.set_attributes (attrs); this.subtitle.set_selectable (true); this.subtitle.set_ellipsize (Pango.EllipsizeMode.END); - this.subtitle.set_alignment (0, (float) 0.5); + this.subtitle.xalign = 0.0f; + this.subtitle.yalign = 0.5f; /* === Containers === */ var box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0); @@ -151,9 +154,9 @@ namespace Xfmpc { var image = (Gtk.Image) this.button_pp.get_child (); if (play == true) - image.set_from_stock (Gtk.Stock.MEDIA_PAUSE, Gtk.IconSize.BUTTON); + image.set_from_icon_name ("media-playback-pause", Gtk.IconSize.BUTTON); else - image.set_from_stock (Gtk.Stock.MEDIA_PLAY, Gtk.IconSize.BUTTON); + image.set_from_icon_name ("media-playback-start", Gtk.IconSize.BUTTON); } private bool cb_progress_box_motion_event (Gdk.EventMotion event) { diff --git a/src/main-window.vala b/src/main-window.vala index a54ecfa..5079c94 100644 --- a/src/main-window.vala +++ b/src/main-window.vala @@ -96,7 +96,7 @@ namespace Xfmpc { this.vbox.pack_start (this.@interface, false, false, 4); /* Separator */ - var separator = new Gtk.HSeparator (); + var separator = new Gtk.Separator (Gtk.Orientation.HORIZONTAL); this.vbox.pack_start (separator, false, false, 0); /* ExtendedInterface */ @@ -151,7 +151,7 @@ namespace Xfmpc { private void status_icon_popup_menu (uint button, uint activate_time) { if (this.status_icon_menu == null) { this.status_icon_menu = new Gtk.Menu (); - var mi = new Gtk.ImageMenuItem.from_stock (Gtk.Stock.QUIT, null); + var mi = new Gtk.MenuItem.with_mnemonic (_("Quit")); mi.activate.connect (Gtk.main_quit); this.status_icon_menu.add (mi); this.status_icon_menu.show_all (); diff --git a/src/mpdclient.c b/src/mpdclient.c index cdcd74b..61ffcee 100644 --- a/src/mpdclient.c +++ b/src/mpdclient.c @@ -106,7 +106,7 @@ struct _XfmpcMpdclientPrivate gboolean env_cached; gboolean connecting; guint connection_count; - GMutex *mutex; + GMutex mutex; }; @@ -274,9 +274,7 @@ xfmpc_mpdclient_init (XfmpcMpdclient *mpdclient) XfmpcMpdclientPrivate *priv = mpdclient->priv = GET_PRIVATE (mpdclient); priv->mi = mpd_new_default (); - - if (!g_thread_supported ()) g_thread_init (NULL); - priv->mutex = g_mutex_new (); + g_mutex_init (&priv->mutex); mpd_signal_connect_status_changed (priv->mi, (StatusChangedCallback)cb_status_changed, mpdclient); } @@ -288,7 +286,7 @@ xfmpc_mpdclient_finalize (GObject *object) XfmpcMpdclientPrivate *priv = XFMPC_MPDCLIENT (mpdclient)->priv; mpd_free (priv->mi); - g_mutex_free (priv->mutex); + g_mutex_clear (&priv->mutex); (*G_OBJECT_CLASS (parent_class)->finalize) (object); } @@ -403,7 +401,7 @@ xfmpc_mpdclient_connect (XfmpcMpdclient *mpdclient) return TRUE; /* return FALSE if a we are already trying to connect to mpd */ - if (!g_mutex_trylock (priv->mutex)) + if (!g_mutex_trylock (&priv->mutex)) { g_warning ("Already connecting to mpd"); return FALSE; @@ -411,8 +409,8 @@ xfmpc_mpdclient_connect (XfmpcMpdclient *mpdclient) priv->connecting = TRUE; - thread = g_thread_create ((GThreadFunc) xfmpc_mpdclient_connect_thread, - mpdclient, TRUE, NULL); + thread = g_thread_new ("connection thread", (GThreadFunc) xfmpc_mpdclient_connect_thread, + mpdclient); while (priv->connecting) { @@ -425,7 +423,7 @@ xfmpc_mpdclient_connect (XfmpcMpdclient *mpdclient) g_signal_emit (mpdclient, signals[SIG_CONNECTED], 0); - g_mutex_unlock (priv->mutex); + g_mutex_unlock (&priv->mutex); return TRUE; } diff --git a/src/playlist.vala b/src/playlist.vala index 1ed9a5e..fe65df2 100644 --- a/src/playlist.vala +++ b/src/playlist.vala @@ -21,7 +21,7 @@ using Gtk; namespace Xfmpc { - public class Playlist : VBox { + public class Playlist : Box { private unowned Xfmpc.Mpdclient mpdclient; private unowned Xfmpc.Preferences preferences; @@ -32,8 +32,8 @@ namespace Xfmpc { private Gtk.Menu menu; private static Gtk.Entry filter_entry; - private Gtk.ImageMenuItem mi_browse; - private Gtk.ImageMenuItem mi_information; + private Gtk.MenuItem mi_browse; + private Gtk.MenuItem mi_information; private int current = 0; private bool autocenter; @@ -52,6 +52,8 @@ namespace Xfmpc { this.mpdclient = Xfmpc.Mpdclient.get_default (); this.preferences = Xfmpc.Preferences.get_default (); + set_orientation (Gtk.Orientation.VERTICAL); + this.autocenter = this.preferences.playlist_autocenter; this.store = new Gtk.ListStore (Columns.N_COLUMNS, @@ -70,7 +72,6 @@ namespace Xfmpc { this.treeview.set_rubber_banding (true); this.treeview.set_enable_search (false); this.treeview.set_headers_visible (false); - this.treeview.set_rules_hint (true); this.treeview.set_model (this.filter); var cell = new Gtk.CellRendererText (); @@ -104,22 +105,20 @@ namespace Xfmpc { this.menu = new Gtk.Menu (); - var mi = new Gtk.ImageMenuItem.from_stock (Gtk.Stock.REMOVE, null); + var mi = new Gtk.MenuItem.with_mnemonic (_("Remove")); this.menu.append (mi); mi.activate.connect (delete_selection); - this.mi_browse = new Gtk.ImageMenuItem.with_mnemonic (_("Browse")); - var image = new Gtk.Image.from_stock (Gtk.Stock.OPEN, Gtk.IconSize.MENU); - this.mi_browse.set_image (image); + this.mi_browse = new Gtk.MenuItem.with_mnemonic (_("Browse")); this.menu.append (this.mi_browse); this.mi_browse.activate.connect (cb_browse_selection); - this.mi_information = new Gtk.ImageMenuItem.from_stock (Gtk.Stock.INFO, null); + this.mi_information = new Gtk.MenuItem.with_mnemonic (_("Info")); this.menu.append (mi_information); this.mi_information.activate.connect (cb_info_selection); this.menu.show_all (); this.filter_entry = new Entry (); - this.filter_entry.set_icon_from_stock (EntryIconPosition.PRIMARY, Gtk.Stock.FIND); + this.filter_entry.set_icon_from_icon_name (EntryIconPosition.PRIMARY, "edit-find"); this.filter_entry.set_icon_activatable (EntryIconPosition.PRIMARY, false); this.filter_entry.set_icon_activatable (EntryIconPosition.SECONDARY, true); @@ -316,7 +315,7 @@ namespace Xfmpc { } private void menu_popup () { - menu.popup (null, null, null, 0, get_current_event_time ()); + menu.popup_at_pointer (null); } private void cb_filter_entry_activated () { @@ -354,10 +353,10 @@ namespace Xfmpc { private void cb_filter_entry_changed () { if (filter_entry.get_text () != "") { - filter_entry.set_icon_from_stock (EntryIconPosition.SECONDARY, Gtk.Stock.CLEAR); + filter_entry.set_icon_from_icon_name (EntryIconPosition.SECONDARY, "edit-clear"); } else { - filter_entry.set_icon_from_stock (EntryIconPosition.SECONDARY, null); + filter_entry.set_icon_from_icon_name (EntryIconPosition.SECONDARY, null); } this.filter.refilter (); } diff --git a/src/preferences-dialog.vala b/src/preferences-dialog.vala index cca9633..36e10d4 100644 --- a/src/preferences-dialog.vala +++ b/src/preferences-dialog.vala @@ -102,7 +102,7 @@ namespace Xfmpc { this.entry_passwd.set_text (this.preferences.mpd_password); hbox.pack_start (this.entry_passwd, true, true, 0); - var button = new Gtk.Button.from_stock (Gtk.Stock.APPLY); + var button = new Gtk.Button.with_label (_("Apply")); button.clicked.connect (cb_update_mpd); vbox2.pack_start (button, true, true, 0); @@ -172,52 +172,61 @@ namespace Xfmpc { label = new Gtk.Label (_("Available parameters:")); vbox2.pack_start (label, true, true, 0); - var table = new Gtk.Table (2, 6, true); - table.set_col_spacings (6); - table.set_row_spacings (6); + var grid = new Gtk.Grid(); + grid.set_column_spacing (6); + grid.set_row_spacing (6); + grid.set_column_homogeneous(true); var attrs = new Pango.AttrList (); attrs.insert (Pango.attr_scale_new ((double) Pango.Scale.SMALL)); label = new Gtk.Label (_("%a: Artist")); label.set_attributes (attrs); - label.set_alignment (0, 0.5f); - table.attach_defaults (label, 1, 2, 0, 1); + label.xalign = 0.0f; + label.yalign = 0.5f; + grid.attach (label, 1, 0, 1, 1); label = new Gtk.Label (_("%A: Album")); label.set_attributes (attrs); - label.set_alignment (0, 0.5f); - table.attach_defaults (label, 1, 2, 1, 2); + label.xalign = 0.0f; + label.yalign = 0.5f; + grid.attach (label, 1, 1, 1, 1); label = new Gtk.Label (_("%t: Title")); label.set_attributes (attrs); - label.set_alignment (0, 0.5f); - table.attach_defaults (label, 2, 3, 0, 1); + label.xalign = 0.0f; + label.yalign = 0.5f; + grid.attach (label, 2, 0, 1, 1); label = new Gtk.Label (_("%D: Disc")); label.set_attributes (attrs); - label.set_alignment (0, 0.5f); - table.attach_defaults (label, 2, 3, 1, 2); + label.xalign = 0.0f; + label.yalign = 0.5f; + grid.attach (label, 2, 1, 1, 1); label = new Gtk.Label (_("%f: File")); label.set_attributes (attrs); - label.set_alignment (0, 0.5f); - table.attach_defaults (label, 3, 4, 0, 1); + label.xalign = 0.0f; + label.yalign = 0.5f; + grid.attach (label, 3, 0, 1, 1); label = new Gtk.Label (_("%g: Genre")); label.set_attributes (attrs); - label.set_alignment (0, 0.5f); - table.attach_defaults (label, 3, 4, 1, 2); + label.xalign = 0.0f; + label.yalign = 0.5f; + grid.attach (label, 3, 1, 1, 1); label = new Gtk.Label (_("%d: Date")); label.set_attributes (attrs); - label.set_alignment (0, 0.5f); - table.attach_defaults (label, 4, 5, 0, 1); + label.xalign = 0.0f; + label.yalign = 0.5f; + grid.attach (label, 4, 0, 1, 1); label = new Gtk.Label (_("%T: Track")); label.set_attributes (attrs); - label.set_alignment (0, 0.5f); - table.attach_defaults (label, 4, 5, 1, 2); + label.xalign = 0.0f; + label.yalign = 0.5f; + grid.attach (label, 4, 1, 1, 1); - vbox2.pack_start (table, true, true, 0); + vbox2.pack_start (grid, true, true, 0); - add_button (Gtk.Stock.CLOSE, Gtk.ResponseType.CLOSE); + add_button (_("Close"), Gtk.ResponseType.CLOSE); show_all (); diff --git a/src/shortcuts-dialog.vala b/src/shortcuts-dialog.vala index db3374a..428f2fd 100644 --- a/src/shortcuts-dialog.vala +++ b/src/shortcuts-dialog.vala @@ -28,7 +28,7 @@ namespace Xfmpc { this.title = _("Xfmpc Shortcuts"); this.subtitle = _("Control your MPD client with your keyboard"); - add_button (Gtk.Stock.CLOSE, Gtk.ResponseType.CLOSE); + add_button (_("Close"), Gtk.ResponseType.CLOSE); this.response.connect ((response) => { switch (response) { case Gtk.ResponseType.CLOSE: @@ -46,27 +46,33 @@ namespace Xfmpc { /* Shortcuts labels */ var label = new Gtk.Label (_("Quit: CTRL+q")); - label.set_alignment (0.0f, 0.5f); + label.xalign = 0.0f; + label.yalign = 0.5f; vbox.add (label); label = new Gtk.Label (_("Previous: CTRL+b")); - label.set_alignment (0.0f, 0.5f); + label.xalign = 0.0f; + label.yalign = 0.5f; vbox.add (label); label = new Gtk.Label (_("Play/Pause: CTRL+p")); - label.set_alignment (0.0f, 0.5f); + label.xalign = 0.0f; + label.yalign = 0.5f; vbox.add (label); label = new Gtk.Label (_("Stop: CTRL+s")); - label.set_alignment (0.0f, 0.5f); + label.xalign = 0.0f; + label.yalign = 0.5f; vbox.add (label); label = new Gtk.Label (_("Next: CTRL+f")); - label.set_alignment (0.0f, 0.5f); + label.xalign = 0.0f; + label.yalign = 0.5f; vbox.add (label); label = new Gtk.Label (_("Volume: CTRL+v")); - label.set_alignment (0.0f, 0.5f); + label.xalign = 0.0f; + label.yalign = 0.5f; vbox.add (label); show_all (); diff --git a/src/song-dialog.vala b/src/song-dialog.vala index 54fc12f..844e522 100644 --- a/src/song-dialog.vala +++ b/src/song-dialog.vala @@ -99,7 +99,7 @@ namespace Xfmpc { get_content_area ().pack_start (frame, true, true, 0); - add_button (Gtk.Stock.CLOSE, Gtk.ResponseType.CLOSE); + add_button (_("Close"), Gtk.ResponseType.CLOSE); show_all (); diff --git a/src/xfce-arrow-button.c b/src/xfce-arrow-button.c index d63b508..cd05f93 100644 --- a/src/xfce-arrow-button.c +++ b/src/xfce-arrow-button.c @@ -52,28 +52,34 @@ enum PROP_ARROW_TYPE }; -static void xfce_arrow_button_class_init (XfceArrowButtonClass *klass); -static void xfce_arrow_button_init (XfceArrowButton *button); -static void xfce_arrow_button_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void xfce_arrow_button_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static gint xfce_arrow_button_draw (GtkWidget *widget, - cairo_t *cr, - gpointer user_data); -static void xfce_arrow_button_add (GtkContainer *container, - GtkWidget *child); -static GType xfce_arrow_button_child_type (GtkContainer *container); -static void xfce_arrow_button_get_preferred_width (GtkWidget *widget, - gint *minimal_width, - gint *natural_width); -static void xfce_arrow_button_get_preferred_height (GtkWidget *widget, - gint *minimal_height, - gint *natural_height); +typedef struct { + gint x; + gint y; +} xfce_arrow_button_thickness; + +static void xfce_arrow_button_class_init (XfceArrowButtonClass *klass); +static void xfce_arrow_button_init (XfceArrowButton *button); +static void xfce_arrow_button_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void xfce_arrow_button_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static gboolean xfce_arrow_button_draw (GtkWidget *widget, + cairo_t *cr); +static void xfce_arrow_button_add (GtkContainer *container, + GtkWidget *child); +static void xfce_arrow_button_get_thickness (GtkStyleContext *context, + xfce_arrow_button_thickness *thickness); +static GType xfce_arrow_button_child_type (GtkContainer *container); +static void xfce_arrow_button_get_preferred_width (GtkWidget *widget, + gint *minimal_width, + gint *natural_width); +static void xfce_arrow_button_get_preferred_height (GtkWidget *widget, + gint *minimal_height, + gint *natural_height); /* global vars */ @@ -221,25 +227,23 @@ xfce_arrow_button_get_property (GObject *object, -static gint +static gboolean xfce_arrow_button_draw (GtkWidget *widget, - cairo_t *cr, - gpointer user_data) + cairo_t *cr) { gint x, y, w; - GtkStyle *style; GtkStyleContext *context; + xfce_arrow_button_thickness thickness; GtkAllocation allocation; if (G_LIKELY (gtk_widget_is_drawable (widget))) { - style = gtk_widget_get_style (widget); context = gtk_widget_get_style_context (widget); - + xfce_arrow_button_get_thickness (context, &thickness); gtk_widget_get_allocation (widget, &allocation); - w = MIN (allocation.height - 2 * style->ythickness, - allocation.width - 2 * style->xthickness); + w = MIN (allocation.height - 2 * thickness.y, + allocation.width - 2 * thickness.x); w = MIN (w, ARROW_WIDTH); x = (allocation.width - w) / 2; @@ -265,13 +269,15 @@ xfce_arrow_button_get_preferred_width (GtkWidget *widget, gint *minimal_width, gint *natural_width) { - GtkStyle *style; + GtkStyleContext *context; + xfce_arrow_button_thickness thickness; gint size; - style = gtk_widget_get_style (widget); + context = gtk_widget_get_style_context (widget); + xfce_arrow_button_get_thickness (context, &thickness); size = ARROW_WIDTH + ARROW_PADDING + - 2 * MAX (style->xthickness, style->ythickness); + 2 * MAX (thickness.x, thickness.y); *minimal_width = *natural_width = size; } @@ -283,13 +289,15 @@ xfce_arrow_button_get_preferred_height (GtkWidget *widget, gint *minimal_height, gint *natural_height) { - GtkStyle *style; + GtkStyleContext *context; + xfce_arrow_button_thickness thickness; gint size; - style = gtk_widget_get_style (widget); + context = gtk_widget_get_style_context (widget); + xfce_arrow_button_get_thickness (context, &thickness); size = ARROW_WIDTH + ARROW_PADDING + - 2 * MAX (style->xthickness, style->ythickness); + 2 * MAX (thickness.x, thickness.y); *minimal_height = *natural_height = size; } @@ -297,6 +305,27 @@ xfce_arrow_button_get_preferred_height (GtkWidget *widget, static void +xfce_arrow_button_get_thickness (GtkStyleContext *context, xfce_arrow_button_thickness *thickness) +{ + GtkBorder border; + GtkBorder margin; + GtkBorder padding; + gint xthickness; + gint ythickness; + + gtk_style_context_get_border (context, GTK_STATE_FLAG_NORMAL, &border); + gtk_style_context_get_margin (context, GTK_STATE_FLAG_NORMAL, &margin); + gtk_style_context_get_padding (context, GTK_STATE_FLAG_NORMAL, &padding); + + thickness->x = MAX (border.left + margin.left + padding.left, + border.right + margin.right + padding.right); + thickness->y = MAX (border.top + margin.top + padding.top, + border.bottom + margin.bottom + padding.bottom); +} + + + +static void xfce_arrow_button_add (GtkContainer *container, GtkWidget *child) { -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list [email protected] https://mail.xfce.org/mailman/listinfo/xfce4-commits
