示例#1
0
	virtual void set_data (stream_reader * p_reader, t_size stream_size, t_uint32 type, cui::fcl::t_import_feedback & feedback, abort_callback & p_abort)
	{
		fcl::reader reader(p_reader, stream_size, p_abort);
		t_uint32 element_id;
		t_uint32 element_size;
		bool b_font_read = false;

		while (reader.get_remaining())
		{
			reader.read_item(element_id);
			reader.read_item(element_size);

			switch (element_id)
			{
			case font_status:
				b_font_read = true;
				reader.read_item(cfg_status_font);
				break;
			default:
				reader.skip(element_size);
				break;
			};
		}

		if (b_font_read)
			g_import_fonts_to_unified(false, false, true);
		//on_status_font_change();
	}
示例#2
0
	virtual HWND init(HookProc_t hook)
	{
		{
			OSVERSIONINFOEX osvi;
			memset(&osvi, 0, sizeof(osvi));
			osvi.dwOSVersionInfoSize = sizeof(osvi);
			if (GetVersionEx((LPOSVERSIONINFO)&osvi))
			{
				if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 && osvi.wServicePackMajor == 0)
				{
					pfc::string_formatter message;
					message << "Sorry, your operating system Windows XP ";
					if (!osvi.wServicePackMajor)
						message << "(no service pack installed)";
					else
						message << "Service Pack " << osvi.wServicePackMajor;
					message << " is not supported by Columns UI. Please upgrade to Service Pack 1 or newer and try again.\n\nOtherwise, uninstall the Columns UI component to return to the Default User Interface.",
						MessageBox(NULL, uT(message), _T("Columns UI - Unsupported operating system"), MB_OK | MB_ICONEXCLAMATION);
					return NULL;

				}
			}
		}
		//		performance_counter startup;

		if (main_window::config_get_is_first_run())
		{
			if (!cfg_layout.get_presets().get_count())
				cfg_layout.reset_presets();
		}

		main_window::g_hookproc = hook;


		WNDCLASS  wc;
		memset(&wc, 0, sizeof(wc));

		create_icon_handle();

		wc.lpfnWndProc = (WNDPROC)g_MainWindowProc;
		wc.style = CS_DBLCLKS;
		wc.hInstance = core_api::get_my_instance();
		wc.hIcon = static_api_ptr_t<ui_control>()->get_main_icon();//g_main_icon;
		wc.hCursor = LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW));
		wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
		wc.lpszClassName = main_window_class_name;

		ATOM cls = RegisterClass(&wc);

		RECT rc_work;
		SystemParametersInfo(SPI_GETWORKAREA, NULL, &rc_work, NULL);

		const unsigned cx = (rc_work.right - rc_work.left) * 80 / 100;
		const unsigned cy = (rc_work.bottom - rc_work.top) * 80 / 100;

		unsigned left = (rc_work.right - rc_work.left - cx) / 2;
		unsigned top = (rc_work.bottom - rc_work.top - cy) / 2;

		if (main_window::config_get_is_first_run())
		{
			cfg_plist_width = cx * 10 / 100;
		}
		else if (!g_colours_fonts_imported)
		{
			g_import_pv_colours_to_unified_global();
			g_import_fonts_to_unified();
		}

		g_colours_fonts_imported = true;

		g_main_window = CreateWindowEx(main_window::config_get_transparency_enabled() ? WS_EX_LAYERED : 0 /*WS_EX_TOOLWINDOW*/, main_window_class_name, _T("foobar2000"), WS_OVERLAPPED | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN | WS_CLIPSIBLINGS |
			WS_THICKFRAME, left, top, cx, cy, 0, 0, core_api::get_my_instance(), NULL);

		main_window::on_transparency_enabled_change();

		bool rem_pos = remember_window_pos();

		if (rem_pos && !main_window::config_get_is_first_run())
		{
			SetWindowPlacement(g_main_window, &cfg_window_placement_columns.get_value());
			size_windows();
			ShowWindow(g_main_window, cfg_window_placement_columns.get_value().showCmd);

			if (g_icon_created && (cfg_window_placement_columns.get_value().showCmd == SW_SHOWMINIMIZED) && cfg_minimise_to_tray)
				ShowWindow(g_main_window, SW_HIDE);
		}
		else
		{
			size_windows();
			ShowWindow(g_main_window, SW_SHOWNORMAL);
		}

		if (g_rebar) ShowWindow(g_rebar, SW_SHOWNORMAL);
		if (g_status) ShowWindow(g_status, SW_SHOWNORMAL);
		if (g_status_pane.get_wnd()) ShowWindow(g_status_pane.get_wnd(), SW_SHOWNORMAL);
		g_layout_window.show_window();

		RedrawWindow(g_main_window, 0, 0, RDW_UPDATENOW | RDW_ALLCHILDREN);

		if (main_window::config_get_is_first_run())
			SendMessage(g_main_window, MSG_RUN_INITIAL_SETUP, NULL, NULL);

		main_window::config_set_is_first_run();

		return g_main_window;
	}
示例#3
0
	virtual void set_data (stream_reader * p_reader, t_size stream_size, t_uint32 type, cui::fcl::t_import_feedback & feedback, abort_callback & p_abort)
	{
		fcl::reader reader(p_reader, stream_size, p_abort);
		t_uint32 element_id;
		t_uint32 element_size;
		bool b_font_read = false, b_colour_read=false;

		bool item_padding_read = false;
		uih::IntegerAndDpi<int32_t> item_padding(0, uih::GetSystemDpiCached().cx);

		while (reader.get_remaining())
		{
			reader.read_item(element_id);
			reader.read_item(element_size);

			switch (element_id)
			{
			case identifier_vertical_item_padding:
				reader.read_item(item_padding.value);
				item_padding_read = true;
				break;
			case identifier_vertical_item_padding_dpi:
				reader.read_item(item_padding.dpi);
				item_padding_read = true;
				break;
			case colours_pview_mode:
				reader.read_item(cfg_pv_use_custom_colours);
				break;
			case colours_pview_use_system_focus_frame:
				reader.read_item(cfg_pv_use_system_frame);
				break;
			case colours_pview_background:
				b_colour_read=true;
				reader.read_item(cfg_back);
				break;
			case colours_pview_selection_background:
				reader.read_item(cfg_pv_selected_back);
				break;
			case colours_pview_inactive_selection_background:
				reader.read_item(cfg_pv_selected_text_no_focus);
				break;
			case colours_pview_text:
				reader.read_item(cfg_pv_text_colour);
				break;
			case colours_pview_selection_text:
				reader.read_item(cfg_pv_selected_text_colour);
				break;
			case colours_pview_inactive_selection_text:
				reader.read_item(cfg_pv_selected_text_no_focus);
				break;
			case colours_pview_header_font:
				reader.read_item(cfg_header_font);
				break;
			case colours_pview_list_font:
				b_font_read = true;
				reader.read_item(cfg_font);
				break;
			default:
				reader.skip(element_size);
				break;
			};
		}

		//on_header_font_change();
		//on_playlist_font_change();
		//pvt::ng_playlist_view_t::g_on_font_change();
		//pvt::ng_playlist_view_t::g_on_header_font_change();
		if (b_font_read)
			g_import_fonts_to_unified(true, false, false);
		if (b_colour_read)
			g_import_pv_colours_to_unified_global();

		if (item_padding_read)
			settings::playlist_view_item_padding = item_padding;
		//refresh_all_playlist_views();	
		//pvt::ng_playlist_view_t::g_update_all_items();
	}
示例#4
0
	virtual void set_data (stream_reader * p_reader, t_size stream_size, t_uint32 type, cui::fcl::t_import_feedback & feedback, abort_callback & p_abort)
	{
		fcl::reader reader(p_reader, stream_size, p_abort);
		t_uint32 element_id;
		t_uint32 element_size;
		bool b_font_read = false;

		bool item_padding_read = false;
		uih::IntegerAndDpi<int32_t> item_padding(0, uih::GetSystemDpiCached().cx);

		while (reader.get_remaining())
		{
			reader.read_item(element_id);
			reader.read_item(element_size);

			switch (element_id)
			{
			case identifier_item_height:
				item_padding_read = true;
				reader.read_item(item_padding.value);
				break;
			case identifier_item_height_dpi:
				reader.read_item(item_padding.dpi);
				break;
			case colours_switcher_background:
				reader.read_item(cfg_plist_bk);
				break;
			case colours_switcher_selection_background:
				reader.read_item(cfg_plist_selected_back);
				break;
			case colours_switcher_inactive_selection_background:
				reader.read_item(cfg_plist_selected_back_no_focus);
				break;
			case colours_switcher_text:
				reader.read_item(cfg_plist_text);
				break;
			case colours_switcher_selection_text:
				reader.read_item(cfg_plist_selected_text);
				break;
			case colours_switcher_inactive_selection_text:
				reader.read_item_config(playlist_switcher::colours::config_inactive_selection_text);
				break;
			case colours_switcher_font_list:
				b_font_read = true;
				reader.read_item(cfg_plist_font);
				break;
			case colours_switcher_font_tabs:
				reader.read_item(cfg_tab_font);
				break;
			default:
				reader.skip(element_size);
				break;
			};

		}

		if (b_font_read)
			g_import_fonts_to_unified(false, true, false);

		if (item_padding_read)
			settings::playlist_switcher_item_padding = item_padding;

		//update_playlist_switcher_panels();
		//on_switcher_font_change();
		//g_on_tabs_font_change();
	}