Exchanger

From wiki.amiga.org
Jump to navigation Jump to search

Introduction

Exchanger is a program manager for AmigaOS 4. It allows basic external control of running applications and commodities, including:

  • showing or hiding the program GUI;
  • shutting the program down;
  • displaying the Workbench information requester for the particular program;
  • enabling and disabling commodities.

The name may suggest that Exchanger is a replacement for Commodore's original Exchange tool distributed as part of the Amiga operating system. This is partly true; however, the scope of usability is wider. In addition, Exchanger supports modern AmigaOS features such as jumping between screens, object-oriented menus with images, or program window snapshotting.

Minimum requirements

  • AmigaOS 4.1 Update 6 or newer
  • Commodities Library version 53.6 or newer

Exchanger cannot possibly run on earlier systems because of certain Commodities Library features that were not implemented before version 53.6. Program window snapshotting and menu images will only be available when running Exchanger under AmigaOS 4.1 Final Edition or newer.

The program will use the InfoWindow Class for its About window if the class is installed in the system.

Program control in AmigaOS 4.x

As of AmigaOS release 4, there are two types of program that register with the operating system:

  • commodities (managed via the Commodities Library);
  • registered applications (managed via the Application Library).

Both types supply the OS with some information about themselves, and provide a certain level of external control. For example, both commodities and registered applications can hide or show their user interface (GUI) in response to a command sent via the respective library. Similarly, a commodity or an application can shut itself down when a corresponding command is received.

Exchanger aims at becoming a common control point for both program types.

User interface

Exchanger features a simple and easy-to-use graphic user interface (GUI) contained within a single program window. The GUI consists of four main parts:

  • the program list, located on the left-hand side of the program window; it lists all programs currently registered in the OS;
  • the info display on the right, which shows information about the program;
  • the graphic toolbar, located below the info display;
  • the menu.

Closing the program window via the close gadget will NOT quit Exchanger. Rather, the program will be put to hidden state and run in the background, from which it can be recalled using the CX_POPKEY keyboard shortcut (see below).

Program list

The program list displays all applications and commodities currently registered in the system, in alphabetical order. By default Exchanger will not show itself in the list; this can be overridden by settings (see below).

Two or more running instances of the same registered application will show up as separate entries in the program list. The individual instances will be distinguished by their application ID in the info display.

Programs that are neither commodities, nor they register with the Application Library will not appear in Exchanger's program list. If you think that a particular program would benefit from being controlled by Exchanger, please contact the author of the software in question.

Info display

As commodities and applications register with slightly different information about themselves, the info display is tabbed in order to cater for both program types. The first tab is for applications, the other for commodities. Should a program register as a commodity and, at the same time, as an application (the OS technically allows this, although such implementation is rarely useful), the program name will only be shown once in the program list, and the user can switch between the tabs in the info display to see the respective information.

Toolbar

The toolbar consists of five graphic buttons, from left to right:

Show interface
If the program allows external control of its GUI, this button will send a command telling the respective program to bring up its GUI.
Hide interface
If the program allows external control of its GUI, this button will send a command telling the respective program to hide (commodities) or iconify (applications) its GUI.
Enable/Disable
If the program is a commodity, this button will toggle its activation state. A disabled (inactive) commodity cannot receive input events from the Commodities Network. This button will be unavailable (ghosted) if the program is an application.
WB Info
If Exchanger is able to locate the selected program's icon, this button will display the Workbench information requester for the given program.
Shutdown
Tells the selected program to quit.

If a button is not available, it usually means that the particular function is not supported by the selected program. For example, commodities that have no GUI will have the Show/Hide interface buttons ghosted.

If Exchanger cannot find its images at startup, it will use text-only buttons in the toolbar.

Menu

Exchanger features a standard Amiga menu strip, with the following commands:

Project

About
Displays the program information window.
Hide
Hides the program GUI completely.
Iconify
Iconifies the program on the Workbench screen.
Quit
Quits Exchanger.

Settings

Show self in program list?
Toggles the display of Exchanger in the program list.
Show hints?
Toggles the display of help hints for the toolbar buttons.
Save
Stores current settings as tooltypes in the program icon.

Configuration

Exchanger is configured via icon tooltypes or command line parameters, depending on whether the program is started from Workbench or Shell. Some of its features can also be configured during runtime from the Settings menu.

Tooltype CLI parameter Description
DONOTWAIT N/A If you run Exchanger from WBStartup, make sure this tooltype is in place.
CX_PRIORITY CX_PRIORITY The priority of Exchanger's commodity broker (default: 0). No need to change this.
CX_POPUP CX_POPUP Determines whether Exchanger should display its GUI on program startup (default: YES). If you run Exchanger from WBStartup, you'll probably want to change this to NO (the program will run hidden) and bring up the Exchanger window via the CX_POPKEY shortcut when needed.
CX_POPKEY CX_POPKEY The keyboard shortcut to bring Exchanger back from hidden or iconified state (default: ctrl-alt-x).
SHOWSELF SHOWSELF Determines whether Exchanger should display itself in the program list (default: NO).
SHOWHINTS SHOWHINTS Determines whether Exchanger should display help hints for the toolbar buttons (default: YES).
GUIIMAGES GUIIMAGES Specifies the DOS path to the images used by the program (default: PROGDIR:Images).

Notes on use

The way the selected program reacts to the control commands sent by Exchanger absolutely depends on how the respective program is implemented. If a program allows external control (which should normally be the case with both commodities and registered applications), it is the responsibility of the programmer to implement it in a sensible, logical and safe way.

  • If a program does not provide the information it should (for example, no description for it is shown in Exchanger's info display),
  • if a program does not react to the interface control buttons (Show/Hide),
  • if a commodity cannot be enabled or disabled,
  • if a program does not quit (or worse, crashes) upon pressing the Shutdown button,

please contact the author of the respective program. Exchanger is really just a control board which - on user request - tells other programs what to do.

Developers

If you would like to implement or improve external control in your software so that it works better with program managers like Exchanger, please contact A-EON. You will be given all support.