00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef BORDERLAYER_H
00015 #define BORDERLAYER_H
00016
00017 #include <cZUI/layernode.h>
00018
00019 class SurfaceCursor;
00020
00021
00022
00023 class DefaultScrollPolicy
00024 {
00025 public:
00026 static bool validate_scroll( Camera *, double xscroll,
00027 double yscroll );
00028 };
00029
00030
00031
00032
00033 template<int required_percentage>
00034 class LimitScrollPolicy
00035 {
00036 public:
00037 static bool validate_scroll( Camera *, double xscroll,
00038 double yscroll );
00039 };
00040
00041 template<class SP>
00042 class BorderLayer : public LayerNode
00043 {
00044 protected:
00045 SurfaceCursor *scrollcursor_left;
00046 SurfaceCursor *scrollcursor_right;
00047 SurfaceCursor *scrollcursor_up;
00048 SurfaceCursor *scrollcursor_down;
00049 SurfaceCursor *scrollcursor_leftup;
00050 SurfaceCursor *scrollcursor_rightup;
00051 SurfaceCursor *scrollcursor_leftdown;
00052 SurfaceCursor *scrollcursor_rightdown;
00053 double leftzone, rightzone, topzone,
00054 bottomzone;
00055 double leftsz, rightsz, topsz, bottomsz;
00056 SurfaceCursor *normalcursor;
00057
00058
00059
00060 int scrollcount;
00061 public:
00062 BorderLayer( Camera *, int zonewidth,
00063 SurfaceCursor* scrollcursor,
00064 SurfaceCursor* normalc );
00065 BorderLayer( Camera *, int lz, int rz,
00066 int uz, int bz, SurfaceCursor*,
00067 SurfaceCursor* normalc );
00068 BorderLayer( Camera *, int zonewidth,
00069 SurfaceCursor* scleft, SurfaceCursor *scright,
00070 SurfaceCursor *scup, SurfaceCursor *scdown,
00071 SurfaceCursor* scleftup, SurfaceCursor *scrightup,
00072 SurfaceCursor *scleftdown, SurfaceCursor *scrightdown,
00073 SurfaceCursor* normalc );
00074 BorderLayer( Camera *, int lz, int rz, int uz, int bz,
00075 SurfaceCursor* scleft, SurfaceCursor *scright,
00076 SurfaceCursor *scup, SurfaceCursor *scdown,
00077 SurfaceCursor* scleftup, SurfaceCursor *scrightup,
00078 SurfaceCursor *scleftdown, SurfaceCursor *scrightdown,
00079 SurfaceCursor* normalc );
00080
00081 bool handle_event( Event *e );
00082 void get_boundrect( double&, double&, double&, double& );
00083 };
00084
00085 #endif
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129