diff --git a/data/interface/wmenu.ui b/data/interface/wmenu.ui index 0cbfaa5..88326d3 100644 --- a/data/interface/wmenu.ui +++ b/data/interface/wmenu.ui @@ -26,6 +26,7 @@ False False True + center False False diff --git a/src/devede/dvd_menu.py b/src/devede/dvd_menu.py index 9e03073..850ad99 100644 --- a/src/devede/dvd_menu.py +++ b/src/devede/dvd_menu.py @@ -48,6 +48,12 @@ class dvd_menu(devede.interface_manager.interface_manager): self.add_group("at_startup", ["menu_show_at_startup", "play_first_title_at_startup"], "menu_show_at_startup") + self.add_fontbutton("title_font", "Sans 14", self.update_preview) + self.add_fontbutton("entry_font", "Sans 12", self.update_preview) + + self.add_filebutton("background_picture", None, self.update_preview) + self.add_filebutton("background_music", None, self.update_preview) + def update_preview(self,b=None): print("Cambiado algo") @@ -82,4 +88,5 @@ class dvd_menu(devede.interface_manager.interface_manager): def on_accept_clicked(self,b): self.store_ui(self.builder) + print (self.entry_font) self.wmenu.destroy() \ No newline at end of file diff --git a/src/devede/interface_manager.py b/src/devede/interface_manager.py index 9385ff5..0be2f44 100644 --- a/src/devede/interface_manager.py +++ b/src/devede/interface_manager.py @@ -35,6 +35,8 @@ class interface_manager(GObject.GObject): self.interface_integer_adjustments = [] self.interface_lists = [] self.interface_colorbuttons = [] + self.interface_fontbuttons = [] + self.interface_filebuttons = [] def add_group(self,group_name,radiobutton_list,default_value,callback = None): """ Adds a group of radiobuttons and creates an internal variable with @@ -106,6 +108,22 @@ class interface_manager(GObject.GObject): exec('self.'+colorbutton_name+' = default_value') self.interface_colorbuttons.append( (colorbutton_name, callback )) + + def add_fontbutton(self,fontbutton_name, default_value, callback = None): + """ Adds an internal variable with the name text_name, linked to an + element with the same name (must be a Gtk.FontButton). + The default value must be a string with the font values """ + + exec('self.'+fontbutton_name+' = default_value') + self.interface_fontbuttons.append( (fontbutton_name, callback )) + + def add_filebutton(self,filebutton_name, default_value, callback = None): + """ Adds an internal variable with the name text_name, linked to an + element with the same name (must be a Gtk.FileButton). + The default value must be a string with the font values """ + + exec('self.'+filebutton_name+' = default_value') + self.interface_filebuttons.append( (filebutton_name, callback )) def add_show_hide(self,element_name,to_show,to_hide): """ Adds an element that can be active or inactive, and two lists of elements. @@ -194,13 +212,31 @@ class interface_manager(GObject.GObject): for element in self.interface_colorbuttons: value = eval('self.'+element[0]) - colorbtn = builder.get_object(element[0]) + obj = builder.get_object(element[0]) objcolor = Gdk.Color(int(value[0]*65535.0),int(value[1]*65535.0),int(value[2]*65535.0)) - colorbtn.set_color(objcolor) - colorbtn.set_alpha(int(value[3]*65535.0)) + obj.set_color(objcolor) + obj.set_alpha(int(value[3]*65535.0)) callback = element[1] if (callback != None): - colorbtn.connect("color_set",callback) + obj.connect("color_set",callback) + + for element in self.interface_fontbuttons: + value = eval('self.'+element[0]) + obj = builder.get_object(element[0]) + if (value != None): + obj.set_font(value) + callback = element[1] + if (callback != None): + obj.connect("font_set",callback) + + for element in self.interface_filebuttons: + value = eval('self.'+element[0]) + obj = builder.get_object(element[0]) + if (value != None): + obj.set_filename(value) + callback = element[1] + if (callback != None): + obj.connect("file_set",callback) self.interface_show_hide_obj = {} for element in self.interface_show_hide: @@ -325,12 +361,19 @@ class interface_manager(GObject.GObject): exec('self.'+element[0]+' = obj.get_value()') for element in self.interface_colorbuttons: - - colorbtn = builder.get_object(element[0]) - objcolor = colorbtn.get_color() - alpha = colorbtn.get_alpha() + obj = builder.get_object(element[0]) + objcolor = obj.get_color() + alpha = obj.get_alpha() exec('self.'+element[0]+' = ((float(objcolor.red))/65535.0, (float(objcolor.green))/65535.0, (float(objcolor.blue))/65535.0, (float(alpha))/65535.0)') + for element in self.interface_fontbuttons: + obj = builder.get_object(element[0]) + exec('self.'+element[0]+' = obj.get_font()') + + for element in self.interface_filebuttons: + obj = builder.get_object(element[0]) + exec('self.'+element[0]+' = obj.get_filename()') + for element in self.interface_lists: exec('self.'+element[0]+' = []') the_liststore = builder.get_object(element[0])