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

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

wip

File size: 14.9 KB
Line 
1import gi
2gi.require_version('Gtk', '3.0')
3
4from gi.repository import Gtk, Pango, GdkPixbuf, Gdk, Gio
5import Screenshot
6#import VideoLink
7
8
9import signal
10signal.signal(signal.SIGINT, signal.SIG_DFL)
11
12import gettext
13
14_=gettext.gettext
15
16class DetailsBox(Gtk.VBox):
17
18        def __init__(self):
19               
20                Gtk.VBox.__init__(self)
21               
22                self.banner_full_size=250
23                self.screenshot_small=100
24                self.banner_small=150
25               
26                self.full_info_box=Gtk.HBox()
27                self.pack_start(self.full_info_box,True,True,5)
28               
29                # ####### LEFT SIDE ######
30               
31                self.app_details=Gtk.VBox()
32                self.app_details.set_margin_left(10)
33                self.app_details.set_margin_bottom(10)
34                self.app_details.set_margin_top(5)
35                self.full_info_box.pack_start(self.app_details,False,False,0)
36
37                self.app_banner=Screenshot.Screenshot(self.banner_full_size,self.banner_full_size,"https://teoten.files.wordpress.com/2010/02/splash1.png","ardour_banner")
38                self.app_banner.set_size_request(self.banner_full_size,self.banner_full_size)
39
40                self.app_details.pack_start(self.app_banner,False,False,0)
41                self.install_button=Gtk.Button("Install/Installed")
42                self.app_details.pack_start(self.install_button,False,False,10)
43               
44                self.details_label=Gtk.Label("Details")
45                self.details_label.set_alignment(0,0.5)
46                self.details_label.set_margin_left(0)
47                self.app_details.pack_start(self.details_label,False,False,0)
48               
49                self.details_divider=Gtk.HBox()
50                self.details_divider.set_size_request(0,1)
51                self.app_details.pack_start(self.details_divider,False,False,5)
52               
53                self.version_label=Gtk.Label(_("Version"))
54                self.version_label.set_alignment(0,0.5)
55                self.category_label=Gtk.Label(_("Category"))
56                self.category_label.set_alignment(0,0.5)
57                self.license_label=Gtk.Label(_("License"))
58                self.license_label.set_alignment(0,0.5)
59                self.size_label=Gtk.Label(_("Size"))
60                self.size_label.set_alignment(0,0.5)
61                self.website_label=Gtk.Label(_("Website"))
62                self.website_label.set_alignment(0,0.5)
63               
64               
65                self.version_value_label=Gtk.Label("asdasd")
66                self.version_value_label.set_alignment(1,0.5)
67                self.category_value_label=Gtk.Label("asdasd")
68                self.category_value_label.set_alignment(1,0.5)
69                self.license_value_label=Gtk.Label("GPL-3.0")
70                self.license_value_label.set_alignment(1,0.5)
71                self.size_value_label=Gtk.Label("asdasd")
72                self.size_value_label.set_alignment(1,0.5)
73                self.website_value_label=Gtk.Label()
74                self.website_value_label.set_markup("<a href=\"https://www.google.es\">www.google.es</a>")
75                self.website_value_label.set_alignment(1,0.5)
76               
77               
78                hbox=Gtk.HBox()
79                hbox.pack_start(self.version_label,False,False,0)
80                hbox.pack_end(self.version_value_label,False,False,0)
81                self.app_details.pack_start(hbox,False,False,0)
82                hbox=Gtk.HBox()
83                hbox.pack_start(self.category_label,False,False,0)
84                hbox.pack_end(self.category_value_label,False,False,0)
85                self.app_details.pack_start(hbox,False,False,0)
86                hbox=Gtk.HBox()
87                hbox.pack_start(self.license_label,False,False,0)
88                hbox.pack_end(self.license_value_label,False,False,0)
89                self.app_details.pack_start(hbox,False,False,0)
90                hbox=Gtk.HBox()
91                hbox.pack_start(self.size_label,False,False,0)
92                hbox.pack_end(self.size_value_label,False,False,0)
93                self.app_details.pack_start(hbox,False,False,0)
94                hbox=Gtk.HBox()
95                hbox.pack_start(self.website_label,False,False,0)
96                hbox.pack_end(self.website_value_label,False,False,0)
97                self.app_details.pack_start(hbox,False,False,0)
98               
99               
100                # ############# #
101               
102                # ####### RIGHT SIDE ######
103               
104                self.app_details_r=Gtk.VBox()
105                self.app_details_r.set_margin_top(5)
106                self.full_info_box.pack_start(self.app_details_r,True,True,20)
107               
108                hbox=Gtk.HBox()
109                self.app_icon=Screenshot.Screenshot(64,64,"http://icons.iconarchive.com/icons/alecive/flatwoken/512/Apps-Ardour-icon.png","ardour_icon")
110                #self.app_icon.image.set_alignment(0,0.5)
111                hbox.pack_start(self.app_icon,False,False,0)
112               
113                self.app_name_label=Gtk.Label("Ardour")
114                self.app_name_label.set_alignment(0,1)
115                self.short_description_label=Gtk.Label("Record, mix and master multi-track audio.")
116                self.short_description_label.set_alignment(0,0)
117               
118                vbox=Gtk.VBox()
119                vbox.pack_start(self.app_name_label,True,True,0)
120                vbox.pack_start(self.short_description_label,True,True,0)
121                hbox.pack_start(vbox,True,True,5)
122               
123                self.app_details_r.pack_start(hbox,False,False,0)
124               
125                self.full_description_label=Gtk.Label()
126                self.full_description_label.set_margin_right(10)
127                self.full_description_label.set_alignment(0,1)
128                self.full_description_label.set_justify(Gtk.Justification.FILL)
129                self.full_description_label.set_line_wrap(True)
130                #self.full_desicription_label.set_line_wrap_mode(Pango.WrapMode.WORD)
131               
132               
133                txt="""
134Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.
135Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.  Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.
136Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.  Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.
137Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.  Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.
138Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.
139Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.
140Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh. Descripcion super larga que habla de cosas que ashdajksl dhajksdh asjkldh ajklsdh ajklsdh asljkdh.
141               
142               
143                """
144                self.full_description_label.set_text(txt)
145               
146                sw=Gtk.ScrolledWindow()
147                sw.set_shadow_type(Gtk.ShadowType.NONE)
148                sw.set_overlay_scrolling(True)
149                sw.set_kinetic_scrolling(True)
150                vp=Gtk.Viewport()
151                sw.add(vp)
152                vp.add(self.full_description_label)
153               
154                self.app_details_r.pack_start(sw,True,True,10)
155               
156               
157               
158                self.description_divider=Gtk.HBox()
159                self.description_divider.set_size_request(0,1)
160                self.app_details_r.pack_start(self.description_divider,False,False,5)
161               
162                ss_sw=Gtk.ScrolledWindow()
163                ss_sw.set_shadow_type(Gtk.ShadowType.NONE)
164                ss_vp=Gtk.Viewport()
165               
166                ss_sw.add(ss_vp)
167               
168                self.screenshots_box=Gtk.HBox()
169               
170                ss_sw.set_size_request(0,130)
171                vbox=Gtk.VBox()
172                vbox.pack_start(self.screenshots_box,True,False,0)
173                ss_vp.add(vbox)
174                self.app_details_r.pack_start(ss_sw,False,False,5)
175               
176               
177                times=1
178               
179
180
181                image=Screenshot.Screenshot(self.screenshot_small,self.screenshot_small,"https://farm6.staticflickr.com/5624/23815901722_4d1edf4ed1_b.jpg","Uncharted_01",True,"https://www.youtube.com/embed/hrYvDujhEck")
182                b=Gtk.Button()
183                b.set_name("RELATED_BUTTON")
184                b.add(image)
185                self.screenshots_box.pack_start(b,False,False,5)
186               
187       
188               
189               
190                for x in range(0,times):
191               
192                        image=Screenshot.Screenshot(self.screenshot_small,self.screenshot_small,"https://i.ytimg.com/vi/pzPxhaYQQK8/maxresdefault.jpg","ardour_s01")
193                        b=Gtk.Button()
194                        b.set_name("RELATED_BUTTON")
195                        b.add(image)
196                        self.screenshots_box.pack_start(b,False,False,5)
197                        #image.download_image()
198                       
199                        image=Screenshot.Screenshot(self.screenshot_small,self.screenshot_small,"https://s-media-cache-ak0.pinimg.com/736x/60/d2/4f/60d24f3635c7b387f6c3df513b66581e.jpg","ardour_s02")
200                        b=Gtk.Button()
201                        b.set_name("RELATED_BUTTON")
202                        b.add(image)
203                        self.screenshots_box.pack_start(b,False,False,5)
204                        #image2.download_image()
205                       
206                        image=Screenshot.Screenshot(self.screenshot_small,self.screenshot_small,"https://s-media-cache-ak0.pinimg.com/736x/98/0a/df/980adf6c765534ad6af4cb44e0ab9ebe.jpg","ardour_s03")
207                        b=Gtk.Button()
208                        b.set_name("RELATED_BUTTON")
209                        b.add(image)
210                        self.screenshots_box.pack_start(b,False,False,5)
211                        #image.download_image()
212                       
213                        image=Screenshot.Screenshot(self.screenshot_small,self.screenshot_small,"https://s-media-cache-ak0.pinimg.com/236x/2f/b2/92/2fb29257ec3f217ca248b928190aa0c9.jpg","ardour_s04")
214                        b=Gtk.Button()
215                        b.set_name("RELATED_BUTTON")
216                        b.add(image)
217                        self.screenshots_box.pack_start(b,False,False,5)
218                        #image2.download_image()
219                       
220                        image=Screenshot.Screenshot(self.screenshot_small,self.screenshot_small,"http://moderndogmagazine.com/sites/default/files/images/uploads/Pug.jpg","ardour_s05")
221                        b=Gtk.Button()
222                        b.set_name("RELATED_BUTTON")
223                        b.add(image)
224                        self.screenshots_box.pack_start(b,False,False,5)
225               
226
227               
228               
229                # ####################### #
230               
231                # ## RELATED #######
232               
233                related_vbox=Gtk.VBox()
234                related_vbox.set_margin_left(10)
235               
236                self.related_label=Gtk.Label(_("Related"))
237                self.related_label.set_alignment(0,1)
238               
239                related_vbox.pack_start(self.related_label,False,False,0)
240                               
241                self.related_divider=Gtk.HBox()
242                self.related_divider.set_size_request(0,1)
243                self.related_divider.set_margin_right(20)
244                related_vbox.pack_start(self.related_divider,False,False,5)
245               
246                related_sw=Gtk.ScrolledWindow()
247                related_sw.set_shadow_type(Gtk.ShadowType.NONE)
248                related_sw.set_size_request(0,self.banner_small+40)
249                related_sw.set_margin_right(20)
250                related_vp=Gtk.Viewport()
251                related_sw.add(related_vp)
252               
253                self.related_box=Gtk.HBox()
254                self.related_box.set_margin_bottom(10)
255               
256                related_vp.add(self.related_box)
257               
258                times=2
259               
260               
261               
262                for x in range(0,times):
263                       
264                        app=None
265                       
266                       
267                        image=Screenshot.Screenshot(self.banner_small,self.banner_small,"https://mir-s3-cdn-cf.behance.net/project_modules/disp/29947525486889.563460e87f09d.jpg","rosegarden_banner")
268                        b=Gtk.Button()
269                        b.add(image)
270                        b.set_size_request(self.banner_small,self.banner_small)
271                        b.set_margin_top(10)
272                        b.connect("clicked",self.related_app_clicked,None)
273                        b.set_name("RELATED_BUTTON")
274                        #vbox=Gtk.VBox()
275                        #vbox.pack_start(b,False,False,0)
276                       
277                        b.set_valign(Gtk.Align.CENTER)
278                       
279                        self.related_box.pack_start(b,False,False,5)
280
281
282                        image=Screenshot.Screenshot(self.banner_small,self.banner_small,"http://img02.deviantart.net/f02e/i/2015/146/3/7/audacity_logo_shadow_by_hectech-d8uwdme.png","audacity_banner")
283                        b=Gtk.Button()
284                        b.add(image)
285                        b.set_margin_top(10)
286                        b.connect("clicked",self.related_app_clicked,None)
287                        b.set_name("RELATED_BUTTON")
288                        #vbox=Gtk.VBox()
289                        #vbox.pack_start(b,False,False,0)
290                       
291                        b.set_valign(Gtk.Align.CENTER)
292                       
293                        self.related_box.pack_start(b,False,False,5)
294                       
295                        image=Screenshot.Screenshot(self.banner_small,self.banner_small,"http://orig12.deviantart.net/da38/f/2011/266/8/c/lmms_logo_01_by_vaccieaux-d4anukd.jpg","lmms_banner")
296                        b=Gtk.Button()
297                        b.add(image)
298                        b.set_margin_top(10)
299                        b.connect("clicked",self.related_app_clicked,None)
300                        b.set_name("RELATED_BUTTON")
301                        #vbox=Gtk.VBox()
302                        #vbox.pack_start(b,False,False,0)
303                       
304                        b.set_valign(Gtk.Align.CENTER)
305                       
306                        self.related_box.pack_start(b,False,False,5)
307               
308                related_vbox.pack_start(related_sw,False,False,5)
309                self.pack_start(related_vbox,True,True,0)
310               
311                # #################
312
313               
314               
315                self.set_css_info()
316               
317        #def
318       
319        def set_css_info(self):
320               
321                self.style_provider=Gtk.CssProvider()
322                f=Gio.File.new_for_path("lliurex-store.css")
323                self.style_provider.load_from_file(f)
324                Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
325               
326                self.set_name("DETAILS_BOX")
327               
328                self.details_divider.set_name("DIVIDER")
329                self.description_divider.set_name("DIVIDER")
330                self.related_divider.set_name("DIVIDER")
331               
332                self.details_label.set_name("DETAILS_LABEL")
333                self.version_label.set_name("DETAILS_OPTIONS")
334                self.category_label.set_name("DETAILS_OPTIONS")
335                self.license_label.set_name("DETAILS_OPTIONS")
336                self.size_label.set_name("DETAILS_OPTIONS")
337                self.website_label.set_name("DETAILS_OPTIONS")
338               
339                self.version_value_label.set_name("DETAILS_VALUES")
340                self.category_value_label.set_name("DETAILS_VALUES")
341                self.license_value_label.set_name("DETAILS_VALUES")
342                self.size_value_label.set_name("DETAILS_VALUES")
343                self.website_value_label.set_name("DETAILS_VALUES")
344               
345                self.app_name_label.set_name("TITLE")
346                self.short_description_label.set_name("SHORT_DESCRIPTION")
347                self.full_description_label.set_name("FULL_DESCRIPTION")
348               
349                self.related_label.set_name("RELATED_LABEL")
350               
351                self.install_button.set_name("INSTALL_BUTTON")
352               
353        #def set-css_info
354       
355        def related_app_clicked(self,widget,app):
356               
357                print "app clicked"
358               
359        #def related_app_clicked
360       
361
362       
363#
364
365if __name__=="__main__":
366       
367       
368        vbox=Gtk.VBox()
369       
370        t=DetailsBox()
371        t.set_margin_left(20)
372        t.set_margin_right(20)
373        t.set_margin_top(20)
374        t.set_margin_bottom(20)
375       
376        vbox.pack_start(t,True,True,0)
377        b=Gtk.Button("HOLA")
378        vbox.pack_start(b,True,True,5)
379       
380        vbox2=Gtk.VBox()
381        t2=DetailsBox()
382        t2.set_margin_left(20)
383        t2.set_margin_right(20)
384        t2.set_margin_top(20)
385        t2.set_margin_bottom(20)
386        vbox2.pack_start(t2,True,True,0)
387        b2=Gtk.Button("ADIOS")
388        vbox2.pack_start(b2,True,True,5)
389       
390       
391        s=Gtk.Stack()
392        s.add_titled(vbox,"a","A")
393        s.add_titled(vbox2,"b","B")
394        s.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT)
395        s.set_transition_duration(1000)
396       
397        def clicked(widget,name):
398               
399                global s
400               
401                s.set_visible_child_name(name)
402               
403        b.connect("clicked",clicked,"b")
404        b2.connect("clicked",clicked,"a")
405       
406        w=Gtk.Window()
407        w.add(s)
408        w.set_name("MAIN_BOX")
409        w.show_all()
410        w.connect("destroy",Gtk.main_quit)
411        Gtk.main()
412       
Note: See TracBrowser for help on using the repository browser.