Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflorent <florent.pigout@gmail.com>2011-06-22 10:29:35 (GMT)
committer florent <florent.pigout@gmail.com>2011-06-22 10:29:35 (GMT)
commitcabecfab5ca96729093e4e69f7999bc85e5203d9 (patch)
tree6cb781cefed9f022d3e32231da8d9ab57e8f9260
parent4d981d9c821ffe563d56d841cb6687a49ca0ecf7 (diff)
move before/after frame in sequence action to preview item list for easier use
-rw-r--r--atoidejouer/ui/preview.py126
-rw-r--r--atoidejouer/ui/toolbar.py46
2 files changed, 115 insertions, 57 deletions
diff --git a/atoidejouer/ui/preview.py b/atoidejouer/ui/preview.py
index 25c48f7..2bee8ed 100644
--- a/atoidejouer/ui/preview.py
+++ b/atoidejouer/ui/preview.py
@@ -32,14 +32,16 @@ def _cb_on_click(button, sequence_preview, filename):
# get current item pos
_pos = sequence_preview
# get toolbar frame entry
- _entry = sequence_preview.screen.toolbar._frame_entry
- # ..
- _current = str(sequence_preview.get_current_pos())
- # update toolbar entry
- _entry.set_text(_current)
+ if sequence_preview.screen.toolbar._frame_entry is None:
+ pass
+ else:
+ # get current
+ _current = str(sequence_preview.get_current_pos())
+ # update toolbar entry
+ sequence_preview.screen.toolbar._frame_entry.set_text(_current)
-def _cb_on_remove(button, sequence_preview, filename):
+def _cb_on_remove(sequence_preview, filename, button):
# set current first
sequence_preview.set_current(filename)
# udpate sequence preview
@@ -56,12 +58,60 @@ def _cb_on_remove(button, sequence_preview, filename):
storage.sequence_save(sequence_preview.screen.toolbar, remove=True)
+def _cb_on_move(sequence_preview, move, button):
+ # ..
+ _current = sequence_preview.get_current_pos()
+ if move == 'left':
+ _current -= 1
+ else:
+ _current += 1
+ # get max value
+ _max = sequence_preview.number_of_items() - 1
+ # prepare value
+ _new_val = None
+ if _current > _max:
+ _current = _max
+ elif _current < 0:
+ _current = 0
+ # reset max just in case
+ else:
+ pass
+ # update entry
+ if sequence_preview.screen.toolbar._frame_entry is None:
+ pass
+ else:
+ sequence_preview.screen.toolbar._frame_entry.set_text(str(_current))
+ # update sequence
+ sequence_preview.move_current(_current)
+
+
def _set_preview_buttom_bg(button):
# set color
button.modify_bg(gtk.STATE_NORMAL, COLOR_GREY_LIGHT)
button.modify_bg(gtk.STATE_PRELIGHT, COLOR_GREY_WHITE)
button.modify_bg(gtk.STATE_ACTIVE, COLOR_WHITE)
+
+def _add_simple_button(parent, icon_name, tooltip, cb):
+ # .. remove button
+ _button = gtk.Button()
+ _button.show()
+ _button.set_tooltip_text(tooltip) # _('Remove ') + filename
+ # cb
+ _button.connect('clicked', cb) # cb, self, filename
+ # add
+ parent.pack_start(_button, expand=False, fill=False)
+ # add a remove image here
+ _img = gtk.Image()
+ _img.show()
+ _button.add(_img)
+ _button.set_size_request(30, 30)
+ # ..
+ _set_preview_buttom_bg(_button)
+ # get pixbuff and update image
+ _path = storage.get_icon_path(icon_name)
+ _img.set_from_pixbuf(image.get_pixbuf(_path, 24, 24))
+
class SequencePreview(gtk.Frame):
def __init__(self, screen, type_):
@@ -86,13 +136,22 @@ class SequencePreview(gtk.Frame):
self._scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_NEVER)
self._scrolled_window.show()
# a box
- self._hbox = gtk.HBox(homogeneous=False, spacing=2)
- # show it
- self._hbox.show()
+ _hbox = gtk.HBox(homogeneous=False, spacing=2)
+ _hbox.show()
+ self.add(_hbox)
+ # .. move left button
+ _add_simple_button(_hbox, 'go_left', _('Move Before'),
+ partial(_cb_on_move, self, 'left'))
+ # a box
+ self._scrolled_hbox = gtk.HBox(homogeneous=False, spacing=2)
+ self._scrolled_hbox.show()
# add box in viewport
- self._scrolled_window.add_with_viewport(self._hbox)
- # add all to the frame
- self.add(self._scrolled_window)
+ self._scrolled_window.add_with_viewport(self._scrolled_hbox)
+ # add
+ _hbox.add(self._scrolled_window)
+ # .. move left button
+ _add_simple_button(_hbox, 'go_right', _('Move After'),
+ partial(_cb_on_move, self, 'right'))
def clear(self):
# ...
@@ -100,13 +159,13 @@ class SequencePreview(gtk.Frame):
# keep item list for the sequence
self.items = list()
# remove graphics
- _children = self._hbox.get_children()
+ _children = self._scrolled_hbox.get_children()
for _c in _children:
_c.destroy()
# remove image from preview
self.screen.item_preview.unset_item()
# add box in viewport
- self._scrolled_window.add_with_viewport(self._hbox)
+ self._scrolled_window.add_with_viewport(self._scrolled_hbox)
def move_current(self, new_pos):
# get current pos
@@ -121,19 +180,18 @@ class SequencePreview(gtk.Frame):
_filename = self.items.pop(_current_pos)
self.items.insert(new_pos, _filename)
# ..
- self._hbox.reorder_child(self._current, new_pos)
-
+ self._scrolled_hbox.reorder_child(self._current, new_pos)
def get_current_pos(self):
# get children
- _children = self._hbox.get_children()
+ _children = self._scrolled_hbox.get_children()
# get button index
return _children.index(self._current)\
if self._current in _children else 0
def set_current(self, filename):
# get children
- _children = self._hbox.get_children()
+ _children = self._scrolled_hbox.get_children()
# get new idx index
_index = self.items.index(filename)\
if filename in self.items else 1000
@@ -144,13 +202,16 @@ class SequencePreview(gtk.Frame):
# update preview
self.screen.item_preview.set_item(filename)
# update toolbar frame entry
- self.screen.toolbar._frame_entry.set_text(str(_index))
+ if self.screen.toolbar._frame_entry is None:
+ pass
+ else:
+ self.screen.toolbar._frame_entry.set_text(str(_index))
# ??
else:
pass
def number_of_items(self):
- return len(self._hbox.get_children())
+ return len(self._scrolled_hbox.get_children())
def __remove(self, index):
# update list
@@ -172,7 +233,7 @@ class SequencePreview(gtk.Frame):
def remove_item(self, item_name):
# get children
- _children = self._hbox.get_children()
+ _children = self._scrolled_hbox.get_children()
# get button index
_index = _children.index(item_name)\
if item_name in _children else 0
@@ -183,7 +244,7 @@ class SequencePreview(gtk.Frame):
# ..
_item_box = gtk.HBox(homogeneous=False, spacing=2)
_item_box.show()
- self._hbox.pack_start(_item_box, expand=False, fill=False)
+ self._scrolled_hbox.pack_start(_item_box, expand=False, fill=False)
# prepare vbox item
_vbox = gtk.VBox(homogeneous=False, spacing=2)
_vbox.show()
@@ -200,7 +261,7 @@ class SequencePreview(gtk.Frame):
# insert filename
self.items.insert(pos, filename)
# second pass .. reorder
- self._hbox.reorder_child(_vbox, pos)
+ self._scrolled_hbox.reorder_child(_vbox, pos)
# init event box to manage color
_item = gtk.Button()
_vbox.pack_start(_item, expand=False, fill=True)
@@ -235,23 +296,8 @@ class SequencePreview(gtk.Frame):
# ...
_vbox.pack_start(_label, expand=False, fill=True)
# .. remove button
- _rm_button = gtk.Button()
- _rm_button.show()
- _rm_button.set_tooltip_text(_('Remove ') + filename)
- # cb
- _rm_button.connect('clicked', _cb_on_remove, self, filename)
- # add
- _item_box.pack_start(_rm_button, expand=False, fill=False)
- # add a remove image here
- _rm_img = gtk.Image()
- _rm_img.show()
- _rm_button.add(_rm_img)
- _rm_button.set_size_request(30, 30)
- # ..
- _set_preview_buttom_bg(_rm_button)
- # get pixbuff and update image
- _path = storage.get_icon_path('less_small')
- _rm_img.set_from_pixbuf(image.get_pixbuf(_path, 24, 24))
+ _add_simple_button(_item_box, 'less_small', _('Remove ') + filename,
+ partial(_cb_on_remove, self, filename))
# set current file nam eat the end
self.set_current(filename)
diff --git a/atoidejouer/ui/toolbar.py b/atoidejouer/ui/toolbar.py
index 4a9600e..40a4d55 100644
--- a/atoidejouer/ui/toolbar.py
+++ b/atoidejouer/ui/toolbar.py
@@ -122,7 +122,11 @@ def _show_browser(toolbar, cls):
toolbar._sequence_entry.set_text(_seq_name)
# pos
_current_pos = _screen.sequence_preview.get_current_pos()
- toolbar._frame_entry.set_text(str(_current_pos))
+ # ..
+ if toolbar._frame_entry is None:
+ pass
+ else:
+ toolbar._frame_entry.set_text(str(_current_pos))
def _cb_add(widget, toolbar):
@@ -152,21 +156,27 @@ def _cb_remove(widget, toolbar):
def _cb_frame_after(widget, toolbar):
- # get previous value
- _value = int(toolbar._frame_entry.get_text())
- # inc it
- _update_frame_entry(widget, toolbar, _value + 1)
- # update sequence file
- _cb_seq_save(widget, toolbar)
+ if toolbar._frame_entry is None:
+ pass
+ else:
+ # get previous value
+ _value = int(toolbar._frame_entry.get_text())
+ # inc it
+ _update_frame_entry(widget, toolbar, _value + 1)
+ # update sequence file
+ _cb_seq_save(widget, toolbar)
def _cb_frame_before(widget, toolbar):
- # get previous value
- _value = int(toolbar._frame_entry.get_text())
- # dec it
- _update_frame_entry(widget, toolbar, _value - 1)
- # update sequence file
- _cb_seq_save(widget, toolbar)
+ if toolbar._frame_entry is None:
+ pass
+ else:
+ # get previous value
+ _value = int(toolbar._frame_entry.get_text())
+ # dec it
+ _update_frame_entry(widget, toolbar, _value - 1)
+ # update sequence file
+ _cb_seq_save(widget, toolbar)
def _update_frame_entry(entry, toolbar, value):
@@ -324,10 +334,11 @@ TOOLBARS = {
],
'graphics_add' : [
['seq_new', 'seq_name', 'seq_save', 'seq_remove',
- 'separator',
+ # 'separator',
# 'add', 'remove',
# ''separator',
- 'frame_before', 'frame_entry', 'frame_after'],
+ # 'frame_before', 'frame_entry', 'frame_after'
+ ],
['import', 'back']
],
'sounds' : [
@@ -338,10 +349,11 @@ TOOLBARS = {
],
'sounds_add' : [
['seq_new', 'seq_name', 'seq_save', 'seq_remove',
- 'separator',
+ # 'separator',
# 'add', 'remove',
# ''separator',
- 'frame_before', 'frame_entry', 'frame_after'],
+ # 'frame_before', 'frame_entry', 'frame_after'
+ ],
['import', 'back']
],
'story' : [