1 \subsection{The user interface}
4 \Hooke commands are written with abstract argument definitions (using
5 the cleverly named \imint{python}|Argument| class). This makes it
6 easier to add new user interfaces (UIs), because at the a basic level
7 the user interface is just about selecting commands and arguments to
8 pass to them. In my work on \Hooke, I borrowed from the graphical
9 user interface (GUI) version from Concordia with the original
10 partially-command-line-version from Bologna to produce two independent
11 interfaces: a command line interface (CLI) and the GUI. You can do
12 exactly the same things in either interface; choosing whichever is
13 most convenient for the task at hand
14 (\cref{fig:hooke:cli,fig:hooke:gui}). I usually use the CLI for
15 scripting and routine tasks and reproducible analysis, but fire up the
16 GUI when I'm exploring new data.
20 \begin{minted}{console}
22 Hooke version 1.0.0.alpha (Ninken)
25 hooke> new_playlist --output_playlist mylist
29 hooke> glob_curves_to_playlist *.jpk
30 <Curve 2009.04.23-15.15.47.jpk>
31 <Curve 2009.04.23-15.21.39.jpk>
35 name: 2009.04.23-15.15.47.jpk
36 path: /.../hooke/test/data/vclamp_jpk/2009.04.23-15.15.47.jpk
37 driver: <hooke.driver.jpk.JPKDriver object at 0x28f9710>
41 block names: ['approach', 'retract']
42 block sizes: [(4096, 6), (4096, 4)]
45 \caption{Creating a playlist with two JPK files in the Hooke
46 command line interface.\label{fig:hooke:cli}}
52 \includegraphics[width=\textwidth]{figures/binary/hooke-gui}
53 \caption{Creating a playlist with two JPK files in the graphical
54 Hooke interface. You can see the output of the last \gui{curve
55 info} call, which matches the output from the command line
56 version (\cref{fig:hooke:cli}). This screenshot is a bit
57 cramped (to fit on a printed page), but the
58 \href{http://www.wxwidgets.org}{wxWidgets} GUI toolkit provides
59 automatic support for interactively rearranging and resizing
60 panels. The tree of commands is in the upper left corner.
61 After you select a command, the table of argument in the upper
62 right corner is populated with default values, which you can
63 adjust as you see fit. The \gui{Playlist} panel provides an
64 easier interface for navigating to different playlists and
65 curves than the using \gui{jump to playlist} and \gui{jump to
66 curve} commands.\label{fig:hooke:gui}}