Lab4
Dependencies: SeeedStudioTFTv2 TFT_fonts mbed
Fork of Seeed_TFT_Touch_Shield by
Diff: Widget.h
- Revision:
- 4:ebcf8d366b91
- Child:
- 6:ebffa73d4f95
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Widget.h Fri Sep 26 12:40:19 2014 +0000 @@ -0,0 +1,53 @@ +#pragma once +#include "mbed.h" +#include "SeeedStudioTFTv2.h" +#include "ActionListener.h" +#include <vector> +//extern ActionType; + +extern SeeedStudioTFTv2 TFT; +extern Serial pc; +//class ActionEvent; +//class ActionListener; +//typedef enum { CORD, STR, CORD_STR } ActionType; + +class AbstractWidget:public ActionListener +{ + friend class Panel; +public: + void redraw(); + + //refresh state of this widget and all its children + void refresh() ; + + AbstractWidget* remove_child(); + + virtual void trigger_action(ActionType type, ActionEvent evnt); + + +protected: + virtual bool addWidget(AbstractWidget *p){return true;}; + vector<AbstractWidget*> children; + bool state_changed ; + virtual void paint()=0; + int back_color, border_color; + //relative measure unit on space occupied on parent + //width/hieght in "cell" units + int width, height ; + //left top corner of widget + int x0,y0 ; + //right bottom corner of widget + int x1,y1 ; + //number of cells panel is divided into + //book keeping for child widgets + int rows, cols ; + double pp_row; + double pp_col; + bool push_children; + + int curr_row; + int curr_col; + int prev_row; + int prev_col; + +}; \ No newline at end of file