Configuration  

02/10/05

Home
Change Log
Configuration
Features
Buttons
Screenshots
Setup
Downloads

 

 Chameleon Configuration Document

 
 

Items in RED are not implemented yet.

I removed IR support for the time being.
 
The reason each button is added separately is that I wanted to give the greatest flexibility for placing buttons where ever you want. You will also notice that if you change the dimensions in the theme section that Chameleon does not scale the position based on your dimensions. I believe that this again provides the greatest flexibility to the end user. However, I could probably be persuaded to change anything given a sufficiently good argument.

The xml configuration layout is like this:

<?xml version="1.0"  encoding="UTF-8"?>
<configuration version="Version x.xx">
            <general>
                   <mediadirectories/>
                   <theme/> 
                   <clocks/>
                   <keyboardshortcut/>
                   <hidecursordelay/>
                   <remotes/>
                   <desktop/>
                   <sounds/>
            </general>
            <panels>
                   <panel>
                          <buttons/>
                    </panel>
            </panels>
</configuration>

Layout by section:

  1. Section 1 is mediadirectories
  2. Section 2 is theme
  3. Section 3 is clocks
  4. Section 4 is keyboardshortcut
  5. Section 5 is hidecursordelay
  6. Section 6 is remotes
  7. Section 7 is desktop
  8. Section 8 is sounds
  9. Section 9 is panels
  10. Section 10 is buttons
  11. Section 11 is commands

Conventions

fontstyles Bold | Italic | BoldItalic | Underline | Strikeout | Regular
backfill Yes | No
outline             Yes | No
argb 0 to 255  Alpha, Red, Green, Blue
alignment         Manual | Auto
images gif | bmp | png | jpg  (anything supported by GDI+)
showwindow Normal | Hidden | Minimized | Maximized
linestyle Gradient | Normal
linedirection     LtoR | RtoL | TtoB | BtoT | Fade
themestyle Text | Single | Double
selecttype Outline | Button note 1
sounds  wav
status On | Off
info style News | Music
line style Gradient | Normal
 
Note 1 “Button” or “Outline”. Button will just give you a normal imaged button but if you select Outline the Button when selected will be outlined with the color you have selected.
 
Note 2  Several buttons offer the ability to scale it's image. Scaling is done proportionally to the size of the original image. If the size you select is smaller than the original image it will be reducing instead of enlarged.
 
Note 3  TextPaddingSpaces is always in terms of number of spaces.
 
Note 4  ImagePaddingPixels is always in terms of number of pixels.
 
Note 5  Line length is always in terms of number of pixels.
 
Note 5  Line thickness is always in terms of number of pixels.
 
Note 6  Line directions:
 
              TtoB = Top to Bottom
              BtoT = Bottom to Top
              LtoR = Left to Right
              RtoL = Right to Left
 

SECTION 1 - Media Directories  back to layout

<directory>
    <type>Music</type>
    <dirs>
        <dir>C:\mp3\</dir>
        <dir>D:\mp3\</dir>
    </dirs>
    <extensions>
        <ext>mp3</ext>
        <ext>wma</ext>
        <ext>ogg</ext>
    </extensions>
</directory>

Once implemented these directories and associated files types will be passed to the plug-ins.

SECTION 2 - Theme   back to layout

 <theme>
    <directory>
chameleon</directory>
    <size>
        <width>
800</width>
        <height>
600</height>
    </size>
    <overlays>
        <overlay>
            <image>
lay1.bmp</image>
            <position>
                <x>
0</x>
                <y>
0</y>
            </position>
        </overlay>
        <overlay>
            <image>
lay2.bmp</image>
            <position>
                <x>
0</x>
                <y>
500</y>
            </position>
        </overlay>
    </overlays>
    <colors>
        <color name=
"unselectedborder">
            <a>
255</a>
            <r>
254</r>
            <g>
253</g>
            <b>
252</b>
        </color>
        <color name=
"selectedborder">
            <a>
255</a>
            <r>
0</r>
            <g>
255</g>
            <b>
255</b>
        </color>
        <color name=
"unselectedgradient">
            <a>
128</a>
            <r>
155</r>
            <g>
155</g>
            <b>
155</b>
        </color>
        <color name=
"selectedgradient">
            <a>
204</a>
            <r>
0</r>
            <g>
128</g>
            <b>
0</b>
        </color>
    </colors>
    <font>
        <name>
Arial</name>
        <size>
20</size>
        <style>
Bold</style>
        <color>
            <a>
255</a>
            <r>
255</r>
            <g>
255</g>
            <b>
255</b>
        </color>
    </font>
</theme>
 
1)      <directory/>
 
        Name of the  folder where the images that represent your theme reside.
 
2)      <size/>
 
        The width and height (pixels) dimensions will be used to display the current theme.
        If either the width or height is zero Chameleon will default to the current selected
        screen resolution of your computer.
 
3)   <overlays/>
       
        These two images will be placed on top of the background image. Each image
        has an XY pair which is the location you want the overlay placed.
 
4)  <colors/>   
 
       <unselectedborder/>
       <selectedborder/>
       <unselectedgradient/>
       <selectedgradient/>
 
       All colors are constructed in this fashion.
 
       <color name="unselectedborder">
           <a>
255</a>
           <r>
254</r>
           <g>
253</g>
           <b>
252</b>
        </color>
 
       The first two colors are are using in conjunction with the Image button. You can set the
       select type of this button to either “Button” or “Outline”. If you select Button you will just
       have a normal imaged button but if you select Outline the Button when selected will be
       outlined with the color you have selected. 
         
       The second two colors are used with any button that has a text option. These colors
       used for when a text  button is either Selected or Not Selected.
 
5)  <font/>
 
       <font>
           <name>
Arial</name>
           <size>
20</size>
           <style>
Bold</style>
           <color>
               <a>
255</a>
               <r>
255</r>
               <g>
255</g>
               <b>
255</b>
            </color>
        </font>
 
       All fonts will be constructed in this fashion. At this time theme font is only used for
       Clocks. The font must exist on your system.

 

SECTION 3 - Clocks  back to layout

<clock>
    <format>%I:%M %p</format>
    <position>
        <x>
70</x>
        <y>
850</y>
    </position>
    <fontsize>
32</fontsize>
    <status>
On</status>
</clock>
 
     You can have up to two clocks. A second clock was added so that you could put the
      date and time at separate locations.

status can be Yes or No and determines whether the clock will be displayed or not .

format (see the following chart for an explanation )

example:

format ="%A, %B %d, %Y %I:%M:%S %p" yields: Wednesday, March 24, 2004 02:54:09 PM

%a
Abbreviated weekday name
%A
Full weekday name
%b
Abbreviated month name
%B
Full month name
%c
Date and time representation appropriate for locale
%d
Day of month as decimal number (01 – 31)
%H
Hour in 24-hour format (00 – 23)
%I
Hour in 12-hour format (01 – 12)
%j
Day of year as decimal number (001 – 366)
%m
Month as decimal number (01 – 12)
%M
Minute as decimal number (00 – 59)
%p
Current locale's A.M./P.M. indicator for 12-hour clock
%S
Second as decimal number (00 – 59)
%U
Week of year as decimal number, with Sunday as first day of week (00 – 53)
%w
Weekday as decimal number (0 – 6; Sunday is 0)
%W
Week of year as decimal number, with Monday as first day of week (00 – 53)
%x
Date representation for current locale
%X
Time representation for current locale
%y
Year without century, as decimal number (00 – 99)
%Y
Year with century, as decimal number
%z, %Z
Either the time-zone name or time zone abbreviation, depending on registry settings; no characters if time zone is unknown
%%
Percent sign

SECTION 4 - KeyboardShortcuts    back to layout

<keyboardshortcuts>On</keyboardshortcuts>

 Whether or not to use keyboard shortcuts. They are added just like buttons and are mapped
 to keys 0 through 9 on the numeric keypad.
 

SECTION 5 - HideCursorDelay    back to layout

<hidecursordelay>10</hidecursordelay>
 
 Delay is in terms of seconds.
 

SECTION 6 - Remotes    back to layout

<remotes>
    <irman>
        <status>Off</status>
        <remotebuttons>
            <remotebutton>
                <key>32</key>
                <ircode>some hex value</ircode>
                <function>UP</function>
            </remotebutton>
        </remotebuttons>
    </irman>
</remotes>

SECTION 7 - Desktop   back to layout

<desktop>
    <hideicons>Yes</hideicons>
    <hidetaskbar>
Yes</hidetaskbar>
    <enabledesktop>
Yes</enabledesktop>
</desktop>

SECTION 8 - Sounds  back to layout

<sounds>
    <intro>sound.wav</intro>
    <panelopen>sound.wav</panelopen>
    <panelclose>
sound.wav</panelclose>
    <button>
sound.wav</button>
    <select>sound.wav</select>
</sounds>
 
1) <intro> is the sound that plays at application start
2) <panelopen> is the sound that plays when a panel opens
3) <panelclose> is the sound that plays when a panel closes
4) <button> is the sound that plays when a button is navigated to
5) <select> is the sound that plays when a button is selected

SECTION 9 - Panels    back to layout

<panel>
    <name>
main</name>
    <parent>
root</parent>
    <image>
chamelea1600.jpg</image>
    <idlepanel>
main</idlepanel>
    <idletimeout>
30</idletimeout>
    <buttons>
        <!-- Add buttons as needed -->
    </buttons>
</panel>
 
1) <name> is used to reference a panel for use with idle panel and  gotopanel functionality.
2) <parent> is used for back functionality. The back command will go to this panel.
3) <image> name of image to be used as this panels background.
4) <idlepanel> is used if idletimeout is > 0. Name of panel to go to after idletimeout seconds.
5) <idletimeout> if greater than zero time until program reverts to panel listed in <idlepanel>

You can add a many panels as needed. There is no limit.

SECTION 10 - Buttons    back to layout

Buttons all have 4 methods. They are not always pertinent and therefore not always implemented.
 
1)      Draw            Draw the Button
2)      IsHit             Checks for mouse clicks.
3)      IsHover        Check to see if mouse if over button. Currently not using this for anything.
4)      Action          Whether the button is clicked or the enter key is pressed the action associated
                            with the button will be triggered.
 
Buttons currently have four different types of actions:
 
1)      EXE                      Launches an executable.
2)      DLL                       Launches a Chameleon DLL.
3)      COMMAND          Executes a command
4)   SUBMENU           Displays a named submenu

Following is a list of all buttons; some of them are intended to be used only with plug-ins. You can visit the buttons page to see some examples.

 
  1. Label
  2. Text
  3. Theme
  4. Image
  5. ImageText
  6. Animated Gif (relatively untested)
  7. Info
  8. Hortline
  9. Vertline
  10. Roundrect
  11. Ellipse
  12. Caption
  13. Picture
  14. ShortCut
  15. Folder (for picture module)   (15 – 27 for plug-in use and can’t be added from the config file)
  16. Progress Bar
  17. Selection Box
  18. Play
  19. Pause
  20. Right
  21. Left
  22. Up
  23. Down
  24. Open
  25. Next
  26. Prev
  27. Mute
 
 
Button 1 Label ( Simple text ) with or without fill
 
<!-- LABEL BUTTON -->
<label_button>
    <position>
        <x>
50</x>
        <y>
80</y>
    </position>
    <size>
        <width>
240</width>
        <height>
55</height>
    </size>
    <caption>Chameleon</caption>
    <color name="
fillcolor">
        <a>
204</a>
        <r>
0</r>
        <g>
128</g>
        <b>
0</b>
    </color>
    <font>
        <name>
Arial</name>
        <size>
12</size>
        <style>
BoldItalic</style>
        <color>
            <a>
255</a>
            <r>
255</r>
            <g>
255</g>
            <b>
255</b>
        </color>
    </font>
    <alignment>
Manual</alignment>
    <textpadding>
1</textpadding>
    <backfill>
Yes</backfill>
</label_button>
 
 

Button 2 Text ( Simple text button) Uses gradient coloring:

<!-- TEXT BUTTON -->
<text_button>
    <position>
        <x>
50</x>
        <y>
320</y>
    </position>
    <size>
        <width>
240</width>
        <height>
55</height>
    </size>
    <caption>
Weather</caption>
    <font>
        <name>
Arial</name>
        <size>
12</size>
        <style>BoldItalic</style>
        <color>
            <a>
255</a>
            <r>
255</r>
            <g>
255</g>
            <b>
255</b>
        </color>
    </font>
    <info>
        <position>
            <x>
505</x>
            <y>
505</y>
        </position>
        <caption>
Music Module</caption>
        <font>
            <name>
Arial</name>
            <size>
24</size>
            <style>Bold</style>
            <color>
                <a>
255</a>
                <r>
255</r>
                <g>
255</g>
                <b>
255</b>
            </color>
        </font>
    </info>
    <commands>
        
<!-- Add commands here -->    
    </commands>
    <buttonid>Button1</buttonid>
    <buttonleft>
Button4</buttonleft>  
    <buttonright>
Button2</buttonright>
    <sound>
sound.mp3</sound>
</text_button> 
 
Button 3 Theme Associates an image to the selected button :
 
<!-- THEME BUTTON -->
<theme_button>
  
 <position>
        <x>
50</x>
        <y>
780</y>
    </position>
    <size>
        <width>
251</width>
        <height>
51</height>
    </size>
    <themeposition>
        <x>
600</x>
        <y>
700</y>
    </themeposition>
    <themesize>
        <width>
251</width>
        <height>
51</height>
    </themesize>
    <scalebutton>
        <width>
0</width>
        <height>
0</height>
    </scalebutton>
    <scaletheme>
        <width>
0</width>
       <height>
0</height>
    </scaletheme>
    <image>
button.png</image>
    <selectimage>
button-focus.png</selectimage>
    <themeimage>
fullhome-mymusic.png</themeimage>
    <caption>
My Music</caption>
    <font>
        <name>
Arial</name>
        <size>
20</size>
        <style>
Regular</style>
        <color>
            <a>
255</a>
            <r>
255</r>
            <g>
255</g>
            <b>
255</b>
        </color>
    </font>
    <themestyle>
Text</themestyle>
    <info>
        <position>
            <x>
550</x>
            <y>
550</y>
        </position>
        <caption>
Music Module</caption>
        <font>
            <name>
Arial</name>
            <size>
14</size>
            <style>
Bold</style>
            <color>
                <a>
255</a>
                <r>
255</r>
                <g>
255</g>
               <b>
255</b>
            </color>
        </font>
    </info>
    <commands>
       
 <!-- Add commands here -->  
    </commands>
    <buttonid>
Button1</buttonid>
    <buttonleft>
Button4</buttonleft>
    <buttonright>
Button2</buttonright>
    <sound>
sound.mp3</sound>
</theme_button>
 
 
Button 4 Image:
 
<!-- IMAGE BUTTON -->
<image_button>
    <position>
        <x>
50</x>
        <y>
400</y>
    </position>
    <scale>
        <width>
0</width>
        <height>
0</height>
    </scale>
    <image>
button.png</image>
    <selimage></selimage>
    <selecttype>
Outline</selecttype>
    <delay>
30</delay>
    <info>
        <position>
            <x>
50</x>
            <y>
50</y>
        </position>
        <caption>
Music Module</caption>
        <font>
            <name>
Arial</name>
            <size>
14</size>
            <style>
Bold</style>
            <color>
                <a>
255</a>
                <r>
255</r>
                <g>
255</g>
                <b>
255</b>
            </color>
        </font>
    </info>
    <commands>
         <!-- Add commands here -->  

    </commands>
    <buttonid>
Button1</buttonid>
    <buttonleft>
Button4</buttonleft>
    <buttonright>
Button2</buttonright>
    <sound>
sound.mp3</sound>
</image_button>
  
 
  
Button 5 ImageText
 
<!-- IMAGETEXT BUTTON -->
<imagetext_button>
    <position>
        <x>
50</x>
        <y>
500</y>
    </position>
    <size>
        <width>
340</width>
        <height>
55</height>
    </size>
    <image>
shut.jpg</image>
    <caption>
Image and Text button</caption>
    <textpaddingspaces>
15</textpaddingspaces>
    <imagepaddingpixels>
7</imagepaddingpixels>
    <font>
        <name>
Arial</name>
        <size>
20</size>
        <style>
BoldItalic</style>
        <color>
            <a>
255</a>
            <r>
255</r>
            <g>
255</g>
            <b>
255</b>
        </color>
    </font>
    <info>
        <position>
            <x>
50</x>
            <y>
50</y>
        </position>
        <caption>Music Module</caption>
        <font>
            <name>
Arial</name>
            <size>
18</size>
            <style>
Italic</style>
            <color>
                <a>
255</a>
                <r>
255</r>
               <g>
255</g>
               <b>
255</b>
           </color>
       </font>
    </info>
    <commands>
       
<!-- Add commands here --> 
    </commands>
    <buttonid>
Button1</buttonid>
    <buttonleft>
Button4</buttonleft>
    <buttonright>
Button2</buttonright>
    <sound>
sound.mp3</sound>
</imagetext_button>              
  
 
Button 6 AnimatedGif:
 
<!-- ANIMATEDGIF BUTTON -->
<animatedgif_button>
    <position>
        <x>
150</x>
        <y>
200</y>
    </position>
    <image>
cloud.gif</image>
</animatedgif_button>"
 
 
 
Button 7 Info:
 
<!-- INFO BUTTON -->
<info_button>
    <position>
        <x>
30</x>
        <y>
600</y>
    </position>
    <size>
        <width>
840</width>
        <height>
200</height>
    </size>
    <image>
mjones.jpg</image>
    <titlecaption>
Michael Jackson</titlecaption>
    <subcaption>
Number Ones</subcaption>
    <textpaddingspaces>
10</textpaddingspaces>
    <imagepaddingpixels>
7</imagepaddingpixels>
    <subtextpadspaces>
7</subtextpadspaces>
    <style>
News</style>
    <colors>
        <color name=
"gradientcolor">
            <a>
204</a>
            <r>
0</r>
            <g>
128</g>
            <b>
0</b>
        </color>
        <color name=
"fillcolor">
            <a>
204</a>
            <r>
0</r>
            <g>
0</g>
            <b>
128</b>
        </color>
    </colors>
    <fonts>
        <font name=
"titlefont">
            <name>
Arial</name>
            <size>
18</size>
            <style>
Bold</style>
            <color>
                <a>
255</a>
                <r>
255</r>
                <g>
255</g>
                <b>
255</b>
            </color>
        </font>
        <font name=
"subtitlefont">
            <name>
Arial</name>
            <size>
14</size>
            <style>
Bold</style>
            <color>
                <a>
255</a>
                <r>
255</r>
                <g>
255</g>
                <b>
255</b>
            </color>
        </font>
    </fonts>
    <info>
        <position>
            <x>
50</x>
            <y>
50</y>
        </position>
        <caption>
Music Module</caption>
        <font>
            <name>
Arial</name>
            <size>
14</size>
            <style>
Bold</style>
            <color>
                <a>
255</a>
                <r>
255</r>
                <g>
255</g>
                <b>
255</b>
            </color>
        </font>
    </info>
    <commands>
       
<!-- Add commands here --> 
    </commands>
    <buttonid>
Button1</buttonid>
    <buttonleft>
Button4</buttonleft>
    <buttonright>
Button2</buttonright>
    <sound>
sound.mp3</sound>
</info_button>

 
  
Button 8 Hortline:
 
<!-- HORTLINE BUTTON -->
<hortline_button>
    <position>
        <x>
20</x>
        <y>
300</y>
    </position>
    <length>
1024</length>
    <color name=
"linecolor">
        <a>
255</a>
        <r>
0</r>
        <g>
255</g>
        <b>
0</b>
    </color>
    <linethickness>
3</linethickness>
    <linestyle>
Gradient</linestyle>
    <linedirection>
LtoR</linedirection>
</hortline_button>
 
 
 
Button 9 Vertline:
 
<!-- VERTLINE BUTTON -->
<vertline_button>
    <position>
        <x>
550</x>
        <y>
20</y>
    </position>
    <length>
440</length>
    <color name=
"linecolor">
        <a>
255</a>
        <r>
5</r>
        <g>
5</g>
        <b>
255</b>
    </color>
    <linethickness>
30</linethickness>
    <linestyle>
Gradient</linestyle>
    <linedirection>
TtoB</linedirection>
</vertline_button>
 
 
 
Button 10 Roundrect:
 
<!-- ROUNDRECT BUTTON -->
<roundedrect_button>
    <position>
        <x>
250</x>
        <y>
200</y>
    </position>
    <size>
        <width>
240</width>
        <height>
55</height>
    </size>
    <colors>
        <color name=
"fillcolor">
            <a>
127</a>
            <r>
255</r>
            <g>
255</g>
            <b>
255</b>
        </color>
        <color name=
"linecolor">
            <a>
255</a>
            <r>
255</r>
            <g>
5</g>
            <b>
5</b>
        </color>
    </colors>
    <linethickness>
4</linethickness>
    <outline>
Yes</outline>
    <backfill>
Yes</backfill>
</roundedrect_button> 
 
  
Button 11 Ellipse / circle:
 
<!-- ELLIPSE/CIRCLE BUTTON -->
<ellipse_button>
    <position>
        <x>
500</x>
        <y>
200</y>
    </position>
    <size>
        <width>
240</width>
        <height>
155</height>
    </size>
    <colors>
        <color name=
"fillcolor">
            <a>127</a>
            <r>
255</r>
            <g>
255</g>
            <b>
255</b>
        </color>
        <color name=
"linecolor">
            <a>
255</a>
            <r>
255</r>
            <g>
5</g>
            <b>
5</b>
        </color>
    </colors>
    <linethickness>
8</linethickness>
    <outline>
Yes</outline>
    <backfill>
Yes</backfill>
</ellipse_button>
 
  
Button 12 Caption: (used to add text with no aligning or frills)
 
<!-- CAPTION BUTTON -->
<caption_button>
    <position>
        <x>
50</x>
        <y>
50</y>
    </position>
    <caption>
Simple Text</caption>
    <font>
        <name>
Arial Black</name>
        <size>
24</size>
        <style>
BoldItalic</style>
        <color>
            <a>
255</a>
            <r>
55</r>
            <g>
255</g>
            <b>
255</b>
        </color>
    </font>
</caption_button>
 
  
Button 13 Picture:
 
<!--PICTURE BUTTON -->
<picture_button>
    <position>
        <x>
250</x>
        <y>
55</y>
    </position>
    <scale>
        <width>
170</width>
        <height>
0</height>
    </scale>
    <image>
http://images.amazon.com/images/P/B00008DDXC.01.LZZZZZZZ.jpg</image>
</picture_button> 
 
 
Button 14 ShortCut:
 
<!-- SHORTCUT BUTTON -->
<shortcut_button>
    <commands>
   
    <!-- Add commands here --> 
    </commands>
</shortcut_button>
 
 

Buttons 15 -27 are for use in a plug-in and cannot be added from the configuration file.

 

 
 
SECTION 11 - Commands    back to layout
 
<cmd_executable>
    <commandline>
notepad.exe</commandline>
    <parameters>
c:\somefile.txt</parameters>
    <showwindow>
Normal</showwindow>
    <delay>
0</delay>
</cmd_executable>

<cmd_command>
    <name>
EXIT</name>                 List of commands here
    <parameters>
D</parameters>
    <delay>
0</delay>
</cmd_command>
 
<cmd_jump>
    <type>
Panel</type>                   
    <target>
Games</target>
</cmd_jump>
  &n