Menus

=Mesquite's menus= Mesquite's menus differ from window to window and vary depending on the calculations being performed. In operating systems such as Windows and Linux, each window has its own set of menus embedded at the top, thus making it easy for the user to understand the context — a particular window — in which the menu item exists. Users of the Macintosh OS will see the screen menu bar change depending on what window is at the forefront. On the other hand, there is considerable duplication of menu items from window to window, which reflects the fact that windows share context to varying degrees, but which may be confusing to users of operating systems with window-specific menus. We will not here take sides about which menu paradigm is better, but note that Mesquite's menu are firmly organized so as to reflect the heirarchical structure of the calculations performed.

Learning about menus
Mesquite menus include a few constant ones (File, Edit, View) and various other menus that change as different modules are used. This situation could be confusing to the user. For instance, menu items for particular modules may appear in different places depending on the context.

Mesquite can automatically generate documentation for the current menu configuration and present it to the user as a web page. This can be done by selecting the Menu & Control Explanations menu item from the View menu of Mesquite. Also, if you hold down the Shift key while selecting a menu item, an explanation of the menu item will appear in the explanation are of the foremost window.

Standard menu items
Here are some of the standard menus available in Mesquite. Additional menus will appear depending upon the nature of the window. For example, with the Character Matrix Editor, there will also be Matrix, Select, Display, and Analyze menus.

File

 * **New** — Make a new file (as a new project)
 * **New Linked File** — Make a new file (linked to the current project)
 * **Open File**...— Open file as a separate project (not linked to current project)
 * **Open Other**
 * **URL**... — Get file from web server
 * **Link File**...— Open file and incorporate into the current file (or home file of current project)
 * **Include File**... — Open file as linked (and hence sharing information with) the indicated project
 * **Close File** — Close the file
 * **Close All** — Close all projects
 * **Show File Location** — Opens the directory on disk in which the file resides.
 * **Close Window** — Close the foremost window
 * **Save File** — Save the file to disk.
 * **Save File As**... — Save the file to disk under another name.
 * **Revert to Saved** — Reloads the last saved version of the file from disk.
 * **Export**... — Save the file to disk under another name and with a format other than NEXUS.
 * **Get Info**... — Shows what is the current file and its location.
 * **Save Window As Text**... — Save the text version of the window (visible by touching on the Text tab of the window).
 * **Print Window**... — Print the foremost window.
 * **Print Window to Fit Page**...— Print the foremost window so as to fit within a page.
 * **Save Window as PDF**...— Save the foremost window as a PDF image.
 * **Activate/Deactivate Packages** — Change the configuration of modules loaded. These menu items affect what modules, among those installed in your copy of Mesquite, are actually loaded at startup. Most configurations load only a subset of menu items, for instance to simplify the interface.
 * Use All Installed modules— On next startup, load all installed modules
 * Choose Configuration — Choose the configuration of module packages loaded at next startup.
 * Delete Configuration — Delete user-defined configurations
 * Define Configuration — Define a new configuration of modules to be loaded at startup
 * **Macros**
 * Show Macro List— Show list of Macros available, and where available explanations as to what each does.
 * Edit Macro Information— Change name and explanation for user-defined macros.
 * Show Macro List — Show list of Macros available, and where available explanations as to what each does.
 * **Rename Log File**... — Renames the current log file.
 * **Defaults [[image:submenu.gif]]** — Provides options to change the default behaviors of Mesquite.
 * **Check Now for Notices/Installs**... — Checks to see if there is information about a Mesquite package update at a specified URL.
 * **Available for Install or Update**[[image:submenu.gif]] — Lists those updates or new packages that are available for installation.
 * **Reset Menus** — Forces rebuild of all menus. Useful on Windows because of a bug in the Java virtual machine that occasionally scrambles menu names
 * **Force Quit** — Forces Mesquite to quit without the usual clean-up and checking whether the file has unsaved changes. Should be used only in emergency situations (e.g. if some calculation appears to have crashed)
 * **Quit Mesquite** — Quit Mesquite

Edit

 * **Undo** — Undos most recent change to tree in tree window, and (to a lesser extent) the Character Matrix Editor
 * **Previous Tool** — Switches back to the previously used tool.
 * **Cut, Copy, Paste, Clear, Select All** — Have their standard uses, though currently only deal with text.
 * **Font** — Change the default font for the foremost window.
 * **Font Size** — Change the default font size for the foremost window.
 * **Add AUTHORS block to File** — Adds an AUTHORS block to the file, important for collaborative projects.
 * **New Generic Nexus Block** — Make and edit a NEXUS block for the file.
 * **Edit Mesquite script** — Edit a Mesquite script contained in the file
 * **Edit Comment** — Edit the comment about the file.

Characters

 * **Character Matrix Editor** [[image:submenu.gif]] — Show a data editor for a character matrix
 * **Extra Matrix Editor** [[image:submenu.gif]] — Show a second data editor for a character matrix already shown in another window
 * **List of Characters** [[image:submenu.gif]] — Show the list of characters for a particular character data matrix
 * **List of Character Matrices** — Show the list of available character data matrices
 * **New Empty Matrix**... — Make a new, blank character data matrix
 * **Make New Matrix from** [[image:submenu.gif]] — Make a new character data matrix by copying an existing matrix or filling the matrix from a special source (e.g., simulated characters)
 * sources of matrices listed here
 * **New Linked Matrix**... — Make a new, blank character data matrix that is linked (in number of characters, etc.) to an existing matrix.
 * **Merge Matrices From File**... — Includes a file and concatenates its taxa to an existing taxa block, for instance to add seqences.
 * **List of Character Models** — Show the list of available models of character evolution
 * **New Character Model**... [[image:submenu.gif]] — Make a new model of character evolution
 * types of character models listed here
 * **Edit Character Model**... [[image:submenu.gif]] — Edit an existing model of character evolution
 * **Lists**
 * Parsimony model sets [[image:submenu.gif]] — Show a list of the sets of assignments of parsimony models for a particular character data matrix
 * Probability model sets [[image:submenu.gif]] — Show a list of the sets of assignments of probability models for a particular character data matrix
 * Character sets [[image:submenu.gif]] — Show the character sets for a particular character data matrix
 * Inclusion sets [[image:submenu.gif]] — Show the character inclusions sets for a particular character data matrix
 * Character Partitions [[image:submenu.gif]] — Show the character partitions for a particular character data matrix
 * **List of Character Group Labels** [[image:submenu.gif]]— Show a list of the character groups
 * **Save Copy of Matrix** [[image:submenu.gif]] — Save a copy of a matrix to a separate file.
 * **Save Multiple Matrices** [[image:submenu.gif]] — Save a copy of each of multiple matrices to files.

Taxa&Trees

 * **New Tree Window** [[image:submenu.gif]] — Show a new tree window for a particular set of taxa (multiple tree windows can be shown)
 * **Current Tree Windows**[[image:submenu.gif]]— Bring an existing tree window to the front
 * **List of Taxa** [[image:submenu.gif]] — Show a list of taxa for a particular set of taxa
 * **New Block of Taxa**... — Make a new set of taxa
 * **List of Taxa Blocks** — Show a list of the different sets of taxa
 * **List of Trees** [[image:submenu.gif]] — Show a list of trees in a tree block in the file
 * **New Empty Block of Trees**... — Make a new empty block in which to store trees
 * **Make New Trees Block from** — Make a new block of trees by copying an existing block or filling the block from a special source (e.g., simulated trees)
 * available sources of trees listed here
 * **List of Tree Blocks** — Show a list of tree blocks in the project
 * **Multi Tree Window** — View several trees at once in window.
 * **List of Taxa Partitions**— Show a list of taxa partitions that exist
 * **List of Taxon Sets**— Show a list of the Taxon sets that exist

Analysis

 * Menu items to make new charts and other analyses are listed here

View

 * **Menu & Control Explanations** — Causes Mesquite to compose a web page listing the menu items currently in the menu bar for this window, and where available gives explanations for what they do. Also lists the buttons currently in the window, and where available gives explanations for what they do.
 * **Bring All Windows To Front**— Brings all Mesquite Windows to the front.
 * **Projects**— Lists open projects.
 * **Current Windows**— Allows you to select current Mesquite windows to bring them to the front.
 * **Mesquite Startup Window**— Makes the Mesquite startup window visible.
 * **Log**— Makes the Mesquite log window visible.
 * **Projects and Files**— Makes the Mesquite projects and files window visible.
 * **Display License**— Shows the license under which Mesquite is distributed.
 * **New Examples Navigator** —
 * **New Notes Window** —
 * **New Picture Window** —

Window

 * **View Mode** — Chooses whether the window is displayed in standard Graphics format, or text, or if the parameters or modules behind the window are shown.
 * **Clone Window** — Clones the foremost window. Useful to reproduce an existing analysis then change it slightly. Cloned window will appear exactly above original window; thus the clone should be moved to view the original.
 * **Save Window As Macro** — Save foremost window as a macro. This macro can later be used to reproduce the window's appearance and analyses.
 * **Macros** — Execute the selected macro.
 * **Scripting** — The "Show Snapshot" item displays the script that would be required to return the foremost window to its current states; "Send Script" sends a script to the foremost window.

Help

 * **Mesquite Documentation** — Show home page of Mesquite Documentation
 * **Modules Loaded** — Show web page of modules that are installed and loaded
 * **Keyword Search** — Search for exact keyword among the names and explanations of loaded modules.
 * **Web Search** — Search for exact keyword using the Google search engine.
 * **Scripting Commands** — Show web page of available commands for scripting
 * **Active Module Tree** — Show the entire employee tree of modules
 * **List Active Modules**— Write to the log a list of the entire employee tree of modules
 * **List Prerelease Modules**— Write to the log a list of any modules loaded that are labelled as prerelease and substantive
 * **Show Developer Statistics** — Write to the log some information useful for debugging.

Where to find menu items
Other menus come and go depending on which window is in front and what calculations are in use. Thus, the standard Tree Window has a Tree menu. As the user requests calculations and output of results, the menus change. The reason for this is that different menus are appropriate in different circumstances. Thus, if the user requests the Balls and Sticks method to draw trees, a menu item "Spot size" appears in the Display menu. Spot size controls the size of the balls drawn at the nodes of the tree.

Exactly where a menu item appears may at first be confusing to the user, but there is a certain logic to it that hopefully won't be too obscure (technical details are available in the [|developer's documentation]). The "Spot size" menu item belongs to the module that draws trees in the Balls and Sticks fashion, since that module wants the user to be able to control the size of the balls. That menu item appears within the menu of the modules that employ it to draw trees. Since the Display menu belongs to the module that coordinates tree drawing, and it is this module that (indirectly) is employing Balls and Sticks to draw the tree, the menu items belonging to Balls and Sticks appear in the Display menu.

A module can also have its own menu, as does the tree drawing coordinator. Thus, the menu items of a module (usually) appear in the menu belonging to its closest employer module that has its own menu. We say "closest" because sometimes a module will have a menu item, but its immediate employer won't have a menu to put it in. The menu item drifts upward in the employment hierarchy until it finds an employer that has a menu that can house it. This system means that menu items appear in an appropriate context, but that that context is not fixed because it depends on what employer has a menu in which the item can be housed.