Article Preview
Buy Now
COLUMN
Pop-up Palettes
Learn to create a pop-up color selection palette
Issue: 2.5 (May/June 2004)
Author: Thomas Reed
Author Bio: Thomas Reed has been programming as a hobbyist for more than 20 years, and fell in love with the Mac in 1984.
Article Description: No description available.
Article Length (in bytes): 10,115
Starting Page Number: 30
Article Number: 2514
Resource File(s):
2514.zip Updated: 2013-03-11 19:07:58
Related Link(s): None
Excerpt of article text...
A pop-up palette is similar to a pop-up menu, and usually consists of a grid of graphical items from which the user can select. Such palettes have been found in many applications over the years. One popular example is a palette of paint tool options that appears when you click a tool in a paint program. I have seen many different implementations of the pop-up palette in REALbasic, but many fall short of expectations. In this article, I will show you how to create a very dynamic palette.
Some approaches to the pop-up palette draw the palette within a control in the window containing the initiating control. This approach has a number of serious limitations, with control order issues, handling of clicks outside the palette, and available window space being the most significant. For these reasons, I prefer to implement pop-up palettes as a separate window.
Let's think for a moment about how the palette should look and behave. Although I recommended creating the palette as a window, it is immediately obvious that the palette should not have a title bar. A floating palette with a title bar is a perfectly acceptable object, but that is not what we are trying to achieve. Thus, we must set the window's frame to type "4 - Plain Box". This eliminates as much of the window's interface as possible, with the only part of the window outside the content region being a one pixel wide black line around the edge.
The palette should behave somewhat like a sticky menu. A single click on some control should open it, and a single click within the palette should close it. A single click outside the palette should also close the palette, in this case without making any selection.
To implement the palette, we'll create a window called PaletteWindow. To this window we will add a function named ShowPalette. Its purpose will be to initialize the palette, show the window using ShowModal and, when closed, return a value indicating what item was selected. The details, including the return type, will need to wait until we have fleshed out the palette, but the basic functionality will be:
Function ShowPalette() as SomeResult
...End of Excerpt. Please purchase the magazine to read the full article.