3 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 * Licensed under the Apache License, Version 2.0 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an AS IS BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
20 //################################################################
22 //################################################################
24 group { name: "elm/segment_control/base/default";
25 #define SEGMENT_TYPE_SINGLE 1
26 #define SEGMENT_TYPE_LEFT 2
27 #define SEGMENT_TYPE_MIDDLE 3
28 #define SEGMENT_TYPE_RIGHT 4
29 #define SEGMENT_STATE_NORMAL 1
30 #define SEGMENT_STATE_PRESSED 2
31 #define SEGMENT_STATE_SELECTED 3
32 #define SEGMENT_STATUS_ENABLED 0
33 #define SEGMENT_STATUS_DISABLED 1
47 group { name: "elm/segment_control/item/default";
49 style { name: "segment_control_multiline_style";
50 base: "font=Tizen:style=Bold font_size="SEGMENT_CONTROL_MULTILINE_TEXT_SIZE_INC" align=center color=#ffffff wrap=char ellipsis=1.0 text_class=tizen";
52 tag: "hilight" "+ font=Tizen:style=Bold";
53 tag: "b" "+ font=Tizen:style=Bold";
58 image: "00_badge_bg.png" COMP;
64 description { state: "default" 0.0;
68 part { name: "segment";
72 description { state: "default" 0.0;
85 description { state: "default_single" 0.0;
86 inherit: "default" 0.0;
89 description { state: "default_left" 0.0;
90 inherit: "default" 0.0;
93 description { state: "default_right" 0.0;
94 inherit: "default" 0.0;
97 description { state: "default_middle" 0.0;
98 inherit: "default" 0.0;
101 description { state: "pressed_single" 0.0;
102 inherit: "default" 0.0;
104 description { state: "pressed_left" 0.0;
105 inherit: "default" 0.0;
108 description { state: "pressed_right" 0.0;
109 inherit: "default" 0.0;
111 description { state: "pressed_middle" 0.0;
112 inherit: "default" 0.0;
114 description { state: "selected_single" 0.0;
115 inherit: "default" 0.0;
117 description { state: "selected_left" 0.0;
118 inherit: "default" 0.0;
120 description { state: "selected_right" 0.0;
121 inherit: "default" 0.0;
123 description { state: "selected_middle" 0.0;
124 inherit: "default" 0.0;
127 part { name: "seg_padding";
130 description { state: "default" 0.0;
144 description { state: "visible" 0.0;
145 inherit: "default" 0.0;
146 min: SEGMENT_CONTROL_DIVIDER_LINE_MIN_SIZE_INC;
150 part { name: "divider_left";
152 clip_to: "seg_padding";
154 description { state: "default" 0.0;
163 color: SEGMENT_CONTROL_DIVIDER_LEFT_COLOR_INC;
166 part { name: "divider_right";
168 clip_to: "seg_padding";
170 description { state: "default" 0.0;
179 color: SEGMENT_CONTROL_DIVIDER_RIGHT_COLOR_INC;
182 part { name: "left_text_padding";
186 description { state: "default" 0.0;
189 min: SEGMENT_CONTROL_TEXT_PADDING_MIN_SIZE_INC;
201 part { name: "right_text_padding";
205 description { state: "default" 0.0;
207 min: SEGMENT_CONTROL_TEXT_PADDING_MIN_SIZE_INC;
220 part { name: "icon.bg";
224 description { state: "default" 0.0;
227 rel1.to: "elm.swallow.icon";
228 rel2.to: "elm.swallow.icon";
231 part { name: "padding_icon_text";
235 description { state: "default" 0.0; //when only icon or no icon is there
247 description { state: "icononly" 0.0;
248 inherit: "default" 0.0;
250 description { state: "visible" 0.0; //when icon is visible
251 inherit: "default" 0.0;
255 part { name: "elm.swallow.icon";
258 description { state: "default" 0.0;
261 rel1.to: "left_text_padding";
262 rel1.relative: 1.0 0.0;
263 rel2.to: "left_text_padding";
264 rel2.relative: 1.0 1.0;
266 aspect_preference: BOTH;
268 description { state: "visible" 0.0;
269 inherit: "default" 0.0;
271 min: SEGMENT_CONTROL_VISIBLE_ICON_RECT_MIN_MAX_INC;
273 description { state: "icononly" 0.0;
274 inherit: "default" 0.0;
276 min: SEGMENT_CONTROL_VISIBLE_ICON_RECT_MIN_MAX_INC;
277 rel2.relative: 1.0 1.0;
280 part { name: "elm.text";
285 state: "default" 0.0;
290 to_x: "padding_icon_text";
295 to: "right_text_padding";
298 color: SEGMENT_CONTROL_DEFAULT_ITEM_TEXT_COLOR_NORMAL_INC;
300 style: "segment_control_multiline_style";
305 description { state: "normal" 0.0;
306 inherit: "default" 0.0;
309 description { state: "pressed" 0.0;
310 inherit: "default" 0.0;
312 color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_PRESSED_INC;
314 description { state: "selected" 0.0;
315 inherit: "default" 0.0;
317 color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_SELECTED_INC;
319 description { state: "disabled" 0.0;
320 inherit: "default" 0.0;
322 color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_DISABLED_INC;
325 part { name: "elm.text.badge.bg";
329 state: "default" 0.0;
332 to: "left.padding.text.badge";
336 to: "right.padding.text.badge";
341 normal: "00_badge_bg.png";
346 description { state: "normal" 0.0;
347 inherit: "default" 0.0;
350 description { state: "pressed" 0.0;
351 inherit: "default" 0.0;
354 description { state: "selected" 0.0;
355 inherit: "default" 0.0;
358 description { state: "disabled" 0.0;
359 inherit: "default" 0.0;
363 part { name: "left.padding.text.badge";
367 state: "default" 0.0;
370 min: SEGMENT_CONTROL_BADGE_TEXT_LEFT_PADDING_MIN_INC;
372 to: "elm.text.badge";
376 to: "elm.text.badge";
382 part { name: "right.padding.text.badge";
386 state: "default" 0.0;
389 min: SEGMENT_CONTROL_BADGE_TEXT_RIGHT_PADDING_MIN_INC;
401 part { name: "elm.text.badge";
406 state: "default" 0.0;
411 relative: 0.2 0.0; // rel_x is given 0.2, so bg image will not cross the segment image in left dir.
414 to: "right.padding.text.badge";
418 color: SEGMENT_CONTROL_BADGE_TEXT_COLOR_INC;
420 font: "Tizen:style=Bold";
421 size: SEGMENT_CONTROL_BADGE_TEXT_FONT_SIZE_INC;
426 description { state: "normal" 0.0;
427 inherit: "default" 0.0;
430 description { state: "pressed" 0.0;
431 inherit: "default" 0.0;
434 description { state: "selected" 0.0;
435 inherit: "default" 0.0;
438 description { state: "disabled" 0.0;
439 inherit: "default" 0.0;
443 part { name: "disabler";
447 description { state: "default" 0.0;
460 color: 255 255 255 150;
462 description { state: "disabled_single" 0.0;
463 inherit: "default" 0.0;
466 description { state: "disabled_left" 0.0;
467 inherit: "default" 0.0;
470 description { state: "disabled_right" 0.0;
471 inherit: "default" 0.0;
474 description { state: "disabled_middle" 0.0;
475 inherit: "default" 0.0;
482 public seg_type; // Single, Left, Middle, Right.
483 public seg_state; // Normal/Default, Pressed, Selected.
484 public seg_status;// Enabled/Default, Disabled
486 public update_state() {
487 new type, state, disabled;
488 type = get_int(seg_type);
489 state = get_int(seg_state);
490 disabled = get_int(seg_status);
492 if(state == SEGMENT_STATE_NORMAL)
494 if(type == SEGMENT_TYPE_SINGLE)
496 set_state(PART:"segment", "default_single", 0.0);
497 set_state(PART:"seg_padding", "default", 0.0);
499 else if(type == SEGMENT_TYPE_LEFT)
501 set_state(PART:"segment", "default_left", 0.0);
502 set_state(PART:"seg_padding", "visible", 0.0);
504 else if(type == SEGMENT_TYPE_MIDDLE)
506 set_state(PART:"segment", "default_middle", 0.0);
507 set_state(PART:"seg_padding", "visible", 0.0);
509 else if(type == SEGMENT_TYPE_RIGHT)
511 set_state(PART:"segment", "default_right", 0.0);
512 set_state(PART:"seg_padding", "default", 0.0);
514 set_state(PART:"elm.text", "normal", 0.0);
516 else if(state == SEGMENT_STATE_PRESSED)
518 if(type == SEGMENT_TYPE_SINGLE)
520 set_state(PART:"segment", "pressed_single", 0.0);
522 else if(type == SEGMENT_TYPE_LEFT)
524 set_state(PART:"segment", "pressed_left", 0.0);
525 set_state(PART:"seg_padding", "visible", 0.0);
527 else if(type == SEGMENT_TYPE_MIDDLE)
529 set_state(PART:"segment", "pressed_middle", 0.0);
530 set_state(PART:"seg_padding", "visible", 0.0);
532 else if(type == SEGMENT_TYPE_RIGHT)
534 set_state(PART:"segment", "pressed_right", 0.0);
535 set_state(PART:"seg_padding", "default", 0.0);
537 set_state(PART:"elm.text", "pressed", 0.0);
539 else if(state == SEGMENT_STATE_SELECTED)
541 if(type == SEGMENT_TYPE_SINGLE)
543 set_state(PART:"segment", "selected_single", 0.0);
544 set_state(PART:"seg_padding", "default", 0.0);
546 else if(type == SEGMENT_TYPE_LEFT)
548 set_state(PART:"segment", "selected_left", 0.0);
549 set_state(PART:"seg_padding", "visible", 0.0);
551 else if(type == SEGMENT_TYPE_MIDDLE)
553 set_state(PART:"segment", "selected_middle", 0.0);
554 set_state(PART:"seg_padding", "visible", 0.0);
556 else if(type == SEGMENT_TYPE_RIGHT)
558 set_state(PART:"segment", "selected_right", 0.0);
559 set_state(PART:"seg_padding", "default", 0.0);
561 set_state(PART:"elm.text", "selected", 0.0);
563 if(disabled == SEGMENT_STATUS_DISABLED)
565 if(type == SEGMENT_TYPE_SINGLE)
567 set_state(PART:"disabler", "disabled_single", 0.0);
568 set_state(PART:"seg_padding", "default", 0.0);
570 else if(type == SEGMENT_TYPE_LEFT)
572 set_state(PART:"disabler", "disabled_left", 0.0);
573 set_state(PART:"seg_padding", "visible", 0.0);
575 else if(type == SEGMENT_TYPE_MIDDLE)
577 set_state(PART:"disabler", "disabled_middle", 0.0);
578 set_state(PART:"seg_padding", "visible", 0.0);
580 else if(type == SEGMENT_TYPE_RIGHT)
582 set_state(PART:"disabler", "disabled_right", 0.0);
583 set_state(PART:"seg_padding", "default", 0.0);
585 set_state(PART:"elm.text", "disabled", 0.0);
589 set_state(PART:"disabler", "default", 0.0);
594 name: "segment_type_s";
595 signal: "elm,type,segment,single";
598 set_int(seg_type, SEGMENT_TYPE_SINGLE);
603 name: "segment_type_l";
604 signal: "elm,type,segment,left";
607 set_int(seg_type, SEGMENT_TYPE_LEFT);
612 name: "segment_type_m";
613 signal: "elm,type,segment,middle";
616 set_int(seg_type, SEGMENT_TYPE_MIDDLE);
621 name: "segment_type_r";
622 signal: "elm,type,segment,right";
625 set_int(seg_type, SEGMENT_TYPE_RIGHT);
630 name: "normal_segment";
631 signal: "elm,state,segment,normal";
634 set_int(seg_state, SEGMENT_STATE_NORMAL);
639 name: "pressed_segment";
640 signal: "elm,state,segment,pressed";
643 set_int(seg_state, SEGMENT_STATE_PRESSED);
648 name: "selected_segment";
649 signal: "elm,state,segment,selected";
652 set_int(seg_state, SEGMENT_STATE_SELECTED);
656 program { name: "disable_segment";
657 signal: "elm,state,disabled";
660 set_int(seg_status, SEGMENT_STATUS_DISABLED);
664 program { name: "enable_segment";
665 signal: "elm,state,enabled";
668 set_int(seg_status, SEGMENT_STATUS_ENABLED);
672 program { name: "text_show";
673 signal: "elm,state,text,visible";
678 get_state(PART:"elm.swallow.icon", st, 30, vl);
679 if (!strcmp(st, "icononly"))
681 set_state(PART:"elm.swallow.icon", "visible", 0.0);
682 set_state(PART:"padding_icon_text", "visible", 0.0);
684 get_state(PART:"elm.text", st, 30, vl);
685 if (!strcmp(st, "selected"))
686 set_state(PART:"elm.text", "selected", 0.0);
688 set_state(PART:"elm.text", "normal", 0.0);
691 program { name: "text_hide";
692 signal: "elm,state,text,hidden";
697 get_state(PART:"elm.swallow.icon", st, 30, vl);
698 if (!strcmp(st, "visible"))
700 set_state(PART:"elm.swallow.icon", "icononly", 0.0);
701 set_state(PART:"padding_icon_text", "icononly", 0.0);
703 set_state(PART:"elm.text", "default", 0.0);
706 program { name: "badge_text_show";
707 signal: "elm,state,elm.text.badge,visible";
712 get_state(PART:"elm.text.badge", st, 30, vl);
713 if (!strcmp(st, "selected"))
715 set_state(PART:"elm.text.badge", "selected", 0.0);
716 set_state(PART:"elm.text.badge.bg", "selected", 0.0);
720 set_state(PART:"elm.text.badge", "normal", 0.0);
721 set_state(PART:"elm.text.badge.bg", "normal", 0.0);
725 program { name: "badge_text_hide";
726 signal: "elm,state,elm.text.badge,hidden";
728 action: STATE_SET "default" 0.0;
729 target: "elm.text.badge";
730 target: "elm.text.badge.bg";
732 program { name: "icon_show";
733 signal: "elm,state,icon,visible";
738 get_state(PART:"elm.text", st, 30, vl);
739 if ((!strcmp(st, "normal")) || (!strcmp(st, "selected")))
741 set_state(PART:"elm.swallow.icon", "visible", 0.0);
742 set_state(PART:"padding_icon_text", "visible", 0.0);
746 set_state(PART:"elm.swallow.icon", "icononly", 0.0);
747 set_state(PART:"padding_icon_text", "icononly", 0.0);
751 program { name: "icon_hide";
752 signal: "elm,state,icon,hidden";
754 action: STATE_SET "default" 0.0;
755 target: "elm.swallow.icon";
758 #undef SEGMENT_TYPE_SINGLE
759 #undef SEGMENT_TYPE_LEFT
760 #undef SEGMENT_TYPE_MIDDLE
761 #undef SEGMENT_TYPE_RIGHT
762 #undef SEGMENT_STATE_NORMAL
763 #undef SEGMENT_STATE_PRESSED
764 #undef SEGMENT_STATE_SELECTED
765 #undef SEGMENT_STATUS_ENABLED
766 #undef SEGMENT_STATUS_DISABLED