mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
- start implementing the alt-tab app switching dialog
- requires WH_KEYBOARD_LL hook which is not yet ready - add missing resource constant svn path=/trunk/; revision=35051
This commit is contained in:
parent
7d96358dbf
commit
31d20f1882
16 changed files with 360 additions and 0 deletions
255
reactos/subsystems/win32/csrss/win32csr/appswitch.c
Normal file
255
reactos/subsystems/win32/csrss/win32csr/appswitch.c
Normal file
|
@ -0,0 +1,255 @@
|
||||||
|
#include "w32csr.h"
|
||||||
|
|
||||||
|
typedef struct APPSWITCH_ITEM
|
||||||
|
{
|
||||||
|
HWND hwndDlg;
|
||||||
|
DWORD zPos;
|
||||||
|
HICON hIcon;
|
||||||
|
BOOL bFocus;
|
||||||
|
struct APPSWITCH_ITEM * Next;
|
||||||
|
WCHAR szText[1];
|
||||||
|
}APPSWITCH_ITEM, *PAPPSWITCH_ITEM;
|
||||||
|
|
||||||
|
static PAPPSWITCH_ITEM pRoot = NULL;
|
||||||
|
static DWORD NumOfWindows = 0;
|
||||||
|
static HWND hAppWindowDlg = NULL;
|
||||||
|
static HHOOK hhk = NULL;
|
||||||
|
|
||||||
|
BOOL
|
||||||
|
CALLBACK
|
||||||
|
EnumWindowEnumProc(
|
||||||
|
HWND hwnd,
|
||||||
|
LPARAM lParam
|
||||||
|
)
|
||||||
|
{
|
||||||
|
PAPPSWITCH_ITEM pItem;
|
||||||
|
UINT Length;
|
||||||
|
HICON hIcon;
|
||||||
|
PAPPSWITCH_ITEM pCurItem;
|
||||||
|
DWORD dwPid;
|
||||||
|
HANDLE hProcess;
|
||||||
|
WCHAR szFileName[MAX_PATH] = {0};
|
||||||
|
|
||||||
|
/* check if the enumerated window is visible */
|
||||||
|
if (!IsWindowVisible(hwnd))
|
||||||
|
return TRUE;
|
||||||
|
/* get window icon */
|
||||||
|
hIcon = (HICON)SendMessage(hwnd, WM_GETICON, ICON_BIG, 0);
|
||||||
|
if (!hIcon)
|
||||||
|
{
|
||||||
|
GetWindowThreadProcessId(hwnd, &dwPid);
|
||||||
|
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, dwPid);
|
||||||
|
if (hProcess)
|
||||||
|
{
|
||||||
|
if (GetModuleFileNameExW(hProcess, NULL, szFileName, MAX_PATH))
|
||||||
|
{
|
||||||
|
szFileName[MAX_PATH-1] = L'\0';
|
||||||
|
ExtractIconExW(szFileName, 0, &hIcon, NULL, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* icons from WM_GETICON need to be copied */
|
||||||
|
hIcon = CopyIcon(hIcon);
|
||||||
|
}
|
||||||
|
/* get the text length */
|
||||||
|
Length = SendMessageW(hwnd, WM_GETTEXTLENGTH, 0, 0);
|
||||||
|
/* allocate item structure for it */
|
||||||
|
pItem = (PAPPSWITCH_ITEM)HeapAlloc(Win32CsrApiHeap, HEAP_ZERO_MEMORY, sizeof(APPSWITCH_ITEM) + Length * sizeof(WCHAR));
|
||||||
|
if (!pItem)
|
||||||
|
return TRUE;
|
||||||
|
if (Length)
|
||||||
|
{
|
||||||
|
/* retrieve the window text when available */
|
||||||
|
SendMessageW(hwnd, WM_GETTEXT, Length+1, (LPARAM)pItem->szText);
|
||||||
|
}
|
||||||
|
/* copy the window icon */
|
||||||
|
pItem->hIcon = hIcon;
|
||||||
|
/* store window handle */
|
||||||
|
pItem->hwndDlg = hwnd;
|
||||||
|
/* is the window the active window */
|
||||||
|
if (GetActiveWindow() == hwnd)
|
||||||
|
pItem->bFocus = TRUE;
|
||||||
|
|
||||||
|
if (!pRoot)
|
||||||
|
{
|
||||||
|
/* first item */
|
||||||
|
pRoot = pItem;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* enumerate the last item */
|
||||||
|
pCurItem = pRoot;
|
||||||
|
while(pCurItem->Next)
|
||||||
|
pCurItem = pCurItem->Next;
|
||||||
|
|
||||||
|
/* insert it into the list */
|
||||||
|
pCurItem->Next = pItem;
|
||||||
|
NumOfWindows++;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
EnumerateAppWindows(HDESK hDesk, HWND hwndDlg)
|
||||||
|
{
|
||||||
|
/* initialize defaults */
|
||||||
|
pRoot = NULL;
|
||||||
|
NumOfWindows = 0;
|
||||||
|
hAppWindowDlg = hwndDlg;
|
||||||
|
/* enumerate all windows */
|
||||||
|
EnumDesktopWindows(hDesk, EnumWindowEnumProc, (LPARAM)NULL);
|
||||||
|
if (NumOfWindows > 7)
|
||||||
|
{
|
||||||
|
/* FIXME resize window */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
MarkNextEntryAsActive()
|
||||||
|
{
|
||||||
|
PAPPSWITCH_ITEM pItem;
|
||||||
|
|
||||||
|
pItem = pRoot;
|
||||||
|
if (!pRoot)
|
||||||
|
return;
|
||||||
|
|
||||||
|
while(pItem)
|
||||||
|
{
|
||||||
|
if (pItem->bFocus)
|
||||||
|
{
|
||||||
|
pItem->bFocus = FALSE;
|
||||||
|
if (pItem->Next)
|
||||||
|
pItem->Next->bFocus = TRUE;
|
||||||
|
else
|
||||||
|
pRoot->bFocus = TRUE;
|
||||||
|
}
|
||||||
|
pItem = pItem->Next;
|
||||||
|
}
|
||||||
|
|
||||||
|
InvalidateRgn(hAppWindowDlg, NULL, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LRESULT
|
||||||
|
CALLBACK
|
||||||
|
KeyboardHookProc(
|
||||||
|
int nCode,
|
||||||
|
WPARAM wParam,
|
||||||
|
LPARAM lParam
|
||||||
|
)
|
||||||
|
{
|
||||||
|
PKBDLLHOOKSTRUCT hk = (PKBDLLHOOKSTRUCT) lParam;
|
||||||
|
|
||||||
|
if (wParam == WM_SYSKEYUP)
|
||||||
|
{
|
||||||
|
/* is tab key pressed */
|
||||||
|
if (hk->vkCode == VK_TAB)
|
||||||
|
{
|
||||||
|
if (hAppWindowDlg == NULL)
|
||||||
|
{
|
||||||
|
/* FIXME
|
||||||
|
* launch window
|
||||||
|
*/
|
||||||
|
DPRINT1("launch alt-tab window\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MarkNextEntryAsActive();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return CallNextHookEx(hhk, nCode, wParam, lParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
PaintAppWindows(HWND hwndDlg, HDC hDc)
|
||||||
|
{
|
||||||
|
DWORD dwIndex, X, Y;
|
||||||
|
PAPPSWITCH_ITEM pCurItem;
|
||||||
|
RECT Rect;
|
||||||
|
DWORD XSize, YSize, XMax;
|
||||||
|
HBRUSH hBrush;
|
||||||
|
|
||||||
|
X = 10;
|
||||||
|
Y = 10;
|
||||||
|
XSize = GetSystemMetrics(SM_CXICON);
|
||||||
|
YSize = GetSystemMetrics(SM_CYICON);
|
||||||
|
XMax = (XSize+(XSize/2)) * 7 + X;
|
||||||
|
pCurItem = pRoot;
|
||||||
|
|
||||||
|
for (dwIndex = 0; dwIndex < NumOfWindows; dwIndex++)
|
||||||
|
{
|
||||||
|
if (X >= XMax)
|
||||||
|
{
|
||||||
|
X = 10;
|
||||||
|
Y += YSize + (YSize/2);
|
||||||
|
}
|
||||||
|
if (pCurItem->bFocus)
|
||||||
|
{
|
||||||
|
hBrush = CreateSolidBrush(RGB(30, 30, 255));
|
||||||
|
SetRect(&Rect, X-5, Y-5, X + XSize + 5, Y + YSize + 5);
|
||||||
|
FillRect(hDc, &Rect, hBrush);
|
||||||
|
DeleteObject((HGDIOBJ)hBrush);
|
||||||
|
SendDlgItemMessageW(hwndDlg, IDC_STATIC_CUR_APP, WM_SETTEXT, 0, (LPARAM)pCurItem->szText);
|
||||||
|
}
|
||||||
|
|
||||||
|
DrawIcon(hDc, X, Y, pCurItem->hIcon);
|
||||||
|
pCurItem = pCurItem->Next;
|
||||||
|
X += XSize +(XSize/2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
VOID
|
||||||
|
DestroyAppWindows()
|
||||||
|
{
|
||||||
|
PAPPSWITCH_ITEM pCurItem, pNextItem;
|
||||||
|
|
||||||
|
pCurItem = pRoot;
|
||||||
|
while(pCurItem)
|
||||||
|
{
|
||||||
|
pNextItem = pCurItem->Next;
|
||||||
|
DestroyIcon(pCurItem->hIcon);
|
||||||
|
HeapFree(Win32CsrApiHeap, 0, pCurItem);
|
||||||
|
pCurItem = pNextItem;
|
||||||
|
}
|
||||||
|
pRoot = NULL;
|
||||||
|
hAppWindowDlg = NULL;
|
||||||
|
NumOfWindows = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
INT_PTR
|
||||||
|
CALLBACK
|
||||||
|
SwitchWindowDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
PAINTSTRUCT Paint;
|
||||||
|
HDESK hInput;
|
||||||
|
|
||||||
|
switch (message)
|
||||||
|
{
|
||||||
|
case WM_INITDIALOG:
|
||||||
|
hInput = OpenInputDesktop(0,0, GENERIC_ALL);
|
||||||
|
if (hInput)
|
||||||
|
{
|
||||||
|
EnumerateAppWindows(hInput, hwndDlg);
|
||||||
|
CloseDesktop(hInput);
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
case WM_PAINT:
|
||||||
|
BeginPaint(hwndDlg, &Paint);
|
||||||
|
PaintAppWindows(hwndDlg, Paint.hdc);
|
||||||
|
EndPaint(hwndDlg, &Paint);
|
||||||
|
break;
|
||||||
|
case WM_DESTROY:
|
||||||
|
DestroyAppWindows();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
STDCALL
|
||||||
|
InitializeAppSwitchHook()
|
||||||
|
{
|
||||||
|
hhk = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardHookProc, NULL, 0);
|
||||||
|
DPRINT("InitializeAppSwitchHook hhk %p\n", hhk);
|
||||||
|
}
|
|
@ -16,6 +16,7 @@
|
||||||
/* Not defined in any header file */
|
/* Not defined in any header file */
|
||||||
extern VOID STDCALL PrivateCsrssManualGuiCheck(LONG Check);
|
extern VOID STDCALL PrivateCsrssManualGuiCheck(LONG Check);
|
||||||
extern VOID STDCALL PrivateCsrssInitialized();
|
extern VOID STDCALL PrivateCsrssInitialized();
|
||||||
|
extern VOID STDCALL InitializeAppSwitchHook();
|
||||||
|
|
||||||
/* GLOBALS *******************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
|
@ -95,6 +96,7 @@ DllMain(HANDLE hDll,
|
||||||
if (DLL_PROCESS_ATTACH == dwReason)
|
if (DLL_PROCESS_ATTACH == dwReason)
|
||||||
{
|
{
|
||||||
Win32CsrDllHandle = hDll;
|
Win32CsrDllHandle = hDll;
|
||||||
|
InitializeAppSwitchHook();
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -33,6 +33,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "Îáðàáîòêà"
|
IDS_EDIT "Îáðàáîòêà"
|
||||||
|
|
|
@ -27,6 +27,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "Bearbeiten"
|
IDS_EDIT "Bearbeiten"
|
||||||
|
|
|
@ -27,6 +27,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "Åðåîåñãáóßá"
|
IDS_EDIT "Åðåîåñãáóßá"
|
||||||
|
|
|
@ -27,6 +27,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "Edit"
|
IDS_EDIT "Edit"
|
||||||
|
|
|
@ -32,6 +32,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "Editar"
|
IDS_EDIT "Editar"
|
||||||
|
|
|
@ -27,6 +27,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
/* Fixme : Translation could be really improved, with context
|
/* Fixme : Translation could be really improved, with context
|
||||||
La traduction pourrait réellement être améliorée grâce au contexte */
|
La traduction pourrait réellement être améliorée grâce au contexte */
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
|
|
|
@ -27,6 +27,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "Edit"
|
IDS_EDIT "Edit"
|
||||||
|
|
|
@ -36,6 +36,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "Modifica"
|
IDS_EDIT "Modifica"
|
||||||
|
|
|
@ -32,6 +32,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "Edytuj"
|
IDS_EDIT "Edytuj"
|
||||||
|
|
|
@ -27,6 +27,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "如戾龛螯"
|
IDS_EDIT "如戾龛螯"
|
||||||
|
|
|
@ -31,6 +31,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "Upravi<76>"
|
IDS_EDIT "Upravi<76>"
|
||||||
|
|
|
@ -35,6 +35,14 @@ BEGIN
|
||||||
IDC_STATIC,7,53,178,26
|
IDC_STATIC,7,53,178,26
|
||||||
END
|
END
|
||||||
|
|
||||||
|
IDD_SWITCH_APP DIALOGEX 90, 90, 265, 170
|
||||||
|
STYLE DS_SYSMODAL | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
|
||||||
|
EXSTYLE WS_EX_TOPMOST | WS_EX_WINDOWEDGE
|
||||||
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
|
BEGIN
|
||||||
|
LTEXT "",IDC_STATIC_CUR_APP,39,139,204,16,SS_SUNKEN,WS_EX_STATICEDGE
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDS_EDIT "Ðåäàãóâàòè"
|
IDS_EDIT "Ðåäàãóâàòè"
|
||||||
|
|
|
@ -10,10 +10,14 @@
|
||||||
#define WIN32CSR_RESOURCE_H_INCLUDED
|
#define WIN32CSR_RESOURCE_H_INCLUDED
|
||||||
|
|
||||||
#define IDD_END_NOW 10
|
#define IDD_END_NOW 10
|
||||||
|
#define IDD_NOT_RESPONDING 11
|
||||||
|
#define IDD_SWITCH_APP 12
|
||||||
|
|
||||||
#define IDC_STATIC 100
|
#define IDC_STATIC 100
|
||||||
#define IDC_PROGRESS 101
|
#define IDC_PROGRESS 101
|
||||||
#define IDC_END_NOW 102
|
#define IDC_END_NOW 102
|
||||||
|
#define IDC_STATIC_CUR_APP 103
|
||||||
|
|
||||||
|
|
||||||
#define ID_SYSTEM_EDIT_MARK 1001
|
#define ID_SYSTEM_EDIT_MARK 1001
|
||||||
#define ID_SYSTEM_EDIT_COPY 1002
|
#define ID_SYSTEM_EDIT_COPY 1002
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
<library>advapi32</library>
|
<library>advapi32</library>
|
||||||
<library>psapi</library>
|
<library>psapi</library>
|
||||||
<library>msvcrt</library>
|
<library>msvcrt</library>
|
||||||
|
<library>psapi</library>
|
||||||
|
<library>shell32</library>
|
||||||
<pch>w32csr.h</pch>
|
<pch>w32csr.h</pch>
|
||||||
<file>alias.c</file>
|
<file>alias.c</file>
|
||||||
<file>conio.c</file>
|
<file>conio.c</file>
|
||||||
|
@ -24,5 +26,6 @@
|
||||||
<file>exitros.c</file>
|
<file>exitros.c</file>
|
||||||
<file>guiconsole.c</file>
|
<file>guiconsole.c</file>
|
||||||
<file>tuiconsole.c</file>
|
<file>tuiconsole.c</file>
|
||||||
|
<file>appswitch.c</file>
|
||||||
<file>win32csr.rc</file>
|
<file>win32csr.rc</file>
|
||||||
</module>
|
</module>
|
||||||
|
|
Loading…
Reference in a new issue