-
Notifications
You must be signed in to change notification settings - Fork 344
/
winpage.hpp
149 lines (132 loc) · 3.6 KB
/
winpage.hpp
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
// This file is distributed under a BSD license. See LICENSE.txt for details.
#ifndef __WINPAGE_HPP__
#define __WINPAGE_HPP__
#include "_util.hpp"
#include "_gui.hpp"
#include "werkkzeug.hpp"
/****************************************************************************/
enum
{
CMD_PAGE_POPUP=0x0100,
CMD_PAGE_POPMISC,
CMD_PAGE_POPTEX,
CMD_PAGE_POPADD,
CMD_PAGE_SHOW,
CMD_PAGE_DELETE,
CMD_PAGE_CUT,
CMD_PAGE_COPY,
CMD_PAGE_PASTE,
CMD_PAGE_POPSCENE,
CMD_PAGE_POPLEVEL,
CMD_PAGE_POPMESH,
CMD_PAGE_POPMTRL,
CMD_PAGE_SHOWROOT,
CMD_PAGE_BACKSPACE,
CMD_PAGE_BACKSPACER,
CMD_PAGE_BIRDTOGGLE,
CMD_PAGE_RENAME,
CMD_PAGE_RENAME2,
CMD_PAGE_GOTO,
CMD_PAGE_GOTO2,
CMD_PAGE_BIRDON,
CMD_PAGE_BIRDOFF,
CMD_PAGE_TIMEDRAGON,
CMD_PAGE_TIMEDRAGOFF,
CMD_PAGE_BYPASS,
CMD_PAGE_MAKESCRATCH,
CMD_PAGE_KEEPSCRATCH,
CMD_PAGE_DISCARDSCRATCH,
CMD_PAGE_TOGGLESCRATCH,
CMD_PAGE_POPIPP,
CMD_PAGE_HIDE,
CMD_PAGE_EXCHANGEOP,
CMD_PAGE_GOTOLINK,
CMD_PAGE_FINDREFS,
CMD_PAGE_POPMINMESH,
CMD_PAGE_EXCHANGEOP2,
CMD_PAGE_FINDBUGS,
CMD_PAGE_FINDMATERIALS,
};
/****************************************************************************/
/*** ***/
/*** windows ***/
/*** ***/
/****************************************************************************/
#define WINPAGE_MAXBACK 16
class WinPage : public sGuiWindow
{
void PaintButton(sRect r,sChar *name,sU32 color,sBool pressed,sInt style,sU32 col);
WerkOp *FindOp(sInt mx,sInt my);
sBool CheckDest(sBool dup);
void MoveDest(sBool dup);
void AddOps(sU32 cid);
void AddOp(WerkClass *cl);
void ScrollToCursor();
sBool CheckDest(WerkPage *source,sInt dx,sInt dy);
sBool CheckDest(sInt dx,sInt dy,sInt dw);
void MakeRect(WerkOp *,sRect &r);
void Delete();
void Copy();
void Paste(sInt x,sInt y);
sChar RenameOld[KK_NAME];
sChar RenameNew[KK_NAME];
struct BackEntry
{
sInt ScrollX;
sInt ScrollY;
sInt Page;
} BackList[WINPAGE_MAXBACK+1];
sInt BackCount; // stackpointer, push increments
sInt BackRev; // highest item on stack for undo
sInt BackMode; // disable PushBackList while PopBackList
sInt PageX; // size of one operator in page
sInt PageY; // size of one operator in page
sInt DragMode;
sInt DragKey;
sInt StickyKey;
sInt SelectMode;
sInt DragStartX;
sInt DragStartY;
sInt DragMouseX;
sInt DragMouseY;
sInt DragMoveX;
sInt DragMoveY;
sInt DragWidth;
sRect DragRect;
sInt CursorX;
sInt CursorY;
sInt CursorWidth;
sInt OpWindowX;
sInt OpWindowY;
sU32 AddOpClass;
sInt TimeDrag;
sInt Birdseye;
sRect Bird;
sRect BirdView;
sInt Fullsize;
sInt Patterns[4];
public:
WinPage();
~WinPage();
void Tag();
// sU32 GetClass() { return sCID_TOOL_PAGEWIN; }
void OnInit();
void OnCalcSize();
void OnPaint();
void OnKey(sU32 key);
void OnDrag(sDragData &);
sBool OnCommand(sU32 cmd);
void SetPage(WerkPage *page);
void GotoOp(WerkOp *);
void PushBackList();
void PopBackList(sInt r);
void ExchangeOp();
void ExchangeOp2();
void UpdateCusorPosInStatus();
class WerkkzeugApp *App;
class WerkPage *Page;
class WerkOp *EditOp; // latest operator that was picked for editing
};
/****************************************************************************/
/****************************************************************************/
#endif