static BOOL CALLBACK ConfigProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: { uTCITEM tabs; memset(&tabs, 0, sizeof(tabs)); HWND wnd_tab = GetDlgItem(wnd, IDC_TAB1); tabs.mask = TCIF_TEXT; tabs.pszText = "Variables"; uTabCtrl_InsertItem(wnd_tab, 0, &tabs); tabs.pszText = "Style"; uTabCtrl_InsertItem(wnd_tab, 1, &tabs); TabCtrl_SetCurSel(wnd_tab, g_cur_tab2); uSendDlgItemMessageText(wnd, IDC_CHAR7, WM_SETTEXT, 0, "\x07"); colour_code_gen(wnd, IDC_COLOUR, false, true); uSendDlgItemMessage(wnd, IDC_STRING, EM_LIMITTEXT, 0, 0); refresh_me(wnd); editproc = (WNDPROC)SetWindowLongPtr(GetDlgItem(wnd, IDC_STRING), GWLP_WNDPROC, (LPARAM)EditHook); g_editor_font_notify.set(GetDlgItem(wnd, IDC_STRING)); } break; case WM_NOTIFY: switch (((LPNMHDR)lp)->idFrom) { case IDC_TAB1: switch (((LPNMHDR)lp)->code) { case TCN_SELCHANGE: { save_string(wnd); int id = TabCtrl_GetCurSel(GetDlgItem(wnd, IDC_TAB1)); g_cur_tab2 = id; uSendDlgItemMessageText(wnd, IDC_STRING, WM_SETTEXT, 0, (g_cur_tab2 == 0 ? cfg_globalstring : cfg_colour)); } break; } break; } break; case WM_DESTROY: { g_editor_font_notify.release(); save_string(wnd); refresh_all_playlist_views(); pvt::ng_playlist_view_t::g_update_all_items(); } break; case WM_COMMAND: switch (wp) { case IDC_GLOBAL: cfg_global = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); break; case IDC_DATE: cfg_playlist_date = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); set_day_timer(); pvt::ng_playlist_view_t::g_on_use_date_info_change(); break; case IDC_TFHELP: { RECT rc; GetWindowRect(GetDlgItem(wnd, IDC_TFHELP), &rc); // MapWindowPoints(HWND_DESKTOP, wnd, (LPPOINT)(&rc), 2); HMENU menu = CreatePopupMenu(); enum { IDM_TFHELP = 1, IDM_GHELP = 2, IDM_SPEEDTEST, IDM_PREVIEW, IDM_EDITORFONT, IDM_RESETSTYLE }; uAppendMenu(menu, (MF_STRING), IDM_TFHELP, "Titleformatting &help"); uAppendMenu(menu, (MF_STRING), IDM_GHELP, "&Global help"); uAppendMenu(menu, (MF_SEPARATOR), 0, ""); uAppendMenu(menu, (MF_STRING), IDM_SPEEDTEST, "&Speed test"); uAppendMenu(menu, (MF_STRING), IDM_PREVIEW, "&Preview to console"); uAppendMenu(menu, (MF_SEPARATOR), 0, ""); uAppendMenu(menu, (MF_STRING), IDM_EDITORFONT, "Change editor &font"); uAppendMenu(menu, (MF_SEPARATOR), 0, ""); uAppendMenu(menu, (MF_STRING), IDM_RESETSTYLE, "&Reset style string"); int cmd = TrackPopupMenu(menu, TPM_LEFTBUTTON | TPM_NONOTIFY | TPM_RETURNCMD, rc.left, rc.bottom, 0, wnd, 0); DestroyMenu(menu); if (cmd == IDM_TFHELP) { standard_commands::main_titleformat_help(); } else if (cmd == IDM_GHELP) { uMessageBox(wnd, COLOUR_HELP "\n\nNew global format: $set_global(var, val), retreive values using $get_global(var)", "Global help", 0); } else if (cmd == IDM_SPEEDTEST) { speedtest(g_columns, cfg_global != 0, cfg_oldglobal != 0, cfg_playlist_date != 0); } else if (cmd == IDM_PREVIEW) { preview_to_console(string_utf8_from_window(wnd, IDC_STRING), g_cur_tab2 != 0 && cfg_global); } else if (cmd == IDM_EDITORFONT) { if (font_picker(wnd, cfg_editor_font)) g_editor_font_notify.on_change(); } else if (cmd == IDM_RESETSTYLE) { extern const char * g_default_colour; cfg_colour = g_default_colour; if (g_cur_tab2 == 1) uSendDlgItemMessageText(wnd, IDC_STRING, WM_SETTEXT, 0, cfg_colour); refresh_all_playlist_views(); pvt::ng_playlist_view_t::g_update_all_items(); } } break; case IDC_OLDGLOBAL: cfg_oldglobal = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); break; case IDC_GLOBALSORT: cfg_global_sort = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); break; case IDC_APPLY: save_string(wnd); refresh_all_playlist_views(); pvt::ng_playlist_view_t::g_update_all_items(); break; case IDC_PICK_COLOUR: colour_code_gen(wnd, IDC_COLOUR, false, false); break; } } return 0; }
BOOL CALLBACK tab_appearance_fonts::on_message(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: { m_wnd = wnd; m_wnd_colours_mode = GetDlgItem(wnd, IDC_COLOURS_MODE); m_wnd_colours_element = GetDlgItem(wnd, IDC_COLOURS_ELEMENT); m_fonts_client_list.g_get_list(m_fonts_client_list); ComboBox_AddString(m_wnd_colours_element, L"Common (list items)"); ComboBox_AddString(m_wnd_colours_element, L"Common (labels)"); t_size i, count = m_fonts_client_list.get_count(); for (i = 0; i < count; i++) ComboBox_AddString(m_wnd_colours_element, pfc::stringcvt::string_os_from_utf8(m_fonts_client_list[i].m_name)); ComboBox_SetCurSel(m_wnd_colours_element, 0); m_element_ptr = g_fonts_manager_data.m_common_items_entry; update_mode_combobox(); update_font_desc(); update_change(); refresh_me(wnd); } break; case WM_DESTROY: { m_wnd = NULL; m_fonts_client_list.remove_all(); m_element_ptr.release(); m_element_api.release(); } break; case WM_COMMAND: switch (wp) { case IDC_CHANGE_FONT: { LOGFONT lf; get_font(lf); if (font_picker(lf, wnd)) { m_element_ptr->font = lf; update_font_desc(); on_font_changed(); } } break; case IDC_COLOURS_MODE | (CBN_SELCHANGE << 16) : { int idx = ComboBox_GetCurSel((HWND)lp); m_element_ptr->font_mode = (cui::fonts::font_mode_t)ComboBox_GetItemData((HWND)lp, idx);; update_font_desc(); update_change(); on_font_changed(); } break; case IDC_COLOURS_ELEMENT | (CBN_SELCHANGE << 16) : { int idx = ComboBox_GetCurSel((HWND)lp); m_element_api.release(); if (idx != -1) { if (idx == 0) m_element_ptr = g_fonts_manager_data.m_common_items_entry; else if (idx == 1) m_element_ptr = g_fonts_manager_data.m_common_labels_entry; else if (idx >= 2) { m_element_api = m_fonts_client_list[idx - 2].m_ptr; g_fonts_manager_data.find_by_guid(m_fonts_client_list[idx - 2].m_guid, m_element_ptr); } } update_mode_combobox(); update_font_desc(); update_change(); } return 0; /*case IDC_IMPORT: g_import_fonts_to_unified(); break;*/ } break; } return 0; }