Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/atoidejouer/ui/screens.py
diff options
context:
space:
mode:
Diffstat (limited to 'atoidejouer/ui/screens.py')
-rw-r--r--atoidejouer/ui/screens.py97
1 files changed, 28 insertions, 69 deletions
diff --git a/atoidejouer/ui/screens.py b/atoidejouer/ui/screens.py
index cf511b3..31518ea 100644
--- a/atoidejouer/ui/screens.py
+++ b/atoidejouer/ui/screens.py
@@ -299,7 +299,7 @@ class ScreenStory(graphics.Scene):
# and return displayed code
return _code
- def __get_transition_align(self, sequence_name, filename, time, rate):
+ def __get_transition_align(self, sequence_name, time, filename, rate):
# get align
_x, _y = self._get_keys('graphics').get_align(sequence_name,
int(time), filename)
@@ -309,9 +309,12 @@ class ScreenStory(graphics.Scene):
return _x, _y
else:
_next_x, _next_y = self._get_keys('graphics').get_next_align(
- sequence_name, int(time), use_transition=True)
+ sequence_name, int(time), filename, use_transition=True)
+ # ...
+ _next_x = _x if _next_x is None else _x + (_next_x - _x) * _ratio
+ _next_y = _y if _next_y is None else _y + (_next_y - _y) * _ratio
# ..
- return _x + (_next_x - _x) * _ratio, _y + (_next_y - _y) * _ratio
+ return _next_x, _next_y
def _get_current_code(self, type_, sequence_name, time):
# get sequence filename
@@ -343,8 +346,8 @@ class ScreenStory(graphics.Scene):
# get/update width and height
_size = self._update_w_h(_current)
# get align
- _align = self.__get_transition_align(sequence_name, _current,
- time, rate)
+ _align = self.__get_transition_align(sequence_name, time, _current,
+ rate)
# ensure current image
if _code in self.__graphics:
# ..
@@ -476,7 +479,7 @@ class ScreenStory(graphics.Scene):
def _show(self):
# first refresh
- self.refresh()
+ # self.refresh()
# ..
self.show()
# update size request
@@ -638,12 +641,19 @@ class ScreenBrowserSounds(ScreenBrowser):
def _on_toggle_click(radio, screen, option, value):
- # ensure config for further use
- config.Config().set('activity>%s' % option, value)
+ # manage change state manually
+ _previous = config.Config().get('activity>%s' % option)
# remove screens to recreate them after
- if option == 'mode':
- screen._activity.remove_screen('graphics')
- screen._activity.remove_screen('sounds')
+ if screen._initialized is True\
+ and _previous != value:
+ # update
+ config.Config().set('activity>%s' % option, value)
+ # ...
+ if option == 'mode':
+ screen._activity.remove_screen('graphics')
+ screen._activity.remove_screen('sounds')
+ else:
+ pass
else:
pass
@@ -701,6 +711,8 @@ class ScreenActivity(gtk.ScrolledWindow):
self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
# keep toolbar
self._activity = activity_
+ # dummy flag
+ self._initialized = False
# keep result label
self.msg_label_import = None
self.msg_label_export = None
@@ -721,61 +733,6 @@ class ScreenActivity(gtk.ScrolledWindow):
# do show
self._show()
- def __refresh_mode_part(self):
- # get mode value
- _mode = config.Config().get_mode()
- # update ui
- for _i, _b in enumerate(self._group_mode):
- _b.set_active(False)
- # update radio boxes
- if _mode == 'easy':
- self._group_mode[EASY].set_active(True)
- elif _mode == 'advanced':
- self._group_mode[ADVANCED].set_active(True)
- # default easy
- else:
- self._group_mode[EASY].set_active(True)
-
- def __refresh_rate_part(self):
- # get rate value
- _rate = config.Config().get_rate()
- # update ui
- for _i, _b in enumerate(self._group_rate):
- _b.set_active(False)
- # update radio boxes
- if _rate == 'normal':
- self._group_rate[NORMAL].set_active(True)
- elif _rate == 'smooth':
- self._group_rate[SMOOTH].set_active(True)
- elif _rate == 'faster':
- self._group_rate[FASTER].set_active(True)
- # default easy
- else:
- self._group_rate[NORMAL].set_active(True)
-
- def __refresh_dnd_part(self):
- # get dnd value
- _dnd = config.Config().get_dnd()
- # update ui
- for _i, _b in enumerate(self._group_dnd):
- _b.set_active(False)
- # update radio boxes
- if _dnd == 'no':
- self._group_dnd[NO].set_active(True)
- elif _dnd == 'yes':
- self._group_dnd[YES].set_active(True)
- # default no
- else:
- self._group_dnd[NO].set_active(True)
-
- def refresh(self):
- # mode
- self.__refresh_mode_part()
- # rate
- self.__refresh_rate_part()
- # dnd
- self.__refresh_dnd_part()
-
def _get_title(self, text):
# init
_label = gtk.Label()
@@ -794,8 +751,11 @@ class ScreenActivity(gtk.ScrolledWindow):
# create checkbox
_toggle = gtk.RadioButton(group=group, label=text)
_toggle.show()
+ # set current
+ _current = config.Config().get('activity>%s' % option)
+ _toggle.set_active(_current==value)
# set cb
- _toggle.connect('clicked', _on_toggle_click, self, option, value)
+ _toggle.connect('toggled', _on_toggle_click, self, option, value)
# return it
return _toggle
@@ -964,9 +924,8 @@ class ScreenActivity(gtk.ScrolledWindow):
expand=False, fill=True)
def _show(self):
+ self._initialized = True
# show all
self.show()
# update toolbar
self._activity.set_canvas(self)
- # always refresh after show
- self.refresh()