00001 #ifndef _SKINNED_SCREEN_H_ 00002 #define _SKINNED_SCREEN_H_ 00003 00004 #include <nds.h> 00005 #include "screen.h" 00006 #include "skin.h" 00007 00008 namespace WoopsiUI { 00009 00010 class SkinnedScreenDepthButton; 00011 class SkinnedScreenFlipButton; 00012 class SkinnedScreenTitle; 00013 00014 class SkinnedScreen : public Screen, public GadgetEventHandler { 00015 00016 public: 00017 00021 enum SkinnedScreenFlagType { 00022 SKINNED_SCREEN_SHOW_FLIP = 0x0001, 00023 SKINNED_SCREEN_SHOW_DEPTH = 0x0002 00024 }; 00025 00029 typedef struct { 00030 u8 showFlipButton : 1; 00031 u8 showDepthButton : 1; 00032 } SkinnedScreenFlags; 00033 00034 SkinnedScreen(const char* title, u32 flags, u32 screenFlags, const ScreenSkin* skin); 00035 00036 virtual void setBorderless(bool isBorderless); 00037 virtual void handleReleaseEvent(const GadgetEventArgs& e); 00038 virtual void handleClickEvent(const GadgetEventArgs& e); 00039 virtual void handleDragEvent(const GadgetEventArgs& e); 00040 virtual void handleReleaseOutsideEvent(const GadgetEventArgs& e); 00041 00047 virtual void showFlipButton(); 00048 00054 virtual void showDepthButton(); 00055 00061 virtual void hideFlipButton(); 00062 00068 virtual void hideDepthButton(); 00069 00074 virtual inline const bool hasFlipButton() const { return _screenFlags.showFlipButton; }; 00075 00080 virtual inline const bool hasDepthButton() const { return _screenFlags.showDepthButton; }; 00081 00082 protected: 00083 SkinnedScreenTitle* _screenTitle; 00084 SkinnedScreenDepthButton* _depthButton; 00085 SkinnedScreenFlipButton* _flipButton; 00086 SkinnedScreenFlags _screenFlags; 00088 const ScreenSkin* _skin; 00089 00093 virtual inline ~SkinnedScreen() { }; 00094 00098 inline SkinnedScreen(const SkinnedScreen& skinnedScreen) : Screen(skinnedScreen) { }; 00099 }; 00100 } 00101 00102 #endif