Author: matt
Date: 2010-04-10 15:16:55 -0700 (Sat, 10 Apr 2010)
New Revision: 7478
Log:
Completed the alignment pulldown menus for all new alignment styles. Hope you 
guys like it.

Modified:
   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

Modified: branches/branch-1.3/fluid/Fl_Widget_Type.cxx
===================================================================
--- branches/branch-1.3/fluid/Fl_Widget_Type.cxx        2010-04-10 13:04:26 UTC 
(rev 7477)
+++ branches/branch-1.3/fluid/Fl_Widget_Type.cxx        2010-04-10 22:16:55 UTC 
(rev 7478)
@@ -1170,19 +1170,47 @@
   }
 }
 
-void align_text_image_cb(Fl_Menu_Button* i, void *v) {
+void align_position_cb(Fl_Choice *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_POSITION_MASK;
+    for (;mi->text;mi++) {
+      if (mi->argument()==b)
+        i->value(mi);
+    }
+  } else {
+    const Fl_Menu_Item *mi = i->menu() + i->value();
+    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_POSITION_MASK) | b;
+        //printf("x:%04x y:%04x b:%04x\n", x, y, b);
+       if (x != y) {
+          q->o->align(y);
+         q->redraw();
+         mod = 1;
+       }
+      }
+    }
+    if (mod) set_modflag(1);
+  }
+}
+
+void align_text_image_cb(Fl_Choice *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();
+        i->value(mi);
     }
   } else {
-    const Fl_Menu_Item *mi = i->mvalue();
+    const Fl_Menu_Item *mi = i->menu() + i->value();
     Fl_Align b = Fl_Align(long(mi->user_data()));
     int mod = 0;
     for (Fl_Type *o = Fl_Type::first; o; o = o->next) {

Modified: branches/branch-1.3/fluid/widget_panel.cxx
===================================================================
--- branches/branch-1.3/fluid/widget_panel.cxx  2010-04-10 13:04:26 UTC (rev 
7477)
+++ branches/branch-1.3/fluid/widget_panel.cxx  2010-04-10 22:16:55 UTC (rev 
7478)
@@ -33,15 +33,35 @@
   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},
+Fl_Menu_Item menu_[] = {
+ {"   Image Alignment   ", 0,  0, (void*)(0xFFFFFFFF), 1, FL_NORMAL_LABEL, 2, 
11, 0},
+ {"image over text", 0,  0, (void*)(FL_ALIGN_IMAGE_OVER_TEXT), 0, 
FL_NORMAL_LABEL, 0, 11, 0},
+ {"text over image", 0,  0, (void*)(FL_ALIGN_TEXT_OVER_IMAGE), 0, 
FL_NORMAL_LABEL, 0, 11, 0},
+ {"text next to image", 0,  0, (void*)(FL_ALIGN_TEXT_NEXT_TO_IMAGE), 0, 
FL_NORMAL_LABEL, 0, 11, 0},
+ {"image next to text", 0,  0, (void*)(FL_ALIGN_IMAGE_NEXT_TO_TEXT), 0, 
FL_NORMAL_LABEL, 0, 11, 0},
+ {"image is backdrop", 0,  0, (void*)(FL_ALIGN_IMAGE_BACKDROP), 0, 
FL_NORMAL_LABEL, 0, 11, 0},
  {0,0,0,0,0,0,0,0,0}
 };
 
+Fl_Menu_Item menu_1[] = {
+ {"   Inside && Outside   ", 0,  0, (void*)(0xFFFFFFFF), 1, FL_NORMAL_LABEL, 
2, 11, 0},
+ {"top left", 0,  0, (void*)(FL_ALIGN_TOP_LEFT), 0, FL_NORMAL_LABEL, 0, 11, 0},
+ {"top", 0,  0, (void*)(FL_ALIGN_TOP), 0, FL_NORMAL_LABEL, 0, 11, 0},
+ {"top right", 0,  0, (void*)(FL_ALIGN_TOP_RIGHT), 0, FL_NORMAL_LABEL, 0, 11, 
0},
+ {"left", 0,  0, (void*)(FL_ALIGN_LEFT), 0, FL_NORMAL_LABEL, 0, 11, 0},
+ {"center", 0,  0, (void*)(FL_ALIGN_CENTER), 0, FL_NORMAL_LABEL, 0, 11, 0},
+ {"right", 0,  0, (void*)(FL_ALIGN_RIGHT), 0, FL_NORMAL_LABEL, 0, 11, 0},
+ {"bottom left", 0,  0, (void*)(FL_ALIGN_BOTTOM_LEFT), 0, FL_NORMAL_LABEL, 0, 
11, 0},
+ {"bottom", 0,  0, (void*)(FL_ALIGN_BOTTOM), 0, FL_NORMAL_LABEL, 0, 11, 0},
+ {"bottom right", 0,  0, (void*)(FL_ALIGN_BOTTOM_RIGHT), 128, FL_NORMAL_LABEL, 
0, 11, 0},
+ {"   Outside Alignment   ", 0,  0, (void*)(0xFFFFFFFF), 1, FL_NORMAL_LABEL, 
2, 11, 0},
+ {"left top", 0,  0, (void*)(FL_ALIGN_LEFT_TOP), 0, FL_NORMAL_LABEL, 0, 11, 0},
+ {"right top", 0,  0, (void*)(FL_ALIGN_RIGHT_TOP), 0, FL_NORMAL_LABEL, 0, 11, 
0},
+ {"left bottom", 0,  0, (void*)(FL_ALIGN_LEFT_BOTTOM), 0, FL_NORMAL_LABEL, 0, 
11, 0},
+ {"right bottom", 0,  0, (void*)(FL_ALIGN_RIGHT_BOTTOM), 0, 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;
@@ -50,14 +70,14 @@
 
 Fl_Value_Input *widget_h_input=(Fl_Value_Input *)0;
 
-Fl_Menu_Item menu_[] = {
+Fl_Menu_Item menu_2[] = {
  {"private", 0,  0, (void*)(0), 0, FL_NORMAL_LABEL, 0, 11, 0},
  {"public", 0,  0, (void*)(1), 0, FL_NORMAL_LABEL, 0, 11, 0},
  {"protected", 0,  0, (void*)(2), 0, FL_NORMAL_LABEL, 0, 11, 0},
  {0,0,0,0,0,0,0,0,0}
 };
 
-Fl_Menu_Item menu_1[] = {
+Fl_Menu_Item menu_3[] = {
  {"local", 0,  0, (void*)(0), 0, FL_NORMAL_LABEL, 0, 11, 0},
  {"global", 0,  0, (void*)(1), 0, FL_NORMAL_LABEL, 0, 11, 0},
  {0,0,0,0,0,0,0,0,0}
@@ -155,7 +175,7 @@
           o->labelsize(11);
           o->callback((Fl_Callback*)propagate_load);
           o->align(Fl_Align(FL_ALIGN_LEFT));
-          { Fl_Button* o = new Fl_Button(95, 115, 40, 20, "Clip");
+          { Fl_Button* o = new Fl_Button(95, 115, 30, 20, "Clip");
             o->tooltip("Clip the label to the inside of the widget.");
             o->type(1);
             o->selection_color(FL_INACTIVE_COLOR);
@@ -163,19 +183,13 @@
             o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_CLIP));
             o->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
           } // Fl_Button* o
-          { Fl_Button* o = new Fl_Button(140, 115, 40, 20, "Wrap");
+          { Fl_Button* o = new Fl_Button(130, 115, 30, 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_Menu_Button* o = new Fl_Menu_Button(185, 115, 80, 20, 
"Text/Image");
-            o->labelsize(11);
-            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);
@@ -183,6 +197,7 @@
             o->labelsize(11);
             o->labelcolor(FL_INACTIVE_COLOR);
             o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_LEFT));
+            o->hide();
           } // Fl_Button* o
           { Fl_Button* o = new Fl_Button(295, 115, 20, 20, "@-1->");
             o->tooltip("Right-align the label.");
@@ -191,6 +206,7 @@
             o->labelsize(11);
             o->labelcolor(FL_INACTIVE_COLOR);
             o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_RIGHT));
+            o->hide();
           } // Fl_Button* o
           { Fl_Button* o = new Fl_Button(320, 115, 20, 20, "@-18");
             o->tooltip("Top-align the label.");
@@ -199,6 +215,7 @@
             o->labelsize(11);
             o->labelcolor(FL_INACTIVE_COLOR);
             o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_TOP));
+            o->hide();
           } // Fl_Button* o
           { Fl_Button* o = new Fl_Button(345, 115, 20, 20, "@-12");
             o->tooltip("Bottom-align the label.");
@@ -207,7 +224,22 @@
             o->labelsize(11);
             o->labelcolor(FL_INACTIVE_COLOR);
             o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_BOTTOM));
+            o->hide();
           } // Fl_Button* o
+          { Fl_Choice* o = new Fl_Choice(165, 115, 110, 20);
+            o->down_box(FL_BORDER_BOX);
+            o->labelsize(11);
+            o->textsize(11);
+            o->callback((Fl_Callback*)align_text_image_cb);
+            o->menu(menu_);
+          } // Fl_Choice* o
+          { Fl_Choice* o = new Fl_Choice(280, 115, 85, 20);
+            o->down_box(FL_BORDER_BOX);
+            o->labelsize(11);
+            o->textsize(11);
+            o->callback((Fl_Callback*)align_position_cb);
+            o->menu(menu_1);
+          } // Fl_Choice* o
           { Fl_Button* o = new Fl_Button(370, 115, 20, 20, "@-3square");
             o->tooltip("Show the label inside the widget.");
             o->type(1);
@@ -644,7 +676,7 @@
             o->textsize(11);
             o->callback((Fl_Callback*)name_public_member_cb);
             o->when(FL_WHEN_CHANGED);
-            o->menu(menu_);
+            o->menu(menu_2);
           } // Fl_Choice* o
           { Fl_Choice* o = new Fl_Choice(330, 65, 75, 20);
             o->tooltip("Change widget accessibility.");
@@ -653,7 +685,7 @@
             o->textsize(11);
             o->callback((Fl_Callback*)name_public_cb);
             o->when(FL_WHEN_CHANGED);
-            o->menu(menu_1);
+            o->menu(menu_3);
           } // Fl_Choice* o
           o->end();
         } // Fl_Group* o

Modified: branches/branch-1.3/fluid/widget_panel.fl
===================================================================
--- branches/branch-1.3/fluid/widget_panel.fl   2010-04-10 13:04:26 UTC (rev 
7477)
+++ branches/branch-1.3/fluid/widget_panel.fl   2010-04-10 22:16:55 UTC (rev 
7478)
@@ -102,70 +102,154 @@
             label Clip
             user_data FL_ALIGN_CLIP
             callback align_cb
-            tooltip {Clip the label to the inside of the widget.} xywh {95 115 
40 20} type Toggle selection_color 8 labelsize 11 align 16
+            tooltip {Clip the label to the inside of the widget.} xywh {95 115 
30 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 {140 115 40 20} type Toggle 
selection_color 8 labelsize 11
+            tooltip {Wrap the label text.} xywh {130 115 30 20} type Toggle 
selection_color 8 labelsize 11
           }
-          Fl_Menu_Button {} {
-            label {Text/Image}
-            callback align_text_image_cb open
-            xywh {185 115 80 20} labelsize 11 align 20
+          Fl_Button {} {
+            label {...@-1<-}
+            user_data FL_ALIGN_LEFT
+            callback align_cb
+            tooltip {Left-align the label.} xywh {270 115 20 20} type Toggle 
selection_color 8 labelsize 11 labelcolor 8 hide
+          }
+          Fl_Button {} {
+            label {...@-1->}
+            user_data FL_ALIGN_RIGHT
+            callback align_cb
+            tooltip {Right-align the label.} xywh {295 115 20 20} type Toggle 
selection_color 8 labelsize 11 labelcolor 8 hide
+          }
+          Fl_Button {} {
+            label {...@-18}
+            user_data FL_ALIGN_TOP
+            callback align_cb
+            tooltip {Top-align the label.} xywh {320 115 20 20} type Toggle 
selection_color 8 labelsize 11 labelcolor 8 hide
+          }
+          Fl_Button {} {
+            label {...@-12}
+            user_data FL_ALIGN_BOTTOM
+            callback align_cb
+            tooltip {Bottom-align the label.} xywh {345 115 20 20} type Toggle 
selection_color 8 labelsize 11 labelcolor 8 hide
+          }
+          Fl_Choice {} {
+            callback align_text_image_cb open selected
+            xywh {165 115 110 20} down_box BORDER_BOX labelsize 11 textsize 11
           } {
             MenuItem {} {
+              label {   Image Alignment   }
+              user_data 0xFFFFFFFF
+              xywh {145 145 100 20} labelfont 2 labelsize 11 deactivate
+            }
+            MenuItem {} {
               label {image over text}
               user_data FL_ALIGN_IMAGE_OVER_TEXT
-              xywh {10 10 100 20} type Radio labelsize 11
+              xywh {25 25 100 20} labelsize 11
             }
             MenuItem {} {
               label {text over image}
-              user_data FL_ALIGN_TEXT_OVER_IMAGE selected
-              xywh {0 0 100 20} type Radio labelsize 11
+              user_data FL_ALIGN_TEXT_OVER_IMAGE
+              xywh {15 15 100 20} 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
+              xywh {35 35 100 20} 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
+              xywh {45 45 100 20} labelsize 11
             }
             MenuItem {} {
               label {image is backdrop}
               user_data FL_ALIGN_IMAGE_BACKDROP
-              xywh {40 40 100 20} type Radio labelsize 11
+              xywh {55 55 100 20} labelsize 11
             }
           }
-          Fl_Button {} {
-            label {...@-1<-}
-            user_data FL_ALIGN_LEFT
-            callback align_cb
-            tooltip {Left-align the label.} xywh {270 115 20 20} type Toggle 
selection_color 8 labelsize 11 labelcolor 8
+          Fl_Choice {} {
+            callback align_position_cb open
+            xywh {280 115 85 20} down_box BORDER_BOX labelsize 11 textsize 11
+          } {
+            MenuItem {} {
+              label {   Inside && Outside   }
+              user_data 0xFFFFFFFF
+              xywh {135 135 100 20} labelfont 2 labelsize 11 deactivate
+            }
+            MenuItem {} {
+              label {top left}
+              user_data FL_ALIGN_TOP_LEFT
+              xywh {45 45 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label top
+              user_data FL_ALIGN_TOP
+              xywh {55 55 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label {top right}
+              user_data FL_ALIGN_TOP_RIGHT
+              xywh {65 65 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label left
+              user_data FL_ALIGN_LEFT
+              xywh {75 75 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label center
+              user_data FL_ALIGN_CENTER
+              xywh {35 35 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label right
+              user_data FL_ALIGN_RIGHT
+              xywh {85 85 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label {bottom left}
+              user_data FL_ALIGN_BOTTOM_LEFT
+              xywh {95 95 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label bottom
+              user_data FL_ALIGN_BOTTOM
+              xywh {105 105 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label {bottom right}
+              user_data FL_ALIGN_BOTTOM_RIGHT
+              xywh {115 115 100 20} labelsize 11 divider
+            }
+            MenuItem {} {
+              label {   Outside Alignment   }
+              user_data 0xFFFFFFFF
+              xywh {125 125 100 20} labelfont 2 labelsize 11 deactivate
+            }
+            MenuItem {} {
+              label {left top}
+              user_data FL_ALIGN_LEFT_TOP
+              xywh {135 135 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label {right top}
+              user_data FL_ALIGN_RIGHT_TOP
+              xywh {145 145 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label {left bottom}
+              user_data FL_ALIGN_LEFT_BOTTOM
+              xywh {155 155 100 20} labelsize 11
+            }
+            MenuItem {} {
+              label {right bottom}
+              user_data FL_ALIGN_RIGHT_BOTTOM
+              xywh {45 45 100 20} labelsize 11
+            }
           }
           Fl_Button {} {
-            label {...@-1->}
-            user_data FL_ALIGN_RIGHT
-            callback align_cb
-            tooltip {Right-align the label.} xywh {295 115 20 20} type Toggle 
selection_color 8 labelsize 11 labelcolor 8
-          }
-          Fl_Button {} {
-            label {...@-18}
-            user_data FL_ALIGN_TOP
-            callback align_cb
-            tooltip {Top-align the label.} xywh {320 115 20 20} type Toggle 
selection_color 8 labelsize 11 labelcolor 8
-          }
-          Fl_Button {} {
-            label {...@-12}
-            user_data FL_ALIGN_BOTTOM
-            callback align_cb
-            tooltip {Bottom-align the label.} xywh {345 115 20 20} type Toggle 
selection_color 8 labelsize 11 labelcolor 8
-          }
-          Fl_Button {} {
             label {...@-3square}
             user_data FL_ALIGN_INSIDE
             callback align_cb

Modified: branches/branch-1.3/fluid/widget_panel.h
===================================================================
--- branches/branch-1.3/fluid/widget_panel.h    2010-04-10 13:04:26 UTC (rev 
7477)
+++ branches/branch-1.3/fluid/widget_panel.h    2010-04-10 22:16:55 UTC (rev 
7478)
@@ -45,8 +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*);
+extern void align_text_image_cb(Fl_Choice*, void*);
+extern void align_position_cb(Fl_Choice*, void*);
 #include <FL/Fl_Box.H>
 #include <FL/Fl_Value_Input.H>
 extern void x_cb(Fl_Value_Input*, void*);
@@ -115,9 +115,10 @@
 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[];
+extern Fl_Menu_Item menu_2[];
+extern Fl_Menu_Item menu_3[];
 #endif
 
 //

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

Reply via email to