//
//	Copyright © 2006 Nemetschek North America 
//	All Rights Reserved.
//
// Created by Vladislav Stanev

#pragma once

namespace VectorWorks
{
	namespace VWUI
	{
		class VWDialog;

		// ---------------------------------------------------------------------------------------------------------------
		enum EListBrowserEventType {
			kListBrowserEventType_Unknown						= 0,
			kListBrowserEventType_DataChangeClick				= -2,
			kListBrowserEventType_DataChangeAllClick			= -3,
			kListBrowserEventType_SelectionChangeClick			= -4,
			kListBrowserEventType_DoubleClick					= -5,
			kListBrowserEventType_DeleteKeyPressed				= -6,
			kListBrowserEventType_UpKeyPressed					= -7,
			kListBrowserEventType_DownKeyPressed				= -8,
			kListBrowserEventType_AlphaNumericKeyPressed		= -9,
			kListBrowserEventType_SortOccurred					= -10,
			kListBrowserEventType_SelectionMultChangeClick		= -11,
			kListBrowserEventType_EnterKeyPressed				= -12
		};

		
		// ---------------------------------------------------------------------------------------------------------------
		class VWDialogEventArgs
		{
			friend class VWDialog;
		protected:
									VWDialogEventArgs(long dlgID, long ctrlID, void* pData);
		public:
			virtual					~VWDialogEventArgs();

		// general events support
		public:
			long					GetEventData() const;

		// list browser events support
		public:
			EListBrowserEventType	GetListBrowserEvent(size_t& outRowIndex, size_t& outColumnIndex) const;
			bool					IsListBrowserDoubleClickEvent() const;

		// pull down menu events support
		public:
			bool					IsPullDownNotification() const;

		// custom control events support
		public:
			bool					IsCustomCtrlDoubleClickEvent() const;
			bool					IsCustomCtrlRightClickEvent() const;
			bool					IsCustomCtrlMiddleClickEvent() const;

		private:
			long				fDialogID;
			long				fControlID;
			void*				fpData;
			bool				fbNegativeControlID;
		};
	}
}