[glabels/vala] Replace deprecated ColorSelectionDialog with ColorChooserDialog.



commit 78ec8a97287569d4ed76a87a1f67dbaf7f41350c
Author: Jim Evins <evins snaught com>
Date:   Fri May 23 21:29:36 2014 -0400

    Replace deprecated ColorSelectionDialog with ColorChooserDialog.

 glabels/color.vala      |   25 ++++++++++
 glabels/color_menu.vala |  119 +++++++++++++++++++++--------------------------
 glabels/view.vala       |    2 +-
 3 files changed, 79 insertions(+), 67 deletions(-)
---
diff --git a/glabels/color.vala b/glabels/color.vala
index 5b5e0af..893f389 100644
--- a/glabels/color.vala
+++ b/glabels/color.vala
@@ -64,6 +64,19 @@ namespace glabels
                        this( c.red/65535.0, c.green/65535.0, c.blue/65535.0, 1.0 );
                }
 
+               public Color.from_gdk_rgba( Gdk.RGBA c )
+               {
+                       this( c.red, c.green, c.blue, c.alpha );
+               }
+
+               public Color.from_spec( string spec )
+               {
+                       Gdk.RGBA c = { 0, 0, 0, 0 };
+                       c.parse( spec );
+
+                       this( c.red, c.green, c.blue, c.alpha );
+               }
+
                public Color.from_legacy_color( uint32 c )
                {
                        this( ((c>>24) & 0xff) / 255.0,
@@ -104,6 +117,18 @@ namespace glabels
                        return c;
                }
 
+               public Gdk.RGBA to_gdk_rgba()
+               {
+                       Gdk.RGBA c = Gdk.RGBA();
+
+                       c.red   = r;
+                       c.green = g;
+                       c.blue  = b;
+                       c.alpha = a;
+
+                       return c;
+               }
+
                public uint32 to_legacy_color()
                {
                        uint32 c;
diff --git a/glabels/color_menu.vala b/glabels/color_menu.vala
index 4cb1fde..bbeb5bc 100644
--- a/glabels/color_menu.vala
+++ b/glabels/color_menu.vala
@@ -33,62 +33,54 @@ namespace glabels
                private ColorNode      color_node;
 
                private struct ColorTableEntry {
-                       uchar  r;
-                       uchar  g;
-                       uchar  b;
+                       string color_spec;
                        string name;
                }
 
                private const ColorTableEntry color_table[] = {
 
-                       { 139,   0,   0, N_("Dark Red") },
-                       { 165,  42,  42, N_("Brown") },
-                       { 205, 149,  12, N_("Dark Goldenrod") },
-                       {   0, 100,   0, N_("Dark Green") },
-                       {   0, 139, 139, N_("Dark Cyan") },
-                       {   0,   0, 128, N_("Navy Blue") },
-                       { 148,   0, 211, N_("Dark Violet") },
-
-                       { 255,   0,   0, N_("Red") },
-                       { 255, 165,   0, N_("Orange") },
-                       { 205, 205,   0, N_("Dark Yellow") },
-                       {   0, 205,   0, N_("Medium green") },
-                       {  64, 224, 208, N_("Turquoise") },
-                       {   0,   0, 255, N_("Blue") },
-                       { 160,  32, 240, N_("Purple") },
-
-                       { 250, 128, 114, N_("Salmon") },
-                       { 255, 215,   0, N_("Gold") },
-                       { 255, 255,   0, N_("Yellow") },
-                       {   0, 255,   0, N_("Green") },
-                       {   0, 255, 255, N_("Cyan") },
-                       { 135, 206, 235, N_("SkyBlue") },
-                       { 238, 130, 238, N_("Violet") },
-
-                       { 255, 192, 203, N_("Pink") },
-                       { 255, 246, 143, N_("Khaki") },
-                       { 255, 255, 224, N_("Light Yellow") },
-                       { 144, 238, 144, N_("Light Green") },
-                       { 224, 255, 255, N_("Light Cyan") },
-                       { 198, 226, 255, N_("Slate Gray") },
-                       { 216, 191, 216, N_("Thistle") },
-
-                       { 255, 255, 255, N_("White") },
-                       /* xgettext: no-c-format */
-                       { 230, 230, 230, N_("10% Gray") },
-                       /* xgettext: no-c-format */
-                       { 192, 192, 192, N_("25% Gray") },
-                       /* xgettext: no-c-format */
-                       { 153, 153, 153, N_("40% Gray") },
-                       /* xgettext: no-c-format */
-                       { 128, 128, 128, N_("50% Gray") },
-                       /* xgettext: no-c-format */
-                       { 102, 102, 102, N_("60% Gray") },
-                       {   0,   0,   0, N_("Black") }
-
+                       { "#ef2929", NC_("Color name", "Light Scarlet Red") },
+                       { "#fcaf3e", NC_("Color name", "Light Orange")      },
+                       { "#fce94f", NC_("Color name", "Light Butter")      },
+                       { "#8ae234", NC_("Color name", "Light Chameleon")   },
+                       { "#729fcf", NC_("Color name", "Light Sky Blue")    },
+                       { "#ad7fa8", NC_("Color name", "Light Plum")        },
+                       { "#e9b96e", NC_("Color name", "Light Chocolate")   },
+                       { "#888a85", NC_("Color name", "Light Aluminum 1")  },
+                       { "#eeeeec", NC_("Color name", "Light Aluminum 2")  },
+
+                       { "#cc0000", NC_("Color name", "Scarlet Red")       },
+                       { "#f57900", NC_("Color name", "Orange")            },
+                       { "#edd400", NC_("Color name", "Butter")            },
+                       { "#73d216", NC_("Color name", "Chameleon")         },
+                       { "#3465a4", NC_("Color name", "Sky Blue")          },
+                       { "#75507b", NC_("Color name", "Plum")              },
+                       { "#c17d11", NC_("Color name", "Chocolate")         },
+                       { "#555753", NC_("Color name", "Aluminum 1")        },
+                       { "#d3d7cf", NC_("Color name", "Aluminum 2")        },
+
+                       { "#a40000", NC_("Color name", "Dark Scarlet Red")  },
+                       { "#ce5c00", NC_("Color name", "Dark Orange")       },
+                       { "#c4a000", NC_("Color name", "Dark Butter")       },
+                       { "#4e9a06", NC_("Color name", "Dark Chameleon")    },
+                       { "#204a87", NC_("Color name", "Dark Sky Blue")     },
+                       { "#5c3566", NC_("Color name", "Dark Plum")         },
+                       { "#8f5902", NC_("Color name", "Dark Chocolate")    },
+                       { "#2e3436", NC_("Color name", "Dark Aluminum 1")   },
+                       { "#babdb6", NC_("Color name", "Dark Aluminum 2")   },
+
+                       { "#000000", NC_("Color name", "Black")             },
+                       { "#2e3436", NC_("Color name", "Very Dark Gray")    },
+                       { "#555753", NC_("Color name", "Darker Gray")       },
+                       { "#888a85", NC_("Color name", "Dark Gray")         },
+                       { "#babdb6", NC_("Color name", "Medium Gray")       },
+                       { "#d3d7cf", NC_("Color name", "Light Gray")        },
+                       { "#eeeeec", NC_("Color name", "Lighter Gray")      },
+                       { "#f3f3f3", NC_("Color name", "Very Light Gray")   },
+                       { "#ffffff", NC_("Color name", "White")             }
                };
 
-               private const int      PALETTE_COLS = 7;
+               private const int      PALETTE_COLS = 9;
                private const int      PALETTE_ROWS = color_table.length/PALETTE_COLS + 1;
 
                private const int      ROW_DEFAULT = 0;
@@ -133,12 +125,8 @@ namespace glabels
                                int i_row = i / PALETTE_COLS;
                                int i_col = i % PALETTE_COLS;
 
-                               uchar r = color_table[i].r;
-                               uchar g = color_table[i].g;
-                               uchar b = color_table[i].b;
-
                                var palette_menu_item = new ColorMenuItem( i,
-                                                                          Color.from_byte_rgb(r, g, b),
+                                                                          
Color.from_spec(color_table[i].color_spec),
                                                                           dgettext(null, 
color_table[i].name) );
 
                                palette_menu_item.activated.connect( on_palette_menu_item_activated );
@@ -210,9 +198,7 @@ namespace glabels
                private void on_palette_menu_item_activated( int id )
                {
                        color_node.field_flag = false;
-                       color_node.color      = Color.from_byte_rgb( color_table[id].r,
-                                                                    color_table[id].g,
-                                                                    color_table[id].b );
+                       color_node.color      = Color.from_spec( color_table[id].color_spec );
                        color_node.key        = null;
 
                        color_changed( color_node, false );
@@ -231,22 +217,23 @@ namespace glabels
 
                private void on_custom_menu_item_activate()
                {
-                       Gtk.ColorSelectionDialog dialog     = new Gtk.ColorSelectionDialog( _("Custom Color") 
);
-                       Gtk.ColorSelection       colorsel   = dialog.get_color_selection() as 
Gtk.ColorSelection;
-                       Gdk.Color                gdk_color;
-                       int                      response;
+                       Gtk.ColorChooserDialog dialog  = new Gtk.ColorChooserDialog( _("Custom Color"), null 
);
+
+                       dialog.use_alpha   = true;
+                       dialog.show_editor = true; // TODO: This gets overwritten when dialog is realized.
+                                                  //       I would like to skip over the redundant pallete.
 
-                       gdk_color = color_node.color.to_gdk_color();
-                       colorsel.set_current_color( gdk_color );
+                       Gdk.RGBA gdk_rgba = color_node.color.to_gdk_rgba();
+                       dialog.set_rgba( gdk_rgba );
 
-                       response = dialog.run();
+                       int response = dialog.run();
 
                        switch (response) {
                        case Gtk.ResponseType.OK:
-                               colorsel.get_current_color( out gdk_color );
+                               gdk_rgba = dialog.get_rgba();
 
                                color_node.field_flag = false;
-                               color_node.color      = Color.from_gdk_color( gdk_color );
+                               color_node.color      = Color.from_gdk_rgba( gdk_rgba );
                                color_node.key        = null;
 
                                custom_color_history.add_color( color_node.color );
diff --git a/glabels/view.vala b/glabels/view.vala
index 41bc4d7..eb2517c 100644
--- a/glabels/view.vala
+++ b/glabels/view.vala
@@ -172,7 +172,7 @@ namespace glabels
                        this.set_policy( Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC );
                        this.add( canvas );
 
-                       canvas.modify_bg( Gtk.StateType.NORMAL, BG_COLOR.to_gdk_color() );
+                       canvas.override_background_color( Gtk.StateFlags.NORMAL, BG_COLOR.to_gdk_rgba() );
                        canvas.set_can_focus( true );
 
                        canvas.add_events( Gdk.EventMask.FOCUS_CHANGE_MASK   |


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]