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(); }
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; }
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(); }
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(); }