-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.
*
* 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.
*
/* 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;
/* 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;
* Public variables
*/
HWND g_hwndLogFrame;
+HICON g_hiconApp;
/*
* Private variables
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;
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);
+
}
-}
+}
/*********************************************************************
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);
{
SetForegroundWindow(g_hwndLogFrame);
SetWindowPos(g_hwndLogFrame, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE);
+
}
else if (g_bShowOnTaskBar)
{
{
ShowWindow(g_hwndLogFrame, SW_HIDE);
}
-
}
{
switch (nCommand)
{
- case ID_SHOWWINDOW:
- ShowLogWindow(TRUE);
+ case ID_TOGGLE_SHOWWINDOW:
+ g_bShowLogWindow = !g_bShowLogWindow;
+
+ ShowLogWindow(g_bShowLogWindow);
break;
case ID_FILE_EXIT:
#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.");
}
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:
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));
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));
}
return 0;
case WM_SHOWWINDOW:
+ g_bShowLogWindow = wParam;
case WM_SIZE:
/* Resize the logging window to fit the new frame */
if (g_hwndLogBox)