display "log off" dialog, add "terminate" menu entry
Modified: trunk/reactos/subsys/system/explorer/explorer-jp.rc
Modified: trunk/reactos/subsys/system/explorer/explorer_intres.h
Modified: trunk/reactos/subsys/system/explorer/explorer_intres.rc
Modified: trunk/reactos/subsys/system/explorer/make_explorer.dsp
Modified: trunk/reactos/subsys/system/explorer/taskbar/desktopbar.h
Modified: trunk/reactos/subsys/system/explorer/taskbar/startmenu.cpp
Modified: trunk/reactos/subsys/system/explorer/taskbar/startmenu.h

Modified: trunk/reactos/subsys/system/explorer/explorer-jp.rc
(Binary files differ)

Modified: trunk/reactos/subsys/system/explorer/explorer_intres.h
--- trunk/reactos/subsys/system/explorer/explorer_intres.h	2005-04-03 10:46:08 UTC (rev 14468)
+++ trunk/reactos/subsys/system/explorer/explorer_intres.h	2005-04-03 11:23:03 UTC (rev 14469)
@@ -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

Modified: trunk/reactos/subsys/system/explorer/explorer_intres.rc
--- trunk/reactos/subsys/system/explorer/explorer_intres.rc	2005-04-03 10:46:08 UTC (rev 14468)
+++ trunk/reactos/subsys/system/explorer/explorer_intres.rc	2005-04-03 11:23:03 UTC (rev 14469)
@@ -126,6 +126,7 @@
     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 @@
     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 @@
     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 @@
     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 @@
     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 @@
     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 @@
     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"

Modified: trunk/reactos/subsys/system/explorer/make_explorer.dsp
--- trunk/reactos/subsys/system/explorer/make_explorer.dsp	2005-04-03 10:46:08 UTC (rev 14468)
+++ trunk/reactos/subsys/system/explorer/make_explorer.dsp	2005-04-03 11:23:03 UTC (rev 14469)
@@ -183,10 +183,6 @@
 
 # Begin Source File
 
-SOURCE=..\..\..\ChangeLog
-# End Source File
-# Begin Source File
-
 SOURCE=.\Jamfile
 # End Source File
 # Begin Source File

Modified: trunk/reactos/subsys/system/explorer/taskbar/desktopbar.h
--- trunk/reactos/subsys/system/explorer/taskbar/desktopbar.h	2005-04-03 10:46:08 UTC (rev 14468)
+++ trunk/reactos/subsys/system/explorer/taskbar/desktopbar.h	2005-04-03 11:23:03 UTC (rev 14469)
@@ -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
 

Modified: trunk/reactos/subsys/system/explorer/taskbar/startmenu.cpp
--- trunk/reactos/subsys/system/explorer/taskbar/startmenu.cpp	2005-04-03 10:46:08 UTC (rev 14468)
+++ trunk/reactos/subsys/system/explorer/taskbar/startmenu.cpp	2005-04-03 11:23:03 UTC (rev 14469)
@@ -1690,6 +1690,9 @@
 		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 @@
 		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::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);
 }
 
 

Modified: trunk/reactos/subsys/system/explorer/taskbar/startmenu.h
--- trunk/reactos/subsys/system/explorer/taskbar/startmenu.h	2005-04-03 10:46:08 UTC (rev 14468)
+++ trunk/reactos/subsys/system/explorer/taskbar/startmenu.h	2005-04-03 11:23:03 UTC (rev 14469)
@@ -321,9 +321,11 @@
 #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 @@
 	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();
 };