Create branch to develop a basic wrapper for hildon specific widgets
[wifihood] / hildongtk.py
diff --git a/hildongtk.py b/hildongtk.py
new file mode 100644 (file)
index 0000000..2ba0e1a
--- /dev/null
@@ -0,0 +1,113 @@
+
+import gtk
+
+gtk.HILDON_SIZE_FINGER_HEIGHT = -1
+gtk.HILDON_SIZE_AUTO = -1
+
+BUTTON_ARRANGEMENT_VERTICAL = -1
+
+
+class PannableArea ( gtk.ScrolledWindow ) :
+    def __init__ ( self ) :
+        gtk.ScrolledWindow.__init__( self )
+        self.set_size_request(-1, 260)
+        self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+
+class Entry ( gtk.Entry ) :
+    def __init__ ( self , height ) :
+        gtk.Entry.__init__( self )
+
+#class Button ( gtk.Button ) :
+#    def __init__ ( self , height , arrangement , text=None , value=None ) :
+#        gtk.Button.__init__( self , "%s %s" % ( text , value ) )
+#
+#class __Button ( gtk.Button ) :
+#     def __init__ ( self , text , value ) :
+#         gtk.Button.__init__( self )
+#         self._text = text
+#         self.set_value( value )
+#     def set_value ( self , value ) :
+#         self._value = value
+#         self.set_label( "%s -- %s" % ( self._text , self._value ) )
+
+class CheckButton ( gtk.CheckButton ) :
+    def __init__ ( self , height ) :
+        gtk.CheckButton.__init__( self )
+
+class PickerButton ( gtk.Button ) :
+    def __init__ ( self , height , arrangement ) : # , text=None , value=None ) :
+        gtk.Button.__init__( self )
+        self._text = None
+        self._selector = None
+    def _build_label ( self ) :
+        content = []
+        if self._text  : content.append( self._text )
+        if self._selector : content.append( self._selector.get_current_text() )
+        if content : self.set_label( " -- ".join( content ) )
+    def set_title ( self , title ) :
+        self._text = title
+        self._build_label()
+    def get_selector ( self ) :
+        return self._selector
+    def set_selector ( self , selector ) :
+        self._selector = selector
+        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 ) :
+        gtk.Dialog.__init__( self , "Select zoom level",
+                             None,
+                             gtk.DIALOG_MODAL,
+                             ( gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,
+                               gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT
+                               )
+                             )
+        self.combo = gtk.ComboBox()
+
+    def append_text_column ( self , zooms , boolean ) :
+        self.combo.set_model( zooms )
+        cell = gtk.CellRendererText()
+        self.combo.pack_start(cell, True)
+        self.combo.add_attribute(cell, 'text', 0)
+
+        self.vbox.pack_start(self.combo , True, True, 0)
+
+    def set_active ( self , unknown , active ) :
+        self.combo.set_active( active )
+
+    def get_current_text ( self ) :
+        item = self.combo.get_active_iter()
+        if item :
+            model = self.combo.get_model()
+            return model.get(item,0)[0]
+
+    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()
+#