FLUID: Restructures user documentation.

This commit is contained in:
Matthias Melcher 2023-11-02 22:25:49 +01:00
parent 7c6266f67e
commit c22a7bb6a7
23 changed files with 550 additions and 341 deletions

View File

@ -100,8 +100,21 @@ source_group("Header Files" FILES ${HEADERFILES})
set ( DOC_FILES
Doxyfile
documentation/src/index.dox
documentation/src/code.dox
documentation/src/app_settings.dox
documentation/src/page_introduction.dox
documentation/src/page_getting_started.dox
documentation/src/page_ui_overview.dox
documentation/src/page_basics.dox
documentation/src/page_widget_types.dox
documentation/src/page_layout.dox
documentation/src/page_code_integration.dox
documentation/src/page_advanced.dox
documentation/src/page_shortcuts.dox
documentation/src/page_faqs.dox
documentation/src/page_glossary.dox
documentation/src/page_appendices.dox
documentation/src/page_index.dox
documentation/src/page_legal.dox
documentation/src/page_conclusion.dox
)
source_group("Documentation" FILES ${DOC_FILES})

View File

@ -412,12 +412,12 @@ void Fl_Grid_Type::child_resized(Fl_Widget_Type *child_type) {
Fl_Grid *grid = (Fl_Grid*)o;
Fl_Widget *child = child_type->o;
Fl_Grid::Cell *cell = grid->cell(child);
if (cell && ((cell->align()&FL_GRID_HORIZONTAL)==0)) {
if (cell && ((cell->align()&FL_GRID_VERTICAL)==0)) {
int min_w = 0, min_h = 0;
cell->minimum_size(&min_w, &min_h);
cell->minimum_size(min_w, child->h());
}
if (cell && ((cell->align()&FL_GRID_VERTICAL)==0)) {
if (cell && ((cell->align()&FL_GRID_HORIZONTAL)==0)) {
int min_w = 0, min_h = 0;
cell->minimum_size(&min_w, &min_h);
cell->minimum_size(child->w(), min_h);

View File

@ -377,7 +377,8 @@ See Fl_Grid for an example.
Type Fl_Type <word>
"uid" <4-digit-hex> : since Oct 2023, optional, a unique id for this node within the project file
"uid" <4-digit-hex> : since Oct 2023, optional, a unique id for this node
within the project file
“label” <word> : text
“user_data” <word> : a value or an expression
“user_data_type” <word> : usually “void*” or “long”

View File

@ -1,62 +0,0 @@
/**
\page appSettings Fluid Application Settings
\tableofcontents
\section options Options
## Select scheme ##
## Show tooltips ##
## Show completions dialogs ##
## Open previous file on startup ##
## Remember window positions ##
## Show comments in browser ##
\section external_editor External Editor
When you configure the External Editor text field with a shell command and
select the "Use for Code Nodes" option, FLUID will launch an external editor
for editing the C++ code within a Code Node. After making changes and saving
the code in the external editor, it will automatically be transferred back
into the Code Node. The shell command is constructed by combining the text
field's content with the path and name of a temporary file containing the
code snippet. The file name ends in `.cxx`.
\section overlays Overlay
## Show positioning guides ##
When enabled, FLUID will use the existing Layout settings to propose widget
positions and dimensions that align with other widgets within the project.
It displays red indicator guides on the scene to illustrate the widget's
relationship with its neighboring elements. If you drag the widgets with the
mouse, they will automatically align with these preferred positions.
## Show restricted areas ##
When selected, FLUID will display a hash pattern when widgets overlap with
other widgets within the same group or extend beyond the boundaries of their
parent group. Widgets that are invisible will not trigger this effect.
## Ghosting low contrast groups ##
Occasionally, newly created groups can be inconspicuous during the editing
process when their background matches that of the parent and no visible
box is drawn. However, if you enable the "Show Low Contrast Groups Ghosted"
option, groups that lack a box type or have a flat box type with the same
color as the parent will be displayed with a faint outline
in the editing window.
During live resizing and after project compilation, all groups will be
rendered as originally designed, without the ghosted outline.
*/

View File

@ -1,206 +0,0 @@
/**
\page codeNodes Code Nodes
\tableofcontents
\section function Functions and Methods
![](flFunction.png) Functions
Fluid can generate C functions, C++ functions, and methods in classes.
Functions can contain widgets to build windows and dialogs. *Code* nodes can
be used to add more source code to a function.
## Parents ##
To generate a function, the function node must be created at the top level or
inside a declaration block. If added inside a class node, this node generates
a method inside that class.
## Children ##
Function nodes can contain code nodes and widget trees. The topmost node of a
widget tree must be a window.
If the function node has no children, only a forward declaration will be
created in the header, but no source code will be generated.
\image html flFunctionDialog.png "Function/Method Properties"
\image latex flFunctionDialog.png "Function/Method Properties"
## Declaring a Function ##
A function node at the top level or inside a declaration block generates a C
or C++ function.
The *Name* field contains the function name and all arguments.
If the *Name* field is left empty, Fluid will generate a typical 'main()' function.
```
// .cxx
int main(int argc, char **argv) {
// code generated by children
w->show(argc, argv); // <-- code generated if function has a child widget
Fl::run();
}
```
If a function node has a name but no children, a forward declaration is
generated in the header, but the implementation in the source file is omited.
This is used to reference functions in other modules.
```
// .h
void make_window();
```
If the function contains one or more Code nodes, an implementation will also be
generated. The default return type is `void`. Text in the *Return Type* field
overrides the default type.
```
// .cxx
void make_window() {
// code generated by children
}
```
If the function contains a widget, a pointer to the first widget
will be created. The default return type will match the type of the
first widget, and a pointer to the widget will be returned.
```
// .h
Fl_Window* make_window();
```
```
// .cxx
Fl_Window* make_window() {
Fl_Window* w;
// code generated by children:
// w = new Fl_Window(...)
return w;
}
```
### Options for Functions ###
Choosing *static* in the pulldown menu will declare the function `static` in the
source file. No prototype will be generated in the header.
```
// .cxx
static Fl_Window* make_window() { ...
```
If the *C* option is checked, the function will be declared as a plain C
function in the header file.
The options *local* and *C* together are not supported.
```
// .h
extern "C" { void my_plain_c_function(); }
```
## Declaring a Method ##
A function node inside a class node generates a C++ method. If a method node has
no children, the declaration is generated in the header, but no implementation
in the source file.
```
// .h
class UserInterface {
public:
void make_window();
};
```
If the method contains one or more Code nodes, an implementation will also be
generated.
```
// .cxx
void UserInterface::make_window() {
printf("Hello, World!\n");
}
```
If the method contains at least on widget, a pointer to the topmost widget
will be returned and the return type will be generated accordingly.
```
// .h
class UserInterface {
public:
Fl_Double_Window* make_window();
};
```
```
// .cxx
Fl_Double_Window* UserInterface::make_window() {
Fl_Double_Window* w;
// code generated by children
return w;
}
```
### Options for Methods ###
Class access can be defined with the pulldown menu. It provides a choice of
`private`, `protected`, and `public`.
Fluid recognizes the keyword `static` or `virtual` at the beginning of the
*return type* and will generate the declaration including the keyword, but will
omit it in the implementation. The return type defaults still apply if there
is no text after the keyword.
### Further Options ###
Users can define a comment text in the *comment* field. The first line of the
comment will be shown in the widget browser. The comment text will be generated
in the source file before the function.
```
// .cxx
//
// My multilen comment will be here... .
// Fluid may actually use C style comment markers.
//
Fl_Window* make_window() {
```
Fluid recognizes default values in the argument list and geneartes them in the
declaration, but omits them in the implementation.
A short function body can be appended in the *Name* field. With no child, this
creates an inlined function in the header file.
<!-- ----------------------------------------------------------------------- -->
\section code C Source Code
![](flCode.png) Code
...write me.
### Parents ###
...write me.
### Children ###
...write me.
\section codeblock Code Block
\section declaration Declaration
\section declarationblock Declaration Block
\section class Classes
\section widgetclass Widget Class
\section comment Comments
\section inlineddata Inlined Data
*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -2,98 +2,103 @@
/**
\mainpage Fluid User Manual
\mainpage FLUID User Manual
\subpage codeNodes
<TABLE CELLPADDING="8" CELLSPACING="0" SUMMARY="TITLE BAR" WIDTH="100%" BORDER="0">
<TR>
<TD><CENTER>
\image html fluid-128.png
\image latex fluid-128.png "" width=3cm
<B>FLUID 1.4.0 User Manual</B>
- \ref function
- \ref code
- \ref codeblock
- \ref declaration
- \ref declarationblock
- \ref class
- \ref widgetclass
- \ref comment
- \ref inlineddata
By F.&nbsp;Costantini, D.&nbsp;Gibson, M.&nbsp;Melcher,
A.&nbsp;Schlosser, B.&nbsp;Spitzak and M.&nbsp;Sweet.
\subpage appSettings
Copyright © 1998 - 2023 by Bill Spitzak and others.
</CENTER></TD>
</TR>
</TABLE>
<TABLE CELLPADDING="8" CELLSPACING="0" SUMMARY="TITLE BAR" WIDTH="100%" BORDER="0">
<TR>
<TD style="text-align: center;">
This software and manual are provided under the terms of the GNU
Library General Public License. Permission is granted to reproduce
this manual or any portion for any purpose, provided this copyright
and permission notice are preserved.
</TD>
</TR>
</TABLE>
<TABLE CELLPADDING="8" CELLSPACING="0" SUMMARY="Table of Contents" WIDTH="100%" BORDER="0">
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
- \ref schemes
- \ref options
- \ref overlays
\subpage page_introduction
*/
_not yet_
/*
\subpage page_getting_started
Creating a user manual for your interactive user interface editor, "FLUID," involves several key steps to ensure it's informative and user-friendly. Here's a structured approach to help you get started:
_not yet_
1. **Title and Cover Page:**
- Title: Give your manual a clear and concise title, such as "FLUID User Manual."
- Cover Page: Include the title, a brief description, your company or project logo, and any relevant contact information.
\subpage page_ui_overview
2. **Table of Contents:**
- Create a table of contents that lists all the major sections and subsections of your user manual. Ensure it's hyperlinked for easy navigation in digital formats.
_not yet_
3. **Introduction:**
- Provide an introduction that explains the purpose of the user manual and any prerequisites or system requirements.
\subpage page_basics
4. **Getting Started:**
- Walk users through the initial setup and installation process.
- Explain how to launch the FLUID editor.
_not yet_
5. **User Interface Overview:**
- Describe the main components of the FLUID user interface, including menus, toolbars, panels, and any unique features.
\subpage page_widget_types
6. **Basic Operations:**
- Provide step-by-step instructions for common tasks, such as creating a new project, opening existing projects, and saving work.
_not yet_
7. **Widgets and Elements:**
- Explain how to add, modify, and delete widgets and UI elements.
- Detail the available widget libraries and their usage.
\subpage page_layout
8. **Layout and Design:**
- Discuss how to arrange and design UI elements in the editor.
- Cover alignment, grouping, and layout management.
_not yet_
9. **Code Integration:**
- Explain how to integrate code into FLUID, including code nodes and event handling.
\subpage page_code_integration
10. **Advanced Features:**
- Describe any advanced or less commonly used features of FLUID, such as custom scripting, animations, or specialized widgets.
_not yet_
11. **Troubleshooting:**
- Provide solutions to common issues and error messages users may encounter.
\subpage page_advanced
12. **Tips and Best Practices:**
- Offer tips and best practices to help users make the most of FLUID.
_not yet_
13. **Keyboard Shortcuts:**
- List keyboard shortcuts for common actions to expedite user workflows.
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
14. **FAQs:**
- Include a section with frequently asked questions and their answers.
\subpage page_shortcuts
15. **Glossary:**
- Define any technical terms or jargon used in FLUID.
_not yet_
16. **Appendices:**
- If necessary, add appendices with supplementary information, like reference tables or additional resources.
\subpage page_faqs
17. **Index:**
- Include an index to help users quickly find specific topics or terms within the manual.
_not yet_
18. **Legal and Copyright Information:**
- Include legal disclaimers, copyright information, and any terms of use or licensing agreements.
\subpage page_glossary
19. **Feedback and Contact Information:**
- Encourage users to provide feedback and include contact information for support or inquiries.
_not yet_
20. **Revision History:**
- If you plan to update the manual over time, maintain a section for revision history to track changes and updates.
\subpage page_appendices
21. **Conclusion:**
- Wrap up the manual with a thank-you message, encouraging users to explore FLUID further.
- \ref appendix_code_nodes
- \ref appendix_app_settings
Ensure that your user manual is well-organized, easy to read, and uses clear language. Consider including screenshots, diagrams, and examples to illustrate key points. Test the manual with actual users to gather feedback and make improvements as needed.
*/
\subpage page_index
_not yet_
\subpage page_legal
_not yet_
\subpage page_conclusion
_not yet_
</TD>
</TR>
</TABLE>
*/

View File

@ -0,0 +1,9 @@
/**
\page page_advanced Advanced Features
\tableofcontents
- Describe any advanced or less commonly used features of FLUID, such as custom scripting, animations, or specialized widgets.
*/

View File

@ -0,0 +1,277 @@
/**
\page page_appendices Appendices
\tableofcontents
\section appendix_code_nodes Functional Node Types
## Functions and Methods ##
![](flFunction.png) Functions
Fluid can generate C functions, C++ functions, and methods in classes.
Functions can contain widgets to build windows and dialogs. *Code* nodes can
be used to add more source code to a function.
### Parents ###
To generate a function, the function node must be created at the top level or
inside a declaration block. If added inside a class node, this node generates
a method inside that class.
### Children ###
Function nodes can contain code nodes and widget trees. The topmost node of a
widget tree must be a window.
If the function node has no children, only a forward declaration will be
created in the header, but no source code will be generated.
\image html flFunctionDialog.png "Function/Method Properties"
\image latex flFunctionDialog.png "Function/Method Properties"
### Declaring a Function ###
A function node at the top level or inside a declaration block generates a C
or C++ function.
The *Name* field contains the function name and all arguments.
If the *Name* field is left empty, Fluid will generate a typical 'main()' function.
```
// .cxx
int main(int argc, char **argv) {
// code generated by children
w->show(argc, argv); // <-- code generated if function has a child widget
Fl::run();
}
```
If a function node has a name but no children, a forward declaration is
generated in the header, but the implementation in the source file is omited.
This is used to reference functions in other modules.
```
// .h
void make_window();
```
If the function contains one or more Code nodes, an implementation will also be
generated. The default return type is `void`. Text in the *Return Type* field
overrides the default type.
```
// .cxx
void make_window() {
// code generated by children
}
```
If the function contains a widget, a pointer to the first widget
will be created. The default return type will match the type of the
first widget, and a pointer to the widget will be returned.
```
// .h
Fl_Window* make_window();
```
```
// .cxx
Fl_Window* make_window() {
Fl_Window* w;
// code generated by children:
// w = new Fl_Window(...)
return w;
}
```
#### Options for Functions ####
Choosing *static* in the pulldown menu will declare the function `static` in the
source file. No prototype will be generated in the header.
```
// .cxx
static Fl_Window* make_window() { ...
```
If the *C* option is checked, the function will be declared as a plain C
function in the header file.
The options *local* and *C* together are not supported.
```
// .h
extern "C" { void my_plain_c_function(); }
```
### Declaring a Method ###
A function node inside a class node generates a C++ method. If a method node has
no children, the declaration is generated in the header, but no implementation
in the source file.
```
// .h
class UserInterface {
public:
void make_window();
};
```
If the method contains one or more Code nodes, an implementation will also be
generated.
```
// .cxx
void UserInterface::make_window() {
printf("Hello, World!\n");
}
```
If the method contains at least on widget, a pointer to the topmost widget
will be returned and the return type will be generated accordingly.
```
// .h
class UserInterface {
public:
Fl_Double_Window* make_window();
};
```
```
// .cxx
Fl_Double_Window* UserInterface::make_window() {
Fl_Double_Window* w;
// code generated by children
return w;
}
```
#### Options for Methods ####
Class access can be defined with the pulldown menu. It provides a choice of
`private`, `protected`, and `public`.
Fluid recognizes the keyword `static` or `virtual` at the beginning of the
*return type* and will generate the declaration including the keyword, but will
omit it in the implementation. The return type defaults still apply if there
is no text after the keyword.
#### Further Options ####
Users can define a comment text in the *comment* field. The first line of the
comment will be shown in the widget browser. The comment text will be generated
in the source file before the function.
```
// .cxx
//
// My multilen comment will be here... .
// Fluid may actually use C style comment markers.
//
Fl_Window* make_window() {
```
Fluid recognizes default values in the argument list and geneartes them in the
declaration, but omits them in the implementation.
A short function body can be appended in the *Name* field. With no child, this
creates an inlined function in the header file.
<!-- ---------------------------------------------------------------------- -->
## C Source Code ##
![](flCode.png) Code
...write me.
### Parents ###
...write me.
### Children ###
...write me.
## Code Block ##
...write me.
## Declaration ##
...write me.
## Declaration Block ##
...write me.
## Classes ##
...write me.
## Widget Class ##
...write me.
## Comments ##
...write me.
## Inlined Data ##
<!-- ---------------------------------------------------------------------- -->
\section appendix_app_settings Fluid Application Settings
## Options ##
__Select scheme__ : select a scheme for Fluid. Changes in the scheme will be
visible instantly in all windows.
__Show tooltips__ : if checked, show tooltips for most UI elements in Fluid dialogs.
__Show completions dialogs__ : if checked, Fluid will pop up a dialog box
after generating code, header, and strings files.
__Open previous file on startup__ : when launching Fluid in its interactive
mode, it will load the file that was last open when Fluid was closed.
__Remember window positions__ : reopen windows and dialogs where they were
left when Fluid was last closed.
__Show comments in browser__ : if a comment has been specified for a type, show
the initial line of the comment within the widget tree browser.
## External Editor ##
When you configure the External Editor text field with a shell command and
select the "Use for Code Nodes" option, FLUID will launch an external editor
for editing the C++ code within a Code Node. After making changes and saving
the code in the external editor, it will automatically be transferred back
into the Code Node. The shell command is constructed by combining the text
field's content with the path and name of a temporary file containing the
code snippet. The file name ends in `.cxx`.
## Overlays ##
__Show positioning guides__ :
When enabled, FLUID will use the existing Layout settings to propose widget
positions and dimensions that align with other widgets within the project.
It displays red indicator guides on the scene to illustrate the widget's
relationship with its neighboring elements. If you drag the widgets with the
mouse, they will automatically align with these preferred positions.
__Show restricted areas__ :
When selected, FLUID will display a hash pattern when widgets overlap with
other widgets within the same group or extend beyond the boundaries of their
parent group. Widgets that are invisible will not trigger this effect.
__Ghosting low contrast groups__ :
Occasionally, newly created groups can be inconspicuous during the editing
process when their background matches that of the parent and no visible
box is drawn. However, if you enable the "Show Low Contrast Groups Ghosted"
option, groups that lack a box type or have a flat box type with the same
color as the parent will be displayed with a faint outline
in the editing window.
During live resizing and after project compilation, all groups will be
rendered as originally designed, without the ghosted outline.
*/

View File

@ -0,0 +1,8 @@
/**
\page page_basics Basic Operations
\tableofcontents
- Provide step-by-step instructions for common tasks, such as creating a new project, opening existing projects, and saving work.
*/

View File

@ -0,0 +1,9 @@
/**
\page page_code_integration Code Integration
\tableofcontents
- Explain how to integrate code into FLUID, including code nodes and event handling.
*/

View File

@ -0,0 +1,15 @@
/**
\page page_conclusion Conclusion
\tableofcontents
- Wrap up the manual with a thank-you message, encouraging users to explore FLUID further.
## Feedback and Contact Information ##
- Encourage users to provide feedback and include contact information for support or inquiries.
## Revision History ##
- If you plan to update the manual over time, maintain a section for revision history to track changes and updates.
*/

View File

@ -0,0 +1,9 @@
/**
\page page_faqs FAQs
\tableofcontents
- Include a section with frequently asked questions and their answers.
*/

View File

@ -0,0 +1,10 @@
/**
\page page_getting_started Getting Started
\tableofcontents
- Walk users through the initial setup and installation process.
- Explain how to launch the FLUID editor.
*/

View File

@ -0,0 +1,9 @@
/**
\page page_glossary Glossary
\tableofcontents
- Define any technical terms or jargon used in FLUID.
*/

View File

@ -0,0 +1,7 @@
/**
\page page_index Index
- Include an index to help users quickly find specific topics or terms within the manual.
*/

View File

@ -0,0 +1,9 @@
/**
\page page_introduction Introduction
\tableofcontents
- Provide an introduction that explains the purpose of the user manual and any prerequisites or system requirements.
*/

View File

@ -0,0 +1,10 @@
/**
\page page_layout Layout and Design
\tableofcontents
- Discuss how to arrange and design UI elements in the editor.
- Cover alignment, grouping, and layout management.
*/

View File

@ -0,0 +1,9 @@
/**
\page page_legal Legal and Copyright Information
\tableofcontents
- Include legal disclaimers, copyright information, and any terms of use or licensing agreements.
*/

View File

@ -0,0 +1,59 @@
/**
\page page_shortcuts Keyboard Shortcuts
On Apple computers, use the Apple Command key instead of Ctrl.
| | Shortcut | Location | Function |
|:-:|----------|----------|----------|
|A| Ctrl-A | Edit > Select All | extend selection to all siblings and descendants |
|^| Shift-Ctrl-A | Edit > Select None | deselect all types |
|B| Alt-B | Edit > Widget Bin | show or hide the widget bin |
|C| Ctrl-C | Edit > Copy | copy selected types and all descendants |
|^| Shift-Ctrl-C | File > Code | generate the code and header files |
|G| Ctrl-G | Layout > Grid and Size... | show grid and size setting dialog |
|^| Shift-Ctrl-G | Edit > Guides | show or hide alignment guides |
|^| Alt-G | Shell > Sample Script | custom shortcut for a default sample script |
|I| Ctrl-I | File > Insert... | merge a project file into the current project |
|N| Ctrl-N | File > New | start a new project |
|^| Shift-Ctrl-N | File > New From Template.. | open a dialog with a list of project templates |
|O| Ctrl-O | File > Open... | open a project file |
|^| Shift-Ctrl-O | Edit > Overlays | show or hide overlay in interactive windows |
|P| Ctrl-P | File > Print... | print a snapshot of every project window |
|^| Alt-P | Edit > Settings... | show settings dialog |
|Q| Ctrl-Q | File > Quit | Fluid beenden |
|R| Shift-Ctrl-R | Edit > Restricted | show or hide restricted or conflicting areas |
|S| Ctrl-S | File > Save | write the current project to a file |
|^| Shift-Ctrl-S | File > Save As... | write the current project using a new filename |
|^| Shift-Alt-S | Edit > Source Code | show or hide source code live preview |
|U| Ctrl-U | Edit > Duplicate | duplicate selected types |
|V| Ctrl-V | Edit > Paste | paste copied type into selected type |
|W| Shift-Ctrl-W | File > Write Strings | generate the strings for internationalisation |
|X| Ctrl-X | Edit > Cut | cut selected types |
|^| Alt-X | Shell > Customize... | open shell settings dialog |
|Z| Ctrl-Z | Edit > Undo | undo last operation |
|^| Shift-Ctrl-Z | Edit > Redo | undo the previous undo |
| | | | |
|#| Ctrl-1..9 | File > (history) | load project from previous file history |
| | Del | Edit > Delete | delete selected types |
| | | | |
|fn| F1 | Edit > Properties | open the properties dialog for selected types |
|^| F2 | Edit > Earlier | move selected type up in the sibling list |
|^| F3 | Edit > Later | move selected type down in the sibling list |
|^| F7 | Edit > Group | enclose selected type in a new group |
|^| F8 | Edit > Ungroup | move all selected types out of a group and delete the group |
| Action | Function in interactive Window |
|--------|--------------------------------|
| LMB | select one widget |
| Shift-LMB | extend widget selection |
| Shift-LMB-Drag | window type only: resize proportional |
| Tab | select next |
| Shift-Tab | select previous |
| Arrow Key | move widget by one unit |
| Shift-Arrow | resize by one unit |
| Ctrl-Arrow | move by grid units |
| Shift-Ctrl-Arrow | resize by grid units |
| Alt-Arrow | rearrange widget inside a layout group like Fl_Grid or Fl_Flex |
*/

View File

@ -0,0 +1,8 @@
/**
\page page_ui_overview User Interface Overview
\tableofcontents
- Describe the main components of the FLUID user interface, including menus, toolbars, panels, and any unique features.
*/

View File

@ -0,0 +1,10 @@
/**
\page page_widget_types Widgets and Elements
\tableofcontents
- Explain how to add, modify, and delete widgets and UI elements.
- Detail the available widget libraries and their usage.
*/

View File

@ -1671,9 +1671,9 @@ Fl_Menu_Item Main_Menu[] = {
{"New &From Template...", FL_COMMAND+'N', menu_file_new_from_template_cb, 0},
{"Save As &Template...", 0, save_template_cb, 0, FL_MENU_DIVIDER},
{"&Print...", FL_COMMAND+'p', print_menu_cb},
{"Write &Code...", FL_COMMAND+FL_SHIFT+'c', write_cb, 0},
{"Write &Code", FL_COMMAND+FL_SHIFT+'c', write_cb, 0},
// Matt: disabled {"MergeBack Code", FL_COMMAND+FL_SHIFT+'m', mergeback_cb, 0},
{"&Write Strings...", FL_COMMAND+FL_SHIFT+'w', write_strings_cb, 0, FL_MENU_DIVIDER},
{"&Write Strings", FL_COMMAND+FL_SHIFT+'w', write_strings_cb, 0, FL_MENU_DIVIDER},
{relative_history[0], FL_COMMAND+'1', menu_file_open_history_cb, absolute_history[0]},
{relative_history[1], FL_COMMAND+'2', menu_file_open_history_cb, absolute_history[1]},
{relative_history[2], FL_COMMAND+'3', menu_file_open_history_cb, absolute_history[2]},