int dialog::run_modal(unsigned id,HWND parent)
	{
		assert(wnd == 0);
		if (wnd != 0) return -1;
		m_is_modal = true; 
		return uDialogBox(id,parent,DlgProc,reinterpret_cast<LPARAM>(this));
	}
Exemple #2
0
	virtual bool show_config_popup(HWND wnd_parent)
	{
		uie::visualisation_ptr p_vis;
		service_ptr_t<spectrum_extension> p_this;
		get_vis_ptr(p_vis);
		if (p_vis.is_valid())
			p_this = static_cast<spectrum_extension*>(p_vis.get_ptr());

		service_ptr_t<spectrum_extension> p_temp = p_this;
		if (!p_temp.is_valid())
			uie::visualization::create_by_guid(get_visualisation_guid(), reinterpret_cast<uie::visualisation_ptr &>(p_temp));

		pfc::array_t<t_uint8> m_data;
		if (!p_temp->b_active)
		{
			try{
			get_vis_data(m_data);
			p_temp->set_config(&stream_reader_memblock_ref(m_data.get_ptr(), m_data.get_size()),m_data.get_size(),abort_callback_impl());
			}catch (const exception_io &) {};
		}

		spec_param param(p_temp->cr_fore, p_temp->cr_back, p_temp->mode, p_temp->m_scale, p_temp->m_vertical_scale, p_temp.get_ptr(), true, get_frame_style());

		bool rv = !!uDialogBox(IDD_POPUP_SPECTRUM_NEW, wnd_parent, SpectrumPopupProc, (LPARAM)(&param));
		if (rv)
		{
			p_temp->cr_fore = param.cr_fore;
			cfg_vis2 = param.cr_fore;
			p_temp->cr_back = param.cr_back;
			cfg_vis = param.cr_back;
			p_temp->mode = param.mode;
			cfg_vis_mode = param.mode;
			p_temp->m_scale = param.m_scale;
			cfg_scale = param.m_scale;
			p_temp->m_vertical_scale = param.m_vertical_scale;
			cfg_vertical_scale = param.m_vertical_scale;
			set_frame_style(param.frame);
			if (p_temp->b_active)
			{
				p_temp->flush_brushes();
				p_temp->clear();
			}
			else
			{
				m_data.set_size(0);
				try{
				p_temp->get_config(&stream_writer_memblock_ref(m_data), abort_callback_impl());
				set_vis_data(m_data.get_ptr(), m_data.get_size());
				}
				catch (pfc::exception &)
				{};
			}

		}
		return rv;
	}
Exemple #3
0
bool spectrum_extension::show_config_popup(HWND wnd_parent)
{
	spec_param param(cr_fore, cr_back, mode, m_scale, m_vertical_scale, this);
	bool rv = !!uDialogBox(IDD_POPUP_SPECTRUM_NEW, wnd_parent, SpectrumPopupProc, (LPARAM)(&param));
	if (rv)
	{
		cr_fore = param.cr_fore;
		cfg_vis2 = param.cr_fore;
		cr_back = param.cr_back;
		cfg_vis = param.cr_back;
		mode = param.mode;
		cfg_vis_mode = param.mode;
		m_scale = param.m_scale;
		cfg_scale = param.m_scale;
		m_vertical_scale = param.m_vertical_scale;
		cfg_vertical_scale = param.m_vertical_scale;
		if (b_active)
		{
			flush_brushes();
			clear();
		}
	}
	return rv;
}
bool item_details_config_t::run_modal(HWND wnd)
{
	m_modal = true; return uDialogBox(IDD_ITEMDETAILS_CONFIG, wnd, g_DialogProc, (LPARAM)this) != 0;
}
Exemple #5
0
bool g_rename_dialog(pfc::string8 * text,HWND parent)
{
	rename_param param;
	param.m_text = text;
	return !!uDialogBox(IDD_RENAME_PLAYLIST,parent,RenameProc,(LPARAM)(&param));
}
Exemple #6
0
void g_export_layout(HWND wnd)
{
	pfc::string8 path;
	FCLDialog pFCLDialog;
	if (/*MessageBox(wnd, _T("Layout setting exporting is available for testing purposes only. FCL files produced will not work with the release version of Columns UI."), _T("Warning"), MB_OK) == IDOK && */uDialogBox (IDD_FCL1, wnd, FCLDialog::g_FCLDialogProc, (LPARAM)&pFCLDialog) && uGetOpenFileName(wnd, "Columns UI Layout (*.fcl)|*.fcl|All Files (*.*)|*.*", 0, "fcl", "Save as", NULL, path, TRUE))
	{
		t_export_feedback_impl feedback;
		pfc::list_t<GUID> groups;
		{
			t_size i, count = pFCLDialog.m_nodes.get_count();
			for (i=0; i<count; i++)
				if (pFCLDialog.m_nodes[i].checked)
					groups.add_item(pFCLDialog.m_nodes[i].group->get_guid());
		}
		try
		{
			service_ptr_t<file> p_file;
			abort_callback_impl p_abort;
			filesystem::g_open_write_new(p_file, path, p_abort);
			p_file->write_lendian_t(g_fcl_header, p_abort);
			p_file->write_lendian_t((t_uint32)fcl_stream_version, p_abort);
			p_file->write_lendian_t((t_uint32)pFCLDialog.get_mode(), p_abort);

			stream_writer_memblock mem;
			t_size actualtotal=0;
			{
				cui::fcl::dataset_list export_items;
				t_size i, count = export_items.get_count();
				pfc::array_t< t_export_feedback_impl > feeds;
				feeds.set_count(count);
				for (i=0; i<count; i++)
				{
					if (groups.have_item(export_items[i]->get_group()))
					{
						pfc::string8 name;
						export_items[i]->get_name(name);
						mem.write_lendian_t(export_items[i]->get_guid(), p_abort);
						mem.write_string(name, p_abort);
						stream_writer_memblock writer;
						export_items[i]->get_data(&writer, pFCLDialog.get_mode(), feeds[i], p_abort);
						t_size j, pcount = feeds[i].get_count();
						mem.write_lendian_t(pcount, p_abort);
						for (j=0; j<pcount; j++)
						{
							t_uint32 temp = feedback.find_or_add_guid(feeds[i][j]);
							mem.write_lendian_t(temp, p_abort);
						}						
						mem.write_lendian_t((t_uint32)writer.m_data.get_size(), p_abort);
						mem.write(writer.m_data.get_ptr(), writer.m_data.get_size(), p_abort);
						actualtotal++;
					}
				}
			}

			{
				t_size j, pcount = feedback.get_count();
				p_file->write_lendian_t(pcount, p_abort);
				for (j=0; j<pcount; j++)
				{
					uie::window_ptr ptr;
					pfc::string8 name;
					if (uie::window::create_by_guid(feedback[j], ptr))
						ptr->get_name(name);
					p_file->write_lendian_t(feedback[j], p_abort);
					p_file->write_string(name, p_abort);
				}
				/*pfc::list_t<uie::window_ptr> windows;
				uie::window_ptr ptr;
				service_enum_t<uie::window> window_enum;
				while (window_enum.next(ptr))
				{
					windows.add_item(ptr);
				}
				t_size i, count = windows.get_count();
				p_file->write_lendian_t(count, p_abort);
				for (i=0; i<count; i++)
				{
					pfc::string8 temp;
					p_file->write_lendian_t(windows[i]->get_extension_guid(), p_abort);
					windows[i]->get_name(temp);
					p_file->write_string(temp, p_abort);
				}*/
			}

			p_file->write_lendian_t(actualtotal, p_abort);
			p_file->write(mem.m_data.get_ptr(), mem.m_data.get_size(), p_abort);
		}
		catch (const pfc::exception & ex)
		{
			abort_callback_impl p_abort;
			try {if (filesystem::g_exists(path, p_abort)) filesystem::g_remove(path, p_abort);} catch (const pfc::exception &) {};
			popup_message::g_show(ex.what(), "Error");
		};
	}
}
Exemple #7
0
void g_import_layout(HWND wnd, const char * path, bool quiet)
{
	class t_import_feedback_impl : public cui::fcl::t_import_feedback, public pfc::list_t<GUID>
	{
	public:
		virtual void add_required_panel(const char * name, const GUID & guid)
		{
			add_item(guid);
		}
	};

		//pfc::list_t<t_required_panel> required_panels;
		panel_info_list panel_info;
		try
		{
			class t_dataset
			{
			public:
				GUID guid;
				pfc::array_t<t_uint8> data;
			};

			service_ptr_t<file> p_file;
			abort_callback_impl p_abort;
			filesystem::g_open_read(p_file, path, p_abort);
			GUID guid;
			t_uint32 version;
			p_file->read_lendian_t(guid, p_abort);
			if (guid != g_fcl_header)
				throw pfc::exception("Unrecognised file header");
			p_file->read_lendian_t(version, p_abort);
			if (version > fcl_stream_version)
				throw pfc::exception("Need a newer version of Columns UI");
			t_uint32 mode = cui::fcl::type_public;
			if (version >= 1)
				p_file->read_lendian_t(mode, p_abort);
			{
				pfc::list_t<bool> mask;
				t_size i, count;
				p_file->read_lendian_t(count, p_abort);
				for (i=0; i<count; i++)
				{
					t_panel_info info;
					p_file->read_lendian_t(info.guid, p_abort);
					p_file->read_string(info.name, p_abort);
					panel_info.add_item(info);

					uie::window_ptr ptr;
					mask.add_item(uie::window::create_by_guid(info.guid, ptr));
				}
				panel_info.remove_mask(mask.get_ptr());
			}
			{
				t_size count = panel_info.get_count();
				if (count)
				{
					throw exception_fcl_dependentpanelmissing();
					/*pfc::string8 msg, name;
					msg << "Import aborted: The following required panels are not present.\r\n\r\nGUID, Name\r\n";
					t_size i, count = panel_info.get_count();
					for (i=0; i<count; i++)
					{
						msg << pfc::print_guid(panel_info[i].guid);
						msg << ", " << panel_info[i].name;
						msg << "\r\n";
						//required_panels.add_item(t_required_panel(
					}
					throw pfc::exception(msg);*/
				}
			}
			{
				cui::fcl::dataset_list export_items;
				t_size i, count;
				p_file->read_lendian_t(count, p_abort);
				t_import_feedback_impl feed;
				pfc::array_t< pfc::array_t<t_uint32> > panel_indices;
				panel_indices.set_count(count);
				pfc::array_t< t_dataset > datasets;
				datasets.set_count(count);
				for (i=0; i<count; i++)
				{
					//GUID guiditem;
					pfc::string8 name;
					p_file->read_lendian_t(datasets[i].guid, p_abort);
					p_file->read_string(name, p_abort);
					t_uint32 pcount, j;
					p_file->read_lendian_t(pcount, p_abort);
					panel_indices[i].set_count(pcount);
					for (j=0; j<pcount; j++)
						p_file->read_lendian_t(panel_indices[i][j], p_abort);
					//pfc::array_t<t_uint8> data;
					t_size size;
					p_file->read_lendian_t(size, p_abort);
					datasets[i].data.set_size(size);
					p_file->read(datasets[i].data.get_ptr(), size, p_abort);
				}
				pfc::list_t<GUID> datasetsguids;
				for (i=0; i<count; i++)
					datasetsguids.add_item(datasets[i].guid);
				FCLDialog pFCLDialog(true, datasetsguids);
				if (!quiet) {
					if (!uDialogBox(IDD_FCL, wnd, FCLDialog::g_FCLDialogProc, (LPARAM)&pFCLDialog))
						throw exception_aborted();
				}
				ui_helpers::DisableRedrawScope p_NoRedraw(g_main_window);
				for (i = 0; i<count; i++)
				{
					cui::fcl::dataset_ptr ptr;
					if (export_items.find_by_guid(datasets[i].guid, ptr) && (quiet || pFCLDialog.have_node_checked(ptr->get_group())))
						ptr->set_data(&stream_reader_memblock_ref(datasets[i].data.get_ptr(), datasets[i].data.get_size()), datasets[i].data.get_size(), mode, feed, p_abort);
				}
				if (feed.get_count())
				{
					throw pfc::exception("Bug check: panels missing");
				}
			}
		}
		catch (const exception_aborted &)
		{
		}
		catch (const exception_fcl_dependentpanelmissing &)
		{
			t_import_results_data data(panel_info, true);
			ShowWindow(uCreateDialog(IDD_RESULTS, wnd, g_ImportResultsProc, (LPARAM)&data), SW_SHOWNORMAL);
		}
		catch (const pfc::exception & ex)
		{
			popup_message::g_show(ex.what(), "Error");
		};
}
bool selection_properties_config_t::run_modal(HWND wnd)
{
	return uDialogBox(IDD_SELECTIONCONFIG, wnd, g_DialogProc, (LPARAM)this) != 0;
}