Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/present.py
blob: c2879e647ebc02eceff0f2e2af41918d20e5b95c (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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# present.py
#
# Copyright 2012 S. Daniel Francis <francis@sugarlabs.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
#

import gtk
from sugar import mime
from sugar.activity import activity
from sugar.activity.widgets import ActivityToolbarButton
from sugar.activity.widgets import StopButton
from sugar.graphics.objectchooser import ObjectChooser
from slides import SlidesNotebook
from toolbars import PresentToolbarBox
from images import Image
from images import ImagesGalery


class PresentActivity(activity.Activity):
    def __init__(self, handle):
        activity.Activity.__init__(self, handle)
        activity_button = ActivityToolbarButton(self)
        stop_button = StopButton(self)
        toolbarbox = PresentToolbarBox(activity_button, stop_button)
        toolbarbox.connect('insert-picture', self.load_picture)
        toolbarbox.connect('new-slide', self._append_slide)
        toolbarbox.show()
        self.set_toolbar_box(toolbarbox)
        self.images_galery = ImagesGalery()
        self.images_galery.show()
        self.set_tray(self.images_galery, gtk.POS_RIGHT)
        self.slides = SlidesNotebook()
        self.slides.cover.connect("get-image-from-galery",
                                  self.images_galery.image_request)
        #self.slides.cover.top_image_editor.connect("load-toolbar",
        #                                    toolbarbox.load_image_toolbar)
        self.set_canvas(self.slides)
        self.slides.show_all()
        self.show()

    def read_file(self, path):
        pass

    def write_file(self, path):
        pass

    def _append_slide(self, widget):
        self.slides.append_slide()

    def load_picture(self, widget):
        chooser = ObjectChooser(parent=self,
                                what_filter=mime.GENERIC_TYPE_IMAGE)
        result = chooser.run()
        if result == gtk.RESPONSE_ACCEPT:
            jobject = chooser.get_selected_object()
            image = Image()
            image.set_from_file(jobject.get_file_path())
            self.images_galery.append_image(image)