- Fix all bugs that keep MMC from starting and terminating properly.
- Implement an MDI client window.
- Add menuitem "File/New" in order to create a new console window (MDI child).
- Add a "large" menu that is used when console windows are visible.

svn path=/trunk/; revision=59823
This commit is contained in:
Eric Kohl 2013-08-25 21:43:46 +00:00
parent 360451830b
commit abedd40dd8
27 changed files with 853 additions and 223 deletions

View file

@ -22,7 +22,6 @@
static const TCHAR szMMCMainFrame[] = TEXT("MMCMainFrame");
static const TCHAR szMMCChildFrm[] = TEXT("MMCChildFrm");
static LONG MainFrameWndCount = 0;
static ULONG NewConsoleCount = 0;
static LPTSTR
@ -41,11 +40,16 @@ CreateNewConsoleTitle(VOID)
return lpTitle;
}
typedef struct _CONSOLE_MAINFRAME_WND
{
HWND hwnd;
HWND hwndMDIClient;
LPCTSTR lpConsoleTitle;
HMENU hMenuConsoleRoot;
HMENU hMenuConsoleSmall;
HMENU hMenuConsoleLarge;
INT nConsoleCount;
union
{
DWORD Flags;
@ -56,6 +60,173 @@ typedef struct _CONSOLE_MAINFRAME_WND
};
} CONSOLE_MAINFRAME_WND, *PCONSOLE_MAINFRAME_WND;
HWND
CreateNewMDIChild(PCONSOLE_MAINFRAME_WND Info,
HWND hwndMDIClient)
{
MDICREATESTRUCT mcs;
HWND hChild;
mcs.szTitle = CreateNewConsoleTitle();
mcs.szClass = szMMCChildFrm;
mcs.hOwner = GetModuleHandle(NULL);
mcs.x = mcs.cx = CW_USEDEFAULT;
mcs.y = mcs.cy = CW_USEDEFAULT;
mcs.style = MDIS_ALLCHILDSTYLES;
hChild = (HWND)SendMessage(hwndMDIClient, WM_MDICREATE, 0, (LONG)&mcs);
if (hChild)
{
Info->nConsoleCount++;
}
return hChild;
}
static LRESULT
FrameOnCreate(HWND hwnd,
LPARAM lParam)
{
PCONSOLE_MAINFRAME_WND Info;
CLIENTCREATESTRUCT ccs;
LPCTSTR lpFileName = (LPCTSTR)(((LPCREATESTRUCT)lParam)->lpCreateParams);
Info = HeapAlloc(hAppHeap,
0,
sizeof(CONSOLE_MAINFRAME_WND));
if (Info == NULL)
return -1;
ZeroMemory(Info,
sizeof(CONSOLE_MAINFRAME_WND));
Info->hwnd = hwnd;
SetWindowLongPtr(hwnd,
0,
(LONG_PTR)Info);
Info->hMenuConsoleSmall = LoadMenu(hAppInstance,
MAKEINTRESOURCE(IDM_CONSOLE_SMALL));
Info->hMenuConsoleLarge = LoadMenu(hAppInstance,
MAKEINTRESOURCE(IDM_CONSOLE_LARGE));
if (lpFileName == NULL)
{
/* FIXME */
Info->AppAuthorMode = TRUE;
Info->lpConsoleTitle = TEXT("ReactOS Management Console");
}
else
{
Info->AppAuthorMode = TRUE;
Info->lpConsoleTitle = CreateNewConsoleTitle();
}
SetMenu(Info->hwnd,
Info->hMenuConsoleSmall);
SetWindowText(Info->hwnd,
Info->lpConsoleTitle);
ccs.hWindowMenu = GetSubMenu(Info->hMenuConsoleLarge, 1);
ccs.idFirstChild = IDM_MDI_FIRSTCHILD;
/* Create the MDI client window */
hwndMDIClient = CreateWindowEx(WS_EX_CLIENTEDGE,
L"MDICLIENT",
(LPCTSTR)NULL,
WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL | WS_VISIBLE | WS_BORDER,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
hwnd,
(HMENU)0xCAC,
hAppInstance,
(LPVOID)&ccs);
ShowWindow(Info->hwndMDIClient, SW_SHOW);
return 0;
}
static VOID
FrameOnCommand(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
PCONSOLE_MAINFRAME_WND Info;
HWND hChild;
Info = (PCONSOLE_MAINFRAME_WND)GetWindowLongPtr(hwnd, 0);
switch (LOWORD(wParam))
{
case IDM_FILE_NEW:
CreateNewMDIChild(Info, hwndMDIClient);
SetMenu(Info->hwnd,
Info->hMenuConsoleLarge);
break;
case IDM_FILE_EXIT:
PostMessage(hwnd, WM_CLOSE, 0, 0);
break;
default:
if (LOWORD(wParam) >= IDM_MDI_FIRSTCHILD)
{
DefFrameProc(hwnd, hwndMDIClient, uMsg, wParam, lParam);
}
else
{
hChild = (HWND)SendMessage(hwndMDIClient, WM_MDIGETACTIVE, 0, 0);
if (hChild)
{
SendMessage(hChild, WM_COMMAND, wParam, lParam);
}
}
break;
}
}
static VOID
FrameOnSize(HWND hMainWnd,
WORD cx,
WORD cy)
{
RECT rcClient; //, rcTool, rcStatus;
// int lvHeight, iToolHeight, iStatusHeight;
/* Size toolbar and get height */
// SendMessage(Info->hTool, TB_AUTOSIZE, 0, 0);
// GetWindowRect(Info->hTool, &rcTool);
// iToolHeight = rcTool.bottom - rcTool.top;
/* Size status bar and get height */
// SendMessage(Info->hStatus, WM_SIZE, 0, 0);
// GetWindowRect(Info->hStatus, &rcStatus);
// iStatusHeight = rcStatus.bottom - rcStatus.top;
/* Calculate remaining height and size list view */
GetClientRect(hMainWnd, &rcClient);
// lvHeight = rcClient.bottom - iToolHeight - iStatusHeight;
SetWindowPos(hwndMDIClient, //Info->hTreeView,
NULL,
0,
0, //iToolHeight,
rcClient.right,
rcClient.bottom, //lvHeight,
SWP_NOZORDER);
}
static LRESULT CALLBACK
ConsoleMainFrameWndProc(IN HWND hwnd,
IN UINT uMsg,
@ -63,112 +234,80 @@ ConsoleMainFrameWndProc(IN HWND hwnd,
IN LPARAM lParam)
{
PCONSOLE_MAINFRAME_WND Info;
LRESULT Ret = FALSE;
Info = (PCONSOLE_MAINFRAME_WND)GetWindowLongPtr(hwnd,
0);
if (Info != NULL || uMsg == WM_NCCREATE)
switch (uMsg)
{
switch (uMsg)
{
case WM_COMMAND:
case WM_CREATE:
return FrameOnCreate(hwnd,
lParam);
case WM_COMMAND:
FrameOnCommand(hwnd,
uMsg,
wParam,
lParam);
break;
case WM_SIZE:
FrameOnSize(hwnd,
LOWORD(lParam),
HIWORD(lParam));
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
if (Info != NULL)
{
switch (LOWORD(wParam))
{
case ID_FILE_EXIT:
PostMessage(hwnd,
WM_CLOSE,
0,
0);
break;
}
break;
}
case WM_NCCREATE:
{
MainFrameWndCount++;
Info = HeapAlloc(hAppHeap,
0,
sizeof(*Info));
if (Info != NULL)
{
ZeroMemory(Info,
sizeof(*Info));
Info->hwnd = hwnd;
SetWindowLongPtr(hwnd,
0,
(LONG_PTR)Info);
Info->hMenuConsoleRoot = LoadMenu(hAppInstance,
MAKEINTRESOURCE(IDM_CONSOLEROOT));
Ret = TRUE;
}
break;
}
case WM_CREATE:
{
LPCTSTR lpFileName = (LPCTSTR)(((LPCREATESTRUCT)lParam)->lpCreateParams);
if (lpFileName != NULL)
{
/* FIXME */
}
else
{
Info->AppAuthorMode = TRUE;
Info->lpConsoleTitle = CreateNewConsoleTitle();
}
SetWindowText(Info->hwnd,
Info->lpConsoleTitle);
break;
}
case WM_NCDESTROY:
SetMenu(Info->hwnd,
NULL);
if (Info->hMenuConsoleRoot != NULL)
if (Info->hMenuConsoleSmall != NULL)
{
DestroyMenu(Info->hMenuConsoleRoot);
Info->hMenuConsoleRoot = NULL;
DestroyMenu(Info->hMenuConsoleSmall);
Info->hMenuConsoleSmall = NULL;
}
if (Info->hMenuConsoleLarge != NULL)
{
DestroyMenu(Info->hMenuConsoleLarge);
Info->hMenuConsoleLarge = NULL;
}
HeapFree(hAppHeap,
0,
Info);
}
if (--MainFrameWndCount == 0)
PostQuitMessage(0);
break;
PostQuitMessage(0);
break;
case WM_USER_CLOSE_CHILD:
Info->nConsoleCount--;
if (Info->nConsoleCount == 0)
{
SetMenu(Info->hwnd,
Info->hMenuConsoleSmall);
}
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
default:
goto HandleDefaultMsg;
}
}
else
{
HandleDefaultMsg:
Ret = DefWindowProc(hwnd,
uMsg,
wParam,
lParam);
default:
return DefFrameProc(hwnd,
hwndMDIClient,
uMsg,
wParam,
lParam);
}
return Ret;
return 0;
}
typedef struct _CONSOLE_CHILDFRM_WND
{
HWND hwnd;
@ -182,65 +321,52 @@ ConsoleChildFrmProc(IN HWND hwnd,
IN LPARAM lParam)
{
PCONSOLE_CHILDFRM_WND Info;
LRESULT Ret = FALSE;
Info = (PCONSOLE_CHILDFRM_WND)GetWindowLongPtr(hwnd,
0);
if (Info != NULL || uMsg == WM_NCCREATE)
switch (uMsg)
{
switch (uMsg)
{
case WM_NCCREATE:
Info = HeapAlloc(hAppHeap,
case WM_CREATE:
Info = HeapAlloc(hAppHeap,
0,
sizeof(CONSOLE_CHILDFRM_WND));
if (Info != NULL)
{
ZeroMemory(Info,
sizeof(CONSOLE_CHILDFRM_WND));
Info->hwnd = hwnd;
SetWindowLongPtr(hwnd,
0,
sizeof(*Info));
if (Info != NULL)
{
ZeroMemory(Info,
sizeof(*Info));
(LONG_PTR)Info);
}
break;
Info->hwnd = hwnd;
case WM_DESTROY:
if (Info != NULL)
HeapFree(hAppHeap, 0, Info);
SetWindowLongPtr(hwnd,
0,
(LONG_PTR)Info);
PostMessage(hwndMainConsole, WM_USER_CLOSE_CHILD, 0, 0);
break;
Ret = TRUE;
}
break;
case WM_NCDESTROY:
HeapFree(hAppHeap,
0,
Info);
break;
default:
goto HandleDefaultMsg;
}
}
else
{
HandleDefaultMsg:
Ret = DefWindowProc(hwnd,
uMsg,
wParam,
lParam);
default:
return DefMDIChildProc(hwnd, uMsg, wParam, lParam);
}
return Ret;
return 0;
}
BOOL
RegisterMMCWndClasses(VOID)
{
WNDCLASS wc;
WNDCLASSEX wc = {0};
BOOL Ret;
/* Register the MMCMainFrame window class */
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = ConsoleMainFrameWndProc;
wc.cbClsExtra = 0;
@ -254,15 +380,25 @@ RegisterMMCWndClasses(VOID)
wc.lpszMenuName = NULL;
wc.lpszClassName = szMMCMainFrame;
Ret = (RegisterClass(&wc) != (ATOM)0);
Ret = (RegisterClassEx(&wc) != (ATOM)0);
if (Ret)
{
/* Register the MMCChildFrm window class */
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = ConsoleChildFrmProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = sizeof(PCONSOLE_CHILDFRM_WND);
wc.hInstance = hAppInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_3DFACE+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = szMMCChildFrm;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
Ret = (RegisterClass(&wc) != (ATOM)0);
Ret = (RegisterClassEx(&wc) != (ATOM)0);
if (!Ret)
{
UnregisterClass(szMMCMainFrame,
@ -283,7 +419,8 @@ UnregisterMMCWndClasses(VOID)
}
HWND
CreateConsoleWindow(IN LPCTSTR lpFileName OPTIONAL)
CreateConsoleWindow(IN LPCTSTR lpFileName OPTIONAL,
int nCmdShow)
{
HWND hWndConsole;
LONG_PTR FileName = (LONG_PTR)lpFileName;
@ -291,7 +428,7 @@ CreateConsoleWindow(IN LPCTSTR lpFileName OPTIONAL)
hWndConsole = CreateWindowEx(WS_EX_WINDOWEDGE,
szMMCMainFrame,
NULL,
WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS,
WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
@ -303,8 +440,7 @@ CreateConsoleWindow(IN LPCTSTR lpFileName OPTIONAL)
if (hWndConsole != NULL)
{
ShowWindow(hWndConsole,
SW_SHOWDEFAULT);
ShowWindow(hWndConsole, nCmdShow);
}
return hWndConsole;

View file

@ -1,16 +1,37 @@
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Из&ход\tAlt+F4", ID_FILE_EXIT
MENUITEM "Из&ход\tAlt+F4", IDM_FILE_EXIT
END
POPUP "Помо&щ"
BEGIN
MENUITEM "&За Прибора за управление на РеактОС...", ID_HELP_ABOUT
MENUITEM "&За Прибора за управление на РеактОС...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Из&ход\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "Помо&щ"
BEGIN
MENUITEM "&За Прибора за управление на РеактОС...", IDM_HELP_ABOUT
END
END

View file

@ -1,16 +1,37 @@
LANGUAGE LANG_CATALAN, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Fitxer"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Sortida\tAlt+F4", ID_FILE_EXIT
MENUITEM "&Sortida\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Ajuda"
BEGIN
MENUITEM "&En quant a Consola d'administracio de ReactOS...", ID_HELP_ABOUT
MENUITEM "&En quant a Consola d'administracio de ReactOS...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Fitxer"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Sortida\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Ajuda"
BEGIN
MENUITEM "&En quant a Consola d'administracio de ReactOS...", IDM_HELP_ABOUT
END
END

View file

@ -5,17 +5,38 @@
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Uk&ončit\tAlt+F4", ID_FILE_EXIT
MENUITEM "Uk&ončit\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Nápověda"
BEGIN
MENUITEM "&O konzoli řízení systému ReactOS...", ID_HELP_ABOUT
MENUITEM "&O konzoli řízení systému ReactOS...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Uk&ončit\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Nápověda"
BEGIN
MENUITEM "&O konzoli řízení systému ReactOS...", IDM_HELP_ABOUT
END
END

View file

@ -1,19 +1,41 @@
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Datei"
BEGIN
MENUITEM "Neu\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "B&eenden\tAlt+F4", ID_FILE_EXIT
MENUITEM "B&eenden\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Hilfe"
BEGIN
MENUITEM "Ü&ber ReactOS Management Console...", ID_HELP_ABOUT
MENUITEM "Ü&ber ReactOS Management Console...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Datei"
BEGIN
MENUITEM "Neu\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "B&eenden\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Fenster"
BEGIN
MENUITEM "Liste", IDM_WINDOWS_LIST
END
POPUP "&Hilfe"
BEGIN
MENUITEM "Ü&ber ReactOS Management Console...", IDM_HELP_ABOUT
END
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_APPTITLE "ReactOS Management Console"

View file

@ -1,16 +1,37 @@
LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Αρχείο"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Έ&ξοδος\tAlt+F4", ID_FILE_EXIT
MENUITEM "Έ&ξοδος\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Βοήθεια"
BEGIN
MENUITEM "&Σχετικά με την Κονσόλα Διαχείρισης του ReactOS...", ID_HELP_ABOUT
MENUITEM "&Σχετικά με την Κονσόλα Διαχείρισης του ReactOS...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Αρχείο"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Έ&ξοδος\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Βοήθεια"
BEGIN
MENUITEM "&Σχετικά με την Κονσόλα Διαχείρισης του ReactOS...", IDM_HELP_ABOUT
END
END

View file

@ -1,16 +1,37 @@
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+F4", ID_FILE_EXIT
MENUITEM "E&xit\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Help"
BEGIN
MENUITEM "&About ReactOS Management Console...", ID_HELP_ABOUT
MENUITEM "&About ReactOS Management Console...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Help"
BEGIN
MENUITEM "&About ReactOS Management Console...", IDM_HELP_ABOUT
END
END

View file

@ -5,17 +5,38 @@
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Archivo"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Sa&lir\tAlt+F4", ID_FILE_EXIT
MENUITEM "Sa&lir\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Ayuda"
BEGIN
MENUITEM "&Acerca de la Consola de Administración de ReactOS...", ID_HELP_ABOUT
MENUITEM "&Acerca de la Consola de Administración de ReactOS...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Archivo"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Sa&lir\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Ayuda"
BEGIN
MENUITEM "&Acerca de la Consola de Administración de ReactOS...", IDM_HELP_ABOUT
END
END

View file

@ -1,16 +1,37 @@
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Fichier"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Quitter\tAlt+F4", ID_FILE_EXIT
MENUITEM "Quitter\tAlt+F4", IDM_FILE_EXIT
END
POPUP "Aide"
BEGIN
MENUITEM "À propos de l&a Console de Gestion ReactOS...", ID_HELP_ABOUT
MENUITEM "À propos de l&a Console de Gestion ReactOS...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Fichier"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Quitter\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "Aide"
BEGIN
MENUITEM "À propos de l&a Console de Gestion ReactOS...", IDM_HELP_ABOUT
END
END

View file

@ -1,16 +1,37 @@
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&קובץ"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&יציאה\tAlt+F4", ID_FILE_EXIT
MENUITEM "&יציאה\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&עזרה"
BEGIN
MENUITEM "&אודות ReactOS Management Console...", ID_HELP_ABOUT
MENUITEM "&אודות ReactOS Management Console...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&קובץ"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&יציאה\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&עזרה"
BEGIN
MENUITEM "&אודות ReactOS Management Console...", IDM_HELP_ABOUT
END
END

View file

@ -1,16 +1,37 @@
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "E&sci\tAlt+F4", ID_FILE_EXIT
MENUITEM "E&sci\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Aiuto"
BEGIN
MENUITEM "&Informazioni su ReactOS Management Console...", ID_HELP_ABOUT
MENUITEM "&Informazioni su ReactOS Management Console...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "E&sci\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Aiuto"
BEGIN
MENUITEM "&Informazioni su ReactOS Management Console...", IDM_HELP_ABOUT
END
END

View file

@ -4,17 +4,38 @@
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "파일(&F)"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "종료(&E)\tAlt+F4", ID_FILE_EXIT
MENUITEM "종료(&E)\tAlt+F4", IDM_FILE_EXIT
END
POPUP "도움말(&H)"
BEGIN
MENUITEM "ReactOS 관리 콘솔에 대하여...(&A)", ID_HELP_ABOUT
MENUITEM "ReactOS 관리 콘솔에 대하여...(&A)", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "파일(&F)"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "종료(&E)\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "도움말(&H)"
BEGIN
MENUITEM "ReactOS 관리 콘솔에 대하여...(&A)", IDM_HELP_ABOUT
END
END

View file

@ -2,17 +2,38 @@
LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Byla"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Baigti\tAlt+F4", ID_FILE_EXIT
MENUITEM "&Baigti\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Pagalba"
BEGIN
MENUITEM "&Apie ReactOS Valdymo Pultą...", ID_HELP_ABOUT
MENUITEM "&Apie ReactOS Valdymo Pultą...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Byla"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Baigti\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Pagalba"
BEGIN
MENUITEM "&Apie ReactOS Valdymo Pultą...", IDM_HELP_ABOUT
END
END

View file

@ -1,16 +1,37 @@
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Fil"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Avslutt\tAlt+F4", ID_FILE_EXIT
MENUITEM "&Avslutt\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Hjelp"
BEGIN
MENUITEM "&Om ReactOS Management Console...", ID_HELP_ABOUT
MENUITEM "&Om ReactOS Management Console...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Fil"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Avslutt\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Hjelp"
BEGIN
MENUITEM "&Om ReactOS Management Console...", IDM_HELP_ABOUT
END
END

View file

@ -7,17 +7,38 @@
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "Pl&ik"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Za&kończ\tAlt+F4", ID_FILE_EXIT
MENUITEM "Za&kończ\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Pomoc"
BEGIN
MENUITEM "Konsola Zarządzania ReactOS - i&nformacje...", ID_HELP_ABOUT
MENUITEM "Konsola Zarządzania ReactOS - i&nformacje...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "Pl&ik"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Za&kończ\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Pomoc"
BEGIN
MENUITEM "Konsola Zarządzania ReactOS - i&nformacje...", IDM_HELP_ABOUT
END
END

View file

@ -1,16 +1,37 @@
LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Arquivo"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Sai&r\tAlt+F4", ID_FILE_EXIT
MENUITEM "Sai&r\tAlt+F4", IDM_FILE_EXIT
END
POPUP "Aj&uda"
BEGIN
MENUITEM "&Sobre o Console de gerenciamento ReactOS...", ID_HELP_ABOUT
MENUITEM "&Sobre o Console de gerenciamento ReactOS...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Arquivo"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "Sai&r\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "Aj&uda"
BEGIN
MENUITEM "&Sobre o Console de gerenciamento ReactOS...", IDM_HELP_ABOUT
END
END

View file

@ -7,17 +7,38 @@
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Fișier"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "I&eșire\tAlt+F4", ID_FILE_EXIT
MENUITEM "I&eșire\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&?"
BEGIN
MENUITEM "&Despre…", ID_HELP_ABOUT
MENUITEM "&Despre…", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Fișier"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "I&eșire\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&?"
BEGIN
MENUITEM "&Despre…", IDM_HELP_ABOUT
END
END

View file

@ -2,17 +2,38 @@
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Выход\tAlt+F4", ID_FILE_EXIT
MENUITEM "&Выход\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Справка"
BEGIN
MENUITEM "&О программе...", ID_HELP_ABOUT
MENUITEM "&О программе...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Выход\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Справка"
BEGIN
MENUITEM "&О программе...", IDM_HELP_ABOUT
END
END

View file

@ -8,17 +8,38 @@
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Súbor"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Skončiť\tAlt+F4", ID_FILE_EXIT
MENUITEM "&Skončiť\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Pomocník"
BEGIN
MENUITEM "Č&o je Konzola na správu systému ReactOS", ID_HELP_ABOUT
MENUITEM "Č&o je Konzola na správu systému ReactOS", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Súbor"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Skončiť\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Pomocník"
BEGIN
MENUITEM "Č&o je Konzola na správu systému ReactOS", IDM_HELP_ABOUT
END
END

View file

@ -7,17 +7,38 @@
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Arkiv"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Avsluta\tAlt+F4", ID_FILE_EXIT
MENUITEM "&Avsluta\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Hjälp"
BEGIN
MENUITEM "&Om ReactOS Management Console...", ID_HELP_ABOUT
MENUITEM "&Om ReactOS Management Console...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Arkiv"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Avsluta\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Hjälp"
BEGIN
MENUITEM "&Om ReactOS Management Console...", IDM_HELP_ABOUT
END
END

View file

@ -4,17 +4,38 @@
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Kütük"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Çıkış\tAlt+F4", ID_FILE_EXIT
MENUITEM "&Çıkış\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Yardım"
BEGIN
MENUITEM "&Hakkında...", ID_HELP_ABOUT
MENUITEM "&Hakkında...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Kütük"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "&Çıkış\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Yardım"
BEGIN
MENUITEM "&Hakkında...", IDM_HELP_ABOUT
END
END

View file

@ -8,17 +8,38 @@
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "В&ихід\tAlt+F4", ID_FILE_EXIT
MENUITEM "В&ихід\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Довідка"
BEGIN
MENUITEM "&Про консоль керування ReactOS...", ID_HELP_ABOUT
MENUITEM "&Про консоль керування ReactOS...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "&Файл"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "В&ихід\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Довідка"
BEGIN
MENUITEM "&Про консоль керування ReactOS...", IDM_HELP_ABOUT
END
END

View file

@ -8,17 +8,38 @@
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "档案(&F)"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "结束(&X)\tAlt+F4", ID_FILE_EXIT
MENUITEM "结束(&X)\tAlt+F4", IDM_FILE_EXIT
END
POPUP "帮助(&H)"
BEGIN
MENUITEM "关于 ReactOS 控制台(&A)...", ID_HELP_ABOUT
MENUITEM "关于 ReactOS 控制台(&A)...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "档案(&F)"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "结束(&X)\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "帮助(&H)"
BEGIN
MENUITEM "关于 ReactOS 控制台(&A)...", IDM_HELP_ABOUT
END
END

View file

@ -8,17 +8,38 @@
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
IDM_CONSOLEROOT MENU DISCARDABLE
IDM_CONSOLE_SMALL MENU DISCARDABLE
BEGIN
POPUP "檔案(&F)"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "結束(&X)\tAlt+F4", ID_FILE_EXIT
MENUITEM "結束(&X)\tAlt+F4", IDM_FILE_EXIT
END
POPUP "說明(&H)"
BEGIN
MENUITEM "關於 ReactOS 控制台(&A)...", ID_HELP_ABOUT
MENUITEM "關於 ReactOS 控制台(&A)...", IDM_HELP_ABOUT
END
END
IDM_CONSOLE_LARGE MENU DISCARDABLE
BEGIN
POPUP "檔案(&F)"
BEGIN
MENUITEM "New\tStrg+N", IDM_FILE_NEW
MENUITEM SEPARATOR
MENUITEM "結束(&X)\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Windows"
BEGIN
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "說明(&H)"
BEGIN
MENUITEM "關於 ReactOS 控制台(&A)...", IDM_HELP_ABOUT
END
END

View file

@ -21,16 +21,19 @@
HINSTANCE hAppInstance;
HANDLE hAppHeap;
HWND hwndMainConsole;
HWND hwndMDIClient;
int
_tmain(IN int argc,
IN const TCHAR *argv[])
int WINAPI
_tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
HWND hMainConsole;
MSG Msg;
BOOL bRet;
hAppInstance = GetModuleHandle(NULL);
hAppInstance = hInstance; // GetModuleHandle(NULL);
hAppHeap = GetProcessHeap();
InitCommonControls();
@ -41,25 +44,20 @@ _tmain(IN int argc,
return 1;
}
hMainConsole = CreateConsoleWindow(argc > 1 ? argv[1] : NULL);
if (hMainConsole != NULL)
hwndMainConsole = CreateConsoleWindow(NULL /*argc > 1 ? argv[1] : NULL*/, nCmdShow);
if (hwndMainConsole != NULL)
{
for (;;)
while (GetMessage(&Msg, NULL, 0, 0))
{
bRet = GetMessage(&Msg,
NULL,
0,
0);
if (bRet != 0 && bRet != -1)
if (!TranslateMDISysAccel(hwndMDIClient, &Msg))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
else if (bRet == 0)
break;
}
}
UnregisterMMCWndClasses();
return 0;
}

View file

@ -7,6 +7,9 @@
#include "resource.h"
#define WM_USER_CLOSE_CHILD (WM_USER + 1)
/* console.c */
BOOL
@ -16,7 +19,8 @@ VOID
UnregisterMMCWndClasses(VOID);
HWND
CreateConsoleWindow(IN LPCTSTR lpFileName OPTIONAL);
CreateConsoleWindow(IN LPCTSTR lpFileName OPTIONAL,
int nCmdShow);
/* misc.c */
@ -34,3 +38,5 @@ LoadAndFormatString(IN HINSTANCE hInstance,
extern HINSTANCE hAppInstance;
extern HANDLE hAppHeap;
extern HWND hwndMainConsole;
extern HWND hwndMDIClient;

View file

@ -1,11 +1,17 @@
#pragma once
#define IDS_APPTITLE 101
#define IDS_APPTITLE 101
#define IDS_CONSOLETITLE 102
#define IDI_MAINAPP 101
#define IDI_MAINAPP 101
#define IDM_CONSOLEROOT 101
#define IDM_CONSOLE_SMALL 1000
#define IDM_CONSOLE_LARGE 1001
#define ID_FILE_EXIT 1001
#define ID_HELP_ABOUT 9001
#define IDM_FILE_NEW 1002
#define IDM_FILE_OPEN 1003
#define IDM_FILE_EXIT 1010
#define IDM_WINDOWS_LIST 2001
#define IDM_HELP_ABOUT 9001
#define IDM_MDI_FIRSTCHILD 9500