Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/atoidepoc/ui/screens.py
blob: 822d5521ff9c2b29d899d3282441ec871d41f85c (plain)
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()