Current Page: NeXtMidas User's Guide Graphics Panel Basics
| ### Panel Basics The NeXtMidas panel is a Java AWT (Abstract Windowing Toolkit) panel that serves as a container to attach other NeXtMidas graphic primitives. Graphical user interfaces, or GUIs (pronounced gooies), contain menus and prompts in addition to graphical objects. An excellent way to get acquainted with a NeXtMidas GUI is to use one. To start a NeXtMidas GUI demo, type `DEMO` at the NeXtMidas prompt. The following subsections provide an overview of the NeXtMidas panel: Setup Files Macro Syntax Panel Margins Panel Configuration Auto Grid Placing Widgets #### Macro Syntax A `PANEL` primitive is executed in the piped section of a macro like other commands, or automatically with the `PIPE ON` command. The command:
    pipe/panel on
is the same as:
    pipe on
    panel/msgid=main/setup
A `PANEL` primitive is a raw window with an interactive panelizer holding multiple panes. Each pane is given an entry in the registry for other primitives to draw into. By default, the registry entry for the table of window panes is `REG.WIN`. When graphical primitives start up, they look in `REG.WIN` for their ID, and draw there if they find it. A graphical primitive with a `/WIN=` switch attempts to attach to the named object. A graphical primitive without a `/WIN=` switch looks in the `REG.WIN` table for an entry matching its `/ID=` value. If not found, it creates its own window frame. In macro mode, the config file name is generated by replacing the extension on the macro file with `.mmp` (Midas Macro Panel). If `/SETUP=XYZ` is specified, the extension becomes `.mmpXYZ`, where `XYZ` is a user designated alternate setup. The default for `/SETUP` is `""`, which creates the extension `.mmp`. Back to Top #### Panel Margins A `PANEL` has 4 fixed-size margins at the top, bottom, left, and right edges of the window. These regions, when not hidden, have a separator bar with an arrow to either hide or show the region. Dragging the separator bar enlarges or shrinks the region. The regions display text no matter how small the `PANEL` is sized. The area inside the margins or borders are further separated by vertical or horizontal bars with margins or other bars as endpoints. These bars are created using the Configure-->Modify menus, and scale to the `PANEL`'s size. Most data displays are placed in these regions. To be used by a plotter, a region must have a `PANE`. Panes are added to any inner region defined by bars, or to a margin area for easy collapsing. The panes in the panel are accessible through the `PANES` property table. This example sets the title on a pane named `PANE1`:
    set REG.PANEL.PANES.PANE1.TITLE "My Title String"
Normally, each pane in the panel is named with the ID of the primitive to be displayed there. This is perfomed by the `ATTACH` menu item in the `EDITPANE` configuration option. All configuration items are accessed graphically and saved to a setup file for future use. See the panel's `CONFIGURE` menu item for more information. Back to Top #### Panel Configuration To create the inner region bars and panes, enter the Configure-->Modify mode. When the mouse is over the point of interest, press the middle mouse button (MMB). A Cfg.Add menu appears with the following items:
      CANCEL - don't do anything here
      VLINE  - place a vertical bar between closest natural endpoints
      HLINE  - place a horizontal bar between closest natural endpoints
      VLINEX - place a vertical bar between margins
      HLINEX - place a horizontal bar between margins
      PANE   - add a pane in this region
To configure a pane, press the MMB over the pane. Now you can set the title, text, size, and color; or, you can attach a primitive. Back to Top #### Auto Grid In some applications, especially those with channelized data, a variable number of plots with equal size is desired. If the `/GRID={table}` switch is present, an NxM grid of evenly spaced panes is generated regardless of the `mmp` file contents. The table entries are:
      NX    - number of panes in the horizontal direction
      NY    - number of panes in the vertical direction
      ID    - id + index is the pane id
      NAME  - name + index is the pane name
      TITLE - title + index is the pane title
      TS    - title size in pixels (=0 to supress)
Back to Top #### Placing Widgets By default, any control widget created by the `GCONTROL` intrinsic in a macro is added to the collapsable control panel in the left margin of the `PANEL`. These widgets can be dragged into other margins or on top of other panes using the appropriate Configure menu options. Widgets not in the left margin are called by name in the saved `.mmp` setup file. Groups are defined by the label widgets that precede them. If new controls need to be added to previously defined groups, use the `GCONTROL/GRP=` switch. Entire groups are rolled up/down or hidden with mouse clicks on the label or by setting the `LABEL`'s action from the macro. Any graphical control added to the panel using the `WIDGET` property is contained in a table that is accessed through the `CONTROLS` property. So, for a panel registry named `PANEL`, the value of a control widget named `FREQ` could be set with the following example line:
    set REG.PANEL.CONTROLS.FREQ.value 1.33
It is a common practice to make a shorter reference to this table for easier coding:
      set gc REG.PANEL.CONTROLS    ! or use panel/controls=gc
      res gc.FREQ.value 1.33
      res gc.MAINMENU.item 1
Back to Top