BOOL OnInitDialog(CWindow wndFocus, LPARAM lInitParam) { short_date_checkbox = GetDlgItem(IDC_SHORT_DATE); no_feat_checkbox = GetDlgItem(IDC_NO_FEAT); ascii_punctuation_checkbox = GetDlgItem(IDC_ASCII_PUNCTUATION); write_ids_checkbox = GetDlgItem(IDC_WRITE_IDS); write_albumtype_checkbox = GetDlgItem(IDC_ALBUMTYPE); write_albumstatus_checkbox = GetDlgItem(IDC_ALBUMSTATUS); write_label_info_checkbox = GetDlgItem(IDC_WRITE_LABEL_INFO); albumtype = GetDlgItem(IDC_ALBUMTYPE_DATA); albumstatus = GetDlgItem(IDC_ALBUMSTATUS_DATA); short_date_checkbox.SetCheck(Preferences::short_date.get_value()); no_feat_checkbox.SetCheck(Preferences::no_feat.get_value()); ascii_punctuation_checkbox.SetCheck(Preferences::ascii_punctuation.get_value()); write_ids_checkbox.SetCheck(Preferences::write_ids.get_value()); write_albumtype_checkbox.SetCheck(Preferences::albumtype.get_value()); write_albumstatus_checkbox.SetCheck(Preferences::albumstatus.get_value()); write_label_info_checkbox.SetCheck(Preferences::write_label_info.get_value()); uSetWindowText(albumtype, Preferences::albumtype_data); uSetWindowText(albumstatus, Preferences::albumstatus_data); if (Preferences::albumtype.get_value()) albumtype.EnableWindow(true); if (Preferences::albumstatus.get_value()) albumstatus.EnableWindow(true); return 0; }
void reset() { short_date_checkbox.SetCheck(false); no_feat_checkbox.SetCheck(false); ascii_punctuation_checkbox.SetCheck(Preferences::default_ascii_punctuation); write_ids_checkbox.SetCheck(true); write_albumtype_checkbox.SetCheck(true); write_albumstatus_checkbox.SetCheck(true); write_label_info_checkbox.SetCheck(Preferences::default_write_label_info); uSetWindowText(albumtype, "MUSICBRAINZ_ALBUMTYPE"); uSetWindowText(albumstatus, "MUSICBRAINZ_ALBUMSTATUS"); on_change(); }
static BOOL CALLBACK RenameProc(HWND wnd,UINT msg,WPARAM wp,LPARAM lp) { switch(msg) { case WM_INITDIALOG: SetWindowLongPtr(wnd,DWLP_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,DWLP_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; }
void set_main_window_text(const char * ptr) { if (ptr) { if (strcmp(windowtext,ptr)) uSetWindowText(g_main_window,ptr); windowtext = ptr; } }
BOOL t_config_tab2::DialogProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: { m_initialising = true; m_wnd_artwork_string = GetDlgItem(wnd, IDC_ARTWORK_STRING); m_wnd_add_artwork = GetDlgItem(wnd, IDC_ADDARTWORK); m_wnd_add_gapless = GetDlgItem(wnd, IDC_SCANGAPLESS); m_wnd_dummy_gapless = GetDlgItem(wnd, IDC_USEDUMMYGAPLESS); m_wnd_video_thumbailer_enabled = GetDlgItem(wnd, IDC_THUMBAILVIDEOS); m_wnd_fb2k_artwork = GetDlgItem(wnd, IDC_FB2KARTWORK); uSetWindowText(m_wnd_artwork_string, settings::artwork_sources); Button_SetCheck(m_wnd_add_artwork, settings::add_artwork ? BST_CHECKED : BST_UNCHECKED); Button_SetCheck(m_wnd_add_gapless, settings::add_gapless ? BST_CHECKED : BST_UNCHECKED); Button_SetCheck(m_wnd_fb2k_artwork, settings::use_fb2k_artwork ? BST_CHECKED : BST_UNCHECKED); Button_SetCheck(m_wnd_dummy_gapless, settings::use_dummy_gapless_data ? BST_CHECKED : BST_UNCHECKED); Button_SetCheck(m_wnd_video_thumbailer_enabled, settings::video_thumbnailer_enabled ? BST_CHECKED : BST_UNCHECKED); on_add_artwork_change(); on_add_gapless_change(); m_initialising = false; } break; case WM_COMMAND: switch (wp) { case IDC_ADDARTWORK | (BN_CLICKED << 16) : settings::add_artwork = Button_GetCheck(m_wnd_add_artwork) == BST_CHECKED; on_add_artwork_change(); break; case IDC_FB2KARTWORK | (BN_CLICKED << 16) : settings::use_fb2k_artwork = Button_GetCheck(m_wnd_fb2k_artwork) == BST_CHECKED; break; case IDC_THUMBAILVIDEOS | (BN_CLICKED << 16) : settings::video_thumbnailer_enabled = Button_GetCheck(m_wnd_video_thumbailer_enabled) == BST_CHECKED; break; case IDC_SCANGAPLESS | (BN_CLICKED << 16) : settings::add_gapless = Button_GetCheck(m_wnd_add_gapless) == BST_CHECKED; on_add_gapless_change(); break; case IDC_USEDUMMYGAPLESS | (BN_CLICKED << 16) : settings::use_dummy_gapless_data = Button_GetCheck(m_wnd_add_gapless) == BST_CHECKED; break; case IDC_ARTWORK_STRING | (EN_CHANGE << 16) : if (!m_initialising) settings::artwork_sources = string_utf8_from_window((HWND)lp); break; } break; case WM_DESTROY: break; } return FALSE; }
void refresh_me(HWND wnd) { initialising = true; #if 0 HWND wnd_edit = GetDlgItem(wnd, IDC_FRONT); uSetWindowText(wnd_edit, artwork_panel::cfg_front); wnd_edit = GetDlgItem(wnd, IDC_BACK); uSetWindowText(wnd_edit, artwork_panel::cfg_back); wnd_edit = GetDlgItem(wnd, IDC_DISC); uSetWindowText(wnd_edit, artwork_panel::cfg_disc); //wnd_edit = GetDlgItem(wnd, IDC_ICON); //uSetWindowText(wnd_edit, artwork_panel::cfg_icon); #endif m_source_list.remove_items(bit_array_true()); t_size index, indexcount = tabsize(g_artwork_sources); for (index = 0; index < indexcount; index++) { t_size subindex, subindexcount = g_artwork_sources[index].m_scripts->get_count(); pfc::array_t<t_list_view::t_item_insert> items; items.set_count(subindexcount); for (subindex=0; subindex<subindexcount; subindex++) { items[subindex].m_groups.add_item(g_artwork_sources[index].m_name); items[subindex].m_subitems.add_item((*g_artwork_sources[index].m_scripts)[subindex]); } m_source_list.insert_items(m_source_list.get_item_count(), items.get_count(), items.get_ptr()); } HWND wnd_combo = GetDlgItem(wnd, IDC_FB2KARTWORK); ComboBox_AddString(wnd_combo, L"Disabled"); ComboBox_AddString(wnd_combo, L"Embedded artwork"); ComboBox_AddString(wnd_combo, L"Embedded and external artwork"); ComboBox_SetCurSel(wnd_combo, artwork_panel::cfg_fb2k_artwork_mode); 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, artwork_panel::cfg_edge_style); initialising = false; }
LRESULT CDialogGoto::OnInitDialog(HWND hwndFocus, LPARAM lParam) { int cur_pos = SendMessage(m_hedit, SCI_GETCURRENTPOS, 0, 0); int cur_line = SendMessage(m_hedit, SCI_LINEFROMPOSITION, cur_pos, 0); uSetWindowText(GetDlgItem(IDC_EDIT_LINENUMBER), pfc::format_int(cur_line + 1).get_ptr()); return TRUE; // set focus to default control }
void update() { pfc::string8 title; if ( path.length() ) { title = pfc::string_filename_ext( path ); title += " - "; } title += "DUMB"; uSetWindowText( wnd, title ); BOOL enable = song_renderer != 0 && cfg_control_override; HWND w; for ( unsigned i = 0; i < DUMB_IT_N_CHANNELS; ++i ) { w = GetDlgItem( wnd, IDC_VOICE1 + i ); uSendMessage( w, BM_SETCHECK, ! ( ( mute_mask >> i ) & 1 ) , 0 ); EnableWindow( w, enable ); ShowWindow( w, ( ( t_uint64(1) << i ) & channels_allowed ) ? SW_SHOWNA : SW_HIDE ); } }
void refresh_me(HWND wnd) { initialising = true; HWND wnd_sort = GetDlgItem(wnd, IDC_SORT); HWND wnd_sort_string = GetDlgItem(wnd, IDC_SORT_STRING); HWND wnd_autosend = GetDlgItem(wnd, IDC_AUTOSEND); HWND wnd_showempty = GetDlgItem(wnd, IDC_SHOWEMPTY); uSetWindowText(wnd_sort_string, filter_panel::cfg_sort_string); Button_SetCheck(wnd_sort, filter_panel::cfg_sort ? BST_CHECKED : BST_UNCHECKED); Button_SetCheck(wnd_showempty, filter_panel::cfg_showemptyitems ? BST_CHECKED : BST_UNCHECKED); Button_SetCheck(wnd_autosend, filter_panel::cfg_autosend ? BST_CHECKED : BST_UNCHECKED); m_field_list.remove_items(bit_array_true()); pfc::list_t<t_list_view::t_item_insert> items; t_size count = filter_panel::cfg_field_list.get_count(); get_insert_items(0, count, items); m_field_list.insert_items(0, items.get_count(), items.get_ptr()); SendDlgItemMessage(wnd,IDC_SPINPADDING,UDM_SETPOS32,0,filter_panel::cfg_vertical_item_padding); initialising = false; }
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; }
LRESULT threaded_process_v2_t::on_message(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_TIMER: if (wp == 1) { ShowWindow(wnd, SW_SHOWNORMAL); KillTimer(wnd, 1); return 0; } else if (wp == 667) { KillTimer(wnd, 667); m_timer_active = false; RedrawWindow(wnd, NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW); return 0; } break; case WM_NCCREATE: modeless_dialog_manager::g_add(wnd); break; case WM_SYSCOLORCHANGE: case WM_THEMECHANGED: refresh_title_font(); resize(); break; case WM_CREATE: { if (m_flags & flag_show_button) { m_textfont = uCreateIconFont(); m_textfont_height = uGetFontHeight(m_titlefont); } if (m_flags & flag_show_text) refresh_title_font(); uSetWindowText(wnd, m_title); //t_size y_progress = 11; //if (m_flags & flag_show_text) // y_progress+=5+uGetFontHeight(m_titlefont); //RECT rc; //GetClientRect(wnd, &rc); //m_wnd_caption = CreateWindowEx(0, WC_STATIC, L"STATIC", WS_CHILD|WS_VISIBLE, 0, 0, 0, 0, wnd, (HMENU)1001, core_api::get_my_instance(), NULL); m_wnd_progress = CreateWindowEx(0, PROGRESS_CLASS, L"PROGRESS", WS_SYSMENU | WS_CHILD | WS_VISIBLE | ((m_flags & flag_progress_marquee) ? 0x08 : 0) | PBS_SMOOTH | WS_GROUP, 0, 0, 0, 0, wnd, (HMENU)1002, core_api::get_my_instance(), NULL); if (0 == (m_flags & flag_progress_marquee)) SendMessage(m_wnd_progress, PBM_SETRANGE32, 0, progress_width/*m_range*/); else SendMessage(m_wnd_progress, WM_USER + 10, TRUE, 20); if (m_flags & flag_show_button) { m_wnd_button = CreateWindowEx(0, WC_BUTTON, L"Stop", WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_DEFPUSHBUTTON | WS_GROUP, 0, 0, 0, 0, wnd, (HMENU)IDCANCEL, core_api::get_my_instance(), NULL); SendMessage(m_wnd_button, WM_SETFONT, (WPARAM)m_textfont.get(), MAKELPARAM(1, 0)); //SetFocus(m_wnd_button); } else { HMENU menu = GetSystemMenu(wnd, FALSE); EnableMenuItem(menu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED); } resize(); if (m_flags & flag_no_delay) { ShowWindow(wnd, SW_SHOWNORMAL); } else { SetTimer(wnd, 1, 300, NULL); } on_init(); } return 0; case WM_SHOWWINDOW: if (wp == TRUE && lp == 0 && m_wnd_button) SetFocus(m_wnd_button); break; case WM_MOVING: { LPRECT lprc = (LPRECT)lp; lprc->right = lprc->left + m_window_cx; lprc->bottom = lprc->top + m_window_cy; } return TRUE; case DM_GETDEFID: if (m_flags & flag_show_button) return IDCANCEL | (DC_HASDEFID << 16); return 0; case WM_DESTROY: on_destroy_thread(); m_textfont.release(); m_titlefont.release(); return 0; case WM_NCDESTROY: modeless_dialog_manager::g_remove(wnd); break; case WM_CLOSE: m_abort.abort(); return 0; case WM_SETFOCUS: break; case WM_COMMAND: switch (wp) { case IDCANCEL: if (m_wnd_button) EnableWindow(m_wnd_button, FALSE); m_abort.abort(); return 0; } break; case WM_PAINT: { pfc::string8 p_text; pfc::array_t<detail_entry> p_detail_entries; { insync(m_sync); p_text = m_text; p_detail_entries = m_detail_entries; } PAINTSTRUCT ps; HDC dc = BeginPaint(wnd, &ps); if (dc) { RECT rc_client, rc_button; GetClientRect(wnd, &rc_client); RECT rc_fill = rc_client; if (m_wnd_button) { GetWindowRect(m_wnd_button, &rc_button); rc_fill.bottom -= RECT_CY(rc_button) + 9; rc_fill.bottom -= 11; } FillRect(dc, &rc_fill, GetSysColorBrush(COLOR_WINDOW)); if (m_wnd_button) { rc_fill.top = rc_fill.bottom; rc_fill.bottom += 1; FillRect(dc, &rc_fill, GetSysColorBrush(COLOR_3DLIGHT)); } rc_fill.top = rc_fill.bottom; rc_fill.bottom = rc_client.bottom; if (rc_fill.top < rc_fill.bottom) FillRect(dc, &rc_fill, GetSysColorBrush(COLOR_3DFACE)); if (m_flags & flag_show_text) { SetTextAlign(dc, TA_LEFT); SetBkMode(dc, TRANSPARENT); //SetTextColor(dc, m_titlecolour); RECT rc; GetClientRect(wnd, &rc); RECT rc2 = { 11 * 2, 11, RECT_CX(rc) - 11 * 2, m_titlefont_height + 11 }; //FillRect(dc, &rc2, GetSysColorBrush(COLOR_BTNFACE)); HFONT fnt_old = SelectFont(dc, m_titlefont); ui_helpers::text_out_colours_ellipsis(dc, p_text, p_text.get_length(), 0, 11, &rc2, false, false, m_titlecolour, ui_helpers::ALIGN_LEFT); //uExtTextOut(dc, 11*2, 11, ETO_CLIPPED, &rc2, m_text, m_text.get_length(), NULL); t_size detail_entry_count = 0; if (detail_entry_count = p_detail_entries.get_count()) { RECT rc3 = rc2; rc3.top = rc2.bottom + 7; rc3.bottom = rc3.top + m_textfont_height; //SetTextColor(dc, GetSysColor(COLOR_BTNTEXT)); SelectFont(dc, m_textfont); unsigned max_x = 0; for (t_size i = 0; i<detail_entry_count; i++) { unsigned last_x = 0; ui_helpers::text_out_colours_ellipsis(dc, p_detail_entries[i].m_label, p_detail_entries[i].m_label.get_length(), 0, rc3.top, &rc3, false, false, GetSysColor(COLOR_WINDOWTEXT), ui_helpers::ALIGN_LEFT, NULL, true, &last_x); max_x = max(last_x, max_x); rc3.top = rc3.bottom; rc3.bottom = rc3.top + m_textfont_height; //uExtTextOut(dc, 11*2, rc3.top, ETO_CLIPPED, &rc3, m_detail_entries[i].m_label, m_detail_entries[i].m_label.get_length(), NULL); } rc3.top = rc2.bottom + 7; rc3.bottom = rc3.top + m_textfont_height; rc3.left = max_x + 5; for (t_size i = 0; i<detail_entry_count; i++) { ui_helpers::text_out_colours_ellipsis(dc, p_detail_entries[i].m_value, p_detail_entries[i].m_value.get_length(), 0, rc3.top, &rc3, false, true, GetSysColor(COLOR_WINDOWTEXT), ui_helpers::ALIGN_LEFT); rc3.top = rc3.bottom; rc3.bottom = rc3.top + m_textfont_height; } } SelectFont(dc, fnt_old); } EndPaint(wnd, &ps); } } return 0; case MSG_REDRAW: resize(); if (!m_timer_active) { LARGE_INTEGER current = { 0 }, freq = { 0 }; QueryPerformanceCounter(¤t); QueryPerformanceFrequency(&freq); t_uint64 tenth = 5; if (m_time_last_redraw.QuadPart) { tenth = (current.QuadPart - m_time_last_redraw.QuadPart) / (freq.QuadPart / 100); } if (tenth < 10) { SetTimer(get_wnd(), 667, 100 - t_uint32(tenth) * 10, NULL); m_timer_active = true; } else RedrawWindow(wnd, NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW); } return 0; case MSG_UPDATE_PROGRESS: if (abs((int)(wp - SendMessage(m_wnd_progress, PBM_GETPOS, 0, 0))) > 0) SendMessage(m_wnd_progress, PBM_SETPOS, wp, 0); return 0; case MSG_END: destroy(); on_exit(); return 0; } return DefWindowProc(wnd, msg, wp, lp); }
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; }
UINT AlsongLyricLinkDialog::DialogProc(UINT iMessage, WPARAM wParam, LPARAM lParam) { switch(iMessage) { case WM_CLOSE: EndDialog(m_hWnd, 0); return TRUE; case WM_DESTROY: return TRUE; case WM_INITDIALOG: { uSetWindowText(m_hWnd, m_track->get_path()); //set artist, title field service_ptr_t<titleformat_object> to; pfc::string8 artist; pfc::string8 title; static_api_ptr_t<titleformat_compiler>()->compile_safe(to, "%artist%"); m_track->format_title(NULL, artist, to, NULL); static_api_ptr_t<titleformat_compiler>()->compile_safe(to, "%title%"); m_track->format_title(NULL, title, to, NULL); uSetDlgItemText(m_hWnd, IDC_ARTIST, artist.get_ptr()); uSetDlgItemText(m_hWnd, IDC_TITLE, title.get_ptr()); //perform listview initialization. LVCOLUMN lv; lv.mask = LVCF_WIDTH | LVCF_TEXT; lv.cx = 150; lv.pszText = TEXT("아티스트"); ListView_InsertColumn(GetDlgItem(m_hWnd, IDC_LYRICLIST), 0, &lv); lv.pszText = TEXT("제목"); ListView_InsertColumn(GetDlgItem(m_hWnd, IDC_LYRICLIST), 1, &lv); SetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE) | WS_DISABLED); //disable next, prev button SetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE) | WS_DISABLED); } return TRUE; case WM_NOTIFY: { NMHDR *hdr = (NMHDR *)lParam; if(hdr->code == LVN_ITEMCHANGED && hdr->idFrom == IDC_LYRICLIST) { int nSel; NMLISTVIEW *nlv = (NMLISTVIEW *)lParam; nSel = nlv->iItem; LVITEM litem; litem.mask = LVIF_PARAM; litem.iItem = nSel; litem.iSubItem = 0; ListView_GetItem(GetDlgItem(m_hWnd, IDC_LYRICLIST), &litem); Lyric *res = m_searchresult->Get((int)litem.lParam); std::string lyric = res->GetRawLyric(); boost::replace_all(lyric, "<br>", "\r\n"); uSetDlgItemText(m_hWnd, IDC_LYRIC, lyric.c_str()); } } return TRUE; case WM_COMMAND: if(HIWORD(wParam) == BN_CLICKED) { switch(LOWORD(wParam)) { case IDC_SEARCH: { pfc::string8 artist; uGetDlgItemText(m_hWnd, IDC_ARTIST, artist); pfc::string8 title; uGetDlgItemText(m_hWnd, IDC_TITLE, title); if(artist.get_length() == 0) { MessageBox(m_hWnd, TEXT("아티스트를 입력해 주세요"), TEXT("에러"), MB_OK); return TRUE; } if(title.get_length() == 0) { MessageBox(m_hWnd, TEXT("제목을 입력해 주세요"), TEXT("에러"), MB_OK); return TRUE; } m_page = 0; m_lyriccount = LyricSourceAlsong().SearchLyricGetCount(artist.toString(), title.toString()); std::stringstream str; str << m_page * 100 + 1 << "~" << min(m_lyriccount, (m_page + 1) * 100) << "/" << m_lyriccount; uSetDlgItemText(m_hWnd, IDC_STATUS, str.str().c_str()); LVITEM item; HWND hListView = GetDlgItem(m_hWnd, IDC_LYRICLIST); item.mask = LVIF_TEXT; item.iItem = 0; item.iSubItem = 0; item.pszText = L""; ListView_InsertItem(hListView, &item); item.iSubItem = 1; item.mask = LVIF_TEXT; item.pszText = L"잠시 기다려 주세요"; ListView_SetItem(hListView, &item); m_searchresult = LyricSourceAlsong().SearchLyric(artist.toString(), title.toString(), 0); PopulateListView(); SetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE) | WS_DISABLED); if(m_lyriccount > 100) SetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE) & ~WS_DISABLED); else SetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE) | WS_DISABLED); } break; case IDC_RESET: SetDlgItemText(m_hWnd, IDC_ARTIST, TEXT("")); SetDlgItemText(m_hWnd, IDC_TITLE, TEXT("")); SetDlgItemText(m_hWnd, IDC_STATUS, TEXT("")); ListView_DeleteAllItems(GetDlgItem(m_hWnd, IDC_LYRICLIST)); SetDlgItemText(m_hWnd, IDC_LYRIC, TEXT("")); SetFocus(GetDlgItem(m_hWnd, IDC_ARTIST)); SetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE) | WS_DISABLED); SetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE) | WS_DISABLED); SetWindowLong(GetDlgItem(m_hWnd, IDC_ARTIST), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_ARTIST), GWL_STYLE) & ~WS_DISABLED); SetWindowLong(GetDlgItem(m_hWnd, IDC_TITLE), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_ARTIST), GWL_STYLE) & ~WS_DISABLED); //reset; break; case IDC_NEWLYRIC: //something break; case IDC_PREV: { if(m_page == 0) return TRUE; m_page --; pfc::string8 artist; uGetDlgItemText(m_hWnd, IDC_ARTIST, artist); pfc::string8 title; uGetDlgItemText(m_hWnd, IDC_TITLE, title); std::stringstream str; str << m_page * 100 + 1 << "~" << min(m_lyriccount, (m_page + 1) * 100) << "/" << m_lyriccount; uSetDlgItemText(m_hWnd, IDC_STATUS, str.str().c_str()); m_searchresult = LyricSourceAlsong().SearchLyric(artist.toString(), title.toString(), 0); PopulateListView(); if(m_page != 0) SetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE) & ~WS_DISABLED); else SetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE) | WS_DISABLED); if(m_lyriccount / 100 != m_page) SetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE) & ~WS_DISABLED); else SetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE) | WS_DISABLED); } break; case IDC_NEXT: { if(m_page == m_lyriccount / 100) return TRUE; m_page ++; pfc::string8 artist; uGetDlgItemText(m_hWnd, IDC_ARTIST, artist); pfc::string8 title; uGetDlgItemText(m_hWnd, IDC_TITLE, title); std::stringstream str; str << m_page * 100 + 1 << "~" << min(m_lyriccount, (m_page + 1) * 100) << "/" << m_lyriccount; uSetDlgItemText(m_hWnd, IDC_STATUS, str.str().c_str()); m_searchresult = LyricSourceAlsong().SearchLyric(artist.toString(), title.toString(), 0); PopulateListView(); if(m_page != 0) SetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE) & ~WS_DISABLED); else SetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_PREV), GWL_STYLE) | WS_DISABLED); if(m_lyriccount / 100 != m_page) SetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE) & ~WS_DISABLED); else SetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE, GetWindowLong(GetDlgItem(m_hWnd, IDC_NEXT), GWL_STYLE) | WS_DISABLED); } break; case IDC_SYNCEDIT: break; case IDC_REGISTER: { int nSel; nSel = SendMessage(GetDlgItem(m_hWnd, IDC_LYRICLIST), LVM_GETSELECTIONMARK, 0, 0); LVITEM litem; litem.mask = LVIF_PARAM; litem.iItem = nSel; litem.iSubItem = 0; ListView_GetItem(GetDlgItem(m_hWnd, IDC_LYRICLIST), &litem); if(LyricSourceAlsong().Save(m_track, *m_searchresult->Get(litem.lParam))) { MessageBox(m_hWnd, TEXT("등록 성공"), TEXT("안내"), MB_OK); static_api_ptr_t<play_control> pc; metadb_handle_ptr p_track; pc->get_now_playing(p_track); if(p_track == m_track) LyricManager::Reload(p_track); EndDialog(m_hWnd, 0); return TRUE; } MessageBox(m_hWnd, TEXT("등록 실패"), TEXT("안내"), MB_OK); } break; case IDC_CANCEL: EndDialog(m_hWnd, 0); break; } } return TRUE; } return FALSE; }
void splitter_window_impl::refresh_children() { unsigned n, count = m_panels.get_count(), size_cumulative = 0; pfc::array_t<bool> new_items; new_items.set_count(count); new_items.fill_null(); for (n = 0; n<count; n++) { if (!m_panels[n]->m_wnd) { uie::window_ptr p_ext; p_ext = m_panels[n]->m_child; bool b_new = false; if (!p_ext.is_valid()) { ui_extension::window::create_by_guid(m_panels[n]->m_guid, p_ext); b_new = true; } if (!m_panels[n]->m_interface.is_valid()) { service_ptr_t<service_base> temp; g_splitter_host_vert.instance_create(temp); uie::window_host_ptr ptr; if (temp->service_query_t(ptr)) { m_panels[n]->m_interface = static_cast<splitter_host_impl*>(ptr.get_ptr()); m_panels[n]->m_interface->set_window_ptr(this); } } if (p_ext.is_valid() && p_ext->is_available(uie::window_host_ptr(static_cast<uie::window_host*>(m_panels[n]->m_interface.get_ptr())))) { pfc::string8 name; if (m_panels[n]->m_use_custom_title) { name = m_panels[n]->m_custom_title; } else { if (!p_ext->get_short_name(name)) p_ext->get_name(name); } HWND wnd_host = m_panels[n]->m_container.create(m_wnd); m_panels[n]->m_container.set_window_ptr(this); uSetWindowText(wnd_host, name); if (wnd_host) { if (b_new) { try { p_ext->set_config(&stream_reader_memblock_ref(m_panels[n]->m_child_data.get_ptr(), m_panels[n]->m_child_data.get_size()), m_panels[n]->m_child_data.get_size(), abort_callback_impl()); } catch (const exception_io & e) { console::formatter() << "Error setting panel config: " << e.what(); } } HWND wnd_panel = p_ext->create_or_transfer_window(wnd_host, uie::window_host_ptr(m_panels[n]->m_interface.get_ptr())); //FIXX if (wnd_panel) { SetWindowLongPtr(wnd_panel, GWL_STYLE, GetWindowLongPtr(wnd_panel, GWL_STYLE) | WS_CLIPSIBLINGS); MINMAXINFO mmi; memset(&mmi, 0, sizeof(MINMAXINFO)); mmi.ptMaxTrackSize.x = MAXLONG; mmi.ptMaxTrackSize.y = MAXLONG; uSendMessage(wnd_panel, WM_GETMINMAXINFO, 0, (LPARAM)&mmi); clip_minmaxinfo(mmi); m_panels[n]->m_wnd = wnd_host; m_panels[n]->m_wnd_child = wnd_panel; m_panels[n]->m_child = p_ext; m_panels[n]->m_size_limits.min_height = mmi.ptMinTrackSize.y; m_panels[n]->m_size_limits.min_width = mmi.ptMinTrackSize.x; m_panels[n]->m_size_limits.max_width = mmi.ptMaxTrackSize.x; m_panels[n]->m_size_limits.max_height = mmi.ptMaxTrackSize.y; /*console::formatter() << "name: " << name << " min width: " << (t_int32)mmi.ptMinTrackSize.x << " min height: " << (t_int32)mmi.ptMinTrackSize.y << " max width: " << (t_int32)mmi.ptMaxTrackSize.y << " max height: " << (t_int32)mmi.ptMaxTrackSize.y;*/ } else { m_panels[n]->m_container.destroy(); } } } new_items[n] = true;//b_new; } } on_size_changed(); if (IsWindowVisible(get_wnd())) { for (n = 0; n<count; n++) { if (new_items[n]) { ShowWindow(m_panels[n]->m_wnd_child, SW_SHOWNORMAL); ShowWindow(m_panels[n]->m_wnd, SW_SHOWNORMAL); } } get_host()->on_size_limit_change(get_wnd(), uie::size_limit_all); RedrawWindow(get_wnd(), 0, 0, RDW_UPDATENOW | RDW_ALLCHILDREN); } }
void tab_appearance_fonts::update_font_desc() { LOGFONT lf; get_font(lf); uSetWindowText(GetDlgItem(m_wnd, IDC_FONT_DESC), string_font_desc(lf)); }
LRESULT console_window::on_message(HWND wnd,UINT msg,WPARAM wp,LPARAM lp) { switch(msg) { case WM_CREATE: { /** * Store a pointer to ourselve in this list, used for global notifications (in the main thread) * which updates instances of our panel. */ list_wnd.add_item(this); { insync(sync); /** Store a window handle in this list, used in global notifications (in any thread) which * updates the panels */ g_notify_list.add_item(wnd); } long flags = 0; if (cfg_frame == 1) flags |= WS_EX_CLIENTEDGE; else if (cfg_frame == 2) flags |= WS_EX_STATICEDGE; /** Create our edit window */ wnd_edit = CreateWindowEx(flags, WC_EDIT, _T(""), WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOVSCROLL | WS_VSCROLL | ES_READONLY | ES_MULTILINE, 0, 0, 0, 0, wnd, HMENU(IDC_EDIT), core_api::get_my_instance(), NULL); if (wnd_edit) { if (g_font) { /** Nth, n>1, instance; use exisiting font handle */ SendMessage(wnd_edit,WM_SETFONT,(WPARAM)g_font,MAKELPARAM(0,0)); } else /** First window - create the font handle */ g_update_all_fonts(); /** Store a pointer to ourself in the user data field of the edit window */ SetWindowLongPtr(wnd_edit,GWL_USERDATA,(LPARAM)(this)); /** Subclass the edit window */ m_editproc = (WNDPROC)SetWindowLongPtr(wnd_edit,GWL_WNDPROC,(LPARAM)(hook_proc)); SendMessage(wnd, MSG_UPDATE, 0, 0); } } break; /** Update the edit window's text */ case MSG_UPDATE: { insync(sync); pfc::string8_fastalloc buffer; buffer.prealloc(1024); unsigned n, count = g_messages.get_count(); for (n=0; n<count; n++) { buffer << "[" << pfc::format_int(g_messages[n].m_time.wHour, 2) << ":" << pfc::format_int(g_messages[n].m_time.wMinute, 2) << ":" << pfc::format_int(g_messages[n].m_time.wSecond, 2) << "] " << g_messages[n].m_message; #if 0 buffer.add_string(pfc::string_printf("[%02u:%02u:%02u] ",(unsigned)g_messages[n].m_time.wHour ,(unsigned)g_messages[n].m_time.wMinute ,(unsigned)g_messages[n].m_time.wSecond)); buffer.add_string(g_messages[n].m_message); //if (n != count-1) // buffer.add_string("\r\n",2); #endif } uSetWindowText(wnd_edit, buffer); LONG_PTR len = SendMessage(wnd_edit, EM_GETLINECOUNT , 0, 0); SendMessage(wnd_edit, EM_LINESCROLL , 0, len); } break; case WM_GETMINMAXINFO: break; case WM_SIZE: /** Reposition the edit window. */ SetWindowPos(wnd_edit, 0, 0, 0, LOWORD(lp), HIWORD(lp), SWP_NOZORDER); break; case WM_ERASEBKGND: return FALSE; case WM_DESTROY: { wnd_edit=0; list_wnd.remove_item(this); SendMessage(wnd_edit,WM_SETFONT,NULL,MAKELPARAM(0,0)); if (list_wnd.get_count() == 0) { DeleteFont(g_font); g_font = 0; } { insync(sync); g_notify_list.remove_item(wnd); } } break; } return DefWindowProc(wnd, msg, wp, lp); }