Exemplo n.º 1
0
	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;
	}
Exemplo n.º 2
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;
}