forked from root-project/root
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TGedPatternSelect.h
173 lines (132 loc) · 6.26 KB
/
TGedPatternSelect.h
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
// @(#)root/gui:$Id$
// Author: Marek Biskup, Ilka Antcheva 24/07/03
/*************************************************************************
* Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TGedPatternSelect
#define ROOT_TGedPatternSelect
//////////////////////////////////////////////////////////////////////////
// //
// TGedPatternFrame, TGedPatternSelector, TGedPatternPopup //
// and TGedPatternColor. //
// //
// The TGedPatternFrame is a small frame with border showing a //
// specific pattern (fill style). //
// //
// The TGedPatternSelector is a composite frame with TGedPatternFrames //
// of all diferent styles //
// //
// The TGedPattern is a popup containing a TGPatternSelector. //
// //
// The TGedPatternSelect widget is a button with pattern area with //
// a little down arrow. When clicked on the arrow the //
// TGedPatternPopup pops up. //
// //
// Selecting a pattern in this widget will generate the event: //
// kC_PATTERNSEL, kPAT_SELCHANGED, widget id, style. //
// //
// and the signal: //
// PatternSelected(Style_t pattern) //
// //
// TGedSelect is button that shows popup window when clicked. //
// TGedPopup is a popup window. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TGButton
#include "TGButton.h"
#endif
#ifndef ROOT_TGToolTip
#include "TGToolTip.h"
#endif
class TGedPopup : public TGCompositeFrame {
protected:
const TGWindow *fMsgWindow;
public:
TGedPopup(const TGWindow* p, const TGWindow *m, UInt_t w, UInt_t h,
UInt_t options = 0, Pixel_t back = GetDefaultFrameBackground());
virtual ~TGedPopup() { }
virtual Bool_t HandleButton(Event_t *event);
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
void PlacePopup(Int_t x, Int_t y, UInt_t w, UInt_t h);
void EndPopup();
ClassDef(TGedPopup,0) //popup window
};
class TGedPatternFrame : public TGFrame {
protected:
const TGWindow *fMsgWindow;
Bool_t fActive;
Style_t fPattern;
static TGGC *fgGC;
TGToolTip *fTip; // tool tip associated with a button
char fTipText[5];
virtual void DoRedraw();
public:
TGedPatternFrame(const TGWindow *p, Style_t pattern, Int_t width = 40,
Int_t height = 20);
virtual ~TGedPatternFrame() { delete fTip; }
virtual Bool_t HandleButton(Event_t *event);
virtual Bool_t HandleCrossing(Event_t *event);
virtual void DrawBorder();
void SetActive(Bool_t in) { fActive = in; gClient->NeedRedraw(this); }
Style_t GetPattern() const { return fPattern; }
static void SetFillStyle(TGGC* gc, Style_t fstyle); //set fill style for given GC
ClassDef(TGedPatternFrame,0) //pattern frame
};
class TGedPatternSelector : public TGCompositeFrame {
protected:
Int_t fActive;
const TGWindow *fMsgWindow;
TGedPatternFrame *fCe[27];
public:
TGedPatternSelector(const TGWindow *p);
virtual ~TGedPatternSelector();
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
void SetActive(Int_t newat);
Int_t GetActive() const { return fActive; }
ClassDef(TGedPatternSelector,0) //select pattern frame
};
class TGedPatternPopup : public TGedPopup {
protected:
Style_t fCurrentPattern;
public:
TGedPatternPopup(const TGWindow *p, const TGWindow *m, Style_t pattern);
virtual ~TGedPatternPopup();
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
ClassDef(TGedPatternPopup,0) // Color selector popup
};
class TGedSelect : public TGCheckButton {
protected:
TGGC *fDrawGC;
TGedPopup *fPopup;
virtual void DoRedraw();
void DrawTriangle(GContext_t gc, Int_t x, Int_t y);
public:
TGedSelect(const TGWindow *p, Int_t id);
virtual ~TGedSelect();
virtual Bool_t HandleButton(Event_t *event);
virtual void Enable();
virtual void Disable();
virtual void SetPopup(TGedPopup* p) { fPopup = p; } // popup will be deleted in destructor.
ClassDef(TGedSelect,0) //selection check-button
};
class TGedPatternSelect : public TGedSelect {
protected:
Style_t fPattern;
virtual void DoRedraw();
public:
TGedPatternSelect(const TGWindow *p, Style_t pattern, Int_t id);
virtual ~TGedPatternSelect() {}
void SetPattern(Style_t pattern, Bool_t emit=kTRUE);
Style_t GetPattern() const { return fPattern; }
virtual TGDimension GetDefaultSize() const { return TGDimension(55, 21); }
virtual void PatternSelected(Style_t pattern = 0)
{ Emit("PatternSelected(Style_t)", pattern ? pattern : GetPattern()); } // *SIGNAL*
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
virtual void SavePrimitive(std::ostream &out, Option_t * = "");
ClassDef(TGedPatternSelect,0) //pattern selection check-button
};
#endif