summaryrefslogtreecommitdiff
path: root/fluid/documentation/src/page_introduction.dox
blob: 890dc3718c76a8e33be6db77ecc9e1e4f53b1097 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/**

 \page page_introduction Introduction

 \tableofcontents

<!-- ---------------------------------------------------------------------- -->

 \image latex fluid-128.png "FLUID" width=3cm

 FLUID, short for Fast Light User Interface Designer, is a graphical editor
 capable of generating C++ source code and header files ready for compilation.
 These files ultimately create an FLTK based graphical user interface
 for an application.

 The FLTK programming manual is available at https://www.fltk.org/documentation.php .

 This manual provides instructions on launching FLUID as a command line tool
 and integrating `.fl` project files into the application build process.
 FLTK utilizes _CMake_, but other build systems and IDEs capable of running
 external tools can also build applications based on FLUID.

 The majority of the manual focuses on using FLUID as an interactive GUI
 design tool. It covers an overview of windows, menu items, and dialog boxes,
 detailing how to create visually appealing and consistent user experiences
 through drag and drop functionality, a "what you see is what you get" editor,
 and alignment tools. The \ref page_setting_dialog will detail the process of initiating
 a new project, creating an alignment template, and incorporating
 internationalization.

 Several tutorials will explain how to generate small apps in FLUID alone,
 and how to create more complex user interfaces, followed by some advanced
 subjects like creating integrated reusable widget classes.

 The appendices contain additional technical information for reference.

<!-- ---------------------------------------------------------------------- -->

 \section introduction_workflow Workflow

 FLUID stores user interface designs within `.fl` project files. These files
 are transformed into a binary application through a multi-step process.
 Initially, FLUID converts `.fl` files into C++ source and header files.
 Subsequently, these files are compiled into object files, which are then
 linked with other object files to form an executable binary.
 FLUID-generated header files give access to UI elements from other C++ modules
 within the project. FLUID can also generate forward declarations to
 variables and callback functions that are defined and implemented in other
 C++ modules.

 \image html fluid_flow_chart_800.png "FLUID Workflow"
 \image latex fluid_flow_chart.png "FLUID Workflow"

 Small applications can be fully designed and developed with FLUID alone.
 Users have the option to include shell scripts in FLUID projects, enabling
 them to directly call compilers and linkers to produce the binaries.

 For medium-sized projects, a build system such as _CMake_ or an IDE
 with integrated build setup is recommended. FLUID in interactive mode
 can pre-generate C++ code files for direct compilation by the IDE.

 In larger projects, FLUID projects frequently reference external resources
 such as graphics, binary data, and internationalized text.
 In such scenarios, it is very useful to distribute the `.fl` project files
 instead of prebuilt source files. FLUID in command-line mode can then be
 called as an external tool, dynamically generating C++ source code from all
 external resources at build time.

 */