diff options
Diffstat (limited to 'atoidejouer/ui/screens.py')
-rw-r--r-- | atoidejouer/ui/screens.py | 97 |
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() |