Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/button.py
blob: 2b0e85c2d0b3e1ee0cfe2b5c99ae3abd0536c2e5 (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
import gtk
import os
import gobject
import rsvg
import gc

from sugar.graphics.palette import Palette
from sugar.graphics.tray import TrayButton
from sugar.graphics.icon import Icon
from sugar.graphics import style
from constants import Constants
import utils

class RecdButton(TrayButton, gobject.GObject):
    def __init__(self, ui, recd):
        TrayButton.__init__(self)
        self.ui = ui
        self.recd = recd

        img = self.getImg( )
        self.set_icon_widget( img )

        self.ACTIVATE_COPY_ID = 0
        self.ACTIVATE_REMOVE_ID = 0
        self.setup_rollover_options( recd.title )


    def getImg( self ):
        img = gtk.Image()
        ipb = self.recd.getThumbPixbuf()
        xoff = 8
        yoff = 8
        pb = None
        if (self.recd.type == Constants.TYPE_PHOTO):
            if (self.recd.buddy):
                thumbPhotoSvg = utils.loadSvg(Constants.thumbPhotoSvgData, self.recd.colorStroke.hex, self.recd.colorFill.hex)
                pb = thumbPhotoSvg.get_pixbuf()
            else:
                pb = Constants.thumbPhotoSvg.get_pixbuf()

        elif (self.recd.type == Constants.TYPE_VIDEO):
            if (self.recd.buddy):
                thumbVideoSvg = utils.loadSvg(Constants.thumbVideoSvgData, self.recd.colorStroke.hex, self.recd.colorFill.hex)
                pb = thumbVideoSvg.get_pixbuf()
            else:
                pb = Constants.thumbVideoSvg.get_pixbuf()

        elif (self.recd.type == Constants.TYPE_AUDIO):
            if (self.recd.buddy):
                thumbAudioSvg = utils.loadSvg(Constants.thumbAudioSvgData, self.recd.colorStroke.hex, self.recd.colorFill.hex)
                pb = thumbAudioSvg.get_pixbuf()
            else:
                pb = Constants.thumbAudioSvg.get_pixbuf()

        img.set_from_pixbuf(pb)
        img.show()
        ipb.composite(pb, xoff, yoff, ipb.get_width(), ipb.get_height(), xoff, yoff, 1, 1, gtk.gdk.INTERP_BILINEAR, 255)
        img.set_from_pixbuf(pb)

        gc.collect()

        return img


    def setButtonClickedId( self, id ):
        self.BUTTON_CLICKED_ID = id


    def getButtonClickedId( self ):
        return self.BUTTON_CLICKED_ID


    def setup_rollover_options( self, info ):
        palette = Palette(info)
        self.set_palette(palette)

        self.rem_menu_item = gtk.MenuItem( Constants.istrRemove )
        self.ACTIVATE_REMOVE_ID = self.rem_menu_item.connect('activate', self._itemRemoveCb)
        palette.menu.append(self.rem_menu_item)
        self.rem_menu_item.show()

        self.addCopyMenuItem()


    def addCopyMenuItem( self ):
        if (self.recd.buddy and not self.recd.downloadedFromBuddy):
            return
        if (self.ACTIVATE_COPY_ID != 0):
            return

        self.copy_menu_item = gtk.MenuItem( Constants.istrCopyToClipboard )
        self.ACTIVATE_COPY_ID = self.copy_menu_item.connect('activate', self._itemCopyToClipboardCb)
        self.get_palette().menu.append(self.copy_menu_item)
        self.copy_menu_item.show()


    def cleanUp( self ):
        self.rem_menu_item.disconnect( self.ACTIVATE_REMOVE_ID )
        if (self.ACTIVATE_COPY_ID != 0):
            self.copy_menu_item.disconnect( self.ACTIVATE_COPY_ID )


    def _itemRemoveCb(self, widget):
        self.ui.deleteThumbSelection( self.recd )


    def _itemCopyToClipboardCb(self, widget):
        self.ui.copyToClipboard( self.recd )