XMLSpec

From XfireWiki

Jump to: navigation, search

Contents

"skin.xml" Example

  • Zip file must contain "skin.xml" file
  • The tags are all case insensitive
 <XfireSkin>
 	<SkinDescription>
 		<Author Type="original">Xfire, Inc.</Author>
 		<Author Type="contributor">Mike Judge </Author>
 		<Website>http://www.xfire.com/</Website>
 		<Name>xfire</Name> (REQUIRED)
 		<LongName>Xfire Skin v2.0</LongName> (REQUIRED)
 		<Version>1.0</Version> (REQUIRED)
 		<CompatibleVersion>1.52</CompatibleVersion> (REQUIRED)
 		<License>http://creativecommons.org/licenses/by-nc-sa/1.0/</License>
   	</SkinDescription>
  
 	<GlobalPrefs>
 		<TooltipColor>TooltipCG</ToolTipColor>
 		<TooltipTextColor>TooltipTextCG</ToolTipTextColor>
 	</GlobalPrefs>
 
 	<!-- Language String Translations -->
 	<Include File="xml/strings_fr.xml" />
 	<Include File="xml/strings_de.xml" />
 
 	<!-- Skin Themes -->
 	<Themes>
 		<Include File="Skins/Xfire/theme_red.xml" />
 		<Include File="Skins/Xfire/theme_silver.xml" />
 	</Themes>
 
 	<!-- Component Definitions -->
 	<Include File="Skins/Xfire/components.xml" />
 
  	<MainSkin>
 		<Include File="Skins/Xfire/main_window_layout.xml" />
 	</MainSkin>
 
 	<ChatSkin>
  		<Include File="Skins/Xfire/xfirechatwindow.xml" />
 	</ChatSkin>
 
 	<GroupChatSkin>
 		<Include File="Skins/Xfire/xfiregroupchatwindow.xml" />
 	</GroupChatSkin>
 
 	<InGameMainSkin>
 		<Include File="Skins/Xfire/xfireingamewindow.xml" />
 	</InGameMainSkin>
 
 	<InGameAlertSkin>
 		<Include File="Skins/Xfire/xfireingamealertwindow.xml" />
 	</InGameAlertSkin>
 
 	<Popups>
 		<Include File="Skins/Xfire/infoskin.xml" />
 	</Popups>
 </XfireSkin>

Strings

 <Strings lang="en">
 	<String name="string1">Xfire is teh sux0r</String>
 	<String name="string2">Xfire is 1337</String>
 	<String name="string3" resourceid="123" />
 	...
 </Strings>
 
 <Strings lang="de">
 	<String name="string1">German translation</String>
 	...
 </Strings>

Themes

 <Theme name="default">
 	<Colors>
 		<Color name="HeaderText" red="255" green="255" blue="255" alpha="0" />
 		<Color name="AddAreaCG">RGBA(8,16,32)</Color>
 		...
 	</Colors>
 	<ColorShifts>
 		<ColorShift name="ScrollbarColor" red="-106" green="-80" blue="-32" alpha="0" />
 		<ColorShift name="ScrollbarColor">RGBA(-106,-80,-32,0)</ColorShift>
 		...
 	</ColorShifts>
 	<Sounds>
 		<Sound name="OfflineSound">sounds/wmpaud2.wav</Sound>
 		<Sound name="OfflineSound1" resourceid="213" />
 		...
 	</Sounds>
 	<Bitmaps>
 		<Bitmap name="MAINLEFT">images/main-left.gif</Bitmap>
 		<Bitmap name="MAINLEFT" resourceid="123" />
 		...
 	</Bitmaps>
 </Theme>

Components

  • Components are buttons, text, graphics, buddy list view, infoview, tab control, etc...
 <Components>
 	<Component
 		Name="Username"
 		Class="Text"
 		Stretch="ToContent"
 		Events="Transparent"
 		>
 		<Text Color="UsernameCG" Font="Arial" Bold="true" Size="12">value</Text>
 	</Component>
 			
 	<Component
 		Name="TabAddButton"
 		Class="TabControl"
 		Stretch="ToContent"
 		>
 	</Component>
 
 	<Component 
 		Name="CloseBox" 
 		Class="PushButton"
 		Stretch="ToContent"
 		Events="Transparent"
 		ToolTip="MinimizeButton"
 		Accelator="ALT(VK_RIGHT)"
 		>
 		<Triggers>
 			<Trigger type="OnLeftButtonDown">ResizeT</Trigger>
 			<Trigger type="OnRightButtonDown">State(Disabled)</Trigger>
 		</Triggers>
 		<Images state="normal">
 			<Image Type="topleft">TopLeftBitmap</Image>
 			<Image Type="left">LeftBitmap</Image>
 			<Image Type="bottomleft">BottomLeftBitmap</Image>
 			<Image Type="top">TopImage</Image>
 			<Image Type="middle">MiddleBitmap</Image>
 			<Image Type="bottom">BottomBitmap</Image>
 			<Image Type="topright">TopRightBitmap</Image>
 			<Image Type="right">RightBitmap</Image>
 			<Image Type="bottomright">BottomRightBitmap</Image>	
 		</Images>
 		<Images State="hover">
 			... (See the normal state example)
 		</Images>
 		<Images State="down">
 			...
 		</Images>
 		<Images State="disabled">
 			...
 		</Images>
 		<Images State="overlay">
 			...
 		</Images>
 	</Component>
 </Components>

Layout

  • The layout is a bunch of tiles in a tree structure
 <Tile
 	Name="name" 
 	AlignX="left|center|right"
 	AlignY="top|center|bottom"
 	Top="" Left="" 
 	Right="" Bottom="" 
 	Width="" Height=""
 	Component=""
 	>
 	<Tile>...</Tile>
 </Tile>

DTD

<!ELEMENT XfireSkin (SkinDescription,GlobalPrefs?,Strings+,Themes?,Components,MainWindow,ChatWindow,GroupChatWindow,InGameMainWindow,InGameAlertWindow,Popups?)>
 
<!ELEMENT SkinsDescription (Author*,Website?,Name,LongName,Version,CompatibleVersion,License?)>
<!ELEMENT Author (#PCDATA)>
<!ATTLIST Author Type (original|contributor) "original">
<!ELEMENT Website (#PCDATA)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT LongName (#PCDATA)>
<!ELEMENT Version (#PCDATA)>
<!ELEMENT CompatibleVersion (#PCDATA)>
<!ELEMENT License (#PCDATA)>

<!ELEMENT GlobalPrefs (TooltipColor?,TooltipTextColor?,OnlineSound?,OfflineSound?)>
<!ELEMENT TooltipColor (#PCDATA)>
<!ELEMENT TooltipTextColor (#PCDATA)>
<!ELEMENT OnlineSound (#PCDATA)>
<!ELEMENT OfflineSound (#PCDATA)>

<!ELEMENT Strings (String*)>
<!ATTLIST Strings Lang CDATA "default">
<!ELEMENT String (#PCDATA)>
<!ATTLIST String Name CDATA #REQUIRED>
<!ATTLIST String ResourceId CDATA #IMPLIED>

<!ELEMENT Themes (Theme*)>
<!ELEMENT Theme (Colors?,ColorShifts?,Sounds?,Bitmaps?)>

<!ELEMENT Colors (Color+)>
<!ELEMENT Color (#PCDATA)>
<!ATTLIST Color Red CDATA #IMPLIED>
<!ATTLIST Color Green CDATA #IMPLIED>
<!ATTLIST Color Blue CDATA #IMPLIED>
<!ATTLIST Color Alpha CDATA #IMPLIED>

<!ELEMENT ColorShifts (ColorShift+)>
<!ELEMENT ColorShift (#PCDATA)>
<!ATTLIST ColorShift Red CDATA #IMPLIED>
<!ATTLIST ColorShift Green CDATA #IMPLIED>
<!ATTLIST ColorShift Blue CDATA #IMPLIED>
<!ATTLIST ColorShift Alpha CDATA #IMPLIED>

<!ELEMENT Sounds (Sound+)>
<!ELEMENT Sound (#PCDATA)>
<!ATTLIST Sound Name CDATA #REQUIRED>
<!ATTLIST Sound ResourceId CDATA #IMPLIED>

<!ELEMENT Bitmaps (Bitmap+)>
<!ELEMENT Bitmap (#PCDATA)>
<!ATTLIST Bitmap Name CDATA #REQUIRED>
<!ATTLIST Bitmap ResourceId CDATA #IMPLIED>

<!ELEMENT MainWindow (Tile)>
<!ELEMENT ChatWindow (Tile)>
<!ELEMENT GroupChatWindow (Tile)>
<!ELEMENT InGameAlertWindow (Tile)>
<!ELEMENT InGameMainWindow (Tile)>

<!ELEMENT Tile (Tile*)>
<!ATTLIST Tile Name CDATA #REQUIRED>
<!ATTLIST Tile AlignX (left|center|right) #IMPLIED>
<!ATTLIST Tile AlignY (top|center|bottom) #IMPLIED>
<!ATTLIST Tile Top CDATA #IMPLIED>
<!ATTLIST Tile Left CDATA #IMPLIED>
<!ATTLIST Tile Bottom CDATA #IMPLIED>
<!ATTLIST Tile Right CDATA #IMPLIED>
<!ATTLIST Tile Width CDATA #IMPLIED>
<!ATTLIST Tile Height CDATA #IMPLIED>
<!ATTLIST Tile Component CDATA #REQUIRED>
<!ATTLIST Tile MinWidth CDATA #IMPLIED>
<!ATTLIST Tile MinHeight CDATA #IMPLIED>
<!ATTLIST Tile DefaultWidth CDATA #IMPLIED>
<!ATTLIST Tile DefaultHeight CDATA #IMPLIED>
<!ATTLIST Tile ResizeX CDATA #IMPLIED>
<!ATTLIST Tile ResizeY CDATA #IMPLIED>
<!ATTLIST Tile X CDATA #IMPLIED>
<!ATTLIST Tile Y CDATA #IMPLIED>
<!ATTLIST Tile Z CDATA #IMPLIED>
<!ATTLIST Tile IndentLeft CDATA #IMPLIED>
<!ATTLIST Tile IndentRight CDATA #IMPLIED>
<!ATTLIST Tile IndentTop CDATA #IMPLIED>
<!ATTLIST Tile IndentBottom CDATA #IMPLIED>
<!ATTLIST Tile JustX CDATA #IMPLIED>
<!ATTLIST Tile JustY CDATA #IMPLIED>
<!ATTLIST Tile BindX CDATA #IMPLIED>
<!ATTLIST Tile BindY CDATA #IMPLIED>
<!ATTLIST Tile OutdentLeft CDATA #IMPLIED>
<!ATTLIST Tile OutdentRight CDATA #IMPLIED>
<!ATTLIST Tile OutdentTop CDATA #IMPLIED>
<!ATTLIST Tile OutdentBottom CDATA #IMPLIED>

<!ELEMENT Components (Component*)>
<!ELEMENT Component (Triggers,Images*,Text*,Popup,ProgressBar)>
<!ATTLIST Component Name CDATA #REQUIRED>
<!ATTLIST Component Default CDATA #IMPLIED>
<!ATTLIST Component Class CDATA #IMPLIED>
<!ATTLIST Component Stretch CDATA #IMPLIED>
<!ATTLIST Component Events CDATA #IMPLIED>
<!ATTLIST Component Tooltip CDATA #IMPLIED>
<!ATTLIST Component Accelerator CDATA #IMPLIED>
<!ATTLIST Component Cursor CDATA #IMPLIED>
<!ATTLIST Component ControlGroupId CDATA #IMPLIED>
<!ATTLIST Component TooltipColor CDATA #IMPLIED>
<!ATTLIST Component TooltipTextColor CDATA #IMPLIED>
<!ATTLIST Component MouseOver CDATA #IMPLIED>
<!ATTLIST Component DisabledTooltip CDATA #IMPLIED>
<!ATTLIST Component WindowFocus CDATA #IMPLIED>
<!ATTLIST Component Color CDATA #IMPLIED>
<!ATTLIST Component Scrollbar CDATA #IMPLIED>
<!ATTLIST Component PushType CDATA #IMPLIED>
<!ATTLIST Component GroupId CDATA #IMPLIED>

<!ELEMENT Triggers (Trigger+)>
<!ELEMENT Trigger (#PCDATA)>
<!ATTLIST Trigger Type (OnInit|OnAppStartRefreshServers|OnAppStopRefreshServers|OnDownloadComplete|OnActivate|OnDeactivate|OnLeftClick|OnRightClick|OnLeftButtonDown|OnRightButtonDown|OnLeftDoubleClick|OnRightDoubleClick|OnXfireUrlDownload) #IMPLIED>
 
<!ELEMENT Images (Image*)>
<!ATTLIST Images State (normal|hover|disabled|overlay) #IMPLIED>
<!ATTLIST Images Color CDATA #IMPLIED>
<!ATTLIST Images HeaderColor CDATA #IMPLIED>
<!ATTLIST Images ColorShift CDATA #IMPLIED>

<!ELEMENT Image (#PCDATA)>
<!ATTLIST Image Type (topleft|top|topright|left|middle|right|bottomleft|bottom|bottomright|headerleft|headermiddle|headerright|headerarrowup|headerarrowdown|headercollapsed|headerexpanded) #IMPLIED>

<!ELEMENT Popup (#PCDATA)>
<!ATTLIST Popup Tile CDATA #REQUIRED>
<!ATTLIST Popup SaveState CDATA #IMPLIED>

<!ELEMENT ProgressBar (#PCDATA)>
<!ATTLIST ProgressBar OutlineColor CDATA #IMPLIED>
<!ATTLIST ProgressBar BGColor CDATA #IMPLIED>
<!ATTLIST ProgressBar FillColor CDATA #IMPLIED>
<!ATTLIST ProgressBar TextColor CDATA #IMPLIED>
<!ATTLIST ProgressBar Radius CDATA #IMPLIED>
<!ATTLIST ProgressBar FillRadius CDATA #IMPLIED>

<!ELEMENT Text (#PCDATA)>
<!ATTLIST Text Font CDATA #IMPLIED>
<!ATTLIST Text State CDATA #IMPLIED>
<!ATTLIST Text Size CDATA #IMPLIED>
<!ATTLIST Text Bold CDATA #IMPLIED>
<!ATTLIST Text Italic CDATA #IMPLIED>
<!ATTLIST Text Background CDATA #IMPLIED>
<!ATTLIST Text color_friend CDATA #IMPLIED>
<!ATTLIST Text color_fof CDATA #IMPLIED>
<!ATTLIST Text color_offline CDATA #IMPLIED>
<!ATTLIST Text color_selected CDATA #IMPLIED>
<!ATTLIST Text color_nonfocus CDATA #IMPLIED>
<!ATTLIST Text color_selectedtext CDATA #IMPLIED>
<!ATTLIST Text color_header CDATA #IMPLIED>

<!ELEMENT Popups (Tile+)>

Triggers

  • AddFriend
  • AddServer
  • Animate
  • AnimateStop
  • AppClose
  • AppDragWindow
  • AppGroupVoiceChat
  • AppLaunchUrl(http://..../)
  • AppMaximize
  • AppMinimize
  • AppVoiceChat
  • ChatFriend
  • ContextMenuSys
  • DownloadInfo
  • ExecuteDownload
  • GroupMessage
  • JoinFriend
  • LaunchSkin
  • MenuCWActions
  • MenuCWHelp
  • MenuFile
  • MenuGCActions
  • MenuGCHelp
  • MenuGCSystem
  • MenuHelp
  • MenuStatus
  • MenuSys
  • MenuSystem
  • MenuTool
  • PlaySound
  • ProfileFriend
  • RefreshServer
  • ResizeB
  • ResizeBL
  • ResizeBR
  • ResizeL
  • ResizeR
  • ResizeT
  • ResizeUL
  • ResizeUR
  • SendMessage
  • StartDownload
  • State
  • StopDownload
Personal tools