Move Doxygen diagrams to the ./doc folder
[geeqie.git] / doc / diagrams.c
1 /*
2  * Copyright (C) 2006 John Ellis
3  * Copyright (C) 2008 - 2022 The Geeqie Team
4  *
5  * Author: Colin Clark
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program; if not, write to the Free Software Foundation, Inc.,
19  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20  */
21
22 /**
23  * @file
24  * @brief Diagrams to be included in the Doxygen output
25  * 
26  * The contents are diagrams to be included in the Doxygen output.
27  * The .c file extension is so that Doxygen will process it.
28  */
29
30 /**
31  * @page diagrams Diagrams
32  * @section options_overview Options Overview
33  * 
34  * #_ConfOptions  #_LayoutOptions
35  * 
36  * @startuml
37  * 
38  * object options.h
39  * object typedefs.h
40  * 
41  * options.h : ConfOptions
42  * options.h : \n
43  * options.h : Options applicable to **all** Layout Windows
44  * options.h : These are in the <global> section of geeqierc.xml
45  * options.h : Available to all modules via the global variable **options**
46  * typedefs.h : LayoutOptions
47  * typedefs.h : \n
48  * typedefs.h : Options applicable to **each** Layout Window
49  * typedefs.h : These are in the <layout> section of geeqierc.xml
50  * typedefs.h : There is one <layout> section for each Layout Window displayed
51  * typedefs.h : Available via **<layout_window>->options**
52  * 
53  * @enduml
54  */
55
56 /**
57  * @page diagrams Diagrams
58  * @section options_diagrams_main Options - New Window From Main
59  * #main  
60  * #init_options  
61  * #layout_new_from_default  
62  * #load_config_from_file  
63  * #load_options  
64  * #setup_default_options
65  * 
66  * @startuml
67  * group main.c
68  * start
69  * group options.c
70  * : **init_options()**
71  * 
72  * Set **options** = ConfOptions from hard-coded init values;
73  * end group
74  * 
75  * group options.c
76  * : **setup_default_options()**
77  * 
78  * set hard-coded ConfOptions:
79  * 
80  * bookmarks:
81  * * dot dir
82  * * Home
83  * * Desktop
84  * * Collections
85  * safe delete path
86  * OSD template string
87  * sidecar extensions
88  * shell path and options
89  * marks tooltips
90  * help search engine;
91  * end group
92  * 
93  * if (first entry
94  * or
95  * --new-instance) then (yes)
96  * group options.c
97  * : **load_options()**
98  * ;
99  * 
100  * split
101  * : GQ_SYSTEM_WIDE_DIR
102  * /geeqierc.xml;
103  * split again
104  * : XDG_CONFIG_HOME
105  * /geeqierc.xml;
106  * split again
107  * : HOME
108  * /.geeqie/geeqierc.xml;
109  * end split
110  * 
111  * group rcfile.c
112  * : **load_config_from_file()**
113  * 
114  * set  **options** from file
115  * and all <layout window>->options  in file;
116  * end group
117  * 
118  * end group
119  * 
120  * if (broken config. file
121  * or no config file
122  * or no layout section loaded
123  * (i.e. session not saved)) then (yes)
124  * group layout.c
125  * : **layout_new_from_default()**;
126  * if (default.xml exists) then (yes)
127  * : Load user-saved
128  *  layout_window default options
129  *  from default.xml file;
130  * else (no)
131  * : Load hard-coded
132  *  layout_window default options;
133  * endif
134  * end group
135  * endif
136  * 
137  * else (no)
138  * : Send --new-window request to remote
139  *  No return to this point
140  *  This instance terminates;
141  * stop
142  * endif
143  * 
144  * : Enter gtk main loop;
145  * 
146  * end group
147  * @enduml
148  */
149
150 /**
151  * @page diagrams Diagrams
152  * @section options_diagrams_remote Options - New Window From Remote
153  * #layout_new_from_default  
154  * @startuml
155  * 
156  * group remote.c
157  * start
158  * group layout.c
159  * : **layout_new_from_default()**;
160  * if (default.xml exists) then (yes)
161  * : Load user-saved
162  *  layout_window default options
163  *  from default.xml file;
164  * else (no)
165  * : Load hard-coded
166  *  layout_window default options;
167  * endif
168  * end group
169  * : set path from PWD;
170  * @enduml
171  */
172
173 /**
174  * @page diagrams Diagrams
175  * @section options_diagrams_menu Options - New Window From Menu
176  * #layout_menu_new_window_cb  
177  * #layout_menu_window_from_current_cb  
178  * #layout_new_from_default  
179  * @startuml
180  * 
181  * group layout_util.c
182  * start
183  * 
184  * split
185  * : default;
186  * group layout.c
187  * : **layout_new_from_default()**;
188  * if (default.xml exists) then (yes)
189  * : Load user-saved
190  *  layout_window default options
191  *  from default.xml file;
192  * else (no)
193  * : Load hard-coded
194  *  layout_window default options;
195  * endif
196  * end group
197  * 
198  * split again
199  * : from current
200  * 
201  * **layout_menu_window_from_current_cb()**
202  * copy layout_window options
203  * from current window;
204  * 
205  * split again
206  * : named
207  * 
208  * **layout_menu_new_window_cb()**
209  * load layout_window options
210  * from saved xml file list;
211  * end split
212  * 
213  * end group
214  * @enduml
215  */
216   /**
217   * @file
218   * @ref options_overview Options Overview
219   */