X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=w32log.c;h=732c0a3beb48e61367d78dde007e636cf12a6c6a;hp=ada06b2ed4e1b93609330bee61d2a709575c669b;hb=9ef142653b0e898d489fbd701c0f0a4b2e8b8273;hpb=4b3c9b925e5be187be35cb31f797dcd34ee2d255 diff --git a/w32log.c b/w32log.c index ada06b2e..732c0a3b 100644 --- a/w32log.c +++ b/w32log.c @@ -1,7 +1,7 @@ -const char w32log_rcs[] = "$Id: w32log.c,v 1.24 2002/03/31 17:19:00 jongfoster Exp $"; +const char w32log_rcs[] = "$Id: w32log.c,v 1.25.2.5 2003/04/04 12:48:51 oes Exp $"; /********************************************************************* * - * File : $Source: /cvsroot/ijbswa/current/w32log.c,v $ + * File : $Source: /cvsroot/ijbswa/current/Attic/w32log.c,v $ * * Purpose : Functions for creating and destroying the log window, * ouputting strings, processing messages and so on. @@ -32,6 +32,28 @@ const char w32log_rcs[] = "$Id: w32log.c,v 1.24 2002/03/31 17:19:00 jongfoster E * * Revisions : * $Log: w32log.c,v $ + * Revision 1.25.2.5 2003/04/04 12:48:51 oes + * Fixed bug #711865: + * - Made tray menu correctly reflect initial window visibility state + * - Hopefully fixed problem where log window contents wasn't visible + * until vertical scroll bar was clicked. Thanks to Guy for the fix! + * + * Revision 1.25.2.4 2003/03/11 11:53:59 oes + * Cosmetic: Renamed cryptic variable + * + * Revision 1.25.2.3 2002/11/20 14:39:05 oes + * Fixed compiler warning + * + * Revision 1.25.2.2 2002/09/25 15:23:10 oes + * Uncheck the "Show Privoxy Window" taskbar menu item when window gets minimized. Fixes bug #606804 + * + * Revision 1.25.2.1 2002/08/21 17:59:05 oes + * - "Show Privoxy Window" now a toggle + * - Temp kludge to let user and default action file be edited through win32 GUI (FR 592080) + * + * Revision 1.25 2002/04/04 00:36:36 gliptak + * always use pcre for matching + * * Revision 1.24 2002/03/31 17:19:00 jongfoster * Win32 only: Enabling STRICT to fix a VC++ compile warning. * @@ -221,6 +243,9 @@ const char w32log_h_rcs[] = W32LOG_H_VERSION; /* Indicates whether task bar shows activity animation */ BOOL g_bShowActivityAnimation = 1; +/* Indicates whether the log window is shown */ +BOOL g_bShowLogWindow = 1; + /* Indicates if the log window appears on the task bar */ BOOL g_bShowOnTaskBar = 0; @@ -248,7 +273,8 @@ int g_nFontSize = DEFAULT_LOG_FONT_SIZE; /* FIXME: this is a kludge */ -const char * g_actions_file = NULL; +const char * g_default_actions_file = NULL; +const char * g_user_actions_file = NULL; const char * g_re_filterfile = NULL; #ifdef FEATURE_TRUST const char * g_trustfile = NULL; @@ -306,6 +332,7 @@ static struct _Pattern * Public variables */ HWND g_hwndLogFrame; +HICON g_hiconApp; /* * Private variables @@ -316,7 +343,6 @@ static HWND g_hwndLogBox; static WNDPROC g_fnLogBox; static HICON g_hiconAnim[ANIM_FRAMES]; static HICON g_hiconIdle; -static HICON g_hiconApp; static int g_nAnimFrame; static BOOL g_bClipPending = FALSE; static int g_nRichEditVersion = 0; @@ -748,10 +774,17 @@ void LogClipBuffer(void) SendMessage(g_hwndLogBox, EM_REPLACESEL, FALSE, (LPARAM) ""); SendMessage(g_hwndLogBox, EM_SETOPTIONS, ECOOP_XOR, ECO_AUTOVSCROLL); - /* Restore old selection */ + /* reposition (back to) the end of the log content */ + range.cpMin = SendMessage (g_hwndLogBox, WM_GETTEXTLENGTH, 0, 0); + range.cpMax = -1; + SendMessage(g_hwndLogBox, EM_EXSETSEL, 0, (LPARAM) &range); + + /* restore vertical ScrollBar stuff (messed up by AUTOVSCROLL) */ + SendMessage (g_hwndLogBox, EM_SCROLL, SB_LINEDOWN, 0); + } -} +} /********************************************************************* @@ -880,12 +913,14 @@ HWND CreateLogWindow(HINSTANCE hInstance, int nCmdShow) nCmdShow == SW_MINIMIZE || nCmdShow == SW_SHOWMINNOACTIVE)) { + g_bShowLogWindow = FALSE; nCmdShow = SW_HIDE; } ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); + GetClientRect(g_hwndLogFrame, &rcClient); SetWindowPos(g_hwndLogBox, NULL, rcClient.left, rcClient.top, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top, SWP_NOZORDER); @@ -951,6 +986,7 @@ void ShowLogWindow(BOOL bShow) { SetForegroundWindow(g_hwndLogFrame); SetWindowPos(g_hwndLogFrame, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE); + } else if (g_bShowOnTaskBar) { @@ -960,7 +996,6 @@ void ShowLogWindow(BOOL bShow) { ShowWindow(g_hwndLogFrame, SW_HIDE); } - } @@ -1050,8 +1085,10 @@ void OnLogCommand(int nCommand) { switch (nCommand) { - case ID_SHOWWINDOW: - ShowLogWindow(TRUE); + case ID_TOGGLE_SHOWWINDOW: + g_bShowLogWindow = !g_bShowLogWindow; + + ShowLogWindow(g_bShowLogWindow); break; case ID_FILE_EXIT: @@ -1089,8 +1126,8 @@ void OnLogCommand(int nCommand) #ifdef FEATURE_TOGGLE /* by haroon - change toggle to its opposite value */ case ID_TOGGLE_ENABLED: - g_bToggleIJB = !g_bToggleIJB; - if (g_bToggleIJB) + global_toggle_state = !global_toggle_state; + if (global_toggle_state) { log_error(LOG_LEVEL_INFO, "Now toggled ON."); } @@ -1105,8 +1142,12 @@ void OnLogCommand(int nCommand) EditFile(configfile); break; - case ID_TOOLS_EDITACTIONS: - EditFile(g_actions_file); + case ID_TOOLS_EDITDEFAULTACTIONS: + EditFile(g_default_actions_file); + break; + + case ID_TOOLS_EDITUSERACTIONS: + EditFile(g_user_actions_file); break; case ID_TOOLS_EDITFILTERS: @@ -1163,7 +1204,8 @@ void OnLogCommand(int nCommand) void OnLogInitMenu(HMENU hmenu) { /* Only enable editors if there is a file to edit */ - EnableMenuItem(hmenu, ID_TOOLS_EDITACTIONS, MF_BYCOMMAND | (g_actions_file ? MF_ENABLED : MF_GRAYED)); + EnableMenuItem(hmenu, ID_TOOLS_EDITDEFAULTACTIONS, MF_BYCOMMAND | (g_default_actions_file ? MF_ENABLED : MF_GRAYED)); + EnableMenuItem(hmenu, ID_TOOLS_EDITUSERACTIONS, MF_BYCOMMAND | (g_user_actions_file ? MF_ENABLED : MF_GRAYED)); EnableMenuItem(hmenu, ID_TOOLS_EDITFILTERS, MF_BYCOMMAND | (g_re_filterfile ? MF_ENABLED : MF_GRAYED)); #ifdef FEATURE_TRUST EnableMenuItem(hmenu, ID_TOOLS_EDITTRUST, MF_BYCOMMAND | (g_trustfile ? MF_ENABLED : MF_GRAYED)); @@ -1176,8 +1218,9 @@ void OnLogInitMenu(HMENU hmenu) CheckMenuItem(hmenu, ID_VIEW_ACTIVITYANIMATION, MF_BYCOMMAND | (g_bShowActivityAnimation ? MF_CHECKED : MF_UNCHECKED)); #ifdef FEATURE_TOGGLE /* by haroon - menu item for Enable toggle on/off */ - CheckMenuItem(hmenu, ID_TOGGLE_ENABLED, MF_BYCOMMAND | (g_bToggleIJB ? MF_CHECKED : MF_UNCHECKED)); + CheckMenuItem(hmenu, ID_TOGGLE_ENABLED, MF_BYCOMMAND | (global_toggle_state ? MF_CHECKED : MF_UNCHECKED)); #endif /* def FEATURE_TOGGLE */ + CheckMenuItem(hmenu, ID_TOGGLE_SHOWWINDOW, MF_BYCOMMAND | (g_bShowLogWindow ? MF_CHECKED : MF_UNCHECKED)); } @@ -1292,6 +1335,7 @@ LRESULT CALLBACK LogWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPara return 0; case WM_SHOWWINDOW: + g_bShowLogWindow = wParam; case WM_SIZE: /* Resize the logging window to fit the new frame */ if (g_hwndLogBox)