예제 #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;

		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();
	}
예제 #2
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;
	}
예제 #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_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();
	}