Commit in reactos/subsys/system/explorer on MAIN
explorer.cpp+1-11.74 -> 1.75
explorer_intres.h+4-11.58 -> 1.59
explorer_intres.rc+41-331.81 -> 1.82
doc/changes.txt+11.48 -> 1.49
shell/pane.cpp+41.32 -> 1.33
taskbar/traynotify.cpp+23-31.65 -> 1.66
       /traynotify.h+17-11.24 -> 1.25
utility/utility.h+1-11.69 -> 1.70
+92-40
8 modified files
display notification icon change times

reactos/subsys/system/explorer
explorer.cpp 1.74 -> 1.75
diff -u -r1.74 -r1.75
--- explorer.cpp	26 Sep 2004 15:13:16 -0000	1.74
+++ explorer.cpp	20 Nov 2004 19:30:41 -0000	1.75
@@ -438,7 +438,7 @@
 
 	HRESULT hr = pExtract->Extract(path, idx, &hIconLarge, &hIcon, MAKELONG(0/*GetSystemMetrics(SM_CXICON)*/,GetSystemMetrics(SM_CXSMICON)));
 
-	if (hr == NOERROR) {
+	if (hr == NOERROR) {	//@@ oder SUCCEEDED(hr) ?
 		if (hIconLarge)
 			DestroyIcon(hIconLarge);
 

reactos/subsys/system/explorer
explorer_intres.h 1.58 -> 1.59
diff -u -r1.58 -r1.59
--- explorer_intres.h	22 Sep 2004 22:56:59 -0000	1.58
+++ explorer_intres.h	20 Nov 2004 19:30:41 -0000	1.59
@@ -137,7 +137,9 @@
 #define IDC_LABEL3                      1011
 #define IDC_ICON_ALIGN_10               1012
 #define IDC_WWW                         1012
+#define IDC_LABEL6                      1012
 #define IDC_ICON_ALIGN_11               1013
+#define IDC_LAST_CHANGE                 1013
 #define IDC_FILTER                      1017
 #define IDC_PROGRAMS_FOUND              1018
 #define IDC_PICTURE                     1019
@@ -191,6 +193,7 @@
 #define ID_VIEW_MDI                     40019
 #define ID_VIEW_SDI                     40020
 #define ID_TOOLS_OPTIONS                40021
+#define ID_SHOW_ICON_BUTTON             40023
 #define ID_SWITCH_DESKTOP_1             50000
 #define ID_WINDOW_NEW                   0xE130
 #define ID_WINDOW_ARRANGE               0xE131
@@ -209,7 +212,7 @@
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        166
-#define _APS_NEXT_COMMAND_VALUE         40022
+#define _APS_NEXT_COMMAND_VALUE         40024
 #define _APS_NEXT_CONTROL_VALUE         1033
 #define _APS_NEXT_SYMED_VALUE           101
 #endif

reactos/subsys/system/explorer
explorer_intres.rc 1.81 -> 1.82
diff -u -r1.81 -r1.82
--- explorer_intres.rc	30 Oct 2004 20:23:59 -0000	1.81
+++ explorer_intres.rc	20 Nov 2004 19:30:41 -0000	1.82
@@ -821,6 +821,7 @@
     POPUP ""
     BEGIN
         MENUITEM "&Show hidden icons",          ID_SHOW_HIDDEN_ICONS
+        MENUITEM "Show Icon &Button",           ID_SHOW_ICON_BUTTON
         MENUITEM "&Configure Notifications...", ID_CONFIG_NOTIFYAREA
         MENUITEM "Adjust Date/&Time...",        ID_CONFIG_TIME
         MENUITEM SEPARATOR
@@ -948,33 +949,36 @@
 BEGIN
 END
 
-IDD_NOTIFYAREA DIALOGEX 0, 0, 207, 150
+IDD_NOTIFYAREA DIALOGEX 0, 0, 208, 174
 STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
     WS_SYSMENU | WS_THICKFRAME
 EXSTYLE WS_EX_APPWINDOW
 CAPTION "Configure Notification Icons"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
+FONT 8, "MS Sans Serif"
 BEGIN
     CONTROL         "Tree1",IDC_NOTIFY_ICONS,"SysTreeView32",TVS_HASLINES | 
-                    TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,193,31
+                    TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,194,31
     LTEXT           "&Tooltip Text:",IDC_LABEL1,7,44,40,8
-    EDITTEXT        IDC_NOTIFY_TOOLTIP,55,42,145,14,ES_AUTOHSCROLL
+    EDITTEXT        IDC_NOTIFY_TOOLTIP,58,42,143,14,ES_AUTOHSCROLL
     LTEXT           "W&indow Title:",IDC_LABEL2,7,63,44,8
-    EDITTEXT        IDC_NOTIFY_TITLE,55,60,145,14,ES_AUTOHSCROLL
+    EDITTEXT        IDC_NOTIFY_TITLE,58,60,143,14,ES_AUTOHSCROLL
     LTEXT           "&Module Path:",IDC_LABEL3,7,81,43,8
-    EDITTEXT        IDC_NOTIFY_MODULE,55,78,145,14,ES_AUTOHSCROLL
-    GROUPBOX        "&Display Mode",IDC_LABEL4,7,95,157,28
+    EDITTEXT        IDC_NOTIFY_MODULE,58,78,143,14,ES_AUTOHSCROLL
+    GROUPBOX        "&Display Mode",IDC_LABEL4,7,96,157,28
     CONTROL         "&show",IDC_NOTIFY_SHOW,"Button",BS_AUTORADIOBUTTON | 
-                    WS_TABSTOP,15,107,33,10
+                    WS_TABSTOP,15,108,33,10
     CONTROL         "&hide",IDC_NOTIFY_HIDE,"Button",BS_AUTORADIOBUTTON,66,
-                    107,29,10
+                    108,29,10
     CONTROL         "a&utohide",IDC_NOTIFY_AUTOHIDE,"Button",
-                    BS_AUTORADIOBUTTON,112,107,43,10
-    ICON            "",IDC_PICTURE,173,100,20,20
+                    BS_AUTORADIOBUTTON,112,108,43,10
+    ICON            "",IDC_PICTURE,173,101,21,20
+    LTEXT           "&Last Change:",IDC_LABEL6,7,132,43,8
+    EDITTEXT        IDC_LAST_CHANGE,59,129,105,14,ES_AUTOHSCROLL | 
+                    ES_READONLY
     CONTROL         "sho&w hidden",ID_SHOW_HIDDEN_ICONS,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,7,131,56,10
-    DEFPUSHBUTTON   "&OK",IDOK,91,129,50,14,WS_GROUP
-    PUSHBUTTON      "&Cancel",IDCANCEL,150,129,50,14
+                    BS_AUTOCHECKBOX | WS_TABSTOP,7,154,56,10
+    DEFPUSHBUTTON   "&OK",IDOK,91,153,50,14,WS_GROUP
+    PUSHBUTTON      "&Cancel",IDCANCEL,151,153,50,14
 END
 
 IDD_MDI_SDI DIALOGEX 0, 0, 188, 126
@@ -1039,9 +1043,9 @@
     IDD_NOTIFYAREA, DIALOG
     BEGIN
         LEFTMARGIN, 7
-        RIGHTMARGIN, 200
+        RIGHTMARGIN, 201
         TOPMARGIN, 7
-        BOTTOMMARGIN, 143
+        BOTTOMMARGIN, 167
     END
 
     IDD_MDI_SDI, DIALOG
@@ -1304,6 +1308,7 @@
     POPUP ""
     BEGIN
         MENUITEM "&Mostrar iconos ocultos",     ID_SHOW_HIDDEN_ICONS
+        MENUITEM "Show Icon &Button",           ID_SHOW_ICON_BUTTON
         MENUITEM "&Configurar Notificaciones...", ID_CONFIG_NOTIFYAREA
         MENUITEM "Ajustar Fecha/&Hora...",      ID_CONFIG_TIME
         MENUITEM SEPARATOR
@@ -1431,33 +1436,36 @@
 BEGIN
 END
 
-IDD_NOTIFYAREA DIALOGEX 0, 0, 207, 150
+IDD_NOTIFYAREA DIALOGEX 0, 0, 208, 174
 STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
     WS_SYSMENU | WS_THICKFRAME
 EXSTYLE WS_EX_APPWINDOW
 CAPTION "Configure Notification Icons"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
+FONT 8, "MS Sans Serif"
 BEGIN
     CONTROL         "Tree1",IDC_NOTIFY_ICONS,"SysTreeView32",TVS_HASLINES | 
-                    TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,193,31
-    LTEXT           "&Texto de Info de herramientas:",IDC_LABEL1,7,44,40,8
-    EDITTEXT        IDC_NOTIFY_TOOLTIP,55,42,145,14,ES_AUTOHSCROLL
-    LTEXT           "Titulo de la V&entana:",IDC_LABEL2,7,63,44,8
-    EDITTEXT        IDC_NOTIFY_TITLE,55,60,145,14,ES_AUTOHSCROLL
-    LTEXT           "Parche del &Modulo:",IDC_LABEL3,7,81,43,8
-    EDITTEXT        IDC_NOTIFY_MODULE,55,78,145,14,ES_AUTOHSCROLL
+                    TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,194,31
+    LTEXT           "&Texto de Info:",IDC_LABEL1,7,44,45,8
+    EDITTEXT        IDC_NOTIFY_TOOLTIP,84,42,117,14,ES_AUTOHSCROLL
+    LTEXT           "Titulo de la V&entana:",IDC_LABEL2,7,63,66,8
+    EDITTEXT        IDC_NOTIFY_TITLE,84,60,117,14,ES_AUTOHSCROLL
+    LTEXT           "&Parche del Modulo:",IDC_LABEL3,7,81,62,8
+    EDITTEXT        IDC_NOTIFY_MODULE,84,78,117,14,ES_AUTOHSCROLL
     GROUPBOX        "Modo de &Display",IDC_LABEL4,7,95,157,28
     CONTROL         "&Mostrar",IDC_NOTIFY_SHOW,"Button",BS_AUTORADIOBUTTON | 
                     WS_TABSTOP,15,107,33,10
     CONTROL         "&Ocultar",IDC_NOTIFY_HIDE,"Button",BS_AUTORADIOBUTTON,
-                    66,107,29,10
+                    63,107,29,10
     CONTROL         "A&utoocultar",IDC_NOTIFY_AUTOHIDE,"Button",
-                    BS_AUTORADIOBUTTON,112,107,43,10
+                    BS_AUTORADIOBUTTON,104,107,51,10
     ICON            "",IDC_PICTURE,173,100,20,20
-    CONTROL         "Mostrar Ocultos",ID_SHOW_HIDDEN_ICONS,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,7,131,56,10
-    DEFPUSHBUTTON   "&Aceptar",IDOK,91,129,50,14,WS_GROUP
-    PUSHBUTTON      "&Cancelar",IDCANCEL,150,129,50,14
+    LTEXT           "&Last Change:",IDC_LABEL6,7,132,43,8
+    EDITTEXT        IDC_LAST_CHANGE,59,129,105,14,ES_AUTOHSCROLL | 
+                    ES_READONLY
+    CONTROL         "Mostrar Ocu&ltos",ID_SHOW_HIDDEN_ICONS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,7,153,65,10
+    DEFPUSHBUTTON   "&Aceptar",IDOK,91,153,50,14,WS_GROUP
+    PUSHBUTTON      "&Cancelar",IDCANCEL,151,153,50,14
 END
 
 
@@ -1504,9 +1512,9 @@
     IDD_NOTIFYAREA, DIALOG
     BEGIN
         LEFTMARGIN, 7
-        RIGHTMARGIN, 200
+        RIGHTMARGIN, 201
         TOPMARGIN, 7
-        BOTTOMMARGIN, 143
+        BOTTOMMARGIN, 167
     END
 END
 #endif    // APSTUDIO_INVOKED

reactos/subsys/system/explorer/doc
changes.txt 1.48 -> 1.49
diff -u -r1.48 -r1.49
--- changes.txt	20 Nov 2004 16:23:35 -0000	1.48
+++ changes.txt	20 Nov 2004 19:30:41 -0000	1.49
@@ -89,3 +89,4 @@
 15.09.2004	m. fuchs	remove direct version output from desktop; instead store the activation flag into the registry
 17.09.2004	m. fuchs	handle "." and ".." as special direcory names and move them at the very first beginning of directory listings
 23.09.2004	m. fuchs	configuration dialog to choose between MDI and SDI mode with persistent storage
+20.11.2004	m. fuchs	display notification icon change times

reactos/subsys/system/explorer/shell
pane.cpp 1.32 -> 1.33
diff -u -r1.32 -r1.33
--- pane.cpp	31 May 2004 22:39:12 -0000	1.32
+++ pane.cpp	20 Nov 2004 19:30:41 -0000	1.33
@@ -540,19 +540,23 @@
 
 		if (visible_cols & COL_INDEX) {
 			_stprintf(buffer, TEXT("%") LONGLONGARG TEXT("X"), index);
+
 			if (calcWidthCol == -1)
 				_out_wrkr.output_text(dis, _positions, col, buffer, DT_RIGHT);
 			else if (calcWidthCol==col || calcWidthCol==COLUMNS)
 				calc_width(dis, col, buffer);
+
 			++col;
 		}
 
 		if (visible_cols & COL_LINKS) {
 			wsprintf(buffer, TEXT("%d"), entry->_bhfi.nNumberOfLinks);
+
 			if (calcWidthCol == -1)
 				_out_wrkr.output_text(dis, _positions, col, buffer, DT_RIGHT);
 			else if (calcWidthCol==col || calcWidthCol==COLUMNS)
 				calc_width(dis, col, buffer);
+
 			++col;
 		}
 	} else

reactos/subsys/system/explorer/taskbar
traynotify.cpp 1.65 -> 1.66
diff -u -r1.65 -r1.66
--- traynotify.cpp	26 Sep 2004 15:13:16 -0000	1.65
+++ traynotify.cpp	20 Nov 2004 19:30:41 -0000	1.66
@@ -175,6 +175,7 @@
 	_last_icon_count = 0;
 	_show_hidden = false;
 	_hide_inactive = true;
+	_show_button = true;
 }
 
 NotifyArea::~NotifyArea()
@@ -379,6 +380,7 @@
 			PopupMenu menu(IDM_NOTIFYAREA);
 			SetMenuDefaultItem(menu, 0, MF_BYPOSITION);
 			CheckMenuItem(menu, ID_SHOW_HIDDEN_ICONS, MF_BYCOMMAND|(_show_hidden?MF_CHECKED:MF_UNCHECKED));
+			CheckMenuItem(menu, ID_SHOW_ICON_BUTTON, MF_BYCOMMAND|(_show_button?MF_CHECKED:MF_UNCHECKED));
 			menu.TrackPopupMenu(_hwnd, MAKEPOINTS(lparam));
 		}
 		break;}
@@ -461,6 +463,11 @@
 		UpdateIcons();
 		break;
 
+	  case ID_SHOW_ICON_BUTTON:
+		_show_button = !_show_button;
+		UpdateIcons();
+		break;
+
 	  case ID_CONFIG_NOTIFYAREA:
 		Dialog::DoModal(IDD_NOTIFYAREA, WINDOW_CREATOR(TrayNotifyDlg), GetParent(_hwnd));
 		break;
@@ -804,6 +811,9 @@
 	_resize_mgr.Add(IDC_PICTURE,		MOVE);
 	_resize_mgr.Add(ID_SHOW_HIDDEN_ICONS,MOVE_Y);
 
+	_resize_mgr.Add(IDC_LABEL6,			MOVE_Y);
+	_resize_mgr.Add(IDC_LAST_CHANGE,	MOVE_Y);
+
 	_resize_mgr.Add(IDOK,				MOVE);
 	_resize_mgr.Add(IDCANCEL,			MOVE);
 
@@ -861,6 +871,8 @@
 	_hitemCurrent_hidden = TreeView_InsertItem(_tree_ctrl, &tvi);
 
 	if (_pNotifyArea) {
+		_info.clear();
+
 		tv.mask |= TVIF_PARAM;
 
 		WindowCanvas canvas(_hwnd);
@@ -913,9 +925,12 @@
 	InsertItem(hparent, after, entry, hdc, entry._hIcon, entry._mode);
 }
 
-void TrayNotifyDlg::InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyIconConfig& entry,
+void TrayNotifyDlg::InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyIconDlgInfo& entry,
 								HDC hdc, HICON hicon, NOTIFYICONMODE mode)
 {
+	int idx = _info.size();
+	_info[idx] = entry;
+
 	String mode_str = string_from_mode(mode);
 
 	switch(mode) {
@@ -934,7 +949,7 @@
 	TV_ITEM& tv = tvi.item;
 	tv.mask = TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM;
 
-	tv.lParam = (LPARAM)&entry;
+	tv.lParam = (LPARAM)idx;
 	tv.pszText = (LPTSTR)txt.c_str();
 	tv.iSelectedImage = tv.iImage = ImageList_AddAlphaIcon(_himl, hicon, GetStockBrush(WHITE_BRUSH), hdc);
 	TreeView_InsertItem(_tree_ctrl, &tvi);
@@ -1026,7 +1041,7 @@
 		LPARAM lparam = pnmtv->itemNew.lParam;
 
 		if (lparam) {
-			const NotifyIconConfig& entry = *(NotifyIconConfig*)lparam;
+			const NotifyIconDlgInfo& entry = _info[lparam];
 
 			SetDlgItemText(_hwnd, IDC_NOTIFY_TOOLTIP, entry._tipText);
 			SetDlgItemText(_hwnd, IDC_NOTIFY_TITLE, entry._windowTitle);
@@ -1034,6 +1049,11 @@
 
 			CheckRadioButton(_hwnd, IDC_NOTIFY_SHOW, IDC_NOTIFY_AUTOHIDE, IDC_NOTIFY_SHOW+entry._mode);
 
+			String change_str;
+			if (entry._lastChange)
+				change_str.printf(TEXT("before %d s"), (GetTickCount()-entry._lastChange+500)/1000);
+			SetDlgItemText(_hwnd, IDC_LAST_CHANGE, change_str);
+
 			HICON hicon = 0; //get_window_icon_big(entry._hWnd, false);
 
 			 // If we could not find an icon associated with the owner window, try to load one from the owning module.

reactos/subsys/system/explorer/taskbar
traynotify.h 1.24 -> 1.25
diff -u -r1.24 -r1.25
--- traynotify.h	28 Mar 2004 14:55:18 -0000	1.24
+++ traynotify.h	20 Nov 2004 19:30:41 -0000	1.25
@@ -144,6 +144,7 @@
 
 	bool	_show_hidden;
 	bool	_hide_inactive;
+	bool	_show_button;
 
 	LRESULT Init(LPCREATESTRUCT pcs);
 	LRESULT	WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
@@ -176,6 +177,20 @@
 };
 
 
+struct NotifyIconDlgInfo : public NotifyIconConfig
+{
+	typedef NotifyIconConfig super;
+
+	NotifyIconDlgInfo(const NotifyInfo& info) : super(info), _lastChange(info._lastChange) {}
+	NotifyIconDlgInfo(const NotifyIconConfig& cfg) : super(cfg), _lastChange(0) {}
+	NotifyIconDlgInfo() : _lastChange(0) {}
+
+	DWORD	_lastChange;
+};
+
+typedef map<int, NotifyIconDlgInfo> NotifyIconDlgInfoMap;
+
+
  /// configuration dialog for notification icons
 struct TrayNotifyDlg : public ResizeController<Dialog>
 {
@@ -189,6 +204,7 @@
 	HACCEL	_haccel;
 	HIMAGELIST	_himl;
 	NotifyArea* _pNotifyArea;
+	NotifyIconDlgInfoMap _info;
 
 	typedef pair<NOTIFYICONMODE, DWORD> IconStatePair;
 	typedef map<NotifyIconIndex, IconStatePair> IconStateMap;
@@ -209,7 +225,7 @@
 
 	void	Refresh();
 	void	InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyInfo&, HDC);
-	void	InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyIconConfig&, HDC, HICON, NOTIFYICONMODE);
+	void	InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyIconDlgInfo&, HDC, HICON, NOTIFYICONMODE);
 	void	SetIconMode(NOTIFYICONMODE mode);
 };
 

reactos/subsys/system/explorer/utility
utility.h 1.69 -> 1.70
diff -u -r1.69 -r1.70
--- utility.h	22 Sep 2004 22:57:00 -0000	1.69
+++ utility.h	20 Nov 2004 19:30:41 -0000	1.70
@@ -1018,7 +1018,7 @@
 #define	CONTEXT_OBJ __ctx__._obj
 #define	CONTEXT(c) Context __ctx__(c)
 #define	CURRENT_CONTEXT Context::current()
-#define	OBJ_CONTEXT(c, o) Context __ctx__(c, o);
+#define	OBJ_CONTEXT(c, o) Context __ctx__(c, o)
 
 
 extern bool SplitFileSysURL(LPCTSTR url, String& dir_out, String& fname_out);
CVSspam 0.2.8