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
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
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)
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
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