|
New in 3.5 is the ability to use a custom toolbar layout, along with customized toolbar graphics. This feature is
primarily designed for use by universe administrators who can now design a custom toolbar prior to distributing
the software.
The new toolbar can have many commands available in addition to those traditionally used on the toolbar.
For example, a button could be added to open the World Features dialog, or to exit the application. The
buttons may be used in any order and may be grouped in any manner using spacers. If the toolbar
is wider than the available space, then a dropdown menu button will automatically be added to allow access
to the remaining buttons.
Toolbar Images
A toolbar image is a grid of button images stored as a windows bitmap (BMP) in the /default/toolbars directory.
Different toolbar images can be used to change the look of the toolbar buttons. Toolbar images are interchangeable
(even those of different sizes) as long as the images convey the same meaning, and are arranged in the same order.
The toolbar image itself is divided into five rows, and any number of columns. The first column is always used for
the dropdown menu button graphic. Each column represents a single button, and each row represents a different
version of the button as follows:
Row 1: Image of button in its normal, unpressed state.
Row 2: Image of button pressed
Row 3: Image of button in its normal, unpressed state with mouseover.
Row 4: Image of button pressed, with mouseover
Row 5: Image of disabled button.
Here is an example toolbar image:
The buttons may be any size, but they must be square. The browser determines the button size by dividing the height
of the toolbar by 5. The image above is 160 pixels height, so the browser will determine the button size to be
32 x 32. The width of the image is then divided by this number to determine the number of columns. The image above
is 192 pixels wide, which tells the browser that there are a total of six columns available. These columns are numbered
left-to-right, starting with zero for the first (the drop-down menu button image) column.
Toolbar Configuration
The toolbar layout is stored in the toolbar.cfg file in the /toolbars directory. This file tells what
commands are available on the toolbar, and what images those commands should use. Each line in the file
represents one button. The line should contain the command the button performs, followed by the column number of the
toolbar image to use for that button, followed (optionally) by the message number from the message set to
be used as a tooltip. For a complete list of available commands see below.
Here is an example toolbar file.
back 3
forward 2
none 0
look_up 8
look_level 10
look_down 9
none 0
first_person 11
third_person 12
none 0
camera_front 51
camera_chase 50
none 0
mouse_move 61
afk 60
Any button which is not not associated with a valid command will act as a spacer. A spacer will only use the image
from row zero (Unpressed) and will not respond to user input.
Toolbar Commands
Each button can be assigned one of the following commands:
exit
forward
back
home
teleport_set_home
remember
look_up
look_down
look_level
first_person
third_person
world_features
world_rights
world_ejections
show_downloads
show_tabs
show_gestures
show_web
show_whisper
show_cell_grid
login_citizen
login_tourist
privileges
web_back
web_forward
web_stop
web_refresh
help
about
options_controls
camera_locked
camera_chase
camera_front
contacts_tab
worlds_tab
users_tab
telegrams_tab
teleports_tab
help_tab
search_tab
afk
mouse_move
sdk_event
The command "sdk_event" is a special command which requires further elaboration. In the toolbar config,
you may assign any number of buttons to this action in the following format:
sdk_event <image_number> <message_number> <id_number>
As with other commands, image_number and message_number specify what toolbar button image
and message set entry to use for the button. For sdk_event, all fields must be specified,
even message number. Additionally, an sdk_event button must be assigned a message id. This can
be any number between 0 and 32767. When the user presses this button, a message is sent to the world server
along with the given id, which is in turn sent to all bots with caretaker status. In this way a bot
can be written than can react to toolbar buttons to perform various game-type functions such as
"attack" or "show inventory". This provides another way for the user to interact with game-style worlds.
Note that this command is meaningless unless used with a world configured to handle these special commands.
This feature requires the 3.5 versions of the world server and SDK.
|