CapeSoft.Com
Clarion Accessories
Makeover
Documentation
CapeSoft Logo

CapeSoft Makeover
Documentation

Download Latest Version JumpStart FAQ History
Installed Version Latest Version
Important note for Secwin Users. Secwin 3.47 or later required. Download Latest Secwin here.
Important note for Tearoff Users. TearOff 1.89 or later required. Download Latest TearOff here.

Source Code Policy

We have chosen to ship Makeover as source code, rather than as a compiled DLL. This makes it much easier for you to modify, but it also makes it much easier for you to pirate. We ask you to please consider the effort involved in writing this product, before you choose to hand it on to any other developers. If you received this program illegally (i.e. if you didn't pay for it, or you didn't buy it from CapeSoft, ClarionShop, or one of their respective dealers) then we ask you to contact us so that we can remedy this situation. Without the revenue generated from products such as this it is impossible for us to create new products.

We welcome any suggestions from users regarding new features that might be added to Makeover.

License & Copyright

This template is copyright © 2022 by CapeSoft Software. None of the included files including Makeover.Htm, Makeover.Clw, Makeover.Inc or Makeover.Tpl may be distributed.

The sample Style file (style.ini), and sample graphics files(*.BMP, *.WMF and *.CUR) can be freely distributed.

Each developer needs his own license to use Makeover. (Need to buy more licenses?)

This product is provided as-is. Use it entirely at your own risk. Use of this product implies your acceptance of this, along with the recognition of copyright stated above. In no way will CapeSoft Software, their employees or affiliates be liable for any way for any damages or business losses you may incur as a direct or indirect result of using this product.

Support

Your questions, comments and suggestions are welcome. Check our web page (www.capesoft.com/accessories/downloads.htm) for new versions. You can also contact us in one of the following ways:
CapeSoft Support
Email
Telephone +27 87 828 0123
Post PO Box 511, Plumstead, 7801, Cape Town, South Africa

CapeSoft Sales
Web www.capesoft.com
Email sales at capesoft dot com
Telephone +27 87 828 0123
Post PO Box 511, Plumstead, 7801, Cape Town, South Africa

Buy Online
Web Buy now at ClarionShop
 www.clarionshop.com

Installation

Run the supplied installation file.

Note : Makeover now ships with many different sample styles. These are installed into your \Clarion\Accessory\Images\Styles folder.

Makeover JumpStart

[read this bit if you're in a hurry]
  1. Install as per the instructions above
  2. Add the Makeover global extension to your application
  3. Set the global Extension settings as per this picture

  4. Copy the contents of \clarion\accessory\images\styles\ash to your application folder.
  5. Compile and run the program.

Introduction

Do you remember those good looking DOS programs you used to write? Do you remember your first color monitor? Do you remember the difference color made to those applications?  Remember the excitement of getting a graphical interface? And as time has progressed you've got more and more colors at your disposal.  So why do our programs look so gray?

With one voice I hear you chorus - "It's the Windows standard". That's right. The idea was, if everything looked the same then users would learn your program easier. Well almost. Actually Windows encouraged programs to work the same (i.e. menus, buttons, windows etc.). The look has changed quite a lot over the years. Don't believe me? Go back and check out an old Windows 3.0 program. Or check out one of your own Windows programs from say 3 years ago.

Even the 'Gray' standard isn't so standard anymore. Part of Quicken's success has been attributed to their innovative, and friendly user interface. And Microsoft Money has recently followed suit. And of course, we don't need to talk about the interfaces that come with CD-ROM programs (Encyclopedias, Games, Reference CD's etc.) or Web sites - these have all moved far away from the Gray 'standard'. Also, with the advent of the Web, users are used to color and texture.

Of course, the real reason for staying with plain vanilla programs, is the amount of effort involved. It's a lot easier to keep screens simple, rather than go to a lot of effort of making them 'pretty' and consistent. And of course, if you want to change your look halfway through, it's simply hard work (well by Clarion standards anyway)! To top it off this is all well and good if your client has his screen set to a bunch of colors, but what if he hasn't? Then your carefully crafted screens look like garbage.

To answer this need we wrote the Makeover template. This template dynamically, at runtime, applies a set of 'style' features to your screens. And each style set contains 3 different settings. One for 16 colors, one for 256 colors, and one for more then 256 colors. Makeover automatically detects which version is best optimized for your client, and applies that set.

Here are two small, simple screen shots - as an example - taken from the same app, before and after Makeover was applied. (I've made the window quite small to speed up viewing.) Need I mention that the last shot is best viewed with your computer set to more than 256 colors?

Before ...

Before MakeOver

After ...

After MakeOver

All of the above settings are done at runtime.

Since we released version 1.0 we've had a huge response, both in sales and also in feedback. A lot of what has been added in versions 1.1 to 1.3 are a direct result of this - it seems I wasn't alone in thinking the apps could look better. Of course we're not there yet, so keep the suggestions coming. Also if you have any graphics, textures or meta-files which you think might be of interest to the community at large (and you have rights to distribute them) then send them through and we'll include them in future releases.

In version 2 we've refined a lot of the settings, mostly adding you even more control. The Styler utility has been vastly improved (not least because we used it to create all the new styles.) Yes we finally got it - programmers out there are as bad at creating styles as anyone. So we got a graphics person to put together 10 styles for us, and these are now included. The new styles can be found in \Clarion\3rdparty\images\styles along with a big selection of button styles and toolbar styles.

Acknowledgements

As usual this effort has been enhanced considerably by the input of existing users. Our thanks (in no particular order) go to Edward Grodsky, Alan Beames, Tony York, Steve Lewis, Bram Klootwijk & Glenn Rathke, as well as all the others who reported a bug, or made a suggestion.

Features

How it Works

Makeover lets you differentiate between different kinds of screens in your program.  There is a different style set for each screen type. For example, you can apply one set of settings to all your Browse screens, and another to all your Form screens. Your Wizards may look different to your Lookups and so on. Makeover allows for up to 16 different types of screens.

You store your preferred look in a style file. This is a simple ini file, and contains all the settings for each kind of screen. In addition it contains a complete style set for 16, 256 or more then 256 color depths. A sample Style.Ini file ships with Makeover.

When your program runs it loads the current style settings.  Makeover automatically determines the color depth of the computer, and then uses either set 1 (16 colors), set 2 (256 colors) or set 3 (more than 256 colors).

After each window is opened a call is made for Makeover to apply it's magic to the screen. Using the screen type (i.e. is it a Browse or a Form, or whatever), Makeover applies the correct settings.

Adding Makeover to your Application

First

Adding Makeover to your application is easy. Simply add the Makeover Global extension to your Global extensions. To do this;
  1. Open the Clarion Environment, and load your App file.
  2. Click on the Global button.
  3. Click on Extensions
  4. Click on Insert
  5. Select the Activate Makeover global extension from the list. Fill in the options. You can find a detailed explanation of each option in the next section ( here ).

Second

Then you need to copy one, or more styles, and their graphics to the directories you've specified. For example, if you've set your style file, and graphics, to both use the application directory, then copy one or more styles to that directory.

Multi-DLL

If you have a multi-app system, then add Makeover to the system in the following way;
  1. Data DLL (ie the one which exports ABC and the File declarations)
    Add the Makeover extension - On the Multi-DLL Tab make sure both settings are on
  2. All other DLL's
    Just add the Makeover global Extension. On the Multi-DLL tab the defaults should be correct (first option is on, second is off)
  3. In the Exe
    Add the Makeover extension, and set the settings on the Settings tab.
    On The Multi-DLL Tab set "This is part of a Multi-DLL" app ON, but the "Export" option OFF.

Optional

Makeover Local Procedure Extension

The global extension will automatically add the Makeover local extension to all your windows. By default Makeover will use the Procedure template to determine the correct Window type. However you may want to override the setting on some windows where the type is not the same as the Template. For example if you're using a Browse template, but creating a Lookup screen, and you want your Lookups to look different to Browses, then you'll need to set your Lookup screen to use the Lookup settings. You can do this by adjusting the setting on the Makeover extension, on that particular screen.

At this point go ahead and compile.

Global Extension Options

General Tab Disable All Makeover Features Select this if you need to disable Makeover in this app, but without losing all your other settings.
Settings Tab
(in multi DLL systems the first part of this tab only appears in the EXE)
Ini Name The name of the default style ini file. See the section a little later on Naming the Ini file for more advanced information about the ini file.

Ini file is located in Application directory Click this on if you install the style into the Application directory. If this is off then the Windows directory is used. Storing in the application directory is easier, but if you store in the Windows directory then users on the network can edit their own styles without affecting each other.

Graphics are stored in the Application directory. Allows you to default the graphics to the application directory.

Graphics are stored in the Style Directory This is available if the option above is not ticked. A good strategy in general is to keep the graphics files with the style files. If you tick this option on the Makeover will automatically match the graphics directory to the Style directory.

Graphics Path If not in the application directory then you can specify a path to the graphics.

Use XP on XP Turns on support for Windows XP (and Windows Vista) Manifest files. See Windows XP for more information.

Reduce Flicker This set the Window{prop:buffer} = 1 for all windows. This can make window redrawing smoother, at the expense of some RAM.

Remember Theme Setting If you have allowed the user to select their own themes, then if you click this on the theme they select will be stored. Otherwise it will always revert to your default theme on startup.
Multi-DLL Support This is part of a Multi-DLL application Tick this on if this app is part of a Multi-DLL project. (Do this for all DLL's and EXE's)

Export Makeover object declared in this DLL Tick this on only if this DLL is the "Data DLL" in your system

Local Extension Options

General Tab


Disable Makeover in this procedure.

Treat this as a : Allows you to override the detected style setting for the window.

Treat Query window as a : If the window is a browse, and has a QBE button, then the the style you choose here will apply to the popup QBE window

If browse called as lookup, use lookup style Allows your browse to adopt 2 styles. One if called in "browse" mode, but another if called in "select" mode.

Reduce Flicker Ticking this on can reduce flicker on complex windows.

Show Selected If this is on then the button with the focus will be highlighted. If no button has focus then the first "Default" button will be highlighted.
Solid Controls Tab
This tab allows you to override the controls that must not be set to transparent when Makeover applies the style to the window.
Overrides Tab Wallpaper Allows you to override the wallpaper for this procedure.

Wallpaper Mode Allows you to set the wallpaper mode for this procedure.

Disable Cool Buttons

Flat / Trn / Skip controls Controls in this list will be set as Flat, Transparent and Skip. The background control created by Makeover (if any) will be destroyed.

Shipping your Makeover Application

Ok, so now you're ready to ship your application. You'll need to remember to include the following files;
  1. One or more of your Style ini files.
  2. Any graphic files which your app uses, which are not linked into your application. See Linking Resources into your application for details on linking graphics into your application. Note that Styler can display a ship list for a style so you know which files to ship.
Makeover does not make use of any other DLL or LIB files.

Editing a Style File by Hand

The following properties are included only for the Frame window type.

Linking Resources into your Application

The four graphic settings Wallpaper, ButtonCursor, ToolBarBackground and CoolButton mentioned above can use graphics either loaded off the disk, or graphics embedded in the application. If you have a single app project then I recommend embedding the graphics - if you have a Multi-App project, with a large number of your own DLL's then I recommend reading some of the graphics off a disk. The reason for this is that you'll have to embed the graphics in each app file where they are used. For background graphics (especially the wallpaper) this can swell the exe and DLL sizes by quite a lot. For the WMF and CUR files the size is negligible. Also in some versions of Clarion Cursors have to be embedded, and cannot be written off the disk.

When you are wanting to use a graphic file embedded in an app then simply use the tilde character (~) in front of the name. e.g.
ButtonCursor=~Hand.Cur

To embed the graphic in the app file, go to the Project button, highlight the section named Library, Object and Resource files and click on the Add button. Type in the name, and path, of the graphic(s) here.

If you are reading the graphic file off the disk then make sure the variable containing the path is set in the Makeover global extension in the EXE application. If this is not set the graphics will attempt to load from the current directory. You can also specify a path, as part of the graphic name, in your ini file if you want.

Naming the INI File

You get to name the ini file on the Global extension of the Exe. If you omit the path then the INI file is located in the Windows directory. Sample Style files are installed in your \Clarion\Accessory\Images\Styles directory when you install Makeover.

Themes

Tip: The White, Ash and Silver themes are the ones which work best in modern, simple-looking applications. You can use Makeover as a simple way to make your application look better. Of course the next obvious step is to allow your end user to select from a list of possible style files to choose the 'look' they like the best. This introduces the concept of a Theme.

Simply put, a Theme is simply a Style file which gives your application a particular look. For example a theme called "Ocean Blue" might give your app a blue look. One called "Emerald Rain Forest" might be based on the color green, and so on.

Makeover has a small code template to allow your customer to select a Theme (called 'Select Makeover Theme'). Use this code template on a menu item on your frame. There is an option to use the STY extension instead of the INI extension if you like.

The Theme selected is stored in the Win.Ini file (or another INI file stipulated in the Global Extension template), and is re-used next time the application is started, if the Remember Theme Setting is checked on the global extension.

theme section screenshot

By default, the INI Section will be the Application name, but in some cases (like in Multi-EXE or Multi-DLL applications) you might like to stipulate a name that is common in all the applications that use this theme setting.

To complete the picture, there is a code template which restores the Theme to the default (global extension) setting.

Tip: If you are using this feature, then it's a good idea to keep the style, and the graphics the style uses, in the same directory. Assuming you do this, make sure you have the global option Graphics are stored in the Style Directory ticked on. (See the docs for the global extension here.)

Examples

Makeover ships with the following examples

ABC

A simple, single EXE based on the ABC template chain with the Makeover Global Extension

Legacy

A simple single EXE based on the Clarion template chain, wit the Makeover Global Extension.

MultiDLLABC

A multi-app system, based on the ABC template chain. Note the Makeover global extension added to all the apps.

MultiDLLLegacy

A multi-app system, based on the Clarion template chain. Note the Makeover global extension added to all the apps.

Windows XP / Vista

Windows XP introduced the concept of a Manifest file. This is basically a small text file that either resides in the same directory as your EXE, or is linked into the EXE itself as a resource. If it exists then your program will use the Windows XP style controls, when running on XP, and Windows Vista style controls when running on Windows Vista. Under earlier versions of Windows the file has no effect.

If the Manifest file is present then all your check boxes, radio buttons, and progress bars will change to look like XP controls. Buttons without Icons will also change to use Windows XP style buttons.

If the "Use XP on XP" switch is set (on the global Makeover extension) then Makeover will disable the CoolButton feature (regardless of the setting in your style file).

In later versions of Clarion it's possible to embed a manifest directly into the program. This is done via the global properties, App setting tab, Application Manifest button. A variety of manifests are possible in this way.

Clarion 7+ with a Manifest

Clarion 7 changed the tabs used by the program to be OS tabs rather than tabs Clarion itself draws. These OS tabs are used when the program has a manifest (see above). In this combination the tabs cannot be colored - they automatically (and only) take the colors of the OS tab settings. In Clarion 7+ if you want colored tabs, you can't have a manifest, and vice versa.

In Clarion 8+ this change has been somewhat relaxed, there is now an option on the Application Manifest window to allow tabs to be colored. Go to the Global Properties tab, Actions button, App Settings tab, Application Manifest button, "SHEET controls do not use the OS Theme Color" option.

For the Technically Minded

Note: This section is optional and is not required reading...

Makeover is implemented as a class, and is added to your \Clarion\Accessory\LibSrc\Win directory as MO.Clw and MO.Inc. Although it is a class it can still be used in Clarion Legacy applications.

The template declares an instance of the Makeover class in your program, called ThisMakeover. The template initializes the object on start-up by setting the Ininame property, calling the GetColorDepth method to get the current screen color depth, and then calls the Load method with the name of the style to use.

On each screen, after the window is opened, the SetWindow method is called with the appropriate window type.

Property Reference

ColorDepth This contains the color depth of the machine that is currently running. 1 is used for 16 colors, 2 for 256 colors, and 3 for more than 256 colors.
Disable Suppresses calls to SetWindow, SetXP, TakeEvent, Refresh and SheetColor effectively removing Makeover from running.
DisableGridColor Disables the ability to set the Grid Color in listboxes
DisableLineHeight Disables the ability to set the Line Height in list boxes.
GraphicsPath This contains the path where the graphics files (used for wallpaper and coolbuttons) are stored. All Wallpaper and CoolButton graphics, which are not marked as internal (using a ~) and which do not have a fixed path, will automatically be prepended with this property. See Linking Resources into your application for details.
IniName This contains the name of the Ini file to use. This name is used by the Load method.
ListBorderWidth Allows you to adjust the width of the border around rounded list boxes.
NoButtons Disables Cool button features.
SetName The name of the Set as passed to the Load method.
XP If set to 1 then cool buttons are suppressed on XP and Vista.
XRes, Yres Set by the GetScreenRes method to the current screen resolution.

The rest of the properties all contain the settings from the ini file. These are used by the SetWindow method.

Methods :

GetColorDepth Sets the ColorDepth property.  1 for 16 colors, 2 for 256 colors, 3 for more than 256 colors.
GetPath Returns the Path element from a path/file combination. (Typically Command(0)).
GetScreenRes Gets the current screen resolution and stores it in Xres and YRes.
GetSheet Finds the Sheet control on the window.
Load This method loads all the settings, for all the window types, out of the ini file into memory. This is usually called near the start of the program.
TakeEvent Watches the events from the window, and highlights the button that will be "pressed" if the enter key is pressed
Refresh This method resynchronizes all the cool graphics with the buttons. Thus if buttons move (like if the screen is resized - or if buttons are hidden / unhidden then call this method to refresh the cool graphics.
SetWindow Sets the open window with all the current Makeover settings. The window type is passed, and used as an index to the respective properties.   These properties are all set by the Load method.
SetXP Sets the XP property.
SheetColor This method is called when the user changes from one Tab to another. It's responsible for setting the color on the now inactive tab, and for setting the color on the now active tab.

Adding Makeover to Hand-Coded Projects

Note: This section is designed for those hard-core programmers who hand-code their own projects. It is definitely not required reading for most Clarion programmers.
  1. Add the Hand.Cur file, and mo.clw file to your project.
  2. In the global data section of your project add the following code;
    _ABCLinkMode_  Equate(1)
    _ABCDllMode_   Equate(0)
      Include('mo.inc')
    ! note this comes AFTER the 2 equates 
    ThisMakeOver   MakeOver

    Win:Browse Equate(1)
    Win:Form Equate(2)
    Win:Frame Equate(3)
    Win:Window Equate(4)
    Win:Lookup Equate(5)
    Win:Wizard Equate(6)
    Win:Process Equate(7)
    Win:Report Equate(8)
    Win:Background Equate(9)
    Win:About Equate(10)
    Win:Splash Equate(11)
    Win:Viewer Equate(12)
    Win:Other1 Equate(13)
    Win:Other2 Equate(14)
    Win:Other3 Equate(15)
    Win:ToolBox Equate(16)
    Win:Modal Equate(128)
  3. In the global code section of your project, before any windows are opened, add the following code to initalise the Makeover object;
    ThisMakeover.GraphicsPath = ThisMakeover.GetExePath() ! assuming style in exe directory
    ThisMakeover.IniName = 'name and path of style file.ini'
    ThisMakeover.GetColorDepth()
    ThisMakeover.Load('Basic' & ThisMakeover.ColorDepth)
  4. In each procedure, after opening a window add;
    ThisMakeover.SetWindow(Win:Type)
    Where Win:Type is one of the win: equates listed above.

    4a) If the window is resizable, then you need to add the following code when the window is resized (ie in the Sized event);
    ThisMakeover.Refresh(Win:Type)
    Where Win:Type is the same WinType as used in step 4 above..

    4b) If the window has a Sheet control, and you're wanting to implement active/inactive tab colors then added the following to the data section;
    mo:SelectedTab  Long

    add the following to your code, just after opening the window, just after the call to .SetWindow;
    mo:SelectedTab = ThisMakeover.SheetColor(Win:Type,mo:SelectedTab,?Sheet)

    and the following to your code, when the NewSelection event is received for the sheet;
    mo:SelectedTab = ThisMakeover.SheetColor(Win:Type,mo:SelectedTab,Field())
Common Mistakes when Hand-Coding:

Compiler Errors associated with Makeover

Check out general product CompilerErrors.

  1. I just installed Makeover for the first time, then I tried implementing it in my application, but now when I compile I get lots of errors.

    Answer: Have you closed, and reopened the Clarion IDE since installing Makeover? This refreshes the classes.
  2. My Multi-DLL, Legacy APP, GPF's on start-up if Makeover is used.

    Answer: Multi-DLL, Legacy apps are a special Case. Go to the Project settings, Properties, then Defines. Add there;

    _ABCDllMode_=>0
    _ABCLinkMode_=>1
  3. I've upgraded Makeover, now when I compile my app I get No matching prototype available

    Answer:  The Refresh method now takes a parameter. If you have

    ThisMakeover.Refresh()

    in any hand-code then this will cause the compiler to spit the error

    No matching prototype available

    Change the code to read

    ThisMakeover.Refresh(mo:WinType)

Frequently Asked Questions

I'm getting Compile Errors

Runtime Errors:


1.1. I think I've done it all right, but it doesn't seem to work. What did I do wrong?
1.2. When I manually hide a button at runtime a 'ghost' remains behind. How do I make the ghost disappear?
1.3. I no longer have cool buttons. What happened?
1.4. How do I make sure the graphics / style file load from the application directory - even if this isn't the current directory?
1.5. On a form with lots of fields and tabs I get excessive flickering
1.6. The highlighted rows in my browse box are white on white, hence invisible. Or some other combination of colors that's just wrong.

Programming Queries:

2.1. I have a multiple app project, with many DLL's and 1, or more, Exe's. What must I do?
2.2.I use PC Anywhere for remote support. I want to be able to turn off Makeover because it slows down the modem.
2.3.Is it possible to embed everything in the .exe files ie graphics and style ini config?
2.4. Is it possible to override the transparency setting for a control (like a panel)?
2.5. I am wanting to get a toolbar that looks flat, with flat buttons that have no visible outlines when not active.
2.6. Makeover doesn't set my radios to transparent
2.7. I don't want to restart the program to get the effects back, is there any other way?
2.8. How do I use CoolButtons for selected buttons only (not for unselected buttons)?
2.9. I have a window that opens before Makeover initializes - how do I make Makeover initialize before the window?

General Queries:

3.1. What are the Other1, Other2, and Other3 window types for?
3.2. I am importing a procedure from another Makeover enabled application, but it creates a duplicate makeover extension. How do I solve this?
3.3 When I use the Visual Indicators feature of the Business Rules template, then my entry controls look weird.

0.1 Question: I've upgraded Makeover, now when I compile my app I get No matching prototype available.

Answer:
The Refresh method now takes a parameter. If you have
ThisMakeover.Refresh()
in any hand-code then this will cause the compiler to spit the error
"No matching prototype available"
Change the code to read
ThisMakeover.Refresh(mo:WinType)


1.1. Question: I think I've done it all right, but it doesn't seem to work.   What did I do wrong?

Answer: Check the following;
  1. Is the computer set to be in Hi-Color (16bit / 65000 colors) or TrueColor (24 bit / 16 M colors) or higher mode? It's in these modes that you'll see the most dramatic effects. To check what mode you are in go to Start menu | Settings | Control Panel | Display | Settings Tab.


  2. Is your program using the correct 'Style' file? If the style file does not exist where your program is looking for it then it will automatically create an empty one for you. Check your hard drive for 'Style.Ini' (or any other name you might have used). If you run your program with the command line switch /MakeoverDebug then you will get a message on startup telling you where the Ini file is that your program is using.


  3. Are the graphic files in the right place? If the graphic files are not in the right place then they will not load. See Adding Makeover to your application for more information on setting the graphics path.


  4. Are the graphic files set to be internal in the style file (i.e. the names are prepended with a ~) but they are not included in your project part of your application? See Linking Resources into your application for details.


  5. Is the window set as Modal? Cool Buttons are not available on Modal windows.


1.2. Question: I have a button on my screen which I hide and unhide. When I hide it a 'ghost' remains behind. How do I make the ghost disappear?

Answer: The cool button graphic control is at ?Button + 1000. So when you hide or unhide the button, hide or unhide the graphic as well. e.g.

hide (?ok)
hide (?ok+1000)


OR

Answer: Make a call to ThisMakeover.Refresh(mo:wintype). This is a new method in ver. 1.3 which hides and unhides the Cool graphics, as well as repositions and resizes them.

1.3. Question: I no longer have cool buttons. What happened?

Answer: Check - that your cool button image is still the same. These look like XP buttons, so you could be shipping a manifest file with your application. Make sure that there is no appname.exe.manifest file in your application directory.

1.4. Question: How do I make sure the graphics / style file load from the application directory - even if this isn't the current directory?

Answer: There are settings on the Global extension which will do this for you. See Adding Makeover to your Application for more details.

1.5. Question: On a form with lots of fields and tabs I get excessive flickering

Answer: This changes from one Clarion version to the next, and from one Hotfix to the next.

  1. The first thing to do is turn on the option "Reduce Flicker". (Global Extensions, Makeover, Settings tab) This should reduce the flicker on most of the windows. On windows where there is still flickering do the following;
  2. Go to the procedure with the problem. Go to the local Makeover extension. To the "Overrides" tab. Set the window to not use any wallpaper by setting Wallpaper to '' ( that's 2 single quotes.)
  3. Check that you have not used the DISPLAY() clarion command anywhere in the init method before the ThisMakeover method calls that are in the init method.


1.6 Question: The highlighted rows in my browse box are white on white, hence invisible. Or some other combination of colors that's just wrong.

Answer: A cosmetic bug was introduced into Clarion 6.3, build 9058. (PTSS #12114). This causes the background color for list boxes to be set to white if the list box is transparent. The easiest solution is to use Build 9056 until this bug is sorted out. If that is not possible then add
DisableLists=1
to all the sections in your Style file.

2.1.
Question: I have a multiple app project, with many DLL's and 1, or more, Exe's. What must I do?

Answer:
  1. Add the Global Makeover Extension to all the apps (see Adding Makeover to your Application)
  2. In all the Apps, go to the Multi-Dll tab and select " This app is part of a Multi-DLL project.


2.2. Question: I use PC Anywhere for remote support. I want to be able to turn off Makeover because it slows down the modem.

Answer: There is a small code template which does this for you. Simply add it to a menu item. This will disable the Makeover effects in the current running application. The next time the application runs the effects will be restored.

2.3. QQuestion: Is it possible to embed everything in the .exe files ie graphics and style ini config?

Answer: You can embed the graphics - you need to put the tilder '~' in front of your reference to the graphics in the style file, and make sure that you add the graphics to the project. However, you cannot embed the style file - that needs to be an INI file. I guess what you could do is create a style file programmatically - this would save you from shipping the INI file. It would also recreate the stylefile every time in case of tampering. For example (in your Program Setup global embed point:

putini('Basic3 Browse','WallPaper','~wood.bmp','MyProg.sty')
putini('Basic3 Browse','WallPaperType',2,'MyProg.sty')


and so on...... (Check the 3rdparty\example\makeover\big\classic.ini file for more entries)

2.4. Question: Is it possible to override the transparency setting for a control (like a panel)?

Answer: Yes. You can do this in the local extension template of that particular procedure. On the solid controls tab, there is a list of controls that you can use to turn the transparency off.

2.5. Question: I am wanting to get a toolbar that looks flat, with flat buttons that have no visible outlines when not active.

Answer: Unfortunately if you want to use the XP Manifest, then you can't have flat buttons (because the buttons aren't strictly transparent, they are simply drawn with the background colour of the window. This means that the underlying graphic does not come through from behind the button (but a grey colour - or whatever you've set the background colour of the toolbar to be).

2.6. Question: Makeover doesn't set my radios to transparent

Answer: If you have an icon on the radio or if you're using a Clarion version < 6.1 and you have SetXP on, then it won't set to transparent.

2.7. Question: But I don't want to restart the program to get the effects back, is there any other way?

Answer: Yes. There is a small code template to re-enable the effects so you don't have to restart the program.

2.8. Question: How do I use CoolButtons for selected buttons only (not for unselected buttons)?

Answer:

In your style file, you'll find 2 style settings:
CoolButton=button.gif
CoolButtonSelected=buttonselected.gif
Set the CoolButton to nothing.

2.9. Question: I have a window that opens before Makeover initializes - how do I make Makeover initialize before the window?

Answer: In the '3rdparty' tab (global extension), check the 'Initialize Makeover first (before other accessories)' checkbox. This will ensure that Makeover is initialized before your window.

3.1. Question: What are the Other1, Other2, and Other3 window types for.

Answer: Anything you want. They are there in case you have other kinds of windows which require a different setting. You don't have to use them if you don't need to.

3.2. Question: I am importing a procedure from another Makeover enabled application, but it creates a duplicate makeover extension. How do I solve this?

Answer: You need to export your other application to a text file, and then edit the text file and remove the instances of the Makeover local extension template wherever it occurs. The addition will look like this

[ADDITION]
NAME Makeover LocalMakeover
[INSTANCE]
INSTANCE 4
OWNER 3
[PROMPTS]

%LocalTreat DEFAULT ('Default')
%QueryLocalTreat DEFAULT ('Browse')
%Solids MULTI LONG ()
%Solid DEPEND %Solids DEFAULT TIMES 0
%WallPaper DEFAULT ('')
%WallPaperMode DEFAULT ('Stretched')
%DisableCool LONG (0)
%DisableHere LONG (0)

You will need to setup your local Makeover settings again after import (because of removing the makeover local extension template.

3.3. Question: When I use the Visual Indicators feature of the Business Rules template, then my entry controls look weird.

Answer: Makeover creates a lot of the visual effect by dynamically adding controls to your window. It uses a property called ControlOffset to determine the numbering link between your controls and the style controls. This property is set to 1000 by default. Unfortunately the Business Rules Template also creates controls, and also uses a gap of 1000. So the two products clash.

Makeover allows you to change the offset. If you have a multi-app system then you only need to do this in the EXE app. Go to the Makeover Global Extension, to the Settings tab, Advanced section, and set the Control Offset to, say 2000.

Requires Makeover version 2.81 or later.

Version History

Download latest version here


Version 3.10 - 9 May 2022
Version 3.09 - 24 May 2021
Version 3.08 (18 Sept 2018) Version 3.07 (11 July 2017) Version 3.06 (6 February 2017) Version 3.05 (7 July 2015) Version 3.04 (25 February 2015) Version 3.03 (4 December 2014) Version 3.02 : Version 3.01 : Version 3.00 :
Version 2.99 : Released 30 July 2013
Version 2.98 : Released 14 May 2013 Version 2.97 : Released 14 March 2013 Version 2.96 : Released 23 January 2013 Version 2.95 : Released 16 November 2012 Version 2.94 : Released 8 November 2012 Version 2.93 : Released 9 October 2012 Version 2.92 : Released 19 October 2011 Version 2.91 : Released 11 January 2010 Version 2.90 : Released 24 November 2010 Version 2.89 : Released 17 February 2010 Version 2.88 : Released 19 June 2009 Version 2.87 : Released 12 February 2009 Version 2.86 : Released 11 November 2008 Version 2.85 Version 2.84 : Released 28 April 2008 Version 2.83 : Released 23 April 2008 Version 2.82 : Released 7 April 2008 Version 2.81 : Released 4 March 2008 Version 2.80 : Released 4 December 2007 Version 2.79 : Released Sept 6, 2007 Version 2.78 : Released Aug 30, 2007 Version 2.77 : Released August 10, 2007 Version 2.76 : Released July 5, 2007

Important Note: Tearoff version 1.89 or later required. Our thanks go to Kevin Plummer, Lynn Howard, John Sarver, Mike Loney and others who have assisted with testing this release.

Version 2.74 : Released June 19, 2007
Version 2.73 : Released May 17, 2007 Version 2.72 : Released May 14, 2007 Version 2.71 : Released May 8, 2007 Version 2.70 : Released April 18, 2007 Version 2.67 : Released November 13, 2006 Version 2.66 : Released 13 October 2006 Version 2.65 : Released 12 October 2006 Version 2.64 : Released 11 September 2006 Version 2.63 : Released 28 August 2006 Version 2.62 : Released 27 June 2006 Version 2.61 : Released 14 June 2006 Version 2.60 : Released 10 November 2004 Version 2.52 : Released 16 September 2003 Version 2.5 : Released January 2003
Version 2.1 : Released June 2002 Version 2.0 : Released May 20 2000 Version 1.4 : Released August 15 1999 Version 1.3 : Released April 5 1999 Version 1.2 : Released March 2 1999 Version 1.1 : Released Feb 27 1999 Version 1.0 : Released Feb 18 1999