mturk 2003/02/21 04:14:22 Modified: daemon/src/native/nt/procrun procgui.c procrun.h procrun.rc Log: Enable the GUI part to restore the window position. Revision Changes Path 1.3 +42 -20 jakarta-commons-sandbox/daemon/src/native/nt/procrun/procgui.c Index: procgui.c =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/daemon/src/native/nt/procrun/procgui.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- procgui.c 17 Feb 2003 18:20:07 -0000 1.2 +++ procgui.c 21 Feb 2003 12:14:21 -0000 1.3 @@ -110,12 +110,14 @@ HINSTANCE ac_instance; static HICON ac_main_icon; +static HICON ac_try_icon; static UINT ac_taskbar_created; static HWND ac_main_hwnd; static HWND ac_list_hwnd; +static HWND ac_console_hwnd = NULL; static char *ac_stdout_lines[MAX_LISTCOUNT + 1]; char *ac_cmdline; - +RECT ac_winpos = {0, 0, 640, 480}; void ac_add_list_string(const char *str, int len) { @@ -166,7 +168,7 @@ nid.uCallbackMessage = WM_TRAYMESSAGE; if (message != NIM_DELETE) - nid.hIcon = ac_main_icon; + nid.hIcon = ac_try_icon; else nid.hIcon = NULL; if (tip) @@ -261,10 +263,18 @@ switch (message) { case WM_INITDIALOG: + ac_console_hwnd = hdlg; ac_list_hwnd = GetDlgItem(hdlg, IDL_STDOUT); status_bar = CreateStatusWindow(0x0800 /* SBT_TOOLTIPS */ | WS_CHILD | WS_VISIBLE, ac_cmdline, hdlg, IDC_STATBAR); + if (!ac_use_try) { + LONG w = GetWindowLong(hdlg, GWL_STYLE); + w &= ~WS_MINIMIZEBOX; + SetWindowLong(hdlg, GWL_STYLE, w); + } + SetWindowPos(hdlg, HWND_TOP, ac_winpos.left, ac_winpos.top, + ac_winpos.right, ac_winpos.bottom, 0); GetWindowRect(status_bar, &r); GetClientRect(hdlg, &m); MoveWindow(ac_list_hwnd, 0, 0, m.right - m.left, m.bottom - abs((r.top - r.bottom)), TRUE); @@ -273,7 +283,12 @@ case WM_SIZE: switch (LOWORD(wparam)) { case SIZE_MINIMIZED: - EndDialog(hdlg, TRUE); + GetWindowRect(hdlg, &ac_winpos); + if (!ac_use_try) { + ShowWindow(hdlg, SW_RESTORE); + return FALSE; + } + ShowWindow(hdlg, SW_HIDE); return TRUE; break; default: @@ -286,14 +301,17 @@ } break; case WM_QUIT: - case WM_CLOSE: - OutputDebugString("dlg WM_QUIT"); + case WM_CLOSE: + GetWindowRect(hdlg, &ac_winpos); if (!ac_use_try) { + EndDialog(hdlg, TRUE); + ac_list_hwnd = NULL; + ac_console_hwnd = NULL; SetEvent(g_env->m->events[0]); + PostQuitMessage(CONWRAP_SUCCESS); } - EndDialog(hdlg, TRUE); - ac_list_hwnd = NULL; - PostQuitMessage(CONWRAP_SUCCESS); + else + ShowWindow(ac_console_hwnd, SW_HIDE); return TRUE; default: return FALSE; @@ -314,16 +332,15 @@ switch (message) { case WM_CREATE: ac_show_try_icon(hwnd, NIM_ADD, g_env->m->service.description); - if (ac_use_show) + if (ac_use_show) { DialogBox(ac_instance, MAKEINTRESOURCE(IDD_DLGCONSOLE), - hwnd, (DLGPROC)ac_console_dlg_proc); - + hwnd, (DLGPROC)ac_console_dlg_proc); + } break; case WM_DESTROY: case WM_QUIT: ac_show_try_icon(hwnd, NIM_DELETE, NULL); SetEvent(g_env->m->events[0]); - OutputDebugString("main WM_QUIT"); break; case WM_TRAYMESSAGE: switch(lparam) { @@ -343,9 +360,13 @@ return TRUE; break; case IDM_CONSOLE: - DialogBox(ac_instance, MAKEINTRESOURCE(IDD_DLGCONSOLE), - hwnd, (DLGPROC)ac_console_dlg_proc); - + if (ac_console_hwnd) { + ShowWindow(ac_console_hwnd, SW_SHOW); + ShowWindow(ac_console_hwnd, SW_RESTORE); + } + else + DialogBox(ac_instance, MAKEINTRESOURCE(IDD_DLGCONSOLE), + hwnd, (DLGPROC)ac_console_dlg_proc); break; } default: @@ -376,11 +397,12 @@ wcex.lpszClassName = wclass; wcex.hIconSm = (HICON)LoadImage(instance, MAKEINTRESOURCE(IDI_ICOCONWRAP), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); - + ac_try_icon = (HICON)LoadImage(instance, MAKEINTRESOURCE(IDI_ICOCONTRY), + IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); if (RegisterClassEx(&wcex)) hwnd = CreateWindow(wclass, title, - 0, 0, 0, 0, 0, - NULL, NULL, instance, NULL); + 0, 0, 0, 0, 0, + NULL, NULL, instance, NULL); return hwnd; @@ -393,7 +415,7 @@ procrun_t *env = (procrun_t *)param; char cname[MAX_LOADSTRING]; - if (!param) + if (!param || !env->m->service.name) return -1; strcpy(cname, env->m->service.name); strcat(cname, "_CLASS"); @@ -401,7 +423,7 @@ ac_cmdline = env->m->service.description; else ac_cmdline = env->m->service.name; - + ac_main_hwnd = ac_create_main_window(ac_instance, cname, env->m->service.name); 1.8 +5 -0 jakarta-commons-sandbox/daemon/src/native/nt/procrun/procrun.h Index: procrun.h =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/daemon/src/native/nt/procrun/procrun.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- procrun.h 17 Feb 2003 18:19:07 -0000 1.7 +++ procrun.h 21 Feb 2003 12:14:21 -0000 1.8 @@ -89,6 +89,7 @@ #define IDR_CMENU 111 #define IDM_FILE_EXIT 112 #define IDM_FILE_EDIT 113 +#define IDI_ICOCONTRY 114 #define IDC_STATIC -1 @@ -136,6 +137,10 @@ #define PROCRUN_PARAMS_ACCOUNT "User" #define PROCRUN_PARAMS_PASSWORD "Password" #define PROCRUN_PARAMS_INSTALL "Install" +/* Console Window position and color */ +#define PROCRUN_PARAMS_WINPOS "WindowPosition" +#define PROCRUN_PARAMS_WINCLR "WindowColor" +#define PROCRUN_PARAMS_WINBACK "WindowBackground" #define PROCRUN_DEFAULT_CLASS "Main" 1.3 +2 -1 jakarta-commons-sandbox/daemon/src/native/nt/procrun/procrun.rc Index: procrun.rc =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/daemon/src/native/nt/procrun/procrun.rc,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- procrun.rc 13 Feb 2003 17:48:35 -0000 1.2 +++ procrun.rc 21 Feb 2003 12:14:21 -0000 1.3 @@ -1,7 +1,8 @@ #include "procrun.h" #include "windows.h" -IDI_ICOCONWRAP ICON "proctry.ico" +IDI_ICOCONWRAP ICON "tomcatp.ico" +IDI_ICOCONTRY ICON "tomcatr.ico" IDR_CMENU MENU DISCARDABLE BEGIN
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]