For this lab you will work with plots, lists, features, controls and panels. It will
be a lot of fun (actual amount of fun not guaranteed).
For this lab you will provide the user with a plot of the world. When the user clicks
on the plot you will need to mark the location with a feature (only the last click
should be marked). When the user clicks you will also need to put the coordinates into
a set of controls that will show the coordinates in decimal-place notation. To keep
a history of the clicks you will need a list to keep track of all past clicks, listing
them with a one-up identifier ("Point Number 1", "Point Number 2", ...) and giving
their position in Deg-Min-Sec notation (use "ft" for Altitude to the nearest foot).
When you are done it will look a bit like this:
Click image for larger view.
The main things you need to do are, though not necessarily in this order:
Panel
Create a panel and configure it similar to the picture.
Plot
Plot the world shape file with the cities overlaid.
Plot should send its messages to the macro.
List
Create a file to initialize list with.
Create a template for the list that will format the columns correctly and will
color the fields red.
Controls
Create an "Exit" button in a label that can not be closed.
Create the controls to hold the position of the last click, be sure to make them
not-editable.
Add the "Map Options" and "City Color" controls to a "Plot Options" label that
is closed by default.
The "Map Options" control should allow the user to make the map "Transparent" or
"Opaque".
The "City Color" control should have a "SetColor" button that when clicked brings
up a popup color chooser. (Note: The popup should be non blocking - see the
POPUP explain file for details.)
Messages
You will need to process the messages from the plot and from the controls.
When you get a new color for the cities (from the popup) you will need to change
the color of the "cities" layer in the plot.
Hints:
To see an example of how to create a non-homogeneous Type 3000 file for List see
the HEADERMOD explain file.
Other helpful resources
LIST2 explain file and test_list2_table.mm .
GCONTROL explain file and test_gcontrol.mm test macro.