1 | import os |
---|
2 | |
---|
3 | from gi.repository import Gtk |
---|
4 | from gi.repository import Gdk |
---|
5 | |
---|
6 | from sugar3.graphics import style |
---|
7 | from sugar3.graphics.icon import Icon |
---|
8 | from sugar3.graphics.icon import EventIcon |
---|
9 | from sugar3.graphics.palette import Palette |
---|
10 | from sugar3.graphics.menuitem import MenuItem |
---|
11 | |
---|
12 | def _destroy_cb(widget, data=None): |
---|
13 | Gtk.main_quit() |
---|
14 | |
---|
15 | def __enter_notify_event_cb(button, event): |
---|
16 | print 'enter event.mode=', event.mode |
---|
17 | |
---|
18 | def __leave_notify_event_cb(button, event): |
---|
19 | print 'leave event.mode=', event.mode |
---|
20 | |
---|
21 | def __button_press_event_cb(button, event): |
---|
22 | print 'press event.button=', event.button |
---|
23 | |
---|
24 | def __button_release_event_cb(button, event): |
---|
25 | print 'release event.button=', event.button |
---|
26 | |
---|
27 | settings = Gtk.Settings.get_default() |
---|
28 | sugar_theme = 'sugar-72' |
---|
29 | if 'SUGAR_SCALING' in os.environ: |
---|
30 | if os.environ['SUGAR_SCALING'] == '100': |
---|
31 | sugar_theme = 'sugar-100' |
---|
32 | settings.set_property('gtk-theme-name', sugar_theme) |
---|
33 | settings.set_property('gtk-icon-theme-name', 'sugar') |
---|
34 | |
---|
35 | window = Gtk.Window() |
---|
36 | window.set_default_size(800, 640) |
---|
37 | window.connect("destroy", _destroy_cb) |
---|
38 | |
---|
39 | fixed = Gtk.Fixed() |
---|
40 | window.add(fixed) |
---|
41 | fixed.show() |
---|
42 | |
---|
43 | |
---|
44 | icon2 = EventIcon(icon_name='computer-xo') |
---|
45 | fixed.put(icon2, 90, 90) |
---|
46 | icon2.show() |
---|
47 | |
---|
48 | icon2.connect('enter-notify-event', |
---|
49 | __enter_notify_event_cb) |
---|
50 | icon2.connect('leave-notify-event', |
---|
51 | __leave_notify_event_cb) |
---|
52 | icon2.connect('button-press-event', |
---|
53 | __button_press_event_cb) |
---|
54 | icon2.connect('button-release-event', |
---|
55 | __button_release_event_cb) |
---|
56 | |
---|
57 | palette_icon = Icon(icon_name='computer-xo', |
---|
58 | pixel_size=style.STANDARD_ICON_SIZE) |
---|
59 | icon2.props.palette = Palette('test', icon=palette_icon) |
---|
60 | icon2.props.palette_invoker.props.toggle_palette = True |
---|
61 | vbox_menu = Gtk.VBox() |
---|
62 | label = Gtk.Button('Click me') |
---|
63 | vbox_menu.add(label) |
---|
64 | icon2.props.palette.set_content(vbox_menu) |
---|
65 | vbox_menu.show_all() |
---|
66 | |
---|
67 | window.show() |
---|
68 | Gtk.main() |
---|