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