mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Changed Themes to Layouts
This commit is contained in:
@ -125,7 +125,7 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLi
|
||||
|
||||
if (*lpCmdLine && CloseRainmeterIfActive())
|
||||
{
|
||||
CDialogInstall::LoadTheme(lpCmdLine, true);
|
||||
CDialogInstall::LoadLayout(lpCmdLine, true);
|
||||
|
||||
std::wstring file = g_Data.programPath + L"Rainmeter.exe";
|
||||
SHELLEXECUTEINFO sei = {0};
|
||||
|
@ -517,9 +517,9 @@ bool CDialogInstall::ReadPackage()
|
||||
}
|
||||
else if (_wcsicmp(component, m_PackageFormat == PackageFormat::New ? L"Layouts" : L"Themes") == 0 &&
|
||||
_wcsicmp(extension, m_PackageFormat == PackageFormat::New ? L".ini" : L".thm") == 0 &&
|
||||
!IsIgnoredTheme(itemSz))
|
||||
!IsIgnoredLayout(itemSz))
|
||||
{
|
||||
m_PackageThemes.insert(item);
|
||||
m_PackageLayouts.insert(item);
|
||||
}
|
||||
else if (_wcsicmp(component, L"Addons") == 0 &&
|
||||
m_PackageFormat == PackageFormat::Old &&
|
||||
@ -561,7 +561,7 @@ bool CDialogInstall::ReadPackage()
|
||||
m_PackageFonts.clear();
|
||||
}
|
||||
|
||||
return !(m_PackageSkins.empty() && m_PackageThemes.empty() &&
|
||||
return !(m_PackageSkins.empty() && m_PackageLayouts.empty() &&
|
||||
m_PackageAddons.empty() && m_PackageFonts.empty() && m_PackagePlugins.empty());
|
||||
}
|
||||
|
||||
@ -631,7 +631,7 @@ bool CDialogInstall::ReadOptions(const WCHAR* file)
|
||||
}
|
||||
else
|
||||
{
|
||||
m_LoadTheme = buffer;
|
||||
m_LoadLayout = buffer;
|
||||
}
|
||||
}
|
||||
|
||||
@ -801,30 +801,30 @@ bool CDialogInstall::InstallPackage()
|
||||
}
|
||||
else if (_wcsicmp(component, m_PackageFormat == PackageFormat::New ? L"Layouts" : L"Themes") == 0 &&
|
||||
_wcsicmp(extension, m_PackageFormat == PackageFormat::New ? L".ini" : L".thm") == 0 &&
|
||||
m_PackageThemes.find(item) != m_PackageThemes.end())
|
||||
m_PackageLayouts.find(item) != m_PackageLayouts.end())
|
||||
{
|
||||
if (m_PackageFormat == PackageFormat::New)
|
||||
if (m_PackageFormat == PackageFormat::Old)
|
||||
{
|
||||
wcscpy_s(extension, 5, L".thm");
|
||||
wcscpy_s(extension, 5, L".ini");
|
||||
}
|
||||
|
||||
targetPath = g_Data.settingsPath;
|
||||
targetPath += L"Themes\\";
|
||||
targetPath += L"Layouts\\";
|
||||
targetPath += path;
|
||||
error = !ExtractCurrentFile(targetPath);
|
||||
if (!error)
|
||||
{
|
||||
// Remove user specific options
|
||||
const WCHAR* theme = targetPath.c_str();
|
||||
WritePrivateProfileString(L"Rainmeter", L"SkinPath", NULL, theme);
|
||||
WritePrivateProfileString(L"Rainmeter", L"Language", NULL, theme);
|
||||
WritePrivateProfileString(L"Rainmeter", L"Logging", NULL, theme);
|
||||
WritePrivateProfileString(L"Rainmeter", L"ConfigEditor", NULL, theme);
|
||||
WritePrivateProfileString(L"Rainmeter", L"LogViewer", NULL, theme);
|
||||
WritePrivateProfileString(L"Rainmeter", L"DisableDragging", NULL, theme);
|
||||
WritePrivateProfileString(L"Rainmeter", L"DisableRDP", NULL, theme);
|
||||
WritePrivateProfileString(L"Rainmeter", L"DisableVersionCheck", NULL, theme);
|
||||
WritePrivateProfileString(L"Rainmeter", L"Debug", NULL, theme);
|
||||
const WCHAR* layout = targetPath.c_str();
|
||||
WritePrivateProfileString(L"Rainmeter", L"SkinPath", NULL, layout);
|
||||
WritePrivateProfileString(L"Rainmeter", L"Language", NULL, layout);
|
||||
WritePrivateProfileString(L"Rainmeter", L"Logging", NULL, layout);
|
||||
WritePrivateProfileString(L"Rainmeter", L"ConfigEditor", NULL, layout);
|
||||
WritePrivateProfileString(L"Rainmeter", L"LogViewer", NULL, layout);
|
||||
WritePrivateProfileString(L"Rainmeter", L"DisableDragging", NULL, layout);
|
||||
WritePrivateProfileString(L"Rainmeter", L"DisableRDP", NULL, layout);
|
||||
WritePrivateProfileString(L"Rainmeter", L"DisableVersionCheck", NULL, layout);
|
||||
WritePrivateProfileString(L"Rainmeter", L"Debug", NULL, layout);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -881,7 +881,7 @@ void CDialogInstall::BeginInstall()
|
||||
item = GetDlgItem(m_TabInstall.GetWindow(), IDC_INSTALLTAB_THEME_CHECKBOX);
|
||||
if (Button_GetCheck(item) == BST_UNCHECKED)
|
||||
{
|
||||
m_LoadTheme.clear();
|
||||
m_LoadLayout.clear();
|
||||
m_LoadSkins.clear();
|
||||
}
|
||||
EnableWindow(item, FALSE);
|
||||
@ -903,7 +903,7 @@ void CDialogInstall::BeginInstall()
|
||||
switch (lvi.iGroupId)
|
||||
{
|
||||
case 0: component = &m_PackageSkins; break;
|
||||
case 1: component = &m_PackageThemes; break;
|
||||
case 1: component = &m_PackageLayouts; break;
|
||||
case 2: component = &m_PackageAddons; break;
|
||||
case 3: component = &m_PackagePlugins; break;
|
||||
}
|
||||
@ -956,7 +956,7 @@ UINT __stdcall CDialogInstall::InstallThread(void* pParam)
|
||||
MessageBox(dialog->m_Window, dialog->m_ErrorMessage.c_str(), L"Rainmeter Skin Installer", MB_ERROR);
|
||||
|
||||
dialog->m_LoadSkins.clear();
|
||||
dialog->m_LoadTheme.clear();
|
||||
dialog->m_LoadLayout.clear();
|
||||
}
|
||||
|
||||
dialog->LaunchRainmeter();
|
||||
@ -1054,13 +1054,13 @@ void CDialogInstall::KeepVariables()
|
||||
}
|
||||
}
|
||||
|
||||
void CDialogInstall::LoadTheme(const std::wstring& name, bool setWallpaper)
|
||||
void CDialogInstall::LoadLayout(const std::wstring& name, bool setWallpaper)
|
||||
{
|
||||
// Take a copy of current Rainmeter.ini before doing anything
|
||||
std::wstring backupFile = g_Data.settingsPath;
|
||||
backupFile += L"Themes\\@Backup\\";
|
||||
backupFile += L"Layouts\\@Backup\\";
|
||||
CreateDirectory(backupFile.c_str(), NULL);
|
||||
backupFile += L"Rainmeter.thm";
|
||||
backupFile += L"Rainmeter.ini";
|
||||
CopyFiles(g_Data.iniFile, backupFile, false);
|
||||
|
||||
if (name.empty())
|
||||
@ -1068,14 +1068,14 @@ void CDialogInstall::LoadTheme(const std::wstring& name, bool setWallpaper)
|
||||
return;
|
||||
}
|
||||
|
||||
std::wstring themeFile = g_Data.settingsPath;
|
||||
themeFile += L"Themes\\";
|
||||
themeFile += name;
|
||||
std::wstring wallpaperFile = themeFile + L"\\RainThemes.bmp";
|
||||
themeFile += L"\\Rainmeter.thm";
|
||||
if (_waccess(themeFile.c_str(), 0) != -1)
|
||||
std::wstring layoutFile = g_Data.settingsPath;
|
||||
layoutFile += L"Layouts\\";
|
||||
layoutFile += name;
|
||||
std::wstring wallpaperFile = layoutFile + L"\\Wallpaper.bmp";
|
||||
layoutFile += L"\\Rainmeter.ini";
|
||||
if (_waccess(layoutFile.c_str(), 0) != -1)
|
||||
{
|
||||
CopyFiles(themeFile, g_Data.iniFile, false);
|
||||
CopyFiles(layoutFile, g_Data.iniFile, false);
|
||||
|
||||
const WCHAR* iniFileSz = g_Data.iniFile.c_str();
|
||||
const WCHAR* backupFileSz = backupFile.c_str();
|
||||
@ -1112,8 +1112,8 @@ void CDialogInstall::LoadTheme(const std::wstring& name, bool setWallpaper)
|
||||
|
||||
void CDialogInstall::LaunchRainmeter()
|
||||
{
|
||||
// Backup Rainmeter.ini and load theme (if specified)
|
||||
LoadTheme(m_LoadTheme, false);
|
||||
// Backup Rainmeter.ini and load layout (if specified)
|
||||
LoadLayout(m_LoadLayout, false);
|
||||
|
||||
// Execute Rainmeter and wait up to a minute for it process all messages
|
||||
std::wstring rainmeterExe = g_Data.programPath + L"Rainmeter.exe";
|
||||
@ -1164,7 +1164,7 @@ bool CDialogInstall::IsIgnoredSkin(const WCHAR* name)
|
||||
_wcsicmp(name, L"@Backup") == 0;
|
||||
}
|
||||
|
||||
bool CDialogInstall::IsIgnoredTheme(const WCHAR* name)
|
||||
bool CDialogInstall::IsIgnoredLayout(const WCHAR* name)
|
||||
{
|
||||
return _wcsicmp(name, L"Backup") == 0 ||
|
||||
_wcsicmp(name, L"@Backup") == 0;
|
||||
@ -1439,12 +1439,12 @@ void CDialogInstall::CTabInstall::Initialize()
|
||||
};
|
||||
|
||||
addComponent(L"Skins", c_Dialog->m_PackageSkins, g_Data.skinsPath, 0);
|
||||
addComponent(L"Themes", c_Dialog->m_PackageThemes, g_Data.settingsPath + L"Themes\\", 1);
|
||||
addComponent(L"Layouts", c_Dialog->m_PackageLayouts, g_Data.settingsPath + L"Layouts\\", 1);
|
||||
addComponent(L"Addons", c_Dialog->m_PackageAddons, g_Data.settingsPath + L"Addons\\", 2);
|
||||
addComponent(L"Plugins", c_Dialog->m_PackagePlugins, g_Data.settingsPath + L"Plugins\\", 3);
|
||||
|
||||
item = GetDlgItem(m_Window, IDC_INSTALLTAB_THEME_CHECKBOX);
|
||||
if (!c_Dialog->m_LoadTheme.empty())
|
||||
if (!c_Dialog->m_LoadLayout.empty())
|
||||
{
|
||||
Button_SetCheck(item, BST_CHECKED);
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ public:
|
||||
INT_PTR OnCommand(WPARAM wParam, LPARAM lParam);
|
||||
INT_PTR OnNotify(WPARAM wParam, LPARAM lParam);
|
||||
|
||||
static void LoadTheme(const std::wstring& name, bool setWallpaper);
|
||||
static void LoadLayout(const std::wstring& name, bool setWallpaper);
|
||||
|
||||
static CDialogInstall* c_Dialog;
|
||||
|
||||
@ -93,7 +93,7 @@ private:
|
||||
void KeepVariables();
|
||||
|
||||
static bool IsIgnoredSkin(const WCHAR* name);
|
||||
static bool IsIgnoredTheme(const WCHAR* name);
|
||||
static bool IsIgnoredLayout(const WCHAR* name);
|
||||
static bool IsIgnoredAddon(const WCHAR* name);
|
||||
static bool IsIgnoredPlugin(const WCHAR* name);
|
||||
|
||||
@ -117,7 +117,7 @@ private:
|
||||
std::wstring m_PackageRoot;
|
||||
PackageFormat m_PackageFormat;
|
||||
std::set<std::wstring> m_PackageSkins;
|
||||
std::set<std::wstring> m_PackageThemes;
|
||||
std::set<std::wstring> m_PackageLayouts;
|
||||
std::set<std::wstring> m_PackageAddons;
|
||||
std::set<std::wstring> m_PackageFonts;
|
||||
std::set<std::wstring> m_PackagePlugins;
|
||||
@ -128,7 +128,7 @@ private:
|
||||
bool m_SystemFonts;
|
||||
std::vector<std::wstring> m_VariablesFiles;
|
||||
std::vector<std::wstring> m_LoadSkins;
|
||||
std::wstring m_LoadTheme;
|
||||
std::wstring m_LoadLayout;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -34,7 +34,7 @@ CDialogPackage::CDialogPackage(HWND wnd) : CDialog(wnd),
|
||||
m_TabInfo(wnd),
|
||||
m_TabOptions(wnd),
|
||||
m_TabAdvanced(wnd),
|
||||
m_LoadTheme(false),
|
||||
m_LoadLayout(false),
|
||||
m_MergeSkins(false),
|
||||
m_PackagerThread(),
|
||||
m_ZipFile()
|
||||
@ -246,7 +246,7 @@ bool CDialogPackage::CreatePackage()
|
||||
|
||||
if (!c_Dialog->m_Load.empty())
|
||||
{
|
||||
WritePrivateProfileString(L"rmskin", L"LoadType", c_Dialog->m_LoadTheme ? L"Layout" : L"Skin", tempFile);
|
||||
WritePrivateProfileString(L"rmskin", L"LoadType", c_Dialog->m_LoadLayout ? L"Layout" : L"Skin", tempFile);
|
||||
WritePrivateProfileString(L"rmskin", L"Load", c_Dialog->m_Load.c_str(), tempFile);
|
||||
}
|
||||
|
||||
@ -293,15 +293,15 @@ bool CDialogPackage::CreatePackage()
|
||||
}
|
||||
}
|
||||
|
||||
// Add themes
|
||||
for (auto iter = m_ThemeFolders.cbegin(); iter != m_ThemeFolders.cend(); ++iter)
|
||||
// Add layouts
|
||||
for (auto iter = m_LayoutFolders.cbegin(); iter != m_LayoutFolders.cend(); ++iter)
|
||||
{
|
||||
std::wstring realPath = (*iter).second + L"Rainmeter.thm";
|
||||
std::wstring realPath = (*iter).second + L"Rainmeter.ini";
|
||||
std::wstring zipPath = L"Layouts\\" + (*iter).first;
|
||||
zipPath += L"\\Rainmeter.ini";
|
||||
if (!AddFileToPackage(realPath.c_str(), zipPath.c_str()))
|
||||
{
|
||||
std::wstring error = L"Error adding theme '";
|
||||
std::wstring error = L"Error adding layout '";
|
||||
error += (*iter).first;
|
||||
error += L"'.";
|
||||
error += L"\n\nClick OK to close Packager.";
|
||||
@ -846,7 +846,7 @@ void CDialogPackage::CTabInfo::Initialize()
|
||||
lvg.pszHeader = L"Skin";
|
||||
ListView_InsertGroup(item, -1, &lvg);
|
||||
lvg.iGroupId = 1;
|
||||
lvg.pszHeader = L"Themes";
|
||||
lvg.pszHeader = L"Layouts";
|
||||
ListView_InsertGroup(item, -1, &lvg);
|
||||
lvg.iGroupId = 2;
|
||||
lvg.pszHeader = L"Plugins";
|
||||
@ -896,18 +896,18 @@ INT_PTR CDialogPackage::CTabInfo::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case IDC_PACKAGEINFO_ADDTHEME_BUTTON:
|
||||
{
|
||||
std::wstring folder = SelectFolder(m_Window, g_Data.settingsPath + L"Themes\\");
|
||||
std::wstring folder = SelectFolder(m_Window, g_Data.settingsPath + L"Layouts\\");
|
||||
if (!folder.empty())
|
||||
{
|
||||
std::wstring name = PathFindFileName(folder.c_str());
|
||||
name.pop_back(); // Remove slash
|
||||
|
||||
if (c_Dialog->m_ThemeFolders.insert(std::make_pair(name, folder)).second)
|
||||
if (c_Dialog->m_LayoutFolders.insert(std::make_pair(name, folder)).second)
|
||||
{
|
||||
HWND item = GetDlgItem(m_Window, IDC_PACKAGEINFO_COMPONENTS_LIST);
|
||||
LVITEM lvi;
|
||||
lvi.mask = LVIF_TEXT | LVIF_GROUPID;
|
||||
lvi.iItem = c_Dialog->m_ThemeFolders.size() + 1;
|
||||
lvi.iItem = c_Dialog->m_LayoutFolders.size() + 1;
|
||||
lvi.iSubItem = 0;
|
||||
lvi.iGroupId = 1;
|
||||
lvi.pszText = (WCHAR*)name.c_str();
|
||||
@ -968,7 +968,7 @@ INT_PTR CDialogPackage::CTabInfo::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case 1:
|
||||
c_Dialog->m_ThemeFolders.erase(c_Dialog->m_ThemeFolders.find(name));
|
||||
c_Dialog->m_LayoutFolders.erase(c_Dialog->m_LayoutFolders.find(name));
|
||||
break;
|
||||
|
||||
case 2:
|
||||
@ -1083,7 +1083,7 @@ void CDialogPackage::CTabOptions::Initialize()
|
||||
SetWindowText(item,c_Dialog->m_TargetFile.c_str());
|
||||
|
||||
item = GetDlgItem(m_Window, IDC_PACKAGEOPTIONS_LOADTHEME_RADIO);
|
||||
if (c_Dialog->m_ThemeFolders.empty())
|
||||
if (c_Dialog->m_LayoutFolders.empty())
|
||||
{
|
||||
EnableWindow(item, FALSE);
|
||||
|
||||
@ -1092,15 +1092,15 @@ void CDialogPackage::CTabOptions::Initialize()
|
||||
}
|
||||
else
|
||||
{
|
||||
c_Dialog->m_LoadTheme = true;
|
||||
c_Dialog->m_Load = (*c_Dialog->m_ThemeFolders.cbegin()).first;
|
||||
c_Dialog->m_LoadLayout = true;
|
||||
c_Dialog->m_Load = (*c_Dialog->m_LayoutFolders.cbegin()).first;
|
||||
|
||||
Button_SetCheck(item, BST_CHECKED);
|
||||
|
||||
item = GetDlgItem(m_Window, IDC_PACKAGEOPTIONS_LOADTHEME_COMBO);
|
||||
ShowWindow(item, SW_SHOWNORMAL);
|
||||
|
||||
for (auto iter = c_Dialog->m_ThemeFolders.cbegin(); iter != c_Dialog->m_ThemeFolders.cend(); ++iter)
|
||||
for (auto iter = c_Dialog->m_LayoutFolders.cbegin(); iter != c_Dialog->m_LayoutFolders.cend(); ++iter)
|
||||
{
|
||||
ComboBox_AddString(item, (*iter).first.c_str());
|
||||
}
|
||||
@ -1181,7 +1181,7 @@ INT_PTR CDialogPackage::CTabOptions::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
WCHAR buffer[MAX_PATH];
|
||||
GetWindowText(item, buffer, _countof(buffer));
|
||||
c_Dialog->m_Load = buffer;
|
||||
c_Dialog->m_LoadTheme = false;
|
||||
c_Dialog->m_LoadLayout = false;
|
||||
|
||||
item = GetDlgItem(m_Window, IDC_PACKAGEOPTIONS_LOADSKINBROWSE_BUTTON);
|
||||
ShowWindow(item, SW_SHOWNORMAL);
|
||||
@ -1202,7 +1202,7 @@ INT_PTR CDialogPackage::CTabOptions::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
WCHAR buffer[MAX_PATH];
|
||||
GetWindowText(item, buffer, _countof(buffer));
|
||||
c_Dialog->m_Load = buffer;
|
||||
c_Dialog->m_LoadTheme = true;
|
||||
c_Dialog->m_LoadLayout = true;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -104,14 +104,14 @@ private:
|
||||
std::wstring m_Author;
|
||||
std::wstring m_Version;
|
||||
std::pair<std::wstring, std::wstring> m_SkinFolder;
|
||||
std::map<std::wstring, std::wstring> m_ThemeFolders;
|
||||
std::map<std::wstring, std::wstring> m_LayoutFolders;
|
||||
std::map<std::wstring, std::pair<std::wstring, std::wstring>> m_PluginFolders;
|
||||
|
||||
// Options tab
|
||||
std::wstring m_TargetFile;
|
||||
std::wstring m_MinimumRainmeter;
|
||||
std::wstring m_MinimumWindows;
|
||||
bool m_LoadTheme;
|
||||
bool m_LoadLayout;
|
||||
std::wstring m_Load;
|
||||
|
||||
// Advanced tab
|
||||
|
@ -94,7 +94,7 @@ FONT 8, "MS Shell Dlg 2"
|
||||
GROUPBOX "Components", IDC_STATIC, 0, 110, 270, 108
|
||||
CONTROL "", IDC_PACKAGEINFO_COMPONENTS_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 6, 125, 182, 86
|
||||
PUSHBUTTON "Add skin...", IDC_PACKAGEINFO_ADDSKIN_BUTTON, 194, 125, 70, 14
|
||||
PUSHBUTTON "Add theme...", IDC_PACKAGEINFO_ADDTHEME_BUTTON, 194, 144, 70, 14
|
||||
PUSHBUTTON "Add layout...", IDC_PACKAGEINFO_ADDTHEME_BUTTON, 194, 144, 70, 14
|
||||
PUSHBUTTON "Add plugin...", IDC_PACKAGEINFO_ADDPLUGIN_BUTTON, 194, 162, 70, 14
|
||||
PUSHBUTTON "Remove", IDC_PACKAGEINFO_REMOVE_BUTTON, 194, 197, 70, 14, WS_DISABLED
|
||||
CONTROL "<A>What is a .rmskin package?</A>", IDC_PACKAGEINFO_WHATIS_LINK, "SysLink", 0x0, 0, 225, 264, 9
|
||||
@ -114,7 +114,7 @@ FONT 8, "MS Shell Dlg 2"
|
||||
AUTORADIOBUTTON "Load skin", IDC_PACKAGEOPTIONS_LOADSKIN_RADIO, 6, 129, 85, 9, WS_TABSTOP
|
||||
EDITTEXT IDC_PACKAGEOPTIONS_LOADSKIN_EDIT, 96, 126, 138, 14, ES_READONLY | ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | NOT WS_VISIBLE
|
||||
PUSHBUTTON "...", IDC_PACKAGEOPTIONS_LOADSKINBROWSE_BUTTON, 239, 126, 25, 14, WS_TABSTOP | NOT WS_VISIBLE
|
||||
AUTORADIOBUTTON "Load theme", IDC_PACKAGEOPTIONS_LOADTHEME_RADIO, 6, 142, 85, 9, WS_TABSTOP
|
||||
AUTORADIOBUTTON "Load layout", IDC_PACKAGEOPTIONS_LOADTHEME_RADIO, 6, 142, 85, 9, WS_TABSTOP
|
||||
COMBOBOX IDC_PACKAGEOPTIONS_LOADTHEME_COMBO, 96, 139, 168, 14, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | NOT WS_VISIBLE
|
||||
|
||||
GROUPBOX "Minimum requirements", IDC_STATIC, 0, 164, 270, 53
|
||||
@ -193,8 +193,7 @@ FONT 8, "MS Shell Dlg 2"
|
||||
LTEXT "", IDC_INSTALLTAB_VERSION_TEXT, 50, 26, 200, 9, SS_NOPREFIX
|
||||
LTEXT "Included components:", IDC_STATIC, 0, 45, 80, 9
|
||||
CONTROL "", IDC_INSTALLTAB_COMPONENTS_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 0, 60, 234, 86
|
||||
AUTOCHECKBOX "Apply included theme", IDC_INSTALLTAB_THEME_CHECKBOX, 4, 155, 220, 9
|
||||
|
||||
AUTOCHECKBOX "Apply included layout", IDC_INSTALLTAB_THEME_CHECKBOX, 4, 155, 220, 9
|
||||
LTEXT "Installing...", IDC_INSTALLTAB_INPROGRESS_TEXT, 0, 0, 236, 60, NOT WS_VISIBLE
|
||||
CONTROL "", IDC_INSTALLTAB_PROGRESS, "msctls_progress32", PBS_MARQUEE | NOT WS_VISIBLE | WS_BORDER, 0, 15, 236, 11
|
||||
}
|
||||
|
Reference in New Issue
Block a user