mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
configuration dialog for notification icons
svn path=/trunk/; revision=8823
This commit is contained in:
parent
a9f6fe5ffb
commit
6a7304ac01
22 changed files with 826 additions and 258 deletions
|
@ -94,7 +94,6 @@ void CollectProgramsThread::free_dirs()
|
||||||
FindProgramDlg::FindProgramDlg(HWND hwnd)
|
FindProgramDlg::FindProgramDlg(HWND hwnd)
|
||||||
: super(hwnd),
|
: super(hwnd),
|
||||||
_list_ctrl(GetDlgItem(hwnd, IDC_MAILS_FOUND)),
|
_list_ctrl(GetDlgItem(hwnd, IDC_MAILS_FOUND)),
|
||||||
//_himl(ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_COLOR32, 0, 0)),
|
|
||||||
_thread(collect_programs_callback, hwnd, this),
|
_thread(collect_programs_callback, hwnd, this),
|
||||||
_sort(_list_ctrl, CompareFunc/*, (LPARAM)this*/)
|
_sort(_list_ctrl, CompareFunc/*, (LPARAM)this*/)
|
||||||
{
|
{
|
||||||
|
@ -108,8 +107,6 @@ FindProgramDlg::FindProgramDlg(HWND hwnd)
|
||||||
_haccel = LoadAccelerators(g_Globals._hInstance, MAKEINTRESOURCE(IDA_SEARCH_PROGRAM));
|
_haccel = LoadAccelerators(g_Globals._hInstance, MAKEINTRESOURCE(IDA_SEARCH_PROGRAM));
|
||||||
|
|
||||||
ListView_SetImageList(_list_ctrl, g_Globals._icon_cache.get_sys_imagelist(), LVSIL_SMALL);
|
ListView_SetImageList(_list_ctrl, g_Globals._icon_cache.get_sys_imagelist(), LVSIL_SMALL);
|
||||||
//ListView_SetImageList(_list_ctrl, _himl, LVSIL_SMALL);
|
|
||||||
//_idxNoIcon = ImageList_AddIcon(_himl, SmallIcon(IDI_APPICON));
|
|
||||||
|
|
||||||
LV_COLUMN column = {LVCF_FMT|LVCF_WIDTH|LVCF_TEXT, LVCFMT_LEFT, 250};
|
LV_COLUMN column = {LVCF_FMT|LVCF_WIDTH|LVCF_TEXT, LVCFMT_LEFT, 250};
|
||||||
|
|
||||||
|
@ -137,11 +134,13 @@ FindProgramDlg::FindProgramDlg(HWND hwnd)
|
||||||
CenterWindow(hwnd);
|
CenterWindow(hwnd);
|
||||||
|
|
||||||
Refresh();
|
Refresh();
|
||||||
|
|
||||||
|
register_pretranslate(hwnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
FindProgramDlg::~FindProgramDlg()
|
FindProgramDlg::~FindProgramDlg()
|
||||||
{
|
{
|
||||||
//ImageList_Destroy(_himl);
|
unregister_pretranslate(_hwnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -261,6 +260,24 @@ void FindProgramDlg::add_entry(const FPDEntry& cache_entry)
|
||||||
ListView_SetItem(_list_ctrl, &item);
|
ListView_SetItem(_list_ctrl, &item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LRESULT FindProgramDlg::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
|
||||||
|
{
|
||||||
|
switch(nmsg) {
|
||||||
|
case PM_TRANSLATE_MSG: {
|
||||||
|
MSG* pmsg = (MSG*) lparam;
|
||||||
|
|
||||||
|
if (TranslateAccelerator(_hwnd, _haccel, pmsg))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;}
|
||||||
|
|
||||||
|
default:
|
||||||
|
return super::WndProc(nmsg, wparam, lparam);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int FindProgramDlg::Command(int id, int code)
|
int FindProgramDlg::Command(int id, int code)
|
||||||
{
|
{
|
||||||
if (code == BN_CLICKED) {
|
if (code == BN_CLICKED) {
|
||||||
|
@ -277,7 +294,7 @@ int FindProgramDlg::Command(int id, int code)
|
||||||
return super::Command(id, code);
|
return super::Command(id, code);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return 0;
|
||||||
}
|
}
|
||||||
else if (code == EN_CHANGE) {
|
else if (code == EN_CHANGE) {
|
||||||
switch(id) {
|
switch(id) {
|
||||||
|
@ -286,10 +303,10 @@ int FindProgramDlg::Command(int id, int code)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FindProgramDlg::LaunchSelected()
|
void FindProgramDlg::LaunchSelected()
|
||||||
|
@ -326,7 +343,7 @@ int FindProgramDlg::Notify(int id, NMHDR* pnmh)
|
||||||
if (entry->_icon_id == ICID_UNKNOWN)
|
if (entry->_icon_id == ICID_UNKNOWN)
|
||||||
entry->extract_icon();
|
entry->extract_icon();
|
||||||
|
|
||||||
pDispInfo->item.iImage = g_Globals._icon_cache.get_icon(entry->_icon_id).get_sysiml_idx();//ImageList_AddIcon(_himl, g_Globals._icon_cache.get_icon(entry->_icon_id).get_hicon());
|
pDispInfo->item.iImage = g_Globals._icon_cache.get_icon(entry->_icon_id).get_sysiml_idx();
|
||||||
pDispInfo->item.mask |= LVIF_DI_SETITEM;
|
pDispInfo->item.mask |= LVIF_DI_SETITEM;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -85,11 +85,8 @@ struct FindProgramDlg : public ResizeController<Dialog>
|
||||||
~FindProgramDlg();
|
~FindProgramDlg();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
CommonControlInit _usingCmnCtrl;
|
|
||||||
HWND _list_ctrl;
|
HWND _list_ctrl;
|
||||||
HACCEL _haccel;
|
HACCEL _haccel;
|
||||||
//HIMAGELIST _himl;
|
|
||||||
//int _idxNoIcon; // replacement icon
|
|
||||||
String _lwr_filter;
|
String _lwr_filter;
|
||||||
|
|
||||||
CollectProgramsThread _thread;
|
CollectProgramsThread _thread;
|
||||||
|
@ -99,6 +96,7 @@ protected:
|
||||||
|
|
||||||
ListSort _sort;
|
ListSort _sort;
|
||||||
|
|
||||||
|
virtual LRESULT WndProc(UINT, WPARAM, LPARAM);
|
||||||
virtual int Command(int id, int code);
|
virtual int Command(int id, int code);
|
||||||
virtual int Notify(int id, NMHDR* pnmh);
|
virtual int Notify(int id, NMHDR* pnmh);
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#include "../externals.h"
|
#include "../externals.h"
|
||||||
#include "../explorer_intres.h"
|
#include "../explorer_intres.h"
|
||||||
#include "../desktop/desktop.h"
|
#include "../desktop/desktop.h"
|
||||||
|
#include "../taskbar/traynotify.h"
|
||||||
|
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
|
||||||
|
@ -136,10 +137,10 @@ int DesktopSettingsDlg::Command(int id, int code)
|
||||||
SendMessage(g_Globals._hwndShellView, PM_SET_ICON_ALGORITHM, alignment, 0);
|
SendMessage(g_Globals._hwndShellView, PM_SET_ICON_ALGORITHM, alignment, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -148,19 +149,15 @@ TaskbarSettingsDlg::TaskbarSettingsDlg(HWND hwnd)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT TaskbarSettingsDlg::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
|
int TaskbarSettingsDlg::Command(int id, int code)
|
||||||
{
|
{
|
||||||
switch(nmsg) {
|
switch(id) {
|
||||||
case WM_PAINT: {
|
case ID_CONFIG_NOTIFYAREA:
|
||||||
PaintCanvas canvas(_hwnd);
|
Dialog::DoModal(IDD_NOTIFYAREA, WINDOW_CREATOR(TrayNotifyDlg), _hwnd);
|
||||||
FillRect(canvas, &canvas.rcPaint, GetStockBrush(GRAY_BRUSH));
|
return 0;
|
||||||
break;}
|
|
||||||
|
|
||||||
default:
|
|
||||||
return super::WndProc(nmsg, wparam, lparam);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -169,17 +166,14 @@ StartmenuSettingsDlg::StartmenuSettingsDlg(HWND hwnd)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT StartmenuSettingsDlg::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
|
int StartmenuSettingsDlg::Command(int id, int code)
|
||||||
{
|
{
|
||||||
switch(nmsg) {
|
/*
|
||||||
case WM_PAINT: {
|
switch(id) {
|
||||||
PaintCanvas canvas(_hwnd);
|
case ID_CONFIG_NOTIFYAREA:
|
||||||
FillRect(canvas, &canvas.rcPaint, GetStockBrush(DKGRAY_BRUSH));
|
Dialog::DoModal(IDD_NOTIFYAREA, WINDOW_CREATOR(TrayNotifyDlg), _hwnd);
|
||||||
break;}
|
return 0;
|
||||||
|
|
||||||
default:
|
|
||||||
return super::WndProc(nmsg, wparam, lparam);
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
return 0;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ struct TaskbarSettingsDlg : public PropSheetPageDlg
|
||||||
|
|
||||||
TaskbarSettingsDlg(HWND hwnd);
|
TaskbarSettingsDlg(HWND hwnd);
|
||||||
|
|
||||||
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
|
virtual int Command(int id, int code);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,5 +77,5 @@ struct StartmenuSettingsDlg : public PropSheetPageDlg
|
||||||
|
|
||||||
StartmenuSettingsDlg(HWND hwnd);
|
StartmenuSettingsDlg(HWND hwnd);
|
||||||
|
|
||||||
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
|
virtual int Command(int id, int code);
|
||||||
};
|
};
|
||||||
|
|
|
@ -254,6 +254,17 @@ HBITMAP create_bitmap_from_icon(HICON hIcon, HBRUSH hbrush_bkgnd, HDC hdc_wnd)
|
||||||
return hbmp;
|
return hbmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ImageList_AddAlphaIcon(HIMAGELIST himl, HICON hIcon, HBRUSH hbrush_bkgnd, HDC hdc_wnd)
|
||||||
|
{
|
||||||
|
HBITMAP hbmp = create_bitmap_from_icon(hIcon, hbrush_bkgnd, hdc_wnd);
|
||||||
|
|
||||||
|
int ret = ImageList_Add(himl, hbmp, 0);
|
||||||
|
|
||||||
|
DeleteObject(hbmp);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int IconCache::s_next_id = ICID_DYNAMIC;
|
int IconCache::s_next_id = ICID_DYNAMIC;
|
||||||
|
|
||||||
|
@ -732,6 +743,9 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
|
||||||
// initialize COM and OLE before creating the desktop window
|
// initialize COM and OLE before creating the desktop window
|
||||||
OleInit usingCOM;
|
OleInit usingCOM;
|
||||||
|
|
||||||
|
// init common controls library
|
||||||
|
CommonControlInit usingCmnCtrl;
|
||||||
|
|
||||||
if (startup_desktop) {
|
if (startup_desktop) {
|
||||||
g_Globals._desktops.init();
|
g_Globals._desktops.init();
|
||||||
|
|
||||||
|
|
|
@ -369,6 +369,18 @@ SOURCE=.\res\documents.ico
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\res\dot.ico
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\res\dot_red.ico
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\res\dot_trans.ico
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\res\drivebar.bmp
|
SOURCE=.\res\drivebar.bmp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -446,6 +458,10 @@ SOURCE=.\res\icoalig9.bmp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\res\icon.ico
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\res\images.bmp
|
SOURCE=.\res\images.bmp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -474,6 +490,18 @@ SOURCE=.\res\network.ico
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\res\notify.ico
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\res\notify_h.ico
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\res\notify_t.ico
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\res\printer.ico
|
SOURCE=.\res\printer.ico
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -518,6 +546,10 @@ SOURCE=.\taskbar\desktopbar.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\notifyhook\notifyhook.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\taskbar\quicklaunch.cpp
|
SOURCE=.\taskbar\quicklaunch.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
|
@ -54,6 +54,8 @@
|
||||||
#define PM_RESIZE_CHILDREN (WM_APP+0x17)
|
#define PM_RESIZE_CHILDREN (WM_APP+0x17)
|
||||||
#define PM_GET_WIDTH (WM_APP+0x18)
|
#define PM_GET_WIDTH (WM_APP+0x18)
|
||||||
|
|
||||||
|
#define PM_REFRESH (WM_APP+0x1B)
|
||||||
|
|
||||||
|
|
||||||
#define CLASSNAME_FRAME TEXT("CabinetWClass") // same class name for frame window as in MS Explorer
|
#define CLASSNAME_FRAME TEXT("CabinetWClass") // same class name for frame window as in MS Explorer
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,13 @@
|
||||||
#define IDS_MINIMIZE_ALL 33
|
#define IDS_MINIMIZE_ALL 33
|
||||||
#define IDS_DESKTOP_NUM 34
|
#define IDS_DESKTOP_NUM 34
|
||||||
#define IDS_VOLUME 35
|
#define IDS_VOLUME 35
|
||||||
|
#define IDS_ITEMS_CUR 36
|
||||||
|
#define IDS_ITEMS_CONFIGURED 37
|
||||||
|
#define IDS_ITEMS_VISIBLE 38
|
||||||
|
#define IDS_ITEMS_HIDDEN 39
|
||||||
|
#define IDS_NOTIFY_SHOW 40
|
||||||
|
#define IDS_NOTIFY_HIDE 41
|
||||||
|
#define IDS_NOTIFY_AUTOHIDE 42
|
||||||
#define IDI_REACTOS 100
|
#define IDI_REACTOS 100
|
||||||
#define IDI_EXPLORER 101
|
#define IDI_EXPLORER 101
|
||||||
#define IDI_STARTMENU 102
|
#define IDI_STARTMENU 102
|
||||||
|
@ -60,6 +67,7 @@
|
||||||
#define IDB_LOGOV256 130
|
#define IDB_LOGOV256 130
|
||||||
#define IDA_SEARCH_PROGRAM 133
|
#define IDA_SEARCH_PROGRAM 133
|
||||||
#define IDI_APPICON 134
|
#define IDI_APPICON 134
|
||||||
|
#define IDA_TRAYNOTIFY 134
|
||||||
#define IDI_FLOATING 135
|
#define IDI_FLOATING 135
|
||||||
#define IDD_ABOUT_EXPLORER 135
|
#define IDD_ABOUT_EXPLORER 135
|
||||||
#define IDI_REACTOS_BIG 137
|
#define IDI_REACTOS_BIG 137
|
||||||
|
@ -83,6 +91,7 @@
|
||||||
#define IDD_DESKBAR_STARTMENU 154
|
#define IDD_DESKBAR_STARTMENU 154
|
||||||
#define IDB_ICON_ALIGN_1 154
|
#define IDB_ICON_ALIGN_1 154
|
||||||
#define IDB_ICON_ALIGN_2 155
|
#define IDB_ICON_ALIGN_2 155
|
||||||
|
#define IDD_NOTIFYAREA 155
|
||||||
#define IDB_ICON_ALIGN_3 156
|
#define IDB_ICON_ALIGN_3 156
|
||||||
#define IDB_ICON_ALIGN_4 157
|
#define IDB_ICON_ALIGN_4 157
|
||||||
#define IDB_ICON_ALIGN_5 158
|
#define IDB_ICON_ALIGN_5 158
|
||||||
|
@ -92,7 +101,10 @@
|
||||||
#define IDB_ICON_ALIGN_9 162
|
#define IDB_ICON_ALIGN_9 162
|
||||||
#define IDI_SPEAKER 162
|
#define IDI_SPEAKER 162
|
||||||
#define IDB_ICON_ALIGN_10 163
|
#define IDB_ICON_ALIGN_10 163
|
||||||
|
#define IDI_DOT 163
|
||||||
#define IDB_LOGOV16 164
|
#define IDB_LOGOV16 164
|
||||||
|
#define IDI_DOT_TRANS 164
|
||||||
|
#define IDI_DOT_RED 165
|
||||||
#define ID_VIEW_NAME 401
|
#define ID_VIEW_NAME 401
|
||||||
#define ID_VIEW_ALL_ATTRIBUTES 402
|
#define ID_VIEW_ALL_ATTRIBUTES 402
|
||||||
#define ID_VIEW_SELECTED_ATTRIBUTES 403
|
#define ID_VIEW_SELECTED_ATTRIBUTES 403
|
||||||
|
@ -103,19 +115,31 @@
|
||||||
#define IDC_ROS_EXPLORER 1000
|
#define IDC_ROS_EXPLORER 1000
|
||||||
#define IDC_ICON_ALIGN_0 1002
|
#define IDC_ICON_ALIGN_0 1002
|
||||||
#define IDC_ICON_ALIGN_1 1003
|
#define IDC_ICON_ALIGN_1 1003
|
||||||
|
#define IDC_NOTIFY_ICONS 1003
|
||||||
#define IDC_ICON_ALIGN_2 1004
|
#define IDC_ICON_ALIGN_2 1004
|
||||||
#define IDC_ICON_ALIGN_3 1005
|
#define IDC_ICON_ALIGN_3 1005
|
||||||
#define IDC_ICON_ALIGN_4 1006
|
#define IDC_ICON_ALIGN_4 1006
|
||||||
|
#define IDC_NOTIFY_TOOLTIP 1006
|
||||||
#define IDC_ICON_ALIGN_5 1007
|
#define IDC_ICON_ALIGN_5 1007
|
||||||
|
#define IDC_NOTIFY_TITLE 1007
|
||||||
#define IDC_ICON_ALIGN_6 1008
|
#define IDC_ICON_ALIGN_6 1008
|
||||||
|
#define IDC_NOTIFY_MODULE 1008
|
||||||
#define IDC_ICON_ALIGN_7 1009
|
#define IDC_ICON_ALIGN_7 1009
|
||||||
|
#define IDC_LABEL1 1009
|
||||||
#define IDC_ICON_ALIGN_8 1010
|
#define IDC_ICON_ALIGN_8 1010
|
||||||
|
#define IDC_LABEL2 1010
|
||||||
#define IDC_ICON_ALIGN_9 1011
|
#define IDC_ICON_ALIGN_9 1011
|
||||||
|
#define IDC_LABEL3 1011
|
||||||
#define IDC_ICON_ALIGN_10 1012
|
#define IDC_ICON_ALIGN_10 1012
|
||||||
#define IDC_WWW 1012
|
#define IDC_WWW 1012
|
||||||
#define IDC_ICON_ALIGN_11 1013
|
#define IDC_ICON_ALIGN_11 1013
|
||||||
#define IDC_TOPIC 1017
|
#define IDC_TOPIC 1017
|
||||||
#define IDC_MAILS_FOUND 1018
|
#define IDC_MAILS_FOUND 1018
|
||||||
|
#define IDC_PICTURE 1019
|
||||||
|
#define IDC_NOTIFY_SHOW 1020
|
||||||
|
#define IDC_NOTIFY_HIDE 1021
|
||||||
|
#define IDC_NOTIFY_AUTOHIDE 1022
|
||||||
|
#define IDC_LABEL4 1023
|
||||||
#define ID_REFRESH 1704
|
#define ID_REFRESH 1704
|
||||||
#define ID_ABOUT_WINEFILE 1705
|
#define ID_ABOUT_WINEFILE 1705
|
||||||
#define IDC_FILETREE 10001
|
#define IDC_FILETREE 10001
|
||||||
|
@ -165,9 +189,9 @@
|
||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 163
|
#define _APS_NEXT_RESOURCE_VALUE 166
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40019
|
#define _APS_NEXT_COMMAND_VALUE 40019
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1003
|
#define _APS_NEXT_CONTROL_VALUE 1024
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -133,6 +133,13 @@ BEGIN
|
||||||
IDS_MINIMIZE_ALL "mimimize all windows"
|
IDS_MINIMIZE_ALL "mimimize all windows"
|
||||||
IDS_DESKTOP_NUM "Desktop %d"
|
IDS_DESKTOP_NUM "Desktop %d"
|
||||||
IDS_VOLUME "Volume"
|
IDS_VOLUME "Volume"
|
||||||
|
IDS_ITEMS_CUR "current items"
|
||||||
|
IDS_ITEMS_CONFIGURED "configuration"
|
||||||
|
IDS_ITEMS_VISIBLE "visible"
|
||||||
|
IDS_ITEMS_HIDDEN "hidden"
|
||||||
|
IDS_NOTIFY_SHOW "show"
|
||||||
|
IDS_NOTIFY_HIDE "hide"
|
||||||
|
IDS_NOTIFY_AUTOHIDE "autohide"
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // Romanian resources
|
#endif // Romanian resources
|
||||||
|
@ -177,6 +184,11 @@ BEGIN
|
||||||
VK_F5, ID_REFRESH, VIRTKEY, NOINVERT
|
VK_F5, ID_REFRESH, VIRTKEY, NOINVERT
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDA_TRAYNOTIFY ACCELERATORS DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
VK_F5, ID_REFRESH, VIRTKEY, NOINVERT
|
||||||
|
END
|
||||||
|
|
||||||
#endif // Neutral resources
|
#endif // Neutral resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@ -445,6 +457,9 @@ IDI_PRINTER ICON DISCARDABLE "res/printer.ico"
|
||||||
IDI_NETWORK ICON DISCARDABLE "res/network.ico"
|
IDI_NETWORK ICON DISCARDABLE "res/network.ico"
|
||||||
IDI_COMPUTER ICON DISCARDABLE "res/computer.ico"
|
IDI_COMPUTER ICON DISCARDABLE "res/computer.ico"
|
||||||
IDI_SPEAKER ICON DISCARDABLE "res/speaker.ico"
|
IDI_SPEAKER ICON DISCARDABLE "res/speaker.ico"
|
||||||
|
IDI_DOT ICON DISCARDABLE "res/dot.ico"
|
||||||
|
IDI_DOT_TRANS ICON DISCARDABLE "res/dot_trans.ico"
|
||||||
|
IDI_DOT_RED ICON DISCARDABLE "res/dot_red.ico"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
|
@ -516,6 +531,13 @@ BEGIN
|
||||||
IDS_MINIMIZE_ALL "alle Fenster minimieren"
|
IDS_MINIMIZE_ALL "alle Fenster minimieren"
|
||||||
IDS_DESKTOP_NUM "Desktop %d"
|
IDS_DESKTOP_NUM "Desktop %d"
|
||||||
IDS_VOLUME "Lautstärke"
|
IDS_VOLUME "Lautstärke"
|
||||||
|
IDS_ITEMS_CUR "aktuelle Icons"
|
||||||
|
IDS_ITEMS_CONFIGURED "Konfiguratrion"
|
||||||
|
IDS_ITEMS_VISIBLE "sichtbar"
|
||||||
|
IDS_ITEMS_HIDDEN "unsichtbar"
|
||||||
|
IDS_NOTIFY_SHOW "sichtbar"
|
||||||
|
IDS_NOTIFY_HIDE "versteckt"
|
||||||
|
IDS_NOTIFY_AUTOHIDE "automatisch"
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // German (Germany) resources
|
#endif // German (Germany) resources
|
||||||
|
@ -523,138 +545,11 @@ END
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// French (France) resources
|
// English (U.S.) resources
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
|
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
#pragma code_page(1252)
|
|
||||||
#endif //_WIN32
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Menu
|
|
||||||
//
|
|
||||||
|
|
||||||
IDM_MAINFRAME MENU PRELOAD DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
POPUP "&Fichier"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "&Fermer", ID_FILE_EXIT
|
|
||||||
END
|
|
||||||
POPUP "&Affichage"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "Barre d'&outils", ID_VIEW_TOOL_BAR
|
|
||||||
MENUITEM "&Extra Bar", ID_VIEW_EXTRA_BAR
|
|
||||||
MENUITEM "&Drivebar", ID_VIEW_DRIVE_BAR, CHECKED
|
|
||||||
MENUITEM "Barre d'&état", ID_VIEW_STATUSBAR
|
|
||||||
MENUITEM SEPARATOR
|
|
||||||
MENUITEM "F&ull Screen\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
|
|
||||||
END
|
|
||||||
POPUP "&Window"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "New &Window", ID_WINDOW_NEW
|
|
||||||
MENUITEM "Cascading\tShift+F5", ID_WINDOW_CASCADE
|
|
||||||
MENUITEM "Tile &Horizontally", ID_WINDOW_TILE_HORZ
|
|
||||||
MENUITEM "Tile &Vertically\tShift+F4", ID_WINDOW_TILE_VERT
|
|
||||||
MENUITEM "Arrange Automatically", ID_WINDOW_AUTOSORT
|
|
||||||
MENUITEM "Arrange &Symbols", ID_WINDOW_ARRANGE
|
|
||||||
MENUITEM "&Refresh\tF5", ID_REFRESH
|
|
||||||
END
|
|
||||||
POPUP "A&ide"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "&FAQ Explorateur...", ID_EXPLORER_FAQ
|
|
||||||
MENUITEM "A propos de l'&explorateur...", ID_ABOUT_WINDOWS
|
|
||||||
MENUITEM "A propos de l'&OS...", ID_ABOUT_EXPLORER
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Dialog
|
|
||||||
//
|
|
||||||
|
|
||||||
IDD_EXECUTE DIALOG FIXED IMPURE 15, 13, 210, 63
|
|
||||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
CAPTION "Execute"
|
|
||||||
FONT 8, "MS Shell Dlg"
|
|
||||||
BEGIN
|
|
||||||
CONTROL "",101,"Static",SS_SIMPLE | SS_NOPREFIX,3,6,162,10
|
|
||||||
CONTROL "&Command:",-1,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,3,
|
|
||||||
18,60,10
|
|
||||||
EDITTEXT 201,3,29,134,12,ES_AUTOHSCROLL
|
|
||||||
CONTROL "As &Symbol",214,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,3,
|
|
||||||
45,71,12
|
|
||||||
DEFPUSHBUTTON "&OK",1,158,6,47,14
|
|
||||||
PUSHBUTTON "&Cancel",2,158,23,47,14
|
|
||||||
PUSHBUTTON "&Help",254,158,43,47,14
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// String Table
|
|
||||||
//
|
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
IDS_TITLE "Explorateur Reactos"
|
|
||||||
IDS_START "Démarrer"
|
|
||||||
IDS_LOGOFF "Déconnexion ..."
|
|
||||||
IDS_SHUTDOWN "Arrêter..."
|
|
||||||
IDS_LAUNCH "Exécuter..."
|
|
||||||
IDS_START_HELP "Aide"
|
|
||||||
IDS_SEARCH_FILES "Rechercher Fichiers..."
|
|
||||||
IDS_DOCUMENTS "Documents"
|
|
||||||
IDS_FAVORITES "Favoris"
|
|
||||||
IDS_PROGRAMS "Programmes"
|
|
||||||
IDS_SETTINGS "Paramètres"
|
|
||||||
IDS_EXPLORE "Explorer"
|
|
||||||
IDS_EMPTY "(Vide)"
|
|
||||||
IDS_RECENT "Documents récents"
|
|
||||||
IDS_ADMIN "Administration"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
IDS_NETWORK "Réseaux"
|
|
||||||
IDS_CONNECTIONS "Connexions réseaux"
|
|
||||||
IDS_DRIVES "Disques"
|
|
||||||
IDS_SEARCH_COMPUTER "Recherche Ordinateurs..."
|
|
||||||
IDS_SETTINGS_MENU "Barre des tâches et menu démarrer"
|
|
||||||
IDS_CONTROL_PANEL "Panneau de configuration"
|
|
||||||
IDS_PRINTERS "Imprimantes"
|
|
||||||
IDS_BROWSE "Parcourir"
|
|
||||||
IDS_SEARCH_PRG "Recherche Programme..."
|
|
||||||
IDS_ALL_USERS "Tous les utilisateurs\\"
|
|
||||||
IDS_SEARCH "Rechercher"
|
|
||||||
IDS_ABOUT_EXPLORER "A propos de l'explorateur..."
|
|
||||||
IDS_LAUNCH_MANY_PROGRAMS
|
|
||||||
"You have selected more than one program.\nAre you sure you want to launch all of them?"
|
|
||||||
IDS_DESKTOPBAR_SETTINGS "Bureau"
|
|
||||||
IDS_DESKTOP "Bureau"
|
|
||||||
IDS_TASKBAR "Taskbar"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
IDS_STARTMENU "Startmenu"
|
|
||||||
IDS_MINIMIZE_ALL "mimimize all windows"
|
|
||||||
IDS_DESKTOP_NUM "Bureau %d"
|
|
||||||
IDS_VOLUME "Volume"
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // French (France) resources
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// English (U.K.) resources
|
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
|
|
||||||
#ifdef _WIN32
|
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
|
|
||||||
#pragma code_page(1252)
|
#pragma code_page(1252)
|
||||||
#endif //_WIN32
|
#endif //_WIN32
|
||||||
|
|
||||||
|
@ -911,6 +806,7 @@ STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||||
CAPTION "Taskbar Properties"
|
CAPTION "Taskbar Properties"
|
||||||
FONT 8, "MS Sans Serif"
|
FONT 8, "MS Sans Serif"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
PUSHBUTTON "&Notifications...",ID_CONFIG_NOTIFYAREA,153,133,50,14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DESKBAR_STARTMENU DIALOG DISCARDABLE 0, 0, 210, 154
|
IDD_DESKBAR_STARTMENU DIALOG DISCARDABLE 0, 0, 210, 154
|
||||||
|
@ -920,6 +816,33 @@ FONT 8, "MS Sans Serif"
|
||||||
BEGIN
|
BEGIN
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_NOTIFYAREA DIALOGEX 0, 0, 207, 150
|
||||||
|
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
|
||||||
|
BEGIN
|
||||||
|
CONTROL "Tree1",IDC_NOTIFY_ICONS,"SysTreeView32",TVS_HASLINES |
|
||||||
|
TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,193,31
|
||||||
|
LTEXT "&Tooltip Text:",IDC_LABEL1,7,44,40,8
|
||||||
|
EDITTEXT IDC_NOTIFY_TOOLTIP,55,42,145,14,ES_AUTOHSCROLL
|
||||||
|
LTEXT "&Window Title:",IDC_LABEL2,7,63,44,8
|
||||||
|
EDITTEXT IDC_NOTIFY_TITLE,55,60,145,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
|
||||||
|
CONTROL "&show",IDC_NOTIFY_SHOW,"Button",BS_AUTORADIOBUTTON |
|
||||||
|
WS_TABSTOP,15,107,33,10
|
||||||
|
CONTROL "&hide",IDC_NOTIFY_HIDE,"Button",BS_AUTORADIOBUTTON,66,
|
||||||
|
107,29,10
|
||||||
|
CONTROL "a&utohide",IDC_NOTIFY_AUTOHIDE,"Button",
|
||||||
|
BS_AUTORADIOBUTTON,112,107,43,10
|
||||||
|
DEFPUSHBUTTON "&OK",IDOK,91,129,50,14,WS_GROUP
|
||||||
|
PUSHBUTTON "&Cancel",IDCANCEL,150,129,50,14
|
||||||
|
ICON "",IDC_PICTURE,173,100,20,20
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
|
@ -960,6 +883,14 @@ BEGIN
|
||||||
TOPMARGIN, 7
|
TOPMARGIN, 7
|
||||||
BOTTOMMARGIN, 147
|
BOTTOMMARGIN, 147
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_NOTIFYAREA, DIALOG
|
||||||
|
BEGIN
|
||||||
|
LEFTMARGIN, 7
|
||||||
|
RIGHTMARGIN, 200
|
||||||
|
TOPMARGIN, 7
|
||||||
|
BOTTOMMARGIN, 143
|
||||||
|
END
|
||||||
END
|
END
|
||||||
#endif // APSTUDIO_INVOKED
|
#endif // APSTUDIO_INVOKED
|
||||||
|
|
||||||
|
@ -1015,9 +946,150 @@ BEGIN
|
||||||
IDS_MINIMIZE_ALL "mimimize all windows"
|
IDS_MINIMIZE_ALL "mimimize all windows"
|
||||||
IDS_DESKTOP_NUM "Desktop %d"
|
IDS_DESKTOP_NUM "Desktop %d"
|
||||||
IDS_VOLUME "Volume"
|
IDS_VOLUME "Volume"
|
||||||
|
IDS_ITEMS_CUR "current items"
|
||||||
|
IDS_ITEMS_CONFIGURED "configuration"
|
||||||
|
IDS_ITEMS_VISIBLE "visible"
|
||||||
|
IDS_ITEMS_HIDDEN "hidden"
|
||||||
|
IDS_NOTIFY_SHOW "show"
|
||||||
|
IDS_NOTIFY_HIDE "hide"
|
||||||
|
IDS_NOTIFY_AUTOHIDE "autohide"
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // English (U.K.) resources
|
#endif // English (U.S.) resources
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// French (France) resources
|
||||||
|
|
||||||
|
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
|
||||||
|
#ifdef _WIN32
|
||||||
|
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
|
||||||
|
#pragma code_page(1252)
|
||||||
|
#endif //_WIN32
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Menu
|
||||||
|
//
|
||||||
|
|
||||||
|
IDM_MAINFRAME MENU PRELOAD DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
POPUP "&Fichier"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "&Fermer", ID_FILE_EXIT
|
||||||
|
END
|
||||||
|
POPUP "&Affichage"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "Barre d'&outils", ID_VIEW_TOOL_BAR
|
||||||
|
MENUITEM "&Extra Bar", ID_VIEW_EXTRA_BAR
|
||||||
|
MENUITEM "&Drivebar", ID_VIEW_DRIVE_BAR, CHECKED
|
||||||
|
MENUITEM "Barre d'&état", ID_VIEW_STATUSBAR
|
||||||
|
MENUITEM SEPARATOR
|
||||||
|
MENUITEM "F&ull Screen\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
|
||||||
|
END
|
||||||
|
POPUP "&Window"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "New &Window", ID_WINDOW_NEW
|
||||||
|
MENUITEM "Cascading\tShift+F5", ID_WINDOW_CASCADE
|
||||||
|
MENUITEM "Tile &Horizontally", ID_WINDOW_TILE_HORZ
|
||||||
|
MENUITEM "Tile &Vertically\tShift+F4", ID_WINDOW_TILE_VERT
|
||||||
|
MENUITEM "Arrange Automatically", ID_WINDOW_AUTOSORT
|
||||||
|
MENUITEM "Arrange &Symbols", ID_WINDOW_ARRANGE
|
||||||
|
MENUITEM "&Refresh\tF5", ID_REFRESH
|
||||||
|
END
|
||||||
|
POPUP "A&ide"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "&FAQ Explorateur...", ID_EXPLORER_FAQ
|
||||||
|
MENUITEM "A propos de l'&explorateur...", ID_ABOUT_WINDOWS
|
||||||
|
MENUITEM "A propos de l'&OS...", ID_ABOUT_EXPLORER
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Dialog
|
||||||
|
//
|
||||||
|
|
||||||
|
IDD_EXECUTE DIALOG FIXED IMPURE 15, 13, 210, 63
|
||||||
|
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
|
CAPTION "Execute"
|
||||||
|
FONT 8, "MS Shell Dlg"
|
||||||
|
BEGIN
|
||||||
|
CONTROL "",101,"Static",SS_SIMPLE | SS_NOPREFIX,3,6,162,10
|
||||||
|
CONTROL "&Command:",-1,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,3,
|
||||||
|
18,60,10
|
||||||
|
EDITTEXT 201,3,29,134,12,ES_AUTOHSCROLL
|
||||||
|
CONTROL "As &Symbol",214,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,3,
|
||||||
|
45,71,12
|
||||||
|
DEFPUSHBUTTON "&OK",1,158,6,47,14
|
||||||
|
PUSHBUTTON "&Cancel",2,158,23,47,14
|
||||||
|
PUSHBUTTON "&Help",254,158,43,47,14
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// String Table
|
||||||
|
//
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
IDS_TITLE "Explorateur Reactos"
|
||||||
|
IDS_START "Démarrer"
|
||||||
|
IDS_LOGOFF "Déconnexion ..."
|
||||||
|
IDS_SHUTDOWN "Arrêter..."
|
||||||
|
IDS_LAUNCH "Exécuter..."
|
||||||
|
IDS_START_HELP "Aide"
|
||||||
|
IDS_SEARCH_FILES "Rechercher Fichiers..."
|
||||||
|
IDS_DOCUMENTS "Documents"
|
||||||
|
IDS_FAVORITES "Favoris"
|
||||||
|
IDS_PROGRAMS "Programmes"
|
||||||
|
IDS_SETTINGS "Paramètres"
|
||||||
|
IDS_EXPLORE "Explorer"
|
||||||
|
IDS_EMPTY "(Vide)"
|
||||||
|
IDS_RECENT "Documents récents"
|
||||||
|
IDS_ADMIN "Administration"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
IDS_NETWORK "Réseaux"
|
||||||
|
IDS_CONNECTIONS "Connexions réseaux"
|
||||||
|
IDS_DRIVES "Disques"
|
||||||
|
IDS_SEARCH_COMPUTER "Recherche Ordinateurs..."
|
||||||
|
IDS_SETTINGS_MENU "Barre des tâches et menu démarrer"
|
||||||
|
IDS_CONTROL_PANEL "Panneau de configuration"
|
||||||
|
IDS_PRINTERS "Imprimantes"
|
||||||
|
IDS_BROWSE "Parcourir"
|
||||||
|
IDS_SEARCH_PRG "Recherche Programme..."
|
||||||
|
IDS_ALL_USERS "Tous les utilisateurs\\"
|
||||||
|
IDS_SEARCH "Rechercher"
|
||||||
|
IDS_ABOUT_EXPLORER "A propos de l'explorateur..."
|
||||||
|
IDS_LAUNCH_MANY_PROGRAMS
|
||||||
|
"You have selected more than one program.\nAre you sure you want to launch all of them?"
|
||||||
|
IDS_DESKTOPBAR_SETTINGS "Bureau"
|
||||||
|
IDS_DESKTOP "Bureau"
|
||||||
|
IDS_TASKBAR "Taskbar"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
IDS_STARTMENU "Startmenu"
|
||||||
|
IDS_MINIMIZE_ALL "mimimize all windows"
|
||||||
|
IDS_DESKTOP_NUM "Bureau %d"
|
||||||
|
IDS_VOLUME "Volume"
|
||||||
|
IDS_ITEMS_CUR "current items"
|
||||||
|
IDS_ITEMS_CONFIGURED "configuration"
|
||||||
|
IDS_ITEMS_VISIBLE "visible"
|
||||||
|
IDS_ITEMS_HIDDEN "hidden"
|
||||||
|
IDS_NOTIFY_SHOW "show"
|
||||||
|
IDS_NOTIFY_HIDE "hide"
|
||||||
|
IDS_NOTIFY_AUTOHIDE "autohide"
|
||||||
|
END
|
||||||
|
|
||||||
|
#endif // French (France) resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
@ -1218,6 +1290,13 @@ BEGIN
|
||||||
IDS_MINIMIZE_ALL "mimimize all windows"
|
IDS_MINIMIZE_ALL "mimimize all windows"
|
||||||
IDS_DESKTOP_NUM "Desktop %d"
|
IDS_DESKTOP_NUM "Desktop %d"
|
||||||
IDS_VOLUME "Volume"
|
IDS_VOLUME "Volume"
|
||||||
|
IDS_ITEMS_CUR "current items"
|
||||||
|
IDS_ITEMS_CONFIGURED "configuration"
|
||||||
|
IDS_ITEMS_VISIBLE "visible"
|
||||||
|
IDS_ITEMS_HIDDEN "hidden"
|
||||||
|
IDS_NOTIFY_SHOW "show"
|
||||||
|
IDS_NOTIFY_HIDE "hide"
|
||||||
|
IDS_NOTIFY_AUTOHIDE "autohide"
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // Portuguese (Portugal) resources
|
#endif // Portuguese (Portugal) resources
|
||||||
|
|
|
@ -141,6 +141,13 @@ protected:
|
||||||
/// create a bitmap from an icon
|
/// create a bitmap from an icon
|
||||||
extern HBITMAP create_bitmap_from_icon(HICON hIcon, HBRUSH hbrush_bkgnd, HDC hdc_wnd);
|
extern HBITMAP create_bitmap_from_icon(HICON hIcon, HBRUSH hbrush_bkgnd, HDC hdc_wnd);
|
||||||
|
|
||||||
|
/// add icon with alpha channel to imagelist using the specified background color
|
||||||
|
extern int ImageList_AddAlphaIcon(HIMAGELIST himl, HICON hIcon, HBRUSH hbrush_bkgnd, HDC hdc_wnd);
|
||||||
|
|
||||||
|
/// retrieve icon from window
|
||||||
|
extern HICON get_window_icon_small(HWND hwnd);
|
||||||
|
extern HICON get_window_icon_big(HWND hwnd, bool allow_from_class=true);
|
||||||
|
|
||||||
|
|
||||||
/// desktop management
|
/// desktop management
|
||||||
#ifdef _USE_HDESK
|
#ifdef _USE_HDESK
|
||||||
|
|
BIN
reactos/subsys/system/explorer/res/dot.ico
Normal file
BIN
reactos/subsys/system/explorer/res/dot.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
BIN
reactos/subsys/system/explorer/res/dot_red.ico
Normal file
BIN
reactos/subsys/system/explorer/res/dot_red.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
BIN
reactos/subsys/system/explorer/res/dot_trans.ico
Normal file
BIN
reactos/subsys/system/explorer/res/dot_trans.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
|
@ -34,20 +34,6 @@
|
||||||
#include "../explorer_intres.h"
|
#include "../explorer_intres.h"
|
||||||
|
|
||||||
|
|
||||||
static LPARAM TreeView_GetItemData(HWND hwndTreeView, HTREEITEM hItem)
|
|
||||||
{
|
|
||||||
TVITEM tvItem;
|
|
||||||
|
|
||||||
tvItem.mask = TVIF_PARAM;
|
|
||||||
tvItem.hItem = hItem;
|
|
||||||
|
|
||||||
if (!TreeView_GetItem(hwndTreeView, &tvItem))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return tvItem.lParam;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ShellBrowserChild::ShellBrowserChild(HWND hwnd, const ShellChildWndInfo& info)
|
ShellBrowserChild::ShellBrowserChild(HWND hwnd, const ShellChildWndInfo& info)
|
||||||
: super(hwnd, info),
|
: super(hwnd, info),
|
||||||
_create_info(info)
|
_create_info(info)
|
||||||
|
@ -132,20 +118,18 @@ void ShellBrowserChild::InitializeTree()
|
||||||
TreeView_SetImageList(_left_hwnd, _himlSmall, TVSIL_NORMAL);
|
TreeView_SetImageList(_left_hwnd, _himlSmall, TVSIL_NORMAL);
|
||||||
TreeView_SetScrollTime(_left_hwnd, 100);
|
TreeView_SetScrollTime(_left_hwnd, 100);
|
||||||
|
|
||||||
TV_ITEM tvItem;
|
TV_INSERTSTRUCT tvInsert;
|
||||||
|
|
||||||
|
tvInsert.hParent = 0;
|
||||||
|
tvInsert.hInsertAfter = TVI_LAST;
|
||||||
|
|
||||||
|
TV_ITEM& tvItem = tvInsert.item;
|
||||||
tvItem.mask = TVIF_PARAM | TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_CHILDREN;
|
tvItem.mask = TVIF_PARAM | TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_CHILDREN;
|
||||||
tvItem.lParam = (LPARAM)_root._entry;
|
tvItem.lParam = (LPARAM)_root._entry;
|
||||||
tvItem.pszText = LPSTR_TEXTCALLBACK;
|
tvItem.pszText = LPSTR_TEXTCALLBACK;
|
||||||
tvItem.iImage = tvItem.iSelectedImage = I_IMAGECALLBACK;
|
tvItem.iImage = tvItem.iSelectedImage = I_IMAGECALLBACK;
|
||||||
tvItem.cChildren = 1;
|
tvItem.cChildren = 1;
|
||||||
|
|
||||||
TV_INSERTSTRUCT tvInsert;
|
|
||||||
|
|
||||||
tvInsert.hParent = 0;
|
|
||||||
tvInsert.hInsertAfter = TVI_LAST;
|
|
||||||
tvInsert.item = tvItem;
|
|
||||||
|
|
||||||
HTREEITEM hItem = TreeView_InsertItem(_left_hwnd, &tvInsert);
|
HTREEITEM hItem = TreeView_InsertItem(_left_hwnd, &tvInsert);
|
||||||
TreeView_SelectItem(_left_hwnd, hItem);
|
TreeView_SelectItem(_left_hwnd, hItem);
|
||||||
TreeView_Expand(_left_hwnd, hItem, TVE_EXPAND);
|
TreeView_Expand(_left_hwnd, hItem, TVE_EXPAND);
|
||||||
|
|
|
@ -46,6 +46,8 @@ DesktopBar::DesktopBar(HWND hwnd)
|
||||||
: super(hwnd),
|
: super(hwnd),
|
||||||
_trayIcon(hwnd, ID_TRAY_VOLUME)
|
_trayIcon(hwnd, ID_TRAY_VOLUME)
|
||||||
{
|
{
|
||||||
|
SetWindowIcon(hwnd, IDI_REACTOS/*IDI_SEARCH*/); // icon in for TrayNotifyDlg
|
||||||
|
|
||||||
SystemParametersInfo(SPI_GETWORKAREA, 0, &_work_area_org, 0);
|
SystemParametersInfo(SPI_GETWORKAREA, 0, &_work_area_org, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,6 +249,9 @@ LRESULT DesktopBar::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PM_GET_NOTIFYAREA:
|
||||||
|
return (LRESULT)(HWND)_hwndNotify;
|
||||||
|
|
||||||
default: def:
|
default: def:
|
||||||
return super::WndProc(nmsg, wparam, lparam);
|
return super::WndProc(nmsg, wparam, lparam);
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,8 +73,6 @@ struct DesktopBar : public TrayIconControllerTemplate<
|
||||||
static HWND Create();
|
static HWND Create();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
CommonControlInit _usingCmnCtrl;
|
|
||||||
|
|
||||||
RECT _work_area_org;
|
RECT _work_area_org;
|
||||||
int _taskbar_pos;
|
int _taskbar_pos;
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
|
|
||||||
#define IDW_QUICKLAUNCHBAR 101
|
#define IDW_QUICKLAUNCHBAR 101
|
||||||
|
|
||||||
#define PM_REFRESH (WM_APP+0x1B)
|
|
||||||
#define PM_UPDATE_DESKTOP (WM_APP+0x1C)
|
#define PM_UPDATE_DESKTOP (WM_APP+0x1C)
|
||||||
|
|
||||||
#define IDC_FIRST_QUICK_ID 0x4000
|
#define IDC_FIRST_QUICK_ID 0x4000
|
||||||
|
|
|
@ -246,7 +246,7 @@ void TaskBar::ShowAppSystemMenu(TaskBarMap::iterator it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static HICON get_window_icon(HWND hwnd)
|
HICON get_window_icon_small(HWND hwnd)
|
||||||
{
|
{
|
||||||
HICON hIcon = 0;
|
HICON hIcon = 0;
|
||||||
|
|
||||||
|
@ -267,8 +267,31 @@ static HICON get_window_icon(HWND hwnd)
|
||||||
if (!hIcon)
|
if (!hIcon)
|
||||||
SendMessageTimeout(hwnd, WM_QUERYDRAGICON, 0, 0, 0, 1000, (LPDWORD)&hIcon);
|
SendMessageTimeout(hwnd, WM_QUERYDRAGICON, 0, 0, 0, 1000, (LPDWORD)&hIcon);
|
||||||
|
|
||||||
|
return hIcon;
|
||||||
|
}
|
||||||
|
|
||||||
|
HICON get_window_icon_big(HWND hwnd, bool allow_from_class)
|
||||||
|
{
|
||||||
|
HICON hIcon = 0;
|
||||||
|
|
||||||
|
SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 1000, (LPDWORD)&hIcon);
|
||||||
|
|
||||||
if (!hIcon)
|
if (!hIcon)
|
||||||
hIcon = LoadIcon(0, IDI_APPLICATION);
|
SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 1000, (LPDWORD)&hIcon);
|
||||||
|
|
||||||
|
if (!hIcon)
|
||||||
|
SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 1000, (LPDWORD)&hIcon);
|
||||||
|
|
||||||
|
if (allow_from_class) {
|
||||||
|
if (!hIcon)
|
||||||
|
hIcon = (HICON)GetClassLong(hwnd, GCL_HICON);
|
||||||
|
|
||||||
|
if (!hIcon)
|
||||||
|
hIcon = (HICON)GetClassLong(hwnd, GCL_HICONSM);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hIcon)
|
||||||
|
SendMessageTimeout(hwnd, WM_QUERYDRAGICON, 0, 0, 0, 1000, (LPDWORD)&hIcon);
|
||||||
|
|
||||||
return hIcon;
|
return hIcon;
|
||||||
}
|
}
|
||||||
|
@ -298,7 +321,10 @@ BOOL CALLBACK TaskBar::EnumWndProc(HWND hwnd, LPARAM lparam)
|
||||||
found->second._id = pThis->_next_id++;
|
found->second._id = pThis->_next_id++;
|
||||||
} else {
|
} else {
|
||||||
HBITMAP hbmp;
|
HBITMAP hbmp;
|
||||||
HICON hIcon = get_window_icon(hwnd);
|
HICON hIcon = get_window_icon_small(hwnd);
|
||||||
|
|
||||||
|
if (!hIcon)
|
||||||
|
hIcon = LoadIcon(0, IDI_APPLICATION);
|
||||||
|
|
||||||
if (hIcon) {
|
if (hIcon) {
|
||||||
hbmp = create_bitmap_from_icon(hIcon, GetSysColorBrush(COLOR_BTNFACE), WindowCanvas(pThis->_htoolbar));
|
hbmp = create_bitmap_from_icon(hIcon, GetSysColorBrush(COLOR_BTNFACE), WindowCanvas(pThis->_htoolbar));
|
||||||
|
|
|
@ -35,8 +35,6 @@
|
||||||
|
|
||||||
#include "traynotify.h"
|
#include "traynotify.h"
|
||||||
|
|
||||||
#include "../dialogs/settings.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include "../notifyhook/notifyhook.h"
|
#include "../notifyhook/notifyhook.h"
|
||||||
|
|
||||||
|
@ -157,6 +155,11 @@ NotifyInfo& NotifyInfo::operator=(NOTIFYICONDATA* pnid)
|
||||||
_tipText.assign(txt, l);
|
_tipText.assign(txt, l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TCHAR title[MAX_PATH];
|
||||||
|
|
||||||
|
if (GetWindowText(_hWnd, title, MAX_PATH))
|
||||||
|
_windowTitle = title;
|
||||||
|
|
||||||
///@todo test for real changes
|
///@todo test for real changes
|
||||||
_lastChange = GetTickCount();
|
_lastChange = GetTickCount();
|
||||||
|
|
||||||
|
@ -173,7 +176,7 @@ NotifyArea::NotifyArea(HWND hwnd)
|
||||||
_last_icon_count = 0;
|
_last_icon_count = 0;
|
||||||
_show_hidden = false;
|
_show_hidden = false;
|
||||||
|
|
||||||
///@todo read from config file -->
|
/*@todo read/write from/to config file/registry
|
||||||
NotifyIconConfig cfg;
|
NotifyIconConfig cfg;
|
||||||
|
|
||||||
cfg._tipText = TEXT("FRITZ!fon");
|
cfg._tipText = TEXT("FRITZ!fon");
|
||||||
|
@ -207,11 +210,7 @@ NotifyArea::NotifyArea(HWND hwnd)
|
||||||
_cfg.push_back(cfg);
|
_cfg.push_back(cfg);
|
||||||
|
|
||||||
cfg._windowTitle.erase();
|
cfg._windowTitle.erase();
|
||||||
|
*/
|
||||||
cfg._modulePath = TEXT("xyz"); //@@
|
|
||||||
cfg._mode = NIM_HIDE;
|
|
||||||
_cfg.push_back(cfg);
|
|
||||||
/// <--
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT NotifyArea::Init(LPCREATESTRUCT pcs)
|
LRESULT NotifyArea::Init(LPCREATESTRUCT pcs)
|
||||||
|
@ -292,6 +291,10 @@ LRESULT NotifyArea::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
|
||||||
clock_window->TimerTick();
|
clock_window->TimerTick();
|
||||||
break;}
|
break;}
|
||||||
|
|
||||||
|
case PM_REFRESH:
|
||||||
|
TimerTick();
|
||||||
|
break;
|
||||||
|
|
||||||
case WM_SIZE: {
|
case WM_SIZE: {
|
||||||
int cx = LOWORD(lparam);
|
int cx = LOWORD(lparam);
|
||||||
SetWindowPos(_hwndClock, 0, cx-_clock_width, 0, 0, 0, SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE);
|
SetWindowPos(_hwndClock, 0, cx-_clock_width, 0, 0, 0, SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE);
|
||||||
|
@ -331,10 +334,20 @@ LRESULT NotifyArea::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
|
||||||
)
|
)
|
||||||
CancelModes();
|
CancelModes();
|
||||||
|
|
||||||
NotifyIconSet::iterator found = IconHitTest(Point(lparam));
|
NotifyIconSet::const_iterator found = IconHitTest(Point(lparam));
|
||||||
|
|
||||||
if (found != _sorted_icons.end()) {
|
if (found != _sorted_icons.end()) {
|
||||||
NotifyInfo& entry = const_cast<NotifyInfo&>(*found); // Why does GCC 3.3 need this additional const_cast ?!
|
const NotifyInfo& entry = const_cast<NotifyInfo&>(*found); // Why does GCC 3.3 need this additional const_cast ?!
|
||||||
|
|
||||||
|
// set activation time stamp
|
||||||
|
if (nmsg == WM_LBUTTONDOWN || // Some programs need PostMessage() instead of SendMessage().
|
||||||
|
nmsg == WM_MBUTTONDOWN || // So call SendMessage() only for BUTTONUP and BLCLK messages
|
||||||
|
#ifdef WM_XBUTTONDOWN
|
||||||
|
nmsg == WM_XBUTTONDOWN ||
|
||||||
|
#endif
|
||||||
|
nmsg == WM_RBUTTONDOWN) {
|
||||||
|
_icon_map[entry]._lastChange = GetTickCount();
|
||||||
|
}
|
||||||
|
|
||||||
// Notify the message if the owner is still alive
|
// Notify the message if the owner is still alive
|
||||||
if (IsWindow(entry._hWnd)) {
|
if (IsWindow(entry._hWnd)) {
|
||||||
|
@ -381,7 +394,7 @@ int NotifyArea::Command(int id, int code)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_CONFIG_NOTIFYAREA:
|
case ID_CONFIG_NOTIFYAREA:
|
||||||
ExplorerPropertySheet(_hwnd);
|
Dialog::DoModal(IDD_NOTIFYAREA, WINDOW_CREATOR(TrayNotifyDlg), GetParent(_hwnd));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_CONFIG_TIME:
|
case ID_CONFIG_TIME:
|
||||||
|
@ -615,7 +628,7 @@ NotifyIconSet::iterator NotifyArea::IconHitTest(const POINT& pos)
|
||||||
|
|
||||||
#if NOTIFYICON_VERSION>=3 // as of 21.08.2003 missing in MinGW headers
|
#if NOTIFYICON_VERSION>=3 // as of 21.08.2003 missing in MinGW headers
|
||||||
|
|
||||||
bool NotifyIconConfig::match(const NotifyIconProps& props) const
|
bool NotifyIconConfig::match(const NotifyIconConfig& props) const
|
||||||
{
|
{
|
||||||
if (!_tipText.empty() && !props._tipText.empty())
|
if (!_tipText.empty() && !props._tipText.empty())
|
||||||
if (props._tipText == _tipText)
|
if (props._tipText == _tipText)
|
||||||
|
@ -634,26 +647,20 @@ bool NotifyIconConfig::match(const NotifyIconProps& props) const
|
||||||
|
|
||||||
bool NotifyArea::DetermineHideState(NotifyInfo& entry)
|
bool NotifyArea::DetermineHideState(NotifyInfo& entry)
|
||||||
{
|
{
|
||||||
for(NotifyIconCfgList::const_iterator it=_cfg.begin(); it!=_cfg.end(); ++it) {
|
if (entry._modulePath.empty()) {
|
||||||
const NotifyIconConfig& cfg = *it;
|
|
||||||
|
|
||||||
NotifyIconProps props;
|
|
||||||
|
|
||||||
props._tipText = entry._tipText;
|
|
||||||
|
|
||||||
TCHAR title[MAX_PATH];
|
|
||||||
if (GetWindowText(entry._hWnd, title, MAX_PATH))
|
|
||||||
props._windowTitle = title;
|
|
||||||
|
|
||||||
const String& modulePath = _window_modules[entry._hWnd];
|
const String& modulePath = _window_modules[entry._hWnd];
|
||||||
|
|
||||||
// request module path for new windows (We will get an asynchronous answer by a WM_COPYDATA message.)
|
// request module path for new windows (We will get an asynchronous answer by a WM_COPYDATA message.)
|
||||||
if (!modulePath.empty())
|
if (!modulePath.empty())
|
||||||
props._modulePath = modulePath;
|
entry._modulePath = modulePath;
|
||||||
else
|
else
|
||||||
_hook.GetModulePath(entry._hWnd, _hwnd);
|
_hook.GetModulePath(entry._hWnd, _hwnd);
|
||||||
|
}
|
||||||
|
|
||||||
if (cfg.match(props)) {
|
for(NotifyIconCfgList::const_iterator it=_cfg.begin(); it!=_cfg.end(); ++it) {
|
||||||
|
const NotifyIconConfig& cfg = *it;
|
||||||
|
|
||||||
|
if (cfg.match(entry)) {
|
||||||
entry._mode = cfg._mode;
|
entry._mode = cfg._mode;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -665,6 +672,328 @@ bool NotifyArea::DetermineHideState(NotifyInfo& entry)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
TrayNotifyDlg::TrayNotifyDlg(HWND hwnd)
|
||||||
|
: super(hwnd),
|
||||||
|
_tree_ctrl(GetDlgItem(hwnd, IDC_NOTIFY_ICONS)),
|
||||||
|
_himl(ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_COLOR24, 2, 0)),
|
||||||
|
_pNotifyArea(static_cast<NotifyArea*>(Window::get_window((HWND)SendMessage(g_Globals._hwndDesktopBar, PM_GET_NOTIFYAREA, 0, 0))))
|
||||||
|
{
|
||||||
|
_selectedItem = 0;
|
||||||
|
|
||||||
|
SetWindowIcon(hwnd, IDI_REACTOS/*IDI_SEARCH*/);
|
||||||
|
|
||||||
|
_haccel = LoadAccelerators(g_Globals._hInstance, MAKEINTRESOURCE(IDA_TRAYNOTIFY));
|
||||||
|
|
||||||
|
{
|
||||||
|
WindowCanvas canvas(_hwnd);
|
||||||
|
HBRUSH hbkgnd = GetStockBrush(WHITE_BRUSH);
|
||||||
|
|
||||||
|
ImageList_AddAlphaIcon(_himl, SmallIcon(IDI_DOT), hbkgnd, canvas);
|
||||||
|
ImageList_AddAlphaIcon(_himl, SmallIcon(IDI_DOT_TRANS), hbkgnd, canvas);
|
||||||
|
ImageList_AddAlphaIcon(_himl, SmallIcon(IDI_DOT_RED), hbkgnd, canvas);
|
||||||
|
}
|
||||||
|
|
||||||
|
TreeView_SetImageList(_tree_ctrl, _himl, TVSIL_NORMAL);
|
||||||
|
|
||||||
|
_resize_mgr.Add(IDC_NOTIFY_ICONS, RESIZE);
|
||||||
|
_resize_mgr.Add(IDC_LABEL1, MOVE_Y);
|
||||||
|
_resize_mgr.Add(IDC_NOTIFY_TOOLTIP, RESIZE_X|MOVE_Y);
|
||||||
|
_resize_mgr.Add(IDC_LABEL2, MOVE_Y);
|
||||||
|
_resize_mgr.Add(IDC_NOTIFY_TITLE, RESIZE_X|MOVE_Y);
|
||||||
|
_resize_mgr.Add(IDC_LABEL3, MOVE_Y);
|
||||||
|
_resize_mgr.Add(IDC_NOTIFY_MODULE, RESIZE_X|MOVE_Y);
|
||||||
|
|
||||||
|
_resize_mgr.Add(IDC_LABEL4, MOVE_Y);
|
||||||
|
_resize_mgr.Add(IDC_NOTIFY_SHOW, MOVE_Y);
|
||||||
|
_resize_mgr.Add(IDC_NOTIFY_HIDE, MOVE_Y);
|
||||||
|
_resize_mgr.Add(IDC_NOTIFY_AUTOHIDE,MOVE_Y);
|
||||||
|
|
||||||
|
_resize_mgr.Add(IDC_PICTURE, MOVE);
|
||||||
|
|
||||||
|
_resize_mgr.Add(IDOK, MOVE);
|
||||||
|
_resize_mgr.Add(IDCANCEL, MOVE);
|
||||||
|
|
||||||
|
_resize_mgr.Resize(+150, +200);
|
||||||
|
|
||||||
|
Refresh();
|
||||||
|
|
||||||
|
SetTimer(_hwnd, 0, 3000, NULL);
|
||||||
|
register_pretranslate(hwnd);
|
||||||
|
}
|
||||||
|
|
||||||
|
TrayNotifyDlg::~TrayNotifyDlg()
|
||||||
|
{
|
||||||
|
KillTimer(_hwnd, 0);
|
||||||
|
unregister_pretranslate(_hwnd);
|
||||||
|
ImageList_Destroy(_himl);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TrayNotifyDlg::Refresh()
|
||||||
|
{
|
||||||
|
///@todo refresh incrementally
|
||||||
|
|
||||||
|
HiddenWindow hide(_tree_ctrl);
|
||||||
|
|
||||||
|
TreeView_DeleteAllItems(_tree_ctrl);
|
||||||
|
|
||||||
|
TV_INSERTSTRUCT tvi;
|
||||||
|
|
||||||
|
tvi.hParent = 0;
|
||||||
|
tvi.hInsertAfter = TVI_LAST;
|
||||||
|
|
||||||
|
TV_ITEM& tv = tvi.item;
|
||||||
|
tv.mask = TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
|
||||||
|
|
||||||
|
ResString str_cur(IDS_ITEMS_CUR);
|
||||||
|
tv.pszText = (LPTSTR)str_cur.c_str();
|
||||||
|
tv.iSelectedImage = tv.iImage = 0; // IDI_DOT
|
||||||
|
_hitemCurrent = TreeView_InsertItem(_tree_ctrl, &tvi);
|
||||||
|
|
||||||
|
ResString str_conf(IDS_ITEMS_CONFIGURED);
|
||||||
|
tv.pszText = (LPTSTR)str_conf.c_str();
|
||||||
|
tv.iSelectedImage = tv.iImage = 2; // IDI_DOT_RED
|
||||||
|
_hitemConfig = TreeView_InsertItem(_tree_ctrl, &tvi);
|
||||||
|
|
||||||
|
tvi.hParent = _hitemCurrent;
|
||||||
|
|
||||||
|
ResString str_visible(IDS_ITEMS_VISIBLE);
|
||||||
|
tv.pszText = (LPTSTR)str_visible.c_str();
|
||||||
|
tv.iSelectedImage = tv.iImage = 0; // IDI_DOT
|
||||||
|
_hitemCurrent_visible = TreeView_InsertItem(_tree_ctrl, &tvi);
|
||||||
|
|
||||||
|
ResString str_hidden(IDS_ITEMS_HIDDEN);
|
||||||
|
tv.pszText = (LPTSTR)str_hidden.c_str();
|
||||||
|
tv.iSelectedImage = tv.iImage = 1; // IDI_DOT_TRANS
|
||||||
|
_hitemCurrent_hidden = TreeView_InsertItem(_tree_ctrl, &tvi);
|
||||||
|
|
||||||
|
if (_pNotifyArea) {
|
||||||
|
tv.mask |= TVIF_PARAM;
|
||||||
|
|
||||||
|
WindowCanvas canvas(_hwnd);
|
||||||
|
|
||||||
|
// insert current (visible and hidden) items
|
||||||
|
for(NotifyIconMap::const_iterator it=_pNotifyArea->_icon_map.begin(); it!=_pNotifyArea->_icon_map.end(); ++it) {
|
||||||
|
const NotifyInfo& entry = it->second;
|
||||||
|
|
||||||
|
InsertItem(entry._dwState&NIS_HIDDEN? _hitemCurrent_hidden: _hitemCurrent_visible, TVI_LAST, entry, canvas);
|
||||||
|
}
|
||||||
|
|
||||||
|
// insert configured items in tree view
|
||||||
|
const NotifyIconCfgList& cfg = _pNotifyArea->_cfg;
|
||||||
|
for(NotifyIconCfgList::const_iterator it=cfg.begin(); it!=cfg.end(); ++it) {
|
||||||
|
const NotifyIconConfig& cfg_entry = *it;
|
||||||
|
|
||||||
|
HICON hicon = 0;
|
||||||
|
|
||||||
|
if (!cfg_entry._modulePath.empty()) {
|
||||||
|
if ((int)ExtractIconEx(cfg_entry._modulePath, 0, NULL, &hicon, 1) <= 0)
|
||||||
|
hicon = 0;
|
||||||
|
|
||||||
|
if (!hicon) {
|
||||||
|
SHFILEINFO sfi;
|
||||||
|
|
||||||
|
if (SHGetFileInfo(cfg_entry._modulePath, 0, &sfi, sizeof(sfi), SHGFI_ICON|SHGFI_SMALLICON))
|
||||||
|
hicon = sfi.hIcon;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
InsertItem(_hitemConfig, TVI_SORT, cfg_entry, canvas, hicon, cfg_entry._mode);
|
||||||
|
|
||||||
|
if (hicon)
|
||||||
|
DestroyIcon(hicon);
|
||||||
|
}
|
||||||
|
|
||||||
|
// insert new configuration entry
|
||||||
|
}
|
||||||
|
|
||||||
|
TreeView_Expand(_tree_ctrl, _hitemCurrent_visible, TVE_EXPAND);
|
||||||
|
TreeView_Expand(_tree_ctrl, _hitemCurrent_hidden, TVE_EXPAND);
|
||||||
|
TreeView_Expand(_tree_ctrl, _hitemCurrent, TVE_EXPAND);
|
||||||
|
TreeView_Expand(_tree_ctrl, _hitemConfig, TVE_EXPAND);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TrayNotifyDlg::InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyInfo& entry, HDC hdc)
|
||||||
|
{
|
||||||
|
InsertItem(hparent, after, entry, hdc, entry._hIcon, entry._mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TrayNotifyDlg::InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyIconConfig& entry,
|
||||||
|
HDC hdc, HICON hicon, NOTIFYICONMODE mode)
|
||||||
|
{
|
||||||
|
String mode_str;
|
||||||
|
|
||||||
|
switch(mode) {
|
||||||
|
case NIM_SHOW: mode_str = ResString(IDS_NOTIFY_SHOW); break;
|
||||||
|
case NIM_HIDE: mode_str = ResString(IDS_NOTIFY_HIDE); break;
|
||||||
|
case NIM_AUTO: mode_str = ResString(IDS_NOTIFY_AUTOHIDE);
|
||||||
|
}
|
||||||
|
|
||||||
|
FmtString txt(TEXT("%s - %s [%s]"), entry._tipText.c_str(), entry._windowTitle.c_str(), mode_str.c_str());
|
||||||
|
|
||||||
|
TV_INSERTSTRUCT tvi;
|
||||||
|
|
||||||
|
tvi.hParent = hparent;
|
||||||
|
tvi.hInsertAfter = after;
|
||||||
|
|
||||||
|
TV_ITEM& tv = tvi.item;
|
||||||
|
tv.mask = TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM;
|
||||||
|
|
||||||
|
tv.lParam = (LPARAM)&entry;
|
||||||
|
tv.pszText = (LPTSTR)txt.c_str();
|
||||||
|
tv.iSelectedImage = tv.iImage = ImageList_AddAlphaIcon(_himl, hicon, GetStockBrush(WHITE_BRUSH), hdc);
|
||||||
|
TreeView_InsertItem(_tree_ctrl, &tvi);
|
||||||
|
}
|
||||||
|
|
||||||
|
LRESULT TrayNotifyDlg::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
|
||||||
|
{
|
||||||
|
switch(nmsg) {
|
||||||
|
case PM_TRANSLATE_MSG: {
|
||||||
|
MSG* pmsg = (MSG*) lparam;
|
||||||
|
|
||||||
|
if (TranslateAccelerator(_hwnd, _haccel, pmsg))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;}
|
||||||
|
|
||||||
|
case WM_TIMER:
|
||||||
|
Refresh();
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return super::WndProc(nmsg, wparam, lparam);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TrayNotifyDlg::Command(int id, int code)
|
||||||
|
{
|
||||||
|
if (code == BN_CLICKED) {
|
||||||
|
switch(id) {
|
||||||
|
case ID_REFRESH:
|
||||||
|
Refresh();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_NOTIFY_SHOW:
|
||||||
|
SetIconMode(NIM_SHOW);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_NOTIFY_HIDE:
|
||||||
|
SetIconMode(NIM_HIDE);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_NOTIFY_AUTOHIDE:
|
||||||
|
SetIconMode(NIM_AUTO);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDOK:
|
||||||
|
case IDCANCEL:
|
||||||
|
EndDialog(_hwnd, id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TrayNotifyDlg::Notify(int id, NMHDR* pnmh)
|
||||||
|
{
|
||||||
|
switch(pnmh->code) {
|
||||||
|
case TVN_SELCHANGED: {
|
||||||
|
NMTREEVIEW* pnmtv = (NMTREEVIEW*)pnmh;
|
||||||
|
LPARAM lparam = pnmtv->itemNew.lParam;
|
||||||
|
|
||||||
|
if (lparam) {
|
||||||
|
const NotifyIconConfig& entry = *(NotifyIconConfig*)lparam;
|
||||||
|
|
||||||
|
SetDlgItemText(_hwnd, IDC_NOTIFY_TOOLTIP, entry._tipText);
|
||||||
|
SetDlgItemText(_hwnd, IDC_NOTIFY_TITLE, entry._windowTitle);
|
||||||
|
SetDlgItemText(_hwnd, IDC_NOTIFY_MODULE, entry._modulePath);
|
||||||
|
|
||||||
|
CheckRadioButton(_hwnd, IDC_NOTIFY_SHOW, IDC_NOTIFY_AUTOHIDE, IDC_NOTIFY_SHOW+entry._mode);
|
||||||
|
|
||||||
|
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.
|
||||||
|
if (!hicon && !entry._modulePath.empty()) {
|
||||||
|
hicon = ExtractIcon(g_Globals._hInstance, entry._modulePath, 0);
|
||||||
|
|
||||||
|
if (!hicon) {
|
||||||
|
SHFILEINFO sfi;
|
||||||
|
|
||||||
|
if (SHGetFileInfo(entry._modulePath, 0, &sfi, sizeof(sfi), SHGFI_ICON|SHGFI_LARGEICON))
|
||||||
|
hicon = sfi.hIcon;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hicon) {
|
||||||
|
SendMessage(GetDlgItem(_hwnd, IDC_PICTURE), STM_SETICON, (LPARAM)hicon, 0);
|
||||||
|
DestroyIcon(hicon);
|
||||||
|
} else
|
||||||
|
SendMessage(GetDlgItem(_hwnd, IDC_PICTURE), STM_SETICON, 0, 0);
|
||||||
|
|
||||||
|
_selectedItem = pnmtv->itemNew.hItem;
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
SetDlgItemText(_hwnd, IDC_NOTIFY_TOOLTIP, NULL);
|
||||||
|
SetDlgItemText(_hwnd, IDC_NOTIFY_TITLE, NULL);
|
||||||
|
SetDlgItemText(_hwnd, IDC_NOTIFY_MODULE, NULL);
|
||||||
|
*/
|
||||||
|
CheckRadioButton(_hwnd, IDC_NOTIFY_SHOW, IDC_NOTIFY_AUTOHIDE, 0);
|
||||||
|
}
|
||||||
|
break;}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TrayNotifyDlg::SetIconMode(NOTIFYICONMODE mode)
|
||||||
|
{
|
||||||
|
LPARAM lparam = TreeView_GetItemData(_tree_ctrl, _selectedItem);
|
||||||
|
|
||||||
|
if (!lparam)
|
||||||
|
return;
|
||||||
|
|
||||||
|
NotifyIconConfig& entry = *(NotifyIconConfig*)lparam;
|
||||||
|
|
||||||
|
if (entry._mode != mode) {
|
||||||
|
entry._mode = mode;
|
||||||
|
|
||||||
|
// trigger refresh in notify area and this dialog
|
||||||
|
SendMessage(*_pNotifyArea, PM_REFRESH, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_pNotifyArea) {
|
||||||
|
bool found = false;
|
||||||
|
|
||||||
|
NotifyIconCfgList& cfg = _pNotifyArea->_cfg;
|
||||||
|
for(NotifyIconCfgList::iterator it=cfg.begin(); it!=cfg.end(); ++it) {
|
||||||
|
NotifyIconConfig& cfg_entry = *it;
|
||||||
|
|
||||||
|
if (cfg_entry.match(entry)) {
|
||||||
|
cfg_entry._mode = mode;
|
||||||
|
++found;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!found) {
|
||||||
|
// insert new configuration entry
|
||||||
|
NotifyIconConfig cfg_entry = entry;
|
||||||
|
|
||||||
|
cfg_entry._mode = mode;
|
||||||
|
|
||||||
|
_pNotifyArea->_cfg.push_back(cfg_entry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Refresh();
|
||||||
|
///@todo select treeview item at new position in tree view -> refresh HTREEITEM in _selectedItem
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ClockWindow::ClockWindow(HWND hwnd)
|
ClockWindow::ClockWindow(HWND hwnd)
|
||||||
: super(hwnd),
|
: super(hwnd),
|
||||||
_tooltip(hwnd)
|
_tooltip(hwnd)
|
||||||
|
|
|
@ -35,10 +35,11 @@
|
||||||
#define NOTIFYICON_DIST 20
|
#define NOTIFYICON_DIST 20
|
||||||
#define NOTIFYAREA_SPACE 10
|
#define NOTIFYAREA_SPACE 10
|
||||||
|
|
||||||
#define PM_GETMODULEPATH_CB (WM_APP+0x21)
|
|
||||||
|
|
||||||
#define ICON_AUTOHIDE_SECONDS 300
|
#define ICON_AUTOHIDE_SECONDS 300
|
||||||
|
|
||||||
|
#define PM_GETMODULEPATH_CB (WM_APP+0x21)
|
||||||
|
#define PM_GET_NOTIFYAREA (WM_APP+0x22)
|
||||||
|
|
||||||
|
|
||||||
/// NotifyIconIndex is used for maintaining the order of notification icons.
|
/// NotifyIconIndex is used for maintaining the order of notification icons.
|
||||||
struct NotifyIconIndex
|
struct NotifyIconIndex
|
||||||
|
@ -58,25 +59,22 @@ protected:
|
||||||
|
|
||||||
|
|
||||||
enum NOTIFYICONMODE {
|
enum NOTIFYICONMODE {
|
||||||
NIM_AUTO, NIM_SHOW, NIM_HIDE
|
NIM_SHOW, NIM_HIDE, NIM_AUTO
|
||||||
};
|
};
|
||||||
|
|
||||||
/// properties used to identify a notification icon
|
|
||||||
struct NotifyIconProps
|
|
||||||
{
|
|
||||||
String _tipText;
|
|
||||||
String _windowTitle; // To look at the window title and at the window module path of the notify icon owner window
|
|
||||||
String _modulePath; // to identify notification icons is an extension above XP's behaviour.
|
|
||||||
}; // (XP seems to store icon image data in the registry instead.)
|
|
||||||
|
|
||||||
/// configuration for the display mode of a notification icon
|
/// configuration for the display mode of a notification icon
|
||||||
struct NotifyIconConfig : public NotifyIconProps
|
struct NotifyIconConfig
|
||||||
{
|
{
|
||||||
NotifyIconConfig() : _mode(NIM_AUTO) {}
|
NotifyIconConfig() : _mode(NIM_AUTO) {}
|
||||||
|
|
||||||
bool match(const NotifyIconProps& props) const;
|
bool match(const NotifyIconConfig& props) const;
|
||||||
|
|
||||||
NOTIFYICONMODE _mode;
|
// properties used to identify a notification icon
|
||||||
|
String _tipText;
|
||||||
|
String _windowTitle; // To look at the window title and at the window module path of the notify icon owner window
|
||||||
|
String _modulePath; // to identify notification icons is an extension above XP's behaviour.
|
||||||
|
// (XP seems to store icon image data in the registry instead.)
|
||||||
|
NOTIFYICONMODE _mode;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// list of NotifyIconConfig structures
|
/// list of NotifyIconConfig structures
|
||||||
|
@ -84,7 +82,7 @@ typedef list<NotifyIconConfig> NotifyIconCfgList;
|
||||||
|
|
||||||
|
|
||||||
/// structure for maintaining informations about one notification icon
|
/// structure for maintaining informations about one notification icon
|
||||||
struct NotifyInfo : public NotifyIconIndex
|
struct NotifyInfo : public NotifyIconIndex, public NotifyIconConfig
|
||||||
{
|
{
|
||||||
NotifyInfo();
|
NotifyInfo();
|
||||||
|
|
||||||
|
@ -99,9 +97,7 @@ struct NotifyInfo : public NotifyIconIndex
|
||||||
DWORD _dwState;
|
DWORD _dwState;
|
||||||
UINT _uCallbackMessage;
|
UINT _uCallbackMessage;
|
||||||
UINT _version;
|
UINT _version;
|
||||||
String _tipText;
|
|
||||||
|
|
||||||
NOTIFYICONMODE _mode;
|
|
||||||
DWORD _lastChange; // timer tick value of the last change
|
DWORD _lastChange; // timer tick value of the last change
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -138,12 +134,8 @@ protected:
|
||||||
WindowHandle _hwndClock;
|
WindowHandle _hwndClock;
|
||||||
int _clock_width;
|
int _clock_width;
|
||||||
|
|
||||||
NotifyIconMap _icon_map;
|
|
||||||
NotifyIconSet _sorted_icons;
|
|
||||||
int _next_idx;
|
|
||||||
size_t _last_icon_count;
|
|
||||||
|
|
||||||
ToolTip _tooltip;
|
ToolTip _tooltip;
|
||||||
|
NotifyHook _hook;
|
||||||
|
|
||||||
bool _show_hidden;
|
bool _show_hidden;
|
||||||
|
|
||||||
|
@ -160,10 +152,46 @@ protected:
|
||||||
NotifyIconSet::iterator IconHitTest(const POINT& pos);
|
NotifyIconSet::iterator IconHitTest(const POINT& pos);
|
||||||
bool DetermineHideState(NotifyInfo& entry);
|
bool DetermineHideState(NotifyInfo& entry);
|
||||||
|
|
||||||
|
public: // for TrayNotifyDlg
|
||||||
NotifyIconCfgList _cfg;
|
NotifyIconCfgList _cfg;
|
||||||
|
|
||||||
NotifyHook _hook;
|
|
||||||
map<HWND, String> _window_modules;
|
map<HWND, String> _window_modules;
|
||||||
|
|
||||||
|
NotifyIconMap _icon_map;
|
||||||
|
NotifyIconSet _sorted_icons;
|
||||||
|
int _next_idx;
|
||||||
|
size_t _last_icon_count;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/// configuration dialog for notification icons
|
||||||
|
struct TrayNotifyDlg : public ResizeController<Dialog>
|
||||||
|
{
|
||||||
|
typedef ResizeController<Dialog> super;
|
||||||
|
|
||||||
|
TrayNotifyDlg(HWND hwnd);
|
||||||
|
~TrayNotifyDlg();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
HWND _tree_ctrl;
|
||||||
|
HACCEL _haccel;
|
||||||
|
HIMAGELIST _himl;
|
||||||
|
NotifyArea* _pNotifyArea;
|
||||||
|
|
||||||
|
HTREEITEM _hitemCurrent;
|
||||||
|
HTREEITEM _hitemCurrent_visible;
|
||||||
|
HTREEITEM _hitemCurrent_hidden;
|
||||||
|
HTREEITEM _hitemConfig;
|
||||||
|
HTREEITEM _selectedItem;
|
||||||
|
|
||||||
|
virtual LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
|
||||||
|
virtual int Command(int id, int code);
|
||||||
|
virtual int Notify(int id, NMHDR* pnmh);
|
||||||
|
|
||||||
|
void Refresh();
|
||||||
|
void InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyInfo&, HDC);
|
||||||
|
void InsertItem(HTREEITEM hparent, HTREEITEM after, const NotifyIconConfig&, HDC, HICON, NOTIFYICONMODE);
|
||||||
|
void SetIconMode(NOTIFYICONMODE mode);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -649,6 +649,11 @@ Dialog::~Dialog()
|
||||||
unregister_dialog(_hwnd);
|
unregister_dialog(_hwnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LRESULT Dialog::Init(LPCREATESTRUCT pcs)
|
||||||
|
{
|
||||||
|
return TRUE; // set standard focus
|
||||||
|
}
|
||||||
|
|
||||||
int Dialog::DoModal(UINT nid, CREATORFUNC creator, HWND hwndParent)
|
int Dialog::DoModal(UINT nid, CREATORFUNC creator, HWND hwndParent)
|
||||||
{
|
{
|
||||||
Lock lock(GetStaticWindowData()._create_crit_sect); // protect access to s_window_creator and s_new_info
|
Lock lock(GetStaticWindowData()._create_crit_sect); // protect access to s_window_creator and s_new_info
|
||||||
|
@ -656,6 +661,8 @@ int Dialog::DoModal(UINT nid, CREATORFUNC creator, HWND hwndParent)
|
||||||
s_window_creator = creator;
|
s_window_creator = creator;
|
||||||
s_new_info = NULL;
|
s_new_info = NULL;
|
||||||
|
|
||||||
|
///@todo call Window::pretranslate_msg()
|
||||||
|
|
||||||
return DialogBoxParam(g_Globals._hInstance, MAKEINTRESOURCE(nid), hwndParent, DialogProc, 0/*lpParam*/);
|
return DialogBoxParam(g_Globals._hInstance, MAKEINTRESOURCE(nid), hwndParent, DialogProc, 0/*lpParam*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -666,6 +673,8 @@ int Dialog::DoModal(UINT nid, CREATORFUNC_INFO creator, const void* info, HWND h
|
||||||
s_window_creator = (CREATORFUNC) creator;
|
s_window_creator = (CREATORFUNC) creator;
|
||||||
s_new_info = NULL;
|
s_new_info = NULL;
|
||||||
|
|
||||||
|
///@todo call Window::pretranslate_msg()
|
||||||
|
|
||||||
return DialogBoxParam(g_Globals._hInstance, MAKEINTRESOURCE(nid), hwndParent, DialogProc, 0/*lpParam*/);
|
return DialogBoxParam(g_Globals._hInstance, MAKEINTRESOURCE(nid), hwndParent, DialogProc, 0/*lpParam*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -676,7 +685,7 @@ INT_PTR CALLBACK Window::DialogProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM
|
||||||
if (pThis) {
|
if (pThis) {
|
||||||
switch(nmsg) {
|
switch(nmsg) {
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
pThis->Command(LOWORD(wparam), HIWORD(wparam));
|
SetWindowLong(hwnd, DWL_MSGRESULT, (LPARAM)pThis->Command(LOWORD(wparam), HIWORD(wparam)));
|
||||||
return TRUE; // message has been processed
|
return TRUE; // message has been processed
|
||||||
|
|
||||||
case WM_NOTIFY:
|
case WM_NOTIFY:
|
||||||
|
@ -699,6 +708,8 @@ INT_PTR CALLBACK Window::DialogProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM
|
||||||
|
|
||||||
if (pThis)
|
if (pThis)
|
||||||
return pThis->Init(NULL);
|
return pThis->Init(NULL);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE; // message has not been processed
|
return FALSE; // message has not been processed
|
||||||
|
@ -713,10 +724,10 @@ int Dialog::Command(int id, int code)
|
||||||
{
|
{
|
||||||
if (code == BN_CLICKED) {
|
if (code == BN_CLICKED) {
|
||||||
EndDialog(_hwnd, id);
|
EndDialog(_hwnd, id);
|
||||||
return TRUE; // message has been processed
|
return 0; // message has been processed
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -751,8 +762,8 @@ void ResizeManager::HandleSize(int cx, int cy)
|
||||||
const ResizeEntry& e = *it;
|
const ResizeEntry& e = *it;
|
||||||
RECT move = {0};
|
RECT move = {0};
|
||||||
|
|
||||||
if (e._flags & MOVE_LEFT) // Die verschiedenen Transformationsmatrizen in move ließen sich eigentlich
|
if (e._flags & MOVE_LEFT)
|
||||||
move.left += dx; // cachen oder vorausberechnen, da sie nur von _flags und der Größenänderung abhängig sind.
|
move.left += dx;
|
||||||
|
|
||||||
if (e._flags & MOVE_RIGHT)
|
if (e._flags & MOVE_RIGHT)
|
||||||
move.right += dx;
|
move.right += dx;
|
||||||
|
@ -773,15 +784,18 @@ void ResizeManager::HandleSize(int cx, int cy)
|
||||||
|
|
||||||
if (flags != (SWP_NOMOVE|SWP_NOSIZE)) {
|
if (flags != (SWP_NOMOVE|SWP_NOSIZE)) {
|
||||||
HWND hwnd = GetDlgItem(_hwnd, e._id);
|
HWND hwnd = GetDlgItem(_hwnd, e._id);
|
||||||
WindowRect rect(hwnd);
|
|
||||||
ScreenToClient(_hwnd, rect);
|
|
||||||
|
|
||||||
rect.left += move.left;
|
if (hwnd) {
|
||||||
rect.right += move.right;
|
WindowRect rect(hwnd);
|
||||||
rect.top += move.top;
|
ScreenToClient(_hwnd, rect);
|
||||||
rect.bottom += move.bottom;
|
|
||||||
|
|
||||||
hDWP = DeferWindowPos(hDWP, hwnd, 0, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top, flags|SWP_NOACTIVATE|SWP_NOZORDER);
|
rect.left += move.left;
|
||||||
|
rect.right += move.right;
|
||||||
|
rect.top += move.top;
|
||||||
|
rect.bottom += move.bottom;
|
||||||
|
|
||||||
|
hDWP = DeferWindowPos(hDWP, hwnd, 0, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top, flags|SWP_NOACTIVATE|SWP_NOZORDER);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -791,6 +805,7 @@ void ResizeManager::HandleSize(int cx, int cy)
|
||||||
void ResizeManager::Resize(int dx, int dy)
|
void ResizeManager::Resize(int dx, int dy)
|
||||||
{
|
{
|
||||||
::SetWindowPos(_hwnd, 0, 0, 0, _min_wnd_size.cx+dx, _min_wnd_size.cy+dy, SWP_NOMOVE|SWP_NOACTIVATE);
|
::SetWindowPos(_hwnd, 0, 0, 0, _min_wnd_size.cx+dx, _min_wnd_size.cy+dy, SWP_NOMOVE|SWP_NOACTIVATE);
|
||||||
|
MoveVisible(_hwnd);
|
||||||
|
|
||||||
ClientRect clnt_rect(_hwnd);
|
ClientRect clnt_rect(_hwnd);
|
||||||
HandleSize(clnt_rect.right, clnt_rect.bottom);
|
HandleSize(clnt_rect.right, clnt_rect.bottom);
|
||||||
|
@ -1358,7 +1373,7 @@ INT_PTR CALLBACK PropSheetPageDlg::DialogProc(HWND hwnd, UINT nmsg, WPARAM wpara
|
||||||
if (pThis) {
|
if (pThis) {
|
||||||
switch(nmsg) {
|
switch(nmsg) {
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
pThis->Command(LOWORD(wparam), HIWORD(wparam));
|
SetWindowLong(hwnd, DWL_MSGRESULT, (LPARAM)pThis->Command(LOWORD(wparam), HIWORD(wparam)));
|
||||||
return TRUE; // message has been processed
|
return TRUE; // message has been processed
|
||||||
|
|
||||||
case WM_NOTIFY:
|
case WM_NOTIFY:
|
||||||
|
@ -1386,6 +1401,8 @@ INT_PTR CALLBACK PropSheetPageDlg::DialogProc(HWND hwnd, UINT nmsg, WPARAM wpara
|
||||||
if (pThis)
|
if (pThis)
|
||||||
return pThis->Init(NULL);
|
return pThis->Init(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE; // message has not been processed
|
return FALSE; // message has not been processed
|
||||||
|
@ -1395,5 +1412,5 @@ int PropSheetPageDlg::Command(int id, int code)
|
||||||
{
|
{
|
||||||
// override call to EndDialog in Dialog::Command();
|
// override call to EndDialog in Dialog::Command();
|
||||||
|
|
||||||
return FALSE;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -371,6 +371,7 @@ struct Dialog : public Window
|
||||||
static int DoModal(UINT nid, CREATORFUNC_INFO creator, const void* info, HWND hwndParent=0);
|
static int DoModal(UINT nid, CREATORFUNC_INFO creator, const void* info, HWND hwndParent=0);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
LRESULT Init(LPCREATESTRUCT pcs);
|
||||||
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
|
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
|
||||||
int Command(int id, int code);
|
int Command(int id, int code);
|
||||||
};
|
};
|
||||||
|
@ -955,6 +956,20 @@ protected:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
inline LPARAM TreeView_GetItemData(HWND hwndTreeView, HTREEITEM hItem)
|
||||||
|
{
|
||||||
|
TVITEM tvItem;
|
||||||
|
|
||||||
|
tvItem.mask = TVIF_PARAM;
|
||||||
|
tvItem.hItem = hItem;
|
||||||
|
|
||||||
|
if (!TreeView_GetItem(hwndTreeView, &tvItem))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return tvItem.lParam;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
enum {TRAYBUTTON_LEFT=0, TRAYBUTTON_RIGHT, TRAYBUTTON_MIDDLE};
|
enum {TRAYBUTTON_LEFT=0, TRAYBUTTON_RIGHT, TRAYBUTTON_MIDDLE};
|
||||||
|
|
||||||
#define PM_TRAYICON (WM_APP+0x20)
|
#define PM_TRAYICON (WM_APP+0x20)
|
||||||
|
|
Loading…
Reference in a new issue