Introducing the “Welcome to Xojo” Bundle!

New to Xojo and looking for guidance? We've put together a terrific bundle to welcome you! Xojo Bundle

This bundle includes six back issues of the magazine -- all of year 21 in printed book and digital formats -- plus a one-year subscription (beginning with 22.1) so you'll be learning all about Xojo for the next year. It's the perfect way to get started programming with Xojo. And you save as much as $35 over the non-bundle price!

This offer is only available for a limited time as supplies are limited, so hurry today and order this special bundle before the offer goes away!

Recent issues

Article Preview

Buy Now

Issue 1.5


Integumentary Customization, Part II

Using "Skins" in REALbasic Applications

Issue: 1.5 (April/May 2003)
Author: Toby Rush
Author Bio: Toby Rush is a music instructor, consultant, freelance programmer, web designer, husband, and dad in Greeley, Colorado.
Article Description: No description available.
Article Length (in bytes): 10,213
Starting Page Number: 44
Article Number: 1524
Resource File(s):

Download Icon 1524.zip Updated: 2013-03-10 14:55:29

Related Link(s): None

Excerpt of article text...

In the last column, we discussed four different levels of implementing "skins" -- customizable interfaces that allow a user to control the look and feel of a program. In this column, we're going to talk about how to set up a skin implementation in a way that makes it easy to design skins, and we'll dive into creating a skin implementation in a REALbasic program.

Given the levels of implementation we talked about last time--and the understanding that a program of this type necessarily involves handing some control of interface design to the skin designer--we can see that different types of implementations have different ways of reconciling the "skinning vs. good interface design" issue. A level I implementation is fairly static, and while the skin designer can impact the aesthetics of the program, the remainder of the interface (spacing, layout, type of controls) are unchanged. The other three levels are far more dangerous from an interface design perspective, since the skin designer is given free rein to replace well-designed controls with those that may be more aesthetically pleasing but less efficient or intuitive for the user.

The flexibility of a level IV implementation seems like it would be the most problematic in this regard, but in fact it has an interesting benefit. Since the skin designer may choose from a number of controls to construct the interface, the programmer can provide instances of the standard toolbox controls as well as custom controls which accomplish the same task but provide more design flexibility. If the standard toolbox controls are present as options, the undiscriminating skin designer will use these since they require less effort to implement. Should the designer wish to take the time to design a custom control, the capability to do so is provided.

In this way, we, as application designers, are playing the same role as the designers of the Macintosh interface: we are telling the skin designer that she may create her own custom controls if she wants, but it will require less time and effort on her part to use the standard controls we provide for her. If one of the options for the skin designer is a custom button which allows for different mouseDown, mouseUp and mouseOver pictures, the control template can be designed to enforce the "action on mouseUp" paradigm which pervades the Macintosh interface.

Making your Implementation Approachable for Skin Designers

When implementing skins in an application, a programmer must decide on what level of programming or design will be required to design skins for the program. Generally, a low level of required expertise is best, as it allows more people to create skins and increases the number of skins available for users who do not design skins. Unfortunately, a simple method of creating skins is not always possible, especially for higher-numbered levels of implementation. In this case, the programmer must strike a balance between simplicity and flexibility: an overly simplistic method will not provide for flexibility, but a method that requires high-level programming concepts will not be accessible to most people.

...End of Excerpt. Please purchase the magazine to read the full article.