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