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; while (reader.get_remaining()) { reader.read_item(element_id); reader.read_item(element_size); switch (element_id) { case identifier_global_script: reader.read_item(cfg_globalstring, element_size); break; case identifier_style_script: reader.read_item(cfg_colour, element_size); break; case identifier_show_header: reader.read_item(cfg_header); break; case identifier_autosize_columns: reader.read_item(cfg_nohscroll); break; case identifier_use_globals_for_sorting: reader.read_item(cfg_global_sort); break; case identifier_use_dates: reader.read_item(cfg_playlist_date); break; case identifier_use_globals: reader.read_item(cfg_global); break; default: reader.skip(element_size); break; }; } refresh_all_playlist_views(); pvt::ng_playlist_view_t::g_on_autosize_change(); pvt::ng_playlist_view_t::g_on_vertical_item_padding_change(); pvt::ng_playlist_view_t::g_on_show_header_change(); pvt::ng_playlist_view_t::g_update_all_items(); }
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; }
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_size i, count; reader.read_item(count); column_list_t newcolumns; for (i=0; i<count; i++) { t_uint32 column_id; t_uint32 column_size; reader.read_item(column_id); reader.read_item(column_size); column_t::ptr item = new column_t; fcl::reader reader2(reader, column_size, p_abort); t_uint32 element_id; t_uint32 element_size; auto dpiRead = false; while (reader2.get_remaining()) { reader2.read_item(element_id); reader2.read_item(element_size); switch (element_id) { case identifier_name: reader2.read_item(item->name, element_size); break; case identifier_filter: reader2.read_item(item->filter, element_size); break; case identifier_sort: reader2.read_item(item->sort_spec, element_size); break; case identifier_display: reader2.read_item(item->spec, element_size); break; case identifier_edit_field: reader2.read_item(item->edit_field, element_size); break; case identifier_style: reader2.read_item(item->colour_spec, element_size); break; case identifier_resize: reader2.read_item(item->parts); break; case identifier_width: reader2.read_item(item->width.value); break; case identifier_width_dpi: { reader2.read_item(item->width.dpi); dpiRead = true; break; } case identifier_alignment: { t_uint32 temp; reader2.read_item(temp); item->align = ((alignment)temp); } break; case identifier_filter_type: { t_uint32 temp; reader2.read_item(temp); item->filter_type = ((playlist_filter_type)temp); } break; case identifier_use_sort: reader2.read_item(item->use_custom_sort); break; case identifier_use_style: reader2.read_item(item->use_custom_colour); break; case identifier_show: reader2.read_item(item->show); break; default: reader2.skip(element_size); break; }; } if (!dpiRead) item->width.dpi = uih::GetSystemDpiCached().cx; newcolumns.add_item(item); } g_columns.set_entries_ref(newcolumns); refresh_all_playlist_views(); pvt::ng_playlist_view_t::g_on_columns_change(); }