My favorites | Sign in
Project Home Downloads Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//$ class Ctrl {
private:
static Ptr<Ctrl> desktop;
static Vector<Ctrl *> topctrl;
static ImageBuffer framebuffer;
static Vector<Rect> invalid, update;

static Point fbCursorPos;
static Image fbCursorImage;

static Point fbCursorBakPos;
static Image fbCursorBak;

static Rect fbCaretRect;
static Image fbCaretBak;
static int fbCaretTm;

static int renderingMode;

static bool fbEndSession;
static int64 fbEventLoop;
static int64 fbEndSessionLoop;

static Image GetBak(Rect& tr);
static void RemoveCursor();
static void RemoveCaret();
static void CursorSync();

int FindTopCtrl() const;
static Rect GetClipBound(const Vector<Rect>& inv, const Rect& r);
static void DoPaint();
static void DoUpdate();
static void SyncTopWindows();

static void AddInvalid(const Rect& rect);

void DestroyWnd();

void NewTop() { top = new Top; top->owner_window = NULL; }
void PutForeground();
static void MouseEventFB(Ptr<Ctrl> t, int event, Point p, int zdelta);
Vector<Rect> GetPaintRects();

static void DrawLine(const Vector<Rect>& clip, int x, int y, int cx, int cy, bool horz,
const byte *pattern, int animation);
static void DragRectDraw0(const Vector<Rect>& clip, const Rect& rect, int n,
const byte *pattern, int animation);

friend struct PaintProxy__;
friend class TopWindowFrame;
friend class SystemDraw;
friend struct DnDLoop;

void SetOpen(bool b) { isopen = b; }

protected:
static int PaintLock;

public:
static void DoMouseFB(int event, Point p, int zdelta = 0);
static bool DoKeyFB(dword key, int cnt);

static void InitFB();
static void ExitFB();
static void EndSession();

static void SetDesktop(Ctrl& q);
static Ctrl *GetDesktop() { return desktop; }
static void SetFramebufferSize(Size sz);

static const ImageBuffer& GetFrameBuffer() { return framebuffer; }

static void SetRenderingMode(int mode);

static void AddUpdate(const Rect& rect);

void DragRectDraw(const Rect& rect1, const Rect& rect2, const Rect& clip, int n,
Color color, int type, int animation);

static Ctrl *FindMouseTopCtrl();

static bool FullWindowDrag;

enum { DRAWDRAGRECT_SCREEN = 0x8000 };

//$ };

Change log

r4176 by cxl on Nov 16, 2011   Diff
.reference: Rainbow example (RM #158)
Go to: 
Project members, sign in to write a code review

Older revisions

All revisions of this file

File info

Size: 2364 bytes, 86 lines
Powered by Google Project Hosting