1- from main import TeletextReader
1+ from main import *
22
33import gi
44
77from gi .repository import Gtk , Gdk , Adw , Gio , GdkPixbuf
88
99
10- # css_provider = Gtk.CssProvider()
11- # css_provider.load_from_path("")
12- # Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
10+ css_provider = Gtk .CssProvider ()
11+ css_provider .load_from_string ("""
12+ .margin {
13+ margin: 15px;
14+ }
15+ .image {
16+ margin-left: 30px;
17+ margin-right: 30px;
18+ border-radius: 10px;
19+ }
20+ .nav {
21+ margin-top: 30px;
22+ margin-bottom: 31px;
23+ }
24+ .redbutton {
25+ margin-left: 40px;
26+ margin-right: 120px;
27+ background-color: red;
28+ border-radius: 20px;
29+ }
30+ .greenbutton {
31+ margin-right: 100px;
32+ background-color: lime;
33+ border-radius: 20px;
34+ }
35+ .yellowbutton {
36+ margin-right: 100px;
37+ background-color: yellow;
38+ border-radius: 20px;
39+ }
40+ .bluebutton {
41+ margin-left: 20px;
42+ margin-right: 40px;
43+ background-color: blue;
44+ border-radius: 20px;
45+ }
46+ """ )
47+ Gtk .StyleContext .add_provider_for_display (Gdk .Display .get_default (), css_provider , Gtk .STYLE_PROVIDER_PRIORITY_APPLICATION )
1348
1449
1550class MainWindow (Gtk .ApplicationWindow ):
1651 def __init__ (self , * args , ** kwargs ):
1752 super ().__init__ (* args , ** kwargs )
18- self .set_default_size (800 , 600 )
53+ self .set_default_size (580 , 685 )
1954 self .set_title ("Teletext" )
2055 self .titlebar = Gtk .HeaderBar ()
2156 self .set_titlebar (self .titlebar )
57+ self .country = "hu"
2258
2359 action = Gio .SimpleAction .new ("home" , None )
2460 action .connect ("activate" , self .home )
@@ -44,25 +80,60 @@ def __init__(self, *args, **kwargs):
4480
4581 self .titlebar .pack_start (self .homebutton )
4682
47- self .teletext = TeletextReader ()
83+ match self .country :
84+ case "hu" :
85+ self .teletext = hunTeletextReader ()
86+ case "at" :
87+ self .teletext = atTeletextReader ()
4888 self .home ()
4989
5090 def home (self , * args , ** kwargs ):
5191 self .teletext .getPage ()
5292 self .cbox = Gtk .CenterBox ()
5393 self .set_child (self .cbox )
54- self .ccbox = Gtk .CenterBox ( )
94+ self .ccbox = Gtk .Box ( orientation = Gtk . Orientation . VERTICAL )
5595 self .cbox .set_center_widget (self .ccbox )
56-
5796 img = Gio .File .new_for_uri (self .teletext .getPageGif )
5897 img2 = GdkPixbuf .Pixbuf .new_from_stream (img .read (cancellable = None ))
5998 image = Gtk .Image ().new_from_pixbuf (img2 )
99+ match self .country :
100+ case "hu" :
101+ self .teletext .colorbuttonsInit ()
60102 image .set_pixel_size (520 )
61- self .ccbox .set_start_widget (image )
103+ image .set_css_classes (["image" ])
104+ self .ccbox .append (image )
105+
106+ if self .country == "hu" :
107+ #buttons
108+ self .colorbox = Gtk .Box (orientation = Gtk .Orientation .HORIZONTAL )
109+
110+ redbutton = Gtk .Button ()
111+ redbutton .set_css_classes (["redbutton" ])
112+ redbutton .connect ('clicked' , self .redbuttonHandler )
113+ self .colorbox .append (redbutton )
114+
115+ greenbutton = Gtk .Button ()
116+ greenbutton .set_css_classes (["greenbutton" ])
117+ greenbutton .connect ('clicked' , self .greenbuttonHandler )
118+ self .colorbox .append (greenbutton )
119+
120+ yellowbutton = Gtk .Button ()
121+ yellowbutton .set_css_classes (["yellowbutton" ])
122+ yellowbutton .connect ('clicked' , self .yellowbuttonHandler )
123+ self .colorbox .append (yellowbutton )
124+
125+ bluebutton = Gtk .Button ()
126+ bluebutton .set_css_classes (["bluebutton" ])
127+ bluebutton .connect ('clicked' , self .bluebuttonHandler )
128+ self .colorbox .append (bluebutton )
129+
130+ self .ccbox .append (self .colorbox )
62131
63132 self .inputbox = Gtk .Box (orientation = Gtk .Orientation .VERTICAL )
64133 self .inputbox .set_valign (Gtk .Align .CENTER )
65- self .ccbox .set_end_widget (self .inputbox )
134+ self .inputbox .set_halign (Gtk .Align .CENTER )
135+ self .inputbox .set_css_classes (["nav" ])
136+ self .ccbox .append (self .inputbox )
66137
67138 text = Gtk .Label ()
68139 text .set_markup ('<span size="large">Page Number</span>' )
@@ -99,43 +170,107 @@ def pagenumEntry(self, *args, **kwargs):
99170 buf = self .input .get_buffer ()
100171 text = buf .get_text ()
101172 if len (text ) == 3 :
102- self .teletext .pagenum = text
103- self .home ()
173+ if self .teletext .checkpageNum (text ):
174+ self .teletext .pagenum = text
175+ self .home ()
176+ else :
177+ self .teletext .pagenum = "100"
178+ self .home ()
104179
105180 def nextPage (self , * args , ** kwargs ):
106- nextpage = self .teletext .nextPage
107- if nextpage == None :
108- pass
109- else :
110- self .teletext .pagenum = nextpage [0 ]
111- self .teletext .subpage = nextpage [1 ]
112- self .home ()
181+ match self .country :
182+ case "hu" :
183+ nextpage = self .teletext .nextPage
184+ if nextpage == None :
185+ pass
186+ else :
187+ self .teletext .pagenum = nextpage [0 ]
188+ self .teletext .subpage = nextpage [1 ]
189+ self .home ()
190+ case "at" :
191+ try :
192+ self .teletext .pagenum = self .teletext .nextPage
193+ self .teletext .getPage ()
194+ except :
195+ self .teletext .pagenum = "100"
196+ self .home ()
113197
114198 def prevPage (self , * args , ** kwargs ):
115- prevpage = self .teletext .prevPage
116- if prevpage == None :
117- pass
118- else :
119- self .teletext .pagenum = prevpage [0 ]
120- self .teletext .subpage = prevpage [1 ]
121- self .home ()
199+ match self .country :
200+ case "hu" :
201+ prevpage = self .teletext .prevPage
202+ if prevpage == None :
203+ pass
204+ else :
205+ self .teletext .pagenum = prevpage [0 ]
206+ self .teletext .subpage = prevpage [1 ]
207+ self .home ()
208+ case "at" :
209+ try :
210+ self .teletext .pagenum = self .teletext .prevPage
211+ self .teletext .getPage ()
212+ except :
213+ self .teletext .pagenum = "100"
214+ self .home ()
122215 def nextsubPage (self , * args , ** kwargs ):
123- nextsubpage = self .teletext .nextSubpage
124- if nextsubpage == None :
125- pass
126- else :
127- self .teletext .pagenum = nextsubpage [0 ]
128- self .teletext .subpage = nextsubpage [1 ]
129- self .home ()
216+ match self .country :
217+ case "hu" :
218+ nextsubpage = self .teletext .nextSubpage
219+ if nextsubpage == None :
220+ pass
221+ else :
222+ self .teletext .pagenum = nextsubpage [0 ]
223+ self .teletext .subpage = nextsubpage [1 ]
224+ self .home ()
225+ case "at" :
226+ try :
227+ nextsubpage = int (self .teletext .subpage )+ 1
228+ if nextsubpage < self .teletext .subpages :
229+ self .teletext .subpage = f"{ nextsubpage :02d} "
230+ self .home ()
231+ except :
232+ self .teletext .subpage = "01"
233+ self .home ()
130234
131235 def prevsubPage (self , * args , ** kwargs ):
132- prevsubpage = self .teletext .prevSubpage
133- if prevsubpage == None :
134- pass
135- else :
136- self .teletext .pagenum = prevsubpage [0 ]
137- self .teletext .subpage = prevsubpage [1 ]
138- self .home ()
236+ match self .country :
237+ case "hu" :
238+ prevsubpage = self .teletext .prevSubpage
239+ if prevsubpage == None :
240+ pass
241+ else :
242+ self .teletext .pagenum = prevsubpage [0 ]
243+ self .teletext .subpage = prevsubpage [1 ]
244+ self .home ()
245+ case "at" :
246+ try :
247+ prevsubpage = int (self .teletext .subpage )- 1
248+ if prevsubpage >= 1 :
249+ self .teletext .subpage = f"{ prevsubpage :02d} "
250+ self .home ()
251+ except :
252+ self .teletext .subpage = "01"
253+ self .home ()
254+
255+ def redbuttonHandler (self , * args , ** kwargs ):
256+ self .teletext .pagenum = self .teletext .colorbuttons [0 ][0 ]
257+ self .teletext .subpage = self .teletext .colorbuttons [0 ][1 ]
258+ self .home ()
259+
260+ def greenbuttonHandler (self , * args , ** kwargs ):
261+ self .teletext .pagenum = self .teletext .colorbuttons [1 ][0 ]
262+ self .teletext .subpage = self .teletext .colorbuttons [1 ][1 ]
263+ self .home ()
264+
265+ def yellowbuttonHandler (self , * args , ** kwargs ):
266+ self .teletext .pagenum = self .teletext .colorbuttons [2 ][0 ]
267+ self .teletext .subpage = self .teletext .colorbuttons [2 ][1 ]
268+ self .home ()
269+
270+ def bluebuttonHandler (self , * args , ** kwargs ):
271+ self .teletext .pagenum = self .teletext .colorbuttons [3 ][0 ]
272+ self .teletext .subpage = self .teletext .colorbuttons [3 ][1 ]
273+ self .home ()
139274
140275
141276class MyApp (Adw .Application ):
0 commit comments