///////////////////////////////////////////////////////////////////////////// // // Popup // ///////////////////////////////////////////////////////////////////////////// #ifndef _Popup_H_ #define _Popup_H_ ///////////////////////////////////////////////////////////////////////////// // // IPopup // ///////////////////////////////////////////////////////////////////////////// class IPopupContainer; class IPopup : public IKeyboardInput { protected: IPopupContainer* m_pcontainer; IPopup* m_ppopupOwner; IPopup() : m_pcontainer(NULL), m_ppopupOwner(NULL) { } public: virtual void SetContainer(IPopupContainer* pcontainer); virtual void SetOwner(IPopup* ppopupOwner); virtual void OnClose(); virtual void ClosePopup(IPopup* ppopup); virtual Rect GetRect(); virtual TRef GetImage(Engine* pengine); virtual Pane* GetPane() = 0; }; TRef CreatePanePopup(Pane* ppane); ///////////////////////////////////////////////////////////////////////////// // // IPopupContainer // ///////////////////////////////////////////////////////////////////////////// class IPopupContainer : public IKeyboardInput { public: virtual void OpenPopup(IPopup* ppopup, PointValue* ppoint, bool bCloseAll, IPopup* ppopupOwner) = 0; virtual void OpenPopup(IPopup* ppopup, const Point& point, bool bCloseAll = true, IPopup* ppopupOwner = NULL) = 0; virtual void OpenPopup(IPopup* ppopup, const Rect& rect, bool bCloseAll = true, bool bCascadeDown = true, IPopup* ppopupOwner = NULL) = 0; virtual void OpenPopup(IPopup* ppopup, bool bCloseAll = true, IPopup* ppopupOwner = NULL) = 0; virtual void ClosePopup(IPopup* ppopup) = 0; virtual bool IsEmpty() = 0; virtual Image* GetImage() = 0; }; #endif