mirror of https://github.com/fltk/fltk
1036 lines
44 KiB
C++
1036 lines
44 KiB
C++
//
|
|
// Widget panel for the Fast Light Tool Kit (FLTK).
|
|
//
|
|
// Copyright 1998-2021 by Bill Spitzak and others.
|
|
//
|
|
// This library is free software. Distribution and use rights are outlined in
|
|
// the file "COPYING" which should have been included with this file. If this
|
|
// file is missing or damaged, see the license at:
|
|
//
|
|
// https://www.fltk.org/COPYING.php
|
|
//
|
|
// Please see the following page on how to report bugs and issues:
|
|
//
|
|
// https://www.fltk.org/bugs.php
|
|
//
|
|
|
|
// generated by Fast Light User Interface Designer (fluid) version 1.0400
|
|
|
|
#include "widget_panel.h"
|
|
#include "Fl_Widget_Type.h"
|
|
|
|
static void cb_(Fl_Tabs* o, void* v) {
|
|
propagate_load((Fl_Group *)o,v);
|
|
}
|
|
|
|
Fl_Menu_Item menu_[] = {
|
|
{" Image Alignment ", 0, 0, (void*)((fl_intptr_t)0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
|
|
{"image over text", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_IMAGE_OVER_TEXT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"text over image", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TEXT_OVER_IMAGE), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"text next to image", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TEXT_NEXT_TO_IMAGE), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"image next to text", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_IMAGE_NEXT_TO_TEXT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"image is backdrop", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_IMAGE_BACKDROP), 0, (uchar)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*)((fl_intptr_t)0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
|
|
{"top left", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"top right", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP_RIGHT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"left", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"center", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_CENTER), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"right", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_RIGHT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"bottom left", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"bottom", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"bottom right", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM_RIGHT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{" Outside Alignment ", 0, 0, (void*)((fl_intptr_t)0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
|
|
{"left top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_LEFT_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"right top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_RIGHT_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"left bottom", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_LEFT_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"right bottom", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_RIGHT_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{0,0,0,0,0,0,0,0,0}
|
|
};
|
|
|
|
Fluid_Coord_Input *widget_x_input=(Fluid_Coord_Input *)0;
|
|
|
|
Fluid_Coord_Input *widget_y_input=(Fluid_Coord_Input *)0;
|
|
|
|
Fluid_Coord_Input *widget_w_input=(Fluid_Coord_Input *)0;
|
|
|
|
Fluid_Coord_Input *widget_h_input=(Fluid_Coord_Input *)0;
|
|
|
|
Fl_Menu_Item menu_Children[] = {
|
|
{"Fixed", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"Reposition", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"Resize", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{0,0,0,0,0,0,0,0,0}
|
|
};
|
|
|
|
Fl_Value_Input *widget_flex_size=(Fl_Value_Input *)0;
|
|
|
|
Fl_Check_Button *widget_flex_fixed=(Fl_Check_Button *)0;
|
|
|
|
Fl_Button *w_labelcolor=(Fl_Button *)0;
|
|
|
|
Fl_Button *w_color=(Fl_Button *)0;
|
|
|
|
Fl_Button *w_selectcolor=(Fl_Button *)0;
|
|
|
|
Fl_Button *w_textcolor=(Fl_Button *)0;
|
|
|
|
Fl_Menu_Item menu_2[] = {
|
|
{"private", 0, 0, (void*)(0), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"public", 0, 0, (void*)(1), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"protected", 0, 0, (void*)(2), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{0,0,0,0,0,0,0,0,0}
|
|
};
|
|
|
|
Fl_Menu_Item menu_3[] = {
|
|
{"local", 0, 0, (void*)(0), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{"global", 0, 0, (void*)(1), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
|
|
{0,0,0,0,0,0,0,0,0}
|
|
};
|
|
|
|
Fl_Input *v_input[4]={(Fl_Input *)0};
|
|
|
|
static void cb_1(Fl_Tile*, void* v) {
|
|
wComment->do_callback(wComment, v);
|
|
wCallback->do_callback(wCallback, v);
|
|
}
|
|
|
|
Fl_Text_Editor *wComment=(Fl_Text_Editor *)0;
|
|
|
|
CodeEditor *wCallback=(CodeEditor *)0;
|
|
|
|
Fl_Menu_Item menu_4[] = {
|
|
{"void*", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 4, 11, 0},
|
|
{"long", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 4, 11, 0},
|
|
{0,0,0,0,0,0,0,0,0}
|
|
};
|
|
|
|
Fl_Box *w_when_box=(Fl_Box *)0;
|
|
|
|
Fl_Button *wLiveMode=(Fl_Button *)0;
|
|
|
|
Fl_Button *overlay_button=(Fl_Button *)0;
|
|
|
|
/**
|
|
Create a panel that can be used with all known widgets
|
|
*/
|
|
Fl_Double_Window* make_widget_panel() {
|
|
Fl_Double_Window* w;
|
|
{ // Use a Double Window to avoid flickering.
|
|
Fl_Double_Window* o = new Fl_Double_Window(420, 400);
|
|
w = o; (void)w;
|
|
o->labelsize(11);
|
|
o->align(Fl_Align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE));
|
|
o->hotspot(o);
|
|
{ Fl_Tabs* o = new Fl_Tabs(10, 10, 400, 350);
|
|
o->selection_color((Fl_Color)12);
|
|
o->labelsize(11);
|
|
o->labelcolor(FL_BACKGROUND2_COLOR);
|
|
o->callback((Fl_Callback*)cb_);
|
|
o->when(FL_WHEN_NEVER);
|
|
{ Fl_Group* o = new Fl_Group(10, 30, 400, 330, "GUI");
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->when(FL_WHEN_NEVER);
|
|
{ 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(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);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)label_cb);
|
|
o->when(FL_WHEN_RELEASE | FL_WHEN_ENTER_KEY_CHANGED);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Input* o
|
|
{ Fl_Choice* o = new Fl_Choice(285, 40, 119, 20);
|
|
o->tooltip("The label style for the widget.");
|
|
o->box(FL_THIN_UP_BOX);
|
|
o->down_box(FL_BORDER_BOX);
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)labeltype_cb);
|
|
o->menu(labeltypemenu);
|
|
} // Fl_Choice* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 65, 309, 20, "Image:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ Fl_Input* o = new Fl_Input(95, 65, 200, 20);
|
|
o->tooltip("The active image for the widget.");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)image_cb);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Input* o
|
|
{ Fl_Button* o = new Fl_Button(295, 65, 69, 20, "Browse...");
|
|
o->tooltip("Click to choose the active image.");
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)image_browse_cb);
|
|
} // Fl_Button* o
|
|
{ Fl_Button* o = new Fl_Button(364, 65, 20, 20);
|
|
o->tooltip("store image uncompressed as RGBA data\nor compressed in the original file for\
|
|
mat");
|
|
o->type(1);
|
|
o->callback((Fl_Callback*)compress_image_cb);
|
|
o->image(compressed_pixmap);
|
|
} // Fl_Button* o
|
|
{ Fl_Button* o = new Fl_Button(384, 65, 20, 20);
|
|
o->tooltip("bind the image to the widget, so it will be deleted automatically");
|
|
o->type(1);
|
|
o->callback((Fl_Callback*)bind_image_cb);
|
|
o->image(bind_pixmap);
|
|
} // Fl_Button* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 90, 309, 20, "Inactive:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ Fl_Input* o = new Fl_Input(95, 90, 200, 20);
|
|
o->tooltip("The inactive image for the widget.");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)inactive_cb);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Input* o
|
|
{ Fl_Button* o = new Fl_Button(295, 90, 69, 20, "Browse...");
|
|
o->tooltip("Click to choose the inactive image.");
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)inactive_browse_cb);
|
|
} // Fl_Button* o
|
|
{ Fl_Button* o = new Fl_Button(364, 90, 20, 20);
|
|
o->tooltip("store image uncompressed as RGBA data\nor compressed in the original file for\
|
|
mat");
|
|
o->type(1);
|
|
o->callback((Fl_Callback*)compress_deimage_cb);
|
|
o->image(compressed_pixmap);
|
|
} // Fl_Button* o
|
|
{ Fl_Button* o = new Fl_Button(384, 90, 20, 20);
|
|
o->tooltip("bind the image to the widget, so it will be deleted automatically");
|
|
o->type(1);
|
|
o->callback((Fl_Callback*)bind_deimage_cb);
|
|
o->image(bind_pixmap);
|
|
} // Fl_Button* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 115, 310, 20, "Alignment:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ 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_intptr_t)FL_ALIGN_CLIP));
|
|
o->align(Fl_Align(FL_ALIGN_CENTER|FL_ALIGN_INSIDE));
|
|
} // Fl_Button* o
|
|
{ Fl_Button* o = new Fl_Button(130, 115, 38, 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_intptr_t)FL_ALIGN_WRAP));
|
|
} // Fl_Button* o
|
|
{ Fl_Button* o = new Fl_Button(278, 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_intptr_t)FL_ALIGN_LEFT));
|
|
o->hide();
|
|
} // Fl_Button* o
|
|
{ Fl_Button* o = new Fl_Button(303, 115, 20, 20, "@-1->");
|
|
o->tooltip("Right-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_intptr_t)FL_ALIGN_RIGHT));
|
|
o->hide();
|
|
} // Fl_Button* o
|
|
{ Fl_Button* o = new Fl_Button(328, 115, 20, 20, "@-18");
|
|
o->tooltip("Top-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_intptr_t)FL_ALIGN_TOP));
|
|
o->hide();
|
|
} // Fl_Button* o
|
|
{ Fl_Button* o = new Fl_Button(353, 115, 20, 20, "@-12");
|
|
o->tooltip("Bottom-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_intptr_t)FL_ALIGN_BOTTOM));
|
|
o->hide();
|
|
} // Fl_Button* o
|
|
{ Fl_Choice* o = new Fl_Choice(172, 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(288, 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(378, 115, 20, 20, "@-3square");
|
|
o->tooltip("Show the label inside the widget.");
|
|
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_intptr_t)FL_ALIGN_INSIDE));
|
|
} // Fl_Button* o
|
|
{ Fl_Box* o = new Fl_Box(404, 115, 0, 20);
|
|
o->labelsize(11);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Box* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 150, 314, 20, "Position:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)position_group_cb);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ widget_x_input = new Fluid_Coord_Input(95, 150, 55, 20, "X:");
|
|
widget_x_input->tooltip("The X position of the widget as a number or formula.\nFormulas can be simple \
|
|
math, including the variables\nx, px, sx, cx, and i");
|
|
widget_x_input->box(FL_DOWN_BOX);
|
|
widget_x_input->color(FL_BACKGROUND2_COLOR);
|
|
widget_x_input->selection_color(FL_SELECTION_COLOR);
|
|
widget_x_input->labeltype(FL_NORMAL_LABEL);
|
|
widget_x_input->labelfont(0);
|
|
widget_x_input->labelsize(11);
|
|
widget_x_input->labelcolor(FL_FOREGROUND_COLOR);
|
|
widget_x_input->textsize(11);
|
|
widget_x_input->callback((Fl_Callback*)x_cb);
|
|
widget_x_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
|
widget_x_input->when(FL_WHEN_RELEASE);
|
|
} // Fluid_Coord_Input* widget_x_input
|
|
{ widget_y_input = new Fluid_Coord_Input(155, 150, 55, 20, "Y:");
|
|
widget_y_input->tooltip("The Y position of the widget as a number or formula.\nFormulas can be simple \
|
|
math, including the variables\ny, py, sy, cy, and i");
|
|
widget_y_input->box(FL_DOWN_BOX);
|
|
widget_y_input->color(FL_BACKGROUND2_COLOR);
|
|
widget_y_input->selection_color(FL_SELECTION_COLOR);
|
|
widget_y_input->labeltype(FL_NORMAL_LABEL);
|
|
widget_y_input->labelfont(0);
|
|
widget_y_input->labelsize(11);
|
|
widget_y_input->labelcolor(FL_FOREGROUND_COLOR);
|
|
widget_y_input->textsize(11);
|
|
widget_y_input->callback((Fl_Callback*)y_cb);
|
|
widget_y_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
|
widget_y_input->when(FL_WHEN_RELEASE);
|
|
} // Fluid_Coord_Input* widget_y_input
|
|
{ widget_w_input = new Fluid_Coord_Input(215, 150, 55, 20, "Width:");
|
|
widget_w_input->tooltip("The width of the widget as a number or formula.\nFormulas can be simple math,\
|
|
including the variables\nw, pw, sw, cw, and i");
|
|
widget_w_input->box(FL_DOWN_BOX);
|
|
widget_w_input->color(FL_BACKGROUND2_COLOR);
|
|
widget_w_input->selection_color(FL_SELECTION_COLOR);
|
|
widget_w_input->labeltype(FL_NORMAL_LABEL);
|
|
widget_w_input->labelfont(0);
|
|
widget_w_input->labelsize(11);
|
|
widget_w_input->labelcolor(FL_FOREGROUND_COLOR);
|
|
widget_w_input->textsize(11);
|
|
widget_w_input->callback((Fl_Callback*)w_cb);
|
|
widget_w_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
|
widget_w_input->when(FL_WHEN_RELEASE);
|
|
} // Fluid_Coord_Input* widget_w_input
|
|
{ widget_h_input = new Fluid_Coord_Input(275, 150, 55, 20, "Height:");
|
|
widget_h_input->tooltip("The height of the widget as a number or formula.\nFormulas can be simple math\
|
|
, including the variables\nh, ph, sh, ch, and i");
|
|
widget_h_input->box(FL_DOWN_BOX);
|
|
widget_h_input->color(FL_BACKGROUND2_COLOR);
|
|
widget_h_input->selection_color(FL_SELECTION_COLOR);
|
|
widget_h_input->labeltype(FL_NORMAL_LABEL);
|
|
widget_h_input->labelfont(0);
|
|
widget_h_input->labelsize(11);
|
|
widget_h_input->labelcolor(FL_FOREGROUND_COLOR);
|
|
widget_h_input->textsize(11);
|
|
widget_h_input->callback((Fl_Callback*)h_cb);
|
|
widget_h_input->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
|
widget_h_input->when(FL_WHEN_RELEASE);
|
|
} // Fluid_Coord_Input* widget_h_input
|
|
{ Fl_Choice* o = new Fl_Choice(335, 150, 64, 20, "Children:");
|
|
o->tooltip("When instantiating a widget class, the children can either be fixed in their \
|
|
original position, automatically be repositioned, or both repsositioned and re\
|
|
sized to fit the container.");
|
|
o->down_box(FL_BORDER_BOX);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)wc_relative_cb);
|
|
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
|
o->menu(menu_Children);
|
|
} // Fl_Choice* o
|
|
{ Fl_Box* o = new Fl_Box(399, 150, 1, 20);
|
|
o->hide();
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Box* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 150, 314, 20, "Flex Parent:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)flex_size_group_cb);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
o->hide();
|
|
{ widget_flex_size = new Fl_Value_Input(95, 150, 55, 20, "Size:");
|
|
widget_flex_size->tooltip("Fixed Width or Height for a horizontal or vertical Fl_Flex Parent.");
|
|
widget_flex_size->labelsize(11);
|
|
widget_flex_size->textsize(11);
|
|
widget_flex_size->callback((Fl_Callback*)flex_size_cb);
|
|
widget_flex_size->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
|
} // Fl_Value_Input* widget_flex_size
|
|
{ widget_flex_fixed = new Fl_Check_Button(155, 150, 55, 20, "fixed");
|
|
widget_flex_fixed->tooltip("If checked, the size of the widget stays fixed.");
|
|
widget_flex_fixed->down_box(FL_DOWN_BOX);
|
|
widget_flex_fixed->labelsize(11);
|
|
widget_flex_fixed->callback((Fl_Callback*)flex_fixed_cb);
|
|
} // Fl_Check_Button* widget_flex_fixed
|
|
{ Fl_Box* o = new Fl_Box(398, 150, 1, 20);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Box* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 185, 300, 20, "Values:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)values_group_cb);
|
|
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->textsize(11);
|
|
o->callback((Fl_Callback*)slider_size_cb);
|
|
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(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.");
|
|
o->labelsize(11);
|
|
o->value(1);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)max_cb);
|
|
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(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(FL_ALIGN_TOP_LEFT));
|
|
} // Fl_Value_Input* o
|
|
{ Fl_Box* o = new Fl_Box(395, 185, 0, 20);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Box* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 185, 300, 20, "Margins:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)flex_margin_group_cb);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
o->hide();
|
|
{ Fl_Value_Input* o = new Fl_Value_Input(95, 185, 55, 20, "Left:");
|
|
o->tooltip("Left margin in group.");
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)flex_margin_left_cb);
|
|
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
|
} // Fl_Value_Input* o
|
|
{ Fl_Value_Input* o = new Fl_Value_Input(155, 185, 55, 20, "Top:");
|
|
o->tooltip("Top margin in group.");
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)flex_margin_top_cb);
|
|
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
|
} // Fl_Value_Input* o
|
|
{ Fl_Value_Input* o = new Fl_Value_Input(215, 185, 55, 20, "Right:");
|
|
o->tooltip("Right margin in group.");
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)flex_margin_right_cb);
|
|
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
|
} // Fl_Value_Input* o
|
|
{ Fl_Value_Input* o = new Fl_Value_Input(275, 185, 55, 20, "Bottom:");
|
|
o->tooltip("Bottom margin in group.");
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)flex_margin_bottom_cb);
|
|
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
|
} // Fl_Value_Input* o
|
|
{ Fl_Value_Input* o = new Fl_Value_Input(335, 185, 55, 20, "Gap:");
|
|
o->tooltip("Gap between children.");
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)flex_margin_gap_cb);
|
|
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);
|
|
} // Fl_Box* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 185, 300, 20, "Size Range:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)size_range_group_cb);
|
|
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.");
|
|
o->labelsize(11);
|
|
o->maximum(2048);
|
|
o->step(1);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)min_w_cb);
|
|
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.");
|
|
o->labelsize(11);
|
|
o->maximum(2048);
|
|
o->step(1);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)min_h_cb);
|
|
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);
|
|
o->callback((Fl_Callback*)set_min_size_cb);
|
|
} // Fl_Button* o
|
|
{ Fl_Value_Input* o = new Fl_Value_Input(245, 185, 55, 20, "Maximum Size:");
|
|
o->tooltip("The maximum value of the widget.");
|
|
o->labelsize(11);
|
|
o->maximum(2048);
|
|
o->step(1);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)max_w_cb);
|
|
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.");
|
|
o->labelsize(11);
|
|
o->maximum(2048);
|
|
o->step(1);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)max_h_cb);
|
|
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);
|
|
o->callback((Fl_Callback*)set_max_size_cb);
|
|
} // Fl_Button* o
|
|
{ Fl_Box* o = new Fl_Box(395, 185, 0, 20);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Box* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 210, 310, 20, "Shortcut:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ // This is a special button that grabs keystrokes directly
|
|
Fl_Shortcut_Button* o = new Fl_Shortcut_Button(95, 210, 310, 20);
|
|
o->tooltip("The shortcut key for the widget.\nUse \'Backspace\' key to clear.");
|
|
o->box(FL_DOWN_BOX);
|
|
o->color(FL_BACKGROUND2_COLOR);
|
|
o->selection_color((Fl_Color)12);
|
|
o->labeltype(FL_NORMAL_LABEL);
|
|
o->labelfont(0);
|
|
o->labelsize(11);
|
|
o->labelcolor(FL_FOREGROUND_COLOR);
|
|
o->callback((Fl_Callback*)shortcut_in_cb);
|
|
o->align(Fl_Align(FL_ALIGN_CENTER));
|
|
o->when(FL_WHEN_CHANGED);
|
|
} // Fl_Shortcut_Button* o
|
|
o->end();
|
|
} // Fl_Group* 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(FL_ALIGN_LEFT));
|
|
{ Fl_Input* o = new Fl_Input(95, 235, 95, 20, ":");
|
|
o->tooltip("The X resource class.");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)xclass_cb);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Input* o
|
|
{ Fl_Light_Button* o = new Fl_Light_Button(195, 235, 60, 20, "Border");
|
|
o->tooltip("Add a border around the window.");
|
|
o->selection_color((Fl_Color)1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)border_cb);
|
|
} // Fl_Light_Button* o
|
|
{ Fl_Light_Button* o = new Fl_Light_Button(260, 235, 55, 20, "Modal");
|
|
o->tooltip("Make the window modal.");
|
|
o->selection_color((Fl_Color)1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)modal_cb);
|
|
} // Fl_Light_Button* o
|
|
{ Fl_Light_Button* o = new Fl_Light_Button(320, 235, 75, 20, "Nonmodal");
|
|
o->tooltip("Make the window non-modal.");
|
|
o->selection_color((Fl_Color)1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)non_modal_cb);
|
|
o->align(Fl_Align(132|FL_ALIGN_INSIDE));
|
|
} // Fl_Light_Button* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 260, 305, 20, "Attributes:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
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);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)visible_cb);
|
|
} // Fl_Light_Button* o
|
|
{ Fl_Light_Button* o = new Fl_Light_Button(160, 260, 60, 20, "Active");
|
|
o->tooltip("Activate the widget.");
|
|
o->selection_color((Fl_Color)1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)active_cb);
|
|
} // Fl_Light_Button* o
|
|
{ Fl_Light_Button* o = new Fl_Light_Button(225, 260, 75, 20, "Resizable");
|
|
o->tooltip("Make the widget resizable.");
|
|
o->selection_color((Fl_Color)1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)resizable_cb);
|
|
o->when(FL_WHEN_CHANGED);
|
|
} // Fl_Light_Button* o
|
|
{ Fl_Light_Button* o = new Fl_Light_Button(305, 260, 70, 20, "Hotspot");
|
|
o->tooltip("Center the window under this widget.");
|
|
o->selection_color((Fl_Color)1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)hotspot_cb);
|
|
o->when(FL_WHEN_CHANGED);
|
|
} // Fl_Light_Button* o
|
|
{ Fl_Box* o = new Fl_Box(395, 260, 0, 20);
|
|
o->labelsize(11);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Box* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Input* o = new Fl_Input(95, 285, 310, 20, "Tooltip:");
|
|
o->tooltip("The tooltip text for the widget.\nUse Ctrl-J for newlines.");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)tooltip_cb);
|
|
} // Fl_Input* o
|
|
{ Fl_Box* o = new Fl_Box(95, 305, 300, 5);
|
|
o->hide();
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Box* o
|
|
o->end();
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(10, 30, 400, 330, "Style");
|
|
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 Font:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ Fl_Choice* o = new Fl_Choice(95, 40, 152, 20);
|
|
o->tooltip("The style of the label text.");
|
|
o->box(FL_THIN_UP_BOX);
|
|
o->down_box(FL_BORDER_BOX);
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)labelfont_cb);
|
|
Fl_Group::current()->resizable(o);
|
|
o->menu(fontmenu);
|
|
} // Fl_Choice* o
|
|
{ Fl_Value_Input* o = new Fl_Value_Input(247, 40, 49, 20);
|
|
o->tooltip("The size of the label text.");
|
|
o->labelsize(11);
|
|
o->maximum(100);
|
|
o->step(1);
|
|
o->value(14);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)labelsize_cb);
|
|
} // Fl_Value_Input* o
|
|
{ w_labelcolor = new Fl_Button(296, 40, 90, 20, "Label Color");
|
|
w_labelcolor->tooltip("The color of the label text.");
|
|
w_labelcolor->labelsize(11);
|
|
w_labelcolor->callback((Fl_Callback*)labelcolor_cb);
|
|
} // Fl_Button* w_labelcolor
|
|
{ Fl_Menu_Button* o = new Fl_Menu_Button(386, 40, 18, 20);
|
|
o->callback((Fl_Callback*)labelcolor_menu_cb);
|
|
o->menu(colormenu);
|
|
} // Fl_Menu_Button* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 65, 309, 20, "Box:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ Fl_Choice* o = new Fl_Choice(95, 65, 201, 20);
|
|
o->tooltip("The \"up\" box of the widget.");
|
|
o->box(FL_THIN_UP_BOX);
|
|
o->down_box(FL_BORDER_BOX);
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)box_cb);
|
|
Fl_Group::current()->resizable(o);
|
|
o->menu(boxmenu);
|
|
} // Fl_Choice* o
|
|
{ w_color = new Fl_Button(296, 65, 90, 20, "Color");
|
|
w_color->tooltip("The background color of the widget.");
|
|
w_color->labelsize(11);
|
|
w_color->callback((Fl_Callback*)color_cb);
|
|
} // Fl_Button* w_color
|
|
{ Fl_Menu_Button* o = new Fl_Menu_Button(386, 65, 18, 20);
|
|
o->callback((Fl_Callback*)color_menu_cb);
|
|
o->menu(colormenu);
|
|
} // Fl_Menu_Button* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 90, 309, 20, "Down Box:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ Fl_Choice* o = new Fl_Choice(95, 90, 201, 20);
|
|
o->tooltip("The \"down\" box of the widget.");
|
|
o->box(FL_THIN_UP_BOX);
|
|
o->down_box(FL_BORDER_BOX);
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->labelcolor(FL_DARK2);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)down_box_cb);
|
|
Fl_Group::current()->resizable(o);
|
|
o->menu(boxmenu);
|
|
} // Fl_Choice* o
|
|
{ w_selectcolor = new Fl_Button(296, 90, 90, 20, "Select Color");
|
|
w_selectcolor->tooltip("The selection color of the widget.");
|
|
w_selectcolor->labelsize(11);
|
|
w_selectcolor->callback((Fl_Callback*)color2_cb);
|
|
} // Fl_Button* w_selectcolor
|
|
{ Fl_Menu_Button* o = new Fl_Menu_Button(386, 90, 18, 20);
|
|
o->callback((Fl_Callback*)color2_menu_cb);
|
|
o->menu(colormenu);
|
|
} // Fl_Menu_Button* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 115, 309, 20, "Text Font:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ Fl_Choice* o = new Fl_Choice(95, 115, 152, 20);
|
|
o->tooltip("The value text style.");
|
|
o->box(FL_DOWN_BOX);
|
|
o->down_box(FL_BORDER_BOX);
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)textfont_cb);
|
|
Fl_Group::current()->resizable(o);
|
|
o->menu(fontmenu);
|
|
} // Fl_Choice* o
|
|
{ Fl_Value_Input* o = new Fl_Value_Input(247, 115, 49, 20);
|
|
o->tooltip("The value text size.");
|
|
o->labelsize(11);
|
|
o->maximum(100);
|
|
o->step(1);
|
|
o->value(14);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)textsize_cb);
|
|
} // Fl_Value_Input* o
|
|
{ w_textcolor = new Fl_Button(296, 115, 90, 20, "Text Color");
|
|
w_textcolor->tooltip("The value text color.");
|
|
w_textcolor->labelsize(11);
|
|
w_textcolor->callback((Fl_Callback*)textcolor_cb);
|
|
} // Fl_Button* w_textcolor
|
|
{ Fl_Menu_Button* o = new Fl_Menu_Button(386, 115, 18, 20);
|
|
o->callback((Fl_Callback*)textcolor_menu_cb);
|
|
o->menu(colormenu);
|
|
} // Fl_Menu_Button* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Box* o = new Fl_Box(95, 140, 300, 40);
|
|
o->labelsize(11);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Box* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(10, 30, 400, 330, "C++");
|
|
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(FL_ALIGN_LEFT));
|
|
{ Fl_Input* o = new Fl_Input(95, 40, 172, 20);
|
|
o->tooltip("The widget subclass.");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textfont(4);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)subclass_cb, (void*)(4));
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Input* o
|
|
{ Fl_Choice* o = new Fl_Choice(267, 40, 138, 20);
|
|
o->tooltip("The widget subtype.");
|
|
o->box(FL_THIN_UP_BOX);
|
|
o->down_box(FL_BORDER_BOX);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)subtype_cb);
|
|
} // Fl_Choice* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 65, 310, 20, "Name:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
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);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)name_cb);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Input* o
|
|
{ Fl_Choice* o = new Fl_Choice(330, 65, 75, 20);
|
|
o->tooltip("Change member access attribute.");
|
|
o->down_box(FL_BORDER_BOX);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)name_public_member_cb);
|
|
o->when(FL_WHEN_CHANGED);
|
|
o->menu(menu_2);
|
|
} // Fl_Choice* o
|
|
{ Fl_Choice* o = new Fl_Choice(330, 65, 75, 20);
|
|
o->tooltip("Change widget accessibility.");
|
|
o->down_box(FL_BORDER_BOX);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)name_public_cb);
|
|
o->when(FL_WHEN_CHANGED);
|
|
o->hide();
|
|
o->menu(menu_3);
|
|
} // Fl_Choice* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ v_input[0] = new Fl_Input(95, 90, 310, 20, "Extra Code:");
|
|
v_input[0]->tooltip("Extra initialization code for the widget.");
|
|
v_input[0]->labelfont(1);
|
|
v_input[0]->labelsize(11);
|
|
v_input[0]->textfont(4);
|
|
v_input[0]->textsize(11);
|
|
v_input[0]->callback((Fl_Callback*)v_input_cb, (void*)(0));
|
|
} // Fl_Input* v_input[0]
|
|
{ v_input[1] = new Fl_Input(95, 110, 310, 20);
|
|
v_input[1]->tooltip("Extra initialization code for the widget.");
|
|
v_input[1]->labelsize(11);
|
|
v_input[1]->textfont(4);
|
|
v_input[1]->textsize(11);
|
|
v_input[1]->callback((Fl_Callback*)v_input_cb, (void*)(1));
|
|
} // Fl_Input* v_input[1]
|
|
{ v_input[2] = new Fl_Input(95, 130, 310, 20);
|
|
v_input[2]->tooltip("Extra initialization code for the widget.");
|
|
v_input[2]->labelsize(11);
|
|
v_input[2]->textfont(4);
|
|
v_input[2]->textsize(11);
|
|
v_input[2]->callback((Fl_Callback*)v_input_cb, (void*)(2));
|
|
} // Fl_Input* v_input[2]
|
|
{ v_input[3] = new Fl_Input(95, 150, 310, 20);
|
|
v_input[3]->tooltip("Extra initialization code for the widget.");
|
|
v_input[3]->labelsize(11);
|
|
v_input[3]->textfont(4);
|
|
v_input[3]->textsize(11);
|
|
v_input[3]->callback((Fl_Callback*)v_input_cb, (void*)(3));
|
|
} // Fl_Input* v_input[3]
|
|
{ Fl_Tile* o = new Fl_Tile(95, 175, 310, 130);
|
|
o->callback((Fl_Callback*)cb_1);
|
|
{ Fl_Group* o = new Fl_Group(95, 175, 310, 48);
|
|
o->box(FL_FLAT_BOX);
|
|
{ wComment = new Fl_Text_Editor(95, 175, 310, 45, "Comment:");
|
|
wComment->tooltip("Write a comment that will appear in the source code and in the widget tree ov\
|
|
erview.");
|
|
wComment->box(FL_DOWN_BOX);
|
|
wComment->labelfont(1);
|
|
wComment->labelsize(11);
|
|
wComment->textfont(6);
|
|
wComment->textsize(11);
|
|
wComment->textcolor((Fl_Color)59);
|
|
wComment->align(Fl_Align(FL_ALIGN_LEFT));
|
|
wComment->when(FL_WHEN_CHANGED);
|
|
Fl_Group::current()->resizable(wComment);
|
|
wComment->buffer(new Fl_Text_Buffer());
|
|
wComment->callback((Fl_Callback*)comment_cb);
|
|
} // Fl_Text_Editor* wComment
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 223, 310, 82);
|
|
o->box(FL_FLAT_BOX);
|
|
{ wCallback = new CodeEditor(95, 225, 310, 80, "Callback:");
|
|
wCallback->tooltip("The callback function or code for the widget. Use the variable name \'o\' to \
|
|
access the Widget pointer and \'v\' to access the user value.");
|
|
wCallback->box(FL_DOWN_BOX);
|
|
wCallback->color(FL_BACKGROUND2_COLOR);
|
|
wCallback->selection_color(FL_SELECTION_COLOR);
|
|
wCallback->labeltype(FL_NORMAL_LABEL);
|
|
wCallback->labelfont(1);
|
|
wCallback->labelsize(11);
|
|
wCallback->labelcolor(FL_FOREGROUND_COLOR);
|
|
wCallback->textfont(4);
|
|
wCallback->textsize(11);
|
|
wCallback->callback((Fl_Callback*)callback_cb);
|
|
wCallback->align(Fl_Align(FL_ALIGN_LEFT));
|
|
wCallback->when(FL_WHEN_RELEASE);
|
|
Fl_Group::current()->resizable(wCallback);
|
|
} // CodeEditor* wCallback
|
|
o->end();
|
|
} // Fl_Group* o
|
|
o->end();
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Tile* o
|
|
{ Fl_Group* o = new Fl_Group(95, 310, 310, 20, "User Data:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ Fl_Input* o = new Fl_Input(95, 310, 158, 20);
|
|
o->tooltip("The user data to pass into the callback code.");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textfont(4);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)user_data_cb);
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Input* o
|
|
{ Fl_Menu_Button* o = new Fl_Menu_Button(260, 310, 145, 20, "When");
|
|
o->tooltip("When to call the callback function.");
|
|
o->box(FL_THIN_UP_BOX);
|
|
o->down_box(FL_BORDER_BOX);
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)when_cb);
|
|
o->when(FL_WHEN_CHANGED);
|
|
o->menu(whenmenu);
|
|
} // Fl_Menu_Button* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
{ Fl_Group* o = new Fl_Group(95, 332, 310, 26, "Type:");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)propagate_load);
|
|
o->align(Fl_Align(FL_ALIGN_LEFT));
|
|
{ Fl_Input_Choice* o = new Fl_Input_Choice(95, 335, 158, 20);
|
|
o->tooltip("The type of the user data.");
|
|
o->labelfont(1);
|
|
o->labelsize(11);
|
|
o->textfont(4);
|
|
o->textsize(11);
|
|
o->callback((Fl_Callback*)user_data_type_cb);
|
|
Fl_Group::current()->resizable(o);
|
|
o->menu(menu_4);
|
|
} // Fl_Input_Choice* o
|
|
{ w_when_box = new Fl_Box(260, 332, 145, 26, "FL_WHEN_NEVER");
|
|
w_when_box->box(FL_FLAT_BOX);
|
|
w_when_box->selection_color((Fl_Color)1);
|
|
w_when_box->labelsize(8);
|
|
w_when_box->align(Fl_Align(193|FL_ALIGN_INSIDE));
|
|
} // Fl_Box* w_when_box
|
|
o->end();
|
|
} // Fl_Group* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
o->end();
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Tabs* o
|
|
{ Fl_Group* o = new Fl_Group(10, 370, 400, 20);
|
|
o->labelsize(11);
|
|
{ wLiveMode = new Fl_Button(10, 370, 80, 20, "Live &Resize");
|
|
wLiveMode->tooltip("Create a live duplicate of the selected widgets to test resizing and menu beh\
|
|
avior.");
|
|
wLiveMode->type(1);
|
|
wLiveMode->labelsize(11);
|
|
wLiveMode->callback((Fl_Callback*)live_mode_cb);
|
|
} // Fl_Button* wLiveMode
|
|
{ overlay_button = new Fl_Button(94, 370, 80, 20, "Hide &Overlays");
|
|
overlay_button->tooltip("Hide the widget overlay box.");
|
|
overlay_button->labelsize(11);
|
|
overlay_button->callback((Fl_Callback*)overlay_cb);
|
|
} // Fl_Button* overlay_button
|
|
{ // Hidden resizable box
|
|
Fl_Box* o = new Fl_Box(258, 370, 72, 20);
|
|
o->labelsize(11);
|
|
o->hide();
|
|
Fl_Group::current()->resizable(o);
|
|
} // Fl_Box* o
|
|
{ Fl_Return_Button* o = new Fl_Return_Button(330, 370, 80, 20, "Close");
|
|
o->labelsize(11);
|
|
o->callback((Fl_Callback*)ok_cb);
|
|
} // Fl_Return_Button* o
|
|
o->end();
|
|
} // Fl_Group* o
|
|
o->size_range(420, 400);
|
|
o->size_range(o->w(), o->h());
|
|
o->end();
|
|
} // Fl_Double_Window* o
|
|
return w;
|
|
}
|