1 /*
2 * Copyright (c) 2020-2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "ui_test_slider.h"
17 #include "common/screen.h"
18 #include "test_resource_config.h"
19
20 namespace OHOS {
21 namespace {
22 constexpr int16_t LABEL_HEIGHT = 29;
23 constexpr int16_t BUTTON_WIDTH = 120;
24 constexpr int16_t BUTTON_HEIGHT = 40;
25 constexpr int16_t DELTA_X_COORDINATE = 8;
26 constexpr int16_t DELTA_Y_COORDINATE = 12;
27 constexpr int16_t DELTA_Y_COORDINATE_2 = 19;
28 static bool g_onChange = false;
29 static bool g_onRelease = false;
30 static bool g_onClick = false;
31 static bool g_onDrag = false;
32 static uint16_t g_progress = 20;
33 static uint16_t g_step = 0;
34 static uint16_t g_width = 50;
35 static uint16_t g_height = 250;
36 static int16_t g_min = 0;
37 static int16_t g_max = 100;
38 static int16_t g_knobWidth = 50;
39 constexpr int8_t BACKGROUND_OPA = 38;
40 constexpr uint8_t FOREGROUND_COLOR_R = 0x1f;
41 constexpr uint8_t FOREGROUND_COLOR_G = 0x71;
42 constexpr uint8_t FOREGROUND_COLOR_B = 0xff;
43 } // namespace
44
OnChange(int32_t progress)45 void TestUISliderEventListener::OnChange(int32_t progress)
46 {
47 value_ = progress;
48 if (label_ == nullptr) {
49 if (!MallocLabel()) {
50 return;
51 }
52 }
53 if (g_onChange) {
54 label_->SetText("OnChange");
55 }
56 }
57
OnRelease(int32_t progress)58 void TestUISliderEventListener::OnRelease(int32_t progress)
59 {
60 value_ = progress;
61 if (label_ == nullptr) {
62 if (!MallocLabel()) {
63 return;
64 }
65 }
66 if (g_onRelease) {
67 label_->SetText("OnRelease");
68 }
69 }
70
OnClick(UIView & view,const ClickEvent & event)71 bool TestUISliderEventListener::OnClick(UIView& view, const ClickEvent& event)
72 {
73 if (label_ == nullptr) {
74 if (!MallocLabel()) {
75 return false;
76 }
77 }
78 if (g_onClick) {
79 label_->SetText("OnClick");
80 }
81 return true;
82 }
83
MallocLabel()84 bool TestUISliderEventListener::MallocLabel()
85 {
86 label_ = new UILabel();
87 if (label_ == nullptr) {
88 return false;
89 }
90 viewGroup_->Add(label_);
91 label_->SetPosition(0, 0, 100, 30); // 100: width; 30: height
92 label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
93 label_->SetStyle(STYLE_TEXT_COLOR, Color::Black().full);
94 label_->SetStyle(STYLE_BACKGROUND_COLOR, Color::White().full);
95 label_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
96 return true;
97 }
98
OnDrag(UIView & view,const DragEvent & event)99 bool TestUISliderEventListener::OnDrag(UIView& view, const DragEvent& event)
100 {
101 if (label_ == nullptr) {
102 if (!MallocLabel()) {
103 return false;
104 }
105 }
106
107 if (g_onDrag) {
108 label_->SetText("OnDrag");
109 }
110 return true;
111 }
112
SetUp()113 void UITestSlider::SetUp()
114 {
115 if (container_ == nullptr) {
116 container_ = new UIScrollView();
117 container_->Resize(Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight() - BACK_BUTTON_HEIGHT);
118 positionX_ = 0;
119 positionY_ = 0;
120 UIViewGroup* uiViewGroup = new UIViewGroup();
121 uiViewGroup->SetPosition(positionX_, positionY_, 320, 390); // 320: width; 390: height
122 container_->Add(uiViewGroup);
123 UILabel* label = new UILabel();
124 uiViewGroup->Add(label);
125 // 288: width; 48: height
126 label->SetPosition(TEXT_DISTANCE_TO_LEFT_SIDE, TEXT_DISTANCE_TO_TOP_SIDE, 288, 48);
127 label->SetText("UISlider效果");
128 label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
129 uiViewGroupFrame_ = new UIViewGroup();
130 uiViewGroup->Add(uiViewGroupFrame_);
131 // 288: width; 336: height
132 uiViewGroupFrame_->SetPosition(VIEW_DISTANCE_TO_LEFT_SIDE2, VIEW_DISTANCE_TO_TOP_SIDE, 288, 336);
133 uiViewGroupFrame_->SetStyle(STYLE_BORDER_COLOR, Color::White().full);
134 uiViewGroupFrame_->SetStyle(STYLE_BORDER_OPA, HALF_OPA_OPAQUE);
135 uiViewGroupFrame_->SetStyle(STYLE_BORDER_WIDTH, VIEW_STYLE_BORDER_WIDTH);
136 uiViewGroupFrame_->SetStyle(STYLE_BORDER_RADIUS, VIEW_STYLE_BORDER_RADIUS);
137 uiViewGroupFrame_->SetStyle(STYLE_BACKGROUND_OPA, 0);
138
139 slider_ = new UISlider();
140 slider_->SetPosition(10, 10, 50, 300); // 10:position x; 10: position y; 50: width; 300: height
141 slider_->SetValidHeight(250); // 250: valid height;
142 slider_->SetValue(20); // 20: progress bar current value
143 slider_->SetDirection(UISlider::Direction::DIR_BOTTOM_TO_TOP);
144 listener_ = new TestUISliderEventListener(uiViewGroupFrame_);
145 slider_->SetSliderEventListener(listener_);
146 slider_->SetOnClickListener(listener_);
147 slider_->SetOnDragListener(listener_);
148 uiViewGroupFrame_->Add(slider_);
149 slider_->LayoutCenterOfParent();
150 }
151
152 if (scroll_ == nullptr) {
153 scroll_ = new UIScrollView();
154 scroll_->SetIntercept(true);
155 scroll_->SetPosition(336, 11); // 336: x-coordinate; 11: y-coordinate
156 scroll_->Resize(624, Screen::GetInstance().GetHeight() - 70); // 624: width; 70: decrease height
157 container_->Add(scroll_);
158 positionY_ = 0;
159 }
160 }
161
TearDown()162 void UITestSlider::TearDown()
163 {
164 DeleteChildren(container_);
165 container_ = nullptr;
166 slider_ = nullptr;
167 scroll_ = nullptr;
168 delete listener_;
169 listener_ = nullptr;
170 uiViewGroupFrame_ = nullptr;
171 }
172
GetTestView()173 const UIView* UITestSlider::GetTestView()
174 {
175 UIKitSliderTestUISlider001();
176 UIKitSliderTestSetRange002();
177 UIKitSliderTestSetValue003();
178 UIKitSliderTestSetImage004();
179 UIKitSliderTestSetStyle005();
180 UIKitSliderTestGetStyle006();
181 UIKitSliderTestSetKnobWidth007();
182 UIKitSliderTestSetStep008();
183 UIKitSliderTestSetColor009();
184 UIKitSliderTestSetDirection010();
185 UIKitSliderTestSetValidSize011();
186 UIKitSliderTestSetRadius012();
187 UIKitSliderTestSetOnChangeListener013();
188 UIKitSliderTestSetOnReleaseListener014();
189 UIKitSliderTestSetOnClickCallback015();
190 UIKitSliderTestSetOnDragCallback016();
191 UIKitSliderTestSetCircularStyle017();
192
193 return container_;
194 }
195
SetUpLabel(const char * title,int16_t x,int16_t y) const196 void UITestSlider::SetUpLabel(const char* title, int16_t x, int16_t y) const
197 {
198 UILabel* label = new UILabel();
199 scroll_->Add(label);
200 // 288: width
201 label->SetPosition(x, y, 288, LABEL_HEIGHT);
202 label->SetText(title);
203 label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);
204 }
SetUpButton(UILabelButton * btn,const char * title,int16_t x,int16_t y)205 void UITestSlider::SetUpButton(UILabelButton* btn, const char* title, int16_t x, int16_t y)
206 {
207 if (btn == nullptr) {
208 return;
209 }
210 scroll_->Add(btn);
211 btn->SetPosition(x, y, BUTTON_WIDHT2, BUTTON_HEIGHT2);
212 btn->SetText(title);
213 btn->SetFont(DEFAULT_VECTOR_FONT_FILENAME, BUTTON_LABEL_SIZE);
214 btn->SetOnClickListener(this);
215 btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::RELEASED);
216 btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::PRESSED);
217 btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::INACTIVE);
218 btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::RELEASED);
219 btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::PRESSED);
220 btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::INACTIVE);
221 scroll_->Invalidate();
222 }
223
UIKitSliderTestUISlider001()224 void UITestSlider::UIKitSliderTestUISlider001()
225 {
226 resetBtn_ = new UILabelButton();
227 positionX_ = 24; // 24: x-coordinate
228 positionY_ = 0;
229 SetUpLabel("重置Slider:", positionX_, positionY_);
230 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
231 SetUpButton(resetBtn_, "重置", positionX_, positionY_);
232 }
233
UIKitSliderTestSetRange002()234 void UITestSlider::UIKitSliderTestSetRange002()
235 {
236 incMinProgressBtn_ = new UILabelButton();
237 decMinProgressBtn_ = new UILabelButton();
238 incMaxProgressBtn_ = new UILabelButton();
239 decMaxProgressBtn_ = new UILabelButton();
240 positionX_ = 24; // 24: x-coordinate
241 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
242 SetUpLabel("设置Slider范围:", positionX_, positionY_);
243 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
244 SetUpButton(incMinProgressBtn_, "下限+", positionX_, positionY_);
245 positionX_ += BUTTON_WIDTH + DELTA_Y_COORDINATE;
246 SetUpButton(decMinProgressBtn_, "下限-", positionX_, positionY_);
247 positionX_ = 24; // 24: x-coordinate
248 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE;
249 SetUpButton(incMaxProgressBtn_, "上限+", positionX_, positionY_);
250 positionX_ += BUTTON_WIDTH + DELTA_Y_COORDINATE;
251 SetUpButton(decMaxProgressBtn_, "上限-", positionX_, positionY_);
252 }
253
UIKitSliderTestSetValue003()254 void UITestSlider::UIKitSliderTestSetValue003()
255 {
256 incProgressBtn_ = new UILabelButton();
257 decProgressBtn_ = new UILabelButton();
258 positionX_ = 24; // 24: x-coordinate
259 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
260 SetUpLabel("设置Slider当前值:", positionX_, positionY_);
261 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
262 SetUpButton(incProgressBtn_, "进度+", positionX_, positionY_);
263 positionX_ += BUTTON_WIDTH + DELTA_Y_COORDINATE;
264 SetUpButton(decProgressBtn_, "进度-", positionX_, positionY_);
265 }
266
UIKitSliderTestSetImage004()267 void UITestSlider::UIKitSliderTestSetImage004()
268 {
269 imageBtn_ = new UILabelButton();
270 noImageBtn_ = new UILabelButton();
271 positionX_ = 24; // 24: x-coordinate
272 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
273 SetUpLabel("Slider设置图片:", positionX_, positionY_);
274 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
275 SetUpButton(imageBtn_, "设置图片", positionX_, positionY_);
276 positionX_ += BUTTON_WIDTH + DELTA_Y_COORDINATE;
277 SetUpButton(noImageBtn_, "取消图片", positionX_, positionY_);
278 }
279
UIKitSliderTestSetStyle005()280 void UITestSlider::UIKitSliderTestSetStyle005()
281 {
282 setStyleBtn_ = new UILabelButton();
283 positionX_ = 24; // 24: x-coordinate
284 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
285 SetUpLabel("Slider设置样式:", positionX_, positionY_);
286 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
287 SetUpButton(setStyleBtn_, "设置样式", positionX_, positionY_);
288 }
289
UIKitSliderTestGetStyle006()290 void UITestSlider::UIKitSliderTestGetStyle006()
291 {
292 getStyleBtn_ = new UILabelButton();
293 positionX_ = 24; // 24: x-coordinate
294 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
295 SetUpLabel("Slider设置样式:", positionX_, positionY_);
296 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
297 SetUpButton(getStyleBtn_, "设置样式", positionX_, positionY_);
298 }
299
UIKitSliderTestSetKnobWidth007()300 void UITestSlider::UIKitSliderTestSetKnobWidth007()
301 {
302 incKnobWidthBtn_ = new UILabelButton();
303 decKnobWidthBtn_ = new UILabelButton();
304 positionX_ = 24; // 24: x-coordinate
305 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
306 SetUpLabel("设置Slider滑块宽度:", positionX_, positionY_);
307 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
308 SetUpButton(incKnobWidthBtn_, "滑块宽度+", positionX_, positionY_);
309 positionX_ += BUTTON_WIDTH + DELTA_Y_COORDINATE;
310 SetUpButton(decKnobWidthBtn_, "滑块宽度-", positionX_, positionY_);
311 }
312
UIKitSliderTestSetStep008()313 void UITestSlider::UIKitSliderTestSetStep008()
314 {
315 stepBtn_ = new UILabelButton();
316 positionX_ = 24; // 24: x-coordinate
317 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
318 SetUpLabel("设置Slider步长:", positionX_, positionY_);
319 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
320 SetUpButton(stepBtn_, "步长+", positionX_, positionY_);
321 }
322
UIKitSliderTestSetColor009()323 void UITestSlider::UIKitSliderTestSetColor009()
324 {
325 colorBtn_ = new UILabelButton();
326 positionX_ = 336; // 336: x-coordinate
327 positionY_ = 0;
328 SetUpLabel("设置Slider颜色:", positionX_, positionY_);
329 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
330 SetUpButton(colorBtn_, "设置颜色", positionX_, positionY_);
331 }
332
UIKitSliderTestSetDirection010()333 void UITestSlider::UIKitSliderTestSetDirection010()
334 {
335 dirL2RBtn_ = new UILabelButton();
336 dirR2LBtn_ = new UILabelButton();
337 dirT2BBtn_ = new UILabelButton();
338 dirB2TBtn_ = new UILabelButton();
339 positionX_ = 336; // 336: x-coordinate
340 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
341 SetUpLabel("设置Slider方向:", positionX_, positionY_);
342 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
343 SetUpButton(dirL2RBtn_, "从左到右", positionX_, positionY_);
344 positionX_ += BUTTON_WIDTH + DELTA_Y_COORDINATE;
345 SetUpButton(dirR2LBtn_, "从右到左", positionX_, positionY_);
346 positionX_ = 336; // 336: x-coordinate
347 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE;
348 SetUpButton(dirT2BBtn_, "从上到下", positionX_, positionY_);
349 positionX_ += BUTTON_WIDTH + DELTA_Y_COORDINATE;
350 SetUpButton(dirB2TBtn_, "从下到上", positionX_, positionY_);
351 }
352
UIKitSliderTestSetValidSize011()353 void UITestSlider::UIKitSliderTestSetValidSize011()
354 {
355 widthBtn_ = new UILabelButton();
356 heightBtn_ = new UILabelButton();
357 positionX_ = 336; // 336: x-coordinate
358 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
359 SetUpLabel("设置Slider有效区域宽高:", positionX_, positionY_);
360 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
361 SetUpButton(heightBtn_, "box高度 ", positionX_, positionY_);
362 positionX_ += BUTTON_WIDTH + DELTA_Y_COORDINATE;
363 SetUpButton(widthBtn_, "box宽度 ", positionX_, positionY_);
364 }
365
UIKitSliderTestSetRadius012()366 void UITestSlider::UIKitSliderTestSetRadius012()
367 {
368 radiusBtn_ = new UILabelButton();
369 positionX_ = 336; // 336: x-coordinate
370 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
371 SetUpLabel("设置Slider圆角弧度:", positionX_, positionY_);
372 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
373 SetUpButton(radiusBtn_, "圆角弧度", positionX_, positionY_);
374 }
375
UIKitSliderTestSetOnChangeListener013()376 void UITestSlider::UIKitSliderTestSetOnChangeListener013()
377 {
378 onChangeBtn_ = new UILabelButton();
379 positionX_ = 336; // 336: x-coordinate
380 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
381 SetUpLabel("Slider设置点击和滑动监听: ", positionX_, positionY_);
382 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
383 SetUpButton(onChangeBtn_, "OnChange", positionX_, positionY_);
384 }
385
UIKitSliderTestSetOnReleaseListener014()386 void UITestSlider::UIKitSliderTestSetOnReleaseListener014()
387 {
388 onReleaseBtn_ = new UILabelButton();
389 positionX_ = 336; // 336: x-coordinate
390 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
391 SetUpLabel("Slider设置滑动结束监听:", positionX_, positionY_);
392 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
393 SetUpButton(onReleaseBtn_, "OnRelease", positionX_, positionY_);
394 }
395
UIKitSliderTestSetOnClickCallback015()396 void UITestSlider::UIKitSliderTestSetOnClickCallback015()
397 {
398 onClickBtn_ = new UILabelButton();
399 positionX_ = 336; // 336: x-coordinate
400 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
401 SetUpLabel("Slider设置点击事件回调:", positionX_, positionY_);
402 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
403 SetUpButton(onClickBtn_, "OnClick回调", positionX_, positionY_);
404 }
405
UIKitSliderTestSetOnDragCallback016()406 void UITestSlider::UIKitSliderTestSetOnDragCallback016()
407 {
408 onDragBtn_ = new UILabelButton();
409 positionX_ = 336; // 336: x-coordinate
410 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
411 SetUpLabel("Slider设置滑动事件回调:", positionX_, positionY_);
412 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
413 SetUpButton(onDragBtn_, "OnDrag回调", positionX_, positionY_);
414 }
415
UIKitSliderTestSetCircularStyle017()416 void UITestSlider::UIKitSliderTestSetCircularStyle017()
417 {
418 circularStyleBtn_ = new UILabelButton();
419 positionX_ = 336; // 336: x-coordinate
420 positionY_ += BUTTON_HEIGHT + DELTA_Y_COORDINATE_2;
421 SetUpLabel("Slider设置圆角无滑块样式:", positionX_, positionY_);
422 positionY_ += LABEL_HEIGHT + DELTA_X_COORDINATE;
423 SetUpButton(circularStyleBtn_, "圆角无滑块样式", positionX_, positionY_);
424 }
OnClick(UIView & view,const ClickEvent & event)425 bool UITestSlider::OnClick(UIView& view, const ClickEvent& event)
426 {
427 if (&view == resetBtn_) {
428 slider_->LayoutCenterOfParent();
429 g_progress = 20; // 20: progress
430 g_step = 0;
431 g_width = 50; // 50: width
432 g_height = 250; // 250: height
433 g_knobWidth = 50; // 50: knobWidth
434 g_min = 0;
435 g_max = 100; // 100: max
436 slider_->SetDirection(UISlider::Direction::DIR_BOTTOM_TO_TOP);
437 slider_->SetValidHeight(g_height);
438 slider_->SetValidWidth(g_width);
439 slider_->SetKnobWidth(50); // 50: knob width
440 slider_->SetRange(g_max, g_min);
441 slider_->SetValue(g_progress);
442 slider_->SetStep(g_step);
443 slider_->SetBackgroundStyle(StyleDefault::GetProgressBackgroundStyle());
444 slider_->SetForegroundStyle(StyleDefault::GetProgressForegroundStyle());
445 slider_->SetKnobStyle(StyleDefault::GetSliderKnobStyle());
446 slider_->SetImage(static_cast<ImageInfo*>(nullptr), static_cast<ImageInfo*>(nullptr));
447 slider_->SetKnobImage(static_cast<ImageInfo*>(nullptr));
448 slider_->EnableBackground(true);
449 } else if (&view == incProgressBtn_) {
450 g_progress++;
451 slider_->SetValue(g_progress);
452 } else if (&view == decProgressBtn_) {
453 g_progress--;
454 slider_->SetValue(g_progress);
455 } else if (&view == stepBtn_) {
456 g_step++;
457 slider_->SetStep(g_step);
458 } else {
459 ExpandClick1(view, event);
460 }
461 container_->Invalidate();
462 return true;
463 }
464
ExpandClick1(UIView & view,const ClickEvent & event)465 bool UITestSlider::ExpandClick1(UIView& view, const ClickEvent& event)
466 {
467 if (&view == widthBtn_) {
468 g_width--;
469 slider_->SetValidWidth(g_width);
470 } else if (&view == heightBtn_) {
471 g_height--;
472 slider_->SetValidHeight(g_height);
473 } else if (&view == incMinProgressBtn_) {
474 g_min++;
475 slider_->SetRange(slider_->GetRangeMax(), g_min);
476 } else if (&view == decMinProgressBtn_) {
477 g_min--;
478 slider_->SetRange(slider_->GetRangeMax(), g_min);
479 } else if (&view == incMaxProgressBtn_) {
480 g_max++;
481 slider_->SetRange(g_max, slider_->GetRangeMin());
482 } else if (&view == decMaxProgressBtn_) {
483 g_max--;
484 slider_->SetRange(g_max, slider_->GetRangeMin());
485 } else if (&view == dirL2RBtn_) {
486 g_width = DEFAULT_HEIGHT;
487 g_height = DEFAULT_WIDTH;
488 slider_->SetValidHeight(g_height);
489 slider_->SetValidWidth(g_width);
490 slider_->Resize(g_width, g_height);
491 slider_->SetDirection(UISlider::Direction::DIR_LEFT_TO_RIGHT);
492 slider_->LayoutCenterOfParent();
493 } else if (&view == dirR2LBtn_) {
494 g_width = DEFAULT_HEIGHT;
495 g_height = DEFAULT_WIDTH;
496 slider_->SetValidHeight(g_height);
497 slider_->SetValidWidth(g_width);
498 slider_->Resize(g_width, g_height);
499 slider_->SetDirection(UISlider::Direction::DIR_RIGHT_TO_LEFT);
500 slider_->LayoutCenterOfParent();
501 } else if (&view == dirT2BBtn_) {
502 g_width = DEFAULT_WIDTH;
503 g_height = DEFAULT_HEIGHT;
504 slider_->SetValidHeight(g_height);
505 slider_->SetValidWidth(g_width);
506 slider_->Resize(g_width, g_height);
507 slider_->SetDirection(UISlider::Direction::DIR_TOP_TO_BOTTOM);
508 slider_->LayoutCenterOfParent();
509 } else if (&view == dirB2TBtn_) {
510 g_width = DEFAULT_WIDTH;
511 g_height = DEFAULT_HEIGHT;
512 slider_->SetValidHeight(g_height);
513 slider_->SetValidWidth(g_width);
514 slider_->Resize(g_width, g_height);
515 slider_->SetDirection(UISlider::Direction::DIR_BOTTOM_TO_TOP);
516 slider_->LayoutCenterOfParent();
517 } else {
518 ExpandClick2(view, event);
519 }
520 return true;
521 }
522
ExpandClick2(UIView & view,const ClickEvent & event)523 bool UITestSlider::ExpandClick2(UIView& view, const ClickEvent& event)
524 {
525 if (&view == imageBtn_) {
526 slider_->SetValidHeight(DEFAULT_HEIGHT);
527 slider_->SetValidWidth(5); // 5 valid width
528 slider_->SetKnobWidth(40); // 40: knob width
529 slider_->SetImage(SLIDER_BACKGROUND_IMAGE_PATH, SLIDER_INDICATOR_IMAGE_PATH);
530 slider_->SetKnobImage(SLIDER_KNOB_IMAGE_PATH);
531 slider_->SetDirection(UISlider::Direction::DIR_BOTTOM_TO_TOP);
532 } else if (&view == noImageBtn_) {
533 slider_->SetValidHeight(g_height);
534 slider_->SetValidWidth(g_width);
535 slider_->SetKnobWidth(g_knobWidth);
536 slider_->SetImage(static_cast<ImageInfo*>(nullptr), static_cast<ImageInfo*>(nullptr));
537 slider_->SetKnobImage(static_cast<ImageInfo*>(nullptr));
538 } else if (&view == setStyleBtn_) {
539 Style style = StyleDefault::GetDefaultStyle();
540 style.bgColor_ = Color::Green();
541 slider_->SetBackgroundStyle(style);
542 style.bgColor_ = Color::Red();
543 slider_->SetForegroundStyle(style);
544 style.bgColor_ = Color::Gray();
545 slider_->SetKnobStyle(style);
546 } else if (&view == getStyleBtn_) {
547 slider_->SetBackgroundStyle(STYLE_BACKGROUND_COLOR, Color::Red().full);
548 slider_->SetForegroundStyle(STYLE_BACKGROUND_COLOR, Color::Yellow().full);
549 slider_->SetKnobStyle(STYLE_BACKGROUND_COLOR, Color::Green().full);
550 } else if (&view == incKnobWidthBtn_) {
551 g_knobWidth++;
552 slider_->SetKnobWidth(g_knobWidth);
553 } else if (&view == decKnobWidthBtn_) {
554 g_knobWidth--;
555 slider_->SetKnobWidth(g_knobWidth);
556 } else if (&view == colorBtn_) {
557 slider_->SetSliderColor(Color::Silver(), Color::Blue());
558 slider_->SetKnobColor(Color::White());
559 } else if (&view == radiusBtn_) {
560 slider_->SetSliderRadius(DEFAULT_RADIUS, DEFAULT_RADIUS);
561 slider_->SetKnobRadius(DEFAULT_RADIUS);
562 } else if (&view == onChangeBtn_) {
563 g_onChange = true;
564 } else if (&view == onReleaseBtn_) {
565 g_onRelease = true;
566 } else if (&view == onClickBtn_) {
567 g_onClick = true;
568 } else if (&view == onDragBtn_) {
569 g_onDrag = true;
570 } else if (&view == circularStyleBtn_) {
571 slider_->SetKnobWidth(0);
572 slider_->SetBackgroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND);
573 slider_->SetBackgroundStyle(STYLE_BACKGROUND_OPA, BACKGROUND_OPA);
574 slider_->SetBackgroundStyle(STYLE_BACKGROUND_COLOR, Color::White().full);
575 slider_->SetForegroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND);
576 slider_->SetForegroundStyle(STYLE_BACKGROUND_COLOR,
577 Color::GetColorFromRGB(FOREGROUND_COLOR_R, FOREGROUND_COLOR_G, FOREGROUND_COLOR_B).full);
578 }
579 return true;
580 }
581 } // namespace OHOS
582