aboutsummaryrefslogtreecommitdiff
path: root/gui/themes
diff options
context:
space:
mode:
Diffstat (limited to 'gui/themes')
-rw-r--r--gui/themes/classic080.ini469
-rw-r--r--gui/themes/default.inc1462
-rw-r--r--gui/themes/modern.ini649
-rw-r--r--gui/themes/modern.zipbin54022 -> 0 bytes
-rw-r--r--gui/themes/scummclassic.zipbin0 -> 43805 bytes
-rw-r--r--gui/themes/scummclassic/THEMERC1
-rw-r--r--gui/themes/scummclassic/classic_gfx.stx364
-rw-r--r--gui/themes/scummclassic/classic_layout.stx635
-rw-r--r--gui/themes/scummclassic/classic_layout_320.stx628
-rw-r--r--gui/themes/scummodern.zipbin0 -> 144239 bytes
-rw-r--r--gui/themes/scummodern/THEMERC1
-rw-r--r--gui/themes/scummodern/checkbox.bmpbin0 -> 774 bytes
-rw-r--r--gui/themes/scummodern/cursor.bmpbin0 -> 3126 bytes
-rw-r--r--gui/themes/scummodern/cursor_small.bmpbin0 -> 1062 bytes
-rw-r--r--gui/themes/scummodern/helvr12-l1.fccbin0 -> 5615 bytes
-rw-r--r--gui/themes/scummodern/logo.bmpbin0 -> 68214 bytes
-rw-r--r--gui/themes/scummodern/logo_small.bmpbin0 -> 17174 bytes
-rw-r--r--gui/themes/scummodern/scummodern_gfx.stx489
-rw-r--r--gui/themes/scummodern/scummodern_layout.stx647
-rw-r--r--gui/themes/scummodern/scummodern_layout_320.stx625
-rw-r--r--gui/themes/scummtheme.py91
21 files changed, 4943 insertions, 1118 deletions
diff --git a/gui/themes/classic080.ini b/gui/themes/classic080.ini
deleted file mode 100644
index 4138e24536..0000000000
--- a/gui/themes/classic080.ini
+++ /dev/null
@@ -1,469 +0,0 @@
-# $URL$
-# $Id$
-[theme]
-version=24
-type=classic
-name=Classic (ScummVM 0.8.0)
-
-[colors]
-color=104 104 104
-shadowcolor=64 64 64
-bgcolor=0 0 0
-textcolor=32 160 32
-textcolorhi=0 255 0
-
-[extra]
-font="builtin"
-blending=true
-
-[XxY]
-def_widgetSize=kBigWidgetSize
-def_buttonWidth=kBigButtonWidth
-def_buttonHeight=kBigButtonHeight
-def_sliderWidth=kBigSliderWidth
-def_sliderHeight=kBigSliderHeight
-def_kLineHeight=16
-def_kFontHeight=14
-def_insetX=10
-def_insetY=20
-def_insetW=(w - 2 * 10)
-def_insetH=(h - 2 * 40)
-def_gameOptionsLabelWidth=90
-def_tabPopupsLabelW=150
-def_aboutXOff=8
-def_aboutYOff=5
-def_aboutOuterBorder=80
-def_scummmainHOffset=12
-def_scummmainVSpace=7
-def_scummmainVAddOff=3
-def_scummmainButtonWidth=160
-def_scummmainButtonHeight=28
-def_scummhelpW=370
-def_scummhelpX=((w - scummhelpW) / 2)
-def_midiControlsSpacing=2
-def_vcAudioTabIndent=10
-def_vcAudioTabSpacing=4
-
-use=colors
-use=extra
-
-##### Widgets config
-ListWidget.leftPadding=4
-ListWidget.rightPadding=0
-ListWidget.topPadding=2
-ListWidget.bottomPadding=2
-ListWidget.hlLeftPadding=2
-ListWidget.hlRightPadding=1
-PopUpWidget.leftPadding=4
-PopUpWidget.rightPadding=0
-TabWidget.tabWidth=70
-TabWidget.tabHeight=21
-TabWidget.titleVPad=2
-
-###### chooser
-opHeight=(h * 7 / 10)
-useWithPrefix=chooser defaultChooser_
-
-##### browser
-brW=((w * 7) / 8)
-brH=((h * 9) / 10)
-browser=((w - brW) / 2) ((h - brH) / 2) brW brH
-set_parent=browser
-browser_headline=10 kLineHeight (parent.w - 2 * 10) kLineHeight
-browser_headline.align=kTextAlignCenter
-browser_path=10 prev.y2 prev.w prev.h
-browser_list=10 prev.y2 prev.w (parent.h - 3 * kLineHeight - buttonHeight - 14)
-browser_up=10 (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-browser_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-browser_choose=(prev.x2 + 10) prev.y prev.w prev.h
-
-##### launcher
-hBorder=10
-launcher_version=hBorder 8 (w - 2 * hBorder) kLineHeight
-launcher_version.align=kTextAlignCenter
-top=(h - 8 - buttonHeight)
-numButtons=3
-space=8
-butWidth=((w - 2 * hBorder - space * (numButtons - 1)) / numButtons)
-launcher_quit_button=hBorder top butWidth buttonHeight
-launcher_about_button=(prev.x2 + space) prev.y prev.w prev.h
-launcher_options_button=(prev.x2 + space) prev.y prev.w prev.h
-launcher_start_button=(prev.x2 + space) prev.y prev.w prev.h
-launcher_loadGame_button=(prev.x2 + space) prev.y prev.w prev.h
-top=(top - buttonHeight * 2)
-numButtons=3
-space=10
-butWidth=((w - 2 * hBorder - space * (numButtons - 1)) / numButtons)
-launcher_addGame_button=hBorder top butWidth buttonHeight
-launcher_editGame_button=(prev.x2 + space) prev.y prev.w prev.h
-launcher_removeGame_button=(prev.x2 + space) prev.y prev.w prev.h
-launcher_list=hBorder (kLineHeight + 16) (w - 2 * hBorder) (top - kLineHeight - 20)
-
-### global options
-globaloptions=insetX insetY insetW insetH
-set_parent=globaloptions
-vBorder=5
-globaloptions_tabwidget=0 vBorder parent.w (parent.h - buttonHeight - 8 - 2 * vBorder)
-
-# graphics tab
-opYoffset=vBorder
-opXoffset=0
-useWithPrefix=graphicsControls globaloptions_
-
-# audio tab
-opYoffset=vBorder
-useWithPrefix=audioControls globaloptions_
-useWithPrefix=subtitleControls globaloptions_
-
-# volume tab
-opYoffset=vBorder
-useWithPrefix=volumeControls globaloptions_
-
-# MIDI tab
-opYoffset=vBorder
-useWithPrefix=midiControls globaloptions_
-
-# paths tab
-yoffset=vBorder
-glOff=((buttonHeight - kLineHeight) / 2 + 2)
-globaloptions_savebutton=10 yoffset (buttonWidth + 5) buttonHeight
-globaloptions_savepath=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 15) kLineHeight
-yoffset=(yoffset + buttonHeight + 4)
-globaloptions_extrabutton=10 yoffset (buttonWidth + 5) buttonHeight
-globaloptions_extrapath=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 15) kLineHeight
-yoffset=(yoffset + buttonHeight + 4)
-globaloptions_themebutton=10 yoffset (buttonWidth + 5) buttonHeight
-globaloptions_themepath=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 15) kLineHeight
-yoffset=(yoffset + buttonHeight + 4)
-globaloptions_pluginsbutton=10 yoffset (buttonWidth + 5) buttonHeight
-globaloptions_pluginspath=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 15) kLineHeight
-yoffset=(yoffset + buttonHeight + 4)
-globaloptions_keysbutton=10 yoffset (buttonWidth + 5) buttonHeight
-
-# Misc options
-yoffset=vBorder
-glOff=((buttonHeight - kLineHeight) / 2 + 2)
-globaloptions_themebutton2=10 yoffset buttonWidth buttonHeight
-globaloptions_curtheme=(prev.x2 + 20) (yoffset + glOff) (parent.w - (prev.w + 20) - 10) kLineHeight
-yoffset=(yoffset + buttonHeight + 12)
-globaloptions_autosaveperiod=10 yoffset (parent.w - 10 - 25) (kLineHeight + 2)
-
-globaloptions_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-globaloptions_ok=(prev.x2 + 10) prev.y prev.w prev.h
-
-### game options
-gameoptions=insetX insetY insetW insetH
-set_parent=gameoptions
-vBorder=5
-gox=5
-gow=(parent.w - 15)
-
-gameoptions_tabwidget=0 vBorder parent.w (parent.h - buttonHeight - 8 - 2 * vBorder)
-
-# game tab
-opYoffset=vBorder
-gameoptions_id=gox (opYoffset + 2) gameOptionsLabelWidth kLineHeight
-gameoptions_id.align=kTextAlignRight
-gameoptions_domain=prev.x2 (prev.y - 1) (parent.w - gameOptionsLabelWidth - 10 - gox) (prev.h + 2)
-opYoffset=(opYoffset + prev.h + 5)
-gameoptions_name=gox (opYoffset + 2) gameOptionsLabelWidth kLineHeight
-gameoptions_name.align=kTextAlignRight
-gameoptions_desc=prev.x2 (prev.y - 1) (parent.w - gameOptionsLabelWidth - 10 - gox) (prev.h + 2)
-opYoffset=(opYoffset + prev.h + 7)
-gameoptions_lang=gox (opYoffset - 1) gow (kLineHeight + 2)
-opYoffset=(opYoffset + prev.h + 5)
-gameoptions_platform=prev.x opYoffset prev.w prev.h
-opYoffset=(opYoffset + prev.h + 5)
-
-# paths tab
-opYoffset=vBorder
-goOff=((buttonHeight - kLineHeight) / 2 + 2)
-gameoptions_savepath=gox opYoffset (buttonWidth + 5) buttonHeight
-gameoptions_savepathText=(prev.x2 + 20) (opYoffset + goOff) (parent.w - self.x - 10) kLineHeight
-opYoffset=(opYoffset + buttonHeight + 4)
-gameoptions_extrapath=gox opYoffset (buttonWidth + 5) buttonHeight
-gameoptions_extrapathText=(prev.x2 + 20) (opYoffset + goOff) (parent.w - self.x - 10) kLineHeight
-opYoffset=(opYoffset + buttonHeight + 4)
-gameoptions_gamepath=gox opYoffset (buttonWidth + 5) buttonHeight
-gameoptions_gamepathText=(prev.x2 + 20) (opYoffset + goOff) (parent.w - self.x - 10) kLineHeight
-opYoffset=(opYoffset + buttonHeight + 4)
-
-# graphics tab
-opYoffset=vBorder
-opXoffset=gox
-gameoptions_graphicsCheckbox=gox opYoffset (parent.w - gox - 5) buttonHeight
-opYoffset=(opYoffset + buttonHeight)
-useWithPrefix=graphicsControls gameoptions_
-
-# audio tab
-opYoffset=vBorder
-gameoptions_audioCheckbox=gox opYoffset (parent.w - gox - 5) buttonHeight
-opYoffset=(opYoffset + buttonHeight)
-useWithPrefix=audioControls gameoptions_
-useWithPrefix=subtitleControls gameoptions_
-
-# volume tab
-opYoffset=vBorder
-gameoptions_volumeCheckbox=gox opYoffset (parent.w - gox - 5) buttonHeight
-opYoffset=(opYoffset + buttonHeight)
-useWithPrefix=volumeControls gameoptions_
-
-# midi tab
-opYoffset=vBorder
-gameoptions_midiCheckbox=gox opYoffset (parent.w - gox - 5) buttonHeight
-opYoffset=(opYoffset + buttonHeight)
-useWithPrefix=midiControls gameoptions_
-
-gameoptions_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-gameoptions_ok=(prev.x2 + 10) prev.y prev.w prev.h
-
-### keys dialog
-keysdialog=(w / 20) (h / 10) (w - w / 10) (h - h / 5)
-set_parent=keysdialog
-keysdialog_map=(parent.w - buttonWidth - 10) 20 buttonWidth buttonHeight
-keysdialog_ok=prev.x (prev.y2 + 4) prev.w prev.h
-keysdialog_cancel=prev.x (prev.y2 + 4) prev.w prev.h
-keysdialog_list=10 10 (prev.x - 20) (parent.h - kLineHeight * 4 - self.y)
-keysdialog_action=prev.x (parent.h - kLineHeight * 3) (parent.w - self.x * 2) kLineHeight
-keysdialog_mapping=prev.x (prev.y + kLineHeight) prev.w prev.h
-
-### mass add dialog
-massadddialog=10 20 300 174
-set_parent=massadddialog
-massadddialog_caption=10 (10 + 1 * kLineHeight) (parent.w - 2*10) kLineHeight
-massadddialog_caption.align=kTextAlignCenter
-massadddialog_dirprogress=10 (10 + 3 * kLineHeight) prev.w prev.h
-massadddialog_dirprogress.align=kTextAlignCenter
-massadddialog_gameprogress=10 (10 + 4 * kLineHeight) prev.w prev.h
-massadddialog_gameprogress.align=kTextAlignCenter
-massadddialog_ok=((parent.w - (buttonWidth * 2)) / 2) (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-massadddialog_cancel=(prev.x2 + 10) prev.y prev.w prev.h
-
-
-##### SCUMM dialogs
-scummDummyDialog=0 80 0 16
-
-use=scummmain
-## Engine config
-# note that scummconfig size depends on overall height
-# hence it is on the end of the list
-opYoffset=8
-useWithPrefix=volumeControls scummconfig_
-useWithPrefix=subtitleControls scummconfig_
-opYoffset=(opYoffset + buttonHeight)
-opYoffset=(opYoffset + buttonHeight + 4)
-soWidth=(39 + 3 * buttonWidth)
-scummconfig_keys=(soWidth - 3 * (buttonWidth + 4) + 6) opYoffset (buttonWidth - 10) buttonHeight
-scummconfig_cancel=(prev.x2 + 4) prev.y (prev.w + 10) prev.h
-scummconfig_ok=(prev.x2 + 4) prev.y prev.w prev.h
-opYoffset=(opYoffset + buttonHeight)
-scummconfig=((w - soWidth) / 2) ((h - opYoffset) / 2) soWidth (opYoffset + 8)
-
-## Help
-scummHelpNumLines=15
-shH=(5 + (2 + scummHelpNumLines) * kFontHeight + buttonHeight + 7)
-scummhelp=scummhelpX ((h - shH) / 2) scummhelpW shH
-scummhelp_title=10 5 scummhelpW kFontHeight
-scummhelp_key.x=10
-scummhelp_key.yoffset=5
-scummhelp_key.w=80
-scummhelp_key.h=kFontHeight
-scummhelp_dsc.x=90
-scummhelp_dsc.yoffset=5
-scummhelp_dsc.w=(scummhelpW - 10 - 90)
-scummhelp_dsc.h=kFontHeight
-scummhelp_prev=10 (5 + kFontHeight * (scummHelpNumLines + 2) + 2) buttonWidth buttonHeight
-scummhelp_next=(prev.x2 + 8) prev.y prev.w prev.h
-scummhelp_close=(scummhelpW - 8 - buttonWidth) prev.y prev.w prev.h
-
-# Saveload dialog
-scummsaveload=8 8 (w - 2 * 8) (h - 16)
-set_parent=scummsaveload
-scummsaveload_title=10 2 (parent.w - 2 * 10 - 180) kLineHeight
-scummsaveload_title.align=kTextAlignCenter
-scummsaveload_list=10 18 prev.w (parent.h - 17 - buttonHeight - 8 - self.y)
-scummsaveload_thumbnail=(parent.w - (kThumbnailWidth + 18)) 22
-scummsaveload_thumbnail.hPad=4
-scummsaveload_thumbnail.vPad=4
-scummsaveload_thumbnail.fillR=0
-scummsaveload_thumbnail.fillG=0
-scummsaveload_thumbnail.fillB=0
-scummsaveload_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-scummsaveload_choose=(prev.x2 + 10) prev.y prev.w prev.h
-scummsaveload_delete=prev.x (prev.y - 30) prev.w prev.h
-scummsaveload_extinfo.visible=true
-
-############################################
-[chooser]
-chooserW=(w - 2 * 8)
-chooser=((w - chooserW) / 2) ((h - opHeight) / 2) chooserW opHeight
-chooser_headline=10 6 (chooserW - 2 * 10) (kLineHeight)
-chooser_headline.align=kTextAlignCenter
-chooser_list=10 (6 + kLineHeight + 2) prev.w (opHeight - self.y - buttonHeight - 12)
-chooser_cancel=(chooserW - 2 * (buttonWidth + 10)) (opHeight - buttonHeight - 8) buttonWidth buttonHeight
-chooser_ok=(prev.x2 + 10) prev.y prev.w prev.h
-
-[graphicsControls]
-gcx=10
-gcw=(parent.w - 2 * 10)
-grModePopup=(gcx - 5) (opYoffset - 1) (gcw + 5) (kLineHeight + 2)
-opYoffset=(opYoffset + kLineHeight + 4)
-grRenderPopup=prev.x (opYoffset - 1) prev.w prev.h
-opYoffset=(opYoffset + kLineHeight + 4)
-grFullscreenCheckbox=gcx opYoffset (parent.w - gcx - 5) buttonHeight
-opYoffset=(opYoffset + buttonHeight)
-grAspectCheckbox=prev.x opYoffset prev.w prev.h
-opYoffset=(opYoffset + buttonHeight)
-
-[audioControls]
-aux=10
-auw=(parent.w - 2 * 10)
-auMidiPopup=(aux - 5) (opYoffset - 1) (auw + 5) (kLineHeight + 2)
-opYoffset=(opYoffset + buttonHeight + 4)
-auSampleRatePopup=(aux - 5) (opYoffset - 1) (auw + 5) (kLineHeight + 2)
-opYoffset=(opYoffset + buttonHeight + 4)
-
-[volumeControls]
-vctextw=(95 + vcAudioTabIndent)
-vcxoff=(opXoffset + vctextw + 15)
-vcx=(opXoffset + 10)
-vcMusicText=vcx (opYoffset + 2) vctextw kLineHeight
-vcMusicText.align=kTextAlignRight
-vcMusicSlider=vcxoff opYoffset sliderWidth sliderHeight
-vcMusicLabel=(vcxoff + prev.w + 10) (opYoffset + 2) 24 kLineHeight
-opYoffset=(opYoffset + sliderHeight + vcAudioTabSpacing)
-vcSfxText=vcx (opYoffset + 2) vctextw kLineHeight
-vcSfxText.align=kTextAlignRight
-vcSfxSlider=vcxoff opYoffset sliderWidth sliderHeight
-vcSfxLabel=(vcxoff + prev.w + 10) (opYoffset + 2) 24 kLineHeight
-opYoffset=(opYoffset + sliderHeight + vcAudioTabSpacing)
-vcSpeechText=vcx (opYoffset + 2) vctextw kLineHeight
-vcSpeechText.align=kTextAlignRight
-vcSpeechSlider=vcxoff opYoffset sliderWidth sliderHeight
-vcSpeechLabel=(vcxoff + prev.w + 10) (opYoffset + 2) 24 kLineHeight
-opYoffset=(opYoffset + sliderHeight + vcAudioTabSpacing)
-
-[midiControls]
-mcx=10
-mcFontButton=mcx opYoffset buttonWidth buttonHeight
-mcFontPath=(prev.x2 + 20) (opYoffset + 3) (parent.w - (buttonWidth + 20) - mcx - kLineHeight - 20) kLineHeight
-mcFontClearButton=(prev.x2 + 10) (opYoffset + 3) kLineHeight kLineHeight
-opYoffset=(opYoffset + buttonHeight + 2 * midiControlsSpacing)
-mcMixedCheckbox=mcx opYoffset (parent.w - mcx - 5) buttonHeight
-opYoffset=(opYoffset + buttonHeight + midiControlsSpacing)
-mcMt32Checkbox=mcx opYoffset prev.w buttonHeight
-opYoffset=(opYoffset + buttonHeight + midiControlsSpacing)
-mcGSCheckbox=mcx opYoffset prev.w buttonHeight
-opYoffset=(opYoffset + buttonHeight + midiControlsSpacing)
-mcMidiGainText=mcx (opYoffset + 2) 95 kLineHeight
-mcMidiGainText.align=kTextAlignRight
-mcMidiGainSlider=(prev.x2 + 10) opYoffset sliderWidth sliderHeight
-mcMidiGainLabel=(prev.x2 + 10) (opYoffset + 2) 40 kLineHeight
-opYoffset=(opYoffset + sliderHeight + midiControlsSpacing)
-
-[subtitleControls]
-sbx=(opXoffset + 10)
-sbYoff=(buttonHeight / 8)
-sbOff=((sliderHeight - kLineHeight) / 2 + 2)
-sbtextw=(100 + vcAudioTabIndent)
-opYoffset=(opYoffset + sbYoff)
-subToggleDesc=sbx (opYoffset + sbYoff) sbtextw buttonHeight
-subToggleDesc.align=kTextAlignRight
-subToggleButton=prev.x2 (opYoffset - sbYoff) (buttonWidth + 54) buttonHeight
-opYoffset=(opYoffset + buttonHeight + 6)
-subSubtitleSpeedDesc=sbx (opYoffset + sbOff) sbtextw kLineHeight
-subSubtitleSpeedDesc.align=kTextAlignRight
-subSubtitleSpeedSlider=prev.x2 opYoffset sliderWidth sliderHeight
-subSubtitleSpeedLabel=(prev.x2 + 10) (opYoffset + sbOff) 24 kLineHeight
-opYoffset=(opYoffset + sliderHeight + 8)
-
-[scummmain]
-## Main dialog
-# note that scummmain size depends on overall height
-smY=(scummmainVSpace + scummmainVAddOff)
-scummmain_resume=scummmainHOffset smY scummmainButtonWidth scummmainButtonHeight
-smY=(smY + scummmainButtonHeight + scummmainVAddOff)
-smY=(smY + scummmainVSpace)
-scummmain_load=prev.x smY prev.w prev.h
-smY=(smY + scummmainButtonHeight + scummmainVAddOff)
-scummmain_save=prev.x smY prev.w prev.h
-smY=(smY + scummmainButtonHeight + scummmainVAddOff)
-smY=(smY + scummmainVSpace)
-scummmain_options=prev.x smY prev.w prev.h
-smY=(smY + scummmainButtonHeight + scummmainVAddOff)
-scummmain_about=prev.x smY prev.w prev.h
-smY=(smY + scummmainButtonHeight + scummmainVAddOff)
-scummmain_help=prev.x smY prev.w prev.h
-smY=(smY + scummmainButtonHeight + scummmainVAddOff)
-smY=(smY + scummmainVSpace)
-scummmain_quit=prev.x smY prev.w prev.h
-smY=(smY + scummmainButtonHeight + scummmainVAddOff)
-smW=(scummmainButtonWidth + 2 * scummmainHOffset)
-smH=(smY + scummmainVSpace)
-scummmain=((w - smW) / 2) ((h - smH) / 2) smW smH
-
-# Define our classic greenish theme here
-[320xY]
-def_widgetSize=kNormalWidgetSize
-def_buttonWidth=kButtonWidth
-def_buttonHeight=kButtonHeight
-def_sliderWidth=kSliderWidth
-def_sliderHeight=kSliderHeight
-def_kLineHeight=12
-def_kFontHeight=10
-def_insetX=10
-def_insetY=10
-def_insetW=(w - 2 * 10)
-def_insetH=(h - 30)
-def_gameOptionsLabelWidth=60
-def_tabPopupsLabelW=100
-def_aboutXOff=3
-def_aboutYOff=2
-def_aboutOuterBorder=10
-def_scummmainHOffset=8
-def_scummmainVSpace=5
-def_scummmainVAddOff=2
-def_scummmainButtonWidth=90
-def_scummmainButtonHeight=16
-def_scummhelpX=5
-def_scummhelpW=(w - 2 * 5)
-def_midiControlsSpacing=1
-def_vcAudioTabIndent=0
-def_vcAudioTabSpacing=2
-use=XxY
-
-TabWidget.tabWidth=0
-TabWidget.tabHeight=16
-TabWidget.titleVPad=2
-# Scumm Saveload dialog
-scummsaveload=8 8 (w - 2 * 8) (h - 16)
-set_parent=scummsaveload
-scummsaveload_title=10 2 (parent.w - 2 * 10) kLineHeight
-scummsaveload_list=10 18 prev.w (parent.h - 17 - buttonHeight - 8 - self.y)
-scummsaveload_thumbnail=(parent.w - (kThumbnailWidth + 22)) 18
-scummsaveload_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-scummsaveload_choose=(prev.x2 + 10) prev.y prev.w prev.h
-scummsaveload_delete=prev.x (prev.y - 30) prev.w prev.h
-scummsaveload_extinfo.visible=false
-
-# MM NES resolution
-[256x240]
-useAsIs=320xY
-
-# PSP GUI
-[480x272]
-def_buttonWidth=100
-def_buttonHeight=23
-def_insetX=20
-def_insetY=10
-def_insetW=(w - 2 * insetX)
-def_insetH=(h - 13 - insetY)
-def_launcherVersionX=50
-def_launcherVersionY=5
-def_midiControlsSpacing=2
-def_gameOptionsOverrideVPad=10
-def_aboutXOff=3
-def_aboutYOff=2
-def_aboutOuterBorder=10
-
-use=XxY
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
new file mode 100644
index 0000000000..f2ef86d241
--- /dev/null
+++ b/gui/themes/default.inc
@@ -0,0 +1,1462 @@
+"<render_info> "
+"<palette> "
+"<color name = 'black' "
+"rgb = '0, 0, 0' "
+"/> "
+"<color name = 'lightgrey' "
+"rgb = '104, 104, 104' "
+"/> "
+"<color name = 'darkgrey' "
+"rgb = '64, 64, 64' "
+"/> "
+"<color name = 'green' "
+"rgb = '32, 160, 32' "
+"/> "
+"<color name = 'green2' "
+"rgb = '0, 255, 0' "
+"/> "
+"</palette> "
+"<fonts> "
+"<font id = 'text_default' "
+"file = 'default' "
+"color = 'green' "
+"/> "
+"<font id = 'text_hover' "
+"file = 'default' "
+"color = 'green2' "
+"/> "
+"<font id = 'text_disabled' "
+"file = 'default' "
+"color = 'lightgrey' "
+"/> "
+"<font id = 'text_inverted' "
+"file = 'default' "
+"color = 'black' "
+"/> "
+"<font id = 'text_button' "
+"file = 'default' "
+"color = 'green' "
+"/> "
+"<font id = 'text_button_hover' "
+"file = 'default' "
+"color = 'green2' "
+"/> "
+"<font id = 'text_normal' "
+"file = 'default' "
+"color = 'green' "
+"/> "
+"</fonts> "
+"<defaults fill = 'foreground' fg_color = 'darkgrey' bg_color = 'black' shadow = '0' bevel_color = 'lightgrey'/> "
+"<drawdata id = 'text_selection' cache = false> "
+"<drawstep func = 'square' "
+"fill = 'foreground' "
+"fg_color = 'green' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'mainmenu_bg' cache = false> "
+"<drawstep func = 'fill' "
+"fill = 'foreground' "
+"fg_color = 'black' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'special_bg' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'separator' cache = false> "
+"<drawstep func = 'square' "
+"fill = 'foreground' "
+"height = '2' "
+"ypos = 'center' "
+"fg_color = 'lightgrey' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'scrollbar_base' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'scrollbar_handle_hover' cache = false> "
+"<drawstep func = 'square' "
+"fill = 'foreground' "
+"fg_color = 'green2' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'scrollbar_handle_idle' cache = false> "
+"<drawstep func = 'square' "
+"fill = 'foreground' "
+"fg_color = 'green' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'scrollbar_button_idle' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"<drawstep func = 'triangle' "
+"fg_color = 'green' "
+"fill = 'foreground' "
+"width = 'auto' "
+"height = 'auto' "
+"xpos = 'center' "
+"ypos = 'center' "
+"orientation = 'top' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'scrollbar_button_hover' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"<drawstep func = 'triangle' "
+"fg_color = 'green2' "
+"fill = 'foreground' "
+"width = 'auto' "
+"height = 'auto' "
+"xpos = 'center' "
+"ypos = 'center' "
+"orientation = 'top' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'tab_active' cache = false> "
+"<text font = 'text_hover' "
+"vertical_align = 'center' "
+"horizontal_align = 'center' "
+"/> "
+"<drawstep func = 'tab' "
+"bevel = '2' "
+"radius = '0' "
+"fill = 'none' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'tab_inactive' cache = false> "
+"<text font = 'text_default' "
+"vertical_align = 'center' "
+"horizontal_align = 'center' "
+"/> "
+"<drawstep func = 'tab' "
+"bevel = '2' "
+"radius = '0' "
+"fill = 'none' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'tab_background' cache = false> "
+"</drawdata> "
+"<drawdata id = 'widget_slider' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'slider_disabled' cache = false> "
+"<drawstep func = 'square' "
+"fill = 'foreground' "
+"fg_color = 'lightgrey' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'slider_full' cache = false> "
+"<drawstep func = 'square' "
+"fill = 'foreground' "
+"fg_color = 'green' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'slider_hover' cache = false> "
+"<drawstep func = 'square' "
+"fill = 'foreground' "
+"fg_color = 'green2' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'widget_small' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'popup_idle' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"<drawstep func = 'triangle' "
+"fg_color = 'green' "
+"fill = 'foreground' "
+"width = 'height' "
+"height = 'auto' "
+"xpos = 'right' "
+"ypos = 'center' "
+"orientation = 'bottom' "
+"/> "
+"<text font = 'text_default' "
+"vertical_align = 'center' "
+"horizontal_align = 'left' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'popup_hover' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"<drawstep func = 'triangle' "
+"fg_color = 'green2' "
+"fill = 'foreground' "
+"width = 'height' "
+"height = 'auto' "
+"xpos = 'right' "
+"ypos = 'center' "
+"orientation = 'bottom' "
+"/> "
+"<text font = 'text_hover' "
+"vertical_align = 'center' "
+"horizontal_align = 'left' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'widget_textedit' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'plain_bg' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'caret' cache = false> "
+"<drawstep func = 'square' "
+"fill = 'foreground' "
+"fg_color = 'lightgrey' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'default_bg' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'button_idle' cache = false> "
+"<text font = 'text_button' "
+"vertical_align = 'center' "
+"horizontal_align = 'center' "
+"/> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'button_hover' cache = false> "
+"<text font = 'text_button_hover' "
+"vertical_align = 'center' "
+"horizontal_align = 'center' "
+"/> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'button_disabled' cache = false> "
+"<text font = 'text_disabled' "
+"vertical_align = 'center' "
+"horizontal_align = 'center' "
+"/> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'checkbox_disabled' cache = false> "
+"<text font = 'text_disabled' "
+"vertical_align = 'top' "
+"horizontal_align = 'left' "
+"/> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'checkbox_selected' cache = false> "
+"<text font = 'text_default' "
+"vertical_align = 'top' "
+"horizontal_align = 'left' "
+"/> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"<drawstep func = 'cross' "
+"fill = 'foreground' "
+"stroke = '2' "
+"fg_color = 'green' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'checkbox_default' cache = false> "
+"<text font = 'text_default' "
+"vertical_align = 'top' "
+"horizontal_align = 'left' "
+"/> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"fill = 'none' "
+"/> "
+"</drawdata> "
+"<drawdata id = 'widget_default' cache = false> "
+"<drawstep func = 'bevelsq' "
+"bevel = '2' "
+"/> "
+"</drawdata> "
+"</render_info> "
+"<layout_info resolution = '-320xY, -256x240'> "
+"<globals> "
+"<def var = 'Line.Height' value = '16' /> "
+"<def var = 'Font.Height' value = '16' /> "
+"<def var = 'TabLabelWidth' value = '110' /> "
+"<def var = 'WidgetSize' value = 'kBigWidgetSize' /> "
+"<def var = 'About.OuterBorder' value = '80'/> "
+"<def var = 'PopUpWidget.labelSpacing' value = '10' /> "
+"<def var = 'Layout.Spacing' value = '8' /> "
+"<def var = 'ShowLauncherLogo' value = '0'/> "
+"<def var = 'ShowGlobalMenuLogo' value = '0'/> "
+"<def var = 'ScummSaveLoad.ExtInfo.Visible' value = '1'/> "
+"<widget name = 'OptionsLabel' "
+"size = '110, Globals.Line.Height' "
+"/> "
+"<widget name = 'SmallLabel' "
+"size = '24, Globals.Line.Height' "
+"/> "
+"<widget name = 'ShortOptionsLabel' "
+"size = '60, Globals.Line.Height' "
+"/> "
+"<widget name = 'Button' "
+"size = 'kBigButtonWidth, kBigButtonHeight' "
+"/> "
+"<widget name = 'Slider' "
+"size = 'kBigSliderWidth, kBigSliderHeight' "
+"/> "
+"<widget name = 'PopUp' "
+"size = '-1, 19' "
+"/> "
+"<widget name = 'Checkbox' "
+"size = '-1, 14' "
+"/> "
+"<widget name = 'ListWidget' "
+"padding = '5, 0, 8, 0' "
+"/> "
+"<widget name = 'PopUpWidget' "
+"padding = '7, 5, 0, 0' "
+"/> "
+"<widget name = 'EditTextWidget' "
+"padding = '5, 5, 0, 0' "
+"/> "
+"<widget name = 'Console' "
+"padding = '7, 5, 5, 5' "
+"/> "
+"<widget name = 'TabWidget.Tab' "
+"size = '75, 27' "
+"padding = '0, 0, 8, 0' "
+"/> "
+"<widget name = 'TabWidget.NavButton' "
+"size = '15, 18' "
+"padding = '0, 3, 4, 0' "
+"/> "
+"</globals> "
+"<dialog name = 'Launcher' overlays = 'screen'> "
+"<layout type = 'vertical' center = 'true' padding = '16, 16, 8, 8'> "
+"<widget name = 'Version' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'GameList'/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'> "
+"<widget name = 'LoadGameButton' "
+"height = '20' "
+"/> "
+"<widget name = 'AddGameButton' "
+"height = '20' "
+"/> "
+"<widget name = 'EditGameButton' "
+"height = '20' "
+"/> "
+"<widget name = 'RemoveGameButton' "
+"height = '20' "
+"/> "
+"</layout> "
+"<space size = '12'/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'> "
+"<widget name = 'QuitButton' "
+"height = '20' "
+"/> "
+"<widget name = 'AboutButton' "
+"height = '20' "
+"/> "
+"<widget name = 'OptionsButton' "
+"height = '20' "
+"/> "
+"<widget name = 'StartButton' "
+"height = '20' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'Browser' overlays = 'Dialog.Launcher.GameList' shading = 'dim'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 8'> "
+"<widget name = 'Headline' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'Path' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'List'/> "
+"<layout type = 'horizontal' padding = '0, 0, 16, 0'> "
+"<widget name = 'Up' "
+"type = 'Button' "
+"/> "
+"<space/> "
+"<widget name = 'Cancel' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Choose' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions' overlays = 'Dialog.Launcher.GameList' shading = 'dim'> "
+"<layout type = 'vertical' padding = '0, 0, 0, 0'> "
+"<widget name = 'TabWidget'/> "
+"<layout type = 'horizontal' padding = '16, 16, 16, 16'> "
+"<space/> "
+"<widget name = 'Cancel' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Ok' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'grModePopup' "
+"type = 'PopUp' "
+"/> "
+"<widget name = 'grRenderPopup' "
+"type = 'PopUp' "
+"/> "
+"<widget name = 'grAspectCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<widget name = 'grFullscreenCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'auMidiPopup' "
+"type = 'PopUp' "
+"/> "
+"<widget name = 'auSampleRatePopup' "
+"type = 'PopUp' "
+"/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'subToggleDesc' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'subToggleButton' "
+"width = '150' "
+"height = 'Globals.Slider.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'subSubtitleSpeedDesc' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'subSubtitleSpeedSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'subSubtitleSpeedLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'vcMusicText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcMusicSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcMusicLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'vcSfxText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcSfxSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcSfxLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'vcSpeechText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcSpeechSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcSpeechLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'mcFontButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'mcFontPath' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'mcFontClearButton' "
+"height = 'Globals.Line.Height' "
+"width = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<widget name = 'mcMixedCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<widget name = 'mcMt32Checkbox' "
+"type = 'Checkbox' "
+"/> "
+"<widget name = 'mcGSCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'mcMidiGainText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'mcMidiGainSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'mcMidiGainLabel' "
+"width = '32' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_Paths' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'SaveButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'SavePath' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'ThemeButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'ThemePath' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'ExtraButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'ExtraPath' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'PluginsButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'PluginsPath' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_Misc' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'ThemeButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'CurTheme' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<widget name = 'Renderer' "
+"type = 'PopUp' "
+"/> "
+"<widget name = 'AutosavePeriod' "
+"type = 'PopUp' "
+"/> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions' overlays = 'Dialog.Launcher.GameList' shading = 'dim'> "
+"<layout type = 'vertical' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'TabWidget'/> "
+"<layout type = 'horizontal' padding = '16, 16, 16, 4'> "
+"<space/> "
+"<widget name = 'Cancel' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Ok' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'EnableTabCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<import layout = 'Dialog.GlobalOptions_Graphics' /> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'EnableTabCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<import layout = 'Dialog.GlobalOptions_Audio' /> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'EnableTabCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<import layout = 'Dialog.GlobalOptions_MIDI' /> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'EnableTabCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<import layout = 'Dialog.GlobalOptions_Volume' /> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_Game' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'Id' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'Domain' "
+"type = 'PopUp' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'Name' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'Desc' "
+"type = 'PopUp' "
+"/> "
+"</layout> "
+"<widget name = 'Lang' "
+"type = 'PopUp' "
+"/> "
+"<widget name = 'Platform' "
+"type = 'PopUp' "
+"/> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_Paths' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'> "
+"<widget name = 'Savepath' "
+"type = 'Button' "
+"/> "
+"<widget name = 'SavepathText' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'> "
+"<widget name = 'Extrapath' "
+"type = 'Button' "
+"/> "
+"<widget name = 'ExtrapathText' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'> "
+"<widget name = 'Gamepath' "
+"type = 'Button' "
+"/> "
+"<widget name = 'GamepathText' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalMenu' overlays = 'screen_center'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' center = 'true'> "
+"<widget name = 'Title' "
+"width = '210' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'Version' "
+"width = '210' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'Resume' "
+"width = '150' "
+"height = 'Globals.Button.Height' "
+"/> "
+"<space size = '10'/> "
+"<widget name = 'Options' "
+"width = '150' "
+"height = 'Globals.Button.Height' "
+"/> "
+"<widget name = 'About' "
+"width = '150' "
+"height = 'Globals.Button.Height' "
+"/> "
+"<space size = '10'/> "
+"<widget name = 'RTL' "
+"width = '150' "
+"height = 'Globals.Button.Height' "
+"/> "
+"<widget name = 'Quit' "
+"width = '150' "
+"height = 'Globals.Button.Height' "
+"/> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'ScummMain' overlays = 'screen_center'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 8'> "
+"<widget name = 'Resume' "
+"type = 'Button' "
+"/> "
+"<space size = '15'/> "
+"<widget name = 'Load' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Save' "
+"type = 'Button' "
+"/> "
+"<space size = '15'/> "
+"<widget name = 'Options' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Help' "
+"type = 'Button' "
+"/> "
+"<widget name = 'About' "
+"type = 'Button' "
+"/> "
+"<space size = '15'/> "
+"<widget name = 'Quit' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'ScummConfig' overlays = 'screen_center'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<widget name = 'vcMusicText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcMusicSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcMusicLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<widget name = 'vcSfxText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcSfxSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcSfxLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<widget name = 'vcSpeechText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcSpeechSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcSpeechLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<widget name = 'subToggleDesc' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'subToggleButton' "
+"width = '158' "
+"height = 'Globals.Slider.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<widget name = 'subSubtitleSpeedDesc' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'subSubtitleSpeedSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'subSubtitleSpeedLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<space size = '60'/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<space size = 'Globals.Button.Width' /> "
+"<widget name = 'Cancel' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Ok' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'ScummSaveLoad' overlays = 'screen' inset = '16'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 32' center = 'true'> "
+"<widget name = 'Title' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 16' spacing = '16'> "
+"<widget name = 'List' /> "
+"<widget name = 'Thumbnail' "
+"width = '180' "
+"height = '200' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<space/> "
+"<widget name = 'Delete' "
+"type = 'Button' "
+"/> "
+"<space size = '32'/> "
+"<widget name = 'Cancel' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Choose' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'ScummHelp' overlays = 'screen_center'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'> "
+"<widget name = 'Title' "
+"width = '320' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'HelpText' "
+"height = '220' "
+"/> "
+"<layout type = 'horizontal' padding = '0, 0, 16, 0'> "
+"<widget name = 'Prev' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Next' "
+"type = 'Button' "
+"/> "
+"<space size = '32'/> "
+"<widget name = 'Close' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"</layout_info> "
+"<layout_info resolution = '320xY, 256x240'> "
+"<globals> "
+"<def var = 'Line.Height' value = '12' /> "
+"<def var = 'Font.Height' value = '10' /> "
+"<def var = 'TabLabelWidth' value = '100' /> "
+"<def var = 'WidgetSize' value = 'kNormalWidgetSize' /> "
+"<def var = 'About.OuterBorder' value = '10'/> "
+"<def var = 'PopUpWidget.labelSpacing' value = '6' /> "
+"<def var = 'Layout.Spacing' value = '8'/> "
+"<def var = 'ShowLauncherLogo' value = '0'/> "
+"<def var = 'ShowGlobalMenuLogo' value = '0'/> "
+"<def var = 'ScummSaveLoad.ExtInfo.Visible' value = '0'/> "
+"<widget name = 'Button' "
+"size = 'kButtonWidth, kButtonHeight' "
+"/> "
+"<widget name = 'Slider' "
+"size = 'kSliderWidth, kSliderHeight' "
+"/> "
+"<widget name = 'OptionsLabel' "
+"size = '110, Globals.Line.Height' "
+"/> "
+"<widget name = 'SmallLabel' "
+"size = '18, Globals.Line.Height' "
+"/> "
+"<widget name = 'PopUp' "
+"size = '-1, 15' "
+"/> "
+"<widget name = 'Checkbox' "
+"size = '-1, Globals.Line.Height' "
+"/> "
+"<widget name = 'ListWidget' "
+"padding = '5, 0, 8, 0' "
+"/> "
+"<widget name = 'PopUpWidget' "
+"padding = '7, 5, 0, 0' "
+"/> "
+"<widget name = 'EditTextWidget' "
+"padding = '5, 5, 0, 0' "
+"/> "
+"<widget name = 'Console' "
+"padding = '7, 5, 5, 5' "
+"/> "
+"<widget name = 'TabWidget.Tab' "
+"size = '45, 16' "
+"padding = '0, 0, 2, 0' "
+"/> "
+"<widget name = 'TabWidget.NavButton' "
+"size = '32, 18' "
+"padding = '0, 3, 4, 0' "
+"/> "
+"</globals> "
+"<dialog name = 'Launcher' overlays = 'screen'> "
+"<layout type = 'vertical' center = 'true' padding = '8, 8, 4, 4'> "
+"<widget name = 'Version' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'GameList'/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'> "
+"<widget name = 'LoadGameButton' "
+"height = '12' "
+"/> "
+"<widget name = 'AddGameButton' "
+"height = '12' "
+"/> "
+"<widget name = 'EditGameButton' "
+"height = '12' "
+"/> "
+"<widget name = 'RemoveGameButton' "
+"height = '12' "
+"/> "
+"</layout> "
+"<space size = '4'/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'> "
+"<widget name = 'QuitButton' "
+"height = '12' "
+"/> "
+"<widget name = 'AboutButton' "
+"height = '12' "
+"/> "
+"<widget name = 'OptionsButton' "
+"height = '12' "
+"/> "
+"<widget name = 'StartButton' "
+"height = '12' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'Browser' overlays = 'screen' inset = '16' shading = 'dim'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 8'> "
+"<widget name = 'Headline' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'Path' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'List'/> "
+"<layout type = 'horizontal' padding = '0, 0, 16, 0'> "
+"<widget name = 'Up' "
+"type = 'Button' "
+"/> "
+"<space/> "
+"<widget name = 'Cancel' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Choose' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions' overlays = 'screen' inset = '16' shading = 'dim'> "
+"<layout type = 'vertical' padding = '0, 0, 0, 0'> "
+"<widget name = 'TabWidget'/> "
+"<layout type = 'horizontal' padding = '8, 8, 8, 8'> "
+"<space/> "
+"<widget name = 'Cancel' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Ok' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'grModePopup' "
+"type = 'PopUp' "
+"/> "
+"<widget name = 'grRenderPopup' "
+"type = 'PopUp' "
+"/> "
+"<widget name = 'grAspectCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<widget name = 'grFullscreenCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'auMidiPopup' "
+"type = 'PopUp' "
+"/> "
+"<widget name = 'auSampleRatePopup' "
+"type = 'PopUp' "
+"/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'subToggleDesc' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'subToggleButton' "
+"width = 'Globals.Slider.Width' "
+"height = 'Globals.Slider.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'subSubtitleSpeedDesc' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'subSubtitleSpeedSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'subSubtitleSpeedLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'vcMusicText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcMusicSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcMusicLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'vcSfxText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcSfxSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcSfxLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'vcSpeechText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcSpeechSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcSpeechLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'mcFontButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'mcFontPath' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'mcFontClearButton' "
+"height = 'Globals.Line.Height' "
+"width = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<widget name = 'mcMixedCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<widget name = 'mcMt32Checkbox' "
+"type = 'Checkbox' "
+"/> "
+"<widget name = 'mcGSCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0'> "
+"<widget name = 'mcMidiGainText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'mcMidiGainSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'mcMidiGainLabel' "
+"width = '32' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_Paths' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'SaveButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'SavePath' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'ThemeButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'ThemePath' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'ExtraButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'ExtraPath' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'PluginsButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'PluginsPath' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalOptions_Misc' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'ThemeButton' "
+"type = 'Button' "
+"/> "
+"<widget name = 'CurTheme' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<widget name = 'Renderer' "
+"type = 'PopUp' "
+"/> "
+"<widget name = 'AutosavePeriod' "
+"type = 'PopUp' "
+"/> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions' overlays = 'screen' inset = '16' shading = 'dim'> "
+"<layout type = 'vertical' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'TabWidget'/> "
+"<layout type = 'horizontal' padding = '8, 8, 8, 8'> "
+"<space/> "
+"<widget name = 'Cancel' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Ok' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'EnableTabCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<import layout = 'Dialog.GlobalOptions_Graphics' /> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'EnableTabCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<import layout = 'Dialog.GlobalOptions_Audio' /> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'EnableTabCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<import layout = 'Dialog.GlobalOptions_MIDI' /> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'> "
+"<widget name = 'EnableTabCheckbox' "
+"type = 'Checkbox' "
+"/> "
+"<import layout = 'Dialog.GlobalOptions_Volume' /> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_Game' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'Id' "
+"width = '35' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'Domain' "
+"type = 'PopUp' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'> "
+"<widget name = 'Name' "
+"width = '35' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'Desc' "
+"type = 'PopUp' "
+"/> "
+"</layout> "
+"<space size = '8'/> "
+"<widget name = 'Lang' "
+"type = 'PopUp' "
+"/> "
+"<widget name = 'Platform' "
+"type = 'PopUp' "
+"/> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GameOptions_Paths' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'> "
+"<layout type = 'vertical' padding = '16, 16, 16, 16'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'> "
+"<widget name = 'Savepath' "
+"type = 'Button' "
+"/> "
+"<widget name = 'SavepathText' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'> "
+"<widget name = 'Extrapath' "
+"type = 'Button' "
+"/> "
+"<widget name = 'ExtrapathText' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'> "
+"<widget name = 'Gamepath' "
+"type = 'Button' "
+"/> "
+"<widget name = 'GamepathText' "
+"height = 'Globals.Line.Height' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'GlobalMenu' overlays = 'screen_center'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'> "
+"<widget name = 'Title' "
+"width = '120' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'Version' "
+"width = '120' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'Resume' "
+"width = '70' "
+"height = 'Globals.Button.Height' "
+"/> "
+"<space size = '4'/> "
+"<widget name = 'Options' "
+"width = '70' "
+"height = 'Globals.Button.Height' "
+"/> "
+"<widget name = 'About' "
+"width = '70' "
+"height = 'Globals.Button.Height' "
+"/> "
+"<space size = '4'/> "
+"<widget name = 'RTL' "
+"width = '70' "
+"height = 'Globals.Button.Height' "
+"/> "
+"<widget name = 'Quit' "
+"width = '70' "
+"height = 'Globals.Button.Height' "
+"/> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'ScummMain' overlays = 'screen_center'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 8'> "
+"<widget name = 'Resume' "
+"type = 'Button' "
+"/> "
+"<space size = '4'/> "
+"<widget name = 'Load' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Save' "
+"type = 'Button' "
+"/> "
+"<space size = '4'/> "
+"<widget name = 'Options' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Help' "
+"type = 'Button' "
+"/> "
+"<widget name = 'About' "
+"type = 'Button' "
+"/> "
+"<space size = '4'/> "
+"<widget name = 'Quit' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'ScummConfig' overlays = 'screen_center'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 8'> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<widget name = 'vcMusicText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcMusicSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcMusicLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<widget name = 'vcSfxText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcSfxSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcSfxLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<widget name = 'vcSpeechText' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'vcSpeechSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'vcSpeechLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<widget name = 'subToggleDesc' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'subToggleButton' "
+"width = '92' "
+"height = 'Globals.Slider.Height' "
+"/> "
+"</layout> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<widget name = 'subSubtitleSpeedDesc' "
+"type = 'OptionsLabel' "
+"/> "
+"<widget name = 'subSubtitleSpeedSlider' "
+"type = 'Slider' "
+"/> "
+"<widget name = 'subSubtitleSpeedLabel' "
+"type = 'SmallLabel' "
+"/> "
+"</layout> "
+"<space size = '20'/> "
+"<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'> "
+"<space size = 'Globals.Button.Width' /> "
+"<widget name = 'Cancel' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Ok' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'ScummSaveLoad' overlays = 'screen' inset = '16'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'> "
+"<widget name = 'Title' height = 'Globals.Line.Height'/> "
+"<widget name = 'List' /> "
+"<layout type = 'horizontal' padding = '0, 0, 16, 0'> "
+"<space/> "
+"<widget name = 'Delete' "
+"type = 'Button' "
+"/> "
+"<space size = '16'/> "
+"<widget name = 'Cancel' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Choose' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name = 'ScummHelp' overlays = 'screen_center'> "
+"<layout type = 'vertical' padding = '8, 8, 8, 8'> "
+"<widget name = 'Title' "
+"width = '180' "
+"height = 'Globals.Line.Height' "
+"/> "
+"<widget name = 'HelpText' "
+"height = '170' "
+"/> "
+"<layout type = 'horizontal' padding = '0, 0, 4, 0'> "
+"<widget name = 'Prev' "
+"type = 'Button' "
+"/> "
+"<widget name = 'Next' "
+"type = 'Button' "
+"/> "
+"<space size = '32'/> "
+"<widget name = 'Close' "
+"type = 'Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"</layout_info> "
diff --git a/gui/themes/modern.ini b/gui/themes/modern.ini
deleted file mode 100644
index e1712c5608..0000000000
--- a/gui/themes/modern.ini
+++ /dev/null
@@ -1,649 +0,0 @@
-# $URL$
-# $Id$
-[theme]
-version=24
-type=modern
-name=Modern Style
-
-[pixmaps]
-pix_dialog_corner="dialog_bkgd_corner.bmp"
-pix_dialog_top="dialog_bkgd_top.bmp"
-pix_dialog_left="dialog_bkgd_left.bmp"
-pix_dialog_bkgd="dialog_bkgd.bmp"
-
-pix_widget_corner="widget_bkgd_corner.bmp"
-pix_widget_top="widget_bkgd_top.bmp"
-pix_widget_left="widget_bkgd_left.bmp"
-pix_widget_bkgd="widget_bkgd.bmp"
-
-pix_widget_small_corner="widget_small_bkgd_corner.bmp"
-pix_widget_small_top="widget_small_bkgd_top.bmp"
-pix_widget_small_left="widget_small_bkgd_left.bmp"
-pix_widget_small_bkgd="widget_small_bkgd.bmp"
-
-pix_checkbox_empty="checkbox_empty.bmp"
-pix_checkbox_checked="checkbox_checked.bmp"
-
-pix_widget_arrow="widget_arrow.bmp"
-
-pix_tab_corner="button_bkgd_corner.bmp"
-pix_tab_top="widget_bkgd_top.bmp"
-pix_tab_left="widget_bkgd_left.bmp"
-pix_tab_bkgd="widget_bkgd.bmp"
-
-pix_slider_bkgd_corner="button_bkgd_corner.bmp"
-pix_slider_bkgd_top="button_bkgd_top.bmp"
-pix_slider_bkgd_left="button_bkgd_left.bmp"
-pix_slider_bkgd_bkgd="button_bkgd.bmp"
-
-pix_slider_corner="button_bkgd_corner.bmp"
-pix_slider_top="button_bkgd_top.bmp"
-pix_slider_left="button_bkgd_left.bmp"
-pix_slider_bkgd="button_bkgd.bmp"
-
-pix_scrollbar_bkgd_corner="widget_small_bkgd_corner.bmp"
-pix_scrollbar_bkgd_top="widget_small_bkgd_top.bmp"
-pix_scrollbar_bkgd_left="widget_small_bkgd_left.bmp"
-pix_scrollbar_bkgd_bkgd="widget_small_bkgd.bmp"
-
-pix_scrollbar_corner="widget_bkgd_corner.bmp"
-pix_scrollbar_top="widget_bkgd_top.bmp"
-pix_scrollbar_left="widget_bkgd_left.bmp"
-pix_scrollbar_bkgd="widget_bkgd.bmp"
-
-pix_button_corner="button_bkgd_corner.bmp"
-pix_button_top="button_bkgd_top.bmp"
-pix_button_left="button_bkgd_left.bmp"
-pix_button_bkgd="button_bkgd.bmp"
-
-pix_popupwidget_corner="button_bkgd_corner.bmp"
-pix_popupwidget_top="button_bkgd_top.bmp"
-pix_popupwidget_left="button_bkgd_left.bmp"
-pix_popupwidget_bkgd="button_bkgd.bmp"
-
-pix_edittext_bkgd_corner="button_bkgd_corner.bmp"
-pix_edittext_bkgd_top="button_bkgd_top.bmp"
-pix_edittext_bkgd_left="button_bkgd_left.bmp"
-pix_edittext_bkgd_bkgd="button_bkgd.bmp"
-
-pix_theme_logo="logo.bmp"
-pix_theme_logo_small="logo_small.bmp"
-
-pix_cursor_image="cursor.bmp"
-
-[colors]
-main_dialog_start=210 114 10
-main_dialog_end=239 196 24
-
-dialog_start=246 224 139
-dialog_end=251 241 206
-
-color_state_disabled=192 192 192
-color_state_highlight=100 162 8
-color_state_enabled=0 0 0
-
-color_transparency=255 0 255
-
-text_inverted_background=100 162 8
-text_inverted_color=0 0 0
-
-widget_bkgd_start=246 224 139
-widget_bkgd_end=251 241 206
-widget_bkgd_small_start=246 224 139
-widget_bkgd_small_end=251 241 206
-
-button_bkgd_start=203 126 107
-button_bkgd_end=169 42 12
-button_bkgd_highlight_start=255 210 200
-button_bkgd_highlight_end=200 70 50
-button_text_enabled=255 255 255
-button_text_disabled=192 192 192
-button_text_highlight=255 214 84
-
-slider_background_start=247 228 166
-slider_background_end=247 228 166
-slider_start=203 126 107
-slider_end=169 42 12
-slider_highlight_start=255 210 200
-slider_highlight_end=200 70 50
-
-tab_background_start=232 180 80
-tab_background_end=232 180 80
-
-tab_active_start=246 224 139
-tab_active_end=251 241 206
-tab_inactive_start=239 202 109
-tab_inactive_end=239 202 109
-
-scrollbar_background_start=247 228 166
-scrollbar_background_end=247 228 166
-scrollbar_button_start=247 228 166
-scrollbar_button_end=247 228 166
-scrollbar_slider_start=203 126 107
-scrollbar_slider_end=169 42 12
-scrollbar_button_highlight_start=255 210 200
-scrollbar_button_highlight_end=200 70 50
-scrollbar_slider_highlight_start=255 210 200
-scrollbar_slider_highlight_end=200 70 50
-
-popupwidget_start=251 241 206
-popupwidget_end=251 241 206
-popupwidget_highlight_start=246 224 139
-popupwidget_highlight_end=251 241 206
-
-edittext_background_start=247 228 166
-edittext_background_end=247 228 166
-
-caret_color=0 0 0
-
-[gradients]
-gradient_dialog_main=1
-gradient_dialog=4
-gradient_dialog_special=4
-
-gradient_widget_small=9
-gradient_widget=9
-
-gradient_button=1
-
-gradient_slider=1
-gradient_slider_bkgd=1
-
-gradient_tab=4
-
-gradient_scrollbar=1
-gradient_scrollbar_background=1
-
-gradient_popupwidget=1
-
-gradient_edittext=1
-
-[extra]
-shadow_left_width=2
-shadow_right_width=4
-shadow_top_height=2
-shadow_bottom_height=4
-inactive_dialog_shading=kShadingDim
-shading_dim_percent=50
-fontfile_normal="helvr12-l1.bdf"
-fontfile_fixed_normal="courr12-l1.bdf"
-cursor_hotspot_x=0
-cursor_hotspot_y=0
-cursor_targetScale=3
-
-[XxY]
-skipFor=320xY,256x240
-def_widgetSize=kBigWidgetSize
-def_buttonWidth=120
-def_buttonHeight=25
-def_sliderWidth=kBigSliderWidth
-def_sliderHeight=kBigSliderHeight
-def_kLineHeight=16
-def_kFontHeight=14
-def_kPopUpHeight=(kLineHeight + 3)
-def_insetX=23
-def_insetY=94
-def_insetW=(w - buttonWidth - 17 * 2 - insetX)
-def_insetH=(h - 23 - insetY)
-def_optionsVPad=20
-def_optionsLabelWidth=110
-def_gameOptionsOverrideVPad=20
-def_tabPopupsLabelW=optionsLabelWidth
-def_aboutXOff=8
-def_aboutYOff=5
-def_aboutOuterBorder=80
-def_scummmainHOffset=12
-def_scummmainVSpace=15
-def_scummmainVAddOff=5
-def_scummhelpW=370
-def_scummhelpX=((w - scummhelpW) / 2)
-def_launcherVersionX=(w / 2 - 283 / 2 - 90)
-def_launcherVersionY=21
-
-def_xSeparation=10
-def_ySeparation=10
-def_xBorder=15
-
-use=pixmaps
-use=colors
-use=gradients
-use=extra
-
-##### Widgets config
-ListWidget.leftPadding=7
-ListWidget.rightPadding=5
-ListWidget.topPadding=5
-ListWidget.bottomPadding=5
-ListWidget.hlLeftPadding=0
-ListWidget.hlRightPadding=0
-PopUpWidget.leftPadding=7
-PopUpWidget.rightPadding=5
-PopUpWidget.labelSpacing=xSeparation
-EditTextWidget.font=kFontStyleNormal
-EditTextWidget.leftPadding=7
-EditTextWidget.rightPadding=5
-Console.font=kFontStyleFixedNormal
-Console.leftPadding=7
-Console.rightPadding=5
-Console.topPadding=5
-Console.bottomPadding=5
-TabWidget.tabWidth=75
-TabWidget.tabHeight=27
-TabWidget.titleVPad=8
-TabWidget.navButtonRightPad=3
-TabWidget.navButtonTopPad=4
-TabWidget.navButtonW=15
-TabWidget.navButtonH=18
-
-###### chooser
-opHeight=insetH
-useWithPrefix=chooser defaultChooser_
-
-##### browser
-use=browser
-
-##### launcher
-launcher_version=launcherVersionX launcherVersionY 247 kLineHeight
-launcher_version.align=kTextAlignRight
-launcher_logo=(w / 2 - 283 / 2) 5 283 80
-launcher_logo.visible=true
-space1=20
-space2=5
-launcher_list=insetX insetY insetW insetH
-launcher_start_button=(prev.x2 + 17) prev.y buttonWidth buttonHeight
-launcher_loadGame_button=prev.x (prev.y2 + space2) prev.w prev.h
-launcher_addGame_button=prev.x (prev.y2 + space1) prev.w prev.h
-launcher_editGame_button=prev.x (prev.y2 + space2) prev.w prev.h
-launcher_removeGame_button=prev.x (prev.y2 + space2) prev.w prev.h
-launcher_options_button=prev.x (prev.y2 + space1) prev.w prev.h
-launcher_about_button=prev.x (prev.y2 + space2) prev.w prev.h
-launcher_quit_button=prev.x (prev.y2 + space1) prev.w prev.h
-
-use=scummmain
-
-#### Global Main Menu Dialog
-# note that globalmain size depends on overall height
-hBorder=10
-gmW=(scummmainButtonWidth + (2 * scummmainHOffset) + 80)
-global_logo=((gmW - 142) / 2) scummmainVSpace 142 40
-global_logo.visible=true
-global_version=hBorder (prev.y + prev.h) (gmW - 2 * hBorder) kLineHeight
-global_version.align=kTextAlignCenter
-gmY=(prev.y + prev.h + scummmainVAddOff)
-globalmain_resume=globalmainHOffset gmY scummmainButtonWidth scummmainButtonHeight
-gmY=(gmY + scummmainButtonHeight + scummmainVAddOff)
-gmY=(gmY + scummmainVSpace)
-globalmain_options=prev.x gmY prev.w prev.h
-gmY=(gmY + scummmainButtonHeight + scummmainVAddOff)
-globalmain_about=prev.x gmY prev.w prev.h
-gmY=(gmY + scummmainButtonHeight + scummmainVAddOff)
-gmY=(gmY + scummmainVSpace)
-globalmain_rtl=prev.x gmY prev.w prev.h
-gmY=(gmY + scummmainButtonHeight + scummmainVAddOff)
-globalmain_quit=prev.x gmY prev.w prev.h
-gmY=(gmY + scummmainButtonHeight + scummmainVAddOff)
-gmH=(gmY + scummmainVSpace)
-globalmain=((w - gmW) / 2) ((h - gmH) / 2) gmW gmH
-
-### global options
-globaloptions=insetX insetY insetW insetH
-set_parent=globaloptions
-vBorder=optionsVPad
-globaloptions_tabwidget=0 0 parent.w (parent.h - buttonHeight - 8 - ySeparation)
-
-# graphics tab
-opYoffset=vBorder
-opXoffset=0
-useWithPrefix=graphicsControls globaloptions_
-
-# audio tab
-opYoffset=vBorder
-useWithPrefix=audioControls globaloptions_
-useWithPrefix=subtitleControls globaloptions_
-
-# volume tab
-opYoffset=vBorder
-useWithPrefix=volumeControls globaloptions_
-
-# MIDI tab
-opYoffset=vBorder
-useWithPrefix=midiControls globaloptions_
-
-# paths tab
-yoffset=vBorder
-glOff=((buttonHeight - kLineHeight) / 2 + 2)
-globaloptions_savebutton=xBorder yoffset buttonWidth buttonHeight
-globaloptions_savepath=(prev.x2 + xSeparation) (yoffset + glOff) (parent.w - self.x - xBorder) kLineHeight
-yoffset=(yoffset + buttonHeight + ySeparation)
-globaloptions_extrabutton=xBorder yoffset buttonWidth buttonHeight
-globaloptions_extrapath=(prev.x2 + xSeparation) (yoffset + glOff) (parent.w - self.x - xBorder) kLineHeight
-yoffset=(yoffset + buttonHeight + ySeparation)
-globaloptions_themebutton=xBorder yoffset buttonWidth buttonHeight
-globaloptions_themepath=(prev.x2 + xSeparation) (yoffset + glOff) (parent.w - self.x - xBorder) kLineHeight
-yoffset=(yoffset + buttonHeight + ySeparation)
-globaloptions_pluginsbutton=xBorder yoffset buttonWidth buttonHeight
-globaloptions_pluginspath=(prev.x2 + xSeparation) (yoffset + glOff) (parent.w - self.x - xBorder) kLineHeight
-yoffset=(yoffset + buttonHeight + ySeparation)
-globaloptions_keysbutton=xBorder yoffset buttonWidth buttonHeight
-
-# Misc options
-yoffset=vBorder
-glOff=((buttonHeight - kLineHeight) / 2 + 2)
-globaloptions_themebutton2=xBorder yoffset buttonWidth buttonHeight
-globaloptions_curtheme=(prev.x2 + xSeparation) (yoffset + glOff) (parent.w - self.x - xBorder) kLineHeight
-yoffset=(yoffset + buttonHeight + ySeparation)
-globaloptions_autosaveperiod=xBorder yoffset (parent.w - self.x - xBorder) kPopUpHeight
-
-globaloptions_cancel=(parent.w - 2 * buttonWidth - xSeparation - xBorder) (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-globaloptions_ok=(prev.x2 + xSeparation) prev.y prev.w prev.h
-
-### game options
-gameoptions=insetX insetY insetW insetH
-set_parent=gameoptions
-vBorder=gameOptionsOverrideVPad
-gox=xBorder
-gow=(parent.w - gox - xBorder)
-
-gameoptions_tabwidget=0 0 parent.w (parent.h - buttonHeight - 8 - ySeparation)
-
-# game tab
-opYoffset=optionsVPad
-glOff=((kPopUpHeight - kLineHeight) / 2 + 2)
-gameoptions_id=gox (opYoffset + glOff) optionsLabelWidth kLineHeight
-gameoptions_id.align=kTextAlignRight
-gameoptions_domain=(prev.x2 + xSeparation) opYoffset (parent.w - self.x - xBorder) kPopUpHeight
-opYoffset=(opYoffset + prev.h + ySeparation)
-gameoptions_name=gox (opYoffset + glOff) optionsLabelWidth kLineHeight
-gameoptions_name.align=kTextAlignRight
-gameoptions_desc=(prev.x2 + xSeparation) opYoffset (parent.w - self.x - xBorder) kPopUpHeight
-opYoffset=(opYoffset + prev.h + ySeparation)
-gameoptions_lang=gox opYoffset (parent.w - self.x - xBorder) kPopUpHeight
-opYoffset=(opYoffset + prev.h + ySeparation)
-gameoptions_platform=prev.x opYoffset prev.w prev.h
-opYoffset=(opYoffset + prev.h + ySeparation)
-
-# paths tab
-opYoffset=optionsVPad
-goOff=((buttonHeight - kLineHeight) / 2 + 2)
-gameoptions_savepath=gox opYoffset buttonWidth buttonHeight
-gameoptions_savepathText=(prev.x2 + xSeparation) (opYoffset + goOff) (parent.w - self.x - xBorder) kLineHeight
-opYoffset=(opYoffset + buttonHeight + ySeparation)
-gameoptions_extrapath=gox opYoffset buttonWidth buttonHeight
-gameoptions_extrapathText=(prev.x2 + xSeparation) (opYoffset + goOff) (parent.w - self.x - xBorder) kLineHeight
-opYoffset=(opYoffset + buttonHeight + ySeparation)
-gameoptions_gamepath=gox opYoffset buttonWidth buttonHeight
-gameoptions_gamepathText=(prev.x2 + xSeparation) (opYoffset + goOff) (parent.w - self.x - xBorder) kLineHeight
-opYoffset=(opYoffset + buttonHeight + ySeparation)
-
-# graphics tab
-opYoffset=vBorder
-opXoffset=gox
-gameoptions_graphicsCheckbox=gox opYoffset (parent.w - gox - xBorder) buttonHeight
-opYoffset=(prev.y2 + ySeparation)
-useWithPrefix=graphicsControls gameoptions_
-
-# audio tab
-opYoffset=vBorder
-gameoptions_audioCheckbox=gox opYoffset (parent.w - gox - xBorder) buttonHeight
-opYoffset=(prev.y2 + ySeparation)
-useWithPrefix=audioControls gameoptions_
-useWithPrefix=subtitleControls gameoptions_
-
-# volume tab
-opYoffset=vBorder
-gameoptions_volumeCheckbox=gox opYoffset (parent.w - gox - xBorder) buttonHeight
-opYoffset=(prev.y2 + ySeparation)
-useWithPrefix=volumeControls gameoptions_
-
-# midi tab
-opYoffset=vBorder
-gameoptions_midiCheckbox=gox opYoffset (parent.w - gox - xBorder) buttonHeight
-opYoffset=(prev.y2 + ySeparation)
-useWithPrefix=midiControls gameoptions_
-
-gameoptions_cancel=(parent.w - 2 * buttonWidth - xSeparation - xBorder) (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-gameoptions_ok=(prev.x2 + xSeparation) prev.y prev.w prev.h
-
-### keys dialog
-keysdialog=(w / 20) (h / 10) (w - w / 10) (h - h / 5)
-set_parent=keysdialog
-keysdialog_map=(parent.w - buttonWidth - 10) 20 buttonWidth buttonHeight
-keysdialog_ok=prev.x (prev.y2 + 4) prev.w prev.h
-keysdialog_cancel=prev.x (prev.y2 + 4) prev.w prev.h
-keysdialog_list=10 10 (prev.x - 20) (parent.h - kLineHeight * 4 - self.y)
-keysdialog_action=prev.x (parent.h - kLineHeight * 3) (parent.w - self.x * 2) kLineHeight
-keysdialog_action.align=kTextAlignCenter
-keysdialog_mapping=prev.x (prev.y + kLineHeight) prev.w prev.h
-keysdialog_mapping.align=kTextAlignCenter
-
-### mass add dialog
-massadddialog=10 20 300 174
-set_parent=massadddialog
-massadddialog_caption=xBorder (10 + 1 * kLineHeight) (parent.w - 2 * xBorder) kLineHeight
-massadddialog_caption.align=kTextAlignCenter
-massadddialog_dirprogress=xBorder (10 + 3 * kLineHeight) prev.w prev.h
-massadddialog_dirprogress.align=kTextAlignCenter
-massadddialog_gameprogress=xBorder (10 + 4 * kLineHeight) prev.w prev.h
-massadddialog_gameprogress.align=kTextAlignCenter
-massadddialog_ok=((parent.w - (buttonWidth * 2) - xSeparation) / 2) (parent.h - buttonHeight - ySeparation) buttonWidth buttonHeight
-massadddialog_cancel=(prev.x2 + xSeparation) prev.y prev.w prev.h
-
-
-##### SCUMM dialogs
-scummDummyDialog=0 80 0 16
-
-use=scummmain
-## Engine config
-# note that scummconfig size depends on overall height
-# hence it is on the end of the list
-opYoffset=8
-useWithPrefix=volumeControls scummconfig_
-opYoffset=(opYoffset + 2)
-useWithPrefix=subtitleControls scummconfig_
-opYoffset=(opYoffset + buttonHeight)
-opYoffset=(opYoffset + buttonHeight + 4)
-soWidth=(8 + 3 * buttonWidth + 4)
-scummconfig_keys=(soWidth - 3 * (buttonWidth + 4) + 6) opYoffset (buttonWidth - 10) buttonHeight
-scummconfig_cancel=(prev.x2 + 4) prev.y (prev.w + 10) prev.h
-scummconfig_ok=(prev.x2 + 4) prev.y prev.w prev.h
-opYoffset=(opYoffset + buttonHeight)
-scummconfig=((w - soWidth) / 2) ((h - opYoffset) / 2) soWidth (opYoffset + 8)
-
-## Help
-scummHelpNumLines=15
-shH=(5 + (2 + scummHelpNumLines) * kFontHeight + buttonHeight + 7)
-shButtonWidth=(buttonWidth - 20)
-scummhelp=scummhelpX ((h - shH) / 2) scummhelpW shH
-scummhelp_title=10 5 scummhelpW kFontHeight
-scummhelp_title.align=kTextAlignCenter
-scummhelp_key.x=10
-scummhelp_key.yoffset=5
-scummhelp_key.w=80
-scummhelp_key.h=kFontHeight
-scummhelp_dsc.x=90
-scummhelp_dsc.yoffset=5
-scummhelp_dsc.w=(scummhelpW - 10 - 90)
-scummhelp_dsc.h=kFontHeight
-scummhelp_prev=10 (5 + kFontHeight * (scummHelpNumLines + 2) + 2) shButtonWidth buttonHeight
-scummhelp_next=(prev.x2 + 8) prev.y prev.w prev.h
-scummhelp_close=(scummhelpW - 8 - shButtonWidth) prev.y prev.w prev.h
-
-# Saveload dialog
-scummsaveload=8 8 (w - 2 * 8) (h - 16)
-set_parent=scummsaveload
-scummsaveload_title=10 2 (parent.w - 2 * 10 - 180-20) kLineHeight
-scummsaveload_title.align=kTextAlignCenter
-scummsaveload_list=10 18 prev.w (parent.h - 17 - buttonHeight - 8 - self.y)
-scummsaveload_thumbnail=(parent.w - (kThumbnailWidth + 22)) 18
-scummsaveload_thumbnail.hPad=10
-scummsaveload_thumbnail.vPad=10
-scummsaveload_thumbnail.fillR=0
-scummsaveload_thumbnail.fillG=0
-scummsaveload_thumbnail.fillB=0
-scummsaveload_cancel=(parent.w - 2 * (buttonWidth + 10)) (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-scummsaveload_choose=(prev.x2 + 10) prev.y prev.w prev.h
-scummsaveload_delete=prev.x (prev.y - 30) prev.w prev.h
-scummsaveload_extinfo.visible=true
-
-############################################
-[chooser]
-chooserW=insetW
-chooser=insetX insetY chooserW opHeight
-chooser_headline=xBorder 6 (chooserW - 2 * xBorder) kLineHeight
-chooser_list=prev.x (prev.y2 + 2) prev.w (opHeight - self.y - buttonHeight - 12)
-#JVPRAT: next Y doesn't seem right
-chooser_cancel=(chooserW - 2 * buttonWidth - xSeparation - xBorder) (opHeight - buttonHeight - 8) buttonWidth buttonHeight
-chooser_ok=(prev.x2 + xSeparation) prev.y prev.w prev.h
-
-[browser]
-browser=insetX insetY insetW insetH
-set_parent=browser
-browser_headline=xBorder 5 (parent.w - 2 * xBorder) kLineHeight
-browser_headline.align=kTextAlignCenter
-browser_path=prev.x (prev.y2 + 5) prev.w prev.h
-browser_list=prev.x prev.y2 prev.w (parent.h - 3 * kLineHeight - buttonHeight - 14)
-browser_up=prev.x (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-#JVPRAT: doesn't it lack insetx?:
-browser_cancel=(parent.w - 2 * buttonWidth - xSeparation - xBorder) (parent.h - buttonHeight - 8) buttonWidth buttonHeight
-browser_choose=(prev.x2 + xSeparation) prev.y prev.w prev.h
-
-[graphicsControls]
-gcx=(opXoffset + xBorder)
-grModePopup=gcx opYoffset (parent.w - self.x - xBorder) kPopUpHeight
-opYoffset=(prev.y2 + ySeparation)
-grRenderPopup=prev.x (opYoffset - 1) prev.w prev.h
-opYoffset=(prev.y2 + ySeparation)
-grFullscreenCheckbox=gcx opYoffset (parent.w - gcx - xBorder) kLineHeight
-opYoffset=(prev.y2 + ySeparation)
-grAspectCheckbox=prev.x opYoffset prev.w prev.h
-opYoffset=(prev.y2 + ySeparation)
-
-[audioControls]
-aux=(opXoffset + xBorder)
-auMidiPopup=aux opYoffset (parent.w - self.x - xBorder) kPopUpHeight
-opYoffset=(opYoffset + prev.h + ySeparation)
-auSampleRatePopup=aux (opYoffset - 1) prev.w kPopUpHeight
-opYoffset=(opYoffset + prev.h + ySeparation)
-
-[volumeControls]
-vcx=(opXoffset + xBorder)
-vcOff=((sliderHeight - kLineHeight) / 2 + 2)
-vcMusicText=vcx (opYoffset + vcOff) optionsLabelWidth kLineHeight
-vcMusicText.align=kTextAlignRight
-vcMusicSlider=(prev.x2 + xSeparation) opYoffset sliderWidth sliderHeight
-vcMusicLabel=(prev.x2 + xSeparation) (opYoffset + vcOff) 24 kLineHeight
-opYoffset=(opYoffset + sliderHeight + ySeparation)
-vcSfxText=vcx (opYoffset + vcOff) optionsLabelWidth kLineHeight
-vcSfxText.align=kTextAlignRight
-vcSfxSlider=(prev.x2 + xSeparation) opYoffset sliderWidth sliderHeight
-vcSfxLabel=(prev.x2 + xSeparation) (opYoffset + vcOff) 24 kLineHeight
-opYoffset=(opYoffset + sliderHeight + ySeparation)
-vcSpeechText=vcx (opYoffset + vcOff) optionsLabelWidth kLineHeight
-vcSpeechText.align=kTextAlignRight
-vcSpeechSlider=(prev.x2 + xSeparation) opYoffset sliderWidth sliderHeight
-vcSpeechLabel=(prev.x2 + xSeparation) (opYoffset + vcOff) 24 kLineHeight
-opYoffset=(opYoffset + sliderHeight + ySeparation)
-
-[midiControls]
-mcx=(opXoffset + xBorder)
-mcOff=((buttonHeight - kLineHeight) / 2 + 2)
-mcFontButton=mcx opYoffset buttonWidth buttonHeight
-mcFontPath=(prev.x2 + xSeparation) (opYoffset + mcOff) (parent.w - self.x - xSeparation - kLineHeight - xBorder) kLineHeight
-mcFontClearButton=(prev.x2 + xSeparation) prev.y kLineHeight kLineHeight
-opYoffset=(opYoffset + buttonHeight + ySeparation)
-mcMixedCheckbox=mcx opYoffset (parent.w - self.x - xBorder) kLineHeight
-opYoffset=(opYoffset + prev.h + ySeparation)
-mcMt32Checkbox=mcx opYoffset prev.w kLineHeight
-opYoffset=(opYoffset + prev.h + ySeparation)
-mcGSCheckbox=mcx opYoffset prev.w kLineHeight
-opYoffset=(opYoffset + prev.h + ySeparation)
-mcOff=((sliderHeight - kLineHeight) / 2 + 2)
-mcMidiGainText=mcx (opYoffset + mcOff) optionsLabelWidth kLineHeight
-mcMidiGainText.align=kTextAlignRight
-mcMidiGainSlider=(prev.x2 + xSeparation) opYoffset sliderWidth sliderHeight
-mcMidiGainLabel=(prev.x2 + xSeparation) (opYoffset + mcOff) 40 kLineHeight
-opYoffset=(opYoffset + sliderHeight + ySeparation)
-
-[subtitleControls]
-sbx=(opXoffset + xBorder)
-sbOff=((sliderHeight - kLineHeight) / 2 + 2)
-subToggleDesc=sbx (opYoffset + sbOff) optionsLabelWidth kLineHeight
-subToggleDesc.align=kTextAlignRight
-subToggleButton=(prev.x2 + xSeparation) opYoffset (buttonWidth + 34) sliderHeight
-opYoffset=(prev.y2 + ySeparation)
-subSubtitleSpeedDesc=sbx (opYoffset + sbOff) optionsLabelWidth kLineHeight
-subSubtitleSpeedDesc.align=kTextAlignRight
-subSubtitleSpeedSlider=(prev.x2 + xSeparation) opYoffset sliderWidth sliderHeight
-subSubtitleSpeedLabel=(prev.x2 + xSeparation) (opYoffset + sbOff) 24 kLineHeight
-opYoffset=(opYoffset + sliderHeight + ySeparation)
-
-[scummmain]
-## Main dialog
-# note that scummmain size depends on overall height
-smY=scummmainHOffset
-scummmain_resume=scummmainHOffset smY buttonWidth buttonHeight
-smY=(smY + buttonHeight + scummmainVAddOff)
-smY=(smY + scummmainVSpace)
-scummmain_load=prev.x smY prev.w prev.h
-smY=(smY + buttonHeight + scummmainVAddOff)
-scummmain_save=prev.x smY prev.w prev.h
-smY=(smY + buttonHeight + scummmainVAddOff)
-smY=(smY + scummmainVSpace)
-scummmain_options=prev.x smY prev.w prev.h
-smY=(smY + buttonHeight + scummmainVAddOff)
-scummmain_about=prev.x smY prev.w prev.h
-smY=(smY + buttonHeight + scummmainVAddOff)
-scummmain_help=prev.x smY prev.w prev.h
-smY=(smY + buttonHeight + scummmainVAddOff)
-smY=(smY + scummmainVSpace)
-scummmain_quit=prev.x smY prev.w prev.h
-smH=(smY + buttonHeight + scummmainHOffset)
-smW=(buttonWidth + 2 * scummmainHOffset)
-scummmain=((w - smW) / 2) ((h - smH) / 2) smW smH
-
-[320xY]
-use=pixmaps
-use=colors
-use=gradients
-use=extra
-shadow_right_width=1
-pix_checkbox_empty="checkbox_empty320.bmp"
-pix_checkbox_checked="checkbox_checked320.bmp"
-pix_cursor_image="cursor320.bmp"
-
-# NES resoltuion
-[256x240]
-use=320xY
-
-# PSP GUI
-[480x272]
-def_buttonWidth=100
-def_buttonHeight=23
-def_insetX=20
-def_insetY=10
-def_insetW=(w - buttonWidth - 17 * 2 - insetX)
-def_insetH=(h - 13 - insetY)
-def_launcherVersionX=50
-def_launcherVersionY=5
-def_gameOptionsOverrideVPad=10
-def_aboutXOff=3
-def_aboutYOff=2
-def_aboutOuterBorder=10
-
-use=XxY
-
-TabWidget.tabWidth=75
-
-# Override launcher
-launcher_list=insetX 103 (w - buttonWidth - 17 * 2 - self.x) (h - 15 - self.y)
-launcher_version=50 80 247 kLineHeight
-launcher_version.align=kTextAlignCenter
-launcher_logo=40 2 283 80
-launcher_logo.visible=true
-
-# Override extras
-inactive_dialog_shading=kShadingNone
-
-# Override browser
-def_buttonWidth=90
-use=browser
diff --git a/gui/themes/modern.zip b/gui/themes/modern.zip
deleted file mode 100644
index 329e3a2c1b..0000000000
--- a/gui/themes/modern.zip
+++ /dev/null
Binary files differ
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
new file mode 100644
index 0000000000..e285958029
--- /dev/null
+++ b/gui/themes/scummclassic.zip
Binary files differ
diff --git a/gui/themes/scummclassic/THEMERC b/gui/themes/scummclassic/THEMERC
new file mode 100644
index 0000000000..df6c0508b2
--- /dev/null
+++ b/gui/themes/scummclassic/THEMERC
@@ -0,0 +1 @@
+[SCUMMVM_THEME_V23:ScummVM Classic Theme:No Author] \ No newline at end of file
diff --git a/gui/themes/scummclassic/classic_gfx.stx b/gui/themes/scummclassic/classic_gfx.stx
new file mode 100644
index 0000000000..d9189743d3
--- /dev/null
+++ b/gui/themes/scummclassic/classic_gfx.stx
@@ -0,0 +1,364 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+<render_info>
+ <palette>
+ <color name = 'black'
+ rgb = '0, 0, 0'
+ />
+ <color name = 'lightgrey'
+ rgb = '104, 104, 104'
+ />
+ <color name = 'darkgrey'
+ rgb = '64, 64, 64'
+ />
+ <color name = 'green'
+ rgb = '32, 160, 32'
+ />
+ <color name = 'green2'
+ rgb = '0, 255, 0'
+ />
+ </palette>
+
+ <fonts>
+ <font id = 'text_default'
+ file = 'default'
+ color = 'green'
+ />
+ <font id = 'text_hover'
+ file = 'default'
+ color = 'green2'
+ />
+ <font id = 'text_disabled'
+ file = 'default'
+ color = 'lightgrey'
+ />
+ <font id = 'text_inverted'
+ file = 'default'
+ color = 'black'
+ />
+ <font id = 'text_button'
+ file = 'default'
+ color = 'green'
+ />
+ <font id = 'text_button_hover'
+ file = 'default'
+ color = 'green2'
+ />
+ <font id = 'text_normal'
+ file = 'default'
+ color = 'green'
+ />
+ </fonts>
+
+ <defaults fill = 'foreground' fg_color = 'darkgrey' bg_color = 'black' shadow = '0' bevel_color = 'lightgrey'/>
+
+ <drawdata id = 'text_selection' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'green'
+ />
+ </drawdata>
+
+ <drawdata id = 'mainmenu_bg' cache = false>
+ <drawstep func = 'fill'
+ fill = 'foreground'
+ fg_color = 'black'
+ />
+ </drawdata>
+
+ <drawdata id = 'special_bg' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ />
+ </drawdata>
+
+ <drawdata id = 'separator' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ height = '2'
+ ypos = 'center'
+ fg_color = 'lightgrey'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_base' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_handle_hover' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'green2'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_handle_idle' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'green'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_button_idle' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ <drawstep func = 'triangle'
+ fg_color = 'green'
+ fill = 'foreground'
+ width = 'auto'
+ height = 'auto'
+ xpos = 'center'
+ ypos = 'center'
+ orientation = 'top'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_button_hover' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ <drawstep func = 'triangle'
+ fg_color = 'green2'
+ fill = 'foreground'
+ width = 'auto'
+ height = 'auto'
+ xpos = 'center'
+ ypos = 'center'
+ orientation = 'top'
+ />
+ </drawdata>
+
+ <drawdata id = 'tab_active' cache = false>
+ <text font = 'text_hover'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'tab'
+ bevel = '2'
+ radius = '0'
+ fill = 'none'
+ />
+ </drawdata>
+
+ <drawdata id = 'tab_inactive' cache = false>
+ <text font = 'text_default'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'tab'
+ bevel = '2'
+ radius = '0'
+ fill = 'none'
+ />
+ </drawdata>
+
+ <drawdata id = 'tab_background' cache = false>
+ </drawdata>
+
+ <drawdata id = 'widget_slider' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ </drawdata>
+
+ <drawdata id = 'slider_disabled' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'lightgrey'
+ />
+ </drawdata>
+
+ <drawdata id = 'slider_full' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'green'
+ />
+ </drawdata>
+
+ <drawdata id = 'slider_hover' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'green2'
+ />
+ </drawdata>
+
+ <drawdata id = 'widget_small' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ </drawdata>
+
+ <drawdata id = 'popup_idle' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ <drawstep func = 'triangle'
+ fg_color = 'green'
+ fill = 'foreground'
+ width = 'height'
+ height = 'auto'
+ xpos = 'right'
+ ypos = 'center'
+ orientation = 'bottom'
+ />
+ <text font = 'text_default'
+ vertical_align = 'center'
+ horizontal_align = 'left'
+ />
+ </drawdata>
+
+
+ <drawdata id = 'popup_hover' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ <drawstep func = 'triangle'
+ fg_color = 'green2'
+ fill = 'foreground'
+ width = 'height'
+ height = 'auto'
+ xpos = 'right'
+ ypos = 'center'
+ orientation = 'bottom'
+ />
+ <text font = 'text_hover'
+ vertical_align = 'center'
+ horizontal_align = 'left'
+ />
+ </drawdata>
+
+ <drawdata id = 'widget_textedit' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ </drawdata>
+
+ <drawdata id = 'plain_bg' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ />
+ </drawdata>
+
+ <drawdata id = 'caret' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'lightgrey'
+ />
+ </drawdata>
+
+ <drawdata id = 'default_bg' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ />
+ </drawdata>
+
+ <drawdata id = 'button_idle' cache = false>
+ <text font = 'text_button'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ </drawdata>
+
+ <drawdata id = 'button_hover' cache = false>
+ <text font = 'text_button_hover'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ </drawdata>
+
+ <drawdata id = 'button_disabled' cache = false>
+ <text font = 'text_disabled'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ </drawdata>
+
+ <drawdata id = 'checkbox_disabled' cache = false>
+ <text font = 'text_disabled'
+ vertical_align = 'top'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ </drawdata>
+
+ <drawdata id = 'checkbox_selected' cache = false>
+ <text font = 'text_default'
+ vertical_align = 'top'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ <drawstep func = 'cross'
+ fill = 'foreground'
+ stroke = '2'
+ fg_color = 'green'
+ />
+ </drawdata>
+
+ <drawdata id = 'checkbox_default' cache = false>
+ <text font = 'text_default'
+ vertical_align = 'top'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ fill = 'none'
+ />
+ </drawdata>
+
+ <drawdata id = 'widget_default' cache = false>
+ <drawstep func = 'bevelsq'
+ bevel = '2'
+ />
+ </drawdata>
+</render_info> \ No newline at end of file
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
new file mode 100644
index 0000000000..0704c8e91d
--- /dev/null
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -0,0 +1,635 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+<layout_info resolution = '-320xY, -256x240'>
+ <globals>
+ <def var = 'Line.Height' value = '16' />
+ <def var = 'Font.Height' value = '16' />
+ <def var = 'TabLabelWidth' value = '110' />
+
+ <def var = 'WidgetSize' value = 'kBigWidgetSize' />
+ <def var = 'About.OuterBorder' value = '80'/>
+ <def var = 'PopUpWidget.labelSpacing' value = '10' />
+
+ <def var = 'Layout.Spacing' value = '8' />
+ <def var = 'ShowLauncherLogo' value = '0'/>
+ <def var = 'ShowGlobalMenuLogo' value = '0'/>
+
+ <def var = 'ScummSaveLoad.ExtInfo.Visible' value = '1'/>
+
+ <widget name = 'OptionsLabel'
+ size = '110, Globals.Line.Height'
+ />
+ <widget name = 'SmallLabel'
+ size = '24, Globals.Line.Height'
+ />
+
+ <widget name = 'ShortOptionsLabel'
+ size = '60, Globals.Line.Height'
+ />
+
+ <widget name = 'Button'
+ size = 'kBigButtonWidth, kBigButtonHeight'
+ />
+ <widget name = 'Slider'
+ size = 'kBigSliderWidth, kBigSliderHeight'
+ />
+
+ <widget name = 'PopUp'
+ size = '-1, 19'
+ />
+ <widget name = 'Checkbox'
+ size = '-1, 14'
+ />
+ <widget name = 'ListWidget'
+ padding = '5, 0, 8, 0'
+ />
+ <widget name = 'PopUpWidget'
+ padding = '7, 5, 0, 0'
+ />
+ <widget name = 'EditTextWidget'
+ padding = '5, 5, 0, 0'
+ />
+ <widget name = 'Console'
+ padding = '7, 5, 5, 5'
+ />
+ <widget name = 'TabWidget.Tab'
+ size = '75, 27'
+ padding = '0, 0, 8, 0'
+ />
+ <widget name = 'TabWidget.NavButton'
+ size = '15, 18'
+ padding = '0, 3, 4, 0'
+ />
+ </globals>
+
+ <dialog name = 'Launcher' overlays = 'screen'>
+ <layout type = 'vertical' center = 'true' padding = '16, 16, 8, 8'>
+ <widget name = 'Version'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'GameList'/>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'>
+ <widget name = 'LoadGameButton'
+ height = '20'
+ />
+ <widget name = 'AddGameButton'
+ height = '20'
+ />
+ <widget name = 'EditGameButton'
+ height = '20'
+ />
+ <widget name = 'RemoveGameButton'
+ height = '20'
+ />
+ </layout>
+ <space size = '12'/>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'>
+ <widget name = 'QuitButton'
+ height = '20'
+ />
+ <widget name = 'AboutButton'
+ height = '20'
+ />
+ <widget name = 'OptionsButton'
+ height = '20'
+ />
+ <widget name = 'StartButton'
+ height = '20'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'Browser' overlays = 'Dialog.Launcher.GameList' shading = 'dim'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <widget name = 'Headline'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Path'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'List'/>
+ <layout type = 'horizontal' padding = '0, 0, 16, 0'>
+ <widget name = 'Up'
+ type = 'Button'
+ />
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Choose'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions' overlays = 'Dialog.Launcher.GameList' shading = 'dim'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <widget name = 'TabWidget'/>
+ <layout type = 'horizontal' padding = '16, 16, 16, 16'>
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'grModePopup'
+ type = 'PopUp'
+ />
+ <widget name = 'grRenderPopup'
+ type = 'PopUp'
+ />
+ <widget name = 'grAspectCheckbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'grFullscreenCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'auMidiPopup'
+ type = 'PopUp'
+ />
+ <widget name = 'auSampleRatePopup'
+ type = 'PopUp'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'subToggleDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subToggleButton'
+ width = '150'
+ height = 'Globals.Slider.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'subSubtitleSpeedDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subSubtitleSpeedSlider'
+ type = 'Slider'
+ />
+ <widget name = 'subSubtitleSpeedLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcMusicText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcMusicSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcMusicLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcSfxText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSfxSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSfxLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcSpeechText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSpeechSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSpeechLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'mcFontButton'
+ type = 'Button'
+ />
+ <widget name = 'mcFontPath'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'mcFontClearButton'
+ height = 'Globals.Line.Height'
+ width = 'Globals.Line.Height'
+ />
+ </layout>
+ <widget name = 'mcMixedCheckbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'mcMt32Checkbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'mcGSCheckbox'
+ type = 'Checkbox'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'mcMidiGainText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'mcMidiGainSlider'
+ type = 'Slider'
+ />
+ <widget name = 'mcMidiGainLabel'
+ width = '32'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Paths' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'SaveButton'
+ type = 'Button'
+ />
+ <widget name = 'SavePath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ThemeButton'
+ type = 'Button'
+ />
+ <widget name = 'ThemePath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ExtraButton'
+ type = 'Button'
+ />
+ <widget name = 'ExtraPath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'PluginsButton'
+ type = 'Button'
+ />
+ <widget name = 'PluginsPath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Misc' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ThemeButton'
+ type = 'Button'
+ />
+ <widget name = 'CurTheme'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <widget name = 'Renderer'
+ type = 'PopUp'
+ />
+ <widget name = 'AutosavePeriod'
+ type = 'PopUp'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions' overlays = 'Dialog.Launcher.GameList' shading = 'dim'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'TabWidget'/>
+ <layout type = 'horizontal' padding = '16, 16, 16, 4'>
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Graphics' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Audio' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_MIDI' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Volume' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Game' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'Id'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'Domain'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'Name'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'Desc'
+ type = 'PopUp'
+ />
+ </layout>
+ <widget name = 'Lang'
+ type = 'PopUp'
+ />
+ <widget name = 'Platform'
+ type = 'PopUp'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Paths' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Savepath'
+ type = 'Button'
+ />
+ <widget name = 'SavepathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Extrapath'
+ type = 'Button'
+ />
+ <widget name = 'ExtrapathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Gamepath'
+ type = 'Button'
+ />
+ <widget name = 'GamepathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalMenu' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' center = 'true'>
+ <widget name = 'Title'
+ width = '210'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Version'
+ width = '210'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Resume'
+ width = '150'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '10'/>
+ <widget name = 'Options'
+ width = '150'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'About'
+ width = '150'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '10'/>
+ <widget name = 'RTL'
+ width = '150'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'Quit'
+ width = '150'
+ height = 'Globals.Button.Height'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummMain' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <widget name = 'Resume'
+ type = 'Button'
+ />
+ <space size = '15'/>
+ <widget name = 'Load'
+ type = 'Button'
+ />
+ <widget name = 'Save'
+ type = 'Button'
+ />
+ <space size = '15'/>
+ <widget name = 'Options'
+ type = 'Button'
+ />
+ <widget name = 'Help'
+ type = 'Button'
+ />
+ <widget name = 'About'
+ type = 'Button'
+ />
+ <space size = '15'/>
+ <widget name = 'Quit'
+ type = 'Button'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummConfig' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcMusicText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcMusicSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcMusicLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcSfxText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSfxSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSfxLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcSpeechText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSpeechSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSpeechLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'subToggleDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subToggleButton'
+ width = '158'
+ height = 'Globals.Slider.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'subSubtitleSpeedDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subSubtitleSpeedSlider'
+ type = 'Slider'
+ />
+ <widget name = 'subSubtitleSpeedLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <space size = '60'/>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <space size = 'Globals.Button.Width' />
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummSaveLoad' overlays = 'screen' inset = '16'>
+ <layout type = 'vertical' padding = '8, 8, 8, 32' center = 'true'>
+ <widget name = 'Title'
+ height = 'Globals.Line.Height'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 16' spacing = '16'>
+ <widget name = 'List' />
+ <widget name = 'Thumbnail'
+ width = '180'
+ height = '200'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <space/>
+ <widget name = 'Delete'
+ type = 'Button'
+ />
+ <space size = '32'/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Choose'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummHelp' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
+ <widget name = 'Title'
+ width = '320'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'HelpText'
+ height = '220'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 16, 0'>
+ <widget name = 'Prev'
+ type = 'Button'
+ />
+ <widget name = 'Next'
+ type = 'Button'
+ />
+ <space size = '32'/>
+ <widget name = 'Close'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+</layout_info> \ No newline at end of file
diff --git a/gui/themes/scummclassic/classic_layout_320.stx b/gui/themes/scummclassic/classic_layout_320.stx
new file mode 100644
index 0000000000..9c03d51e13
--- /dev/null
+++ b/gui/themes/scummclassic/classic_layout_320.stx
@@ -0,0 +1,628 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+<layout_info resolution = "320xY, 256x240">
+ <globals>
+ <def var = 'Line.Height' value = '12' />
+ <def var = 'Font.Height' value = '10' />
+ <def var = 'TabLabelWidth' value = '100' />
+
+ <def var = 'WidgetSize' value = 'kNormalWidgetSize' />
+ <def var = 'About.OuterBorder' value = '10'/>
+ <def var = 'PopUpWidget.labelSpacing' value = '6' />
+
+ <def var = 'Layout.Spacing' value = '8'/>
+
+ <def var = 'ShowLauncherLogo' value = '0'/>
+ <def var = 'ShowGlobalMenuLogo' value = '0'/>
+ <def var = 'ScummSaveLoad.ExtInfo.Visible' value = '0'/>
+
+ <widget name = 'Button'
+ size = 'kButtonWidth, kButtonHeight'
+ />
+
+ <widget name = 'Slider'
+ size = 'kSliderWidth, kSliderHeight'
+ />
+
+ <widget name = 'OptionsLabel'
+ size = '110, Globals.Line.Height'
+ />
+ <widget name = 'SmallLabel'
+ size = '18, Globals.Line.Height'
+ />
+ <widget name = 'PopUp'
+ size = '-1, 15'
+ />
+ <widget name = 'Checkbox'
+ size = '-1, Globals.Line.Height'
+ />
+ <widget name = 'ListWidget'
+ padding = '5, 0, 8, 0'
+ />
+ <widget name = 'PopUpWidget'
+ padding = '7, 5, 0, 0'
+ />
+ <widget name = 'EditTextWidget'
+ padding = '5, 5, 0, 0'
+ />
+ <widget name = 'Console'
+ padding = '7, 5, 5, 5'
+ />
+ <widget name = 'TabWidget.Tab'
+ size = '45, 16'
+ padding = '0, 0, 2, 0'
+ />
+ <widget name = 'TabWidget.NavButton'
+ size = '32, 18'
+ padding = '0, 3, 4, 0'
+ />
+ </globals>
+
+ <dialog name = 'Launcher' overlays = 'screen'>
+ <layout type = 'vertical' center = 'true' padding = '8, 8, 4, 4'>
+ <widget name = 'Version'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'GameList'/>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'>
+ <widget name = 'LoadGameButton'
+ height = '12'
+ />
+ <widget name = 'AddGameButton'
+ height = '12'
+ />
+ <widget name = 'EditGameButton'
+ height = '12'
+ />
+ <widget name = 'RemoveGameButton'
+ height = '12'
+ />
+ </layout>
+ <space size = '4'/>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'>
+ <widget name = 'QuitButton'
+ height = '12'
+ />
+ <widget name = 'AboutButton'
+ height = '12'
+ />
+ <widget name = 'OptionsButton'
+ height = '12'
+ />
+ <widget name = 'StartButton'
+ height = '12'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'Browser' overlays = 'screen' inset = '16' shading = 'dim'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <widget name = 'Headline'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Path'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'List'/>
+ <layout type = 'horizontal' padding = '0, 0, 16, 0'>
+ <widget name = 'Up'
+ type = 'Button'
+ />
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+
+ <widget name = 'Choose'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions' overlays = 'screen' inset = '16' shading = 'dim'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <widget name = 'TabWidget'/>
+ <layout type = 'horizontal' padding = '8, 8, 8, 8'>
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'grModePopup'
+ type = 'PopUp'
+ />
+ <widget name = 'grRenderPopup'
+ type = 'PopUp'
+ />
+ <widget name = 'grAspectCheckbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'grFullscreenCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'auMidiPopup'
+ type = 'PopUp'
+ />
+ <widget name = 'auSampleRatePopup'
+ type = 'PopUp'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'subToggleDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subToggleButton'
+ width = 'Globals.Slider.Width'
+ height = 'Globals.Slider.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'subSubtitleSpeedDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subSubtitleSpeedSlider'
+ type = 'Slider'
+ />
+ <widget name = 'subSubtitleSpeedLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcMusicText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcMusicSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcMusicLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcSfxText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSfxSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSfxLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcSpeechText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSpeechSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSpeechLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'mcFontButton'
+ type = 'Button'
+ />
+ <widget name = 'mcFontPath'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'mcFontClearButton'
+ height = 'Globals.Line.Height'
+ width = 'Globals.Line.Height'
+ />
+ </layout>
+ <widget name = 'mcMixedCheckbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'mcMt32Checkbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'mcGSCheckbox'
+ type = 'Checkbox'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'mcMidiGainText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'mcMidiGainSlider'
+ type = 'Slider'
+ />
+ <widget name = 'mcMidiGainLabel'
+ width = '32'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Paths' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'SaveButton'
+ type = 'Button'
+ />
+ <widget name = 'SavePath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ThemeButton'
+ type = 'Button'
+ />
+ <widget name = 'ThemePath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ExtraButton'
+ type = 'Button'
+ />
+ <widget name = 'ExtraPath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'PluginsButton'
+ type = 'Button'
+ />
+ <widget name = 'PluginsPath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Misc' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ThemeButton'
+ type = 'Button'
+ />
+ <widget name = 'CurTheme'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <widget name = 'Renderer'
+ type = 'PopUp'
+ />
+ <widget name = 'AutosavePeriod'
+ type = 'PopUp'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions' overlays = 'screen' inset = '16' shading = 'dim'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'TabWidget'/>
+ <layout type = 'horizontal' padding = '8, 8, 8, 8'>
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Graphics' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Audio' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_MIDI' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Volume' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Game' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'Id'
+ width = '35'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Domain'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'Name'
+ width = '35'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Desc'
+ type = 'PopUp'
+ />
+ </layout>
+ <space size = '8'/>
+ <widget name = 'Lang'
+ type = 'PopUp'
+ />
+ <widget name = 'Platform'
+ type = 'PopUp'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Paths' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Savepath'
+ type = 'Button'
+ />
+ <widget name = 'SavepathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Extrapath'
+ type = 'Button'
+ />
+ <widget name = 'ExtrapathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Gamepath'
+ type = 'Button'
+ />
+ <widget name = 'GamepathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalMenu' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
+ <widget name = 'Title'
+ width = '120'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Version'
+ width = '120'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Resume'
+ width = '70'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '4'/>
+ <widget name = 'Options'
+ width = '70'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'About'
+ width = '70'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '4'/>
+ <widget name = 'RTL'
+ width = '70'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'Quit'
+ width = '70'
+ height = 'Globals.Button.Height'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummMain' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <widget name = 'Resume'
+ type = 'Button'
+ />
+ <space size = '4'/>
+ <widget name = 'Load'
+ type = 'Button'
+ />
+ <widget name = 'Save'
+ type = 'Button'
+ />
+ <space size = '4'/>
+ <widget name = 'Options'
+ type = 'Button'
+ />
+ <widget name = 'Help'
+ type = 'Button'
+ />
+ <widget name = 'About'
+ type = 'Button'
+ />
+ <space size = '4'/>
+ <widget name = 'Quit'
+ type = 'Button'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummConfig' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcMusicText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcMusicSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcMusicLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcSfxText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSfxSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSfxLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcSpeechText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSpeechSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSpeechLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'subToggleDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subToggleButton'
+ width = '92'
+ height = 'Globals.Slider.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'subSubtitleSpeedDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subSubtitleSpeedSlider'
+ type = 'Slider'
+ />
+ <widget name = 'subSubtitleSpeedLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <space size = '20'/>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <space size = 'Globals.Button.Width' />
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummSaveLoad' overlays = 'screen' inset = '16'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
+ <widget name = 'Title' height = 'Globals.Line.Height'/>
+ <widget name = 'List' />
+ <layout type = 'horizontal' padding = '0, 0, 16, 0'>
+ <space/>
+ <widget name = 'Delete'
+ type = 'Button'
+ />
+ <space size = '16'/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Choose'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummHelp' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <widget name = 'Title'
+ width = '180'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'HelpText'
+ height = '170'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 4, 0'>
+ <widget name = 'Prev'
+ type = 'Button'
+ />
+ <widget name = 'Next'
+ type = 'Button'
+ />
+ <space size = '32'/>
+ <widget name = 'Close'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+</layout_info> \ No newline at end of file
diff --git a/gui/themes/scummodern.zip b/gui/themes/scummodern.zip
new file mode 100644
index 0000000000..70141bfce9
--- /dev/null
+++ b/gui/themes/scummodern.zip
Binary files differ
diff --git a/gui/themes/scummodern/THEMERC b/gui/themes/scummodern/THEMERC
new file mode 100644
index 0000000000..d11c959867
--- /dev/null
+++ b/gui/themes/scummodern/THEMERC
@@ -0,0 +1 @@
+[SCUMMVM_THEME_V23:ScummVM Modern Theme:No Author] \ No newline at end of file
diff --git a/gui/themes/scummodern/checkbox.bmp b/gui/themes/scummodern/checkbox.bmp
new file mode 100644
index 0000000000..a0b91b569f
--- /dev/null
+++ b/gui/themes/scummodern/checkbox.bmp
Binary files differ
diff --git a/gui/themes/scummodern/cursor.bmp b/gui/themes/scummodern/cursor.bmp
new file mode 100644
index 0000000000..e7bdb60cad
--- /dev/null
+++ b/gui/themes/scummodern/cursor.bmp
Binary files differ
diff --git a/gui/themes/scummodern/cursor_small.bmp b/gui/themes/scummodern/cursor_small.bmp
new file mode 100644
index 0000000000..5f25f32f1a
--- /dev/null
+++ b/gui/themes/scummodern/cursor_small.bmp
Binary files differ
diff --git a/gui/themes/scummodern/helvr12-l1.fcc b/gui/themes/scummodern/helvr12-l1.fcc
new file mode 100644
index 0000000000..651a25934a
--- /dev/null
+++ b/gui/themes/scummodern/helvr12-l1.fcc
Binary files differ
diff --git a/gui/themes/scummodern/logo.bmp b/gui/themes/scummodern/logo.bmp
new file mode 100644
index 0000000000..659ec47d03
--- /dev/null
+++ b/gui/themes/scummodern/logo.bmp
Binary files differ
diff --git a/gui/themes/scummodern/logo_small.bmp b/gui/themes/scummodern/logo_small.bmp
new file mode 100644
index 0000000000..eaa998a165
--- /dev/null
+++ b/gui/themes/scummodern/logo_small.bmp
Binary files differ
diff --git a/gui/themes/scummodern/scummodern_gfx.stx b/gui/themes/scummodern/scummodern_gfx.stx
new file mode 100644
index 0000000000..b8eff77aa1
--- /dev/null
+++ b/gui/themes/scummodern/scummodern_gfx.stx
@@ -0,0 +1,489 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+<render_info>
+ <palette>
+ <color name = 'darkred'
+ rgb = '169, 42, 12'
+ />
+ <color name = 'brightred'
+ rgb = '203, 126, 107'
+ />
+ <color name = 'xtrabrightred'
+ rgb = '251, 241, 206'
+ />
+ <color name = 'blandyellow'
+ rgb = '246, 224, 139'
+ />
+ <color name = 'bgreen'
+ rgb = '100, 162, 8'
+ />
+ <color name = 'black'
+ rgb = '0, 0, 0'
+ />
+ <color name = 'white'
+ rgb = '255, 255, 255'
+ />
+ <color name = 'shadowcolor'
+ rgb = '63, 60, 17'
+ />
+ </palette>
+
+ <bitmaps>
+ <bitmap filename = 'logo.bmp'/>
+ <bitmap filename = 'cursor.bmp'/>
+ <bitmap filename = 'cursor_small.bmp'/>
+ <bitmap filename = 'checkbox.bmp'/>
+ <bitmap filename = 'logo_small.bmp'/>
+ </bitmaps>
+
+ <fonts>
+ <font id = 'text_default'
+ file = 'default'
+ color = 'black'
+ />
+ <font id = 'text_hover'
+ file = 'default'
+ color = 'bgreen'
+ />
+ <font id = 'text_disabled'
+ file = 'default'
+ color = '128, 128, 128'
+ />
+ <font id = 'text_inverted'
+ file = 'default'
+ color = '0, 0, 0'
+ />
+ <font id = 'text_button'
+ file = 'default'
+ color = 'white'
+ />
+ <font id = 'text_button_hover'
+ file = 'default'
+ color = 'blandyellow'
+ />
+ <font id = 'text_normal'
+ file = 'helvr12-l1.bdf'
+ color = 'black'
+ />
+ </fonts>
+
+ <defaults fill = 'gradient' fg_color = 'white' bevel_color = '237, 169, 72'/>
+
+ <cursor file = 'cursor.bmp' hotspot = '0, 0' scale = '3'/>
+ <cursor resolution = '320xY, 256x240' file = 'cursor_small.bmp' hotspot = '0, 0' scale = '3'/>
+
+ <drawdata id = 'text_selection' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'bgreen'
+ />
+ </drawdata>
+
+ <drawdata id = 'mainmenu_bg' cache = false>
+ <drawstep func = 'fill'
+ fill = 'gradient'
+ gradient_start = '208, 112, 8'
+ gradient_end = '232, 192, 16'
+ />
+ </drawdata>
+
+ <drawdata id = 'special_bg' cache = false>
+ <drawstep func = 'roundedsq'
+ radius = '4'
+ fill = 'gradient'
+ stroke = '0'
+ gradient_start = '208, 112, 8'
+ gradient_end = '232, 192, 16'
+ shadow = '3'
+ gradient_factor = '3'
+ />
+ </drawdata>
+
+ <drawdata id = 'separator' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ height = '1'
+ ypos = 'center'
+ fg_color = 'black'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_base' cache = false>
+ <drawstep func = 'roundedsq'
+ stroke = 1
+ radius = 6
+ fill = 'background'
+ fg_color = '176, 164, 160'
+ bg_color = '240, 228, 160'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_handle_hover' cache = false>
+ <drawstep func = 'roundedsq'
+ stroke = 1
+ radius = 6
+ fill = 'gradient'
+ fg_color = 'blandyellow'
+ gradient_start = 'xtrabrightred'
+ gradient_end = 'darkred'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_handle_idle' cache = false>
+ <drawstep func = 'roundedsq'
+ stroke = 1
+ radius = 6
+ fill = 'gradient'
+ fg_color = 'blandyellow'
+ gradient_start = 'brightred'
+ gradient_end = 'darkred'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_button_idle' cache = false>
+ <drawstep func = 'roundedsq'
+ radius = '4'
+ fill = 'none'
+ fg_color = '176, 164, 160'
+ stroke = 1
+ />
+ <drawstep func = 'triangle'
+ fg_color = '0, 0, 0'
+ fill = 'foreground'
+ width = 'auto'
+ height = 'auto'
+ xpos = 'center'
+ ypos = 'center'
+ orientation = 'top'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_button_hover' cache = false>
+ <drawstep func = 'roundedsq'
+ radius = '4'
+ fill = 'background'
+ fg_color = '120, 120, 120'
+ bg_color = '206, 121, 99'
+ stroke = 1
+ />
+ <drawstep func = 'triangle'
+ fg_color = '0, 0, 0'
+ fill = 'foreground'
+ width = 'auto'
+ height = 'auto'
+ xpos = 'center'
+ ypos = 'center'
+ orientation = 'top'
+ />
+ </drawdata>
+
+ <drawdata id = 'tab_active' cache = false>
+ <text font = 'text_default'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'tab'
+ radius = '4'
+ stroke = '0'
+ fill = 'gradient'
+ gradient_end = 'xtrabrightred'
+ gradient_start = 'blandyellow'
+ shadow = 3
+ />
+ </drawdata>
+
+ <drawdata id = 'tab_inactive' cache = false>
+ <text font = 'text_default'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'tab'
+ radius = '4'
+ stroke = '0'
+ fill = 'foreground'
+ fg_color = '240, 205, 118'
+ shadow = 3
+ />
+ </drawdata>
+
+ <drawdata id = 'tab_background' cache = false>
+ <drawstep func = 'tab'
+ radius = '6'
+ stroke = '0'
+ fill = 'foreground'
+ fg_color = '232, 180, 81'
+ shadow = 3
+ />
+ </drawdata>
+
+ <drawdata id = 'widget_slider' cache = false>
+ <drawstep func = 'roundedsq'
+ stroke = 0
+ radius = 4
+ fill = 'foreground'
+ fg_color = 'blandyellow'
+ bevel = 1
+ bevel_color = 'shadowcolor'
+ />
+ </drawdata>
+
+ <drawdata id = 'slider_full' cache = false>
+ <drawstep func = 'roundedsq'
+ stroke = 1
+ radius = 4
+ fill = 'gradient'
+ fg_color = '123, 112, 56'
+ gradient_start = 'brightred'
+ gradient_end = 'darkred'
+ />
+ </drawdata>
+
+ <drawdata id = 'slider_hover' cache = false>
+ <drawstep func = 'roundedsq'
+ stroke = 1
+ radius = 4
+ fill = 'gradient'
+ fg_color = '123, 112, 56'
+ gradient_start = 'xtrabrightred'
+ gradient_end = 'darkred'
+ />
+ </drawdata>
+
+ <drawdata id = 'slider_disabled' cache = false>
+ <drawstep func = 'roundedsq'
+ stroke = 1
+ radius = 4
+ fill = 'gradient'
+ fg_color = '123, 112, 56'
+ gradient_start = 'xtrabrightred'
+ gradient_end = 'darkred'
+ />
+ </drawdata>
+
+ <drawdata id = 'popup_idle' cache = false>
+ <drawstep func = 'roundedsq'
+ stroke = 0
+ radius = 4
+ fill = 'foreground'
+ fg_color = '250, 237, 190'
+ shadow = 2
+ />
+ <drawstep func = 'triangle'
+ fg_color = '63, 60, 52'
+ fill = 'foreground'
+ width = 'height'
+ height = 'auto'
+ xpos = 'right'
+ ypos = 'center'
+ orientation = 'bottom'
+ />
+ <text font = 'text_default'
+ vertical_align = 'center'
+ horizontal_align = 'left'
+ />
+ </drawdata>
+
+
+ <drawdata id = 'popup_hover' cache = false>
+ <drawstep func = 'roundedsq'
+ stroke = 0
+ radius = 4
+ fill = 'gradient'
+ gradient_start = 'blandyellow'
+ gradient_end = '250, 237, 190'
+ shadow = 0
+ />
+ <drawstep func = 'triangle'
+ fg_color = '63, 60, 52'
+ fill = 'foreground'
+ width = 'height'
+ height = 'auto'
+ xpos = 'right'
+ ypos = 'center'
+ orientation = 'bottom'
+ />
+ <text font = 'text_hover'
+ vertical_align = 'center'
+ horizontal_align = 'left'
+ />
+ </drawdata>
+
+ <drawdata id = 'widget_textedit' cache = false>
+ <drawstep func = 'roundedsq'
+ fill = 'foreground'
+ radius = 4
+ fg_color = 'blandyellow'
+ shadow = 0
+ bevel = 1
+ bevel_color = 'shadowcolor'
+ />
+ </drawdata>
+
+ <drawdata id = 'plain_bg' cache = false>
+ <drawstep func = 'roundedsq'
+ radius = 6
+ stroke = 0
+ gradient_start = 'blandyellow'
+ gradient_end = 'xtrabrightred'
+ fill = 'gradient'
+ shadow = 3
+ />
+ </drawdata>
+
+ <drawdata id = 'caret' cache = false>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'black'
+ />
+ </drawdata>
+
+ <drawdata id = 'default_bg' cache = false>
+ <drawstep func = 'roundedsq'
+ radius = 12
+ stroke = 0
+ fg_color = 'xtrabrightred'
+ fill = 'foreground'
+ shadow = 3
+ />
+ </drawdata>
+
+ <drawdata id = 'button_idle' cache = false>
+ <text font = 'text_button'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'roundedsq'
+ radius = '3'
+ stroke = 1
+ fill = 'gradient'
+ shadow = 0
+ fg_color = 'shadowcolor'
+ gradient_start = 'brightred'
+ gradient_end = 'darkred'
+ bevel = 1
+ />
+ </drawdata>
+
+ <drawdata id = 'button_hover' cache = false>
+ <text font = 'text_button_hover'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'roundedsq'
+ radius = '3'
+ gradient_factor = 1
+ stroke = 1
+ fill = 'gradient'
+ shadow = 0
+ fg_color = 'shadowcolor'
+ gradient_start = 'xtrabrightred'
+ gradient_end = 'darkred'
+ bevel_color = 'xtrabrightred'
+ bevel = 1
+ />
+ </drawdata>
+
+ <drawdata id = 'button_disabled' cache = false>
+ <text font = 'text_disabled'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'roundedsq'
+ radius = '3'
+ stroke = 1
+ fill = 'gradient'
+ shadow = 0
+ fg_color = 'shadowcolor'
+ gradient_start = 'brightred'
+ gradient_end = 'darkred'
+ bevel = 1
+ />
+ </drawdata>
+
+ <drawdata id = 'checkbox_disabled' cache = false>
+ <text font = 'text_disabled'
+ vertical_align = 'top'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'roundedsq'
+ fill = 'none'
+ radius = 4
+ fg_color = 'black'
+ shadow = 0
+ bevel = 1
+ bevel_color = 'shadowcolor'
+ />
+ </drawdata>
+
+ <drawdata id = 'checkbox_selected' cache = false>
+ <text font = 'text_default'
+ vertical_align = 'top'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'bitmap'
+ file = 'checkbox.bmp'
+ />
+ </drawdata>
+
+ <drawdata id = 'checkbox_default' cache = false>
+ <text font = 'text_default'
+ vertical_align = 'top'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'roundedsq'
+ fill = 'foreground'
+ radius = 4
+ fg_color = 'blandyellow'
+ shadow = 0
+ bevel = 1
+ bevel_color = 'shadowcolor'
+ />
+ </drawdata>
+
+ <drawdata id = 'widget_default' cache = false>
+ <drawstep func = 'roundedsq'
+ radius = 8
+ stroke = 0
+ gradient_start = 'blandyellow'
+ gradient_end = '251, 241, 206'
+ gradient_factor = '6'
+ fill = 'gradient'
+ shadow = 3
+ />
+ </drawdata>
+
+ <drawdata id = 'widget_small' cache = false>
+ <drawstep func = 'roundedsq'
+ radius = 8
+ stroke = 0
+ gradient_start = 'blandyellow'
+ gradient_end = 'xtrabrightred'
+ gradient_factor = '6'
+ fill = 'gradient'
+ shadow = 3
+ />
+ </drawdata>
+</render_info> \ No newline at end of file
diff --git a/gui/themes/scummodern/scummodern_layout.stx b/gui/themes/scummodern/scummodern_layout.stx
new file mode 100644
index 0000000000..03d920ac05
--- /dev/null
+++ b/gui/themes/scummodern/scummodern_layout.stx
@@ -0,0 +1,647 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+<layout_info resolution = '-320xY, -256x240'>
+ <globals>
+ <def var = 'Line.Height' value = '16' />
+ <def var = 'Font.Height' value = '16' />
+ <def var = 'TabLabelWidth' value = '110' />
+
+ <def var = 'WidgetSize' value = 'kBigWidgetSize' />
+
+ <def var = 'Padding.Bottom' value = '16' />
+ <def var = 'Padding.Left' value = '16' />
+ <def var = 'Padding.Right' value = '16' />
+ <def var = 'Padding.Top' value = '16' />
+
+ <def var = 'About.OuterBorder' value = '80'/>
+
+ <def var = 'ListWidget.hlLeftPadding' value = '0'/>
+ <def var = 'ListWidget.hlRightPadding' value = '0'/>
+ <def var = 'PopUpWidget.labelSpacing' value = '10' />
+
+ <def var = 'ShowLauncherLogo' value = '1'/>
+ <def var = 'ShowGlobalMenuLogo' value = '1'/>
+
+ <def var = 'ScummSaveLoad.ExtInfo.Visible' value = '1'/>
+
+ <widget name = 'OptionsLabel'
+ size = '110, Globals.Line.Height'
+ />
+ <widget name = 'SmallLabel'
+ size = '24, Globals.Line.Height'
+ />
+
+ <widget name = 'Button'
+ size = 'kBigButtonWidth, kBigButtonHeight'
+ />
+
+
+ <widget name = 'Slider'
+ size = 'kBigSliderWidth, kBigSliderHeight'
+ />
+ <widget name = 'PopUp'
+ size = '-1, 19'
+ />
+ <widget name = 'Checkbox'
+ size = '-1, Globals.Line.Height'
+ />
+ <widget name = 'ListWidget'
+ padding = '5, 0, 8, 0'
+ />
+ <widget name = 'PopUpWidget'
+ padding = '7, 5, 0, 0'
+ />
+ <widget name = 'EditTextWidget'
+ padding = '5, 5, 0, 0'
+ />
+ <widget name = 'Console'
+ padding = '7, 5, 5, 5'
+ />
+ <widget name = 'TabWidget.Tab'
+ size = '75, 27'
+ padding = '0, 0, 8, 0'
+ />
+ <widget name = 'TabWidget.NavButton'
+ size = '15, 18'
+ padding = '0, 3, 4, 0'
+ />
+ </globals>
+
+ <dialog name = 'Launcher' overlays = 'screen'>
+ <layout type = 'vertical' center = 'true' padding = '23, 23, 8, 23'>
+ <widget name = 'Version'
+ width = '247'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Logo'
+ width = '283'
+ height = '80'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'GameList'/>
+ <layout type = 'vertical' padding = '10, 0, 0, 0'>
+ <widget name = 'StartButton'
+ type = 'Button'
+ />
+ <widget name = 'LoadGameButton'
+ type = 'Button'
+ />
+ <space size = '10' />
+ <widget name = 'AddGameButton'
+ type = 'Button'
+ />
+ <widget name = 'EditGameButton'
+ type = 'Button'
+ />
+ <widget name = 'RemoveGameButton'
+ type = 'Button'
+ />
+ <space size = '10' />
+ <widget name = 'OptionsButton'
+ type = 'Button'
+ />
+ <widget name = 'AboutButton'
+ type = 'Button'
+ />
+ <space size = '10' />
+ <widget name = 'QuitButton'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'Browser' overlays = 'Dialog.Launcher.GameList' shading = 'dim'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <widget name = 'Headline'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Path'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'List'/>
+ <layout type = 'horizontal' padding = '0, 0, 16, 0'>
+ <widget name = 'Up'
+ type = 'Button'
+ />
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Choose'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions' overlays = 'Dialog.Launcher.GameList' shading = 'dim'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <widget name = 'TabWidget'/>
+ <layout type = 'horizontal' padding = '16, 16, 16, 16'>
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'grModePopup'
+ type = 'PopUp'
+ />
+ <widget name = 'grRenderPopup'
+ type = 'PopUp'
+ />
+ <widget name = 'grAspectCheckbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'grFullscreenCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'auMidiPopup'
+ type = 'PopUp'
+ />
+ <widget name = 'auSampleRatePopup'
+ type = 'PopUp'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'subToggleDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subToggleButton'
+ width = '150'
+ height = 'Globals.Slider.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'subSubtitleSpeedDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subSubtitleSpeedSlider'
+ type = 'Slider'
+ />
+ <widget name = 'subSubtitleSpeedLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcMusicText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcMusicSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcMusicLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcSfxText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSfxSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSfxLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcSpeechText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSpeechSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSpeechLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'mcFontButton'
+ type = 'Button'
+ />
+ <widget name = 'mcFontPath'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'mcFontClearButton'
+ height = 'Globals.Line.Height'
+ width = 'Globals.Line.Height'
+ />
+ </layout>
+ <widget name = 'mcMixedCheckbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'mcMt32Checkbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'mcGSCheckbox'
+ type = 'Checkbox'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'mcMidiGainText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'mcMidiGainSlider'
+ type = 'Slider'
+ />
+ <widget name = 'mcMidiGainLabel'
+ width = '32'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Paths' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'SaveButton'
+ type = 'Button'
+ />
+ <widget name = 'SavePath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ThemeButton'
+ type = 'Button'
+ />
+ <widget name = 'ThemePath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ExtraButton'
+ type = 'Button'
+ />
+ <widget name = 'ExtraPath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'PluginsButton'
+ type = 'Button'
+ />
+ <widget name = 'PluginsPath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Misc' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ThemeButton'
+ type = 'Button'
+ />
+ <widget name = 'CurTheme'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <widget name = 'Renderer'
+ type = 'PopUp'
+ />
+ <widget name = 'AutosavePeriod'
+ type = 'PopUp'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions' overlays = 'Dialog.Launcher.GameList' shading = 'dim'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'TabWidget'/>
+ <layout type = 'horizontal' padding = '16, 16, 16, 4'>
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Graphics' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Audio' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_MIDI' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Volume' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Game' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'Id'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'Domain'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'Name'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'Desc'
+ type = 'PopUp'
+ />
+ </layout>
+ <widget name = 'Lang'
+ type = 'PopUp'
+ />
+ <widget name = 'Platform'
+ type = 'PopUp'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Paths' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Savepath'
+ type = 'Button'
+ />
+ <widget name = 'SavepathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Extrapath'
+ type = 'Button'
+ />
+ <widget name = 'ExtrapathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Gamepath'
+ type = 'Button'
+ />
+ <widget name = 'GamepathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalMenu' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' center = 'true'>
+ <widget name = 'Logo'
+ width = '210'
+ height = '40'
+ />
+ <widget name = 'Version'
+ width = '210'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Resume'
+ width = '150'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '10'/>
+ <widget name = 'Options'
+ width = '150'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'About'
+ width = '150'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '10'/>
+ <widget name = 'RTL'
+ width = '150'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'Quit'
+ width = '150'
+ height = 'Globals.Button.Height'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummMain' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <widget name = 'Resume'
+ type = 'Button'
+ />
+ <space size = '15'/>
+ <widget name = 'Load'
+ type = 'Button'
+ />
+ <widget name = 'Save'
+ type = 'Button'
+ />
+ <space size = '15'/>
+ <widget name = 'Options'
+ type = 'Button'
+ />
+ <widget name = 'Help'
+ type = 'Button'
+ />
+ <widget name = 'About'
+ type = 'Button'
+ />
+ <space size = '15'/>
+ <widget name = 'Quit'
+ type = 'Button'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummConfig' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcMusicText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcMusicSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcMusicLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcSfxText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSfxSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSfxLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcSpeechText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSpeechSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSpeechLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'subToggleDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subToggleButton'
+ width = '158'
+ height = 'Globals.Slider.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'subSubtitleSpeedDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subSubtitleSpeedSlider'
+ type = 'Slider'
+ />
+ <widget name = 'subSubtitleSpeedLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <space size = '60'/>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <space size = 'Globals.Button.Width' />
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummSaveLoad' overlays = 'screen' inset = '16'>
+ <layout type = 'vertical' padding = '8, 8, 8, 32' center = 'true'>
+ <widget name = 'Title'
+ height = 'Globals.Line.Height'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 16' spacing = '16'>
+ <widget name = 'List' />
+ <widget name = 'Thumbnail'
+ width = '180'
+ height = '200'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <space/>
+ <widget name = 'Delete'
+ type = 'Button'
+ />
+ <space size = '32'/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Choose'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummHelp' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
+ <widget name = 'Title'
+ width = '320'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'HelpText'
+ height = '220'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 16, 0'>
+ <widget name = 'Prev'
+ type = 'Button'
+ />
+ <widget name = 'Next'
+ type = 'Button'
+ />
+ <space size = '32'/>
+ <widget name = 'Close'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+</layout_info> \ No newline at end of file
diff --git a/gui/themes/scummodern/scummodern_layout_320.stx b/gui/themes/scummodern/scummodern_layout_320.stx
new file mode 100644
index 0000000000..b92ded6097
--- /dev/null
+++ b/gui/themes/scummodern/scummodern_layout_320.stx
@@ -0,0 +1,625 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+<layout_info resolution = "320xY, 256x240">
+ <globals>
+ <def var = 'Line.Height' value = '12' />
+ <def var = 'Font.Height' value = '10' />
+ <def var = 'TabLabelWidth' value = '100' />
+
+ <def var = 'WidgetSize' value = 'kNormalWidgetSize' />
+ <def var = 'About.OuterBorder' value = '10'/>
+ <def var = 'PopUpWidget.labelSpacing' value = '6' />
+
+ <def var = 'ShowLauncherLogo' value = '0'/>
+ <def var = 'ShowGlobalMenuLogo' value = '0'/>
+ <def var = 'ScummSaveLoad.ExtInfo.Visible' value = '0'/>
+
+ <widget name = 'Button'
+ size = 'kButtonWidth, kButtonHeight'
+ />
+
+ <widget name = 'Slider'
+ size = 'kSliderWidth, kSliderHeight'
+ />
+
+ <widget name = 'OptionsLabel'
+ size = '110, Globals.Line.Height'
+ />
+ <widget name = 'SmallLabel'
+ size = '18, Globals.Line.Height'
+ />
+ <widget name = 'PopUp'
+ size = '-1, 15'
+ />
+ <widget name = 'Checkbox'
+ size = '-1, Globals.Line.Height'
+ />
+ <widget name = 'ListWidget'
+ padding = '5, 0, 8, 0'
+ />
+ <widget name = 'PopUpWidget'
+ padding = '7, 5, 0, 0'
+ />
+ <widget name = 'EditTextWidget'
+ padding = '5, 5, 0, 0'
+ />
+ <widget name = 'Console'
+ padding = '7, 5, 5, 5'
+ />
+ <widget name = 'TabWidget.Tab'
+ size = '45, 16'
+ padding = '0, 0, 2, 0'
+ />
+ <widget name = 'TabWidget.NavButton'
+ size = '32, 18'
+ padding = '0, 3, 4, 0'
+ />
+ </globals>
+
+ <dialog name = 'Launcher' overlays = 'screen'>
+ <layout type = 'vertical' center = 'true' padding = '8, 8, 8, 4' spacing = '8'>
+ <widget name = 'Version'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'GameList'/>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '6'>
+ <widget name = 'LoadGameButton'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'AddGameButton'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'EditGameButton'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'RemoveGameButton'
+ height = 'Globals.Button.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'QuitButton'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'AboutButton'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'OptionsButton'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'StartButton'
+ height = 'Globals.Button.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'Browser' overlays = 'screen' inset = '16' shading = 'dim'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <widget name = 'Headline'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Path'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'List'/>
+ <layout type = 'horizontal' padding = '0, 0, 16, 0'>
+ <widget name = 'Up'
+ type = 'Button'
+ />
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+
+ <widget name = 'Choose'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions' overlays = 'screen' inset = '16' shading = 'dim'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <widget name = 'TabWidget'/>
+ <layout type = 'horizontal' padding = '8, 8, 8, 8'>
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'grModePopup'
+ type = 'PopUp'
+ />
+ <widget name = 'grRenderPopup'
+ type = 'PopUp'
+ />
+ <widget name = 'grAspectCheckbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'grFullscreenCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'auMidiPopup'
+ type = 'PopUp'
+ />
+ <widget name = 'auSampleRatePopup'
+ type = 'PopUp'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'subToggleDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subToggleButton'
+ width = 'Globals.Slider.Width'
+ height = 'Globals.Slider.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'subSubtitleSpeedDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subSubtitleSpeedSlider'
+ type = 'Slider'
+ />
+ <widget name = 'subSubtitleSpeedLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcMusicText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcMusicSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcMusicLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcSfxText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSfxSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSfxLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'vcSpeechText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSpeechSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSpeechLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'mcFontButton'
+ type = 'Button'
+ />
+ <widget name = 'mcFontPath'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'mcFontClearButton'
+ height = 'Globals.Line.Height'
+ width = 'Globals.Line.Height'
+ />
+ </layout>
+ <widget name = 'mcMixedCheckbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'mcMt32Checkbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'mcGSCheckbox'
+ type = 'Checkbox'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'mcMidiGainText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'mcMidiGainSlider'
+ type = 'Slider'
+ />
+ <widget name = 'mcMidiGainLabel'
+ width = '32'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Paths' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'SaveButton'
+ type = 'Button'
+ />
+ <widget name = 'SavePath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ThemeButton'
+ type = 'Button'
+ />
+ <widget name = 'ThemePath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ExtraButton'
+ type = 'Button'
+ />
+ <widget name = 'ExtraPath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'PluginsButton'
+ type = 'Button'
+ />
+ <widget name = 'PluginsPath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Misc' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'ThemeButton'
+ type = 'Button'
+ />
+ <widget name = 'CurTheme'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <widget name = 'Renderer'
+ type = 'PopUp'
+ />
+ <widget name = 'AutosavePeriod'
+ type = 'PopUp'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions' overlays = 'screen' inset = '16' shading = 'dim'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'TabWidget'/>
+ <layout type = 'horizontal' padding = '8, 8, 8, 8'>
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Graphics' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Audio' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_MIDI' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Volume' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Game' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'Id'
+ width = '35'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Domain'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'Name'
+ width = '35'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Desc'
+ type = 'PopUp'
+ />
+ </layout>
+ <space size = '8'/>
+ <widget name = 'Lang'
+ type = 'PopUp'
+ />
+ <widget name = 'Platform'
+ type = 'PopUp'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Paths' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Savepath'
+ type = 'Button'
+ />
+ <widget name = 'SavepathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Extrapath'
+ type = 'Button'
+ />
+ <widget name = 'ExtrapathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Gamepath'
+ type = 'Button'
+ />
+ <widget name = 'GamepathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalMenu' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
+ <widget name = 'Title'
+ width = '120'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Version'
+ width = '120'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Resume'
+ width = '70'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '4'/>
+ <widget name = 'Options'
+ width = '70'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'About'
+ width = '70'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '4'/>
+ <widget name = 'RTL'
+ width = '70'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'Quit'
+ width = '70'
+ height = 'Globals.Button.Height'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummMain' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '4, 4, 4, 4'>
+ <widget name = 'Resume'
+ type = 'Button'
+ />
+ <space size = '8'/>
+ <widget name = 'Load'
+ type = 'Button'
+ />
+ <widget name = 'Save'
+ type = 'Button'
+ />
+ <space size = '8'/>
+ <widget name = 'Options'
+ type = 'Button'
+ />
+ <widget name = 'Help'
+ type = 'Button'
+ />
+ <widget name = 'About'
+ type = 'Button'
+ />
+ <space size = '8'/>
+ <widget name = 'Quit'
+ type = 'Button'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummConfig' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcMusicText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcMusicSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcMusicLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcSfxText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSfxSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSfxLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'vcSpeechText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSpeechSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSpeechLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'subToggleDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subToggleButton'
+ width = '92'
+ height = 'Globals.Slider.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <widget name = 'subSubtitleSpeedDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subSubtitleSpeedSlider'
+ type = 'Slider'
+ />
+ <widget name = 'subSubtitleSpeedLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <space size = '20'/>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '8'>
+ <space size = 'Globals.Button.Width' />
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummSaveLoad' overlays = 'screen' inset = '16'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
+ <widget name = 'Title' height = 'Globals.Line.Height'/>
+ <widget name = 'List' />
+ <layout type = 'horizontal' padding = '0, 0, 16, 0'>
+ <space/>
+ <widget name = 'Delete'
+ type = 'Button'
+ />
+ <space size = '16'/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Choose'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummHelp' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <widget name = 'Title'
+ width = '180'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'HelpText'
+ height = '170'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 4, 0'>
+ <widget name = 'Prev'
+ type = 'Button'
+ />
+ <widget name = 'Next'
+ type = 'Button'
+ />
+ <space size = '32'/>
+ <widget name = 'Close'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+</layout_info>
diff --git a/gui/themes/scummtheme.py b/gui/themes/scummtheme.py
new file mode 100644
index 0000000000..6199289e66
--- /dev/null
+++ b/gui/themes/scummtheme.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env python
+# encoding: utf-8
+import sys
+import re
+import os
+import zipfile
+
+THEME_FILE_EXTENSIONS = ('.stx', '.bmp', '.fcc')
+
+def buildTheme(themeName):
+ if not os.path.isdir(themeName) or not os.path.isfile(os.path.join(themeName, "THEMERC")):
+ print "Invalid theme name: " + themeName
+ return
+
+ zf = zipfile.ZipFile(themeName + ".zip", 'w')
+
+ print "Building '" + themeName + "' theme:"
+ os.chdir(themeName)
+
+ zf.write('THEMERC', './THEMERC')
+
+ for filename in os.listdir('.'):
+ if os.path.isfile(filename) and not filename[0] == '.' and filename.endswith(THEME_FILE_EXTENSIONS):
+ zf.write(filename, './' + filename)
+ print " Adding file: " + filename
+
+ os.chdir('../')
+
+ zf.close()
+
+def buildAllThemes():
+ for f in os.listdir('.'):
+ if os.path.isdir(os.path.join('.', f)) and not f[0] == '.':
+ buildTheme(f)
+
+def parseSTX(theme_file, def_file):
+ comm = re.compile("\/\*(.*?)\*\/", re.DOTALL)
+
+ output = ""
+ for line in theme_file:
+ output += line.rstrip("\r\n\t ").lstrip() + " \n"
+
+ output = re.sub(comm, "", output).replace("\t", " ").replace(" ", " ").replace("\"", "'").splitlines()
+
+ for line in output:
+ if line and not line.isspace():
+ def_file.write("\"" + line + "\"\n")
+
+def buildDefTheme(themeName):
+ def_file = open("default.inc", "w")
+
+ if not os.path.isdir(themeName):
+ print "Cannot open default theme dir."
+
+ for filename in os.listdir(themeName):
+ filename = os.path.join(themeName, filename)
+ if os.path.isfile(filename) and filename.endswith(".stx"):
+ theme_file = open(filename, "r")
+ parseSTX(theme_file, def_file)
+ theme_file.close()
+
+ def_file.close()
+
+def printUsage():
+ print "==============================="
+ print "ScummVM Theme Generation Script"
+ print "==============================="
+ print "Usage:"
+ print "scummtheme.py makeall"
+ print " Builds all the available themes.\n"
+ print "scummtheme.py make [themename]"
+ print " Builds the theme called 'themename'.\n"
+ print "scummtheme.py default [themename]"
+ print " Creates a 'default.inc' file to embed the given theme in the source code.\n"
+
+def main():
+
+ if len(sys.argv) == 2 and sys.argv[1] == "makeall":
+ buildAllThemes()
+
+ elif len(sys.argv) == 3 and sys.argv[1] == "make":
+ buildTheme(sys.argv[2])
+
+ elif len(sys.argv) == 3 and sys.argv[1] == "default":
+ buildDefTheme(sys.argv[2])
+
+ else:
+ printUsage()
+
+if __name__ == "__main__":
+ sys.exit(main())