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 #include "gadgetstyle.h"
00009
00010 #define WINDOW_TITLE_HEIGHT 13
00011 #define WINDOW_BORDER_SIZE 4
00012 #define WINDOW_CLOSE_BUTTON_WIDTH 14
00013 #define WINDOW_DEPTH_BUTTON_WIDTH 14
00014
00015 namespace WoopsiUI {
00016
00021 class Window : public Gadget {
00022
00023 public:
00037 Window(s16 x, s16 y, u16 width, u16 height, const WoopsiString& title, u32 flags, GadgetStyle* style = NULL);
00038
00043 void setTitle(const WoopsiString& title);
00044
00049 const WoopsiString& getTitle() { return _title; };
00050
00051 protected:
00052 WoopsiString _title;
00060 virtual void drawBorder(GraphicsPort* port);
00061
00065 virtual void onDragStart();
00066
00074 virtual void onDrag(s16 x, s16 y, s16 vX, s16 vY);
00075
00079 virtual void onDragStop();
00080
00084 virtual inline ~Window() { };
00085
00089 inline Window(const Window& window) : Gadget(window) { };
00090 };
00091 }
00092
00093 #endif