[pitivi] Implement basic folding and add TwoStateButton
- From: Jean-FranÃois Fortin Tam <jfft src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] Implement basic folding and add TwoStateButton
- Date: Sat, 21 Jul 2012 19:57:26 +0000 (UTC)
commit 7589057fca30786d8f09fbd1fd876fc7ade7df8b
Author: Paul Lange <palango gmx de>
Date: Wed May 2 19:55:21 2012 -0500
Implement basic folding and add TwoStateButton
pitivi/timeline/layercontrols.py | 45 ++++++++++++++++++++++++++++++++++++-
pitivi/timeline/timeline.py | 2 +-
2 files changed, 44 insertions(+), 3 deletions(-)
---
diff --git a/pitivi/timeline/layercontrols.py b/pitivi/timeline/layercontrols.py
index 0a316c7..556d956 100644
--- a/pitivi/timeline/layercontrols.py
+++ b/pitivi/timeline/layercontrols.py
@@ -1,3 +1,4 @@
+# -- coding: utf-8 --
# PiTiVi , Non-linear video editor
#
# pitivi/timeline/layercontrols.py
@@ -20,6 +21,7 @@
# Boston, MA 02110-1301, USA.
import gtk
+import gobject
from gettext import gettext as _
@@ -49,9 +51,10 @@ class BaseLayerControl(gtk.Table, Loggable):
# Folding button
# TODO use images
- self.fold_button = gtk.Button("V")
+ self.fold_button = TwoStateButton("â", "â")
self.fold_button.set_relief(gtk.RELIEF_NONE)
self.fold_button.set_focus_on_click(False)
+ self.fold_button.connect("changed-state", self._foldingChangedCb)
self.attach(self.fold_button, 0, 1, 0, 1)
# Name entry
@@ -89,6 +92,12 @@ class BaseLayerControl(gtk.Table, Loggable):
self.setTrack(track)
self._setSize(layers_count=1)
+ def _foldingChangedCb(self, button, state):
+ if state:
+ self.lower_hbox.show()
+ else:
+ self.lower_hbox.hide()
+
def getTrack(self):
return self._track
@@ -132,7 +141,7 @@ class VideoLayerControl(BaseLayerControl):
opacity = gtk.Label(_("Opacity:"))
# Opacity scale
- opacity_adjust = gtk.Adjustment(value=100, upper=100, step_incr=5, page_incr=10, page_size=10)
+ opacity_adjust = gtk.Adjustment(value=100, upper=100, step_incr=5, page_incr=10)
self.opacity_scale = gtk.HScale(opacity_adjust)
self.opacity_scale.set_value_pos(gtk.POS_LEFT)
self.opacity_scale.set_digits(0)
@@ -165,3 +174,35 @@ class AudioLayerControl(BaseLayerControl):
self.lower_hbox.pack_start(panning, False, False, 2)
self.lower_hbox.pack_start(self.panning_scale, True, True, 3)
self.lower_hbox.show_all()
+
+
+class TwoStateButton(gtk.Button):
+ """
+ Button with two states and according labels/images
+ """
+
+ __gsignals__ = {
+ "changed-state": (
+ gobject.SIGNAL_RUN_LAST,
+ gobject.TYPE_NONE,
+ (gobject.TYPE_PYOBJECT,),)
+ }
+
+ def __init__(self, state1="", state2=""):
+ gtk.Button.__init__(self)
+ self.set_relief(gtk.RELIEF_NONE)
+ self.connect("clicked", self._clickedCb)
+
+ self.set_states(state1, state2)
+ self._state = True
+
+ self.set_label(self.states[self._state])
+
+ def set_states(self, state1, state2):
+ self.states = {True: state1, False: state2}
+
+ def _clickedCb(self, widget):
+ self._state = not self._state
+
+ self.set_label(self.states[self._state])
+ self.emit("changed-state", self._state)
diff --git a/pitivi/timeline/timeline.py b/pitivi/timeline/timeline.py
index 14cdcff..f25b652 100644
--- a/pitivi/timeline/timeline.py
+++ b/pitivi/timeline/timeline.py
@@ -479,7 +479,7 @@ class TimelineControls(gtk.VBox, Loggable):
self._tracks_controls = []
self._timeline = None
self.set_spacing(LAYER_SPACING)
- self.set_size_request(TRACK_CONTROL_WIDTH, -1)
+ #self.set_size_request(TRACK_CONTROL_WIDTH, -1)
## Timeline callbacks
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]