static BOOL CALLBACK RenameProc(HWND wnd,UINT msg,WPARAM wp,LPARAM lp) { switch(msg) { case WM_INITDIALOG: uSetWindowLong(wnd,DWL_USER,lp); { rename_param * ptr = (rename_param *)lp; ptr->m_scope.initialize(FindOwningPopup(wnd)); uSetWindowText(wnd,uStringPrintf("Rename playlist: \"%s\"",ptr->m_text->get_ptr())); uSetDlgItemText(wnd,IDC_EDIT,ptr->m_text->get_ptr()); } return 1; case WM_COMMAND: switch(wp) { case IDOK: { rename_param * ptr = (rename_param *)GetWindowLong(wnd,DWL_USER); uGetDlgItemText(wnd,IDC_EDIT,*ptr->m_text); EndDialog(wnd,1); } break; case IDCANCEL: EndDialog(wnd,0); break; } break; case WM_CLOSE: EndDialog(wnd,0); break; } return 0; }
BOOL CALLBACK playlists_dropdown::RenameDialogProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: { uSetWindowLong(wnd, DWL_USER, lp); pfc::string_base* ptr = reinterpret_cast<pfc::string_base*>(lp); pfc::string8 title("Rename playlist: \""); title << *ptr << "\""; uSetWindowText(wnd, title); uSetDlgItemText(wnd, IDC_PLAYLIST_NAME, *ptr); Edit_SetSel(uGetDlgItem(wnd, IDC_PLAYLIST_NAME), 0, -1); SetFocus(uGetDlgItem(wnd, IDC_PLAYLIST_NAME)); } return 1; case WM_COMMAND: switch (wp) { case IDOK: uGetDlgItemText(wnd, IDC_PLAYLIST_NAME, *reinterpret_cast<pfc::string_base*>(uGetWindowLong(wnd, DWL_USER))); EndDialog(wnd, 1); break; case IDCANCEL: EndDialog(wnd, 0); break; } break; case WM_CLOSE: EndDialog(wnd, 0); break; } return 0; }
BOOL CALLBACK playlists_dropdown::SortDialogProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: { uSetWindowLong(wnd, DWL_USER, lp); HWND hCombo = uGetDlgItem(wnd, IDC_SORT_STRING); cfg::sort_string.setup_dropdown(hCombo); if (!cfg::sort_string.is_empty()) { ComboBox_SetCurSel(hCombo, 0); ComboBox_SetEditSel(hCombo, 0, -1); } SetFocus(hCombo); } return 1; case WM_CONTEXTMENU: { const HWND source = (HWND) wp; if (source != NULL && source == GetDlgItem(wnd, IDC_SORT_STRING)) { cfg::sort_string.on_context(source, lp); return TRUE; } } break; case WM_COMMAND: switch (wp) { case IDOK: { uGetDlgItemText(wnd, IDC_SORT_STRING, *reinterpret_cast< pfc::string_base * >(uGetWindowLong(wnd, DWL_USER))); pfc::string8 pattern; if (uGetDlgItemText(wnd, IDC_SORT_STRING, pattern)) { cfg::sort_string.add_item(pattern); } EndDialog(wnd, 1); } break; case IDCANCEL: EndDialog(wnd, 0); break; case IDC_FIELDS: { HMENU menu = CreatePopupMenu(); uAppendMenu(menu, MF_STRING | MF_GRAYED | MF_DISABLED, 0, "Copy to clipboard:"); uAppendMenu(menu, MF_SEPARATOR, 0, 0); for (int i = 1; i < tabsize(g_fields_list); i++) { if (!g_fields_list[i].label) break; // Only basic fields uAppendMenu(menu, MF_STRING, i, g_fields_list[i].label); } RECT rc; GetWindowRect(GetDlgItem(wnd, IDC_FIELDS), &rc); int cmd = TrackPopupMenu(menu, TPM_NONOTIFY | TPM_RETURNCMD, rc.left, rc.bottom, 0, GetDlgItem(wnd, IDC_FIELDS), 0); DestroyMenu(menu); if (cmd >= 0 && cmd < tabsize(g_fields_list) && !!g_fields_list[cmd].label) { uSetClipboardString(g_fields_list[cmd].label); } } break; } break; case WM_CLOSE: EndDialog(wnd, 0); break; } return 0; }
BOOL dialog_proc( HWND wnd, UINT msg, WPARAM wp, LPARAM lp ) { switch ( msg ) { case WM_INITDIALOG: { this->wnd = wnd; uSendDlgItemMessage( wnd, IDC_OVERRIDE, BM_SETCHECK, cfg_control_override, 0 ); { insync( lock ); changed_info = false; changed_controls = false; update(); } SetTimer( wnd, 0, 100, 0 ); cfg_placement.on_window_creation(wnd); } return 1; case WM_TIMER: { insync( lock ); if ( changed_info ) { changed_info = false; update(); } } break; case WM_DESTROY: { cfg_placement.on_window_destruction( wnd ); KillTimer( wnd, 0 ); uSetWindowLong( wnd, DWL_USER, 0 ); delete this; dialog = 0; } break; case WM_COMMAND: if ( wp == IDCANCEL ) { DestroyWindow( wnd ); } else if ( wp == IDC_OVERRIDE ) { insync( lock ); cfg_control_override = uSendMessage((HWND)lp,BM_GETCHECK,0,0); BOOL enable = song_renderer != 0 && cfg_control_override; for ( unsigned i = 0, j = DUMB_IT_N_CHANNELS; i < j; ++i ) { EnableWindow( GetDlgItem( wnd, IDC_VOICE1 + i ), enable ); } changed_controls = true; } else if ( wp == IDC_RESET ) { insync( lock ); changed_controls = mute_mask != 0; mute_mask = 0; if ( changed_controls ) { update(); } } else if ( wp - IDC_VOICE1 < DUMB_IT_N_CHANNELS ) { unsigned voice = wp - IDC_VOICE1; t_uint64 mask = ~(1 << voice); t_uint64 bit = uSendMessage((HWND)lp,BM_GETCHECK,0,0) ? 0 : ( 1 << voice ); insync( lock ); changed_controls = true; mute_mask = ( mute_mask & mask ) | bit; } break; } return 0; }
LRESULT window_visualisation::on_message(HWND wnd,UINT msg,WPARAM wp,LPARAM lp) { if(msg == WM_CREATE) { m_wnd = wnd; long flags = WS_EX_CONTROLPARENT; if (m_frame == 1) flags |= WS_EX_CLIENTEDGE; if (m_frame == 2) flags |= WS_EX_STATICEDGE; uSetWindowLong(wnd, GWL_EXSTYLE, flags); SetWindowPos(wnd,0,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED); list_vis.add_item(this); initialised = true; ui_extension::visualisation::create_by_guid(get_visualisation_guid(), p_vis); if (p_vis.is_valid()) { GetClientRect(wnd, &rc_client); window_visualisation_interface::g_create(m_interface, this); try{ p_vis->set_config(&stream_reader_memblock_ref(m_data.get_ptr(), m_data.get_size()),m_data.get_size(),abort_callback_impl()); }catch(const exception_io &){}; p_vis->enable(ui_extension::visualisation_host_ptr(m_interface.get_ptr())); } } else if (msg == WM_DESTROY) { if (p_vis.is_valid()) p_vis->disable(); flush_bitmap(); m_interface.release(); initialised = false; list_vis.remove_item(this); m_wnd=0; } else if (msg == WM_PAINT) { if (p_vis.is_valid()) { RECT rc_paint; if (!GetUpdateRect(wnd, &rc_paint, 0)) { rc_paint = rc_client; } HDC dc = GetDC(wnd); HDC dc_bmp = CreateCompatibleDC(0); if (!bm_display) make_bitmap(dc); HGDIOBJ meh = SelectObject(dc_bmp,bm_display); BitBlt(dc,0,0,rc_client.right,rc_client.bottom,dc_bmp,0,0,SRCCOPY); SelectObject(dc_bmp,meh); DeleteDC(dc_bmp); ReleaseDC(wnd, dc); ValidateRect(wnd, &rc_paint); } } else if (msg == WM_WINDOWPOSCHANGED) { LPWINDOWPOS lpwp = (LPWINDOWPOS)lp; if (!(lpwp->flags & SWP_NOSIZE)) { GetClientRect(wnd, &rc_client); flush_bitmap(); } } else if (msg == WM_ERASEBKGND) { return FALSE; } return uDefWindowProc(wnd,msg,wp,lp); }
static BOOL CALLBACK ConfigProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: { uSendDlgItemMessageText(wnd, IDC_PLISTEDGE, CB_ADDSTRING, 0, "None"); uSendDlgItemMessageText(wnd, IDC_PLISTEDGE, CB_ADDSTRING, 0, "Sunken"); uSendDlgItemMessageText(wnd, IDC_PLISTEDGE, CB_ADDSTRING, 0, "Grey"); uSendDlgItemMessage(wnd, IDC_SPINPL, UDM_SETRANGE32, -100, 100); uSendDlgItemMessage(wnd, IDC_SWITCH_SPIN, UDM_SETRANGE32, 0, 10000); refresh_me(wnd); initialised = true; } break; case WM_DESTROY: { initialised = false; SendMessage(wnd, WM_COMMAND, IDC_APPLY, 0); } break; case WM_COMMAND: switch (wp) { case (EN_CHANGE << 16) | IDC_PLHEIGHT: { if (initialised) { BOOL result; int new_height = GetDlgItemInt(wnd, IDC_PLHEIGHT, &result, TRUE); if (result) cfg_plheight = new_height; // if (g_plist) uSendMessage(g_plist, LB_SETITEMHEIGHT, 0, get_pl_item_height()); playlist_switcher_t::g_on_vertical_item_padding_change(); } } break; case IDC_APPLY: if (playlist_switcher_string_changed) { playlist_switcher_t::g_refresh_all_items(); playlist_switcher_string_changed = false; } break; case IDC_PLAUTOHIDE: { cfg_pl_autohide = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); g_on_autohide_tabs_change(); // if (g_main_window) // { // bool move = false; // if (create_plist()) move = true; // if (create_tabs()) move = true; // if (move) {move_window_controls();RedrawWindow(g_main_window, 0, 0, RDW_INVALIDATE|RDW_UPDATENOW);} // } } break; case IDC_MCLICK: cfg_mclick = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); break; //case IDC_SHIFT_LMB: // cfg_playlists_shift_lmb = SendMessage((HWND)lp,BM_GETCHECK,0,0); // break; //case IDC_DELETE: //cfg_playlist_panel_delete = uSendMessage((HWND)lp,BM_GETCHECK,0,0); //break; case (EN_CHANGE << 16) | IDC_PLAYLIST_TF: cfg_playlist_switcher_tagz = string_utf8_from_window((HWND)lp); playlist_switcher_string_changed = true; break; case IDC_SIDEBAR_TOOLTIPS: cfg_playlist_sidebar_tooltips = SendMessage((HWND)lp, BM_GETCHECK, 0, 0); break; case IDC_USE_PLAYLIST_TF: cfg_playlist_switcher_use_tagz = SendMessage((HWND)lp, BM_GETCHECK, 0, 0); playlist_switcher_t::g_refresh_all_items(); playlist_switcher_string_changed = false; break; case IDC_TABS_MULTILINE: { cfg_tabs_multiline = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); g_on_multiline_tabs_change(); #if 0 if (g_main_window && g_tab) { // create_tabs(); long flags = WS_CHILD | TCS_HOTTRACK | TCS_TABS | (cfg_tabs_multiline ? TCS_MULTILINE : TCS_SINGLELINE) | WS_VISIBLE | WS_CLIPSIBLINGS | TCS_SINGLELINE; uSetWindowLong(g_tab, GWL_STYLE, flags); move_window_controls(); } #endif } break; case IDC_MCLICK3: { cfg_plm_rename = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); } break; case IDC_PLDRAG: { cfg_drag_pl = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); } break; #if 0 case IDC_MCLICK2: { cfg_mclick2 = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); } break; case IDC_TABS: { cfg_tabs = uSendMessage((HWND)lp, BM_GETCHECK, 0, 0); if (g_main_window) { create_tabs(); move_window_controls(); } } break; #endif case (CBN_SELCHANGE << 16) | IDC_PLISTEDGE: { cfg_plistframe = uSendMessage((HWND)lp, CB_GETCURSEL, 0, 0); playlist_switcher_t::g_on_edgestyle_change(); } break; } } return 0; }
static BOOL CALLBACK SpectrumPopupProc(HWND wnd,UINT msg,WPARAM wp,LPARAM lp) { switch(msg) { case WM_INITDIALOG: uSetWindowLong(wnd,DWL_USER,lp); { spec_param * ptr = reinterpret_cast<spec_param*>(lp); ptr->m_scope.initialize(FindOwningPopup(wnd)); uSendDlgItemMessage(wnd, IDC_BARS, BM_SETCHECK, ptr->ptr->mode == MODE_BARS, 0); HWND wnd_combo = GetDlgItem(wnd, IDC_FRAME_COMBO); EnableWindow(wnd_combo, ptr->b_show_frame); if (ptr->b_show_frame) { ComboBox_AddString(wnd_combo, _T("None")); ComboBox_AddString(wnd_combo, _T("Sunken")); ComboBox_AddString(wnd_combo, _T("Grey")); ComboBox_SetCurSel(wnd_combo, ptr->frame); } wnd_combo = GetDlgItem(wnd, IDC_SCALE); ComboBox_AddString(wnd_combo, _T("Linear")); ComboBox_AddString(wnd_combo, _T("Logarithmic")); ComboBox_SetCurSel(wnd_combo, ptr->m_scale); wnd_combo = GetDlgItem(wnd, IDC_VERTICAL_SCALE); ComboBox_AddString(wnd_combo, _T("Linear")); ComboBox_AddString(wnd_combo, _T("Logarithmic")); ComboBox_SetCurSel(wnd_combo, ptr->m_vertical_scale); } return TRUE; 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: { spec_param * ptr = reinterpret_cast<spec_param*>(uGetWindowLong(wnd,DWL_USER)); if (GetDlgItem(wnd, IDC_PATCH_FORE) == (HWND)lp) { HDC dc =(HDC)wp; if (!ptr->br_fore) { ptr->br_fore = CreateSolidBrush(ptr->cr_fore); } return (BOOL)ptr->br_fore; } else if (GetDlgItem(wnd, IDC_PATCH_BACK) == (HWND)lp) { HDC dc =(HDC)wp; if (!ptr->br_back) { ptr->br_back = CreateSolidBrush(ptr->cr_back); } return (BOOL)ptr->br_back; } else return (BOOL)GetSysColorBrush(COLOR_3DHIGHLIGHT); } break; case WM_COMMAND: switch(wp) { case IDCANCEL: EndDialog(wnd,0); return TRUE; case IDC_CHANGE_BACK: { spec_param * ptr = reinterpret_cast<spec_param*>(uGetWindowLong(wnd,DWL_USER)); COLORREF COLOR = ptr->cr_back; COLORREF COLORS[16] = {get_default_colour(colours::COLOUR_BACK),GetSysColor(COLOR_3DFACE),0,0,0,0,0,0,0,0,0,0,0,0,0,0}; if (uChooseColor(&COLOR, wnd, &COLORS[0])) { ptr->cr_back = COLOR; ptr->flush_back(); RedrawWindow(GetDlgItem(wnd, IDC_PATCH_BACK), 0, 0, RDW_INVALIDATE|RDW_UPDATENOW); } } break; case IDC_CHANGE_FORE: { spec_param * ptr = reinterpret_cast<spec_param*>(uGetWindowLong(wnd,DWL_USER)); COLORREF COLOR = ptr->cr_fore; COLORREF COLORS[16] = {get_default_colour(colours::COLOUR_TEXT),GetSysColor(COLOR_3DSHADOW),0,0,0,0,0,0,0,0,0,0,0,0,0,0}; if (uChooseColor(&COLOR, wnd, &COLORS[0])) { ptr->cr_fore = COLOR; ptr->flush_fore(); RedrawWindow(GetDlgItem(wnd, IDC_PATCH_FORE), 0, 0, RDW_INVALIDATE|RDW_UPDATENOW); } } break; case IDC_BARS: { spec_param * ptr = reinterpret_cast<spec_param*>(uGetWindowLong(wnd,DWL_USER)); ptr->mode = (uSendMessage((HWND)lp, BM_GETCHECK, 0, 0) != TRUE ? MODE_STANDARD : MODE_BARS); } break; case IDC_FRAME_COMBO|(CBN_SELCHANGE<<16): { spec_param * ptr = reinterpret_cast<spec_param*>(uGetWindowLong(wnd,DWL_USER)); ptr->frame = ComboBox_GetCurSel(HWND(lp)); } break; case IDC_SCALE|(CBN_SELCHANGE<<16): { spec_param * ptr = reinterpret_cast<spec_param*>(uGetWindowLong(wnd,DWL_USER)); ptr->m_scale = ComboBox_GetCurSel(HWND(lp)); } break; case IDC_VERTICAL_SCALE|(CBN_SELCHANGE<<16): { spec_param * ptr = reinterpret_cast<spec_param*>(uGetWindowLong(wnd,DWL_USER)); ptr->m_vertical_scale = ComboBox_GetCurSel(HWND(lp)); } break; case IDOK: { spec_param * ptr = reinterpret_cast<spec_param*>(uGetWindowLong(wnd,DWL_USER)); EndDialog(wnd,1); } return TRUE; default: return FALSE; } default: return FALSE; } }