09590389b76c5fec5a7dadb7bc041ce57d0c6de5
[jamaendo] / helldon / __init__.py
1 import gtk
2
3 gtk.HILDON_SIZE_AUTO = -1
4 gtk.HILDON_SIZE_AUTO_WIDTH = -1
5 gtk.HILDON_SIZE_FINGER_HEIGHT = 32
6 gtk.HILDON_SIZE_THUMB_HEIGHT = 48
7
8 BUTTON_ARRANGEMENT_VERTICAL = 1
9
10 def hildon_gtk_window_set_progress_indicator(wnd, onoff):
11     pass
12
13 class Program(gtk.Window):
14     instance = None
15
16     def __init__(self):
17         gtk.Window.__init__(self, type=gtk.WINDOW_TOPLEVEL)
18         self.set_app_paintable(True)
19         self._vbox = gtk.VBox()
20         self._title = gtk.Label("Jamaendo")
21         self._backbtn = gtk.Button("Quit")
22         self._hbox = gtk.HBox()
23         self._hbox.pack_start(self._title, True)
24         self._hbox.pack_start(self._backbtn, False)
25         self._notebook = gtk.Notebook()
26         self._notebook.set_size_request(800, 445)
27         self._notebook.set_show_tabs(False)
28         self._vbox.pack_start(self._hbox, False)
29         self._vbox.pack_start(self._notebook, True)
30         self.add(self._vbox)
31         self.show_all()
32         Program.instance = self
33         self._backbtn.connect('clicked', self.on_back)
34
35         bgimg = 'data/bg.png'
36         if bgimg:
37             background, mask = gtk.gdk.pixbuf_new_from_file(bgimg).render_pixmap_and_mask()
38             self.set_app_paintable(True)
39             self.realize()
40             self.window.set_back_pixmap(background, False)
41             self.window.clear()
42
43         self._stack = []
44
45     def add_window(self, wnd):
46         pass
47
48     def push_stackable(self, wnd):
49         while self._notebook.get_n_pages() > 0:
50             p = self._notebook.get_nth_page(0)
51             self._stack.append(p)
52             self._notebook.remove_page(0)
53             p.hide()
54
55         idx = self._notebook.append_page(wnd)
56         self._notebook.set_current_page(idx)
57         wnd.show_all()
58         wnd._nb_index = idx
59         if self._stack:
60             self._backbtn.set_label("<<<")
61         else:
62             self._backbtn.set_label("Quit")
63
64     def popped_stackable(self, wnd=None):
65         pass
66
67     def pop_stackable(self):
68         while self._notebook.get_n_pages() > 0:
69             p = self._notebook.get_nth_page(0)
70             self._notebook.remove_page(0)
71             p.hide()
72         if len(self._stack):
73             tail = self._stack.pop()
74             self.push_stackable(tail)
75
76     def on_back(self, *args):
77         self.pop_stackable()
78         if self._stack:
79             self._backbtn.set_label("<<<")
80         else:
81             self._backbtn.set_label("Quit")
82         if self._notebook.get_n_pages() == 0:
83             gtk.main_quit()
84
85     def size(self):
86         return len(self._stack)+1
87
88 class StackableWindow(gtk.Frame):
89     def __init__(self):
90         gtk.Frame.__init__(self)
91         self._nb_index = 0
92         Program.instance.push_stackable(self)
93         self.connect('destroy', self.on_destroy)
94     def set_app_menu(self, menu):
95         pass
96
97     def set_title(self, title):
98         Program.instance._title.set_text(title)#_notebook.set_tab_label_text(self, title)
99
100     def on_destroy(self, *args):
101         Program.instance.popped_stackable(self)
102
103     def get_stack(self):
104         return Program.instance
105
106 class AppMenu(object):
107     def __init__(self):
108         pass
109
110     def append(self, widget):
111         pass
112
113     def show_all(self):
114         pass
115
116 class GtkButton(gtk.Button):
117     def __init__(self, size):
118         gtk.Button.__init__(self)
119
120
121 class Button(gtk.Button):
122     def __init__(self, size, layout):
123         gtk.Button.__init__(self)
124
125     def set_text(self, title, subtitle):
126         self.set_label(title)
127
128 class PannableArea(gtk.ScrolledWindow):
129     pass