Use real radius for drawing (57660db6f7d449446c8e1531235aadf315328e7a)
[wifihood] / wifiscanner / hildongtk / hildon.py
1
2 import gtk
3
4 __version__ = 1.0
5
6 gtk.HILDON_SIZE_FINGER_HEIGHT = -1
7 gtk.HILDON_SIZE_AUTO = -1
8 gtk.HILDON_SIZE_AUTO_WIDTH = -1
9
10 BUTTON_ARRANGEMENT_VERTICAL = -1
11
12
13 class Program :
14     window = None
15     def get_instance() :
16         return Program()
17     get_instance = staticmethod( get_instance )
18     def add_window ( self , window ) :
19         self.window = window
20
21 class Window ( gtk.Window ) :
22     def __init__ ( self ) :
23         gtk.Window.__init__( self )
24     def set_app_menu( self , menubar ) :
25         self.vbox.pack_start(menubar,True,True,5)
26
27 class AppMenu ( gtk.MenuBar ) :
28     def append ( self , item ) :
29       item._menu_item = gtk.MenuItem( item.get_label() )
30       item._menu_item.connect( "activate", lambda arg : item.clicked() )
31       gtk.MenuBar.append( self , item._menu_item )
32
33 class StackableWindow ( Window ) :
34     def __init__ ( self ) :
35         Window.__init__( self )
36
37 class PannableArea ( gtk.ScrolledWindow ) :
38     def __init__ ( self ) :
39         gtk.ScrolledWindow.__init__( self )
40         self.set_size_request(-1, 260)
41         self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
42
43 class Entry ( gtk.Entry ) :
44     def __init__ ( self , height ) :
45         gtk.Entry.__init__( self )
46
47 class TextView ( gtk.TextView ) :
48     def __init__ ( self ) :
49         gtk.TextView.__init__( self )
50     def set_placeholder( self , text ) :
51         self.get_buffer().set_text( text )
52
53 class Button ( gtk.Button ) :
54     def __init__ ( self , height , arrangement , label=None , value=None ) :
55         self._menu_item = None
56         gtk.Button.__init__( self , label )
57     def set_label ( self , label ) :
58         gtk.Button.set_label( self , label )
59         if self._menu_item :
60             self._menu_item.child.set_label( self.get_label() )
61
62 class CheckButton ( gtk.CheckButton ) :
63     def __init__ ( self , height ) :
64         gtk.CheckButton.__init__( self )
65
66 # FIXME bug#6892 Add value-changed signal, with the response signal from the Dialog
67 class PickerButton ( Button ) :
68     def __init__ ( self , height , arrangement ) :
69         Button.__init__( self , height , arrangement )
70         self._title = None
71         self._selector = None
72     def _build_label ( self ) :
73         selected = None
74         if self._selector :
75             selected = " -- %s" % self._selector.get_current_text()
76         Button.set_label( self , "%s%s" % ( self._title , selected ) )
77     def set_title ( self , title ) :
78         self._title = title
79         self._build_label()
80     def get_selector ( self ) :
81         return self._selector
82     def set_selector ( self , selector ) :
83         self._selector = selector
84         self.connect( "clicked", lambda arg : self._selector.show_all() )
85         self._build_label()
86
87 class TouchSelector ( gtk.Dialog ) :
88
89     def __init__ ( self ) :
90         gtk.Dialog.__init__( self , "Select zoom level",
91                              None,
92                              gtk.DIALOG_MODAL,
93                              ( gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,
94                                gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT
95                                )
96                              )
97         self.combo = gtk.ComboBox()
98
99     def append_text_column ( self , zooms , boolean ) :
100         self.combo.set_model( zooms )
101         cell = gtk.CellRendererText()
102         self.combo.pack_start(cell, True)
103         self.combo.add_attribute(cell, 'text', 0)
104
105         self.vbox.pack_start(self.combo , True, True, 0)
106
107     def set_active ( self , unknown , active ) :
108         self.combo.set_active( active )
109
110     def get_current_text ( self ) :
111         item = self.combo.get_active_iter()
112         if item :
113             model = self.combo.get_model()
114             return model.get(item,0)[0]
115
116     def response ( self , widget , response , config ) :
117         if response == gtk.RESPONSE_ACCEPT :
118             self.zoomdialog( widget , config )
119             widget._build_label()
120         self.hide()
121