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 item_details_config_t::on_message(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { /*case DM_GETDEFID: SetWindowLongPtr(wnd, DWL_MSGRESULT, MAKELONG(m_modal ? IDOK : IDCANCEL, DC_HASDEFID)); return TRUE;*/ case WM_INITDIALOG: { m_wnd = wnd; if (!m_modal) { modeless_dialog_manager::g_add(wnd); m_this->set_config_wnd(wnd); ShowWindow(GetDlgItem(wnd, IDOK), SW_HIDE); SetWindowText(GetDlgItem(wnd, IDCANCEL), L"Close"); } uSetWindowText(GetDlgItem(wnd, IDC_SCRIPT), m_script); HWND wnd_combo = GetDlgItem(wnd, IDC_EDGESTYLE); ComboBox_AddString(wnd_combo, L"None"); ComboBox_AddString(wnd_combo, L"Sunken"); ComboBox_AddString(wnd_combo, L"Grey"); ComboBox_SetCurSel(wnd_combo, m_edge_style); wnd_combo = GetDlgItem(wnd, IDC_HALIGN); ComboBox_AddString(wnd_combo, L"Left"); ComboBox_AddString(wnd_combo, L"Centre"); ComboBox_AddString(wnd_combo, L"Right"); ComboBox_SetCurSel(wnd_combo, m_horizontal_alignment); wnd_combo = GetDlgItem(wnd, IDC_VALIGN); ComboBox_AddString(wnd_combo, L"Top"); ComboBox_AddString(wnd_combo, L"Centre"); ComboBox_AddString(wnd_combo, L"Bottom"); ComboBox_SetCurSel(wnd_combo, m_vertical_alignment); LOGFONT lf; static_api_ptr_t<cui::fonts::manager>()->get_font(g_guid_item_details_font_client, lf); m_font_code_generator.initialise(lf, wnd, IDC_FONT_CODE); colour_code_gen(wnd, IDC_COLOUR_CODE, false, true); if (!m_modal) { SendMessage(wnd, DM_SETDEFID, IDCANCEL, NULL); SetFocus(GetDlgItem(wnd, IDCANCEL)); return FALSE; } else return FALSE; } return FALSE;// m_modal ? FALSE : TRUE; case WM_DESTROY: if (m_timer_active) on_timer(); if (!m_modal) m_this->set_config_wnd(NULL); break; case WM_NCDESTROY: m_wnd = NULL; if (!m_modal) { modeless_dialog_manager::g_remove(wnd); SetWindowLongPtr(wnd, DWL_USER, NULL); delete this; } break; case WM_ERASEBKGND: SetWindowLongPtr(wnd, DWL_MSGRESULT, TRUE); return TRUE; case WM_PAINT: ui_helpers::innerWMPaintModernBackground(wnd, GetDlgItem(wnd, IDOK)); return TRUE; case WM_CTLCOLORSTATIC: SetBkColor((HDC)wp, GetSysColor(COLOR_WINDOW)); SetTextColor((HDC)wp, GetSysColor(COLOR_WINDOWTEXT)); return (BOOL)GetSysColorBrush(COLOR_WINDOW); case WM_CLOSE: if (m_modal) { SendMessage(wnd, WM_COMMAND, IDCANCEL, NULL); return TRUE; } break; case WM_TIMER: if (wp == timer_id) on_timer(); break; case WM_COMMAND: switch (LOWORD(wp)) { case IDOK: if (m_modal) EndDialog(wnd, 1); return TRUE; case IDCANCEL: if (m_modal) EndDialog(wnd, 0); else { DestroyWindow(wnd); } return TRUE; case IDC_GEN_COLOUR: colour_code_gen(wnd, IDC_COLOUR_CODE, false, false); break; case IDC_GEN_FONT: m_font_code_generator.run(wnd, IDC_FONT_CODE); break; case IDC_SCRIPT: switch (HIWORD(wp)) { case EN_CHANGE: m_script = string_utf8_from_window(HWND(lp)); if (!m_modal) start_timer(); break; } break; case IDC_EDGESTYLE: switch (HIWORD(wp)) { case CBN_SELCHANGE: m_edge_style = ComboBox_GetCurSel((HWND)lp); if (!m_modal) { m_this->set_edge_style(m_edge_style); cfg_item_details_edge_style = m_edge_style; } break; } break; case IDC_HALIGN: switch (HIWORD(wp)) { case CBN_SELCHANGE: m_horizontal_alignment = ComboBox_GetCurSel((HWND)lp); if (!m_modal) { m_this->set_horizontal_alignment(m_horizontal_alignment); cfg_item_details_horizontal_alignment = m_horizontal_alignment; } break; } break; case IDC_VALIGN: switch (HIWORD(wp)) { case CBN_SELCHANGE: m_vertical_alignment = ComboBox_GetCurSel((HWND)lp); if (!m_modal) { m_this->set_vertical_alignment(m_vertical_alignment); cfg_item_details_vertical_alignment = m_vertical_alignment; } break; } break; } break; } return FALSE; }