display "log off" dialog, add "terminate" menu entry

svn path=/trunk/; revision=14469
This commit is contained in:
Martin Fuchs
2005-04-03 11:23:03 +00:00
parent 315c267eef
commit 359d3bc253
7 changed files with 35 additions and 17 deletions
@@ -290,6 +290,7 @@ BEGIN
IDS_TITLE "ReactOS Explorer"
IDS_START "スタート"
IDS_LOGOFF "ログオフ..."
IDS_TERMINATE "ログオフ"
IDS_SHUTDOWN "シャットダウン..."
IDS_LAUNCH "ファイル名を指定して実行..."
IDS_START_HELP "ヘルプ"
@@ -46,6 +46,7 @@
#define IDS_NOTIFY_AUTOHIDE 42
#define IDS_SHOW_HIDDEN_ICONS 43
#define IDS_HIDE_ICONS 44
#define IDS_TERMINATE 45
#define IDI_REACTOS 100
#define IDI_EXPLORER 101
#define IDI_STARTMENU 102
@@ -126,6 +126,7 @@ BEGIN
IDS_TITLE "ReactOS Explorer"
IDS_START "Începe"
IDS_LOGOFF "Închide sesiunea ..."
IDS_TERMINATE "Închide sesiunea"
IDS_SHUTDOWN "Oprire calculator ..."
IDS_LAUNCH "Pornire ..."
IDS_START_HELP "Ajutor"
@@ -583,6 +584,7 @@ BEGIN
IDS_TITLE "Reactos Explorer"
IDS_START "Start"
IDS_LOGOFF "Abmelden..."
IDS_TERMINATE "ROS Explorer beenden"
IDS_SHUTDOWN "Herunterfahren..."
IDS_LAUNCH "Starten..."
IDS_START_HELP "Hilfe"
@@ -1075,6 +1077,7 @@ BEGIN
IDS_TITLE "Reactos Explorer"
IDS_START "Start"
IDS_LOGOFF "Log Off..."
IDS_TERMINATE "Terminate ROS Explorer"
IDS_SHUTDOWN "Turn Off..."
IDS_LAUNCH "Run..."
IDS_START_HELP "Help"
@@ -1538,6 +1541,7 @@ BEGIN
IDS_TITLE "Reactos Explorer"
IDS_START "Iniciar"
IDS_LOGOFF "Salir..."
IDS_TERMINATE "Salir"
IDS_SHUTDOWN "Apagar..."
IDS_LAUNCH "Ejecutar..."
IDS_START_HELP "Ayuda"
@@ -1708,6 +1712,7 @@ BEGIN
IDS_TITLE "Explorateur Reactos"
IDS_START "Démarrer"
IDS_LOGOFF "Déconnexion ..."
IDS_TERMINATE "Déconnexion"
IDS_SHUTDOWN "Arrêter..."
IDS_LAUNCH "Exécuter..."
IDS_START_HELP "Aide"
@@ -1921,6 +1926,7 @@ BEGIN
IDS_TITLE "Explorador do Reactos"
IDS_START "Iniciar"
IDS_LOGOFF "Terminar sessão..."
IDS_TERMINATE "Terminar"
IDS_SHUTDOWN "Desligar..."
IDS_LAUNCH "Executar..."
IDS_START_HELP "Ajuda"
@@ -2412,6 +2418,7 @@ BEGIN
IDS_TITLE "Reactos Explorer"
IDS_START "Start"
IDS_LOGOFF "Logga ut..."
IDS_TERMINATE "Logga ut"
IDS_SHUTDOWN "Stäng av..."
IDS_LAUNCH "Kör..."
IDS_START_HELP "Hjälp"
@@ -183,10 +183,6 @@ CFG=make_explorer - Win32 bjam
# Begin Source File
SOURCE=..\..\..\ChangeLog
# End Source File
# Begin Source File
SOURCE=.\Jamfile
# End Source File
# Begin Source File
@@ -56,6 +56,7 @@
#define IDC_BROWSE 0x1014
#define IDC_SEARCH_PROGRAM 0x1015
#define IDC_SEARCH 0x1016
#define IDC_TERMINATE 0x1017
#define IDC_FIRST_MENU 0x3000
@@ -1690,6 +1690,9 @@ LRESULT StartMenuRoot::Init(LPCREATESTRUCT pcs)
AddButton(ResString(IDS_SHUTDOWN), ICID_LOGOFF, false, IDC_SHUTDOWN);
AddButton(ResString(IDS_TERMINATE), ICID_LOGOFF, false, IDC_TERMINATE);
#ifdef __MINGW32__
RegCloseKey(hkeyAdv);
RegCloseKey(hkey);
@@ -1830,9 +1833,11 @@ int StartMenuHandler::Command(int id, int code)
break;
case IDC_LOGOFF:
/* The shell32 Dialog prompts about some system setting change. This is not what we want to display here.
CloseStartMenu(id);
ShowRestartDialog(g_Globals._hwndDesktopBar, EWX_LOGOFF);*/
ShowLogoffDialog(g_Globals._hwndDesktopBar, EWX_LOGOFF);
break;
case IDC_TERMINATE:
DestroyWindow(GetParent(_hwnd));
break;
@@ -1974,24 +1979,29 @@ void StartMenuHandler::ShowLaunchDialog(HWND hwndOwner)
}
}
void StartMenuHandler::ShowRestartDialog(HWND hwndOwner, UINT flags)
void StartMenuHandler::ShowLogoffDialog(HWND hwndOwner, UINT flags)
{
static DynamicFct<RESTARTWINDOWSDLG> RestartDlg(TEXT("SHELL32"), 59);
static DynamicFct<LOGOFFWINDOWSDIALOG> LogoffWindowsDialog(TEXT("SHELL32"), 54);
// static DynamicFct<RESTARTWINDOWSDLG> RestartDialog(TEXT("SHELL32"), 59);
if (RestartDlg)
(*RestartDlg)(hwndOwner, (LPWSTR)L"You selected <Log Off>.\n\n", flags); ///@todo ANSI string conversion if needed
if (LogoffWindowsDialog)
(*LogoffWindowsDialog)(0);
/* The RestartDialog function prompts about some system setting change. This is not what we want to display here.
else if (RestartDialog)
return (*RestartDialog)(hwndOwner, (LPWSTR)L"You selected <Log Off>.\n\n", flags) == 1; ///@todo ANSI string conversion if needed
*/
else
MessageBox(hwndOwner, TEXT("RestartDlg() not yet implemented in SHELL32"), ResString(IDS_TITLE), MB_OK);
MessageBox(hwndOwner, TEXT("LogoffWindowsDialog() not yet implemented in SHELL32"), ResString(IDS_TITLE), MB_OK);
}
void ShowExitWindowsDialog(HWND hwndOwner)
{
static DynamicFct<EXITWINDOWSDLG> ExitWindowsDlg(TEXT("SHELL32"), 60);
static DynamicFct<EXITWINDOWSDLG> ExitWindowsDialog(TEXT("SHELL32"), 60);
if (ExitWindowsDlg)
(*ExitWindowsDlg)(hwndOwner);
if (ExitWindowsDialog)
(*ExitWindowsDialog)(hwndOwner);
else
MessageBox(hwndOwner, TEXT("ExitWindowsDlg() not yet implemented in SHELL32"), ResString(IDS_TITLE), MB_OK);
MessageBox(hwndOwner, TEXT("ExitWindowsDialog() not yet implemented in SHELL32"), ResString(IDS_TITLE), MB_OK);
}
@@ -321,9 +321,11 @@ typedef void (WINAPI* RUNFILEDLG)(HWND hwndOwner, HICON hIcon, LPCSTR lpstrDirec
#define RFF_NOSEPARATEMEM 0x20 // Removes the Separate Memory Space check box (Windows NT only).
// declare more undocumented shell32 functions
// declare more previously undocumented shell32 functions
typedef void (WINAPI* EXITWINDOWSDLG)(HWND hwndOwner);
typedef int (WINAPI* LOGOFFWINDOWSDIALOG)(UINT flags);
typedef int (WINAPI* RESTARTWINDOWSDLG)(HWND hwndOwner, LPCWSTR reason, UINT flags);
typedef int (WINAPI* RESTARTWINDOWSDLGEX)(HWND hWndOwner, LPCWSTR lpwstrReason, DWORD uFlags, DWORD uReason);
typedef BOOL (WINAPI* SHFINDFILES)(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch);
typedef BOOL (WINAPI* SHFINDCOMPUTER)(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch);
@@ -347,7 +349,7 @@ protected:
int Command(int id, int code);
static void ShowLaunchDialog(HWND hwndOwner);
static void ShowRestartDialog(HWND hwndOwner, UINT flags);
static void ShowLogoffDialog(HWND hwndOwner, UINT flags);
static void ShowSearchDialog();
static void ShowSearchComputer();
};