summaryrefslogtreecommitdiff
path: root/fluid/Fl_Widget_Type.cxx
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2010-04-10 22:16:55 +0000
committerMatthias Melcher <fltk@matthiasm.com>2010-04-10 22:16:55 +0000
commit2fe7eabb6249c4c9ff0f6e697679a7f9f85ce0eb (patch)
treefbfb2957763ed47a673526a142aa33b318720065 /fluid/Fl_Widget_Type.cxx
parent927fd351655320ed90ceecedaf9ea58656594650 (diff)
Completed the alignment pulldown menus for all new alignment styles. Hope you guys like it.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7478 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'fluid/Fl_Widget_Type.cxx')
-rw-r--r--fluid/Fl_Widget_Type.cxx38
1 files changed, 33 insertions, 5 deletions
diff --git a/fluid/Fl_Widget_Type.cxx b/fluid/Fl_Widget_Type.cxx
index 0fde0a682..c47519752 100644
--- a/fluid/Fl_Widget_Type.cxx
+++ b/fluid/Fl_Widget_Type.cxx
@@ -1170,19 +1170,47 @@ void align_cb(Fl_Button* i, void *v) {
}
}
-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) {