#ifndef _PROTO_DISPLAYMANAGER_HPP_ #define _PROTO_DISPLAYMANAGER_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _COMMON_CALLBACK_HPP_ #include #endif #ifndef _COMMON_PUREPALETTE_HPP_ #include #endif #ifndef _COMMON_BITMAP_HPP_ #include #endif #ifndef _ENGINE_DIB3D_HPP_ #include #endif #ifndef _PROTO_PROCESSTHREAD_HPP_ #include #endif #ifndef _THREAD_MUTEX_HPP_ #include #endif class GUIWindow; class PureObject; class Device3D; class Point3D; class Vector3D; class KeyData; class DisplayManager : public ProcessThread { public: typedef SmartPointer PointerPureObject; typedef Block PointerPureObjectBlock; typedef SmartPointer PointerDevice3D; typedef SmartPointer PointerBitmap; DisplayManager(GUIWindow &displayWindow,const PurePalette &systemPalette); virtual ~DisplayManager(); void insert(const SmartPointer &simpleObject); void shutdown(void); ViewSystem &getViewSystem(void); PointerPureObjectBlock &getObjects(void); PointerBitmap &getBitmap(void); protected: virtual bool initializeHandler(PointerPureObjectBlock &pureObjects); virtual bool preprocessHandler(PointerPureObject &pureObject); virtual bool scopeHandler(PointerPureObject &pureObject); virtual void keyDownHandler(const KeyData &keyData); private: virtual void processHandler(void); DisplayManager(const DisplayManager &someDisplayManager); DisplayManager &operator=(const DisplayManager &someDisplayManager); CallbackData::ReturnType sizeHandler(CallbackData &someCallbackData); CallbackData::ReturnType keyDownHandler(CallbackData &someCallbackData); CallbackData::ReturnType keyUpHandler(CallbackData &someCallbackData); CallbackData::ReturnType dialogCodeHandler(CallbackData &someCallbackData); void setBackground(void); void cancel(void); bool isCancelled(void)const; Callback mSizeHandler; Callback mKeyDownHandler; Callback mDialogCodeHandler; PointerPureObjectBlock mPureObjects; PointerBitmap mDIB3D; Bitmap mBitmapBkGnd; PurePalette mSystemPalette; GUIWindow &mDisplayWindow; Mutex mMutex; bool mIsCancelled; }; inline void DisplayManager::insert(const SmartPointer &pureObject) { mPureObjects.insert(&pureObject); } inline ViewSystem &DisplayManager::getViewSystem(void) { return static_cast(*mDIB3D); } inline DisplayManager::PointerPureObjectBlock &DisplayManager::getObjects(void) { return mPureObjects; } inline DisplayManager::PointerBitmap &DisplayManager::getBitmap(void) { return mDIB3D; } #endif