Home | Contents | Index | Help | < Browse

 Writing for compability

 If you want to write a selector script that other people will use,
 for example a GUI for your shell type program, or a starting panel
 for your programs etc. Then you are welcome to do so. You can
 include the executable file "selector" with your scripts and distribute
 it in any way you like. But when you write scripts that other people
 will use, you must think of some important things.

 First, even if you include the latest version of selector with your
 scripts, the user may still have an old version of selector resident
 in memory, and then some of the commands you are using may not be
 present in this old version. To prevent this from happening, just
 use the version command, and the user will be aware of the problem.

 Second, the user may have a settings file. If he has,
 then your script will not look the same on his computer. If he for
 example has choosen his default colors and patterns stupidly, then
 the text of your window could be hidden. There are three ways of
 preventing this from happening:
 1. Don't change the colors! We must assume that the users own settings
    looks nice on his own system. So if we don't change the colors, then
    the default button and text color set by the user is used. If you
    want to change the color to emphasize something, then you can do this
    without really changing the colors by using the tempcol command.
    And if you do this, then set both back and foreground color, as you
    don't know what background the user is using. Don't use color numbers
    0-15. The user may have changed these with the palette command, or
    replaced them with patterns. Use direct colors. For example:
	tempcol yellow black
	text "Really important!"

 2. The second way is to use the settings command to disable the settings!
    If you rather wish, you can set the settings file to a file provided
    with your scripts.

 3. Choose the commands carefully and allways start with a background
    and a color command (Right after the version command.)
    Don't use color numbers 0-15. The user may have changed these with
    the palette command, or replaced them with patterns.
    Use direct color definitions instead. Here is an example:
	Version 9.0
	background gray
	color black
	text "Hello!"
	color FA4 black
	text "Hello!"

    Be sure to use these first three commands first in your script.
    This is in most cases sufficient for your window to look about
    the same.
    But if you want your window to look exactly the same, then it's
    better to use the settings command, else you have to put in all
    commands that the user may have changed in his settings file,
    like gap or font.


 Third, don't use colors to close to another. If you for example
 do this:
 color light_green dark_green
 text "Hello!"
 Then the user may not see the text. I can't see it on my workbench
 as I only have one green color in my palette! So, be careful and
 test your window on many different screens in your system. Useful
 tip: Most people has black, white and gray in their systems!
 Use Topaz 8 or 9 as the user may not have any other fonts. And if
 you want to use another font anyway, then use the orDefault option.
 Then it doesn't matter if the font doesn't exist.
 If you want to use patterns... DON'T! The user may
 not have the same workbench palette as you do!
 If you want to use patterns anyway: Only use MagicWB patterns. Include
 the patterns with yor script, use the ShowPatterns MagicWB
 command and use the orDefault option with the pattern command.

 Ok, now you know the problems of writing for compability. To test your
 window some, you can open your window on different screens in your own
 system, to check if the color look right. When you do this, you can put
 in a:
 Screen Jump
 command in your script, and then the window will jump from screen to screen.
 Just don't forget to remove it again. :-)
 When you are writing a script for your own system, it is not a good idea
 to follow these guidelines! Then you can't use the prefs script to
 change the appearance of your selector windows.


Home | Contents | Index | Help | < Browse