Commit 2fba283
Use new color picker in theme tab
Changed files (12)
modifiedbirdfont/GtkWindow.valamodifiedlibbirdfont/ColorPicker.valamodifiedlibbirdfont/ColorTool.valamodifiedlibbirdfont/Expander.valamodifiedlibbirdfont/FileTools.valamodifiedlibbirdfont/NativeWindow.valamodifiedlibbirdfont/OverViewItem.valamodifiedlibbirdfont/ThemeTab.valamodifiedlibbirdfont/Toolbox.valamodifiedresources/bright.thememodifiedresources/dark.thememodifiedresources/high_contrast.theme
Diff
@@ -277,63 +277,7 @@ public class GtkWindow : Gtk.Window, NativeWindow { scrollbar.adjustment.value = position * (1 - scrollbar.adjustment.page_size); scrollbar_supress_signal = false; }- - public void color_selection (ColorTool color_tool) {- new ColorWindow (color_tool);- }- - class ColorWindow : Gtk.Window {- - ColorChooserWidget color_selection;- - public ColorWindow (ColorTool color_tool) {- Gtk.Button set_button;- - title = t_("Select color");- window_position = Gtk.WindowPosition.CENTER; - Box box = new Gtk.Box (Gtk.Orientation.VERTICAL, 0);- add (box);-- color_selection = new Gtk.ColorChooserWidget ();- box.add (color_selection);- - color_selection.show_editor = true;-- color_selection.color_activated.connect ((color) => {- Gdk.RGBA c = color_selection.rgba;- color_tool.color_r = c.red;- color_tool.color_g = c.green;- color_tool.color_b = c.blue;- color_tool.color_a = c.alpha;- color_tool.color_updated ();- });-- color_selection.color_activated.connect (() => {- Gdk.RGBA c = new Gdk.RGBA ();- c.red = color_tool.color_r;- c.green = color_tool.color_g;- c.blue = color_tool.color_b;- c.alpha = color_tool.color_a;- color_selection.rgba = c;- });-- set_button = new Gtk.Button.with_label (_("Set"));- box.add (set_button);-- set_button.clicked.connect (() => {- Gdk.RGBA c = color_selection.rgba;- color_tool.color_r = c.red;- color_tool.color_g = c.green;- color_tool.color_b = c.blue;- color_tool.color_a = c.alpha;- color_tool.color_updated ();- });-- show_all ();- } - }- public void dump_clipboard_content (Clipboard clipboard, SelectionData selection_data) { string d; return_if_fail (!is_null (selection_data));@@ -34,7 +34,7 @@ public class ColorPicker : Tool { base (null, tooltip); bar_height = 22 * Toolbox.get_scale ();- h = 4 * bar_height;+ h = 5 * bar_height; color_updated.connect (() => { redraw ();@@ -44,7 +44,7 @@ public class ColorPicker : Tool { panel_press_action.connect ((selected, button, tx, ty) => { if (y <= ty <= y + 4 * bar_height) { update_color = true;- selected_bar = (int) Math.rint ((ty - y) / bar_height);+ selected_bar = (int) ((ty - y) / bar_height); set_color_from_pointer (tx); } });@@ -82,7 +82,7 @@ public class ColorPicker : Tool { a = (double) tx / Toolbox.allocation_width; } - redraw (); + color_updated (); } public Color get_color () {@@ -103,10 +103,9 @@ public class ColorPicker : Tool { public void draw_bars (Context cr, double px, double py) { double scale = Toolbox.get_scale ();- double x = this.x - px;- double y = this.y - py; double step = 1.0 / Toolbox.allocation_width; Color c;+ double y = this.y - py; for (double p = 0; p < 1; p += step) { c = new Color.hsba (p, 1, 0.5, 1);@@ -137,10 +136,16 @@ public class ColorPicker : Tool { cr.fill (); cr.restore (); }+ + c = new Color.hsba (hue, s, b, a);+ cr.save ();+ cr.set_source_rgba (c.r, c.g, c.b, c.a);+ cr.rectangle (0, y + 4 * bar_height, Toolbox.allocation_width, bar_height);+ cr.fill ();+ cr.restore (); } void draw_dial (Context cr, double px, double py, int bar_index, double val) {- double x = this.x - px; double y = this.y - py; double scale = Toolbox.get_scale (); double p;@@ -27,10 +27,6 @@ public class ColorTool : Tool { public ColorTool (string tooltip = "") { base (null, tooltip);-- select_action.connect((self) => {- MainWindow.native_window.color_selection (this);- }); color_updated.connect (() => { redraw ();@@ -41,7 +37,15 @@ public class ColorTool : Tool { public Color get_color () { return new Color (color_r, color_g, color_b, color_a); }- ++ public void set_color (Color c) {+ color_r = c.r;+ color_g = c.g;+ color_b = c.b;+ color_a = c.a;+ color_updated ();+ }+ public void signal_color_updated () { color_updated (); }@@ -129,7 +129,7 @@ public class Expander : GLib.Object { t.h = 21 * scale; } else if (t is ColorPicker) { t.w = Toolbox.allocation_width * scale;- t.h = 4 * ((ColorPicker) t).bar_height;+ t.h = 5 * ((ColorPicker) t).bar_height; } else { t.w = 33 * scale; t.h = (33 / 1.11) * scale;@@ -81,6 +81,11 @@ public class FileTools : ToolCollection { foreach (ToolCollection tc in toolbox.tool_sets) { tc.redraw (); }++ OverViewItem.label_background = null;+ OverViewItem.selected_label_background = null;+ OverViewItem.label_background_no_menu = null;+ OverViewItem.selected_label_background_no_menu = null; }); if (!theme.has_prefix ("generated_")) {@@ -88,8 +93,6 @@ public class FileTools : ToolCollection { } } - themes.add_tool (new ColorPicker ());- expanders.add (font_name); expanders.add (file_tools); expanders.add (themes);@@ -27,8 +27,6 @@ public interface NativeWindow : GLib.Object { public abstract void set_clipboard (string data); public abstract void set_inkscape_clipboard (string data); - public abstract void color_selection (ColorTool color_tool);- public abstract void set_scrollbar_size (double size); public abstract void set_scrollbar_position (double position); @@ -38,10 +38,10 @@ public class OverViewItem : GLib.Object { public VersionList version_menu; Text label; - static Surface? label_background = null;- static Surface? selected_label_background = null;- static Surface? label_background_no_menu = null;- static Surface? selected_label_background_no_menu = null;+ public static Surface? label_background = null;+ public static Surface? selected_label_background = null;+ public static Surface? label_background_no_menu = null;+ public static Surface? selected_label_background_no_menu = null; public OverViewItem (GlyphCollection? glyphs, unichar character, double x, double y) { this.x = x;@@ -18,12 +18,24 @@ using Math; namespace BirdFont { public class ThemeTab : SettingsDisplay {+ static ThemeTab singleton;+ ColorTool color_tool; public ThemeTab () { base ();+ color_tool = new ColorTool ();+ singleton = this; create_setting_items (); } + public static ThemeTab get_instance () {+ return singleton;+ }+ + public void color_updated (Color c) {+ color_tool.set_color (c);+ }+ public override void create_setting_items () { tools.clear (); @@ -42,6 +54,7 @@ public class ThemeTab : SettingsDisplay { select_theme.select_action.connect((self) => { string theme_file = self.get_name (); TabBar tb;+ Toolbox toolbox; Preferences.set ("theme", theme_file); Theme.load_theme (theme_file);@@ -54,12 +67,27 @@ public class ThemeTab : SettingsDisplay { self.set_selected (true); create_setting_items (); + toolbox = MainWindow.get_toolbox ();+ foreach (ToolCollection tc in toolbox.tool_sets) {+ tc.redraw ();+ }+ + foreach (Expander e in Toolbox.current_set.get_expanders ()) {+ e.redraw ();+ }+ Toolbox.redraw_tool_box ();+ GlyphCanvas.redraw (); tb = MainWindow.get_tab_bar (); tb.redraw (0, 0, tb.width, tb.height);- }); + + OverViewItem.label_background = null;+ OverViewItem.selected_label_background = null;+ OverViewItem.label_background_no_menu = null;+ OverViewItem.selected_label_background_no_menu = null;+ }); select_theme.set_icon ("theme"); @@ -96,6 +124,14 @@ public class ThemeTab : SettingsDisplay { ColorTool c = (ColorTool) ((!) s.button); tools.add (s);++ c.select_action.connect((self) => {+ color_tool = (ColorTool) self;+ });+ + c.deselect_action.connect((self) => {+ color_tool = new ColorTool ();+ }); c.color_updated.connect (() => { create_setting_items ();@@ -28,6 +28,7 @@ public class Toolbox : GLib.Object { public static BackgroundTools background_tools; public static SpacingTools spacing_tools; public static FileTools file_tools;+ public static ThemeTools theme_tools; Tool current_tool; @@ -66,6 +67,7 @@ public class Toolbox : GLib.Object { background_tools = new BackgroundTools (); spacing_tools = new SpacingTools (); file_tools = new FileTools ();+ theme_tools = new ThemeTools (); tool_sets.add (drawing_tools); tool_sets.add (kerning_tools);@@ -97,6 +99,8 @@ public class Toolbox : GLib.Object { current_set = (ToolCollection) overview_tools; } else if (tab_name == "Backgrounds") { current_set = (ToolCollection) background_tools;+ } else if (tab_name == "Themes") {+ current_set = (ToolCollection) theme_tools; } else if (t != null && ((!) t).get_display () is Glyph) { current_set = (ToolCollection) drawing_tools; } else {@@ -10,8 +10,8 @@ <color name="Tab Separator" red="0.81176470588235294" green="0.82352941176470584" blue="0.84313725490196079" alpha="1"/> <color name="Overview Glyph" red="0.85882352941176465" green="0.8666666666666667" blue="0.9137254901960784" alpha="1"/> <color name="Dialog Shadow" red="0" green="0" blue="0" alpha="0.29999999999999999"/>- <color name="Selected Active Cubic Control Point" red="0" green="0" blue="0" alpha="1"/>- <color name="Selected Cubic Control Point" red="0" green="0" blue="0" alpha="1"/>+ <color name="Selected Active Cubic Control Point" red="0" green="0.4392156862745098" blue="0.95686274509803926" alpha="1"/>+ <color name="Selected Cubic Control Point" red="0" green="0.4392156862745098" blue="0.95686274509803926" alpha="1"/> <color name="Selected Tab Foreground" red="0" green="0" blue="0" alpha="1"/> <color name="Control Point Handle" red="0.31764705882352939" green="0.57647058823529407" blue="0.35294117647058826" alpha="1"/> <color name="Text Tab Bar" red="0.011764705882352941" green="0.062745098039215685" blue="0.094117647058823528" alpha="1"/>@@ -19,11 +19,12 @@ <color name="Text Foreground" red="0.011764705882352941" green="0.062745098039215685" blue="0.094117647058823528" alpha="1"/> <color name="Fill Color" red="0.5" green="0.5" blue="0.5" alpha="1"/> <color name="Table Background 1" red="0.93333333333333335" green="0.93725490196078431" blue="0.95294117647058818" alpha="1"/>- <color name="Stroke Color" red="0" green="0" blue="0" alpha="1"/>+ <color name="Stroke Color" red="0.55294117647058827" green="0.55294117647058827" blue="0.55294117647058827" alpha="1"/> <color name="Menu Background" red="0.87058823529411766" green="0.8666666666666667" blue="0.88627450980392153" alpha="1"/> <color name="Table Background 2" red="0.88235294117647056" green="0.8901960784313725" blue="0.9137254901960784" alpha="1"/>+ <color name="Filled Stroke" red="0" green="0" blue="0" alpha="1"/> <color name="Selected Tool Foreground" red="0.011764705882352941" green="0.062745098039215685" blue="0.094117647058823528" alpha="1"/>- <color name="Selected Control Point Handle" red="0" green="0" blue="0" alpha="1"/>+ <color name="Selected Control Point Handle" red="0" green="0.4392156862745098" blue="0.95686274509803926" alpha="1"/> <color name="Font Name" red="0" green="0" blue="0" alpha="1"/> <color name="Button Foreground" red="0.011764705882352941" green="0.062745098039215685" blue="0.094117647058823528" alpha="1"/> <color name="Grid" red="0.20000000000000001" green="0.59999999999999998" blue="0.20000000000000001" alpha="0.20000000000000001"/>@@ -40,12 +41,12 @@ <color name="Button Background 4" red="0.94901960784313721" green="0.96470588235294119" blue="0.96470588235294119" alpha="1"/> <color name="Background Glyph" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="0.5"/> <color name="Default Background" red="0.93333333333333335" green="0.93725490196078431" blue="0.95294117647058818" alpha="1"/>- <color name="Handle Color" red="0" green="0" blue="0" alpha="1"/>+ <color name="Handle Color" red="0.55294117647058827" green="0.55294117647058827" blue="0.55294117647058827" alpha="1"/> <color name="Button Border 4" red="0.67843137254901964" green="0.69019607843137254" blue="0.73725490196078436" alpha="1"/> <color name="Highlighted Guide" red="0" green="0" blue="0.29999999999999999" alpha="1"/> <color name="Overview Item 1" red="0.92549019607843142" green="0.92549019607843142" blue="0.92549019607843142" alpha="1"/> <color name="Cubic Control Point" red="0.45490196078431372" green="0.45490196078431372" blue="0.45490196078431372" alpha="1"/>- <color name="Selected Active Quadratic Control Point" red="0" green="0" blue="0" alpha="1"/>+ <color name="Selected Active Quadratic Control Point" red="0" green="0.4392156862745098" blue="0.95686274509803926" alpha="1"/> <color name="Overview Item 2" red="0.96470588235294119" green="0.96470588235294119" blue="0.96470588235294119" alpha="1"/> <color name="Selected Button Foreground" red="0.011764705882352941" green="0.062745098039215685" blue="0.094117647058823528" alpha="1"/> <color name="Active Spin Button" red="0.40784313725490196" green="0.42352941176470588" blue="0.46666666666666667" alpha="1"/>@@ -57,7 +58,7 @@ <color name="Overview Foreground" red="0.17647058823529413" green="0.17647058823529413" blue="0.17647058823529413" alpha="1"/> <color name="Selected Objects" red="0.13725490196078433" green="0.51372549019607838" blue="0.76078431372549016" alpha="1"/> <color name="Tool Foreground" red="0.011764705882352941" green="0.062745098039215685" blue="0.094117647058823528" alpha="1"/>- <color name="Selected Quadratic Control Point" red="0" green="0" blue="0" alpha="1"/>+ <color name="Selected Quadratic Control Point" red="0" green="0.4392156862745098" blue="0.95686274509803926" alpha="1"/> <color name="Checkbox Background" red="1" green="1" blue="1" alpha="1"/> <color name="Active Cubic Control Point" red="0.27450980392156865" green="0.27450980392156865" blue="0.27450980392156865" alpha="1"/> <color name="Foreground 1" red="0" green="0" blue="0" alpha="1"/>@@ -10,8 +10,8 @@ <color name="Tab Separator" red="0.4823529411764706" green="0.49803921568627452" blue="0.51764705882352946" alpha="1"/> <color name="Overview Glyph" red="0.85882352941176465" green="0.8666666666666667" blue="0.9137254901960784" alpha="1"/> <color name="Dialog Shadow" red="0" green="0" blue="0" alpha="0.29999999999999999"/>- <color name="Selected Active Cubic Control Point" red="0" green="0" blue="0" alpha="1"/>- <color name="Selected Cubic Control Point" red="0" green="0" blue="0" alpha="1"/>+ <color name="Selected Active Cubic Control Point" red="0.91764705882352937" green="0.30196078431372547" blue="0.10196078431372549" alpha="1"/>+ <color name="Selected Cubic Control Point" red="0.91764705882352937" green="0.30196078431372547" blue="0.10196078431372549" alpha="1"/> <color name="Selected Tab Foreground" red="0.14901960784313725" green="0.14117647058823529" blue="0.15294117647058825" alpha="1"/> <color name="Control Point Handle" red="0.31764705882352939" green="0.57647058823529407" blue="0.35294117647058826" alpha="1"/> <color name="Text Tab Bar" red="0.50196078431372548" green="0.50980392156862742" blue="0.53333333333333333" alpha="1"/>@@ -19,11 +19,12 @@ <color name="Text Foreground" red="0" green="0" blue="0" alpha="1"/> <color name="Fill Color" red="0.5" green="0.5" blue="0.5" alpha="1"/> <color name="Table Background 1" red="0.93333333333333335" green="0.93725490196078431" blue="0.95294117647058818" alpha="1"/>- <color name="Stroke Color" red="0" green="0" blue="0" alpha="1"/>+ <color name="Stroke Color" red="0.55294117647058827" green="0.55294117647058827" blue="0.55294117647058827" alpha="1"/> <color name="Menu Background" red="0.16862745098039217" green="0.16470588235294117" blue="0.18431372549019609" alpha="1"/> <color name="Table Background 2" red="0.88235294117647056" green="0.8901960784313725" blue="0.9137254901960784" alpha="1"/>+ <color name="Filled Stroke" red="0" green="0" blue="0" alpha="1"/> <color name="Selected Tool Foreground" red="0.4823529411764706" green="0.49803921568627452" blue="0.51764705882352946" alpha="1"/>- <color name="Selected Control Point Handle" red="0" green="0" blue="0" alpha="1"/>+ <color name="Selected Control Point Handle" red="0.91764705882352937" green="0.30196078431372547" blue="0.10196078431372549" alpha="1"/> <color name="Font Name" red="0.91764705882352937" green="0.30196078431372547" blue="0.10196078431372549" alpha="1"/> <color name="Button Foreground" red="1" green="1" blue="1" alpha="1"/> <color name="Grid" red="0.20000000000000001" green="0.59999999999999998" blue="0.20000000000000001" alpha="0.20000000000000001"/>@@ -40,12 +41,12 @@ <color name="Button Background 4" red="0.17254901960784313" green="0.18431372549019609" blue="0.20000000000000001" alpha="1"/> <color name="Background Glyph" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="0.5"/> <color name="Default Background" red="0.21568627450980393" green="0.2196078431372549" blue="0.24313725490196078" alpha="1"/>- <color name="Handle Color" red="0" green="0" blue="0" alpha="1"/>+ <color name="Handle Color" red="0.55294117647058827" green="0.55294117647058827" blue="0.55294117647058827" alpha="1"/> <color name="Button Border 4" red="0.15294117647058825" green="0.15686274509803921" blue="0.17254901960784313" alpha="1"/> <color name="Highlighted Guide" red="0" green="0" blue="0.29999999999999999" alpha="1"/> <color name="Overview Item 1" red="0.92549019607843142" green="0.92549019607843142" blue="0.92549019607843142" alpha="1"/> <color name="Cubic Control Point" red="0.45490196078431372" green="0.45490196078431372" blue="0.45490196078431372" alpha="1"/>- <color name="Selected Active Quadratic Control Point" red="0" green="0" blue="0" alpha="1"/>+ <color name="Selected Active Quadratic Control Point" red="0.91764705882352937" green="0.30196078431372547" blue="0.10196078431372549" alpha="1"/> <color name="Overview Item 2" red="0.96470588235294119" green="0.96470588235294119" blue="0.96470588235294119" alpha="1"/> <color name="Selected Button Foreground" red="0.41960784313725491" green="0.4392156862745098" blue="0.47843137254901963" alpha="1"/> <color name="Active Spin Button" red="0.41960784313725491" green="0.4392156862745098" blue="0.47843137254901963" alpha="1"/>@@ -57,7 +58,7 @@ <color name="Overview Foreground" red="0.17647058823529413" green="0.17647058823529413" blue="0.17647058823529413" alpha="1"/> <color name="Selected Objects" red="0.13725490196078433" green="0.51372549019607838" blue="0.76078431372549016" alpha="1"/> <color name="Tool Foreground" red="0.4823529411764706" green="0.49803921568627452" blue="0.51764705882352946" alpha="1"/>- <color name="Selected Quadratic Control Point" red="0" green="0" blue="0" alpha="1"/>+ <color name="Selected Quadratic Control Point" red="0.91764705882352937" green="0.30196078431372547" blue="0.10196078431372549" alpha="1"/> <color name="Checkbox Background" red="0.396078431372549" green="0.42352941176470588" blue="0.45490196078431372" alpha="1"/> <color name="Active Cubic Control Point" red="0.27450980392156865" green="0.27450980392156865" blue="0.27450980392156865" alpha="1"/> <color name="Foreground 1" red="0" green="0" blue="0" alpha="1"/>@@ -19,9 +19,10 @@ <color name="Text Foreground" red="0" green="0" blue="0" alpha="1"/> <color name="Fill Color" red="0" green="0" blue="0" alpha="1"/> <color name="Table Background 1" red="1" green="1" blue="1" alpha="1"/>- <color name="Stroke Color" red="0" green="0" blue="0" alpha="1"/>+ <color name="Stroke Color" red="0.55294117647058827" green="0.55294117647058827" blue="0.55294117647058827" alpha="1"/> <color name="Menu Background" red="1" green="1" blue="1" alpha="1"/> <color name="Table Background 2" red="1" green="1" blue="1" alpha="1"/>+ <color name="Filled Stroke" red="0" green="0" blue="0" alpha="1"/> <color name="Selected Tool Foreground" red="1" green="1" blue="1" alpha="1"/> <color name="Selected Control Point Handle" red="0" green="0" blue="0" alpha="1"/> <color name="Font Name" red="0" green="0" blue="0" alpha="1"/>@@ -40,7 +41,7 @@ <color name="Button Background 4" red="1" green="1" blue="1" alpha="1"/> <color name="Background Glyph" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="0.5"/> <color name="Default Background" red="1" green="1" blue="1" alpha="1"/>- <color name="Handle Color" red="0" green="0" blue="0" alpha="1"/>+ <color name="Handle Color" red="0.55294117647058827" green="0.55294117647058827" blue="0.55294117647058827" alpha="1"/> <color name="Button Border 4" red="0" green="0" blue="0" alpha="1"/> <color name="Highlighted Guide" red="0" green="0" blue="0" alpha="1"/> <color name="Overview Item 1" red="1" green="1" blue="1" alpha="1"/>