BUTTON_ARRANGEMENT_VERTICAL = -1
+class StackableWindow ( gtk.Window ) :
+ def __init__ ( self ) :
+ gtk.Window.__init__( self )
+
class PannableArea ( gtk.ScrolledWindow ) :
def __init__ ( self ) :
gtk.ScrolledWindow.__init__( self )
def __init__ ( self , height ) :
gtk.CheckButton.__init__( self )
+# FIXME : Add value-changed signal, with the response signal from the Dialog
class PickerButton ( gtk.Button ) :
def __init__ ( self , height , arrangement ) : # , text=None , value=None ) :
gtk.Button.__init__( self )
self.connect_object( "clicked", self._selector.muestra , self._selector )
self._build_label()
-#def hildon_ZoomButton ( self , text , config , handler ) :
-# selector = ZoomDialog( config , handler )
-# button = hildon.PickerButton( gtk.HILDON_SIZE_AUTO, hildon.BUTTON_ARRANGEMENT_VERTICAL)
-# button.set_title( text )
-# button.set_selector( selector )
-# return button
-
-#def ported_ZoomButton ( self , text , config , handler ) :
-# button = PickerButton( text , config.zoom )
-# return button
-
class TouchSelector ( gtk.Dialog ) :
def __init__ ( self ) :
def muestra ( self , widget ) :
self.show_all()
-## O nos sirve el active como indice, o tendremos que transformar el indice en un iterador
-## # ... iter = self.combo.get( active )
-## combo.set_active_iter( iter )
-#
-## def response ( self , combo , response , config , handler , labelsetter ) :
-## if response == gtk.RESPONSE_ACCEPT :
-## item = combo.get_active_iter()
-## model = combo.get_model()
-## newzoom = model.get(item,0)[0]
-## if labelsetter : labelsetter( newzoom )
-## if handler : handler( newzoom )
-## config.set_zoom( newzoom )
-## self.destroy()
-#
+ def response ( self , widget , response , config ) :
+ if response == gtk.RESPONSE_ACCEPT :
+ self.zoomdialog( widget , config )
+ widget._build_label()
+ self.hide()
+
self.show()
-if hildon :
-
- class ZoomDialog ( hildon.TouchSelector ) :
-
- def __init__ ( self , config , handler ) :
- hildon.TouchSelector.__init__( self )
- self.handler = handler
-
- zooms = gtk.ListStore(str)
-
- active = index = 0
- for zoom in range(8,19) :
- iter = zooms.append()
- zooms.set( iter , 0 , "%2d" % zoom )
- if zoom == config.zoom :
- active = index
- index += 1
-
- column = self.append_text_column( zooms , True )
-
- # NOTE : with text=True, we must use 1 instead of 0
- self.set_active( 0 , active )
-
- def zoomdialog ( self , widget , conf ) :
- newzoom = int( widget.get_selector().get_current_text() )
- if self.handler : self.handler( newzoom )
- conf.set_zoom( newzoom )
-
- class SettingsWindow ( hildon.StackableWindow , AbstractSettingsWindow ) :
-
- def __init__ ( self , config , handler=None ) :
- hildon.StackableWindow.__init__( self )
- AbstractSettingsWindow.__init__( self , config , handler )
-
- def ZoomButton ( self , text , config , handler ) :
- selector = ZoomDialog( config , handler )
- button = hildon.PickerButton( gtk.HILDON_SIZE_AUTO, hildon.BUTTON_ARRANGEMENT_VERTICAL)
- button.set_title( text )
- button.set_selector( selector )
- button.connect_object( "value-changed", selector.zoomdialog , button , config )
- return button
-
-else :
-
- class ZoomDialog ( hildongtk.TouchSelector ) :
+class ZoomDialog ( hildongtk.TouchSelector ) :
def __init__ ( self , config , handler ) :
hildongtk.TouchSelector.__init__( self )
active = index = 0
for zoom in range(8,19) :
iter = zooms.append()
+# zooms.set( iter , 0 , "%2d" % zoom )
zooms.set( iter , 0 , zoom )
if zoom == config.zoom :
active = index
if self.handler : self.handler( newzoom )
conf.set_zoom( newzoom )
- def response ( self , widget , response , config ) :
- if response == gtk.RESPONSE_ACCEPT :
- self.zoomdialog( widget , config )
- widget._build_label()
- self.hide()
-
- class SettingsWindow ( gtk.Window , AbstractSettingsWindow ) :
+class SettingsWindow ( hildongtk.StackableWindow , AbstractSettingsWindow ) :
def __init__ ( self , config , handler=None ) :
- gtk.Window.__init__( self )
+ hildongtk.StackableWindow.__init__( self )
AbstractSettingsWindow.__init__( self , config , handler )
def ZoomButton ( self , text , config , handler ) :
button.set_title( text )
button.set_selector( selector )
# button.connect_object( "value-changed", selector.zoomdialog , button , config )
-# event does not exists !!!
selector.connect_object( "response", selector.response , button , config )
return button