diff --git a/src/main.cpp b/src/main.cpp index 56dc1a89..4e8733fd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -233,9 +233,6 @@ void _app_listviewsetimagelist (HWND hwnd, UINT ctrl_id) bool _app_listviewinitfont (PLOGFONT plf) { - if (!plf) - return false; - rstring buffer = app.ConfigGet (L"Font", UI_FONT_DEFAULT); if (buffer.IsEmpty ()) @@ -299,12 +296,24 @@ bool _app_listviewinitfont (PLOGFONT plf) return true; } -void _app_listviewsetfont (HWND hwnd, UINT ctrl_id) +void _app_listviewsetfont (HWND hwnd, UINT ctrl_id, bool is_redraw) { LOGFONT lf = {0}; - if (!config.hfont) + if (is_redraw || !config.hfont) { + if (config.hfont) + { + DeleteObject (config.hfont); + config.hfont = nullptr; + } + + if (config.hfont_bold) + { + DeleteObject (config.hfont_bold); + config.hfont_bold = nullptr; + } + if (_app_listviewinitfont (&lf)) { const LONG prev_weight = lf.lfWeight; @@ -314,22 +323,11 @@ void _app_listviewsetfont (HWND hwnd, UINT ctrl_id) lf.lfWeight = prev_weight; config.hfont = CreateFontIndirect (&lf); - - if (config.hfont) - SendDlgItemMessage (hwnd, ctrl_id, WM_SETFONT, (WPARAM)config.hfont, TRUE); - - return; - } - else - { - SendDlgItemMessage (hwnd, ctrl_id, WM_SETFONT, 0, TRUE); } } - else - { + + if (config.hfont) SendDlgItemMessage (hwnd, ctrl_id, WM_SETFONT, (WPARAM)config.hfont, TRUE); - } - } ITEM_APP* _app_getapplication (size_t hash) @@ -1061,7 +1059,7 @@ void _app_generate_services () // now traverse each service to get information for (DWORD i = 0; i < dwServicesReturned; i++) { - // LPCWSTR display_name = (pServices + i)->lpDisplayName; + //LPCWSTR display_name = (pServices + i)->lpDisplayName; LPCWSTR service_name = (pServices + i)->lpServiceName; WCHAR buffer[MAX_PATH] = {0}; @@ -1091,31 +1089,6 @@ void _app_generate_services () PathUnquoteSpaces (real_path); _app_applycasestyle (real_path, wcslen (real_path)); // apply case-style - - //// query description - //LPSERVICE_DESCRIPTION lpsd = nullptr; - - //QueryServiceConfig2 (hsvc, SERVICE_CONFIG_DESCRIPTION, nullptr, 0, &bytes_needed); - - //if (GetLastError () == ERROR_INSUFFICIENT_BUFFER) - //{ - // lpsd = new SERVICE_DESCRIPTION[bytes_needed]; - - // if (lpsd) - // { - // if (QueryServiceConfig2 (hsvc, SERVICE_CONFIG_DESCRIPTION, (LPBYTE)lpsd, bytes_needed, &bytes_needed)) - // { - // if (lpsd->lpDescription) - // { - // const size_t len = wcslen (lpsd->lpDescription) + 1; - // ptrdesc = new WCHAR[len]; - // StringCchCopy (ptrdesc, len, lpsd->lpDescription); - // } - // } - - // delete[] lpsd; - // } - //} } else { @@ -1157,7 +1130,7 @@ void _app_generate_services () { ITEM_ADD item = {0}; - StringCchCopy (item.display_name, _countof (item.display_name), service_name/*display_name*/); + StringCchCopy (item.display_name, _countof (item.display_name), service_name); StringCchCopy (item.service_name, _countof (item.service_name), service_name); StringCchCopy (item.real_path, _countof (item.real_path), real_path); StringCchCopy (item.sid, _countof (item.sid), sidstring); @@ -1576,7 +1549,7 @@ DWORD_PTR _app_getcolor (size_t hash, bool is_brush, HDC hdc) if (ptr_app) { - if (hdc && hash == config.myhash) + if (hdc && hash == config.myhash && config.hfont_bold) SelectObject (hdc, config.hfont_bold); if (app.ConfigGet (L"IsHighlightInvalid", true).AsBool () && !_app_isexists (ptr_app)) @@ -4153,7 +4126,7 @@ void _app_notifycreatewindow () } HWND hwnd = CreateWindow (WC_STATIC, APP_NAME, WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE | SS_WORDELLIPSIS, IconSize + app.GetDPI (12), app.GetDPI (8), wnd_width - app.GetDPI (64 + 12 + 10 + 24), IconSize, config.hnotification, (HMENU)IDC_TITLE_ID, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_title, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_title, true); hwnd = CreateWindow (WC_STATIC, nullptr, WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE | SS_CENTER | SS_ICON | SS_NOTIFY, app.GetDPI (8), app.GetDPI (8), IconSize, IconSize, config.hnotification, (HMENU)IDC_ICON_ID, nullptr, nullptr); @@ -4164,43 +4137,43 @@ void _app_notifycreatewindow () SendMessage (hwnd, STM_SETIMAGE, IMAGE_ICON, (WPARAM)_r_loadicon (app.GetHINSTANCE (), MAKEINTRESOURCE (IDI_CLOSE), cxsmIcon)); hwnd = CreateWindow (WC_LINK, nullptr, WS_CHILD | WS_VISIBLE, app.GetDPI (12), app.GetDPI (38), wnd_width - app.GetDPI (24), app.GetDPI (16), config.hnotification, (HMENU)IDC_FILE_ID, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_text, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_text, true); hwnd = CreateWindow (WC_EDIT, nullptr, WS_CHILD | WS_VISIBLE | ES_READONLY | ES_AUTOHSCROLL | ES_MULTILINE, app.GetDPI (12), app.GetDPI (56), wnd_width - app.GetDPI (24), app.GetDPI (16), config.hnotification, (HMENU)IDC_ADDRESS_REMOTE_ID, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_text, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_text, true); SendMessage (hwnd, EM_SETMARGINS, EC_LEFTMARGIN, 0); SendMessage (hwnd, EM_SETMARGINS, EC_RIGHTMARGIN, 0); hwnd = CreateWindow (WC_EDIT, nullptr, WS_CHILD | WS_VISIBLE | ES_READONLY | ES_AUTOHSCROLL | ES_MULTILINE, app.GetDPI (12), app.GetDPI (74), wnd_width - app.GetDPI (24), app.GetDPI (16), config.hnotification, (HMENU)IDC_ADDRESS_LOCAL_ID, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_text, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_text, true); SendMessage (hwnd, EM_SETMARGINS, EC_LEFTMARGIN, 0); SendMessage (hwnd, EM_SETMARGINS, EC_RIGHTMARGIN, 0); hwnd = CreateWindow (WC_EDIT, nullptr, WS_CHILD | WS_VISIBLE | ES_READONLY | ES_AUTOHSCROLL | ES_MULTILINE, app.GetDPI (12), app.GetDPI (92), wnd_width - app.GetDPI (24), app.GetDPI (16), config.hnotification, (HMENU)IDC_FILTER_ID, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_text, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_text, true); SendMessage (hwnd, EM_SETMARGINS, EC_LEFTMARGIN, 0); SendMessage (hwnd, EM_SETMARGINS, EC_RIGHTMARGIN, 0); hwnd = CreateWindow (WC_EDIT, nullptr, WS_CHILD | WS_VISIBLE | ES_READONLY | ES_AUTOHSCROLL | ES_MULTILINE, app.GetDPI (12), app.GetDPI (110), wnd_width - app.GetDPI (24), app.GetDPI (16), config.hnotification, (HMENU)IDC_DATE_ID, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_text, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_text, true); SendMessage (hwnd, EM_SETMARGINS, EC_LEFTMARGIN, 0); SendMessage (hwnd, EM_SETMARGINS, EC_RIGHTMARGIN, 0); hwnd = CreateWindow (WC_BUTTON, nullptr, WS_TABSTOP | WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_CHECKBOX | BS_NOTIFY, app.GetDPI (12), app.GetDPI (138), wnd_width - app.GetDPI (24), app.GetDPI (16), config.hnotification, (HMENU)IDC_CREATERULE_ADDR_ID, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_text, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_text, true); hwnd = CreateWindow (WC_BUTTON, nullptr, WS_TABSTOP | WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_CHECKBOX | BS_NOTIFY, app.GetDPI (12), app.GetDPI (156), wnd_width - app.GetDPI (24), app.GetDPI (16), config.hnotification, (HMENU)IDC_CREATERULE_PORT_ID, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_text, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_text, true); hwnd = CreateWindow (WC_COMBOBOX, nullptr, WS_TABSTOP | WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS, app.GetDPI (10), wnd_height - app.GetDPI (36), btn_width - app.GetDPI (12), app.GetDPI (24), config.hnotification, (HMENU)IDC_TIMER_CB, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_text, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_text, true); hwnd = CreateWindow (WC_BUTTON, nullptr, WS_TABSTOP | WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, wnd_width - ((btn_width + app.GetDPI (8)) * 2), wnd_height - app.GetDPI (36), btn_width, app.GetDPI (24), config.hnotification, (HMENU)IDC_ALLOW_BTN, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_text, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_text, true); SendMessage (hwnd, BM_SETIMAGE, IMAGE_ICON, (WPARAM)_r_loadicon (app.GetHINSTANCE (), MAKEINTRESOURCE (IDI_ALLOW), cxsmIcon)); hwnd = CreateWindow (WC_BUTTON, nullptr, WS_TABSTOP | WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, wnd_width - btn_width - app.GetDPI (10), wnd_height - app.GetDPI (36), btn_width, app.GetDPI (24), config.hnotification, (HMENU)IDC_IGNORE_BTN, nullptr, nullptr); - SendMessage (hwnd, WM_SETFONT, (LPARAM)hfont_text, true); + SendMessage (hwnd, WM_SETFONT, (WPARAM)hfont_text, true); //SendMessage (hwnd, BM_SETIMAGE, IMAGE_ICON, (WPARAM)_r_loadicon (app.GetHINSTANCE (), MAKEINTRESOURCE (IDI_BLOCK), cxsmIcon)); { @@ -5066,16 +5039,16 @@ UINT WINAPI LogThread (LPVOID lparam) const bool is_logenabled = app.ConfigGet (L"IsLogEnabled", false).AsBool (); const bool is_notificationenabled = (app.ConfigGet (L"Mode", ModeWhitelist).AsUint () == ModeWhitelist) && app.ConfigGet (L"IsNotificationsEnabled", true).AsBool (); // only for whitelist mode - for (;;) + while (true) { - PITEM_LIST_ENTRY pNode = (PITEM_LIST_ENTRY)InterlockedPopEntrySList (log_stack); + PITEM_LIST_ENTRY pnode = (PITEM_LIST_ENTRY)InterlockedPopEntrySList (log_stack); - if (!pNode) + if (!pnode) break; - PITEM_LOG ptr_log = (PITEM_LOG)pNode->Body; + PITEM_LOG ptr_log = (PITEM_LOG)pnode->Body; - _aligned_free (pNode); + _aligned_free (pnode); if (ptr_log) { @@ -5671,7 +5644,6 @@ INT_PTR CALLBACK EditorProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) SetDlgItemText (hwnd, IDC_PORTVERSION, app.LocaleString (IDS_PORTVERSION, L":")); SetDlgItemText (hwnd, IDC_ACTION, app.LocaleString (IDS_ACTION, L":")); - _r_ctrl_settext (hwnd, IDC_RULES_WIKI, app.LocaleString (IDS_RULES_WIKI, nullptr), WIKI_URL); SetDlgItemText (hwnd, IDC_ENABLED_CHK, app.LocaleString (IDS_ENABLERULE_CHK, nullptr)); SetDlgItemText (hwnd, IDC_SAVE, app.LocaleString (IDS_SAVE, nullptr)); @@ -5683,7 +5655,7 @@ INT_PTR CALLBACK EditorProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) _r_listview_addcolumn (hwnd, IDC_FILES_LV, 0, nullptr, 95, LVCFMT_LEFT); _app_listviewsetimagelist (hwnd, IDC_FILES_LV); - _app_listviewsetfont (hwnd, IDC_FILES_LV); + _app_listviewsetfont (hwnd, IDC_FILES_LV, false); // name if (ptr_rule && ptr_rule->pname) @@ -5791,6 +5763,7 @@ INT_PTR CALLBACK EditorProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) SendDlgItemMessage (hwnd, IDC_NAME_EDIT, EM_LIMITTEXT, RULE_NAME_CCH_MAX - 1, 0); SendDlgItemMessage (hwnd, IDC_RULES_EDIT, EM_LIMITTEXT, RULE_RULE_CCH_MAX - 1, 0); + _r_wnd_addstyle (hwnd, IDC_WIKI, app.IsClassicUI () ? WS_EX_STATICEDGE : 0, WS_EX_STATICEDGE, GWL_EXSTYLE); _r_wnd_addstyle (hwnd, IDC_SAVE, app.IsClassicUI () ? WS_EX_STATICEDGE : 0, WS_EX_STATICEDGE, GWL_EXSTYLE); _r_wnd_addstyle (hwnd, IDC_CLOSE, app.IsClassicUI () ? WS_EX_STATICEDGE : 0, WS_EX_STATICEDGE, GWL_EXSTYLE); @@ -5819,6 +5792,8 @@ INT_PTR CALLBACK EditorProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) DeleteMenu (submenu, IDM_EDIT, MF_BYCOMMAND); DeleteMenu (submenu, IDM_DELETE, MF_BYCOMMAND); DeleteMenu (submenu, 0, MF_BYPOSITION); + DeleteMenu (submenu, IDM_SELECT_ALL, MF_BYCOMMAND); + DeleteMenu (submenu, 0, MF_BYPOSITION); POINT pt = {0}; GetCursorPos (&pt); @@ -5837,20 +5812,6 @@ INT_PTR CALLBACK EditorProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) switch (nmlp->code) { - case NM_CLICK: - case NM_RETURN: - { - if (nmlp->idFrom == IDC_RULES_WIKI) - { - PNMLINK nmlink = (PNMLINK)lparam; - - if (nmlink->item.szUrl) - ShellExecute (hwnd, nullptr, nmlink->item.szUrl, nullptr, nullptr, SW_SHOWDEFAULT); - } - - break; - } - case NM_CUSTOMDRAW: { if (nmlp->idFrom != IDC_FILES_LV) @@ -5932,6 +5893,12 @@ INT_PTR CALLBACK EditorProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) break; } + case IDC_WIKI: + { + ShellExecute (hwnd, nullptr, WIKI_URL, nullptr, nullptr, SW_SHOWDEFAULT); + break; + } + case IDOK: // process Enter key case IDC_SAVE: { @@ -6058,6 +6025,7 @@ BOOL settings_callback (HWND hwnd, DWORD msg, LPVOID lpdata1, LPVOID lpdata2) case IDD_SETTINGS_GENERAL: { CheckDlgButton (hwnd, IDC_ALWAYSONTOP_CHK, app.ConfigGet (L"AlwaysOnTop", false).AsBool () ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton (hwnd, IDC_STARTMINIMIZED_CHK, app.ConfigGet (L"IsStartMinimized", false).AsBool () ? BST_CHECKED : BST_UNCHECKED); #ifdef _APP_HAVE_AUTORUN CheckDlgButton (hwnd, IDC_LOADONSTARTUP_CHK, app.AutorunIsEnabled () ? BST_CHECKED : BST_UNCHECKED); @@ -6165,7 +6133,7 @@ BOOL settings_callback (HWND hwnd, DWORD msg, LPVOID lpdata1, LPVOID lpdata2) _r_listview_addgroup (hwnd, IDC_EDITOR, 1, nullptr, 0, LVGS_COLLAPSIBLE); _r_listview_addgroup (hwnd, IDC_EDITOR, 2, nullptr, 0, LVGS_COLLAPSIBLE); - _app_listviewsetfont (hwnd, IDC_EDITOR); + _app_listviewsetfont (hwnd, IDC_EDITOR, false); std::vector const* ptr_rules = nullptr; @@ -6287,6 +6255,7 @@ BOOL settings_callback (HWND hwnd, DWORD msg, LPVOID lpdata1, LPVOID lpdata2) case IDD_SETTINGS_GENERAL: { SetDlgItemText (hwnd, IDC_ALWAYSONTOP_CHK, app.LocaleString (IDS_ALWAYSONTOP_CHK, nullptr)); + SetDlgItemText (hwnd, IDC_STARTMINIMIZED_CHK, app.LocaleString (IDS_STARTMINIMIZED_CHK, nullptr)); SetDlgItemText (hwnd, IDC_LOADONSTARTUP_CHK, app.LocaleString (IDS_LOADONSTARTUP_CHK, nullptr)); SetDlgItemText (hwnd, IDC_SKIPUACWARNING_CHK, app.LocaleString (IDS_SKIPUACWARNING_CHK, nullptr)); SetDlgItemText (hwnd, IDC_CHECKUPDATES_CHK, app.LocaleString (IDS_CHECKUPDATES_CHK, nullptr)); @@ -6310,7 +6279,7 @@ BOOL settings_callback (HWND hwnd, DWORD msg, LPVOID lpdata1, LPVOID lpdata2) _r_listview_setitem (hwnd, IDC_COLORS, i, 0, app.LocaleString (ptr_clr->locale_id, nullptr)); } - _app_listviewsetfont (hwnd, IDC_COLORS); + _app_listviewsetfont (hwnd, IDC_COLORS, false); break; } @@ -6324,7 +6293,7 @@ BOOL settings_callback (HWND hwnd, DWORD msg, LPVOID lpdata1, LPVOID lpdata2) SetDlgItemText (hwnd, IDC_USEFULLBLOCKLIST_CHK, app.LocaleString (IDS_USEFULLBLOCKLIST_CHK, L"*")); SetDlgItemText (hwnd, IDC_USESTEALTHMODE_CHK, app.LocaleString (IDS_USESTEALTHMODE_CHK, L"*")); SetDlgItemText (hwnd, IDC_INSTALLBOOTTIMEFILTERS_CHK, app.LocaleString (IDS_INSTALLBOOTTIMEFILTERS_CHK, L"*")); - SetDlgItemText (hwnd, IDC_PROXYSUPPORT_CHK, app.LocaleString (IDS_PROXYSUPPORT_CHK, L"* (win8+) [BETA]")); + SetDlgItemText (hwnd, IDC_PROXYSUPPORT_CHK, app.LocaleString (IDS_PROXYSUPPORT_CHK, L"* (win8+) [beta]")); SetDlgItemText (hwnd, IDC_USEHOSTS_CHK, app.LocaleString (IDS_USEHOSTS_CHK, nullptr)); SetDlgItemText (hwnd, IDC_USECERTIFICATES_CHK, app.LocaleString (IDS_USECERTIFICATES_CHK, 0)); @@ -6421,7 +6390,7 @@ BOOL settings_callback (HWND hwnd, DWORD msg, LPVOID lpdata1, LPVOID lpdata2) SetDlgItemText (hwnd, IDC_RULES_BLOCKLIST_HINT, app.LocaleString (IDS_RULES_BLOCKLIST_HINT, nullptr)); SetDlgItemText (hwnd, IDC_RULES_SYSTEM_HINT, app.LocaleString (IDS_RULES_SYSTEM_HINT, nullptr)); - _r_ctrl_settext (hwnd, IDC_RULES_CUSTOM_HINT, app.LocaleString (IDS_RULES_CUSTOM_HINT, nullptr), WIKI_URL); + _r_ctrl_settext (hwnd, IDC_RULES_CUSTOM_HINT, app.LocaleString (IDS_RULES_USER_HINT, nullptr), WIKI_URL); SendDlgItemMessage (hwnd, IDC_EDITOR, LVM_RESETEMPTYTEXT, 0, 0); @@ -6766,6 +6735,7 @@ BOOL settings_callback (HWND hwnd, DWORD msg, LPVOID lpdata1, LPVOID lpdata2) const HMENU submenu = GetSubMenu (menu, 0); // localize + app.LocaleMenu (submenu, IDS_SELECT_ALL, IDM_SELECT_ALL, false, nullptr); app.LocaleMenu (submenu, IDS_CHECK, IDM_CHECK, false, nullptr); app.LocaleMenu (submenu, IDS_UNCHECK, IDM_UNCHECK, false, nullptr); @@ -6806,6 +6776,7 @@ BOOL settings_callback (HWND hwnd, DWORD msg, LPVOID lpdata1, LPVOID lpdata2) switch (LOWORD (pmsg->wParam)) { case IDC_ALWAYSONTOP_CHK: + case IDC_STARTMINIMIZED_CHK: case IDC_LOADONSTARTUP_CHK: case IDC_SKIPUACWARNING_CHK: case IDC_CHECKUPDATES_CHK: @@ -6839,6 +6810,10 @@ BOOL settings_callback (HWND hwnd, DWORD msg, LPVOID lpdata1, LPVOID lpdata2) app.ConfigSet (L"AlwaysOnTop", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED) ? true : false); CheckMenuItem (GetMenu (app.GetHWND ()), IDM_ALWAYSONTOP_CHK, MF_BYCOMMAND | ((IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED) ? MF_CHECKED : MF_UNCHECKED)); } + else if (ctrl_id == IDC_STARTMINIMIZED_CHK) + { + app.ConfigSet (L"IsStartMinimized", (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED) ? true : false); + } else if (ctrl_id == IDC_LOADONSTARTUP_CHK) { app.AutorunEnable (IsDlgButtonChecked (hwnd, ctrl_id) == BST_CHECKED); @@ -7185,6 +7160,12 @@ BOOL settings_callback (HWND hwnd, DWORD msg, LPVOID lpdata1, LPVOID lpdata2) break; } + case IDM_SELECT_ALL: + { + ListView_SetItemState (GetDlgItem (hwnd, IDC_EDITOR), -1, LVIS_SELECTED, LVIS_SELECTED); + break; + } + case IDM_CHECK: case IDM_UNCHECK: { @@ -8052,7 +8033,7 @@ void _app_generate_addmenu (HMENU submenu) app.LocaleMenu (submenu, IDS_ADD_FILE, IDM_ADD_FILE, false, L"..."); app.LocaleMenu (submenu, IDS_ADD_PROCESS, uproc_id, true, nullptr); app.LocaleMenu (submenu, IDS_ADD_PACKAGE, upckg_id, true, nullptr); - app.LocaleMenu (submenu, IDS_ADD_SERVICE, usvc_id, true, nullptr); + app.LocaleMenu (submenu, IDS_ADD_SERVICE, usvc_id, true, L" [beta]"); app.LocaleMenu (submenu, IDS_ALL, IDM_ALL_PROCESSES, false, _r_fmt (L" (%d)", processes.size ())); app.LocaleMenu (submenu, IDS_ALL, IDM_ALL_PACKAGES, false, _r_fmt (L" (%d)", packages.size ())); app.LocaleMenu (submenu, IDS_ALL, IDM_ALL_SERVICES, false, _r_fmt (L" (%d)", services.size ())); @@ -8316,7 +8297,16 @@ INT_PTR CALLBACK DlgProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) _r_listview_addgroup (hwnd, IDC_LISTVIEW, 1, app.LocaleString (IDS_GROUP_BLOCKED, nullptr), 0, LVGS_COLLAPSIBLE | (app.ConfigGet (L"Group2IsCollaped", false).AsBool () ? LVGS_COLLAPSED : LVGS_NORMAL)); _app_listviewsetimagelist (hwnd, IDC_LISTVIEW); - _app_listviewsetfont (hwnd, IDC_LISTVIEW); + _app_listviewsetfont (hwnd, IDC_LISTVIEW, true); + + SendDlgItemMessage (hwnd, IDC_START_BTN, BCM_SETSHIELD, 0, TRUE); + + { + RECT rc2 = {0}; + rc2.left = rc2.right = app.GetDPI (4); + + SendDlgItemMessage (hwnd, IDC_START_BTN, BCM_SETTEXTMARGIN, 0, (LPARAM)&rc2); + } // load settings imagelist { @@ -8375,7 +8365,7 @@ INT_PTR CALLBACK DlgProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) app.AddSettingsPage (IDD_SETTINGS_RULES_BLOCKLIST, IDS_TRAY_BLOCKLIST_RULES, &settings_callback, page_id); app.AddSettingsPage (IDD_SETTINGS_RULES_SYSTEM, IDS_TRAY_SYSTEM_RULES, &settings_callback, page_id); - app.AddSettingsPage (IDD_SETTINGS_RULES_CUSTOM, IDS_TRAY_CUSTOM_RULES, &settings_callback, page_id); + app.AddSettingsPage (IDD_SETTINGS_RULES_CUSTOM, IDS_TRAY_USER_RULES, &settings_callback, page_id); } // dropped packets logging (win7+) @@ -8733,11 +8723,12 @@ INT_PTR CALLBACK DlgProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) app.LocaleMenu (submenu, IDS_TRAY_RULES, usettings_id, true, nullptr); app.LocaleMenu (submenu, IDS_DISABLENOTIFICATIONS, IDM_DISABLENOTIFICATIONS, false, nullptr); app.LocaleMenu (submenu, IDS_TIMER, utimer_id, true, nullptr); - app.LocaleMenu (submenu, IDS_NOTIMER, IDM_DISABLETIMER, false, nullptr); + app.LocaleMenu (submenu, IDS_DISABLETIMER, IDM_DISABLETIMER, false, nullptr); app.LocaleMenu (submenu, IDS_REFRESH, IDM_REFRESH2, false, L"\tF5"); app.LocaleMenu (submenu, IDS_EXPLORE, IDM_EXPLORE, false, nullptr); app.LocaleMenu (submenu, IDS_COPY, IDM_COPY, false, L"\tCtrl+C"); app.LocaleMenu (submenu, IDS_DELETE, IDM_DELETE, false, L"\tDel"); + app.LocaleMenu (submenu, IDS_SELECT_ALL, IDM_SELECT_ALL, false, L"\tCtrl+A"); app.LocaleMenu (submenu, IDS_CHECK, IDM_CHECK, false, nullptr); app.LocaleMenu (submenu, IDS_UNCHECK, IDM_UNCHECK, false, nullptr); @@ -9372,22 +9363,9 @@ INT_PTR CALLBACK DlgProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) if (ChooseFont (&cf)) { - if (config.hfont) - { - DeleteObject (config.hfont); - config.hfont = nullptr; - } + app.ConfigSet (L"Font", lf.lfFaceName[0] ? _r_fmt (L"%s;%d;%d", lf.lfFaceName, _r_dc_fontheighttosize (lf.lfHeight), lf.lfWeight) : UI_FONT_DEFAULT); - if (lf.lfFaceName[0]) - { - app.ConfigSet (L"Font", _r_fmt (L"%s;%d;%d", lf.lfFaceName, _r_dc_fontheighttosize (lf.lfHeight), lf.lfWeight)); - } - else - { - app.ConfigSet (L"Font", UI_FONT_DEFAULT); - } - - _app_listviewsetfont (hwnd, IDC_LISTVIEW); + _app_listviewsetfont (hwnd, IDC_LISTVIEW, true); } break; @@ -9636,11 +9614,15 @@ INT_PTR CALLBACK DlgProc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) } else if (LOWORD (wparam) == IDM_ALL_PACKAGES) { + _app_generate_packages (); + for (size_t i = 0; i < packages.size (); i++) _app_addapplication (hwnd, packages.at (i).sid, 0, false, false, true); } else if (LOWORD (wparam) == IDM_ALL_SERVICES) { + _app_generate_services (); + for (size_t i = 0; i < services.size (); i++) _app_addapplication (hwnd, services.at (i).service_name, 0, false, false, true); } diff --git a/src/main.hpp b/src/main.hpp index 48f7eb1f..8f701194 100644 --- a/src/main.hpp +++ b/src/main.hpp @@ -48,7 +48,7 @@ #define LEN_HOST_MAX 512 #define TIMER_DEFAULT 2 -#define TIMER_LOG_CALLBACK 10000 +#define TIMER_LOG_CALLBACK 2000 // notifications #define NOTIFY_CLASS_DLG L"NotificationDlg" @@ -81,7 +81,7 @@ #define LISTVIEW_COLOR_INVALID RGB (255, 125, 148) #define LISTVIEW_COLOR_PACKAGE RGB(134, 227, 227) #define LISTVIEW_COLOR_PICO RGB (51, 153, 255) -#define LISTVIEW_COLOR_SERVICE RGB (198, 159, 255) +#define LISTVIEW_COLOR_SERVICE RGB (207, 189, 255) #define LISTVIEW_COLOR_SIGNED RGB (175, 228, 163) #define LISTVIEW_COLOR_SILENT RGB (180, 193, 201) #define LISTVIEW_COLOR_SPECIAL RGB (255, 255, 170) diff --git a/src/resource.hpp b/src/resource.hpp index 1449c641..5a23507e 100644 --- a/src/resource.hpp +++ b/src/resource.hpp @@ -65,13 +65,13 @@ #define IDC_RULES_EDIT 134 #define IDC_FILES 135 #define IDC_FILES_LV 136 -#define IDC_RULES_WIKI 137 -#define IDC_ENABLED_CHK 138 +#define IDC_ENABLED_CHK 137 // Settings Dlg -#define IDC_NAV 139 -#define IDC_SAVE 140 -#define IDC_CLOSE 141 +#define IDC_NAV 138 +#define IDC_SAVE 139 +#define IDC_CLOSE 140 +#define IDC_WIKI 141 #define IDC_TITLE_GENERAL 142 #define IDC_TITLE_LANGUAGE 143 @@ -83,35 +83,36 @@ #define IDC_TITLE_ADVANCED 149 #define IDC_ALWAYSONTOP_CHK 150 -#define IDC_LOADONSTARTUP_CHK 151 -#define IDC_SKIPUACWARNING_CHK 152 -#define IDC_CHECKUPDATES_CHK 153 +#define IDC_STARTMINIMIZED_CHK 151 +#define IDC_LOADONSTARTUP_CHK 152 +#define IDC_SKIPUACWARNING_CHK 153 +#define IDC_CHECKUPDATES_CHK 154 -#define IDC_LANGUAGE_HINT 154 -#define IDC_LANGUAGE 155 +#define IDC_LANGUAGE_HINT 155 +#define IDC_LANGUAGE 156 -#define IDC_COLORS_HINT 156 +#define IDC_COLORS_HINT 157 -#define IDC_RULE_ALLOWINBOUND 157 -#define IDC_RULE_ALLOWLISTEN 158 -#define IDC_RULE_ALLOWLOOPBACK 159 +#define IDC_RULE_ALLOWINBOUND 158 +#define IDC_RULE_ALLOWLISTEN 159 +#define IDC_RULE_ALLOWLOOPBACK 160 -#define IDC_USEFULLBLOCKLIST_CHK 160 -#define IDC_USESTEALTHMODE_CHK 161 -#define IDC_INSTALLBOOTTIMEFILTERS_CHK 162 -#define IDC_PROXYSUPPORT_CHK 163 +#define IDC_USEFULLBLOCKLIST_CHK 161 +#define IDC_USESTEALTHMODE_CHK 162 +#define IDC_INSTALLBOOTTIMEFILTERS_CHK 163 +#define IDC_PROXYSUPPORT_CHK 164 -#define IDC_USEHOSTS_CHK 164 -#define IDC_USECERTIFICATES_CHK 165 -#define IDC_USENETWORKRESOLUTION_CHK 166 +#define IDC_USEHOSTS_CHK 165 +#define IDC_USECERTIFICATES_CHK 166 +#define IDC_USENETWORKRESOLUTION_CHK 167 -#define IDC_ENABLELOG_CHK 167 -#define IDC_LOGPATH 168 -#define IDC_LOGPATH_BTN 169 +#define IDC_ENABLELOG_CHK 168 +#define IDC_LOGPATH 169 +#define IDC_LOGPATH_BTN 170 -#define IDC_LOGSIZELIMIT_HINT 170 -#define IDC_LOGSIZELIMIT_CTRL 171 -#define IDC_LOGSIZELIMIT 172 +#define IDC_LOGSIZELIMIT_HINT 171 +#define IDC_LOGSIZELIMIT_CTRL 172 +#define IDC_LOGSIZELIMIT 173 #define IDC_ENABLENOTIFICATIONS_CHK 174 #define IDC_NOTIFICATIONSOUND_CHK 175 @@ -157,46 +158,46 @@ #define IDM_ABOUT 211 // Tray Menu -#define IDM_TRAY_SHOW 213 -#define IDM_TRAY_START 214 -#define IDM_TRAY_MODEWHITELIST 215 -#define IDM_TRAY_MODEBLACKLIST 216 -#define IDM_TRAY_ENABLELOG_CHK 217 -#define IDM_TRAY_ENABLENOTIFICATIONS_CHK 218 -#define IDM_TRAY_LOGSHOW 219 -#define IDM_TRAY_LOGCLEAR 220 -#define IDM_TRAY_LOGSHOW_ERR 221 -#define IDM_TRAY_LOGCLEAR_ERR 222 -#define IDM_TRAY_SETTINGS 223 -#define IDM_TRAY_WEBSITE 224 -#define IDM_TRAY_ABOUT 225 -#define IDM_TRAY_EXIT 226 +#define IDM_TRAY_SHOW 212 +#define IDM_TRAY_START 213 +#define IDM_TRAY_MODEWHITELIST 214 +#define IDM_TRAY_MODEBLACKLIST 215 +#define IDM_TRAY_ENABLELOG_CHK 216 +#define IDM_TRAY_ENABLENOTIFICATIONS_CHK 217 +#define IDM_TRAY_LOGSHOW 218 +#define IDM_TRAY_LOGCLEAR 219 +#define IDM_TRAY_LOGSHOW_ERR 220 +#define IDM_TRAY_LOGCLEAR_ERR 221 +#define IDM_TRAY_SETTINGS 222 +#define IDM_TRAY_WEBSITE 223 +#define IDM_TRAY_ABOUT 224 +#define IDM_TRAY_EXIT 225 // Listview Menu -#define IDM_ADD_FILE 227 -#define IDM_ALL_PROCESSES 228 -#define IDM_ALL_PACKAGES 229 -#define IDM_ALL_SERVICES 230 -#define IDM_REFRESH2 231 -#define IDM_DISABLENOTIFICATIONS 232 -#define IDM_OPENRULESEDITOR 233 -#define IDM_EXPLORE 234 -#define IDM_COPY 235 -#define IDM_CHECK 236 -#define IDM_UNCHECK 237 -#define IDM_DISABLETIMER 238 +#define IDM_ADD_FILE 226 +#define IDM_ALL_PROCESSES 227 +#define IDM_ALL_PACKAGES 228 +#define IDM_ALL_SERVICES 229 +#define IDM_REFRESH2 230 +#define IDM_DISABLENOTIFICATIONS 231 +#define IDM_OPENRULESEDITOR 232 +#define IDM_EXPLORE 233 +#define IDM_COPY 234 +#define IDM_CHECK 235 +#define IDM_UNCHECK 236 +#define IDM_DISABLETIMER 237 -#define IDM_ADD 239 -#define IDM_EDIT 240 -#define IDM_DELETE 241 +#define IDM_ADD 238 +#define IDM_EDIT 239 +#define IDM_DELETE 240 -#define IDM_EXPORT_APPS 242 -#define IDM_EXPORT_RULES 243 -#define IDM_IMPORT_APPS 244 -#define IDM_IMPORT_RULES 245 +#define IDM_EXPORT_APPS 241 +#define IDM_EXPORT_RULES 242 +#define IDM_IMPORT_APPS 243 +#define IDM_IMPORT_RULES 244 -#define IDM_SELECT_ALL 246 -#define IDM_ZOOM 247 +#define IDM_SELECT_ALL 245 +#define IDM_ZOOM 246 #define IDX_PROCESS 1000 #define IDX_PACKAGE 2000 @@ -237,7 +238,7 @@ #define IDS_TRAY_RULES 29 #define IDS_TRAY_BLOCKLIST_RULES 30 #define IDS_TRAY_SYSTEM_RULES 31 -#define IDS_TRAY_CUSTOM_RULES 32 +#define IDS_TRAY_USER_RULES 32 #define IDS_TRAY_LOG 33 #define IDS_TRAY_LOGERR 34 #define IDS_TRAY_SYSTEM 35 @@ -250,135 +251,137 @@ #define IDS_OPENRULESEDITOR 42 #define IDS_TIMER 43 #define IDS_NOTIMER 44 -#define IDS_EXPLORE 45 -#define IDS_COPY 46 -#define IDS_CHECK 47 -#define IDS_UNCHECK 48 -#define IDS_ADD 49 -#define IDS_EDIT2 50 -#define IDS_DELETE 51 -#define IDS_EXPORT 52 -#define IDS_IMPORT 53 -#define IDS_EXPORT_XML 54 -#define IDS_IMPORT_XML 55 -#define IDS_MODE_WHITELIST 56 -#define IDS_MODE_BLACKLIST 57 -#define IDS_RULE_ALLOWINBOUND 58 -#define IDS_RULE_ALLOWLISTEN 59 -#define IDS_RULE_ALLOWLOOPBACK 60 -#define IDS_HIGHLIGHT_INVALID 61 -#define IDS_HIGHLIGHT_NETWORK 62 -#define IDS_HIGHLIGHT_PACKAGE 63 -#define IDS_HIGHLIGHT_PICO 64 -#define IDS_HIGHLIGHT_SERVICE 65 -#define IDS_HIGHLIGHT_SIGNED 66 -#define IDS_HIGHLIGHT_SILENT 67 -#define IDS_HIGHLIGHT_SPECIAL 68 -#define IDS_HIGHLIGHT_SYSTEM 69 -#define IDS_HIGHLIGHT_TIMER 70 -#define IDS_EDITOR 71 -#define IDS_NAME 72 -#define IDS_RULE 73 -#define IDS_PORTVERSION 74 -#define IDS_PROTOCOL 75 -#define IDS_DIRECTION 76 -#define IDS_ACTION 77 -#define IDS_DATE 78 -#define IDS_FILEPATH 79 -#define IDS_SIGNATURE 80 -#define IDS_ADDRESS 81 -#define IDS_FILTER 82 -#define IDS_NOTES 83 -#define IDS_ADDED 84 -#define IDS_APPLYTO 85 -#define IDS_TIMELEFT 86 -#define IDS_SIGN_SIGNED 87 -#define IDS_SIGN_UNSIGNED 88 -#define IDS_GROUP_ALLOWED 89 -#define IDS_GROUP_BLOCKED 90 -#define IDS_GROUP_ENABLED 91 -#define IDS_GROUP_SPECIAL 92 -#define IDS_GROUP_DISABLED 93 -#define IDS_DIRECTION_1 94 -#define IDS_DIRECTION_2 95 -#define IDS_DIRECTION_3 96 -#define IDS_ACTION_1 97 -#define IDS_ACTION_2 98 -#define IDS_ACTION_3 99 -#define IDS_ACTION_4 100 -#define IDS_RULE_APPLY 101 -#define IDS_RULES_WIKI 102 -#define IDS_ENABLERULE_CHK 103 -#define IDS_SETTINGS_1 104 -#define IDS_SAVE 105 -#define IDS_CLOSE 106 -#define IDS_TITLE_GENERAL 107 -#define IDS_TITLE_LANGUAGE 108 -#define IDS_TITLE_CONFIRMATIONS 109 -#define IDS_TITLE_HIGHLIGHTING 110 -#define IDS_TITLE_EXPERTS 111 -#define IDS_TITLE_LOGGING 112 -#define IDS_TITLE_NOTIFICATIONS 113 -#define IDS_TITLE_ADVANCED 114 -#define IDS_ALWAYSONTOP_CHK 115 -#define IDS_LOADONSTARTUP_CHK 116 -#define IDS_SHOWFILENAMESONLY_CHK 117 -#define IDS_AUTOSIZECOLUMNS_CHK 118 -#define IDS_SKIPUACWARNING_CHK 119 -#define IDS_CHECKUPDATES_CHK 120 -#define IDS_LANGUAGE_HINT 121 -#define IDS_USEFULLBLOCKLIST_CHK 122 -#define IDS_USEFULLBLOCKLIST_HINT 123 -#define IDS_USESTEALTHMODE_CHK 124 -#define IDS_USESTEALTHMODE_HINT 125 -#define IDS_INSTALLBOOTTIMEFILTERS_CHK 126 -#define IDS_INSTALLBOOTTIMEFILTERS_HINT 127 -#define IDS_PROXYSUPPORT_CHK 128 -#define IDS_PROXYSUPPORT_HINT 129 -#define IDS_USEHOSTS_CHK 130 -#define IDS_USECERTIFICATES_CHK 131 -#define IDS_USENETWORKRESOLUTION_CHK 132 -#define IDS_DISABLEWINDOWSFIREWALL_CHK 133 -#define IDS_ENABLEWINDOWSFIREWALL_CHK 134 -#define IDS_CONFIRMEXIT_CHK 135 -#define IDS_CONFIRMDELETE_CHK 136 -#define IDS_COLORS_HINT 137 -#define IDS_CONFIRMLOGCLEAR_CHK 138 -#define IDS_ENABLELOG_CHK 139 -#define IDS_LOGSHOW 140 -#define IDS_LOGCLEAR 141 -#define IDS_LOGSIZELIMIT_HINT 142 -#define IDS_ENABLENOTIFICATIONS_CHK 144 -#define IDS_NOTIFICATIONSOUND_CHK 145 -#define IDS_NOTIFICATIONNOBLOCKLIST_CHK 146 -#define IDS_NOTIFICATIONDISPLAYTIMEOUT_HINT 147 -#define IDS_NOTIFICATIONTIMEOUT_HINT 148 -#define IDS_RULES_BLOCKLIST_HINT 149 -#define IDS_RULES_SYSTEM_HINT 150 -#define IDS_RULES_CUSTOM_HINT 151 -#define IDS_NOTIFY_CREATERULE_ADDRESS 152 -#define IDS_NOTIFY_CREATERULE_PORT 153 -#define IDS_NOTIFY_CREATERULE_TEMP 154 -#define IDS_NOTIFY_DISABLENOTIFICATIONS 155 -#define IDS_NOTIFY_TOOLTIP 156 -#define IDS_SYSTEMDISABLENCSI_CHK 157 -#define IDS_SYSTEMDISABLENCSI_HINT_CHK 158 -#define IDS_QUESTION 159 -#define IDS_QUESTION_DELETE 160 -#define IDS_QUESTION_START 161 -#define IDS_QUESTION_STOP 162 -#define IDS_QUESTION_MODE 163 -#define IDS_QUESTION_EXIT 164 -#define IDS_QUESTION_LISTEN 165 -#define IDS_QUESTION_EXPERT 166 -#define IDS_QUESTION_TIMER 167 -#define IDS_QUESTION_TIMERS 168 -#define IDS_QUESTION_FLAG_CHK 169 -#define IDS_STATUS_TOTAL 170 -#define IDS_STATUS_SELECTED 171 -#define IDS_STATUS_EMPTY 172 -#define IDS_STATUS_ERROR 173 -#define IDS_STATUS_SYNTAX_ERROR 174 +#define IDS_DISABLETIMER 45 +#define IDS_EXPLORE 46 +#define IDS_COPY 47 +#define IDS_SELECT_ALL 48 +#define IDS_CHECK 49 +#define IDS_UNCHECK 50 +#define IDS_ADD 51 +#define IDS_EDIT2 52 +#define IDS_DELETE 53 +#define IDS_EXPORT 54 +#define IDS_IMPORT 55 +#define IDS_EXPORT_XML 56 +#define IDS_IMPORT_XML 57 +#define IDS_MODE_WHITELIST 58 +#define IDS_MODE_BLACKLIST 59 +#define IDS_RULE_ALLOWINBOUND 60 +#define IDS_RULE_ALLOWLISTEN 61 +#define IDS_RULE_ALLOWLOOPBACK 62 +#define IDS_HIGHLIGHT_INVALID 63 +#define IDS_HIGHLIGHT_NETWORK 64 +#define IDS_HIGHLIGHT_PACKAGE 65 +#define IDS_HIGHLIGHT_PICO 66 +#define IDS_HIGHLIGHT_SERVICE 67 +#define IDS_HIGHLIGHT_SIGNED 68 +#define IDS_HIGHLIGHT_SILENT 69 +#define IDS_HIGHLIGHT_SPECIAL 70 +#define IDS_HIGHLIGHT_SYSTEM 71 +#define IDS_HIGHLIGHT_TIMER 72 +#define IDS_EDITOR 73 +#define IDS_NAME 74 +#define IDS_RULE 75 +#define IDS_PORTVERSION 76 +#define IDS_PROTOCOL 77 +#define IDS_DIRECTION 78 +#define IDS_ACTION 79 +#define IDS_DATE 80 +#define IDS_FILEPATH 81 +#define IDS_SIGNATURE 82 +#define IDS_ADDRESS 83 +#define IDS_FILTER 84 +#define IDS_NOTES 85 +#define IDS_ADDED 86 +#define IDS_APPLYTO 87 +#define IDS_TIMELEFT 88 +#define IDS_SIGN_SIGNED 89 +#define IDS_SIGN_UNSIGNED 90 +#define IDS_GROUP_ALLOWED 91 +#define IDS_GROUP_BLOCKED 92 +#define IDS_GROUP_ENABLED 93 +#define IDS_GROUP_SPECIAL 94 +#define IDS_GROUP_DISABLED 95 +#define IDS_DIRECTION_1 96 +#define IDS_DIRECTION_2 97 +#define IDS_DIRECTION_3 98 +#define IDS_ACTION_1 99 +#define IDS_ACTION_2 100 +#define IDS_ACTION_3 101 +#define IDS_ACTION_4 102 +#define IDS_RULE_APPLY 103 +#define IDS_ENABLERULE_CHK 104 +#define IDS_SETTINGS_1 105 +#define IDS_SAVE 106 +#define IDS_CLOSE 107 +#define IDS_TITLE_GENERAL 108 +#define IDS_TITLE_LANGUAGE 109 +#define IDS_TITLE_CONFIRMATIONS 110 +#define IDS_TITLE_HIGHLIGHTING 111 +#define IDS_TITLE_EXPERTS 112 +#define IDS_TITLE_LOGGING 113 +#define IDS_TITLE_NOTIFICATIONS 114 +#define IDS_TITLE_ADVANCED 115 +#define IDS_ALWAYSONTOP_CHK 116 +#define IDS_STARTMINIMIZED_CHK 117 +#define IDS_LOADONSTARTUP_CHK 118 +#define IDS_SHOWFILENAMESONLY_CHK 119 +#define IDS_AUTOSIZECOLUMNS_CHK 120 +#define IDS_SKIPUACWARNING_CHK 121 +#define IDS_CHECKUPDATES_CHK 122 +#define IDS_LANGUAGE_HINT 123 +#define IDS_USEFULLBLOCKLIST_CHK 124 +#define IDS_USEFULLBLOCKLIST_HINT 125 +#define IDS_USESTEALTHMODE_CHK 126 +#define IDS_USESTEALTHMODE_HINT 127 +#define IDS_INSTALLBOOTTIMEFILTERS_CHK 128 +#define IDS_INSTALLBOOTTIMEFILTERS_HINT 129 +#define IDS_PROXYSUPPORT_CHK 130 +#define IDS_PROXYSUPPORT_HINT 131 +#define IDS_USEHOSTS_CHK 132 +#define IDS_USECERTIFICATES_CHK 133 +#define IDS_USENETWORKRESOLUTION_CHK 134 +#define IDS_DISABLEWINDOWSFIREWALL_CHK 135 +#define IDS_ENABLEWINDOWSFIREWALL_CHK 136 +#define IDS_CONFIRMEXIT_CHK 137 +#define IDS_CONFIRMDELETE_CHK 138 +#define IDS_COLORS_HINT 139 +#define IDS_CONFIRMLOGCLEAR_CHK 140 +#define IDS_ENABLELOG_CHK 141 +#define IDS_LOGSHOW 142 +#define IDS_LOGCLEAR 143 +#define IDS_LOGSIZELIMIT_HINT 144 +#define IDS_ENABLENOTIFICATIONS_CHK 145 +#define IDS_NOTIFICATIONSOUND_CHK 146 +#define IDS_NOTIFICATIONNOBLOCKLIST_CHK 147 +#define IDS_NOTIFICATIONDISPLAYTIMEOUT_HINT 148 +#define IDS_NOTIFICATIONTIMEOUT_HINT 149 +#define IDS_RULES_BLOCKLIST_HINT 150 +#define IDS_RULES_SYSTEM_HINT 151 +#define IDS_RULES_USER_HINT 152 +#define IDS_NOTIFY_CREATERULE_ADDRESS 153 +#define IDS_NOTIFY_CREATERULE_PORT 154 +#define IDS_NOTIFY_CREATERULE_TEMP 155 +#define IDS_NOTIFY_DISABLENOTIFICATIONS 156 +#define IDS_NOTIFY_TOOLTIP 157 +#define IDS_SYSTEMDISABLENCSI_CHK 158 +#define IDS_SYSTEMDISABLENCSI_HINT_CHK 159 +#define IDS_QUESTION 160 +#define IDS_QUESTION_DELETE 161 +#define IDS_QUESTION_START 162 +#define IDS_QUESTION_STOP 163 +#define IDS_QUESTION_MODE 164 +#define IDS_QUESTION_EXIT 165 +#define IDS_QUESTION_LISTEN 166 +#define IDS_QUESTION_EXPERT 167 +#define IDS_QUESTION_TIMER 168 +#define IDS_QUESTION_TIMERS 169 +#define IDS_QUESTION_FLAG_CHK 170 +#define IDS_STATUS_TOTAL 171 +#define IDS_STATUS_SELECTED 172 +#define IDS_STATUS_EMPTY 173 +#define IDS_STATUS_ERROR 174 +#define IDS_STATUS_SYNTAX_ERROR 175 // RC data #define IDR_RULES_BLOCKLIST 1 diff --git a/src/resource.rc b/src/resource.rc index 737d132b..be95f3fc 100644 --- a/src/resource.rc +++ b/src/resource.rc @@ -200,6 +200,8 @@ IDM_LISTVIEW MENU MENUITEM SEPARATOR MENUITEM " ", IDM_DELETE MENUITEM SEPARATOR + MENUITEM " ", IDM_SELECT_ALL + MENUITEM SEPARATOR MENUITEM " ", IDM_CHECK MENUITEM " ", IDM_UNCHECK } @@ -213,6 +215,8 @@ IDM_EDITOR MENU MENUITEM " ", IDM_EDIT MENUITEM " ", IDM_DELETE MENUITEM SEPARATOR + MENUITEM " ", IDM_SELECT_ALL + MENUITEM SEPARATOR MENUITEM " ", IDM_CHECK MENUITEM " ", IDM_UNCHECK } @@ -229,7 +233,7 @@ FONT 8, "Ms Shell Dlg" { CONTROL "", IDC_LISTVIEW, WC_LISTVIEW, NOT WS_BORDER | LVS_SHOWSELALWAYS | LVS_REPORT | LVS_SHAREIMAGELISTS, 0, 0, 308, 128 - PUSHBUTTON "", IDC_START_BTN, 8, 138, 100, 14 + PUSHBUTTON "", IDC_START_BTN, 8, 138, 108, 14 PUSHBUTTON "", IDC_SETTINGS_BTN, 144, 138, 66, 14 PUSHBUTTON "", IDC_EXIT_BTN, 214, 138, 66, 14 @@ -260,12 +264,11 @@ FONT 8, "Ms Shell Dlg" COMBOBOX IDC_ACTION_EDIT, 8, 168, 132, 30, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP LTEXT "", IDC_FILES, 150, 6, 132, 10 - CONTROL "", IDC_FILES_LV, WC_LISTVIEW, LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOCOLUMNHEADER | WS_BORDER | WS_TABSTOP | WS_VSCROLL | LVS_SHAREIMAGELISTS, 150, 18, 132, 146 + CONTROL "", IDC_FILES_LV, WC_LISTVIEW, LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOCOLUMNHEADER | WS_BORDER | WS_TABSTOP | WS_VSCROLL | LVS_SHAREIMAGELISTS, 150, 18, 132, 162 - CONTROL "", IDC_RULES_WIKI, WC_LINK, 0, 150, 170, 160, 10 - - AUTOCHECKBOX "", IDC_ENABLED_CHK, 8, 190, 160, 14, BS_VCENTER + AUTOCHECKBOX "", IDC_ENABLED_CHK, 8, 190, 132, 14, BS_VCENTER + PUSHBUTTON "?", IDC_WIKI, 150, 190, 24, 14 PUSHBUTTON "", IDC_SAVE, 178, 190, 50, 14 PUSHBUTTON "", IDC_CLOSE, 232, 190, 50, 14 } @@ -286,17 +289,18 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU | WS_TABSTOP EXSTYLE WS_EX_CONTROLPARENT FONT 8, "Ms Shell Dlg" { - GROUPBOX "", IDC_TITLE_GENERAL, 4, 4, 262, 66 + GROUPBOX "", IDC_TITLE_GENERAL, 4, 4, 262, 78 AUTOCHECKBOX "", IDC_ALWAYSONTOP_CHK, 12, 16, 246, 10 - AUTOCHECKBOX "", IDC_LOADONSTARTUP_CHK, 12, 28, 246, 10 - AUTOCHECKBOX "", IDC_SKIPUACWARNING_CHK, 12, 40, 246, 10 - AUTOCHECKBOX "", IDC_CHECKUPDATES_CHK, 12, 52, 246, 10 + AUTOCHECKBOX "", IDC_STARTMINIMIZED_CHK, 12, 28, 246, 10 + AUTOCHECKBOX "", IDC_LOADONSTARTUP_CHK, 12, 40, 246, 10 + AUTOCHECKBOX "", IDC_SKIPUACWARNING_CHK, 12, 52, 246, 10 + AUTOCHECKBOX "", IDC_CHECKUPDATES_CHK, 12, 64, 246, 10 - GROUPBOX "", IDC_TITLE_LANGUAGE, 4, 72, 262, 34 + GROUPBOX "", IDC_TITLE_LANGUAGE, 4, 84, 262, 34 - LTEXT "", IDC_LANGUAGE_HINT, 12, 86, 114, 12, SS_CENTERIMAGE - COMBOBOX IDC_LANGUAGE, 134, 86, 124, 30, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + LTEXT "", IDC_LANGUAGE_HINT, 12, 98, 114, 12, SS_CENTERIMAGE + COMBOBOX IDC_LANGUAGE, 134, 98, 124, 30, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP } IDD_SETTINGS_HIGHLIGHTING DIALOGEX 107, 0, 272, 186 @@ -433,13 +437,13 @@ STRINGTABLE IDS_ABOUT "About" IDS_TRAY_SHOW "Show/Hide" - IDS_TRAY_START "Install filters" - IDS_TRAY_STOP "Uninstall filters" + IDS_TRAY_START "Enable filtering" + IDS_TRAY_STOP "Disable filtering" IDS_TRAY_MODE "Mode" IDS_TRAY_RULES "Rules" IDS_TRAY_BLOCKLIST_RULES "Blocklist" IDS_TRAY_SYSTEM_RULES "System rules" - IDS_TRAY_CUSTOM_RULES "Custom rules" + IDS_TRAY_USER_RULES "User rules" IDS_TRAY_LOG "Dropped packets log" IDS_TRAY_LOGERR "Errors log" IDS_TRAY_SYSTEM "System" @@ -453,8 +457,10 @@ STRINGTABLE IDS_OPENRULESEDITOR "Create rule" IDS_TIMER "Timer" IDS_NOTIMER "No timer" + IDS_DISABLETIMER "Disable timer" IDS_EXPLORE "Open containing folder" IDS_COPY "Copy" + IDS_SELECT_ALL "Select all" IDS_CHECK "Enable selected" IDS_UNCHECK "Disable selected" @@ -523,7 +529,6 @@ STRINGTABLE IDS_ACTION_4 "Apply" IDS_RULE_APPLY "[%s] ""%s"" for selected apps" - IDS_RULES_WIKI "Rules editor documentation" IDS_ENABLERULE_CHK "Enable rule" @@ -542,6 +547,7 @@ STRINGTABLE IDS_TITLE_ADVANCED "Advanced" IDS_ALWAYSONTOP_CHK "Always on top" + IDS_STARTMINIMIZED_CHK "Start minimized" IDS_LOADONSTARTUP_CHK "Load on system startup" IDS_SHOWFILENAMESONLY_CHK "Show filenames only" IDS_AUTOSIZECOLUMNS_CHK "Autosize columns" @@ -586,7 +592,7 @@ STRINGTABLE IDS_RULES_BLOCKLIST_HINT "Special rules to block spying and tracking on Windows." IDS_RULES_SYSTEM_HINT "Predefined rules applied for system services and protocols." - IDS_RULES_CUSTOM_HINT "Your rules. Rules editor documentation." + IDS_RULES_USER_HINT "User rules. Rules editor documentation." IDS_NOTIFY_CREATERULE_ADDRESS "Create a rule for ""%s"" address" IDS_NOTIFY_CREATERULE_PORT "Create a rule for ""%d"" port"