2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.tizenopensource.org/license
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_NORMAL_INC 144 144 144 255
18 #define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_PRESSED_INC 0 0 0 255
19 #define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_SELECTED_INC 0 0 0 255
20 #define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_DISABLED_INC 144 144 144 255
21 #define SEGMENT_CONTROL_ITEM_1PX_LEFT_PADDING_COLOR_INC 43 43 43 255
22 #define SEGMENT_CONTROL_ITEM_1PX_RIGHT_PADDING_COLOR_INC 76 76 76 255
24 #define SEGMENT_CONTROL_TEXT_SIZE_INC 28
25 #define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MIN_INC 12
26 #define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MAX_INC 28
28 //################################################################
30 //################################################################
32 group { name: "elm/segment_control/base/gallery/default";
34 image: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL COMP;
36 #define SEGMENT_TYPE_SINGLE 1
37 #define SEGMENT_TYPE_LEFT 2
38 #define SEGMENT_TYPE_MIDDLE 3
39 #define SEGMENT_TYPE_RIGHT 4
40 #define SEGMENT_STATE_NORMAL 1
41 #define SEGMENT_STATE_PRESSED 2
42 #define SEGMENT_STATE_SELECTED 3
43 #define SEGMENT_STATUS_ENABLED 0
44 #define SEGMENT_STATUS_DISABLED 1
55 normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL;
64 group { name: "elm/segment_control/item/gallery/default";
66 image: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL COMP;
67 image: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_LEFT COMP;
68 image: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_CENTRE COMP;
69 image: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_RIGHT COMP;
70 image: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_NORMAL COMP;
71 image: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_01 COMP;
72 image: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_02 COMP;
73 image: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_03 COMP;
74 image: GALLERY_EDC_IMAGE_BTN_SGE_BODY COMP;
80 description { state: "default" 0.0;
84 part { name: "segment";
86 description { state: "default" 0.0;
101 normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL;
107 description { state: "default_single" 0.0;
108 inherit: "default" 0.0;
111 normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL;
115 description { state: "default_left" 0.0;
116 inherit: "default" 0.0;
119 normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_LEFT;
123 description { state: "default_right" 0.0;
124 inherit: "default" 0.0;
127 normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_RIGHT;
131 description { state: "default_middle" 0.0;
132 inherit: "default" 0.0;
135 normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_CENTRE;
139 description { state: "pressed_single" 0.0;
140 inherit: "default" 0.0;
143 normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_NORMAL;
147 description { state: "pressed_left" 0.0;
148 inherit: "default" 0.0;
151 normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_01;
155 description { state: "pressed_right" 0.0;
156 inherit: "default" 0.0;
159 normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_03;
163 description { state: "pressed_middle" 0.0;
164 inherit: "default" 0.0;
167 normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_02;
171 description { state: "selected_single" 0.0;
172 inherit: "default" 0.0;
175 normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_NORMAL;
179 description { state: "selected_left" 0.0;
180 inherit: "default" 0.0;
183 normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_01;
187 description { state: "selected_right" 0.0;
188 inherit: "default" 0.0;
191 normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_03;
195 description { state: "selected_middle" 0.0;
196 inherit: "default" 0.0;
199 normal: GALLERY_EDC_IMAGE_BTN_SGE_PRESS_02;
204 part { name: "left_1pxl_padding";
207 description { state: "default" 0.0;
220 color: SEGMENT_CONTROL_ITEM_1PX_LEFT_PADDING_COLOR_INC;
222 description { state: "visible" 0.0;
223 inherit: "default" 0.0;
227 part { name: "right_1pxl_padding";
230 description { state: "default" 0.0;
245 color: SEGMENT_CONTROL_ITEM_1PX_RIGHT_PADDING_COLOR_INC;
247 description { state: "visible" 0.0;
248 inherit: "default" 0.0;
252 part { name: "padding_frame";
256 description { state: "default" 0.0;
258 /* Add a padding of 2 pxs in all directions */
263 part { name: "icon.bg";
267 description { state: "default" 0.0;
270 rel1.to: "elm.swallow.icon";
271 rel2.to: "elm.swallow.icon";
274 part { name: "padding_icon_text";
278 description { state: "default" 0.0; //when only icon or no icon is there
290 description { state: "icononly" 0.0;
291 inherit: "default" 0.0;
293 description { state: "visible" 0.0; //when icon is visible
294 inherit: "default" 0.0;
298 part { name: "elm.swallow.icon";
301 description { state: "default" 0.0;
304 rel1.to: "padding_frame";
305 rel2.to: "padding_frame";
306 rel2.relative: 0.0 0.0;
308 aspect_preference: BOTH;
310 description { state: "visible" 0.0;
311 inherit: "default" 0.0;
313 rel2.relative: 0.3 1.0;
315 description { state: "icononly" 0.0;
316 inherit: "default" 0.0;
318 rel2.relative: 1.0 1.0;
321 part { name: "elm.text";
326 state: "default" 0.0;
331 to_x: "padding_icon_text";
334 rel2.to: "padding_frame";
335 color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_NORMAL_INC;
337 font: "Helvetica Neue:style=Medium";
340 size: SEGMENT_CONTROL_TEXT_SIZE_INC;
341 size_range: SEGMENT_CONTROL_TEXT_SIZE_RANGE_MIN_INC SEGMENT_CONTROL_TEXT_SIZE_RANGE_MAX_INC;
345 description { state: "normal" 0.0;
346 inherit: "default" 0.0;
349 description { state: "pressed" 0.0;
350 inherit: "default" 0.0;
352 color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_PRESSED_INC;
354 description { state: "selected" 0.0;
355 inherit: "default" 0.0;
357 color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_SELECTED_INC;
359 description { state: "disabled" 0.0;
360 inherit: "default" 0.0;
362 color: SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_DISABLED_INC;
365 part { name: "disabler";
368 description { state: "default" 0.0;
381 color: 255 255 255 150;
383 description { state: "disabled_single" 0.0;
384 inherit: "default" 0.0;
387 normal: GALLERY_EDC_IMAGE_BTN_SGE_BODY;
391 description { state: "disabled_left" 0.0;
392 inherit: "default" 0.0;
395 normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_LEFT;
399 description { state: "disabled_right" 0.0;
400 inherit: "default" 0.0;
403 normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_RIGHT;
407 description { state: "disabled_middle" 0.0;
408 inherit: "default" 0.0;
411 normal: GALLERY_EDC_IMAGE_BTN_SGE_NORMAL_CENTRE;
419 public seg_type; // Single, Left, Middle, Right.
420 public seg_state; // Normal/Default, Pressed, Selected.
421 public seg_status;// Enabled/Default, Disabled
423 public update_state() {
424 new type, state, disabled;
425 type = get_int(seg_type);
426 state = get_int(seg_state);
427 disabled = get_int(seg_status);
429 if(state == SEGMENT_STATE_NORMAL)
431 if(type == SEGMENT_TYPE_SINGLE)
433 set_state(PART:"segment", "default_single", 0.0);
434 set_state(PART:"left_1pxl_padding", "default", 0.0);
435 set_state(PART:"right_1pxl_padding", "default", 0.0);
437 else if(type == SEGMENT_TYPE_LEFT)
439 set_state(PART:"segment", "default_left", 0.0);
440 set_state(PART:"left_1pxl_padding", "default", 0.0);
441 set_state(PART:"right_1pxl_padding", "visible", 0.0);
443 else if(type == SEGMENT_TYPE_MIDDLE)
445 set_state(PART:"segment", "default_middle", 0.0);
446 set_state(PART:"left_1pxl_padding", "visible", 0.0);
447 set_state(PART:"right_1pxl_padding", "visible", 0.0);
449 else if(type == SEGMENT_TYPE_RIGHT)
451 set_state(PART:"segment", "default_right", 0.0);
452 set_state(PART:"left_1pxl_padding", "visible", 0.0);
453 set_state(PART:"right_1pxl_padding", "default", 0.0);
455 set_state(PART:"elm.text", "normal", 0.0);
457 else if(state == SEGMENT_STATE_PRESSED)
459 if(type == SEGMENT_TYPE_SINGLE)
461 set_state(PART:"segment", "pressed_single", 0.0);
462 set_state(PART:"left_1pxl_padding", "default", 0.0);
463 set_state(PART:"right_1pxl_padding", "default", 0.0);
465 else if(type == SEGMENT_TYPE_LEFT)
467 set_state(PART:"segment", "pressed_left", 0.0);
468 set_state(PART:"left_1pxl_padding", "default", 0.0);
469 set_state(PART:"right_1pxl_padding", "visible", 0.0);
471 else if(type == SEGMENT_TYPE_MIDDLE)
473 set_state(PART:"segment", "pressed_middle", 0.0);
474 set_state(PART:"left_1pxl_padding", "visible", 0.0);
475 set_state(PART:"right_1pxl_padding", "visible", 0.0);
477 else if(type == SEGMENT_TYPE_RIGHT)
479 set_state(PART:"segment", "pressed_right", 0.0);
480 set_state(PART:"left_1pxl_padding", "visible", 0.0);
481 set_state(PART:"right_1pxl_padding", "default", 0.0);
483 set_state(PART:"elm.text", "pressed", 0.0);
485 else if(state == SEGMENT_STATE_SELECTED)
487 if(type == SEGMENT_TYPE_SINGLE)
489 set_state(PART:"segment", "selected_single", 0.0);
490 set_state(PART:"left_1pxl_padding", "default", 0.0);
491 set_state(PART:"right_1pxl_padding", "default", 0.0);
493 else if(type == SEGMENT_TYPE_LEFT)
495 set_state(PART:"segment", "selected_left", 0.0);
496 set_state(PART:"left_1pxl_padding", "default", 0.0);
497 set_state(PART:"right_1pxl_padding", "visible", 0.0);
499 else if(type == SEGMENT_TYPE_MIDDLE)
501 set_state(PART:"segment", "selected_middle", 0.0);
502 set_state(PART:"left_1pxl_padding", "visible", 0.0);
503 set_state(PART:"right_1pxl_padding", "visible", 0.0);
505 else if(type == SEGMENT_TYPE_RIGHT)
507 set_state(PART:"segment", "selected_right", 0.0);
508 set_state(PART:"left_1pxl_padding", "visible", 0.0);
509 set_state(PART:"right_1pxl_padding", "default", 0.0);
511 set_state(PART:"elm.text", "selected", 0.0);
513 if(disabled == SEGMENT_STATUS_DISABLED)
515 if(type == SEGMENT_TYPE_SINGLE)
517 set_state(PART:"disabler", "disabled_single", 0.0);
519 else if(type == SEGMENT_TYPE_LEFT)
521 set_state(PART:"disabler", "disabled_left", 0.0);
522 set_state(PART:"left_1pxl_padding", "default", 0.0);
523 set_state(PART:"right_1pxl_padding", "visible", 0.0);
525 else if(type == SEGMENT_TYPE_MIDDLE)
527 set_state(PART:"disabler", "disabled_middle", 0.0);
528 set_state(PART:"left_1pxl_padding", "visible", 0.0);
529 set_state(PART:"right_1pxl_padding", "visible", 0.0);
531 else if(type == SEGMENT_TYPE_RIGHT)
533 set_state(PART:"disabler", "disabled_right", 0.0);
534 set_state(PART:"left_1pxl_padding", "visible", 0.0);
535 set_state(PART:"right_1pxl_padding", "default", 0.0);
537 set_state(PART:"elm.text", "disabled", 0.0);
541 set_state(PART:"disabler", "default", 0.0);
546 name: "segment_type_s";
547 signal: "elm,type,segment,single";
550 set_int(seg_type, SEGMENT_TYPE_SINGLE);
555 name: "segment_type_l";
556 signal: "elm,type,segment,left";
559 set_int(seg_type, SEGMENT_TYPE_LEFT);
564 name: "segment_type_m";
565 signal: "elm,type,segment,middle";
568 set_int(seg_type, SEGMENT_TYPE_MIDDLE);
573 name: "segment_type_r";
574 signal: "elm,type,segment,right";
577 set_int(seg_type, SEGMENT_TYPE_RIGHT);
582 name: "normal_segment";
583 signal: "elm,state,segment,normal";
586 set_int(seg_state, SEGMENT_STATE_NORMAL);
591 name: "pressed_segment";
592 signal: "elm,state,segment,pressed";
595 set_int(seg_state, SEGMENT_STATE_PRESSED);
600 name: "selected_segment";
601 signal: "elm,state,segment,selected";
604 set_int(seg_state, SEGMENT_STATE_SELECTED);
608 program { name: "disable_segment";
609 signal: "elm,state,disabled";
612 set_int(seg_status, SEGMENT_STATUS_DISABLED);
616 program { name: "enable_segment";
617 signal: "elm,state,enabled";
620 set_int(seg_status, SEGMENT_STATUS_ENABLED);
624 program { name: "text_show";
625 signal: "elm,state,text,visible";
630 get_state(PART:"elm.swallow.icon", st, 30, vl);
631 if (!strcmp(st, "icononly"))
633 set_state(PART:"elm.swallow.icon", "visible", 0.0);
634 set_state(PART:"padding_icon_text", "visible", 0.0);
636 get_state(PART:"elm.text", st, 30, vl);
637 if (!strcmp(st, "selected"))
638 set_state(PART:"elm.text", "selected", 0.0);
640 set_state(PART:"elm.text", "normal", 0.0);
643 program { name: "text_hide";
644 signal: "elm,state,text,hidden";
649 get_state(PART:"elm.swallow.icon", st, 30, vl);
650 if (!strcmp(st, "visible"))
652 set_state(PART:"elm.swallow.icon", "icononly", 0.0);
653 set_state(PART:"padding_icon_text", "icononly", 0.0);
655 set_state(PART:"elm.text", "default", 0.0);
658 program { name: "icon_show";
659 signal: "elm,state,icon,visible";
664 get_state(PART:"elm.text", st, 30, vl);
665 if ((!strcmp(st, "normal")) || (!strcmp(st, "selected")))
667 set_state(PART:"elm.swallow.icon", "visible", 0.0);
668 set_state(PART:"padding_icon_text", "visible", 0.0);
672 set_state(PART:"elm.swallow.icon", "icononly", 0.0);
673 set_state(PART:"padding_icon_text", "icononly", 0.0);
677 program { name: "icon_hide";
678 signal: "elm,state,icon,hidden";
680 action: STATE_SET "default" 0.0;
681 target: "elm.swallow.icon";
684 #undef SEGMENT_TYPE_SINGLE
685 #undef SEGMENT_TYPE_LEFT
686 #undef SEGMENT_TYPE_MIDDLE
687 #undef SEGMENT_TYPE_RIGHT
688 #undef SEGMENT_STATE_NORMAL
689 #undef SEGMENT_STATE_PRESSED
690 #undef SEGMENT_STATE_SELECTED
691 #undef SEGMENT_STATUS_ENABLED
692 #undef SEGMENT_STATUS_DISABLED