===== The jMax Phoenix User Interface ===== The main improvement in the current snapshot relase of jMax Phoenix is the user interface. jMax Phoenix introduce the concept of User Interface Style: a style is a way to arrange and manage the set of jMax editors and tools. A style is implemented using a user interface container, a framework that actually handle the component management. Many different styles can be built using the same container. Current snapshot include four user interface style, built using two different containers, and allows the implementation of custom styles. ==== Classic Style ==== The first container implements the classic Max user interface: each editor and tool opens in an independent window, and the set of opened windows represents the user interface of the running application. This behavior is maintained for compatibility with the standard Max behavior, but it may also be appropriate for some application, especially as an execution environment. The classic environment can be declined in a family of styles: the default one keeps the Max console at the center of the user interaction. Other configurations are possible, for example a tool-less configuration that opens only application windows at start up, or an user interface where the project browser takes the place of the console. To run jMax in this configuration, you can invoke jMax with the following option jmax -jmaxStyle classic or include in your .jmax/xml file the following fragment: .... .... .... .... ==== Virtual Desktop Style ==== It is a variation on the above: the behaviour is the same but all the windows are included in a virtual desktop within a single window; this allow a simpler interaction with the rest of the desktop (for example, reducing the window take all the jMax windows out of the way). To run jMax in this configuration, you can invoke jMax with the following option jmax -jmaxStyle desktop or include in your .jmax/xml file the following fragment: .... .... .... .... ==== IDE Desktop Style ==== The IDE style takes over the principles from classic IDEs like Eclipse and Netbeans. On the left panel, a browser allows full navigation in the application. The tools, like the console, the find and control panels and the others are grouped in the tool panel on the bottom and organized using tabs. The center area is organized as a virtual desktop, containing the individual patchers in independent windows. An improved, global status bar allows a quick check of essential parameters, like DSP status, sampling frequency, latency and so on; mouse over the dsp icon (a little loudspeaker) for details on DSP. This configuration can be seen as a development environment for applications to be used in the classic or in a custom configuration, providing a faster and clearer access to the available tools, and a simpler interaction with the OS environment. Here is nice screen copy of this style: {{:user:workspace2.png|}} To run jMax in this configuration, you can invoke jMax with the following option jmax -jmaxStyle ide The ide style accept two optional command line arguments to set the main window size, like in: jmax -jmaxStyle tabbedIde -jmaxWidth 800 -jmaxHeight 600 or include in your .jmax/xml file the following fragment: .... .... .... .... ==== IDE Tabbed Style ==== As a variation, the tabbed IDE style (screen shot 2) keeps the same configuration, but organizes the different panels in a tabbed panel instead of a virtual desktop area. This allows an optimal use of the available screen space, making it especially adapted to small laptop screen, and allowing an easier navigation. A graphic tool-tip allows the inspection of a tab content without changing the open tab. Here is nice screen copy of this style: {{:user:tabbed.png|}} To run jMax in this configuration, you can invoke jMax with the following option jmax -jmaxStyle tabbedIde The tabbedIde style accept two optional command line arguments to set the main window size, like in: jmax -jmaxStyle tabbedIde -jmaxWidth 800 -jmaxHeight 600 or include in your .jmax/xml file the following fragment: .... .... .... .... ==== Roll your own Styles ==== User interfaces are defined in the jMax configuration styles. The above styles are defined with a few lines of XML in the ''config/jmax.xml'' configuration file. It is easy to use to define your own interface styles in the same way, for example to arrange sub panels in an application specific way, using some lines in the configuration file (no Java code). The way to configure new user interface styles [[CustomUIConfiguration | is documented here ]]. You can see a working example by loading the examples/package/customide directory in the distribution.