From 8d0cc98e4320aa85186ec5d45fe3393ac3fb9601 Mon Sep 17 00:00:00 2001 From: Sam Parkinson Date: Thu, 31 Dec 2015 22:53:47 +1100 Subject: [PATCH 1/2] Set css name for widgets In Gtk+ 3.20, you need to use the css name to select elements, rather than the gtype name. Therefore, these must be added. The css name must be set before the class instances are created, as it effects the class rather than the instance. This is why it must be places after the class definition. --- src/sugar3/graphics/alert.py | 4 ++++ src/sugar3/graphics/icon.py | 2 ++ src/sugar3/graphics/palettewindow.py | 4 +++- src/sugar3/graphics/toolbarbox.py | 2 ++ src/sugar3/graphics/tray.py | 4 ++++ 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/sugar3/graphics/alert.py b/src/sugar3/graphics/alert.py index 70f86954..e5a4d3a9 100644 --- a/src/sugar3/graphics/alert.py +++ b/src/sugar3/graphics/alert.py @@ -209,6 +209,8 @@ class Alert(Gtk.EventBox): def __button_clicked_cb(self, button, response_id): self._response(response_id) +if hasattr(Alert, 'set_css_name'): + Alert.set_css_name('alert') class ConfirmationAlert(Alert): @@ -344,6 +346,8 @@ class _TimeoutIcon(Gtk.Alignment): def set_text(self, text): self._text.set_markup('%s' % GLib.markup_escape_text(str(text))) +if hasattr(_TimeoutIcon, 'set_css_name'): + _TimeoutIcon.set_css_name('timeouticon') class _TimeoutAlert(Alert): diff --git a/src/sugar3/graphics/icon.py b/src/sugar3/graphics/icon.py index 09565692..d2a36f73 100644 --- a/src/sugar3/graphics/icon.py +++ b/src/sugar3/graphics/icon.py @@ -831,6 +831,8 @@ class CanvasIcon(EventIcon): def __palette_popdown_cb(self, palette): self.unset_state_flags(Gtk.StateFlags.PRELIGHT) +if hasattr(CanvasIcon, 'set_css_name'): + CanvasIcon.set_css_name('canvasicon') class CellRendererIcon(Gtk.CellRenderer): diff --git a/src/sugar3/graphics/palettewindow.py b/src/sugar3/graphics/palettewindow.py index 5f59646b..0eafb519 100644 --- a/src/sugar3/graphics/palettewindow.py +++ b/src/sugar3/graphics/palettewindow.py @@ -363,7 +363,7 @@ class _PaletteWindowWidget(Gtk.Window): allocation = self.get_allocation() context = self.get_style_context() - context.add_class('toolitem') + context.add_class('palette') if gap: cr.save() cr.set_source_rgb(0, 0, 0) @@ -406,6 +406,8 @@ class _PaletteWindowWidget(Gtk.Window): self.disconnect_by_func(self.__enter_notify_event_cb) self.disconnect_by_func(self.__leave_notify_event_cb) self.hide() +if hasattr(_PaletteWindowWidget, 'set_css_name'): + _PaletteWindowWidget.set_css_name('palette') class MouseSpeedDetector(GObject.GObject): diff --git a/src/sugar3/graphics/toolbarbox.py b/src/sugar3/graphics/toolbarbox.py index 8de60071..5362dc5d 100644 --- a/src/sugar3/graphics/toolbarbox.py +++ b/src/sugar3/graphics/toolbarbox.py @@ -202,6 +202,8 @@ class ToolbarBox(Gtk.VBox): if button == self.expanded_button: self.remove(button.page_widget) self._expanded_button_index = -1 +if hasattr(ToolbarBox, 'set_css_name'): + ToolbarBox.set_css_name('toolbarbox') class _ToolbarPalette(PaletteWindow): diff --git a/src/sugar3/graphics/tray.py b/src/sugar3/graphics/tray.py index 21f7f0d6..e44334e5 100644 --- a/src/sugar3/graphics/tray.py +++ b/src/sugar3/graphics/tray.py @@ -323,6 +323,8 @@ class HTray(Gtk.EventBox): def scroll_to_item(self, item): self._viewport.scroll_to_item(item) +if hasattr(HTray, 'set_css_name'): + HTray.set_css_name('htray') class VTray(Gtk.EventBox): @@ -414,6 +416,8 @@ class VTray(Gtk.EventBox): def scroll_to_item(self, item): self._viewport.scroll_to_item(item) +if hasattr(VTray, 'set_css_name'): + VTray.set_css_name('VTray') class TrayButton(ToolButton): From 824e6dcb6907df8a27939eb3a123505f5dff63ba Mon Sep 17 00:00:00 2001 From: Sam Parkinson Date: Mon, 15 Feb 2016 20:19:17 +1100 Subject: [PATCH 2/2] Set css class on toolitems when a palette or toolbar popsdown --- src/sugar3/graphics/palettewindow.py | 1 + src/sugar3/graphics/toolbarbox.py | 1 + 2 files changed, 2 insertions(+) diff --git a/src/sugar3/graphics/palettewindow.py b/src/sugar3/graphics/palettewindow.py index 0eafb519..7f105857 100644 --- a/src/sugar3/graphics/palettewindow.py +++ b/src/sugar3/graphics/palettewindow.py @@ -1198,6 +1198,7 @@ class WidgetInvoker(Invoker): context = self.parent.get_style_context() context.add_class('toolitem') + context.add_class('palette-down') gap = _calculate_gap(self.get_rect(), palette.get_rect()) if gap: diff --git a/src/sugar3/graphics/toolbarbox.py b/src/sugar3/graphics/toolbarbox.py index 5362dc5d..ee2b4cb0 100644 --- a/src/sugar3/graphics/toolbarbox.py +++ b/src/sugar3/graphics/toolbarbox.py @@ -130,6 +130,7 @@ class ToolbarButton(ToolButton): alloc = self.get_allocation() context = self.get_style_context() context.add_class('toolitem') + context.add_class('toolbar-down') if not self.is_expanded() or self.props.palette is not None and \ self.props.palette.is_up(): ToolButton.do_draw(self, cr)