Author: matt
Date: 2010-04-09 15:18:05 -0700 (Fri, 09 Apr 2010)
New Revision: 7476
Log:
Added new label alignments for image and text to Fluid.

Modified:
   branches/branch-1.3/FL/Enumerations.H
   branches/branch-1.3/fluid/Fl_Widget_Type.cxx
   branches/branch-1.3/fluid/widget_panel.cxx
   branches/branch-1.3/fluid/widget_panel.fl
   branches/branch-1.3/fluid/widget_panel.h
   branches/branch-1.3/src/Fl_Button.cxx
   branches/branch-1.3/src/fl_draw.cxx

Modified: branches/branch-1.3/FL/Enumerations.H
===================================================================
--- branches/branch-1.3/FL/Enumerations.H       2010-04-09 17:01:58 UTC (rev 
7475)
+++ branches/branch-1.3/FL/Enumerations.H       2010-04-09 22:18:05 UTC (rev 
7476)
@@ -658,17 +658,17 @@
   /** Draw the label inside of the widget. */
 const Fl_Align FL_ALIGN_INSIDE         = (Fl_Align)16;
   /** If the label contains an image, draw the text on top of the image. */
-const Fl_Align FL_ALIGN_TEXT_OVER_IMAGE        = (Fl_Align)32;
+const Fl_Align FL_ALIGN_TEXT_OVER_IMAGE        = (Fl_Align)0x0020;
   /** If the label contains an image, draw the text below the image. */
-const Fl_Align FL_ALIGN_IMAGE_OVER_TEXT        = (Fl_Align)0;
+const Fl_Align FL_ALIGN_IMAGE_OVER_TEXT        = (Fl_Align)0x0000;
   /** All parts of the label that are lager than the widget will not be drawn 
. */
 const Fl_Align FL_ALIGN_CLIP           = (Fl_Align)64;
   /** Wrap text that does not fit the width of the widget. */
 const Fl_Align FL_ALIGN_WRAP           = (Fl_Align)128;
+  /** If the label contains an image, draw the text to the right of the image. 
*/
+const Fl_Align FL_ALIGN_IMAGE_NEXT_TO_TEXT = (Fl_Align)0x0100;
   /** If the label contains an image, draw the text to the left of the image. 
*/
-const Fl_Align FL_ALIGN_TEXT_NEXT_TO_IMAGE = (Fl_Align)0x0100;
-  /** If the label contains an image, draw the text to the right of the image. 
*/
-const Fl_Align FL_ALIGN_IMAGE_NEXT_TO_TEXT = (Fl_Align)0x0110;
+const Fl_Align FL_ALIGN_TEXT_NEXT_TO_IMAGE = (Fl_Align)0x0120;
 /** If the label contains an image, draw the image or deimage in the 
backgroup. */
 const Fl_Align FL_ALIGN_IMAGE_BACKDROP  = (Fl_Align)0x0200;
 const Fl_Align FL_ALIGN_TOP_LEFT       = FL_ALIGN_TOP | FL_ALIGN_LEFT;
@@ -680,6 +680,8 @@
 const Fl_Align FL_ALIGN_LEFT_BOTTOM    = 0x000d; // magic value
 const Fl_Align FL_ALIGN_RIGHT_BOTTOM   = 0x000e; // magic value
 const Fl_Align FL_ALIGN_NOWRAP         = (Fl_Align)0; // for back compatability
+const Fl_Align FL_ALIGN_POSITION_MASK   = 0x000f; // left, right, top, bottom
+const Fl_Align FL_ALIGN_IMAGE_MASK      = 0x0320; // l/r, t/b, backdrop
 /*...@}*/
 
 

Modified: branches/branch-1.3/fluid/Fl_Widget_Type.cxx
===================================================================
--- branches/branch-1.3/fluid/Fl_Widget_Type.cxx        2010-04-09 17:01:58 UTC 
(rev 7475)
+++ branches/branch-1.3/fluid/Fl_Widget_Type.cxx        2010-04-09 22:18:05 UTC 
(rev 7476)
@@ -1170,6 +1170,37 @@
   }
 }
 
+void align_text_image_cb(Fl_Menu_Button* i, void *v) {
+  if (v == LOAD) {
+    if (current_widget->is_menu_item()) {i->deactivate(); return;} else 
i->activate();
+    Fl_Menu_Item *mi = (Fl_Menu_Item*)i->menu();
+    Fl_Align b = current_widget->o->align() & FL_ALIGN_IMAGE_MASK;
+    for (;mi->text;mi++) {
+      if (mi->argument()==b)
+        mi->set();
+      else 
+        mi->clear();
+    }
+  } else {
+    const Fl_Menu_Item *mi = i->mvalue();
+    Fl_Align b = Fl_Align(long(mi->user_data()));
+    int mod = 0;
+    for (Fl_Type *o = Fl_Type::first; o; o = o->next) {
+      if (o->selected && o->is_widget()) {
+       Fl_Widget_Type* q = (Fl_Widget_Type*)o;
+       Fl_Align x = q->o->align();
+       Fl_Align y = (x & ~FL_ALIGN_IMAGE_MASK) | b;
+       if (x != y) {
+          q->o->align(y);
+         q->redraw();
+         mod = 1;
+       }
+      }
+    }
+    if (mod) set_modflag(1);
+  }
+}
+
 ////////////////////////////////////////////////////////////////
 
 void callback_cb(CodeEditor* i, void *v) {

Modified: branches/branch-1.3/fluid/widget_panel.cxx
===================================================================
--- branches/branch-1.3/fluid/widget_panel.cxx  2010-04-09 17:01:58 UTC (rev 
7475)
+++ branches/branch-1.3/fluid/widget_panel.cxx  2010-04-09 22:18:05 UTC (rev 
7476)
@@ -33,6 +33,15 @@
   propagate_load((Fl_Group *)o,v);
 }
 
+Fl_Menu_Item menu_Text[] = {
+ {"image over text", 0,  0, (void*)(FL_ALIGN_IMAGE_OVER_TEXT), 8, 
FL_NORMAL_LABEL, 0, 11, 0},
+ {"text over image", 0,  0, (void*)(FL_ALIGN_TEXT_OVER_IMAGE), 8, 
FL_NORMAL_LABEL, 0, 11, 0},
+ {"text next to image", 0,  0, (void*)(FL_ALIGN_TEXT_NEXT_TO_IMAGE), 8, 
FL_NORMAL_LABEL, 0, 11, 0},
+ {"image next to text", 0,  0, (void*)(FL_ALIGN_IMAGE_NEXT_TO_TEXT), 8, 
FL_NORMAL_LABEL, 0, 11, 0},
+ {"image is backdrop", 0,  0, (void*)(FL_ALIGN_IMAGE_BACKDROP), 8, 
FL_NORMAL_LABEL, 0, 11, 0},
+ {0,0,0,0,0,0,0,0,0}
+};
+
 Fl_Value_Input *widget_x_input=(Fl_Value_Input *)0;
 
 Fl_Value_Input *widget_y_input=(Fl_Value_Input *)0;
@@ -63,7 +72,7 @@
   { Fl_Double_Window* o = new Fl_Double_Window(420, 360);
     w = o;
     o->labelsize(11);
-    o->align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE);
+    o->align(Fl_Align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE));
     o->hotspot(o);
     { Fl_Tabs* o = new Fl_Tabs(10, 10, 400, 310);
       o->selection_color((Fl_Color)12);
@@ -75,12 +84,11 @@
         o->labelsize(11);
         o->callback((Fl_Callback*)propagate_load);
         o->when(FL_WHEN_NEVER);
-        o->hide();
         { Fl_Group* o = new Fl_Group(95, 40, 309, 20, "Label:");
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Input* o = new Fl_Input(95, 40, 190, 20);
             o->tooltip("The label text for the widget.\nUse Ctrl-J for 
newlines.");
             o->labelfont(1);
@@ -106,7 +114,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Input* o = new Fl_Input(95, 65, 240, 20);
             o->tooltip("The active image for the widget.");
             o->labelfont(1);
@@ -126,7 +134,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Input* o = new Fl_Input(95, 90, 240, 20);
             o->tooltip("The inactive image for the widget.");
             o->labelfont(1);
@@ -146,29 +154,28 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
-          { Fl_Button* o = new Fl_Button(95, 115, 45, 20, "Clip");
+          o->align(Fl_Align(FL_ALIGN_LEFT));
+          { Fl_Button* o = new Fl_Button(95, 115, 40, 20, "Clip");
             o->tooltip("Clip the label to the inside of the widget.");
             o->type(1);
             o->selection_color(FL_INACTIVE_COLOR);
             o->labelsize(11);
             o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_CLIP));
-            o->align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
+            o->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
           } // Fl_Button* o
-          { Fl_Button* o = new Fl_Button(145, 115, 50, 20, "Wrap");
+          { Fl_Button* o = new Fl_Button(140, 115, 40, 20, "Wrap");
             o->tooltip("Wrap the label text.");
             o->type(1);
             o->selection_color(FL_INACTIVE_COLOR);
             o->labelsize(11);
             o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_WRAP));
           } // Fl_Button* o
-          { Fl_Button* o = new Fl_Button(200, 115, 65, 20, "Text/Image");
-            o->tooltip("Show the label text over the image.");
-            o->type(1);
-            o->selection_color(FL_INACTIVE_COLOR);
+          { Fl_Menu_Button* o = new Fl_Menu_Button(185, 115, 80, 20, 
"Text/Image");
             o->labelsize(11);
-            o->callback((Fl_Callback*)align_cb, 
(void*)(FL_ALIGN_TEXT_OVER_IMAGE));
-          } // Fl_Button* o
+            o->callback((Fl_Callback*)align_text_image_cb);
+            o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
+            o->menu(menu_Text);
+          } // Fl_Menu_Button* o
           { Fl_Button* o = new Fl_Button(270, 115, 20, 20, "@-1<-");
             o->tooltip("Left-align the label.");
             o->type(1);
@@ -219,7 +226,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { widget_x_input = new Fl_Value_Input(95, 150, 55, 20, "X:");
             widget_x_input->tooltip("The X position of the widget.");
             widget_x_input->labelsize(11);
@@ -227,7 +234,7 @@
             widget_x_input->step(1);
             widget_x_input->textsize(11);
             widget_x_input->callback((Fl_Callback*)x_cb);
-            widget_x_input->align(FL_ALIGN_TOP_LEFT);
+            widget_x_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* widget_x_input
           { widget_y_input = new Fl_Value_Input(155, 150, 55, 20, "Y:");
             widget_y_input->tooltip("The Y position of the widget.");
@@ -236,7 +243,7 @@
             widget_y_input->step(1);
             widget_y_input->textsize(11);
             widget_y_input->callback((Fl_Callback*)y_cb);
-            widget_y_input->align(FL_ALIGN_TOP_LEFT);
+            widget_y_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* widget_y_input
           { widget_w_input = new Fl_Value_Input(215, 150, 55, 20, "Width:");
             widget_w_input->tooltip("The width of the widget.");
@@ -245,7 +252,7 @@
             widget_w_input->step(1);
             widget_w_input->textsize(11);
             widget_w_input->callback((Fl_Callback*)w_cb);
-            widget_w_input->align(FL_ALIGN_TOP_LEFT);
+            widget_w_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* widget_w_input
           { widget_h_input = new Fl_Value_Input(275, 150, 55, 20, "Height:");
             widget_h_input->tooltip("The height of the widget.");
@@ -254,7 +261,7 @@
             widget_h_input->step(1);
             widget_h_input->textsize(11);
             widget_h_input->callback((Fl_Callback*)h_cb);
-            widget_h_input->align(FL_ALIGN_TOP_LEFT);
+            widget_h_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* widget_h_input
           { Fl_Light_Button* o = new Fl_Light_Button(335, 150, 55, 20, 
"Relative");
             o->tooltip("If set, widgets inside a widget class of type Fl_Group 
are repositioned relat\
@@ -271,21 +278,21 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Size:");
             o->tooltip("The size of the slider.");
             o->labelsize(11);
             o->step(0.010101);
             o->textsize(11);
             o->callback((Fl_Callback*)slider_size_cb);
-            o->align(FL_ALIGN_TOP_LEFT);
+            o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* o
           { Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20, 
"Minimum:");
             o->tooltip("The minimum value of the widget.");
             o->labelsize(11);
             o->textsize(11);
             o->callback((Fl_Callback*)min_cb);
-            o->align(FL_ALIGN_TOP_LEFT);
+            o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* o
           { Fl_Value_Input* o = new Fl_Value_Input(215, 185, 55, 20, 
"Maximum:");
             o->tooltip("The maximum value of the widget.");
@@ -293,21 +300,21 @@
             o->value(1);
             o->textsize(11);
             o->callback((Fl_Callback*)max_cb);
-            o->align(FL_ALIGN_TOP_LEFT);
+            o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* o
           { Fl_Value_Input* o = new Fl_Value_Input(275, 185, 55, 20, "Step:");
             o->tooltip("The resolution of the widget value.");
             o->labelsize(11);
             o->textsize(11);
             o->callback((Fl_Callback*)step_cb);
-            o->align(FL_ALIGN_TOP_LEFT);
+            o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* o
           { Fl_Value_Input* o = new Fl_Value_Input(335, 185, 55, 20, "Value:");
             o->tooltip("The current widget value.");
             o->labelsize(11);
             o->textsize(11);
             o->callback((Fl_Callback*)value_cb);
-            o->align(FL_ALIGN_TOP_LEFT);
+            o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* o
           { Fl_Box* o = new Fl_Box(395, 185, 0, 20);
             Fl_Group::current()->resizable(o);
@@ -318,7 +325,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           o->hide();
           { Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Minimum 
Size:");
             o->tooltip("The size of the slider.");
@@ -327,7 +334,7 @@
             o->step(1);
             o->textsize(11);
             o->callback((Fl_Callback*)min_w_cb);
-            o->align(FL_ALIGN_TOP_LEFT);
+            o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* o
           { Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20);
             o->tooltip("The minimum value of the widget.");
@@ -336,7 +343,7 @@
             o->step(1);
             o->textsize(11);
             o->callback((Fl_Callback*)min_h_cb);
-            o->align(FL_ALIGN_TOP_LEFT);
+            o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* o
           { Fl_Button* o = new Fl_Button(215, 185, 25, 20, "set");
             o->labelsize(11);
@@ -349,7 +356,7 @@
             o->step(1);
             o->textsize(11);
             o->callback((Fl_Callback*)max_w_cb);
-            o->align(FL_ALIGN_TOP_LEFT);
+            o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* o
           { Fl_Value_Input* o = new Fl_Value_Input(305, 185, 55, 20);
             o->tooltip("The resolution of the widget value.");
@@ -358,7 +365,7 @@
             o->step(1);
             o->textsize(11);
             o->callback((Fl_Callback*)max_h_cb);
-            o->align(FL_ALIGN_TOP_LEFT);
+            o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
           } // Fl_Value_Input* o
           { Fl_Button* o = new Fl_Button(365, 185, 25, 20, "set");
             o->labelsize(11);
@@ -379,14 +386,14 @@
           o->labelsize(11);
           o->labelcolor(FL_FOREGROUND_COLOR);
           o->callback((Fl_Callback*)shortcut_in_cb);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           o->when(FL_WHEN_RELEASE);
         } // Shortcut_Button* o
         { Fl_Group* o = new Fl_Group(95, 235, 300, 20, "X Class:");
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Input* o = new Fl_Input(95, 235, 95, 20, ":");
             o->tooltip("The X resource class.");
             o->labelfont(1);
@@ -412,7 +419,7 @@
             o->selection_color((Fl_Color)1);
             o->labelsize(11);
             o->callback((Fl_Callback*)non_modal_cb);
-            o->align(132|FL_ALIGN_INSIDE);
+            o->align(Fl_Align(132|FL_ALIGN_INSIDE));
           } // Fl_Light_Button* o
           o->end();
         } // Fl_Group* o
@@ -420,7 +427,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Light_Button* o = new Fl_Light_Button(95, 260, 60, 20, 
"Visible");
             o->tooltip("Show the widget.");
             o->selection_color((Fl_Color)1);
@@ -476,7 +483,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Choice* o = new Fl_Choice(95, 40, 170, 20);
             o->tooltip("The style of the label text.");
             o->box(FL_THIN_UP_BOX);
@@ -508,7 +515,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Choice* o = new Fl_Choice(95, 65, 219, 20);
             o->tooltip("The \"up\" box of the widget.");
             o->box(FL_THIN_UP_BOX);
@@ -531,7 +538,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Choice* o = new Fl_Choice(95, 90, 219, 20);
             o->tooltip("The \"down\" box of the widget.");
             o->box(FL_THIN_UP_BOX);
@@ -554,7 +561,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Choice* o = new Fl_Choice(95, 115, 170, 20);
             o->tooltip("The value text style.");
             o->box(FL_DOWN_BOX);
@@ -592,11 +599,12 @@
         o->labelsize(11);
         o->callback((Fl_Callback*)propagate_load);
         o->when(FL_WHEN_NEVER);
+        o->hide();
         { Fl_Group* o = new Fl_Group(95, 40, 310, 20, "Class:");
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Input* o = new Fl_Input(95, 40, 172, 20);
             o->tooltip("The widget subclass.");
             o->labelfont(1);
@@ -620,7 +628,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Input* o = new Fl_Input(95, 65, 235, 20);
             o->tooltip("The name of the widget.");
             o->labelfont(1);
@@ -691,7 +699,7 @@
           o->textfont(4);
           o->textsize(11);
           o->callback((Fl_Callback*)callback_cb);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           o->when(FL_WHEN_RELEASE);
           Fl_Group::current()->resizable(o);
         } // CodeEditor* o
@@ -699,7 +707,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Input* o = new Fl_Input(95, 270, 158, 20);
             o->tooltip("The user data to pass into the callback code.");
             o->labelfont(1);
@@ -726,7 +734,7 @@
           o->labelfont(1);
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
-          o->align(FL_ALIGN_LEFT);
+          o->align(Fl_Align(FL_ALIGN_LEFT));
           { Fl_Input* o = new Fl_Input(95, 295, 158, 20);
             o->tooltip("The type of the user data.");
             o->labelfont(1);

Modified: branches/branch-1.3/fluid/widget_panel.fl
===================================================================
--- branches/branch-1.3/fluid/widget_panel.fl   2010-04-09 17:01:58 UTC (rev 
7475)
+++ branches/branch-1.3/fluid/widget_panel.fl   2010-04-09 22:18:05 UTC (rev 
7476)
@@ -1,5 +1,5 @@
 # data file for the Fltk User Interface Designer (fluid)
-version 1.0108 
+version 1.0300 
 header_name {.h} 
 code_name {.cxx}
 comment {//
@@ -43,12 +43,12 @@
     } {
       Fl_Group {} {
         label GUI
-        callback propagate_load
-        xywh {10 30 400 290} labelsize 11 when 0 hide resizable
+        callback propagate_load open
+        xywh {10 30 400 290} labelsize 11 when 0 resizable
       } {
         Fl_Group {} {
           label {Label:}
-          callback propagate_load
+          callback propagate_load open
           xywh {95 40 309 20} labelfont 1 labelsize 11 align 4
         } {
           Fl_Input {} {
@@ -95,26 +95,51 @@
         }
         Fl_Group {} {
           label {Alignment:}
-          callback propagate_load
+          callback propagate_load open
           xywh {95 115 300 20} labelfont 1 labelsize 11 align 4
         } {
           Fl_Button {} {
             label Clip
             user_data FL_ALIGN_CLIP
             callback align_cb
-            tooltip {Clip the label to the inside of the widget.} xywh {95 115 
45 20} type Toggle selection_color 8 labelsize 11 align 16
+            tooltip {Clip the label to the inside of the widget.} xywh {95 115 
40 20} type Toggle selection_color 8 labelsize 11 align 16
           }
           Fl_Button {} {
             label Wrap
             user_data FL_ALIGN_WRAP
             callback align_cb
-            tooltip {Wrap the label text.} xywh {145 115 50 20} type Toggle 
selection_color 8 labelsize 11
+            tooltip {Wrap the label text.} xywh {140 115 40 20} type Toggle 
selection_color 8 labelsize 11
           }
-          Fl_Button {} {
+          Fl_Menu_Button {} {
             label {Text/Image}
-            user_data FL_ALIGN_TEXT_OVER_IMAGE
-            callback align_cb
-            tooltip {Show the label text over the image.} xywh {200 115 65 20} 
type Toggle selection_color 8 labelsize 11
+            callback align_text_image_cb open
+            xywh {185 115 80 20} labelsize 11 align 20
+          } {
+            MenuItem {} {
+              label {image over text}
+              user_data FL_ALIGN_IMAGE_OVER_TEXT
+              xywh {10 10 100 20} type Radio labelsize 11
+            }
+            MenuItem {} {
+              label {text over image}
+              user_data FL_ALIGN_TEXT_OVER_IMAGE selected
+              xywh {0 0 100 20} type Radio labelsize 11
+            }
+            MenuItem {} {
+              label {text next to image}
+              user_data FL_ALIGN_TEXT_NEXT_TO_IMAGE
+              xywh {20 20 100 20} type Radio labelsize 11
+            }
+            MenuItem {} {
+              label {image next to text}
+              user_data FL_ALIGN_IMAGE_NEXT_TO_TEXT
+              xywh {30 30 100 20} type Radio labelsize 11
+            }
+            MenuItem {} {
+              label {image is backdrop}
+              user_data FL_ALIGN_IMAGE_BACKDROP
+              xywh {40 40 100 20} type Radio labelsize 11
+            }
           }
           Fl_Button {} {
             label {...@-1<-}
@@ -415,7 +440,7 @@
       Fl_Group {} {
         label {C++}
         callback propagate_load open
-        xywh {10 30 400 290} labelsize 11 when 0
+        xywh {10 30 400 290} labelsize 11 when 0 hide
       } {
         Fl_Group {} {
           label {Class:}
@@ -438,7 +463,7 @@
           xywh {95 65 310 20} labelfont 1 labelsize 11 align 4
         } {
           Fl_Input {} {
-            callback name_cb selected
+            callback name_cb
             tooltip {The name of the widget.} xywh {95 65 235 20} labelfont 1 
labelsize 11 textsize 11 resizable
           }
           Fl_Choice {} {

Modified: branches/branch-1.3/fluid/widget_panel.h
===================================================================
--- branches/branch-1.3/fluid/widget_panel.h    2010-04-09 17:01:58 UTC (rev 
7475)
+++ branches/branch-1.3/fluid/widget_panel.h    2010-04-09 22:18:05 UTC (rev 
7476)
@@ -45,6 +45,8 @@
 extern void inactive_cb(Fl_Input*, void*);
 extern void inactive_browse_cb(Fl_Button*, void*);
 extern void align_cb(Fl_Button*, void*);
+#include <FL/Fl_Menu_Button.H>
+extern void align_text_image_cb(Fl_Menu_Button*, void*);
 #include <FL/Fl_Box.H>
 #include <FL/Fl_Value_Input.H>
 extern void x_cb(Fl_Value_Input*, void*);
@@ -113,6 +115,7 @@
 extern void live_mode_cb(Fl_Button*, void*);
 extern Fl_Button *wLiveMode;
 Fl_Double_Window* make_widget_panel();
+extern Fl_Menu_Item menu_Text[];
 extern Fl_Menu_Item menu_[];
 extern Fl_Menu_Item menu_1[];
 #endif

Modified: branches/branch-1.3/src/Fl_Button.cxx
===================================================================
--- branches/branch-1.3/src/Fl_Button.cxx       2010-04-09 17:01:58 UTC (rev 
7475)
+++ branches/branch-1.3/src/Fl_Button.cxx       2010-04-09 22:18:05 UTC (rev 
7476)
@@ -72,6 +72,7 @@
   if (type() == FL_HIDDEN_BUTTON) return;
   Fl_Color col = value() ? selection_color() : color();
   draw_box(value() ? (down_box()?down_box():fl_down(box())) : box(), col);
+  draw_backdrop();
   if (labeltype() == FL_NORMAL_LABEL && value()) {
     Fl_Color c = labelcolor();
     labelcolor(fl_contrast(c, col));

Modified: branches/branch-1.3/src/fl_draw.cxx
===================================================================
--- branches/branch-1.3/src/fl_draw.cxx 2010-04-09 17:01:58 UTC (rev 7475)
+++ branches/branch-1.3/src/fl_draw.cxx 2010-04-09 22:18:05 UTC (rev 7476)
@@ -253,7 +253,7 @@
   int xpos;
   int ypos;
   int height = fl_height();
-  int imgvert = ((align&FL_ALIGN_TEXT_NEXT_TO_IMAGE)==0);
+  int imgvert = ((align&FL_ALIGN_IMAGE_NEXT_TO_TEXT)==0);
   int imgh = img && imgvert ? img->h() : 0;
   int imgw[2] = {0, 0};
 

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to