virtual void activate() { if (g_main_window) { if (g_icon_created && !cfg_show_systray) destroy_systray_icon(); if (!is_visible()) { ShowWindow(g_main_window, SW_RESTORE); if ((GetWindowLong(g_main_window, GWL_EXSTYLE) & WS_EX_LAYERED)) RedrawWindow(g_main_window, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN | RDW_UPDATENOW); } SetForegroundWindow(g_main_window); } }
static BOOL CALLBACK ConfigProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: { refresh_me(wnd); initialised = true; } break; case WM_DESTROY: { initialised = false; } break; case WM_COMMAND: switch (wp) { case (EN_CHANGE << 16) | IDC_STRING: main_window::config_notification_icon_script.set(string_utf8_from_window((HWND)lp)); break; case IDC_NOWPL: { cfg_np = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); } break; case IDC_USE_CUSTOM_ICON: { cfg_custom_icon = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); create_icon_handle(); create_systray_icon(); } break; case IDC_BROWSE_ICON: { pfc::string8 path = cfg_tray_icon_path; if (uGetOpenFileName(wnd, "Icon Files (*.ico)|*.ico|All Files (*.*)|*.*", 0, "ico", "Choose Icon", NULL, path, FALSE)) { cfg_tray_icon_path = path; if (cfg_custom_icon) { create_icon_handle(); create_systray_icon(); } } } break; case IDC_MINIMISE_TO_SYSTRAY: { cfg_minimise_to_tray = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); } break; case IDC_SHOW_SYSTRAY: { cfg_show_systray = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); // EnableWindow(GetDlgItem(wnd, IDC_MINIMISE_TO_SYSTRAY), cfg_show_systray); if (g_main_window) { auto is_iconic = IsIconic(g_main_window) != 0; if (cfg_show_systray && !g_icon_created) { create_systray_icon(); } else if (!cfg_show_systray && g_icon_created && (!is_iconic || !cfg_minimise_to_tray)) { destroy_systray_icon(); if (is_iconic) standard_commands::main_activate(); } if (g_status) update_systray(); } } break; case IDC_BALLOON: { cfg_balloon = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); } break; } } return 0; }