# data file for the Fltk User Interface Designer (fluid) version 1.0400 header_name {.h} code_name {.cxx} snap { ver 1 current_suite {My Test} 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-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 // 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 // } {in_source in_header } decl {\#include "fluid.h"} {public global } decl {\#include "undo.h"} {private 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 } {public local } decl {\#include } {public local } decl {\#include } {public local } decl {\#include } {public local } decl {\#include } {public local } decl {\#include } {private global } decl {\#include } {private global } decl {\#include } {private global } decl {\#include } {private global } decl {void init_scheme(void);} { comment {// initialize the scheme from preferences} public global } decl {extern struct Fl_Menu_Item *dbmanager_item;} {public local } decl {extern void i18n_cb(Fl_Choice *,void *);} {public local } decl {void scheme_cb(Fl_Scheme_Choice *, void *);} {public local } Function {make_settings_window()} {open } { Fl_Window settings_window { label {GUI Settings} open xywh {617 332 340 580} type Double align 80 resizable code0 {o->size_range(o->w(), o->h());} non_modal visible } { Fl_Tabs w_settings_tabs { callback {propagate_load(o, v);} open xywh {10 10 320 530} selection_color 12 labelsize 11 labelcolor 255 } { Fl_Group {} { label General open image {icons/general_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11 code0 {o->image()->scale(36, 24);} } { Fl_Choice scheme_choice { label {Scheme: } callback scheme_cb open xywh {120 78 120 25} down_box BORDER_BOX labelfont 1 labelsize 11 code0 {init_scheme();} class Fl_Scheme_Choice } {} Fl_Box {} { label {Options: } xywh {120 115 0 20} labelfont 1 labelsize 11 align 4 } Fl_Check_Button tooltips_button { label {Show Tooltips} callback {Fl_Tooltip::enable(tooltips_button->value()); fluid_prefs.set("show_tooltips", tooltips_button->value());} xywh {120 115 180 20} down_box DOWN_BOX labelsize 11 code0 {int b;} code1 {fluid_prefs.get("show_tooltips", b, 1);} code2 {tooltips_button->value(b);} code3 {Fl_Tooltip::enable(b);} } Fl_Check_Button completion_button { label {Show Completion Dialogs} callback {fluid_prefs.set("show_completion_dialogs", completion_button->value());} xywh {120 135 180 20} down_box DOWN_BOX labelsize 11 code0 {int b;} code1 {fluid_prefs.get("show_completion_dialogs", b, 1);} code2 {completion_button->value(b);} } Fl_Check_Button openlast_button { label {Open Previous File on Startup} callback {fluid_prefs.set("open_previous_file", openlast_button->value());} xywh {120 155 180 20} down_box DOWN_BOX labelsize 11 code0 {int b;} code1 {fluid_prefs.get("open_previous_file", b, 0);} code2 {openlast_button->value(b);} } Fl_Check_Button prevpos_button { label {Remember Window Positions} callback {fluid_prefs.set("prev_window_pos", prevpos_button->value());} xywh {120 175 180 20} down_box DOWN_BOX labelsize 11 code0 {int b;} code1 {fluid_prefs.get("prev_window_pos", b, 1);} code2 {prevpos_button->value(b);} } Fl_Check_Button show_comments_button { label {Show Comments in Browser} callback {show_comments = show_comments_button->value(); fluid_prefs.set("show_comments", show_comments); redraw_browser();} xywh {120 195 180 20} down_box DOWN_BOX labelsize 11 code1 {fluid_prefs.get("show_comments", show_comments, 1);} code2 {show_comments_button->value(show_comments);} } Fl_Spinner recent_spinner { label {\# Recent Files:} callback {fluid_prefs.set("recent_files", recent_spinner->value()); load_history();} xywh {120 225 40 20} labelfont 1 labelsize 11 when 1 maximum 10 textsize 11 code0 {int c;} code1 {fluid_prefs.get("recent_files", c, 5);} code2 {recent_spinner->maximum(10);} code3 {recent_spinner->value(c);} } Fl_Check_Button use_external_editor_button { label {Use for Code Nodes} callback {G_use_external_editor = use_external_editor_button->value(); fluid_prefs.set("use_external_editor", G_use_external_editor); redraw_browser();} xywh {120 275 200 20} down_box DOWN_BOX labelsize 11 code1 {fluid_prefs.get("use_external_editor", G_use_external_editor, 0);} code2 {use_external_editor_button->value(G_use_external_editor);} } Fl_Input editor_command_input { label {External Editor:} callback {strncpy(G_external_editor_command, editor_command_input->value(), sizeof(G_external_editor_command)-1); G_external_editor_command[sizeof(G_external_editor_command)-1] = 0; fluid_prefs.set("external_editor_command", G_external_editor_command); redraw_browser();} selected tooltip {The editor command to open your external text editor. Include any necessary flags to ensure your editor does not background itself. Examples: gvim -f gedit emacs} xywh {120 255 200 20} labelfont 1 labelsize 11 when 1 textfont 4 textsize 11 code1 {fluid_prefs.get("external_editor_command", G_external_editor_command, "", sizeof(G_external_editor_command)-1);} code2 {editor_command_input->value(G_external_editor_command);} } } Fl_Group w_settings_project_tab { label Project callback {propagate_load(o, v);} open image {icons/document_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11 hide code0 {o->image()->scale(36, 24);} } { Fl_Box {} { label {Use "name.ext" to set a file name or just ".ext" to set extension.} xywh {100 78 220 30} labelsize 11 align 148 } Fl_Input header_file_input { label {Header File:} user_data 1 user_data_type {void*} callback {if (v == LOAD) { o->value(g_project.header_file_name.c_str()); } else { if (strcmp(g_project.header_file_name.c_str(), o->value())) { g_project.header_file_name = o->value(); set_modflag(1); } }} tooltip {The name of the generated header file.} xywh {100 112 220 20} box THIN_DOWN_BOX labelfont 1 labelsize 11 when 1 textfont 4 textsize 11 } Fl_Input code_file_input { label {Code File:} user_data 1 user_data_type {void*} callback {if (v == LOAD) { o->value(g_project.code_file_name.c_str()); } else { if (strcmp(g_project.code_file_name.c_str(), o->value())) { g_project.code_file_name = o->value(); set_modflag(1); } }} tooltip {The name of the generated code file.} xywh {100 137 220 20} box THIN_DOWN_BOX labelfont 1 labelsize 11 when 1 textfont 4 textsize 11 } Fl_Box {} { label {Options: } xywh {100 205 0 20} labelfont 1 labelsize 11 align 4 } Fl_Check_Button include_H_from_C_button { label {Include Header from Code} callback {if (v == LOAD) { o->value(g_project.include_H_from_C); } else { if (g_project.include_H_from_C != o->value()) { set_modflag(1); g_project.include_H_from_C = o->value(); } }} tooltip {Include the header file from the code file.} xywh {100 162 220 20} down_box DOWN_BOX labelsize 11 } Fl_Check_Button use_FL_COMMAND_button { label {Menu shortcuts use FL_COMMAND} callback {if (v == LOAD) { o->value(g_project.use_FL_COMMAND); } else { if (g_project.use_FL_COMMAND != o->value()) { set_modflag(1); g_project.use_FL_COMMAND = o->value(); } }} tooltip {Replace FL_CTRL and FL_META with FL_COMMAND when generating menu shortcuts} xywh {100 205 220 20} down_box DOWN_BOX labelsize 11 } Fl_Check_Button utf8_in_src_button { label {allow Unicode UTF-8 in source code} callback {if (v == LOAD) { o->value(g_project.utf8_in_src); } else { if (g_project.utf8_in_src != o->value()) { set_modflag(1); g_project.utf8_in_src = o->value(); } }} tooltip {For older compilers, characters outside of the printable ASCII range are escaped using octal notation `\\0123`. If this option is checked, Fluid will write UTF-8 characters unchanged.} xywh {100 230 220 20} down_box DOWN_BOX labelsize 11 } Fl_Check_Button avoid_early_includes_button { label {avoid early include of Fl.H} callback {if (v == LOAD) { o->value(g_project.avoid_early_includes); } else { if (g_project.avoid_early_includes != o->value()) { set_modflag(1); g_project.avoid_early_includes = o->value(); } }} tooltip {Do not emit \#include until it is needed by another include file.} xywh {100 255 220 20} down_box DOWN_BOX labelsize 11 } } Fl_Group w_settings_layout_tab { label Layout callback {propagate_load(o, v);} image {icons/layout_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11 hide code0 {o->image()->scale(36, 24);} } { Fl_Box {} { label {Layout:} xywh {25 78 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 {85 78 187 24} down_box BORDER_BOX } { MenuItem {} { label FLTK xywh {0 0 31 20} } MenuItem {} { label Grid xywh {0 0 31 20} } } Fl_Button {} { 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 {272 78 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 {296 78 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} 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 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 } 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 } 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 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} } 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} divider code0 {\#include } } 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} } } Fl_Box {} { label {Preset:} xywh {25 107 60 20} labelfont 1 labelsize 11 align 24 } Fl_Group {} { callback propagate_load open xywh {85 107 235 20} labelsize 11 } { Fl_Button {preset_choice[0]} { label Application user_data 0 user_data_type long callback edit_layout_preset_cb xywh {85 107 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 {163 107 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 {242 107 78 20} type Radio selection_color 45 labelsize 11 } } Fl_Box {} { label {---- Window ----} xywh {85 132 235 20} labelfont 1 labelsize 11 align 20 } Fl_Box {} { label {Margin:} xywh {25 167 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 {85 167 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 {145 167 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 {205 167 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 {265 167 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11 } Fl_Box {} { label {Grid:} xywh {32 201 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 {85 201 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 {145 201 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11 } Fl_Box {} { label {---- Group ----} xywh {85 226 235 20} labelfont 1 labelsize 11 align 20 } Fl_Box {} { label {Margin:} xywh {25 261 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 {85 261 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 {145 261 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 {205 261 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 {265 261 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11 } Fl_Box {} { label {Grid:} xywh {32 295 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 {85 295 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 {145 295 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11 } Fl_Box {} { label {---- Tabs ----} xywh {85 320 235 20} labelfont 1 labelsize 11 align 20 } Fl_Box {} { label {Margin:} xywh {25 355 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 {85 355 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 {145 355 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11 } Fl_Box {} { label {---- Widget ----} xywh {85 380 235 20} labelfont 1 labelsize 11 align 20 } Fl_Box {} { label {Horizontal:} xywh {25 415 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 {85 414 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 {145 414 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 {205 414 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11 } Fl_Box {} { label {Vertical:} xywh {32 440 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 {85 440 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 {145 440 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 {205 440 55 20} labelsize 11 align 5 maximum 32767 step 1 textsize 11 } Fl_Group {} { label {Label Font:} callback propagate_load open xywh {85 465 200 20} labelsize 11 align 4 } { 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 {85 465 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 {236 465 49 20} labelsize 11 maximum 100 step 1 value 14 textsize 11 } } Fl_Choice {} { callback {if (v == LOAD) { o->value(layout->textfont); } else { layout->textfont = (int)o->value(); }} open tooltip {The value text style.} xywh {85 490 152 20} box DOWN_BOX down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11 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 {236 490 49 20} labelsize 11 maximum 100 step 1 value 14 textsize 11 } } Fl_Group w_settings_shell_tab { label Shell callback {propagate_load(o, v);} image {icons/shell_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11 hide code0 {o->image()->scale(36, 24);} } { Fl_Input {} { label {Command:} callback {if (v == LOAD) { o->value(g_shell_command.c_str()); } else { g_shell_command = o->value(); }} tooltip {external shell command} xywh {100 78 220 20} labelfont 1 labelsize 11 textfont 4 textsize 11 } Fl_Check_Button {} { label {save .fl project file} callback {if (v == LOAD) { o->value(g_shell_save_fl); } else { g_shell_save_fl = o->value(); }} tooltip {save the project to the .fl file before running the command} xywh {100 98 220 20} down_box DOWN_BOX labelsize 11 } Fl_Check_Button {} { label {save source code} callback {if (v == LOAD) { o->value(g_shell_save_code); } else { g_shell_save_code = o->value(); }} tooltip {generate the source code and header file before running the command} xywh {100 118 220 19} down_box DOWN_BOX labelsize 11 } Fl_Check_Button {} { label {save i18n strings} callback {if (v == LOAD) { o->value(g_shell_save_strings); } else { g_shell_save_strings = o->value(); }} tooltip {save the internationalisation string before running the command} xywh {100 137 220 20} down_box DOWN_BOX labelsize 11 } Fl_Check_Button shell_use_fl_button { label {save settings in .fl project files} callback {if (v == LOAD) { o->value(g_shell_use_fl_settings); } else { g_shell_use_fl_settings = o->value(); fluid_prefs.set("shell_use_fl", g_shell_use_fl_settings); if (g_shell_use_fl_settings) { shell_settings_read(); } else { shell_prefs_get(); } w_settings_shell_tab->do_callback(w_settings_shell_tab, LOAD); }} tooltip {check to read and write shell command from and to .fl files} xywh {100 194 220 19} down_box DOWN_BOX labelsize 11 deactivate } Fl_Button {} { label {save as default} callback {if (v != LOAD) shell_prefs_set();} tooltip {update the Fluid app settings for external shell commands to the current settings} xywh {100 218 115 20} labelsize 11 } Fl_Return_Button {} { label Run callback {if (v != LOAD) do_shell_command(NULL, NULL);} tooltip {save selected files and run the command} xywh {100 162 100 20} labelsize 11 } } Fl_Group w_settings_i18n_tab { label Locale callback {propagate_load(o, v);} open image {icons/language_64.png} compress_image 1 xywh {10 60 320 480} labelsize 11 hide code0 {o->image()->scale(36, 24);} } { Fl_Choice i18n_type_chooser { label {i18n Library:} callback i18n_type_cb open tooltip {Type of internationalization to use.} xywh {100 78 160 20} box THIN_UP_BOX down_box BORDER_BOX labelsize 11 textsize 11 } { MenuItem {} { label None xywh {0 -11 100 20} labelsize 11 } MenuItem {} { label {GNU gettext} xywh {0 -11 100 20} labelsize 11 } MenuItem {} { label {POSIX catgets} xywh {0 -11 100 20} labelsize 11 } } Fl_Input i18n_include_input { label {\#include:} callback {if (v == LOAD) { o->value(g_project.i18n_include.c_str()); } else { undo_checkpoint(); g_project.i18n_include = o->value(); set_modflag(1); }} tooltip {The include file for internationalization.} xywh {100 103 220 20} box THIN_DOWN_BOX labelsize 11 textfont 4 textsize 11 } Fl_Input i18n_conditional_input { label {Conditional:} callback {if (v == LOAD) { o->value(g_project.i18n_conditional.c_str()); } else { undo_checkpoint(); g_project.i18n_conditional = o->value(); set_modflag(1); }} tooltip {only include the header file if this preprocessor macro is defined, for example FLTK_GETTEXT_FOUND} xywh {100 128 220 20} box THIN_DOWN_BOX labelsize 11 textfont 4 textsize 11 } Fl_Input i18n_file_input { label {File:} callback {if (v == LOAD) { o->value(g_project.i18n_file.c_str()); } else { undo_checkpoint(); g_project.i18n_file = o->value(); set_modflag(1); }} tooltip {The name of the message catalog.} xywh {100 153 220 20} box THIN_DOWN_BOX labelsize 11 textfont 4 textsize 11 } Fl_Input i18n_set_input { label {Set:} callback {if (v == LOAD) { o->value(g_project.i18n_set.c_str()); } else { undo_checkpoint(); g_project.i18n_set = o->value(); set_modflag(1); }} tooltip {The message set number.} xywh {100 178 220 20} type Int box THIN_DOWN_BOX labelsize 11 textfont 4 textsize 11 } Fl_Input i18n_function_input { label {Function:} callback {if (v == LOAD) { o->value(g_project.i18n_function.c_str()); } else { undo_checkpoint(); g_project.i18n_function = o->value(); set_modflag(1); }} tooltip {The function to call to translate labels and tooltips, usually "gettext" or "_"} xywh {100 153 220 20} box THIN_DOWN_BOX labelsize 11 textfont 4 textsize 11 } Fl_Input i18n_static_function_input { label {Static Function:} callback {if (v == LOAD) { o->value(g_project.i18n_static_function.c_str()); } else { undo_checkpoint(); g_project.i18n_static_function = o->value(); set_modflag(1); }} tooltip {function to call to translate static text, The function to call to internationalize labels and tooltips, usually "gettext_noop" or "N_"} xywh {100 178 220 20} box THIN_DOWN_BOX labelsize 11 textfont 4 textsize 11 } } } Fl_Button {} { label Close callback {settings_window->hide();} tooltip {Close this dialog.} xywh {230 550 100 20} labelsize 11 } } code {w_settings_tabs->do_callback(w_settings_tabs, LOAD);} {} } Function {make_shell_window()} {open } { Fl_Window shell_run_window { label {Shell Command Output} open xywh {455 590 555 430} type Double align 80 resizable visible } { Fl_Simple_Terminal shell_run_terminal { xywh {10 10 535 375} resizable } Fl_Group {} {open xywh {10 395 535 25} } { Fl_Box {} { xywh {10 395 435 25} hide resizable } Fl_Return_Button shell_run_button { label Close callback {Fl_Preferences pos(fluid_prefs, "shell_run_Window_pos"); pos.set("x", shell_run_window->x()); pos.set("y", shell_run_window->y()); pos.set("w", shell_run_window->w()); pos.set("h", shell_run_window->h()); shell_run_window->hide();} xywh {445 395 100 25} } } } } decl {Fl_Menu_Item *w_layout_menu_storage[4];} {private global }