summaryrefslogtreecommitdiff
path: root/fluid/alignment_panel.fl
diff options
context:
space:
mode:
authorMatthias Melcher <github@matthiasm.com>2023-03-18 17:33:27 +0100
committerGitHub <noreply@github.com>2023-03-18 17:33:27 +0100
commit5c482f9d9b357e098f955351f425bc985254ff28 (patch)
treec410588ac915886aea4bef3478a12d682bb5ad9f /fluid/alignment_panel.fl
parenta9fb6a979fbcf31c2405d61ea720879bd5507d02 (diff)
Fix and update alignment #346 (#701)
* interactive layout alignment rewritten * interface for new alignment rules * new alignment dialog box * user defined layout rules added * layout rules can be stored in projects, settings, and external files * Valgrind verification
Diffstat (limited to 'fluid/alignment_panel.fl')
-rw-r--r--fluid/alignment_panel.fl589
1 files changed, 492 insertions, 97 deletions
diff --git a/fluid/alignment_panel.fl b/fluid/alignment_panel.fl
index c1f0305da..3f3abb04d 100644
--- a/fluid/alignment_panel.fl
+++ b/fluid/alignment_panel.fl
@@ -2,10 +2,39 @@
version 1.0400
header_name {.h}
code_name {.cxx}
+snap {
+ ver 1
+ current_suite {FLUID (based on FLTK)}
+ current_preset 1
+ suite {
+ name {FLUID (based on FLTK)}
+ preset { 1
+ 15 15 15 15 0 0
+ 10 10 10 10 0 0
+ 25 25
+ 20 10 4 20 4 8
+ 0 14 0 14
+ }
+ preset { 1
+ 10 10 10 10 0 0
+ 10 10 10 10 0 0
+ 20 20
+ 20 10 5 20 5 5
+ 0 11 0 11
+ }
+ preset { 1
+ 10 10 10 10 0 0
+ 10 10 10 10 0 0
+ 18 18
+ 16 8 2 16 4 2
+ 0 10 0 10
+ }
+ }
+}
comment {//
// Setting and shell dialogs for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2020 by Bill Spitzak and others.
+// Copyright 1998-2023 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
@@ -26,18 +55,24 @@ decl {\#include "fluid.h"} {public global
decl {\#include "widget_browser.h"} {public global
}
+decl {\#include "Fd_Snap_Action.h"} {public global
+}
+
decl {\#include "shell_command.h"} {public global
}
decl {\#include <FL/Fl_Text_Buffer.H>} {public local
}
-decl {\#include <FL/Fl_Text_Display.H>} {public local
+decl {\#include <FL/Fl_Text_Display.H>} {selected public local
}
decl {\#include <FL/filename.H>} {public local
}
+decl {\#include <FL/fl_string_functions.h>} {public local
+}
+
decl {\#include <FL/Fl_Scheme_Choice.H>} {public local
}
@@ -60,8 +95,8 @@ decl {extern struct Fl_Menu_Item *dbmanager_item;} {public local
Function {make_project_window()} {open
} {
Fl_Window project_window {
- label {Project Settings}
- xywh {472 246 399 298} type Double
+ label {Project Settings} open
+ xywh {739 251 399 298} type Double
code0 {\#include <FL/Fl_Preferences.H>}
code1 {\#include <FL/Fl_Tooltip.H>} modal visible
} {
@@ -126,15 +161,15 @@ set_modflag(-1, -1);}
} {
MenuItem {} {
label None
- xywh {0 0 100 20}
+ xywh {0 0 100 20} labelsize 14
}
MenuItem {} {
label {GNU gettext}
- xywh {0 0 100 20}
+ xywh {0 0 100 20} labelsize 14
}
MenuItem {} {
label {POSIX catgets}
- xywh {0 0 100 20}
+ xywh {0 0 100 20} labelsize 14
}
}
Fl_Input i18n_include_input {
@@ -182,7 +217,7 @@ Function {make_settings_window()} {open
} {
Fl_Window settings_window {
label {GUI Settings} open
- xywh {701 666 360 355} type Double resizable
+ xywh {722 580 360 355} type Double resizable
code0 {o->size_range(o->w(), o->h());} non_modal visible
} {
Fl_Choice scheme_choice {
@@ -293,7 +328,7 @@ Function {make_shell_window()} {open
} {
Fl_Window shell_window {
label {Shell Command} open
- xywh {502 196 375 208} type Double resizable modal size_range {375 208 1024 208} visible
+ xywh {390 202 375 208} type Double resizable modal size_range {375 208 1024 208} visible
} {
Fl_Group {} {open
xywh {0 0 375 165} resizable
@@ -323,7 +358,7 @@ if (g_shell_use_fl_settings) {
} else {
shell_prefs_get();
}
-update_shell_window();} selected
+update_shell_window();}
tooltip {check to read and write shell command from and to .fl files} xywh {82 110 180 19} down_box DOWN_BOX labelsize 12
}
Fl_Box {} {
@@ -390,109 +425,469 @@ shell_run_window->hide();}
}
}
+decl {Fl_Menu_Item *w_layout_menu_storage[4];} {private global
+}
+
Function {make_layout_window()} {open
} {
Fl_Window grid_window {
label {Layout Settings}
- xywh {745 303 310 245} type Double non_modal visible
+ callback {propagate_load(o, v);} open
+ xywh {392 444 320 491} type Double non_modal visible
} {
- Fl_Input horizontal_input {
- label x
- user_data 1 user_data_type long
- callback grid_cb
- tooltip {Horizontal grid spacing.} xywh {116 10 50 25} type Int box THIN_DOWN_BOX align 8
- code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
- }
- Fl_Input vertical_input {
- label pixels
- user_data 2 user_data_type long
- callback grid_cb
- tooltip {Vertical grid spacing.} xywh {179 10 50 25} type Int box THIN_DOWN_BOX align 8
- code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
- }
- Fl_Input snap_input {
- label {pixel snap}
- user_data 3 user_data_type long
- callback grid_cb
- tooltip {Snap to grid within this many pixels.} xywh {116 45 50 25} type Int box THIN_DOWN_BOX align 8
- code0 {o->when(FL_WHEN_RELEASE|FL_WHEN_ENTER_KEY);}
- }
- Fl_Check_Button guides_toggle {
- label {Show Guides}
- user_data 4 user_data_type long
- callback guides_cb
- tooltip {Show distance and alignment guides in overlay} xywh {116 80 110 25} down_box DOWN_BOX
+ Fl_Box {} {
+ label {Layout:}
+ xywh {10 10 60 24} labelfont 1 labelsize 11 align 24
+ }
+ Fl_Choice layout_choice {
+ callback {if (v == LOAD) {
+ o->value(g_layout_list.current_suite());
+ } else {
+ int index = o->value();
+ g_layout_list.current_suite(index);
+ g_layout_list.update_dialogs();
+ }}
+ xywh {70 10 187 24} down_box BORDER_BOX
+ } {
+ MenuItem {} {
+ label FLTK
+ xywh {0 0 31 20} labelsize 14
+ }
+ MenuItem {} {
+ label Grid
+ xywh {0 0 31 20} labelsize 14
+ }
}
Fl_Button {} {
- label Close
- callback {grid_window->hide();}
- tooltip {Close this dialog.} xywh {240 210 60 25}
+ label {+}
+ callback {// Clone the current layout suite
+
+if (v == LOAD) return;
+
+Fl_String old_name = "Copy of ";
+old_name.append(g_layout_list[g_layout_list.current_suite()].name_);
+const char *new_name = fl_input("Enter a name for the new layout:", old_name.c_str());
+if (new_name == NULL)
+ return;
+
+g_layout_list.add(new_name);
+g_layout_list.update_dialogs();}
+ xywh {257 10 24 24}
+ }
+ Fl_Menu_Button w_layout_menu {
+ callback {if (v == LOAD) {
+ Fd_Layout_Suite &suite = g_layout_list[g_layout_list.current_suite()];
+ if (suite.storage_ == FD_STORE_INTERNAL) {
+ w_layout_menu_rename->deactivate();
+ for (int i=1; i<4; i++) w_layout_menu_storage[i]->deactivate();
+ w_layout_menu_delete->deactivate();
+ } else {
+ w_layout_menu_rename->activate();
+ for (int i=1; i<4; i++) w_layout_menu_storage[i]->activate();
+ w_layout_menu_delete->activate();
+ }
+ w_layout_menu_storage[suite.storage_]->setonly();
+}}
+ xywh {281 10 24 24}
+ } {
+ MenuItem w_layout_menu_rename {
+ label {Rename...}
+ callback {// Rename the current layout suite
+
+Fl_String old_name = g_layout_list[g_layout_list.current_suite()].name_;
+const char *new_name = fl_input("Enter a new name for the layout:", old_name.c_str());
+if (new_name == NULL)
+ return;
+
+g_layout_list.rename(new_name);
+g_layout_list.update_dialogs();}
+ xywh {0 0 31 20} labelsize 14 divider
+ }
+ MenuItem {w_layout_menu_storage[0]} {
+ label {@fd_beaker FLUID Built-In}
+ callback {Fd_Layout_Suite &suite = g_layout_list[g_layout_list.current_suite()];
+suite.storage(FD_STORE_INTERNAL);
+g_layout_list.update_dialogs();}
+ xywh {0 0 31 20} type Radio labelsize 14 deactivate
+ }
+ MenuItem {w_layout_menu_storage[1]} {
+ label {@fd_user User Preference}
+ callback {Fd_Layout_Suite &suite = g_layout_list[g_layout_list.current_suite()];
+suite.storage(FD_STORE_USER);
+g_layout_list.update_dialogs();}
+ xywh {0 0 31 20} type Radio labelsize 14
+ }
+ MenuItem {w_layout_menu_storage[2]} {
+ label {@fd_project Store in .fl Project File}
+ callback {Fd_Layout_Suite &suite = g_layout_list[g_layout_list.current_suite()];
+suite.storage(FD_STORE_PROJECT);
+g_layout_list.update_dialogs();}
+ xywh {0 0 31 20} type Radio labelsize 14
+ }
+ MenuItem {w_layout_menu_storage[3]} {
+ label {@fd_file Store in External File}
+ callback {Fd_Layout_Suite &suite = g_layout_list[g_layout_list.current_suite()];
+suite.storage(FD_STORE_FILE);
+g_layout_list.update_dialogs();}
+ xywh {0 0 31 20} type Radio labelsize 14 divider
+ }
+ MenuItem w_layout_menu_load {
+ label {Load...}
+ callback {// Give the user a file chooser and load that file
+Fl_Native_File_Chooser fnfc;
+fnfc.title("Load Layout Settings:");
+fnfc.type(Fl_Native_File_Chooser::BROWSE_FILE);
+fnfc.options(Fl_Native_File_Chooser::USE_FILTER_EXT);
+fnfc.filter("FLUID Layouts\\t*.fll\\n");
+if (fnfc.show() != 0) return;
+const char *new_filename = fnfc.filename();
+if (!new_filename) return;
+g_layout_list.load(new_filename);
+//g_layout_list.current_suite(n);
+g_layout_list.update_dialogs();}
+ xywh {0 0 31 20} labelsize 14
+ }
+ MenuItem w_layout_menu_save {
+ label {Save...}
+ callback {// Give the user a file chooser with a suggested name
+ Fl_Native_File_Chooser fnfc;
+ fnfc.title("Save Layout Settings:");
+ fnfc.type(Fl_Native_File_Chooser::BROWSE_SAVE_FILE);
+ fnfc.options(Fl_Native_File_Chooser::SAVEAS_CONFIRM | Fl_Native_File_Chooser::USE_FILTER_EXT);
+ fnfc.filter("FLUID Layouts\\t*.fll\\n");
+ if (g_layout_list.filename_) {
+ char *fn = fl_strdup(g_layout_list.filename_);
+ char *name = (char*)fl_filename_name(g_layout_list.filename_);
+ if (name > fn) {
+ name[-1] = 0;
+ fnfc.directory(fn);
+ fnfc.preset_file(name);
+ ::free(fn);
+ } else if (name) {
+ fnfc.preset_file(name);
+ ::free(fn);
+ }
+ }
+ if (fnfc.show() != 0) return;
+ const char *new_filename = fnfc.filename();
+ if (!new_filename) return;
+ if (g_layout_list.filename_)
+ ::free(g_layout_list.filename_);
+ g_layout_list.filename_ = fl_strdup(new_filename);
+ g_layout_list.save(new_filename);}
+ xywh {0 0 31 20} labelsize 14 divider
+ code0 {\#include <FL/Fl_Native_File_Chooser.H>}
+ }
+ MenuItem w_layout_menu_delete {
+ label Delete
+ callback {// remove the current suite
+
+g_layout_list.remove(g_layout_list.current_suite());
+g_layout_list.update_dialogs();}
+ xywh {0 0 31 20} labelsize 14
+ }
+ }
+ Fl_Box {} {
+ label {Preset:}
+ xywh {10 39 60 20} labelfont 1 labelsize 11 align 24
+ }
+ Fl_Group {} {
+ callback propagate_load open
+ xywh {70 39 235 20} labelsize 11
+ } {
+ Fl_Button {preset_choice[0]} {
+ label Application
+ user_data 0 user_data_type long
+ callback edit_layout_preset_cb
+ xywh {70 39 78 20} type Radio value 1 selection_color 45 labelsize 11
+ }
+ Fl_Button {preset_choice[1]} {
+ label Dialog
+ user_data 1 user_data_type long
+ callback edit_layout_preset_cb
+ xywh {148 39 79 20} type Radio selection_color 45 labelsize 11
+ }
+ Fl_Button {preset_choice[2]} {
+ label Toolbox
+ user_data 2 user_data_type long
+ callback edit_layout_preset_cb
+ xywh {227 39 78 20} type Radio selection_color 45 labelsize 11
+ }
+ }
+ Fl_Box {} {
+ label {---- Window ----}
+ xywh {70 64 235 20} labelfont 1 labelsize 11 align 20
+ }
+ Fl_Box {} {
+ label {Margin:}
+ xywh {10 99 60 20} labelsize 11 align 24
+ }
+ Fl_Value_Input {} {
+ label {Left:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->left_window_margin);
+} else {
+ layout->left_window_margin = (int)o->value();
+}}
+ xywh {70 99 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Top:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->top_window_margin);
+} else {
+ layout->top_window_margin = (int)o->value();
+}}
+ xywh {130 99 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Right:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->right_window_margin);
+} else {
+ layout->right_window_margin = (int)o->value();
+}}
+ xywh {190 99 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Bottom:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->bottom_window_margin);
+} else {
+ layout->bottom_window_margin = (int)o->value();
+}}
+ xywh {250 99 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
}
Fl_Box {} {
label {Grid:}
- xywh {47 10 70 25} labelfont 1 align 24
+ xywh {17 133 53 20} labelsize 11 align 24
+ }
+ Fl_Value_Input {} {
+ label {Horizontal:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->window_grid_x);
+} else {
+ layout->window_grid_x = (int)o->value();
+}}
+ xywh {70 133 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Vertical:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->window_grid_y);
+} else {
+ layout->window_grid_y = (int)o->value();
+}}
+ xywh {130 133 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
}
Fl_Box {} {
- label {Widget Size:}
- xywh {10 115 107 25} labelfont 1 align 24
+ label {---- Group ----}
+ xywh {70 158 235 20} labelfont 1 labelsize 11 align 20
}
- Fl_Group {} {open
- xywh {105 115 192 75}
+ Fl_Box {} {
+ label {Margin:}
+ xywh {10 193 60 20} labelsize 11 align 24
+ }
+ Fl_Value_Input {} {
+ label {Left:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->left_group_margin);
+} else {
+ layout->left_group_margin = (int)o->value();
+}}
+ xywh {70 193 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Top:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->top_group_margin);
+} else {
+ layout->top_group_margin = (int)o->value();
+}}
+ xywh {130 193 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Right:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->right_group_margin);
+} else {
+ layout->right_group_margin = (int)o->value();
+}}
+ xywh {190 193 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Bottom:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->bottom_group_margin);
+} else {
+ layout->bottom_group_margin = (int)o->value();
+}}
+ xywh {250 193 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Box {} {
+ label {Grid:}
+ xywh {17 227 53 20} labelsize 11 align 24
+ }
+ Fl_Value_Input {} {
+ label {Horizontal:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->group_grid_x);
+} else {
+ layout->group_grid_x = (int)o->value();
+}}
+ xywh {70 227 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Vertical:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->group_grid_y);
+} else {
+ layout->group_grid_y = (int)o->value();
+}}
+ xywh {130 227 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Box {} {
+ label {---- Tabs ----}
+ xywh {70 252 235 20} labelfont 1 labelsize 11 align 20
+ }
+ Fl_Box {} {
+ label {Margin:}
+ xywh {10 287 60 20} labelsize 11 align 24
+ }
+ Fl_Value_Input {} {
+ label {Top:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->top_tabs_margin);
+} else {
+ layout->top_tabs_margin = (int)o->value();
+}}
+ xywh {70 287 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Bottom:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->bottom_tabs_margin);
+} else {
+ layout->bottom_tabs_margin = (int)o->value();
+}}
+ xywh {130 287 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Box {} {
+ label {---- Widget ----}
+ xywh {70 312 235 20} labelfont 1 labelsize 11 align 20
+ }
+ Fl_Box {} {
+ label {Horizontal:}
+ xywh {10 347 60 20} labelsize 11 align 24
+ }
+ Fl_Value_Input {} {
+ label {Minimum:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->widget_min_w);
+} else {
+ layout->widget_min_w = (int)o->value();
+}}
+ xywh {70 346 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Increment:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->widget_inc_w);
+} else {
+ layout->widget_inc_w = (int)o->value();
+}}
+ xywh {130 346 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ label {Gap:}
+ callback {if (v == LOAD) {
+ o->value((double)layout->widget_gap_x);
+} else {
+ layout->widget_gap_x = (int)o->value();
+}}
+ xywh {190 346 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Box {} {
+ label {Vertical:}
+ xywh {17 372 53 20} labelsize 11 align 24
+ }
+ Fl_Value_Input {} {
+ callback {if (v == LOAD) {
+ o->value((double)layout->widget_min_h);
+} else {
+ layout->widget_min_h = (int)o->value();
+}}
+ xywh {70 372 55 20} labelsize 11 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ callback {if (v == LOAD) {
+ o->value((double)layout->widget_inc_h);
+} else {
+ layout->widget_inc_h = (int)o->value();
+}}
+ xywh {130 372 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Value_Input {} {
+ callback {if (v == LOAD) {
+ o->value((double)layout->widget_gap_y);
+} else {
+ layout->widget_gap_y = (int)o->value();
+}}
+ xywh {190 372 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11
+ }
+ Fl_Group {} {
+ label {Label Font:}
+ callback propagate_load open
+ xywh {70 397 200 20} labelsize 11 align 4
} {
- Fl_Round_Button {def_widget_size[0]} {
- user_data 8 user_data_type long
- callback default_widget_size_cb
- xywh {115 115 70 25} type Radio down_box ROUND_DOWN_BOX
- }
- Fl_Box {} {
- label tiny
- xywh {130 115 50 25} labelsize 8 align 20
- }
- Fl_Round_Button {def_widget_size[1]} {
- user_data 11 user_data_type long
- callback default_widget_size_cb
- xywh {202 115 70 25} type Radio down_box ROUND_DOWN_BOX
- }
- Fl_Box {} {
- label small
- xywh {218 115 50 25} labelsize 11 align 20
- }
- Fl_Round_Button {def_widget_size[2]} {
- user_data 14 user_data_type long
- callback default_widget_size_cb
- xywh {115 140 70 25} type Radio down_box ROUND_DOWN_BOX
- }
- Fl_Box {} {
- label normal
- xywh {130 140 50 25} align 20
- }
- Fl_Round_Button {def_widget_size[3]} {
- user_data 18 user_data_type long
- callback default_widget_size_cb
- xywh {202 140 90 25} type Radio down_box ROUND_DOWN_BOX
- }
- Fl_Box {} {
- label medium
- xywh {218 140 68 25} labelsize 18 align 20
- }
- Fl_Round_Button {def_widget_size[4]} {
- user_data 24 user_data_type long
- callback default_widget_size_cb
- xywh {115 165 75 25} type Radio down_box ROUND_DOWN_BOX
- }
- Fl_Box {} {
- label large
- xywh {130 165 64 25} labelsize 24 align 20
- }
- Fl_Round_Button {def_widget_size[5]} {
- user_data 32 user_data_type long
- callback default_widget_size_cb
- xywh {202 165 95 25} type Radio down_box ROUND_DOWN_BOX
+ Fl_Choice {} {
+ callback {if (v == LOAD) {
+ o->value(layout->labelfont);
+} else {
+ layout->labelfont = (int)o->value();
+}} open
+ tooltip {The style of the label text.} xywh {70 397 152 20} box THIN_UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 resizable
+ code0 {extern Fl_Menu_Item fontmenu[];}
+ code1 {o->menu(fontmenu);}
+ } {}
+ Fl_Value_Input {} {
+ callback {if (v == LOAD) {
+ o->value(layout->labelsize);
+} else {
+ layout->labelsize = (int)o->value();
+}}
+ tooltip {The size of the label text.} xywh {221 397 49 20} labelsize 11 maximum 100 step 1 value 14 textsize 11
}
- Fl_Box {} {
- label huge
- xywh {218 165 76 25} labelsize 32 align 20
+ }
+ Fl_Group {} {
+ label {Text Font:}
+ callback propagate_load open
+ xywh {70 422 200 20} labelsize 11 align 4
+ } {
+ Fl_Choice {} {
+ callback {if (v == LOAD) {
+ o->value(layout->textfont);
+} else {
+ layout->textfont = (int)o->value();
+}} open
+ tooltip {The value text style.} xywh {70 422 152 20} box DOWN_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 resizable
+ code0 {extern Fl_Menu_Item fontmenu[];}
+ code1 {o->menu(fontmenu);}
+ } {}
+ Fl_Value_Input {} {
+ callback {if (v == LOAD) {
+ o->value(layout->textsize);
+} else {
+ layout->textsize = (int)o->value();
+}}
+ tooltip {The value text size.} xywh {221 422 49 20} labelsize 11 maximum 100 step 1 value 14 textsize 11
}
}
+ Fl_Button {} {
+ label Close
+ callback {if (v != LOAD) grid_window->hide();}
+ tooltip {Close this dialog.} xywh {245 456 60 25}
+ }
}
+ code {grid_window->do_callback(grid_window, LOAD);} {}
}