// // 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), 128, (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_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_Button *wLiveMode=(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_CHANGED); Fl_Group::current()->resizable(o); } // Fl_Input* o { Fl_Choice* o = new Fl_Choice(284, 40, 120, 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, 240, 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(334, 65, 70, 20, "Browse..."); o->tooltip("Click to choose the active image."); o->labelsize(11); o->callback((Fl_Callback*)image_browse_cb); } // 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, 240, 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(334, 90, 70, 20, "Browse..."); o->tooltip("Click to choose the inactive image."); o->labelsize(11); o->callback((Fl_Callback*)inactive_browse_cb); } // 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, 65, 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(398, 150, 1, 20); 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 { // This is a special button that grabs keystrokes directly Shortcut_Button* o = new Shortcut_Button(95, 210, 310, 20, "Shortcut:"); 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_BACKGROUND2_COLOR); o->labeltype(FL_NORMAL_LABEL); o->labelfont(1); o->labelsize(11); o->labelcolor(FL_FOREGROUND_COLOR); o->callback((Fl_Callback*)shortcut_in_cb); 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(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->labelsize(11); 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, 170, 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(264, 40, 50, 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 { Fl_Button* o = new Fl_Button(314, 40, 90, 20, "Label Color"); o->tooltip("The color of the label text."); o->labelsize(11); o->callback((Fl_Callback*)labelcolor_cb); } // Fl_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, 219, 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 { Fl_Button* o = new Fl_Button(314, 65, 90, 20, "Color"); o->tooltip("The background color of the widget."); o->labelsize(11); o->callback((Fl_Callback*)color_cb); } // Fl_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, 219, 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->textsize(11); o->callback((Fl_Callback*)down_box_cb); Fl_Group::current()->resizable(o); o->menu(boxmenu); } // Fl_Choice* o { Fl_Button* o = new Fl_Button(314, 90, 90, 20, "Select Color"); o->tooltip("The selection color of the widget."); o->labelsize(11); o->callback((Fl_Callback*)color2_cb); } // Fl_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, 170, 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(264, 115, 50, 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 { Fl_Button* o = new Fl_Button(314, 115, 90, 20, "Text Color"); o->tooltip("The value text color."); o->labelsize(11); o->callback((Fl_Callback*)textcolor_cb); } // Fl_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(265, 40, 140, 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->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_Choice* o = new Fl_Choice(300, 310, 105, 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_Choice* o o->end(); } // Fl_Group* o { Fl_Group* o = new Fl_Group(95, 335, 310, 20, "Type:"); 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, 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); } // Fl_Input* o { Fl_Light_Button* o = new Fl_Light_Button(300, 335, 105, 20, "No Change"); o->tooltip("Call the callback even if the value has not changed."); o->selection_color((Fl_Color)1); o->labelsize(11); o->callback((Fl_Callback*)when_button_cb); } // Fl_Light_Button* o 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); { // Hidden resizable box Fl_Box* o = new Fl_Box(10, 370, 75, 20); o->labelsize(11); o->hide(); Fl_Group::current()->resizable(o); } // Fl_Box* o { // Hidden Revert button Fl_Button* o = new Fl_Button(90, 370, 60, 20, "Revert"); o->labelsize(11); o->callback((Fl_Callback*)revert_cb); o->hide(); } // Fl_Button* o { wLiveMode = new Fl_Button(155, 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 { Fl_Button* o = new Fl_Button(240, 370, 100, 20, "Hide &Overlays"); o->tooltip("Hide the widget overlay box."); o->labelsize(11); o->labelcolor((Fl_Color)1); o->callback((Fl_Callback*)overlay_cb); } // Fl_Button* o { Fl_Return_Button* o = new Fl_Return_Button(345, 370, 65, 20, "Close"); o->labelsize(11); o->callback((Fl_Callback*)ok_cb); } // Fl_Return_Button* o { // Hidden cancel button Fl_Button* o = new Fl_Button(345, 370, 65, 20, "Cancel"); o->labelsize(11); o->callback((Fl_Callback*)cancel_cb); o->hide(); } // Fl_Button* o o->end(); } // Fl_Group* o o->size_range(o->w(), o->h()); o->size_range(420, 400); o->end(); } // Fl_Double_Window* o return w; }