[glabels/vala] Incorporate field menu as submenu of color menu.



commit 66da0d8e655d6558bd316198ab5be2c5b949f499
Author: Jim Evins <evins snaught com>
Date:   Sun Mar 11 23:51:26 2012 -0400

    Incorporate field menu as submenu of color menu.

 data/ui/object_editor.ui                           |   48 +++++++---
 glabels/Makefile.am                                |    4 +-
 glabels/color_button.vala                          |   97 ++++++++++++++++----
 glabels/color_menu.vala                            |   90 +++++++++++++++----
 glabels/color_swatch.vala                          |   30 ++++---
 glabels/field_button.vala                          |    4 +-
 .../{field_button_menu.vala => field_menu.vala}    |   14 ++--
 ..._button_menu_item.vala => field_menu_item.vala} |    4 +-
 glabels/object_editor.vala                         |   38 +++++++-
 9 files changed, 255 insertions(+), 74 deletions(-)
---
diff --git a/data/ui/object_editor.ui b/data/ui/object_editor.ui
index 85ba3e0..a9731f5 100644
--- a/data/ui/object_editor.ui
+++ b/data/ui/object_editor.ui
@@ -1,6 +1,28 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="2.20"/>
+  <object class="GtkSizeGroup" id="color_box_sizegroup">
+    <widgets>
+      <widget name="shadow_color_box"/>
+      <widget name="line_color_box"/>
+      <widget name="fill_color_box"/>
+    </widgets>
+  </object>
+  <object class="GtkSizeGroup" id="label_sizegroup">
+    <widgets>
+      <widget name="line_w_label"/>
+      <widget name="line_color_label"/>
+      <widget name="fill_color_label"/>
+      <widget name="pos_x_label"/>
+      <widget name="pos_y_label"/>
+      <widget name="size_w_label"/>
+      <widget name="size_h_label"/>
+      <widget name="label40"/>
+      <widget name="label41"/>
+      <widget name="label45"/>
+      <widget name="label46"/>
+    </widgets>
+  </object>
   <object class="GtkAdjustment" id="line_width_adjustment">
     <property name="lower">0.25</property>
     <property name="upper">10</property>
@@ -120,13 +142,11 @@
                           <object class="GtkGrid" id="grid1">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
                             <property name="row_spacing">6</property>
                             <property name="column_spacing">12</property>
                             <property name="n_rows">2</property>
                             <child>
-                              <placeholder/>
-                            </child>
-                            <child>
                               <object class="GtkLabel" id="line_w_label">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
@@ -162,6 +182,7 @@
                               <object class="GtkLabel" id="label21">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
+                                <property name="xalign">0</property>
                                 <property name="label" translatable="yes">points</property>
                               </object>
                               <packing>
@@ -176,7 +197,6 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
-                                <property name="yalign">0.14000000059604645</property>
                                 <property name="label" translatable="yes">Color:</property>
                               </object>
                               <packing>
@@ -201,6 +221,9 @@
                                 <property name="height">1</property>
                               </packing>
                             </child>
+                            <child>
+                              <placeholder/>
+                            </child>
                           </object>
                         </child>
                       </object>
@@ -235,18 +258,15 @@
                           <object class="GtkGrid" id="grid2">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
                             <property name="row_spacing">6</property>
                             <property name="column_spacing">12</property>
                             <property name="n_rows">1</property>
                             <child>
-                              <placeholder/>
-                            </child>
-                            <child>
                               <object class="GtkLabel" id="fill_color_label">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
-                                <property name="yalign">0.14000000059604645</property>
                                 <property name="label" translatable="yes">Color:</property>
                               </object>
                               <packing>
@@ -260,7 +280,6 @@
                               <object class="GtkBox" id="fill_color_box">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="orientation">vertical</property>
                                 <child>
                                   <placeholder/>
                                 </child>
@@ -272,6 +291,9 @@
                                 <property name="height">1</property>
                               </packing>
                             </child>
+                            <child>
+                              <placeholder/>
+                            </child>
                           </object>
                         </child>
                       </object>
@@ -666,13 +688,11 @@
                       <object class="GtkGrid" id="shadow_controls_grid">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
                         <property name="row_spacing">6</property>
                         <property name="column_spacing">12</property>
                         <property name="n_rows">4</property>
                         <child>
-                          <placeholder/>
-                        </child>
-                        <child>
                           <object class="GtkLabel" id="label40">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
@@ -705,7 +725,6 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">0</property>
-                            <property name="yalign">0.14000000059604645</property>
                             <property name="label" translatable="yes">Color:</property>
                           </object>
                           <packing>
@@ -840,6 +859,9 @@
                             <property name="height">1</property>
                           </packing>
                         </child>
+                        <child>
+                          <placeholder/>
+                        </child>
                       </object>
                     </child>
                   </object>
diff --git a/glabels/Makefile.am b/glabels/Makefile.am
index fd65d5d..466ac0c 100644
--- a/glabels/Makefile.am
+++ b/glabels/Makefile.am
@@ -19,8 +19,8 @@ glabels_4_SOURCES = \
 	cursor.vapi \
 	enum_util.vala \
 	field_button.vala \
-	field_button_menu.vala \
-	field_button_menu_item.vala \
+	field_menu.vala \
+	field_menu_item.vala \
 	file.vala \
 	file_util.vala \
 	font_button.vala \
diff --git a/glabels/color_button.vala b/glabels/color_button.vala
index 3129d9b..a8c2d8c 100644
--- a/glabels/color_button.vala
+++ b/glabels/color_button.vala
@@ -27,18 +27,19 @@ namespace glabels
 
 	public class ColorButton : Gtk.ToggleButton
 	{
-		private const int SWATCH_W = 24;
+		private const int SWATCH_W = 100;
 		private const int SWATCH_H = 24;
 
-		public  signal void color_changed( Color color,
-		                                   bool  is_default );
+		public  signal void color_changed( ColorNode color_node,
+		                                   bool      is_default );
 
 		private bool           is_default_flag;
-		private Color          color;
+		private ColorNode      color_node;
 
 		private Color          default_color;
 
 		private ColorSwatch    swatch;
+		private Gtk.Label      label;
 		private ColorMenu      menu;
 
 
@@ -57,41 +58,80 @@ namespace glabels
 			swatch = new ColorSwatch( SWATCH_W, SWATCH_H, color );
 			hbox.pack_start( swatch, true, true, 0 );
 
+			label = new Gtk.Label( "" );
+			label.hide();
+			hbox.pack_start( label, true, true, 0 );
+
 			Gtk.Arrow arrow = new Gtk.Arrow( Gtk.ArrowType.DOWN, Gtk.ShadowType.IN );
 			hbox.pack_end( arrow, false, false, 0 );
 
 			this.default_color = default_color;
-			this.color = color;
+			this.color_node    = ColorNode.from_color( color );
 
-			menu = new ColorMenu( default_label, color );
+			menu = new ColorMenu( default_label, default_color, color );
 			menu.show_all();
 
 			menu.color_changed.connect( on_menu_color_changed );
 			menu.selection_done.connect( on_menu_selection_done );
 
 			this.button_press_event.connect( on_button_press_event );
+			this.show.connect( on_show );
+		}
+
+
+		public void set_color_node( ColorNode color_node )
+		{
+			is_default_flag = false;
+
+			this.color_node = color_node;
+
+			swatch.set_color( color_node.color );
 		}
 
+
 		public void set_color( Color color )
 		{
 			is_default_flag = false;
-			this.color = color;
+
+			this.color_node.field_flag = false;
+			this.color_node.color      = color;
+			this.color_node.key        = null;
+
 			swatch.set_color( color );
 		}
 
+
 		public void set_to_default()
 		{
 			is_default_flag = true;
-			color = default_color;
-			swatch.set_color( color );
+
+			color_node.field_flag = false;
+			color_node.color      = default_color;
+			color_node.key        = null;
+
+			swatch.set_color( default_color );
 		}
 
-		public Color get_color( out bool is_default )
+
+		public ColorNode get_color_node( out bool is_default )
 		{
 			is_default = is_default_flag;
-			return color;
+			return color_node;
+		}
+
+
+		public void set_keys( List<string> key_list )
+		{
+			menu.set_keys( key_list );
+		}
+
+
+		public void clear_keys()
+		{
+			menu.clear_keys();
 		}
 
+
 		private void menu_position_function( Gtk.Menu menu,
 		                                     out int  x,
 		                                     out int  y,
@@ -135,6 +175,7 @@ namespace glabels
 			push_in = true;
 		}
 
+
 		private bool on_button_press_event( Gdk.EventButton event )
 		{
 			switch (event.button)
@@ -153,24 +194,46 @@ namespace glabels
 			return false;
 		}
 
-		private void on_menu_color_changed( Color color, bool is_default )
+
+		private void on_show()
 		{
+			base.show();
 
-			if (is_default)
+			if ( color_node.field_flag )
 			{
-				this.color = default_color;
+				swatch.hide();
+				label.show();
 			}
 			else
 			{
-				this.color = color;
+				swatch.show();
+				label.hide();
 			}
+		}
+
+
+		private void on_menu_color_changed( ColorNode color_node, bool is_default )
+		{
+			this.color_node      = color_node;
 			this.is_default_flag = is_default;
 
-			swatch.set_color( color );
+			if ( color_node.field_flag )
+			{
+				swatch.hide();
+				label.show();
+				label.set_label( "$(%s)".printf( color_node.key ) );
+			}
+			else
+			{
+				swatch.show();
+				swatch.set_color( color_node.color );
+				label.hide();
+			}
 
-			color_changed( color, is_default );
+			color_changed( color_node, is_default );
 		}
 
+
 		private void on_menu_selection_done()
 		{
 			this.set_active( false );
diff --git a/glabels/color_menu.vala b/glabels/color_menu.vala
index d721373..4cb1fde 100644
--- a/glabels/color_menu.vala
+++ b/glabels/color_menu.vala
@@ -26,11 +26,11 @@ namespace glabels
 
 	public class ColorMenu : Gtk.Menu
 	{
-		public  signal void color_changed( Color color,
-		                                   bool  is_default );
+		public  signal void color_changed( ColorNode color_node,
+		                                   bool      is_default );
 
 		private Color          default_color;
-		private Color          color;
+		private ColorNode      color_node;
 
 		private struct ColorTableEntry {
 			uchar  r;
@@ -98,6 +98,8 @@ namespace glabels
 		private const int      ROW_HISTORY = ROW_SEP_2   + 1;
 		private const int      ROW_SEP_3   = ROW_HISTORY + 1;
 		private const int      ROW_CUSTOM  = ROW_SEP_3   + 1;
+		private const int      ROW_SEP_4   = ROW_CUSTOM  + 1;
+		private const int      ROW_FIELD   = ROW_SEP_4   + 1;
 
 		private	Gtk.MenuItem       default_menu_item;
 
@@ -106,12 +108,18 @@ namespace glabels
 
 		private	Gtk.MenuItem       custom_menu_item;
 
+		private	Gtk.MenuItem       use_merge_field_menu_item;
+		private FieldMenu          merge_field_menu;
+
+
 		public ColorMenu( string default_label,
+		                  Color  default_color,
 		                  Color  color )
 		{
 			Gtk.SeparatorMenuItem separator_menu_item;
 
-			this.default_color = this.color = color;
+			this.default_color = default_color;
+			this.color_node    = ColorNode.from_color( color );
 
 			this.default_menu_item = new Gtk.MenuItem.with_label( default_label );
 			this.attach( this.default_menu_item, 0, PALETTE_COLS, ROW_DEFAULT, ROW_DEFAULT+1 );
@@ -160,34 +168,67 @@ namespace glabels
 
 			this.attach( custom_menu_item, 0, PALETTE_COLS, ROW_CUSTOM, ROW_CUSTOM+1 );
 
+			separator_menu_item = new Gtk.SeparatorMenuItem();
+			this.attach( separator_menu_item, 0, PALETTE_COLS, ROW_SEP_4, ROW_SEP_4+1 );
+
+			use_merge_field_menu_item = new Gtk.MenuItem.with_label( _("Use merge field") );
+			this.attach( use_merge_field_menu_item, 0, PALETTE_COLS, ROW_FIELD, ROW_FIELD+1 );
+			merge_field_menu = new FieldMenu();
+			use_merge_field_menu_item.set_submenu( merge_field_menu );
+			use_merge_field_menu_item.set_sensitive( false );
+
+			merge_field_menu.key_selected.connect( on_merge_field_menu_key_selected );
+
 			custom_color_history = new ColorHistory( PALETTE_COLS );
 			this.map_event.connect( on_map_event );
 		}
 
+
+		public void set_keys( List<string> key_list )
+		{
+			use_merge_field_menu_item.set_sensitive( true );
+			merge_field_menu.set_keys( key_list );
+		}
+
+
+		public void clear_keys()
+		{
+			use_merge_field_menu_item.set_sensitive( false );
+		}
+
+
 		private void on_default_menu_item_activate()
 		{
-			color = default_color;
+			color_node.field_flag = false;
+			color_node.color      = default_color;
+			color_node.key        = null;
 
-			color_changed( color, true );
+			color_changed( color_node, true );
 		}
 
+
 		private void on_palette_menu_item_activated( int id )
 		{
-			color = Color.from_byte_rgb( color_table[id].r,
-			                             color_table[id].g,
-			                             color_table[id].b );
+			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.key        = null;
 
-			color_changed( color, false );
+			color_changed( color_node, false );
 		}
 
+
 		private void on_history_menu_item_activated( int id )
 		{
+			color_node.field_flag = false;
+			color_node.color      = custom_color_history.get_color( id );
+			color_node.key        = null;
 
-			color = custom_color_history.get_color( id );
-
-			color_changed( color, false );
+			color_changed( color_node, false );
 		}
 
+
 		private void on_custom_menu_item_activate()
 		{
 			Gtk.ColorSelectionDialog dialog     = new Gtk.ColorSelectionDialog( _("Custom Color") );
@@ -195,7 +236,7 @@ namespace glabels
 			Gdk.Color                gdk_color;
 			int                      response;
 
-			gdk_color = color.to_gdk_color();
+			gdk_color = color_node.color.to_gdk_color();
 			colorsel.set_current_color( gdk_color );
 
 			response = dialog.run();
@@ -204,10 +245,13 @@ namespace glabels
 			case Gtk.ResponseType.OK:
 				colorsel.get_current_color( out gdk_color );
 
-				color = Color.from_gdk_color( gdk_color );
-				custom_color_history.add_color( color );
+				color_node.field_flag = false;
+				color_node.color      = Color.from_gdk_color( gdk_color );
+				color_node.key        = null;
+
+				custom_color_history.add_color( color_node.color );
 
-				color_changed( color, false );
+				color_changed( color_node, false );
 
 				dialog.destroy();
 				break;
@@ -219,6 +263,17 @@ namespace glabels
 			
 		}
 
+
+		private void on_merge_field_menu_key_selected( string key )
+		{
+			color_node.field_flag = true;
+			color_node.color      = Color.none();
+			color_node.key        = key;
+
+			color_changed( color_node, false );
+		}
+
+
 		private void load_custom_color_history()
 		{
 			int i;
@@ -238,6 +293,7 @@ namespace glabels
 
 		}
 
+
 		private bool on_map_event()
 		{
 			load_custom_color_history();
diff --git a/glabels/color_swatch.vala b/glabels/color_swatch.vala
index ce763e1..bc3387c 100644
--- a/glabels/color_swatch.vala
+++ b/glabels/color_swatch.vala
@@ -28,6 +28,7 @@ namespace glabels
 	{
 		private Color color;
 
+
 		public ColorSwatch( int       w,
 		                    int       h,
 		                    Color     color )
@@ -38,18 +39,17 @@ namespace glabels
 			this.color = color;
 		}
 
+
 		public override bool draw( Cairo.Context cr )
 		{
-			Gtk.Style       style;
-			double          w, h;
-			Color           fill_color, line_color;
+			Color  fill_color, line_color;
 
 			cr.set_antialias( Cairo.Antialias.NONE );
 
-			w = get_allocated_width();
-			h = get_allocated_height();
+			double w = get_allocated_width();
+			double h = get_allocated_height();
 
-			style = this.get_style();
+			Gtk.Style style = this.get_style();
 			if ( this.is_sensitive() )
 			{
 				fill_color = color;
@@ -63,8 +63,11 @@ namespace glabels
 
 			cr.rectangle( 1, 1, w-2, h-2 );
 
-			cr.set_source_rgba( fill_color.r, fill_color.g, fill_color.b, fill_color.a );
-			cr.fill_preserve();
+			if ( fill_color.has_alpha() )
+			{
+				cr.set_source_rgba( fill_color.r, fill_color.g, fill_color.b, fill_color.a );
+				cr.fill_preserve();
+			}
 
 			cr.set_source_rgb( line_color.r, line_color.g, line_color.b );
 			cr.set_line_width( 1.0 );
@@ -73,11 +76,13 @@ namespace glabels
 			return false;
 		}
 
+
 		public override void style_set( Gtk.Style? style )
 		{
 			redraw_canvas();
 		}
 
+
 		public void set_color( Color color )
 		{
 			if ( !this.color.equal( color ) )
@@ -87,18 +92,19 @@ namespace glabels
 			}
 		}
 
+
 		private void redraw_canvas()
 		{
-			var window = get_window ();
+			var window = get_window();
 			if (null == window)
 			{
 				return;
 			}
 
-			unowned Cairo.Region region = window.get_clip_region ();
+			unowned Cairo.Region region = window.get_clip_region();
 			// redraw the cairo canvas completely by exposing it
-			window.invalidate_region (region, true);
-			window.process_updates (true);
+			window.invalidate_region(region, true);
+			window.process_updates(true);
 		}
 
 
diff --git a/glabels/field_button.vala b/glabels/field_button.vala
index 0eb5031..bbfe620 100644
--- a/glabels/field_button.vala
+++ b/glabels/field_button.vala
@@ -29,8 +29,8 @@ namespace glabels
 		private bool   klabel_is_key;
 		private string key;
 
-		private Gtk.Label       klabel;
-		private FieldButtonMenu menu;
+		private Gtk.Label klabel;
+		private FieldMenu menu;
 
 		public  signal void key_selected( string key );
 		public  signal void changed();
diff --git a/glabels/field_button_menu.vala b/glabels/field_menu.vala
similarity index 81%
rename from glabels/field_button_menu.vala
rename to glabels/field_menu.vala
index 504f550..bb21622 100644
--- a/glabels/field_button_menu.vala
+++ b/glabels/field_menu.vala
@@ -24,11 +24,11 @@ using GLib;
 namespace glabels
 {
 
-	public class FieldButtonMenu : Gtk.Menu
+	public class FieldMenu : Gtk.Menu
 	{
 		public  signal void key_selected( string key );
 
-		private List<unowned FieldButtonMenuItem> menu_items;
+		private List<unowned FieldMenuItem> menu_items;
 
 		private const int MAX_MENU_ROWS = 25;
 
@@ -36,8 +36,8 @@ namespace glabels
 		public void set_keys( List<string> key_list )
 		{
 			/* Remove old menu items and cleanup list. */
-			unowned List<FieldButtonMenuItem> p;
-			unowned List<FieldButtonMenuItem> p_next = null;
+			unowned List<FieldMenuItem> p;
+			unowned List<FieldMenuItem> p_next = null;
 			for ( p = menu_items; p != null; p = p_next )
 			{
 				remove( p.first().data );
@@ -51,7 +51,7 @@ namespace glabels
 			int i = 0;
 			foreach ( string key in key_list )
 			{
-				FieldButtonMenuItem menu_item = new FieldButtonMenuItem( key );
+				FieldMenuItem menu_item = new FieldMenuItem( key );
 				menu_item.show();
 				menu_item.activate.connect( on_menu_item_activated );
 
@@ -68,8 +68,8 @@ namespace glabels
 
 		private void on_menu_item_activated( Gtk.MenuItem menu_item )
 		{
-			FieldButtonMenuItem fb_menu_item = (FieldButtonMenuItem)menu_item;
-			key_selected( fb_menu_item.key );
+			FieldMenuItem f_menu_item = (FieldMenuItem)menu_item;
+			key_selected( f_menu_item.key );
 		}
 
 
diff --git a/glabels/field_button_menu_item.vala b/glabels/field_menu_item.vala
similarity index 90%
rename from glabels/field_button_menu_item.vala
rename to glabels/field_menu_item.vala
index 7149c1c..93d72e5 100644
--- a/glabels/field_button_menu_item.vala
+++ b/glabels/field_menu_item.vala
@@ -24,11 +24,11 @@ using GLib;
 namespace glabels
 {
 
-	public class FieldButtonMenuItem : Gtk.MenuItem
+	public class FieldMenuItem : Gtk.MenuItem
 	{
 		public string key { get; private set; }
 
-		public FieldButtonMenuItem( string key )
+		public FieldMenuItem( string key )
 		{
 			this.key = key;
 
diff --git a/glabels/object_editor.vala b/glabels/object_editor.vala
index f293fb1..b18674f 100644
--- a/glabels/object_editor.vala
+++ b/glabels/object_editor.vala
@@ -55,7 +55,7 @@ namespace glabels
 		/* TODO: aspect lock, and image reset */
 
 		private Gtk.CheckButton shadow_enable_check;
-		private Gtk.Table       shadow_controls_grid;
+		private Gtk.Grid        shadow_controls_grid;
 		private Gtk.SpinButton  shadow_x_spin;
 		private Gtk.SpinButton  shadow_y_spin;
 		private Gtk.Label       shadow_x_units_label;
@@ -79,7 +79,7 @@ namespace glabels
 				                     "size_w_adjustment", "size_h_adjustment",
 				                     "pos_x_adjustment", "pos_y_adjustment",
 				                     "shadow_x_adjustment", "shadow_y_adjustment", "shadow_opacity_adjustment",
-				                     "page_sizegroup", "width_sizegroup",
+				                     "page_sizegroup", "width_sizegroup", "label_sizegroup", "color_box_sizegroup",
 				                     null };
 				builder.add_objects_from_file( file, objects );
 			}
@@ -102,6 +102,40 @@ namespace glabels
 			title_label.set_use_markup( true );
 			title_label.set_sensitive( false );
 
+			/* Line widgets. */
+			line_width_spin = builder.get_object( "line_width_spin" ) as Gtk.SpinButton;
+			line_color_box  = builder.get_object( "line_color_box" )  as Gtk.Box;
+			line_color_button = new ColorButton( _("No line"), Color.none(), Color.black() );
+			line_color_box.pack_start( line_color_button, true, true, 0 );
+
+			/* Fill widgets. */
+			fill_color_box  = builder.get_object( "fill_color_box" )  as Gtk.Box;
+			fill_color_button = new ColorButton( _("No fill"), Color.none(), Color.black() );
+			fill_color_box.pack_start( fill_color_button, true, true, 0 );
+
+			/* Position widgets. */
+			pos_x_spin        = builder.get_object( "pos_x_spin" )        as Gtk.SpinButton;
+			pos_y_spin        = builder.get_object( "pos_y_spin" )        as Gtk.SpinButton;
+			pos_x_units_label = builder.get_object( "pos_x_units_label" ) as Gtk.Label;
+			pos_y_units_label = builder.get_object( "pos_y_units_label" ) as Gtk.Label;
+
+			/* Size widgets. */
+			size_w_spin        = builder.get_object( "size_w_spin" )        as Gtk.SpinButton;
+			size_h_spin        = builder.get_object( "size_h_spin" )        as Gtk.SpinButton;
+			size_w_units_label = builder.get_object( "size_w_units_label" ) as Gtk.Label;
+			size_h_units_label = builder.get_object( "size_h_units_label" ) as Gtk.Label;
+
+			/* Shadow widgets. */
+			shadow_enable_check  = builder.get_object( "shadow_enable_check" )  as Gtk.CheckButton;
+			shadow_controls_grid = builder.get_object( "shadow_controls_grid" ) as Gtk.Grid;
+			shadow_x_spin        = builder.get_object( "shadow_x_spin" )        as Gtk.SpinButton;
+			shadow_y_spin        = builder.get_object( "shadow_y_spin" )        as Gtk.SpinButton;
+			shadow_x_units_label = builder.get_object( "shadow_x_units_label" ) as Gtk.Label;
+			shadow_y_units_label = builder.get_object( "shadow_y_units_label" ) as Gtk.Label;
+			shadow_color_box     = builder.get_object( "shadow_color_box" )  as Gtk.Box;
+			shadow_opacity_spin  = builder.get_object( "shadow_opacity_spin" )  as Gtk.SpinButton;
+			shadow_color_button  = new ColorButton( _("Default"), Color.black(), Color.black() );
+			shadow_color_box.pack_start(shadow_color_button, true, true, 0 );
 
 		}
 



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