class AbstractSettingsWindow :
- def __init__ ( self , config , handler=None ) :
+ def __init__ ( self , config , handler ) :
self.set_title( "Wifihood Settings" )
scrollwin = self.MainArea()
class ZoomDialog ( hildon.TouchSelector ) :
- def __init__ ( self , config , handler=None , extra=None ) :
+ def __init__ ( self , config , handler ) :
hildon.TouchSelector.__init__( self )
+ self.handler = handler
zooms = gtk.ListStore(str)
# 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.zoom = newzoom
+
class SettingsWindow ( hildon.StackableWindow , AbstractSettingsWindow ) :
def __init__ ( self , config , handler=None ) :
hildon.StackableWindow.__init__( self )
AbstractSettingsWindow.__init__( self , config , handler )
- def zoomdialog ( self , widget , conf , extra=None ) :
- conf.zoom = int( widget.get_selector().get_current_text() )
-
def ZoomButton ( self , text , config , handler ) :
- selector = ZoomDialog( config )
+ 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", self.zoomdialog , button , config , handler )
+ button.connect_object( "value-changed", selector.zoomdialog , button , config )
return button
def MainArea ( self ) :
class ZoomDialog ( gtk.Dialog ) :
- def __init__ ( self , config , handler=None , extra=None ) :
+ def __init__ ( self , config , handler , labelsetter=None ) :
gtk.Dialog.__init__( self , "Select zoom level",
None,
gtk.DIALOG_MODAL,
self.vbox.pack_start(combo , True, True, 0)
- self.connect_object( "response", self.response , combo , config , handler , extra )
+ self.connect_object( "response", self.response , combo , config , handler , labelsetter )
- def response ( self , combo , response , config , handler , extra=None ) :
+ def response ( self , combo , response , config , handler , labelsetter ) :
if response == gtk.RESPONSE_ACCEPT :
item = combo.get_active_iter()
model = combo.get_model()
- handler( model.get(item,0)[0])
- if extra : extra( model.get(item,0)[0])
- config.zoom = model.get(item,0)[0]
+ newzoom = model.get(item,0)[0]
+ if labelsetter : labelsetter( newzoom )
+ if handler : handler( newzoom )
+ config.zoom = newzoom
self.destroy()
class SettingsWindow ( gtk.Window , AbstractSettingsWindow ) :
def Button ( self , label=None ) :
return gtk.Button( label )
- def zoomdialog ( self , widget , config , extra ) :
- dialog = ZoomDialog( config , widget.set_value , extra )
+ def zoomdialog ( self , widget , config , handler ) :
+ dialog = ZoomDialog( config , handler , widget.set_value )
dialog.show_all()
def ZoomButton ( self , text , config , handler ) :