Added command stack saving and loading.
[hooke.git] / doc / gui.txt
1 *****************
2 The GUI interface
3 *****************
4
5 Orignially by Rolf Schmidt <rschmidt@alcor.concordia.ca>.
6
7 Enable by selecting `gui` in your :file:`hooke.cfg`.::
8
9     [user interfaces]
10     command line = False
11     gui = True
12
13 Interface
14 =========
15 Starting Hooke's GUI for the first time, you will see the central plot
16 area with the current plot surrounded by the following windows (the `F*`
17 key toggles the visibility of the panel):
18
19 * Commands (`F5`)
20 * Folders (`F6`)
21 * Note (`F7`)
22 * Output (`F8`)
23 * Playlists (`F9`)
24 * Properties (`F10`)
25 * Results (`F11`)
26
27 .. image:: img/gui_screenshot.jpg
28
29 Initially, the window will be rather small in order to work with small
30 screen resolutions.  Adjust the size and position to your liking.
31
32 Underneath the menus at thte top of the window there is a navigation
33 toolbar to switch from one curve to another (next/previous).
34
35 Plot area
36 =========
37
38 The plot area displays the current curve.  You can select the data
39 column to use as the x axis using the dropdown menu in the plot
40 navigation bar (under the plot, not to be confused with the navigation
41 bar under the menus).  You can select the columns to plot by clicking
42 the `y column(s)` button and checking interesting columns.  We suggest
43 you stick to columns with a single unit, and not try and dispay, for
44 example, both meters and newtons on the same y axis.
45
46 Folders
47 =======
48 Here you can navigate your file system and double click on a saved
49 playlist to open it.  You can change the initial folder by modifying
50 `workdir` in the `preferences` (core plugin).
51
52 Playlists
53 =========
54 You can manage several playlists in this window.  As the GUI is rather
55 flexible, it is possible to display the curves from different
56 playlists side by side to compare them (relatively handy when
57 comparing different fit parameters).  You can double-click a file in
58 the playlist to display it in the plot area.  Deleting entire playlists
59 or single files can be accomplished by right-clicking and selecting
60 `Delete`.
61
62 .. todo:: Do we need side-by-side comparison?  How did this work in
63   the old GUI?
64
65 Commands
66 ========
67 All available commands are listed under their corresponding plugin.
68 In order to see a plugin and its commands, you have to edit
69 :file:`hooke.conf` and enable th plugin in the plugins section.
70 Selecting a plugin or command will display the associated properties
71 in the `Properties`_ window.  You can edit the properties and click
72 `Execute` to run the selected command.  If you do not need to modify
73 any properties, you can also double-click a command to run it.
74
75 Mousing over a plugin or command in the `Commands`_ window will
76 display the associated help in a tooltip.  The help for the plugin
77 should give a general description of the plugin.  The help for a
78 command should describe the properties available for this command and
79 suggest reasonable default values if possible.  Feel free to point out
80 missing help content.
81
82 Properties
83 ==========
84 The properties for the command selected in the `Commands`_ window are
85 displayed here.  Edit the properties to your satisfaction (some need to
86 be confirmed by hitting enter, this seems to be a problem in
87 wxPropertyGrid) and click the `Execute` button to run the selected
88 command.  Floating point values are limited to a certain number of
89 decimals (limitation of wxPropertyGrid?) so be careful when using
90 floating point values.
91
92 .. todo:: Document new, non-PropGrid
93   :mod:`~hooke.ui.gui.panel.propertyeditor`.
94
95 Results
96 =======
97 The results from the `autopeak` or `multidistance` commands are
98 displayed here.  Initially, all results are checked (i.e. visible).  If
99 you want to hide a result, simply uncheck it.  Hidden curves will not
100 be exported either.  You can only display one type of fit result (WLC,
101 FJC, etc.) at a time and you can switch between result types (results
102 plugin - show_results).
103
104 .. todo:: Results panel not yet re-implemented.
105
106 Output
107 ======
108 The Output window serves as a log where pertinent information is
109 displayed.  The output is generally the same as what you would see if
110 you were running the commands from the command line.
111
112 Note
113 ====
114 A note can be added to every curve: enter your note and click `Update
115 note`.  With the `note filter playlist` command (`playlist` plugin)
116 you can copy all the curves with a note into a new playlist.
117
118 General remarks
119 ===============
120 Read :doc:`hacking` for an overview of how Hooke works internally and
121 :doc:`config` for more information about configuring Hooke.
122
123 Ignore the text on the `Welcome` tab.  This tab is more like a proof of
124 principle and will contain a short how-to in the future (once the
125 howto is written).
126
127 Hooke's GUI will remember the size and position of the main window
128 (stored in the config file, see :doc:`config`).  You can arrange the
129 panels any which way you like and save this arrangement as a
130 perspective.
131
132 .. todo:: Actually write new properties to the config file on GUI exit.
133
134 .. image:: img/gui_perspective.jpg
135
136 Hooke will always start with the last used perspective and you can
137 switch from one perspective to another by selecting a perspective from
138 the perspectives menu.  After deleting a perspective, the radio
139 indicator in the perspectives menu disappears (known bug in
140 wxPython).  This is only a visual problem and does not affect anything
141 else.
142
143 In order to pan the plot, zoom in and out and export the plot of your
144 force curves, use the plot toolbar under the plot.  A more detailed
145 description is available on the `Matplotlib website`_
146
147 .. _Matplotlib website:
148   http://matplotlib.sourceforge.net/users/navigation_toolbar.html
149
150 Some plugins and commands
151 =========================
152
153 * overlay (export): exports all retraction curves in a playlist on the
154   same scale.  This is achieved by determining the maximum x window and
155   adding x(max) and x(min) to all curves that are shorter than the
156   maximum x window.  Make sure to filter your playlist before running
157   this command!
158
159 .. todo:: Implement overlay.
160
161 Basic analysis and autopeak
162 ===========================
163
164 .. todo:: Implement autopeak.  Bring in autopeak tutorial from the wiki?
165
166 Please follow the steps in the :doc:`tutorial`.  Instead of typing in
167 the command at the command-line, select it in the `Commands`_ window,
168 set your properties in the `Properties`_ window and click on
169 `Execute` back in the `Commands`_ window.
170
171 The :doc:`autopeak` tutorial is also applicable.  You need to setup the
172 type of fit you want to use: in the Properties of the autopeak command
173 (autopeak plugin) select `WLC`, `FJC` or `FJC_PEG` from the dropdown
174 list for the `polymer model` argument of `polymer fit`.