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