Created the hildongtk wrapper module
[wifihood] / hildongtk / hildon.py
diff --git a/hildongtk/hildon.py b/hildongtk/hildon.py
new file mode 100644 (file)
index 0000000..46b0ac6
--- /dev/null
@@ -0,0 +1,119 @@
+
+import gtk
+
+__version__ = 1.0
+
+gtk.HILDON_SIZE_FINGER_HEIGHT = -1
+gtk.HILDON_SIZE_AUTO = -1
+gtk.HILDON_SIZE_AUTO_WIDTH = -1
+
+BUTTON_ARRANGEMENT_VERTICAL = -1
+
+
+class Program :
+    window = None
+    def get_instance() :
+        return Program()
+    get_instance = staticmethod( get_instance )
+    def add_window ( self , window ) :
+        self.window = window
+
+class Window ( gtk.Window ) :
+    def __init__ ( self ) :
+        gtk.Window.__init__( self )
+    def set_app_menu( self , menubar ) :
+        self.vbox.pack_start(menubar,True,True,5)
+
+class AppMenu ( gtk.MenuBar ) :
+    def append ( self , item ) :
+      item._menu_item = gtk.MenuItem( item.get_label() )
+      item._menu_item.connect( "activate", lambda arg : item.clicked() )
+      gtk.MenuBar.append( self , item._menu_item )
+
+class StackableWindow ( Window ) :
+    def __init__ ( self ) :
+        Window.__init__( self )
+
+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 TextView ( gtk.TextView ) :
+    def set_placeholder( self , text ) :
+        self.get_buffer().set_text( text )
+
+class Button ( gtk.Button ) :
+    def __init__ ( self , height , arrangement , label=None , value=None ) :
+        self._menu_item = None
+        gtk.Button.__init__( self , label )
+    def set_label ( self , label ) :
+        gtk.Button.set_label( self , label )
+        if self._menu_item :
+            self._menu_item.set_label( self.get_label() )
+
+class CheckButton ( gtk.CheckButton ) :
+    def __init__ ( self , height ) :
+        gtk.CheckButton.__init__( self )
+
+# FIXME : Add value-changed signal, with the response signal from the Dialog
+class PickerButton ( Button ) :
+    def __init__ ( self , height , arrangement ) :
+        Button.__init__( self , height , arrangement )
+        self._title = None
+        self._selector = None
+    def _build_label ( self ) :
+        selected = None
+        if self._selector :
+            selected = " -- %s" % self._selector.get_current_text()
+        Button.set_label( self , "%s%s" % ( self._title , selected ) )
+    def set_title ( self , title ) :
+        self._title = title
+        self._build_label()
+    def get_selector ( self ) :
+        return self._selector
+    def set_selector ( self , selector ) :
+        self._selector = selector
+        self.connect( "clicked", lambda arg : self._selector.show_all() )
+        self._build_label()
+
+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 response ( self , widget , response , config ) :
+        if response == gtk.RESPONSE_ACCEPT :
+            self.zoomdialog( widget , config )
+            widget._build_label()
+        self.hide()
+