xlang v4.0 Release
程序设计语言基础库文档
载入中...
搜索中...
未找到
结构体 | Public 成员函数 | 包属性
Switche类 参考
类 Switche 继承关系图:
QWidget

结构体

interface  OnSwitchListener
 

Public 成员函数

包属性

额外继承的成员函数

详细描述

在文件 Switche.xcsm5 行定义.

成员函数说明

◆ activeAnimation()

bool activeAnimation ( ) throws IllegalArgumentException

在文件 Switche.xcsm199 行定义.

199 {
200 synchronized(_timeObj) {
201 if (_animator != nilptr) {
202 return false;
203 }
204
205 _animator = new Timer();
206
208 void run() override {
209 synchronized(_timeObj) {
210 double step = width() / 46.f;
211 if (_bOn) {
212 double destX = width() - (height());
213 if (switchbegin < destX) {
214 switchbegin += step;
215 } else {
216 if (switchbegin > destX) {
218 if (switchbegin < destX) {
219 switchbegin = destX;
220 }
221 }
222 if (switchbegin == destX) {
224 _animator = nilptr;
225 }
226 }
227 } else {
228 double destX = 0;
229 if (switchbegin <= destX) {
230 if (switchbegin < destX) {
232 if (switchbegin > destX) {
233 switchbegin = destX;
234 }
235 }
236 if (switchbegin == destX) {
238 _animator = nilptr;
239 }
240 } else {
241 switchbegin -= step;
242 }
243 }
244 }
245 _present = switchbegin / (width() - (height()));
246 _bForceRedraw = true;
247 Switche.this.postUpdate();
248 }
249 }, 10, -1);
250 }
251 return true;
252 }
int width()
Definition QWidget.xcsm:180
int height()
Definition QWidget.xcsm:184
double switchbegin
Definition Switche.xcsm:7
double _present
Definition Switche.xcsm:8
Timer _animator
Definition Switche.xcsm:10
bool _bForceRedraw
Definition Switche.xcsm:13
Object _timeObj
Definition Switche.xcsm:11
定时器类
void cancel()
bool schedule(TimerTask, int)
定时器任务类

引用了 Timer.cancel() , 以及 Timer.schedule().

◆ configColor()

void configColor ( int  _cOn,
int  _cOff 
)

在文件 Switche.xcsm281 行定义.

281 {
282 if (_cOn != 0) {
283 switchOnColor = _cOn;
284 }
285 if (_cOff != 0) {
286 switchOffColor = _cOff;
287 }
288 }
int switchOffColor
Definition Switche.xcsm:16
int switchOnColor
Definition Switche.xcsm:15

◆ create() [1/2]

bool create ( )
override

重载 QWidget .

在文件 Switche.xcsm171 行定义.

171 {
172 if (super.create()) {
173 resize(42, 30);
174 setAttribute(Constant.WA_TranslucentBackground, true);
175 try{
177 }catch(IllegalArgumentException e){
178
179 }
180 return true;
181 }
182 return false;
183 }
void setAttribute(int flag, bool bOn)
Definition QWidget.xcsm:20
void resize(int w,int h)
Definition QWidget.xcsm:204
bool activeAnimation()
Definition Switche.xcsm:199

◆ create() [2/2]

bool create ( @NotNilptr QWidget  parent)
override

重载 QWidget .

在文件 Switche.xcsm185 行定义.

185 {
186 if (super.create(parent)) {
187 resize(42, 30);
188 setAttribute(Constant.WA_TranslucentBackground, true);
189 try{
191 }catch(IllegalArgumentException e){
192
193 }
194 return true;
195 }
196 return false;
197 }

◆ dip2px()

int dip2px ( double  dpValue)

在文件 Switche.xcsm27 行定义.

27 {
28 return (int) (dpValue * _scale + 0.5f);
29 }
double _scale
Definition Switche.xcsm:6

◆ getChecked()

bool getChecked ( )

在文件 Switche.xcsm254 行定义.

254 {
255 return _bOn;
256 }
bool _bOn
Definition Switche.xcsm:9

◆ onDraw()

void onDraw ( @NotNilptr QPainter  canvas)

在文件 Switche.xcsm32 行定义.

32 {
33 // TODO Auto-generated method stub
34 __nilptr_safe(_cachedBitmap);
35
36 if (_present != 0 && switchbegin == 0) {
37 switchbegin = (width() - height()) * _present;
38 }
39 /*canvas.setCompositionMode(QPainter.CompositionMode.CompositionMode_Source);
40 canvas.fillRect(0, 0, width(), height(), 0, QPainter.BrushStyle.SolidPattern);*/
41
42 canvas.setRenderHint(RenderHint.Antialiasing, true);
43
44 bool bReCreateCached = false;
45 if (_cachedBitmap == nilptr ) {
46 bReCreateCached = true;
47 _bForceRedraw = true;
48 } else if (_cachedBitmap.width() != width() || _cachedBitmap.height() != height()) {
49 bReCreateCached = true;
50 _bForceRedraw = true;
51 }
52 try{
53 if (bReCreateCached) {
54 _cachedBitmap = new QImage(width(), height(), QImage.Format_ARGB32);
55 }
56
57 if (_bForceRedraw) {
58 _bForceRedraw = false;
59 QPainter _canvas = new QPainter(_cachedBitmap);
60 _canvas.setCompositionMode(CompositionMode.CompositionMode_Source);
61 _canvas.fillRect(0, 0, width(), height(), 0, QBrush.Style.SolidPattern);
62 _canvas.setRenderHint(RenderHint.Antialiasing, true);
63
64
65 double padding = dip2px(3.f);
66
67 //_QPainter.drawColor(0x00000000);
68 double r = (height() / 2.f) - padding ;
69
70 QPainter.Paint paint = new QPainter.Paint();
71 //paint.setShadowLayer(3.F, 2.F,2.F, Color.BLACK);
72
73 QRect rect = new QRect();
74 rect.left = rect.top = (padding / 2);
75 rect.right = width() - (padding / 2);
76 rect.bottom = height() - (padding / 2);
77 double rxy = rect.height() / 2.f;
78
79 paint.setStyle(QPainter.Paint.FILL_AND_STROKE);
80 paint.setColor( (this._bOn && (_present == 1)) ? switchOnColor : switchOffColor);
81 paint.setStrokeWidth(1.f);
82 //paint.setShadowLayer(0,0,0, Color.BLACK);
83 _canvas.drawRoundedRect(rect, (int)rxy, (int)rxy,paint);
84
85 QRect disablerect = new QRect(rect);
86 disablerect.left = switchbegin;
87 disablerect.right = rect.right - (switchbegin);
88 disablerect.top = rect.top + (switchbegin);
89 disablerect.bottom = rect.bottom - (switchbegin);
90
91 if (disablerect.right > disablerect.left && disablerect.bottom > disablerect.top) {
92 paint.setStyle(QPainter.Paint.FILL);
93
94 double rate = Math.min(1.f,(1.f -_present));
95 int alpha = (int) (0xff * rate);
96 if (alpha > 0xCE) {
97 alpha = 0xCE;
98 } else if (alpha < 0) {
99 alpha = 0;
100 }
101 alpha <<= 24;
102 paint.setColor(0x00ffffff | alpha);
103 _canvas.drawRoundedRect(disablerect, (int)rxy, (int)rxy,paint);
104 }
105
106
107 if (_present != 0.f) {
108 paint.setStyle(QPainter.Paint.FILL);
109 QRect avarect = new QRect(rect);
110 avarect.right = switchbegin + (r * 2);
111
112 double rate = (1.f -_present);
113 int rgbValue = switchOnColor & 0xffffff;
114 int dist = (0xffffff - rgbValue);
115
116 int _rv = (int) (((dist>>16) & 0xff) * rate);
117 int _gv = (int) (((dist>>8) & 0xff) * rate);
118 int _bv = (int) ((dist & 0xff) * rate);
119
120 int newclr = (_rv<<16) | (_gv << 8) | _bv;
121 int colordis = (int) (switchOnColor + newclr);
122 paint.setColor(colordis);
123 _canvas.drawRoundedRect(avarect,(int)rxy, (int)rxy,paint);
124 }
125
126 paint.setStyle(QPainter.Paint.FILL);
127 paint.setColor(0xffffffff);
128 //paint.setShadowLayer(2.F, 0.F,2.F, 0xff333333);
129 _canvas.drawCircle((int)(switchbegin + (height() / 2.f)), (int)(height() / 2.f), (int)r, paint);
130
131 //paint.setMaskFilter(blurFilter);
132 //paint.setShadowLayer(10F, 11F,5F, Color.BLACK);
133 //paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
134 paint.setStrokeWidth(0.f);
135 paint.setStyle(QPainter.Paint.STROKE);
136 paint.setColor(0xffdedede);
137 //paint.setShadowLayer(0,0,0, Color.BLACK);
138 _canvas.drawCircle((int)(switchbegin + (height() / 2.f)), (int)(height() / 2.f), (int)r, paint);
139 }
140 if (this.isEnabled() == false) {
141 /*Paint bitmapPaint = new Paint();
142 bitmapPaint.setAlpha(0x7f);*/
143 canvas.drawImage(_cachedBitmap, 0, 0);
144 } else {
145 canvas.drawImage(_cachedBitmap, 0, 0);
146 }
147 }catch(Exception e){
148
149 }
150 }
异常类
Math类
static final int min(int, int)
bool isEnabled()
Definition QWidget.xcsm:95
QImage _cachedBitmap
Definition Switche.xcsm:12
int dip2px(double dpValue)
Definition Switche.xcsm:27

引用了 Math.min().

◆ onMouseButtonPress()

void onMouseButtonPress ( int  Button,
int  x,
int  y,
int  flags,
int  source 
)
override

重载 QObject .

在文件 Switche.xcsm152 行定义.

152 {
153 // TODO Auto-generated method stub
154 if (this.isEnabled() == false) {
155 return ;
156 }
157
158 _bOn = !_bOn;
159 try{
161 }catch(IllegalArgumentException e){
162
163 }
164
165 if (_listener != nilptr) {
166 _listener.onSwitch(this, _bOn);
167 }
168 //break;
169 }
OnSwitchListener _listener
Definition Switche.xcsm:14
void onSwitch(Switche view,bool __bOn)

◆ onPaint()

void onPaint ( int   ,
int  ,
int  ,
int  ,
long  hpaint 
)
override

重载 QObject .

在文件 Switche.xcsm290 行定义.

290 {
291 onDraw(new QPainter(hpaint));
292 }
void onDraw(@NotNilptr QPainter canvas)
Definition Switche.xcsm:32

◆ setChecked()

void setChecked ( bool  bOn,
bool  bAnimation 
)

在文件 Switche.xcsm258 行定义.

258 {
259 _bForceRedraw = _bOn != bOn;
260 _bOn = bOn;
261 if (bAnimation == false) {
262
263 if (_bOn) {
264 _present = 1;
265 switchbegin = width() - (height());
266 } else {
267 _present = 0.f;
268 switchbegin = 0;
269 }
270
271 postUpdate();
272 } else {
273 try{
275 }catch(IllegalArgumentException e){
276
277 }
278 }
279 }
final void postUpdate()
Definition QWidget.xcsm:397

◆ setOnSwitchListener()

void setOnSwitchListener ( OnSwitchListener  listener)

在文件 Switche.xcsm22 行定义.

22 {
23 _listener = listener;
24 }

结构体成员变量说明

◆ _animator

Timer _animator = nilptr
package

在文件 Switche.xcsm10 行定义.

◆ _bForceRedraw

bool _bForceRedraw = false
package

在文件 Switche.xcsm13 行定义.

◆ _bOn

bool _bOn = true
package

在文件 Switche.xcsm9 行定义.

◆ _cachedBitmap

QImage _cachedBitmap = nilptr
package

在文件 Switche.xcsm12 行定义.

◆ _listener

OnSwitchListener _listener = nilptr
package

在文件 Switche.xcsm14 行定义.

◆ _present

double _present = 0.f
package

在文件 Switche.xcsm8 行定义.

◆ _scale

double _scale = 1.f
package

在文件 Switche.xcsm6 行定义.

◆ _timeObj

Object _timeObj = new Object()
package

在文件 Switche.xcsm11 行定义.

◆ switchbegin

double switchbegin = 0.f
package

在文件 Switche.xcsm7 行定义.

◆ switchOffColor

int switchOffColor = 0xffcccccc
package

在文件 Switche.xcsm16 行定义.

◆ switchOnColor

int switchOnColor = 0xff4BD963
package

在文件 Switche.xcsm15 行定义.