[gnome-clocks/clutter] Finish positioning of the widgets
- From: Seif Lotfy <seiflotfy src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-clocks/clutter] Finish positioning of the widgets
- Date: Fri, 24 Aug 2012 20:13:44 +0000 (UTC)
commit 3629279d62bdedf4f966b1d27106a3cd2fcb80f3
Author: Seif Lotfy <seif lotfy com>
Date: Fri Aug 24 22:09:41 2012 +0200
Finish positioning of the widgets
gnomeclocks/app.py | 17 +++++++++++++----
gnomeclocks/widgets.py | 45 +++++++++++++++++++++++++++++++++------------
2 files changed, 46 insertions(+), 16 deletions(-)
---
diff --git a/gnomeclocks/app.py b/gnomeclocks/app.py
index 6139301..6cff068 100644
--- a/gnomeclocks/app.py
+++ b/gnomeclocks/app.py
@@ -58,7 +58,7 @@ class Window(Gtk.ApplicationWindow):
self.notebook.set_show_tabs(False)
self.notebook.set_show_border(False)
- self.toolbar = ClocksToolbar()
+ self.toolbar = ClocksToolbar(embed._selectionToolbar)
vbox.pack_start(self.toolbar, False, False, 0)
vbox.pack_start(self.toolbar.selection_toolbar, False, False, 0)
@@ -141,8 +141,9 @@ class Window(Gtk.ApplicationWindow):
class SelectionToolbar(Gtk.Toolbar):
- def __init__(self):
+ def __init__(self, _selectionToolbar):
Gtk.Toolbar.__init__(self)
+ self._selectionToolbar = _selectionToolbar
self.get_style_context().add_class("clocks-toolbar")
self.set_icon_size(Gtk.IconSize.MENU)
self.get_style_context().add_class(Gtk.STYLE_CLASS_MENUBAR)
@@ -182,6 +183,7 @@ class SelectionToolbar(Gtk.Toolbar):
self.doneButton.get_style_context().add_class('suggested-action')
self.doneButton.set_label(_("Done"))
self.doneButton.set_size_request(64, 34)
+ self.doneButton.connect("clicked", self._on_done_clicked)
self.leftBox = box = Gtk.Box()
box.pack_start(self.doneButton, False, False, 0)
@@ -207,7 +209,14 @@ class SelectionToolbar(Gtk.Toolbar):
def _on_selection_changed(self, view):
selection = view.get_selection()
self.set_selection_label(len(selection))
+ if len(selection) > 0:
+ self._selectionToolbar._fade_in()
+ else:
+ self._selectionToolbar._fade_out()
+ def _on_done_clicked(self, widget):
+ #TODO: do something
+ self._selectionToolbar._fade_out()
class ClockButton(Gtk.RadioButton):
_group = None
@@ -239,7 +248,7 @@ class ClocksToolbar(Gtk.Toolbar):
__gsignals__ = {'view-clock': (GObject.SignalFlags.RUN_LAST,
None, (Clock,))}
- def __init__(self):
+ def __init__(self, selectionToolbar):
Gtk.Toolbar.__init__(self)
self.get_style_context().add_class("clocks-toolbar")
@@ -303,7 +312,7 @@ class ClocksToolbar(Gtk.Toolbar):
box.pack_end(self.applyButton, False, False, 0)
toolbox.pack_start(box, True, True, 0)
- self.selection_toolbar = SelectionToolbar()
+ self.selection_toolbar = SelectionToolbar(selectionToolbar)
self.selection_toolbar.doneButton.connect("clicked",
self._on_selection_mode, False)
diff --git a/gnomeclocks/widgets.py b/gnomeclocks/widgets.py
index d108da3..f678c72 100644
--- a/gnomeclocks/widgets.py
+++ b/gnomeclocks/widgets.py
@@ -27,7 +27,7 @@ import os
import cairo
import time
-SELECTION_TOOLBAR_DEFAULT_WIDTH = 500;
+SELECTION_TOOLBAR_DEFAULT_WIDTH = 300;
# FIXME: Use real sunrise/sunset time in the future
def get_is_day(hour):
@@ -682,9 +682,9 @@ class SelectionToolbar():
def __init__(self, parent_actor):
self._parent_actor = parent_actor
- self.widget = Gtk.Button()
- self.widget.set_label("Delete") #FIXME: Make translatable
- #self.widget.set_icon_size(Gtk.IconSize.LARGE_TOOLBAR)
+ self.widget = Gtk.Toolbar()
+ self.widget.set_show_arrow(False)
+ self.widget.set_icon_size(Gtk.IconSize.LARGE_TOOLBAR)
self.widget.get_style_context().add_class('osd');
self.widget.set_size_request(SELECTION_TOOLBAR_DEFAULT_WIDTH, -1);
@@ -696,10 +696,22 @@ class SelectionToolbar():
constraint.set_source(self._parent_actor)
constraint.set_align_axis(Clutter.AlignAxis.X_AXIS)
constraint.set_factor(0.50)
+ self.actor.add_constraint(constraint)
+
constraint = Clutter.AlignConstraint()
constraint.set_source(self._parent_actor)
constraint.set_align_axis(Clutter.AlignAxis.Y_AXIS)
- constraint.set_factor(0.50)
+ constraint.set_factor(0.95)
+ self.actor.add_constraint(constraint)
+
+ self._leftBox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
+ self._leftGroup = Gtk.ToolItem()
+ self._leftGroup.set_expand(True)
+ self._leftGroup.add(self._leftBox)
+ self.widget.insert(self._leftGroup, -1);
+ self._toolbarDelete = Gtk.Button("Delete") #FIXME: Make translatable
+ self._leftBox.pack_start(self._toolbarDelete, True, True, 0);
+ self._toolbarDelete.connect('clicked', self._on_toolbar_delete)
self.widget.show_all()
def _on_toolbar_delete(self, widget, event):
@@ -715,14 +727,14 @@ class SelectionToolbar():
if self.actor.get_opacity() != 0:
return
else:
- self.actor.opacity = 0
+ self.actor.set_opacity(0)
self.actor.show()
# FIXME: add tween
#Tweener.addTween(self.actor,
# { opacity: 255,
# time: 0.30,
# transition: 'easeOutQuad' });
- self.actor.opacity = 255
+ self.actor.set_opacity(255)
self.actor.show()
def _fade_out(self):
@@ -735,7 +747,7 @@ class SelectionToolbar():
# self.actor.hide();
# },
# onCompleteScope: this });
- self.actor.opacity = 0
+ self.actor.set_opacity(0)
self.actor.hide()
@@ -762,6 +774,8 @@ class Embed (GtkClutter.Embed):
self._overlayLayout.add(self._contentsActor,
Clutter.BinAlignment.FILL, Clutter.BinAlignment.FILL)
+ # pack the main GtkNotebook and a spinnerbox in a BinLayout, so that
+ # we can easily bring them front/back
self._viewLayout = Clutter.BinLayout()
self._viewActor = Clutter.Box()
self._viewActor.set_layout_manager(self._viewLayout)
@@ -770,16 +784,23 @@ class Embed (GtkClutter.Embed):
self._contentsActor.add_actor(self._viewActor)
self._notebook = notebook
- self._selectionToolbar = SelectionToolbar(self._contentsActor)
self._notebookActor = GtkClutter.Actor.new_with_contents(self._notebook)
- self._overlayLayout.add(self._notebookActor,
- Clutter.BinAlignment.FILL,
- Clutter.BinAlignment.FILL)
+ self._viewLayout.add(self._notebookActor,
+ Clutter.BinAlignment.FILL,
+ Clutter.BinAlignment.FILL)
+
+ self._selectionToolbar = SelectionToolbar(self._contentsActor)
self._overlayLayout.add(self._selectionToolbar.actor,
Clutter.BinAlignment.FIXED,
Clutter.BinAlignment.FIXED)
self.show_all()
+ def set_show_selectionbar(show):
+ if show:
+ self._selectionToolbar._fade_in()
+ else:
+ self._selectionToolbar._fade_out()
+
################################################################################
# Main
################################################################################
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]