/*
 *  DialogData.h
 *  VectorWorks
 *
 *  Created by Eric on 4/4/08.
 *  Copyright 2008 Nemetschek North America, Inc. All rights reserved.
 *
 */

namespace VectorWorks
{
	namespace VWUI
	{
		struct SChildControls {
			VWControl*		pControl;
			// if we created this control just to return a pointer to it
			// it should be deleted on way out (in the destructor)
			bool			bFake;
		};

		// DDX data
		enum EDDXType {
			kDDXTypeStaticText,
			kDDXTypeCheckButton,
			kDDXTypeCheckButtonBoolean,
			kDDXTypeCheckGroupBox,
			kDDXTypeColorButton,
			kDDXTypeEditInteger,
			kDDXTypeEditReal,
			kDDXTypeEditText,
			kDDXTypeSlider,
			kDDXTypeRadioButton,
			kDDXTypeRadioButtonBoolean,
			kDDXTypeRadioGroupBox,
			kDDXTypePulldownMenu,
			kDDXTypeListBox,
			kDDXTypeColorPopup,
			kDDXTypeColorPopupCustom,
			kDDXTypePatternPopup,
			kDDXTypeLineAttribPopup,
			kDDXTypeLineStylePopup,
			kDDXTypeLineWeightPopup,
			kDDXTypeMarkerPopup
		};

		struct SDDXData {
			EDDXType		type;
			TControlID		controlID;
			void*			pData;
			void*			pData1;
			void*			pData2;
			void*			pData3;
			long			lData;
		};

		struct SSavedSettingsItem {
			TXString	name;
			TXString	value;
		};

		typedef std::vector<SChildControls>		TControlsArray;
		typedef std::vector<VWTabPaneCtrl*>		TTabPanesArray;
		typedef std::vector<SDDXData>			TDDXDataArray;
		typedef std::vector<SSavedSettingsItem>	TSavedSettingsItemsArray;
	}
}