Initial extension for WifiMap
[wifihood] / hildongtk.py
1
2 import gtk
3
4 _wrapper_version = 0.9
5
6 gtk.HILDON_SIZE_FINGER_HEIGHT = -1
7 gtk.HILDON_SIZE_AUTO = -1
8
9 BUTTON_ARRANGEMENT_VERTICAL = -1
10
11
12 class Program :
13     window = None
14     def get_instance() :
15         return Program()
16     def add_window ( self , window ) :
17         print "ATE",self.window , window
18         self.window = window
19
20 class Window ( gtk.Window ) :
21     def __init__ ( self ) :
22         gtk.Window.__init__( self , gtk.WINDOW_TOPLEVEL )
23
24 class StackableWindow ( gtk.Window ) :
25     def __init__ ( self ) :
26         gtk.Window.__init__( self )
27
28 class PannableArea ( gtk.ScrolledWindow ) :
29     def __init__ ( self ) :
30         gtk.ScrolledWindow.__init__( self )
31         self.set_size_request(-1, 260)
32         self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
33
34 class Entry ( gtk.Entry ) :
35     def __init__ ( self , height ) :
36         gtk.Entry.__init__( self )
37
38 #class Button ( gtk.Button ) :
39 #    def __init__ ( self , height , arrangement , text=None , value=None ) :
40 #        gtk.Button.__init__( self , "%s %s" % ( text , value ) )
41 #
42 #class __Button ( gtk.Button ) :
43 #     def __init__ ( self , text , value ) :
44 #         gtk.Button.__init__( self )
45 #         self._text = text
46 #         self.set_value( value )
47 #     def set_value ( self , value ) :
48 #         self._value = value
49 #         self.set_label( "%s -- %s" % ( self._text , self._value ) )
50
51 class CheckButton ( gtk.CheckButton ) :
52     def __init__ ( self , height ) :
53         gtk.CheckButton.__init__( self )
54
55 # FIXME : Add value-changed signal, with the response signal from the Dialog
56 class PickerButton ( gtk.Button ) :
57     def __init__ ( self , height , arrangement ) : # , text=None , value=None ) :
58         gtk.Button.__init__( self )
59         self._text = None
60         self._selector = None
61     def _build_label ( self ) :
62         content = []
63         if self._text  : content.append( self._text )
64         if self._selector : content.append( self._selector.get_current_text() )
65         if content : self.set_label( " -- ".join( content ) )
66     def set_title ( self , title ) :
67         self._text = title
68         self._build_label()
69     def get_selector ( self ) :
70         return self._selector
71     def set_selector ( self , selector ) :
72         self._selector = selector
73         self.connect_object( "clicked", self._selector.muestra , self._selector )
74         self._build_label()
75
76 class TouchSelector ( gtk.Dialog ) :
77
78     def __init__ ( self ) :
79         gtk.Dialog.__init__( self , "Select zoom level",
80                              None,
81                              gtk.DIALOG_MODAL,
82                              ( gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,
83                                gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT
84                                )
85                              )
86         self.combo = gtk.ComboBox()
87
88     def append_text_column ( self , zooms , boolean ) :
89         self.combo.set_model( zooms )
90         cell = gtk.CellRendererText()
91         self.combo.pack_start(cell, True)
92         self.combo.add_attribute(cell, 'text', 0)
93
94         self.vbox.pack_start(self.combo , True, True, 0)
95
96     def set_active ( self , unknown , active ) :
97         self.combo.set_active( active )
98
99     def get_current_text ( self ) :
100         item = self.combo.get_active_iter()
101         if item :
102             model = self.combo.get_model()
103             return model.get(item,0)[0]
104
105     def muestra ( self , widget ) :
106         self.show_all()
107
108     def response ( self , widget , response , config ) :
109         if response == gtk.RESPONSE_ACCEPT :
110             self.zoomdialog( widget , config )
111             widget._build_label()
112         self.hide()
113