fix smpackage build

add localization tool to smpackage
This commit is contained in:
Chris Danford
2005-12-28 04:22:24 +00:00
parent 1fcfc22981
commit d459f0b795
13 changed files with 276 additions and 42 deletions
+4 -1
View File
@@ -2,8 +2,9 @@
#include "DateTime.h"
#include "RageUtil.h"
#include "EnumHelper.h"
#if !defined(SMPACKAGE)
#include "ThemeMetric.h"
#endif
DateTime::DateTime()
{
@@ -195,7 +196,9 @@ static const CString MonthNames[] =
"December",
};
XToString( Month, MONTHS_IN_YEAR );
#if !defined(SMPACKAGE)
XToThemedString( Month, MONTHS_IN_YEAR );
#endif
CString LastWeekToString( int iLastWeekIndex )
{
+11 -5
View File
@@ -6,9 +6,15 @@
#include "RageLog.h"
#include "RageFile.h"
#include "RageThreads.h"
#include "arch/Dialog/Dialog.h"
#include "Foreach.h"
#if !defined(SMPACKAGE)
#include "arch/Dialog/Dialog.h"
#define DIALOG_OK Dialog::OK
#else
#define DIALOG_OK __noop
#endif
#include <csetjmp>
#include <cassert>
@@ -268,7 +274,7 @@ bool LuaHelpers::RunScriptFile( const CString &sFile )
if( !f.Open( sFile ) )
{
CString sError = ssprintf( "Couldn't open Lua script \"%s\": %s", sFile.c_str(), f.GetError().c_str() );
Dialog::OK( sError, "LUA_ERROR" );
DIALOG_OK( sError, "LUA_ERROR" );
return false;
}
@@ -276,7 +282,7 @@ bool LuaHelpers::RunScriptFile( const CString &sFile )
if( f.Read( sScript ) == -1 )
{
CString sError = ssprintf( "Error reading Lua script \"%s\": %s", sFile.c_str(), f.GetError().c_str() );
Dialog::OK( sError, "LUA_ERROR" );
DIALOG_OK( sError, "LUA_ERROR" );
return false;
}
@@ -287,7 +293,7 @@ bool LuaHelpers::RunScriptFile( const CString &sFile )
{
LUA->Release(L);
sError = ssprintf( "Lua runtime error: %s", sError.c_str() );
Dialog::OK( sError, "LUA_ERROR" );
DIALOG_OK( sError, "LUA_ERROR" );
return false;
}
LUA->Release(L);
@@ -330,7 +336,7 @@ bool LuaHelpers::RunScript( Lua *L, const CString &sExpression, const CString &s
if( !LuaHelpers::RunScript( L, sExpression, sName.size()? sName:CString("in"), sError, iReturnValues ) )
{
sError = ssprintf( "Lua runtime error parsing \"%s\": %s", sName.size()? sName.c_str():sExpression.c_str(), sError.c_str() );
Dialog::OK( sError, "LUA_ERROR" );
DIALOG_OK( sError, "LUA_ERROR" );
return false;
}
+2
View File
@@ -3,6 +3,8 @@
const RString SpecialFiles::KEYMAPS_PATH = "Save/Keymaps.ini";
const RString SpecialFiles::PREFERENCES_INI_PATH = "Save/Preferences.ini";
const RString SpecialFiles::THEMES_DIR = "Themes/";
const RString SpecialFiles::LANGUAGES_SUBDIR = "Languages/";
/*
+3
View File
@@ -7,6 +7,9 @@ namespace SpecialFiles
{
extern const RString KEYMAPS_PATH;
extern const RString PREFERENCES_INI_PATH;
extern const RString THEMES_DIR;
extern const RString LANGUAGES_SUBDIR;
}
#endif
+6 -7
View File
@@ -17,6 +17,7 @@
#include "ScreenDimensions.h"
#include "Command.h"
#include "LocalizedString.h"
#include "SpecialFiles.h"
ThemeManager* THEME = NULL; // global object accessable from anywhere in the program
@@ -33,9 +34,7 @@ StringToX( ElementCategory );
const RString BASE_THEME_NAME = "default";
const RString LANGUAGES_SUBDIR = "Languages/";
const RString BASE_LANGUAGE = "english";
const RString THEMES_DIR = "Themes/";
const RString METRICS_FILE = "metrics.ini";
@@ -125,7 +124,7 @@ ThemeManager::~ThemeManager()
void ThemeManager::GetThemeNames( vector<RString>& AddTo )
{
GetDirListing( THEMES_DIR + "*", AddTo, true );
GetDirListing( SpecialFiles::THEMES_DIR + "*", AddTo, true );
StripCvs( AddTo );
}
@@ -356,7 +355,7 @@ void ThemeManager::UpdateLuaGlobals()
RString ThemeManager::GetThemeDirFromName( const RString &sThemeName )
{
return THEMES_DIR + sThemeName + "/";
return SpecialFiles::THEMES_DIR + sThemeName + "/";
}
struct CompareLanguageTag
@@ -847,7 +846,7 @@ void ThemeManager::NextTheme()
void ThemeManager::GetLanguagesForTheme( const RString &sThemeName, vector<RString>& asLanguagesOut )
{
RString sLanguageDir = GetThemeDirFromName(sThemeName) + LANGUAGES_SUBDIR;
RString sLanguageDir = GetThemeDirFromName(sThemeName) + SpecialFiles::LANGUAGES_SUBDIR;
vector<RString> as;
GetDirListing( sLanguageDir + "*.ini", as );
@@ -865,7 +864,7 @@ void ThemeManager::GetLanguagesForTheme( const RString &sThemeName, vector<RStri
RString ThemeManager::GetLanguageIniPath( const RString &sThemeName, const RString &sLanguage )
{
return GetThemeDirFromName(sThemeName) + LANGUAGES_SUBDIR + sLanguage + ".ini";
return GetThemeDirFromName(sThemeName) + SpecialFiles::LANGUAGES_SUBDIR + sLanguage + ".ini";
}
void ThemeManager::GetModifierNames( vector<RString>& AddTo )
@@ -926,7 +925,7 @@ void ThemeManager::GetMetricsThatBeginWith( const RString &sClassName_, const RS
RString ThemeManager::GetBlankGraphicPath()
{
return THEMES_DIR + BASE_THEME_NAME + "/" + ElementCategoryToString(EC_GRAPHICS) + "/_blank.png";
return SpecialFiles::THEMES_DIR + BASE_THEME_NAME + "/" + ElementCategoryToString(EC_GRAPHICS) + "/_blank.png";
}
// lua start
+32 -8
View File
@@ -176,6 +176,12 @@
<File
RelativePath=".\smpackage\EnterName.h">
</File>
<File
RelativePath=".\smpackage\LanguagesDlg.cpp">
</File>
<File
RelativePath=".\smpackage\LanguagesDlg.h">
</File>
<File
RelativePath=".\smpackage\MainMenuDlg.cpp">
</File>
@@ -250,10 +256,10 @@
RelativePath="menu.bmp">
</File>
<File
RelativePath="res\smpackage.ico">
RelativePath="smpackage.ICO">
</File>
<File
RelativePath="smpackage.ICO">
RelativePath="res\smpackage.ico">
</File>
<File
RelativePath=".\smpackage\smpackage.rc">
@@ -371,6 +377,18 @@
<File
RelativePath=".\RageFileDriverDeflate.h">
</File>
<File
RelativePath=".\RageFileDriverDirect.cpp">
</File>
<File
RelativePath=".\RageFileDriverDirect.h">
</File>
<File
RelativePath=".\RageFileDriverDirectHelpers.cpp">
</File>
<File
RelativePath=".\RageFileDriverDirectHelpers.h">
</File>
<File
RelativePath=".\RageFileDriverMemory.cpp">
</File>
@@ -383,6 +401,12 @@
<File
RelativePath=".\RageFileDriverSlice.h">
</File>
<File
RelativePath=".\RageFileDriverTimeout.cpp">
</File>
<File
RelativePath=".\RageFileDriverTimeout.h">
</File>
<File
RelativePath=".\RageFileDriverZip.cpp">
</File>
@@ -425,6 +449,12 @@
<File
RelativePath=".\RageUtil_FileDB.h">
</File>
<File
RelativePath=".\RageUtil_WorkerThread.cpp">
</File>
<File
RelativePath=".\RageUtil_WorkerThread.h">
</File>
<Filter
Name="Helpers"
Filter="">
@@ -499,12 +529,6 @@
<File
RelativePath=".\LuaManager.h">
</File>
<File
RelativePath=".\ThemeManager.cpp">
</File>
<File
RelativePath=".\ThemeManager.h">
</File>
</Filter>
<File
RelativePath=".\smpackage\install.bmp">
+112
View File
@@ -0,0 +1,112 @@
// LanguagesDlg.cpp : implementation file
//
#define CO_EXIST_WITH_MFC
#include "global.h"
#include "stdafx.h"
#include "smpackage.h"
#include "LanguagesDlg.h"
#include "SpecialFiles.h"
#include "RageUtil.h"
// LanguagesDlg dialog
IMPLEMENT_DYNAMIC(LanguagesDlg, CDialog)
LanguagesDlg::LanguagesDlg(CWnd* pParent /*=NULL*/)
: CDialog(LanguagesDlg::IDD, pParent)
{
}
LanguagesDlg::~LanguagesDlg()
{
}
void LanguagesDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST_THEMES, m_listThemes);
DDX_Control(pDX, IDC_LIST_LANGUAGES, m_listLanguages);
}
BOOL LanguagesDlg::OnInitDialog()
{
CDialog::OnInitDialog();
vector<RString> vs;
GetDirListing( SpecialFiles::THEMES_DIR+"*", vs, true );
FOREACH_CONST( RString, vs, s )
m_listThemes.AddString( *s );
if( !vs.empty() )
m_listThemes.SetSel( 0 );
else
OnSelchangeListThemes();
return TRUE; // return TRUE unless you set the focus to a control
}
static RString GetCurrentString( const CListBox &list )
{
// TODO: Add your control notification handler code here
int iSel = list.GetCurSel();
if( iSel == LB_ERR )
return RString();
CString s;
list.GetText( list.GetCurSel(), s );
return RString( s );
}
void LanguagesDlg::OnSelchangeListThemes()
{
// TODO: Add your control notification handler code here
m_listLanguages.ResetContent();
RString sTheme = GetCurrentString( m_listThemes );
if( sTheme.empty() )
{
OnSelchangeListLanguages();
return;
}
RString sLanguagesDir = SpecialFiles::THEMES_DIR + sTheme + "/" + SpecialFiles::LANGUAGES_SUBDIR;
vector<RString> vs;
GetDirListing( sLanguagesDir+"*.ini", vs, false );
FOREACH_CONST( RString, vs, s )
m_listLanguages.AddString( GetFileNameWithoutExtension(*s) );
if( !vs.empty() )
m_listLanguages.SetSel( 0 );
else
OnSelchangeListLanguages();
}
void LanguagesDlg::OnSelchangeListLanguages()
{
// TODO: Add your control notification handler code here
int iTotalStrings = -1;
int iNeedTranslation = -1;
RString sTheme = GetCurrentString( m_listThemes );
RString sLanguage = GetCurrentString( m_listLanguages );
if( !sTheme.empty() && !sLanguage.empty() )
{
RString sThemeDir = "Themes/" + sTheme + "/";
RString sLanguageFile = sThemeDir + SpecialFiles::LANGUAGES_SUBDIR + sLanguage + ".ini";
iTotalStrings = rand()%100;
iNeedTranslation = rand()%100;
}
GetDlgItem(IDC_STATIC_TOTAL_STRINGS )->SetWindowText( ssprintf(iTotalStrings==-1?"":"%d",iTotalStrings) );
GetDlgItem(IDC_STATIC_NEED_TRANSLATION )->SetWindowText( ssprintf(iNeedTranslation==-1?"":"%d",iNeedTranslation) );
}
BEGIN_MESSAGE_MAP(LanguagesDlg, CDialog)
ON_LBN_SELCHANGE(IDC_LIST_THEMES, OnSelchangeListThemes)
ON_LBN_SELCHANGE(IDC_LIST_LANGUAGES, OnSelchangeListLanguages)
END_MESSAGE_MAP()
// LanguagesDlg message handlers
+28
View File
@@ -0,0 +1,28 @@
#pragma once
#include "afxwin.h"
// LanguagesDlg dialog
class LanguagesDlg : public CDialog
{
DECLARE_DYNAMIC(LanguagesDlg)
public:
LanguagesDlg(CWnd* pParent = NULL); // standard constructor
virtual ~LanguagesDlg();
// Dialog Data
enum { IDD = IDD_THEMES };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnInitDialog();
void OnSelchangeListThemes();
void OnSelchangeListLanguages();
DECLARE_MESSAGE_MAP()
public:
CListBox m_listThemes;
CListBox m_listLanguages;
};
+11 -2
View File
@@ -15,7 +15,8 @@
#include "archutils/Win32/SpecialDirs.h"
#include "SpecialFiles.h"
#include "ProductInfo.h"
#include ".\mainmenudlg.h"
#include "mainmenudlg.h"
#include "LanguagesDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
@@ -58,6 +59,7 @@ BEGIN_MESSAGE_MAP(MainMenuDlg, CDialog)
ON_BN_CLICKED(IDC_BUTTON_LAUNCH_GAME, OnBnClickedButtonLaunchGame)
ON_BN_CLICKED(IDC_VIEW_STATISTICS, OnBnClickedViewStatistics)
ON_BN_CLICKED(IDC_CLEAR_CACHE, OnBnClickedClearCache)
ON_BN_CLICKED(IDC_LANGUAGES, OnBnClickedLanguages)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
@@ -257,6 +259,13 @@ void MainMenuDlg::OnBnClickedClearCache()
ASSERT(0);
}
void MainMenuDlg::OnBnClickedLanguages()
{
// TODO: Add your control notification handler code here
LanguagesDlg dlg;
dlg.DoModal();
}
/*
* (c) 2002-2005 Chris Danford
* All rights reserved.
@@ -280,4 +289,4 @@ void MainMenuDlg::OnBnClickedClearCache()
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
*/
+1
View File
@@ -51,6 +51,7 @@ public:
afx_msg void OnBnClickedButtonLaunchGame();
afx_msg void OnBnClickedViewStatistics();
afx_msg void OnBnClickedClearCache();
afx_msg void OnBnClickedLanguages();
};
//{{AFX_INSERT_LOCATION}}
+11 -2
View File
@@ -17,6 +17,7 @@
#define IDD_SHOW_COMMENT 147
#define IDD_UNINSTALL_OLD_PACKAGES 148
#define IDD_CHANGE_GAME_SETTINGS 149
#define IDD_THEMES 150
#define IDC_LIST_SONGS 1000
#define IDC_LIST 1000
#define IDC_BUTTON_PLAY 1001
@@ -54,6 +55,7 @@
#define IDC_VIEW_STATISTICS 1030
#define IDC_CLEAR_KEYMAPS2 1031
#define IDC_CLEAR_CACHE 1031
#define IDC_LANGUAGES 1032
#define IDC_BUTTON_REFRESH 1035
#define IDC_BUTTON_SAVE 1036
#define IDC_BUTTON_OVERRIDE 1037
@@ -63,8 +65,10 @@
#define IDC_DONTSHOW 1042
#define IDC_PACKAGES 1044
#define IDC_BUTTON1 1045
#define IDC_BUTTON_DELETE 1046
#define IDC_PROGRESS1 1047
#define IDC_RADIO_DEFAULT 1048
#define IDC_BUTTON_IMPORT 1048
#define IDC_RADIO_OPENGL 1049
#define IDC_RADIO_DIRECT3D 1050
#define IDC_RADIO_SOUND_DEFAULT 1051
@@ -76,14 +80,19 @@
#define IDC_BUTTON_LAUNCH_GAME 1055
#define IDC_RADIO_SOUND_DIRECTSOUND_HARDWARE 1056
#define IDC_RADIO_SOUND_WAVEOUT 1057
#define IDC_BUTTON_CREATE 1057
#define IDC_LIST_LANGUAGES 1058
#define IDC_STATIC_TOTAL_STRINGS 1060
#define IDC_STATIC_NEED_TRANSLATION 1061
#define IDC_STATIC_TOTAL_STRINGS2 1062
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 150
#define _APS_NEXT_RESOURCE_VALUE 151
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1056
#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif
+8 -7
View File
@@ -9,6 +9,7 @@
#include "MainMenuDlg.h"
#include "RageFileManager.h"
#include "arch/arch.h"
#include "LuaManager.h"
#ifdef _DEBUG
@@ -38,8 +39,11 @@ extern RString GetLastErrorString();
BOOL CSmpackageApp::InitInstance()
{
TCHAR szCurrentDirectory[MAX_PATH];
GetCurrentDirectory( ARRAYSIZE(szCurrentDirectory), szCurrentDirectory );
/* Almost everything uses this to read and write files. Load this early. */
FILEMAN = new RageFileManager( "" );
FILEMAN = new RageFileManager( szCurrentDirectory );
FILEMAN->MountInitialFilesystems();
/* Set this up next. Do this early, since it's needed for RageException::Throw. */
@@ -47,12 +51,7 @@ BOOL CSmpackageApp::InitInstance()
if( DoesFileExist("Songs") ) // this is a SM program directory
{
// make sure it's in the list of install directories
TCHAR szCurrentDirectory[MAX_PATH];
GetCurrentDirectory( MAX_PATH, szCurrentDirectory );
SMPackageUtil::AddStepManiaInstallDir( szCurrentDirectory );
}
SMPackageUtil::AddStepManiaInstallDir( szCurrentDirectory ); // add this if it doesn't already exist
// check if there's a .smzip command line argument
@@ -109,6 +108,7 @@ BOOL CSmpackageApp::InitInstance()
}
FILEMAN = new RageFileManager( "" );
LUA = new LuaManager();
// Show the Manager Dialog
@@ -117,6 +117,7 @@ BOOL CSmpackageApp::InitInstance()
// if (nResponse == IDOK)
SAFE_DELETE( LUA );
SAFE_DELETE( FILEMAN );
+47 -10
View File
@@ -155,23 +155,23 @@ BEGIN
IDC_STATIC,18,144,196,17
END
IDD_MENU DIALOGEX 0, 0, 334, 303
IDD_MENU DIALOGEX 0, 0, 332, 325
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "StepMania Tools Main Menu"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "Exit",IDOK,277,282,50,14
DEFPUSHBUTTON "Exit",IDOK,275,304,50,14
CONTROL 140,IDC_STATIC,"Static",SS_BITMAP,0,0,332,38
GROUPBOX "Installation",IDC_STATIC,7,41,320,28
GROUPBOX "Installation",IDC_STATIC,7,41,318,28
PUSHBUTTON "Edit Installations",IDC_EDIT_INSTALLATIONS,241,49,75,15
GROUPBOX "Create and Share",IDC_STATIC,7,219,320,57
GROUPBOX "Create and Share",IDC_STATIC,7,219,318,79
PUSHBUTTON "Export Packages",IDC_EXPORT_PACKAGES,15,234,75,15
LTEXT "Create .smzip package files to share with other users. Packages can contain songs, courses, themes, backgrounds, and more.",
IDC_STATIC,104,233,215,18
PUSHBUTTON "Create Song",IDC_CREATE_SONG,15,255,75,15
LTEXT "Create a new song in StepMania from your favorite mp3 or ogg music file.",
LTEXT "Create a new song in from your favorite mp3 or ogg music file.",
IDC_STATIC,103,254,215,20
GROUPBOX "Troubleshooting",IDC_STATIC,7,109,320,109
GROUPBOX "Troubleshooting",IDC_STATIC,7,109,318,109
PUSHBUTTON "Change Preferences",IDC_CHANGE_PREFERENCES,16,120,75,15
PUSHBUTTON "Open Preferences",IDC_OPEN_PREFERENCES,16,152,75,15
LTEXT "Using this feature, you can:\n - Change the graphics API that the game will use.\n - Change the sound API that the game will use.\n - Clear all preferences if the game won't start.\n - Open the preferences file to make changes by hand.",
@@ -182,14 +182,17 @@ BEGIN
ES_READONLY
LTEXT "Erase all of your keyboard and joystick mappings if you've made a mistake.",
IDC_STATIC,104,174,214,18
PUSHBUTTON "Launch Game",IDC_BUTTON_LAUNCH_GAME,189,282,70,14
PUSHBUTTON "Launch Game",IDC_BUTTON_LAUNCH_GAME,189,304,70,14
PUSHBUTTON "View Statistics",IDC_VIEW_STATISTICS,16,85,75,15
LTEXT "View high scores and usage statistics and other data saved from your play.",
IDC_STATIC,103,84,215,20
GROUPBOX "Statistics",IDC_STATIC,7,72,320,35
GROUPBOX "Statistics",IDC_STATIC,7,72,318,35
PUSHBUTTON "Clear Cache",IDC_CLEAR_CACHE,16,196,75,15
LTEXT "Erase the song and course cache. Use this if you change a song file and the change isn't showing in-game.",
IDC_STATIC,104,196,214,18
PUSHBUTTON "Languages",IDC_LANGUAGES,15,276,75,15
LTEXT "Create a new or manage existing language translations.",
IDC_STATIC,103,275,215,20
END
IDD_ENTER_COMMENT DIALOGEX 0, 0, 312, 202
@@ -271,6 +274,32 @@ BEGIN
IDC_STATIC,7,234,147,26
END
IDD_THEMES DIALOGEX 0, 0, 329, 194
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
WS_SYSMENU
CAPTION "Language Translations"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "Close",IDOK,272,173,50,14
LISTBOX IDC_LIST_THEMES,7,18,102,121,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
LTEXT "Themes",IDC_STATIC,7,7,101,10
LISTBOX IDC_LIST_LANGUAGES,116,17,100,121,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
LTEXT "Languages",IDC_STATIC,118,7,98,10
PUSHBUTTON "Create Language",IDC_BUTTON_CREATE,232,45,85,15
PUSHBUTTON "Delete Language",IDC_BUTTON_DELETE,232,67,85,15
PUSHBUTTON "Export CSV",IDC_BUTTON_EXPORT,232,89,85,15
PUSHBUTTON "Import CSV",IDC_BUTTON_IMPORT,232,111,85,15
LTEXT "Create a new language, export the theme strings to a CSV, edit the CSV using Excel or a text editor, then import the CSV file back into the same language.",
IDC_STATIC,7,144,315,25
LTEXT "Selection details",IDC_STATIC,222,7,100,9
LTEXT "Total Strings:",IDC_STATIC,225,17,62,10
LTEXT "Need translation:",IDC_STATIC,225,28,69,10
LTEXT "",IDC_STATIC_TOTAL_STRINGS,296,18,26,10
LTEXT "",IDC_STATIC_NEED_TRANSLATION,296,27,26,10
END
/////////////////////////////////////////////////////////////////////////////
//
@@ -353,9 +382,9 @@ BEGIN
IDD_MENU, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 327
RIGHTMARGIN, 325
TOPMARGIN, 7
BOTTOMMARGIN, 296
BOTTOMMARGIN, 318
END
IDD_ENTER_COMMENT, DIALOG
@@ -389,6 +418,14 @@ BEGIN
TOPMARGIN, 7
BOTTOMMARGIN, 274
END
IDD_THEMES, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 322
TOPMARGIN, 7
BOTTOMMARGIN, 187
END
END
#endif // APSTUDIO_INVOKED