Ejemplo n.º 1
0
 def create_combo_widget(self, label_content, items, select_index=0):
     label = Label("%s:" % label_content)
     if len(items) > 10:
         height = 200
         max_width = 300
     else:    
         height = None
         max_width = None
     combo_box = ComboBox(items, height, select_index=select_index, max_width=max_width)
     hbox = set_widget_resize(label, combo_box)
     return hbox, combo_box
Ejemplo n.º 2
0
 def create_style_table(self):
     main_table = gtk.Table(8, 2)
     main_table.set_row_spacings(CONTENT_ROW_SPACING)
     style_title_label = Label(_("Lyrics style"))
     # font_name
     font_families = get_font_families()
     font_name = config.get("scroll_lyrics", "font_name")
     try:
         font_item_index = font_families.index(font_name)
     except:    
         font_item_index = 0
         
     font_name_hbox, self.font_name_combo_box = self.create_combo_widget(_("Font"),
                                                                         [(font_name, None) for font_name in font_families],
                                                                         font_item_index)
     font_type_hbox = self.create_font_type_box()
     
     font_size = int(config.get("scroll_lyrics", "font_size", 10))
     font_size_hbox, self.font_size_spin = self.create_combo_spin(_("Size"), font_size, 5, 30, 1)
     
     # alignment.
     line_align_index = int(config.get("scroll_lyrics", "line_align", 1))
     line_align_hbox, self.line_align_combo_box = self.create_combo_widget(_("Alignment"), 
                                             [(value, index) for index, value 
                                              in enumerate([_("Left"), _("Centered"), _("Right")])],
                                                                            line_align_index)
     
     # scroll mode.
     scroll_mode_index = int(config.get("scroll_lyrics", "scroll_mode", 0))
     scroll_mode_hbox, self.scroll_mode_combo_box = self.create_combo_widget(_("Rolling"),
                                              [(value, index) for index, value in enumerate([_("Always"), _("By line")])],
                                                                             scroll_mode_index) 
     
     
     inactive_color_label = Label("%s:" % _("Unplayed"))
     active_color_label = Label("%s:" % _("Played"))
     self.inactive_color_button = ColorButton(config.get("scroll_lyrics", "inactive_color"))
     self.active_color_button = ColorButton(config.get("scroll_lyrics", "active_color"))
     
     color_hbox = gtk.HBox(spacing=5)        
     color_hbox.pack_start(self.inactive_color_button, False, False)
     color_hbox.pack_start(active_color_label, False, False)
     color_hbox.pack_start(self.active_color_button, False, False)
     
     main_table.attach(style_title_label, 0, 2, 0, 1, yoptions=gtk.FILL, xpadding=8)
     main_table.attach(create_separator_box(), 0, 2, 1, 2, yoptions=gtk.FILL)
     main_table.attach(font_name_hbox, 0, 2, 2, 3)
     main_table.attach(font_type_hbox, 0, 2, 3, 4)
     main_table.attach(font_size_hbox, 0, 2, 4, 5)
     main_table.attach(line_align_hbox, 0, 2, 5, 6)
     main_table.attach(scroll_mode_hbox, 0, 2, 6, 7)
     main_table.attach(set_widget_resize(inactive_color_label, color_hbox), 0, 2, 7, 8)
     return main_table
Ejemplo n.º 3
0
 def create_font_type_box(self):
     font_type_items = OrderedDict()
     font_type_items["Regular"] = _("Regular")
     font_type_items["Italic"]  = _("Italic")
     font_type_items["Bold"]    = _("Bold")
     font_type_items["Bold Italic"] = _("Bold Italic")
     try:
         font_type_index = font_type_items.keys().index(config.get("scroll_lyrics", "font_type", "Regular"))
     except:    
         font_type_index = 0
     self.font_type_combo_box = ComboBox([(value, key) for key, value in font_type_items.items()],
                                         select_index=font_type_index)    
     
     font_type_label = Label("%s:" % _("Style"))
     return set_widget_resize(font_type_label, self.font_type_combo_box)
Ejemplo n.º 4
0
 def create_combo_spin(self, label_content, init_value, low, upper, step):
     label = Label("%s:" % label_content)
     spinbox = SpinBox(init_value, low, upper, step)
     hbox = set_widget_resize(label, spinbox)
     return hbox, spinbox
Ejemplo n.º 5
0
 def create_style_table(self):
     main_table = gtk.Table(12, 2)
     main_table.set_row_spacings(CONTENT_ROW_SPACING)
     self.create_single_line_box()
     self.create_double_line_box()
     style_title_label = Label(_("Lyrics style"))
     
     # font_name
     font_families = get_font_families()
     font_name = config.get("lyrics", "font_name")
     try:
         font_item_index = font_families.index(font_name)
     except:    
         font_item_index = 0
         
     font_name_hbox, self.font_name_combo_box = self.create_combo_widget(_("Font"),
                                                                         [(font_name, None) for font_name in font_families],
                                                                         font_item_index)
     font_type_hbox = self.create_font_type_box()
     font_size = int(config.get("lyrics", "font_size", 30))
     font_size_hbox, self.font_size_spin = self.create_combo_spin(_("Size"), font_size, 16, 70, 1)
     
     line_number = config.getint("lyrics", "line_count")
     line_number_hbox, self.line_number_combo_box = self.create_combo_widget(_("Lines"),
                                                 [(_("Single"), 1), (_("Double"), 2)], select_index=line_number - 1)
     
     self.line_align_hbox = gtk.HBox()
     line_align_label = Label("%s:" % _("Alignment"))
     
     if line_number == 2:
         self.line_align_hbox.add(self.double_align_combo_box)
     else:    
         self.line_align_hbox.add(self.single_align_combo_box)
         
     part_align_hbox = set_widget_resize(line_align_label, self.line_align_hbox)
     
     outline_hbox, self.outline_spin = self.create_combo_spin(_("Outline"), 
                                                              int(config.get("lyrics", "outline_width", "3")), 0, 8, 1)
     
     # blur_color_button.
     blur_color_label = Label("%s:" % _("Stroke"))
     self.blur_color_button = ColorButton(config.get("lyrics", "blur_color", "#000000"))
     blur_color_hbox = set_widget_resize(blur_color_label, self.blur_color_button)
     
     predefine_color_hbox = self.create_predefine_box()
     inactive_color_label = Label("%s:" % _("Unplayed"))
     self.inactive_upper_color_button = ColorButton(config.get("lyrics", "inactive_color_upper"))
     self.inactive_middle_color_button = ColorButton(config.get("lyrics", "inactive_color_middle"))
     self.inactive_bottom_color_button = ColorButton(config.get("lyrics", "inactive_color_bottom"))
     
     inactive_color_subbox = gtk.HBox(spacing=10)
     inactive_color_subbox.pack_start(self.inactive_upper_color_button, False, False)
     inactive_color_subbox.pack_start(self.inactive_middle_color_button, False, False)
     inactive_color_subbox.pack_start(self.inactive_bottom_color_button, False, False)
     inactive_color_box = set_widget_resize(inactive_color_label, inactive_color_subbox, sizes2=(160, 22))
     
     active_color_label = Label("%s:" % _("Played"))
     self.active_upper_color_button = ColorButton(config.get("lyrics", "active_color_upper"))
     self.active_middle_color_button = ColorButton(config.get("lyrics", "active_color_middle"))
     self.active_bottom_color_button = ColorButton(config.get("lyrics", "active_color_bottom"))
     
     active_color_subbox = gtk.HBox(spacing=10)
     active_color_subbox.pack_start(self.active_upper_color_button, False, False)
     active_color_subbox.pack_start(self.active_middle_color_button, False, False)
     active_color_subbox.pack_start(self.active_bottom_color_button, False, False)
     active_color_box = set_widget_resize(active_color_label, active_color_subbox, sizes2=(160, 22))
     
     main_table.attach(style_title_label, 0, 2, 0, 1, yoptions=gtk.FILL, xpadding=8)
     main_table.attach(create_separator_box(), 0, 2, 1, 2, yoptions=gtk.FILL)
     main_table.attach(font_name_hbox, 0, 2, 2, 3)
     main_table.attach(font_type_hbox, 0, 2, 3, 4)
     main_table.attach(font_size_hbox, 0, 2, 4, 5)
     main_table.attach(line_number_hbox, 0, 2, 5, 6)
     main_table.attach(part_align_hbox, 0, 2, 6, 7)
     main_table.attach(outline_hbox, 0, 2, 7, 8)
     main_table.attach(blur_color_hbox, 0, 2, 8, 9)
     main_table.attach(predefine_color_hbox, 0, 2, 9, 10)
     main_table.attach(inactive_color_box, 0, 2, 10, 11)
     main_table.attach(active_color_box, 0, 2, 11, 12)
     return main_table