|
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:
-
Section 1 is mediadirectories
-
Section 2 is theme
-
Section 3 is clocks
-
Section 4 is keyboardshortcut
-
Section 5 is hidecursordelay
-
Section 6 is remotes
-
Section 7 is
desktop
-
Section 8 is
sounds
-
Section 9 is panels
-
Section 10 is buttons
-
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.
-
Label
-
Text
-
Theme
-
Image
-
ImageText
-
Animated Gif
(relatively untested)
-
Info
-
Hortline
-
Vertline
-
Roundrect
-
Ellipse
-
Caption
-
Picture
-
ShortCut
- Folder (for picture
module) (15 – 27 for plug-in use and can’t
be added from the config file)
- Progress Bar
- Selection Box
- Play
- Pause
- Right
- Left
- Up
- Down
- Open
- Next
- Prev
- 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>
|
|
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>
|