This commit is contained in:
Igor Pavlov
2003-12-11 00:00:00 +00:00
committed by Kornel Lesiński
commit 8c1b5c7b7e
982 changed files with 118799 additions and 0 deletions

View File

@@ -0,0 +1,161 @@
// FoldersDialog.cpp
#include "StdAfx.h"
#include "resource.h"
#include "FoldersPage.h"
#include "Common/StringConvert.h"
#include "Windows/Defs.h"
#include "Windows/Shell.h"
#include "Windows/ResourceString.h"
#include "../../../FileManager/HelpUtils.h"
#include "../../Common/ZipRegistry.h"
#include "../../../FileManager/LangUtils.h"
using namespace NWindows;
static CIDLangPair kIDLangPairs[] =
{
{ IDC_FOLDERS_STATIC_WORKING_FOLDER, 0x01000210 },
{ IDC_FOLDERS_WORK_RADIO_SYSTEM, 0x01000211 },
{ IDC_FOLDERS_WORK_RADIO_CURRENT, 0x01000212 },
{ IDC_FOLDERS_WORK_RADIO_SPECIFIED, 0x01000213 },
{ IDC_FOLDERS_WORK_CHECK_FOR_REMOVABLE, 0x01000214 }
};
static const int kWorkModeButtons[] =
{
IDC_FOLDERS_WORK_RADIO_SYSTEM,
IDC_FOLDERS_WORK_RADIO_CURRENT,
IDC_FOLDERS_WORK_RADIO_SPECIFIED
};
static const int kNumWorkModeButtons = sizeof(kWorkModeButtons) / sizeof(kWorkModeButtons[0]);
bool CFoldersPage::OnInit()
{
LangSetDlgItemsText(HWND(*this), kIDLangPairs, sizeof(kIDLangPairs) / sizeof(kIDLangPairs[0]));
// CZipRegistryManager aRegistryManager;
ReadWorkDirInfo(m_WorkDirInfo);
CheckButton(IDC_FOLDERS_WORK_CHECK_FOR_REMOVABLE, m_WorkDirInfo.ForRemovableOnly);
CheckRadioButton(kWorkModeButtons[0], kWorkModeButtons[kNumWorkModeButtons - 1],
kWorkModeButtons[m_WorkDirInfo.Mode]);
m_WorkPath.Init(*this, IDC_FOLDERS_WORK_EDIT_PATH);
m_ButtonSetWorkPath.Init(*this, IDC_FOLDERS_WORK_BUTTON_PATH);
m_WorkPath.SetText(m_WorkDirInfo.Path);
MyEnableControls();
return CPropertyPage::OnInit();
}
int CFoldersPage::GetWorkMode() const
{
for (int i = 0; i < kNumWorkModeButtons; i++)
if(IsButtonCheckedBool(kWorkModeButtons[i]))
return i;
throw 0;
}
void CFoldersPage::MyEnableControls()
{
bool anEnablePath = (GetWorkMode() == NWorkDir::NMode::kSpecified);
m_WorkPath.Enable(anEnablePath);
m_ButtonSetWorkPath.Enable(anEnablePath);
}
void CFoldersPage::GetWorkDir(NWorkDir::CInfo &aWorkDirInfo)
{
m_WorkPath.GetText(aWorkDirInfo.Path);
aWorkDirInfo.ForRemovableOnly = IsButtonCheckedBool(IDC_FOLDERS_WORK_CHECK_FOR_REMOVABLE);
aWorkDirInfo.Mode = NWorkDir::NMode::EEnum(GetWorkMode());
}
/*
bool CFoldersPage::WasChanged()
{
NWorkDir::CInfo aWorkDirInfo;
GetWorkDir(aWorkDirInfo);
return (aWorkDirInfo.Mode != m_WorkDirInfo.Mode ||
aWorkDirInfo.ForRemovableOnly != m_WorkDirInfo.ForRemovableOnly ||
aWorkDirInfo.Path.Compare(m_WorkDirInfo.Path) != 0);
}
*/
void CFoldersPage::ModifiedEvent()
{
Changed();
/*
if (WasChanged())
Changed();
else
UnChanged();
*/
}
bool CFoldersPage::OnButtonClicked(int aButtonID, HWND aButtonHWND)
{
for (int i = 0; i < kNumWorkModeButtons; i++)
if (aButtonID == kWorkModeButtons[i])
{
MyEnableControls();
ModifiedEvent();
return true;
}
switch(aButtonID)
{
case IDC_FOLDERS_WORK_BUTTON_PATH:
OnFoldersWorkButtonPath();
break;
case IDC_FOLDERS_WORK_CHECK_FOR_REMOVABLE:
break;
default:
return CPropertyPage::OnButtonClicked(aButtonID, aButtonHWND);
}
ModifiedEvent();
return true;
}
bool CFoldersPage::OnCommand(int aCode, int anItemID, LPARAM lParam)
{
if (aCode == EN_CHANGE && anItemID == IDC_FOLDERS_WORK_EDIT_PATH)
{
ModifiedEvent();
return true;
}
return CPropertyPage::OnCommand(aCode, anItemID, lParam);
}
void CFoldersPage::OnFoldersWorkButtonPath()
{
CSysString currentPath;
m_WorkPath.GetText(currentPath);
UString title = LangLoadStringW(IDS_FOLDERS_SET_WORK_PATH_TITLE, 0x01000281);
CSysString resultPath;
if (NShell::BrowseForFolder(HWND(*this), GetSystemString(title),
currentPath, resultPath))
m_WorkPath.SetText(resultPath);
}
LONG CFoldersPage::OnApply()
{
GetWorkDir(m_WorkDirInfo);
SaveWorkDirInfo(m_WorkDirInfo);
return PSNRET_NOERROR;
}
static LPCWSTR kFoldersTopic = L"fm/plugins/7-zip/options.htm#folders";
void CFoldersPage::OnNotifyHelp()
{
ShowHelpWindow(NULL, kFoldersTopic);
}

View File

@@ -0,0 +1,33 @@
// FoldersPage.h
#pragma once
#ifndef __FOLDERSPAGE_H
#define __FOLDERSPAGE_H
#include "Windows/Control/PropertyPage.h"
#include "../../Common/ZipRegistry.h"
class CFoldersPage : public NWindows::NControl::CPropertyPage
{
NWorkDir::CInfo m_WorkDirInfo;
void MyEnableControls();
void ModifiedEvent();
NWindows::NControl::CDialogChildControl m_WorkPath;
NWindows::NControl::CDialogChildControl m_ButtonSetWorkPath;
// int m_RadioWorkMode;
void OnFoldersWorkButtonPath();
int GetWorkMode() const;
void GetWorkDir(NWorkDir::CInfo &aWorkDirInfo);
// bool WasChanged();
public:
virtual bool OnInit();
virtual bool OnCommand(int aCode, int anItemID, LPARAM lParam);
virtual void OnNotifyHelp();
virtual LONG OnApply();
virtual bool OnButtonClicked(int aButtonID, HWND aButtonHWND);
};
#endif

View File

@@ -0,0 +1,27 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by resource.rc
//
#define IDD_FOLDERS 900
#define IDS_FOLDERS_SET_WORK_PATH_TITLE 103
#define IDC_FOLDERS_WORK_RADIO_SYSTEM 1002
#define IDC_FOLDERS_WORK_EDIT_PATH 1003
#define IDC_FOLDERS_WORK_BUTTON_PATH 1004
#define IDC_FOLDERS_WORK_RADIO_CURRENT 1005
#define IDC_FOLDERS_WORK_RADIO_SPECIFIED 1006
#define IDC_FOLDERS_WORK_CHECK_FOR_REMOVABLE 1007
#define IDC_FOLDERS_STATIC_WORKING_FOLDER 1019
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 135
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1020
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

View File

@@ -0,0 +1,109 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Russian resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
#ifdef _WIN32
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
#pragma code_page(1251)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // Russian resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_FOLDERS DIALOG DISCARDABLE 0, 0, 210, 154
STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Folders"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "&Working folder",IDC_FOLDERS_STATIC_WORKING_FOLDER,7,7,
196,98
CONTROL "&System temp folder",IDC_FOLDERS_WORK_RADIO_SYSTEM,
"Button",BS_AUTORADIOBUTTON | WS_GROUP,19,20,150,10
CONTROL "&Current",IDC_FOLDERS_WORK_RADIO_CURRENT,"Button",
BS_AUTORADIOBUTTON,19,34,150,10
CONTROL "Specified:",IDC_FOLDERS_WORK_RADIO_SPECIFIED,"Button",
BS_AUTORADIOBUTTON,19,48,151,10
EDITTEXT IDC_FOLDERS_WORK_EDIT_PATH,39,63,130,14,ES_AUTOHSCROLL
PUSHBUTTON "...",IDC_FOLDERS_WORK_BUTTON_PATH,178,63,18,14
CONTROL "Use for removable drives only",
IDC_FOLDERS_WORK_CHECK_FOR_REMOVABLE,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,19,87,180,10
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_FOLDERS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 203
TOPMARGIN, 7
BOTTOMMARGIN, 147
END
END
#endif // APSTUDIO_INVOKED
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////