1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# python import
import logging
from gettext import gettext as _
# gtk import
import gobject, gtk
# sugar import
from sugar.graphics import style
# atoidepoc import
from atoidepoc.storage import utils
# get application logger
logger = logging.getLogger('atoidepoc')
class ScreenBrowser(gtk.HBox):
def __init__(self, toolbar):
# init parent
gtk.HBox.__init__(self)
# keep toolbar
self.toolbar = toolbar
# add viewer
self._add_viewer()
self._add_list()
# do show
self._show()
def _add_viewer(self):
# init preview
self._preview_frame = gtk.Frame()
self._preview_frame.show()
# add it
self.pack_start(self._preview_frame, expand=True, fill=True)
def _get_store(self):
# model: preview - description - activity_id - timestamp
return gtk.ListStore(
gtk.gdk.Pixbuf,
gobject.TYPE_STRING,
gobject.TYPE_PYOBJECT,
gobject.TYPE_PYOBJECT
)
def _add_list(self):
# prepare colums
_col_preview = gtk.TreeViewColumn(_('Preview'))
_col_description = gtk.TreeViewColumn(_('Description'))
# set renderers
_cell_pix = gtk.CellRendererPixbuf()
_col_preview.pack_start(_cell_pix)
_col_preview.add_attribute(_cell_pix, 'pixbuf', 0)
# ..
_cell_text = gtk.CellRendererText()
_col_description.pack_start(_cell_text, True)
_col_description.add_attribute(_cell_text, 'text', 1)
# init treeview
self._list_treeview = gtk.TreeView(self._get_store())
self._list_treeview.set_reorderable(False)
# add columns
self._list_treeview.append_column(_col_preview)
self._list_treeview.append_column(_col_description)
# show it
self._list_treeview.show()
# add it
self.pack_start(self._list_treeview)
def _show(self):
# update toolbar
self.toolbar.activity.set_canvas(self)
# show all
self.show_all()
class ScreenBrowserGraphics(ScreenBrowser):
def __init__(self, toolbar):
# init parent
ScreenBrowser.__init__(self, toolbar)
def _get_store(self):
# get empty store
_store = ScreenBrowser._get_store(self)
# update store
for _i in utils.list_info_from_journal('paint'):
# prepare preview
_p = utils.get_pixbuf_from_data(_i['preview'], size=(64, 48))
# prepare description
_d = '%s\n%s\n%s' % (_i['title'], '-' * len(_i['title']), _i['description'])
# DEBUG
logger.debug('[screen_browser_graphics] _get_store - _d: %s' % _d)
logger.debug('[screen_browser_graphics] _get_store - _p: %s' % type(_p))
logger.debug('[screen_browser_graphics] _get_store - activity_id: %s' % _i['activity_id'])
logger.debug('[screen_browser_graphics] _get_store - timestamp: %s' % _i['timestamp'])
# DEBUG
# do update
_store.append([_p, _d, _i['activity_id'], _i['timestamp']])
# return it
return _store
class ScreenBrowserSounds(ScreenBrowser):
def __init__(self, toolbar):
# init parent
ScreenBrowser.__init__(self, toolbar)
class PlayerScreen(gtk.VBox):
def __init__(self, toolbar):
# init parent
gtk.VBox.__init__(self)
# prepare screen
# ...
# update activity
# activity.set_canvas(self)
# show all
# self.show_all()
|