00001 #ifndef _WINDOW_BASE_H_ 00002 #define _WINDOW_BASE_H_ 00003 00004 #include <nds.h> 00005 #include "gadget.h" 00006 #include "fontbase.h" 00007 #include "graphicsport.h" 00008 00009 #define WINDOW_TITLE_HEIGHT 13 00010 #define WINDOW_BORDER_SIZE 4 00011 #define WINDOW_CLOSE_BUTTON_WIDTH 14 00012 #define WINDOW_DEPTH_BUTTON_WIDTH 14 00013 00014 namespace WoopsiUI { 00015 00020 class Window : public Gadget { 00021 00022 public: 00033 Window(s16 x, s16 y, u16 width, u16 height, const char* title, u32 flags, FontBase* font = NULL); 00034 00041 virtual void draw(Rect clipRect); 00042 00049 virtual bool release(s16 x, s16 y); 00050 00059 virtual bool drag(s16 x, s16 y, s16 vX, s16 vY); 00060 00065 void setTitle(const char* title); 00066 00071 const char* getTitle() { return _title; }; 00072 00078 virtual void setDragging(u16 x, u16 y); 00079 00080 protected: 00081 char* _title; 00086 virtual inline ~Window() { 00087 if (_title != NULL) { 00088 delete [] _title; 00089 } 00090 }; 00091 00095 inline Window(const Window& window) : Gadget(window) { }; 00096 }; 00097 } 00098 00099 #endif