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();
		}
Exemple #3
0
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;
}
Exemple #4
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;	
	}
Exemple #7
0
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
}
Exemple #8
0
	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;
}
Exemple #11
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(&current);
				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);
	}
}
Exemple #15
0
void tab_appearance_fonts::update_font_desc()
{
	LOGFONT lf;
	get_font(lf);
	uSetWindowText(GetDlgItem(m_wnd, IDC_FONT_DESC), string_font_desc(lf));
}
Exemple #16
0
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);
}