source: lliurex-store/trunk/fuentes/lliurex-store-gui/MainMenu.py @ 3649

Last change on this file since 3649 was 3649, checked in by hectorgh, 3 years ago

wip

File size: 5.7 KB
Line 
1import gi
2gi.require_version('Gtk', '3.0')
3
4from gi.repository import Gtk, Pango, GdkPixbuf, Gdk, Gio, GObject,GLib
5
6import signal
7signal.signal(signal.SIGINT, signal.SIG_DFL)
8
9import gettext
10
11import Core
12import Screenshot
13
14_=gettext.gettext
15
16RSRC_DIR="./"
17
18class MainMenu(Gtk.VBox):
19       
20        def __init__(self):
21               
22                Gtk.VBox.__init__(self)
23               
24                self.paused=False
25                self.max_image_id=5
26               
27                ui_path=Core.Core.get_core().ui_path
28               
29                builder=Gtk.Builder()
30                builder.add_from_file(ui_path)
31               
32               
33                self.main_view_box=builder.get_object("main_view_box")
34                self.divider1=builder.get_object("mv_divider1")
35                self.divider2=builder.get_object("mv_divider2")
36                self.divider3=builder.get_object("mv_divider3")
37                self.featured_label=builder.get_object("featured_label")
38                self.categories_label=builder.get_object("categories_label")
39                self.featured_extra_box=builder.get_object("featured_extra_box")
40                self.rewind_button=builder.get_object("media_rewind_button")
41                self.play_button=builder.get_object("media_play_button")
42                self.forward_button=builder.get_object("media_forward_button")
43                self.media_play_image=builder.get_object("media_play_image")
44
45                self.image_stack=Gtk.Stack()
46                self.image_stack.set_transition_duration(800)
47                self.image_stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT)
48                self.image_stack.set_margin_right(10)
49                self.image_stack.set_margin_left(10)
50                self.main_view_box.pack_start(self.image_stack,False,False,10)
51                self.main_view_box.reorder_child(self.image_stack,2)
52               
53                self.pack_start(self.main_view_box,True,True,0)
54               
55               
56               
57                self.rewind_button.connect("clicked",self.rewind_clicked)
58                self.play_button.connect("clicked",self.play_clicked)
59                self.forward_button.connect("clicked",self.forward_clicked)
60               
61                self.build_related()
62                self.set_css_names()
63               
64                GLib.timeout_add(3000,self.next_image)
65               
66        #def __init__
67       
68        def build_related(self):
69
70                # Main banners
71               
72                size=140
73                spacing=2
74               
75               
76                self.image1=Gtk.Image.new_from_file(RSRC_DIR+"gearth.png")
77                self.image2=Gtk.Image.new_from_file(RSRC_DIR+"gearth2.png")
78                self.image3=Gtk.Image.new_from_file(RSRC_DIR+"gearth3.png")
79                self.image4=Gtk.Image.new_from_file(RSRC_DIR+"gearth4.png")
80                self.image5=Gtk.Image.new_from_file(RSRC_DIR+"gearth5.png")
81               
82                b=Gtk.Button()
83                b.set_name("RELATED_BUTTON")
84                b.add(self.image1)
85                self.image_stack.add_titled(b,"image1","Image 1")
86               
87                b=Gtk.Button()
88                b.set_name("RELATED_BUTTON")
89                b.add(self.image2)
90                self.image_stack.add_titled(b,"image2","Image 2")
91               
92                b=Gtk.Button()
93                b.set_name("RELATED_BUTTON")
94                b.add(self.image3)
95                self.image_stack.add_titled(b,"image3","Image 3")
96               
97                b=Gtk.Button()
98                b.set_name("RELATED_BUTTON")
99                b.add(self.image4)
100                self.image_stack.add_titled(b,"image4","Image 4")
101               
102                b=Gtk.Button()
103                b.set_name("RELATED_BUTTON")
104                b.add(self.image5)
105                self.image_stack.add_titled(b,"image5","Image 5")
106               
107                # Smaller banners
108               
109                image1=Screenshot.Screenshot(size,size,"https://teoten.files.wordpress.com/2010/02/splash1.png","ardour_banner")
110                self.testbutton=Gtk.Button()
111                self.testbutton.set_name("RELATED_BUTTON")
112                self.testbutton.add(image1)
113               
114                self.featured_extra_box.pack_start(self.testbutton,True,False,spacing)
115               
116                image2=Screenshot.Screenshot(size,size,"http://img02.deviantart.net/f02e/i/2015/146/3/7/audacity_logo_shadow_by_hectech-d8uwdme.png","audacity_banner")
117                b=Gtk.Button()
118                b.set_name("RELATED_BUTTON")
119                b.add(image2)
120                self.featured_extra_box.pack_start(b,True,False,spacing)
121               
122                image3=Screenshot.Screenshot(size,size,"http://orig12.deviantart.net/da38/f/2011/266/8/c/lmms_logo_01_by_vaccieaux-d4anukd.jpg","lmms_banner")
123                b=Gtk.Button()
124                b.set_name("RELATED_BUTTON")
125                b.add(image3)
126                self.featured_extra_box.pack_start(b,True,False,spacing)
127               
128                image4=Screenshot.Screenshot(size,size,"https://mir-s3-cdn-cf.behance.net/project_modules/disp/29947525486889.563460e87f09d.jpg","rosegarden_banner")
129                b=Gtk.Button()
130                b.set_name("RELATED_BUTTON")
131                b.add(image4)
132                self.featured_extra_box.pack_start(b,True,False,spacing)
133               
134                image5=Screenshot.Screenshot(size,size,"http://img02.deviantart.net/f02e/i/2015/146/3/7/audacity_logo_shadow_by_hectech-d8uwdme.png","audacity_banner")
135                b=Gtk.Button()
136                b.set_name("RELATED_BUTTON")
137                b.add(image5)
138                self.featured_extra_box.pack_start(b,True,False,spacing)
139               
140               
141        #def build_related
142       
143       
144       
145       
146        def set_css_names(self):
147               
148                self.main_view_box.set_name("DETAILS_BOX")
149                self.divider1.set_name("DIVIDER")
150                self.divider2.set_name("DIVIDER")
151                self.divider3.set_name("DIVIDER")
152                self.featured_label.set_name("RELATED_LABEL")
153                self.categories_label.set_name("RELATED_LABEL")
154                self.rewind_button.set_name("MEDIA_BUTTON")
155                self.play_button.set_name("MEDIA_BUTTON")
156                self.forward_button.set_name("MEDIA_BUTTON")
157               
158               
159        #def set_css_info
160       
161       
162        def next_image(self,force=False,add=True):
163               
164                tmp=self.image_stack.get_visible_child_name()
165                id=int(tmp.split("image")[1])
166               
167                if add:
168               
169                        if id < self.max_image_id:
170                                id+=1
171                        else:
172                                id=1
173                else:
174                       
175                        if id <= 1:
176                                id=self.max_image_id
177                        else:
178                                id-=1
179               
180                id="image%s"%id
181               
182                if not self.paused or force:
183                        if not self.image_stack.get_transition_running() or force:
184                                self.image_stack.set_visible_child_name(id)
185                       
186                return True
187               
188        #def next_image
189       
190        def rewind_clicked(self,widget):
191               
192                self.image_stack.set_transition_type(Gtk.StackTransitionType.SLIDE_RIGHT)
193                self.next_image(True,False)
194                self.image_stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT)
195               
196        #def rewind_clicked
197       
198        def play_clicked(self,widget):
199
200                if self.paused:
201                        self.media_play_image.set_from_file(RSRC_DIR + "media_pause.svg")
202                else:
203                        self.media_play_image.set_from_file(RSRC_DIR + "media_play.svg")
204                       
205                self.paused=not self.paused
206               
207        #def rewind_clicked
208       
209        def forward_clicked(self,widget):
210               
211                self.next_image(True)
212               
213        #def rewind_clicked
214       
215#class MainMenu
Note: See TracBrowser for help on using the repository browser.