Skip to content

Commit

Permalink
Completed the alignment pulldown menus for all new alignment styles. …
Browse files Browse the repository at this point in the history
…Hope you guys like it.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7478 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
  • Loading branch information
Matthias Melcher committed Apr 10, 2010
1 parent 927fd35 commit 2fe7eab
Show file tree
Hide file tree
Showing 4 changed files with 206 additions and 61 deletions.
38 changes: 33 additions & 5 deletions fluid/Fl_Widget_Type.cxx
Expand Up @@ -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) {
Expand Down
68 changes: 50 additions & 18 deletions fluid/widget_panel.cxx
Expand Up @@ -33,12 +33,32 @@ static void cb_(Fl_Tabs* o, void* v) {
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}
};

Expand All @@ -50,14 +70,14 @@ Fl_Value_Input *widget_w_input=(Fl_Value_Input *)0;

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}
Expand Down Expand Up @@ -155,34 +175,29 @@ Fl_Double_Window* make_widget_panel() {
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);
o->labelsize(11);
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);
o->selection_color(FL_INACTIVE_COLOR);
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.");
Expand All @@ -191,6 +206,7 @@ Fl_Double_Window* make_widget_panel() {
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.");
Expand All @@ -199,6 +215,7 @@ Fl_Double_Window* make_widget_panel() {
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.");
Expand All @@ -207,7 +224,22 @@ Fl_Double_Window* make_widget_panel() {
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);
Expand Down Expand Up @@ -644,7 +676,7 @@ ive to the origin at construction time");
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.");
Expand All @@ -653,7 +685,7 @@ ive to the origin at construction time");
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
Expand Down
154 changes: 119 additions & 35 deletions fluid/widget_panel.fl
Expand Up @@ -102,68 +102,152 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 1 te
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_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_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 {@-3square}
Expand Down

0 comments on commit 2fe7eab

Please sign in to comment.