Create branch to develop a basic wrapper for hildon specific widgets
[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 PannableArea ( gtk.ScrolledWindow ) :
11     def __init__ ( self ) :
12         gtk.ScrolledWindow.__init__( self )
13         self.set_size_request(-1, 260)
14         self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
15
16 class Entry ( gtk.Entry ) :
17     def __init__ ( self , height ) :
18         gtk.Entry.__init__( self )
19
20 #class Button ( gtk.Button ) :
21 #    def __init__ ( self , height , arrangement , text=None , value=None ) :
22 #        gtk.Button.__init__( self , "%s %s" % ( text , value ) )
23 #
24 #class __Button ( gtk.Button ) :
25 #     def __init__ ( self , text , value ) :
26 #         gtk.Button.__init__( self )
27 #         self._text = text
28 #         self.set_value( value )
29 #     def set_value ( self , value ) :
30 #         self._value = value
31 #         self.set_label( "%s -- %s" % ( self._text , self._value ) )
32
33 class CheckButton ( gtk.CheckButton ) :
34     def __init__ ( self , height ) :
35         gtk.CheckButton.__init__( self )
36
37 class PickerButton ( gtk.Button ) :
38     def __init__ ( self , height , arrangement ) : # , text=None , value=None ) :
39         gtk.Button.__init__( self )
40         self._text = None
41         self._selector = None
42     def _build_label ( self ) :
43         content = []
44         if self._text  : content.append( self._text )
45         if self._selector : content.append( self._selector.get_current_text() )
46         if content : self.set_label( " -- ".join( content ) )
47     def set_title ( self , title ) :
48         self._text = title
49         self._build_label()
50     def get_selector ( self ) :
51         return self._selector
52     def set_selector ( self , selector ) :
53         self._selector = selector
54         self.connect_object( "clicked", self._selector.muestra , self._selector )
55         self._build_label()
56
57 #def hildon_ZoomButton ( self , text , config , handler ) :
58 #    selector = ZoomDialog( config , handler )
59 #    button = hildon.PickerButton( gtk.HILDON_SIZE_AUTO, hildon.BUTTON_ARRANGEMENT_VERTICAL)
60 #    button.set_title( text )
61 #    button.set_selector( selector )
62 #    return button
63
64 #def ported_ZoomButton ( self , text , config , handler ) :
65 #    button = PickerButton( text , config.zoom )
66 #    return button
67
68 class TouchSelector ( gtk.Dialog ) :
69
70     def __init__ ( self ) :
71         gtk.Dialog.__init__( self , "Select zoom level",
72                              None,
73                              gtk.DIALOG_MODAL,
74                              ( gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,
75                                gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT
76                                )
77                              )
78         self.combo = gtk.ComboBox()
79
80     def append_text_column ( self , zooms , boolean ) :
81         self.combo.set_model( zooms )
82         cell = gtk.CellRendererText()
83         self.combo.pack_start(cell, True)
84         self.combo.add_attribute(cell, 'text', 0)
85
86         self.vbox.pack_start(self.combo , True, True, 0)
87
88     def set_active ( self , unknown , active ) :
89         self.combo.set_active( active )
90
91     def get_current_text ( self ) :
92         item = self.combo.get_active_iter()
93         if item :
94             model = self.combo.get_model()
95             return model.get(item,0)[0]
96
97     def muestra ( self , widget ) :
98         self.show_all()
99
100 ## O nos sirve el active como indice, o tendremos que transformar el indice en un iterador
101 ## # ... iter = self.combo.get( active )
102 ##        combo.set_active_iter( iter )
103 #
104 ##    def response ( self , combo , response  , config , handler , labelsetter ) :
105 ##        if response == gtk.RESPONSE_ACCEPT :
106 ##            item = combo.get_active_iter()
107 ##            model = combo.get_model()
108 ##            newzoom = model.get(item,0)[0]
109 ##            if labelsetter : labelsetter( newzoom )
110 ##            if handler : handler( newzoom )
111 ##            config.set_zoom( newzoom )
112 ##        self.destroy()
113 #