1#define DAYSELECOR_DAY_POS_LEFT 1 2#define DAYSELECOR_DAY_POS_RIGHT 2 3#define DAYSELECOR_DAY_POS_MIDDLE 3 4#define DAYSELECOR_DAY_TYPE_WEEKDAY 1 5#define DAYSELECOR_DAY_TYPE_WEEKEND_DEFAULT 2 6#define DAYSELECOR_DAY_TYPE_WEEKEND_STYLE1 3 7#define DAYSELECOR_DAY_STATE_DEFAULT 1 8#define DAYSELECOR_DAY_STATE_PRESSED 2 9#define DAYSELECOR_DAY_STATE_SELECTED 3 10 11#define DAYSELECTOR_DAY(_pos, _after)\ 12 alias: "day"#_pos "elm.swallow.day"#_pos; \ 13 part {\ 14 name: "elm.swallow.day"#_pos;\ 15 type: SWALLOW;\ 16 scale: 1;\ 17 clip_to: "clipper";\ 18 description { state: "default" 0.0;\ 19 visible: 0;\ 20 min: 0 0;\ 21 align: 0.0 0.5;\ 22 fixed: 1 0;\ 23 rel1 {\ 24 relative: 1.0 0.0;\ 25 to: "elm.swallow.day"#_after;\ 26 offset: 0 0;\ 27 }\ 28 rel2 {\ 29 relative: 1.0 1.0;\ 30 to: "elm.swallow.day"#_after;\ 31 }\ 32 }\ 33 description { state: "visible" 0.0;\ 34 inherit: "default" 0.0;\ 35 visible: 1;\ 36 min: 48 32;\ 37 }\ 38 }\ 39 programs{\ 40 program {\ 41 name: "day"#_pos"visible";\ 42 signal: "elm,day"#_pos",visible";\ 43 source: "elm";\ 44 action: STATE_SET "visible" 0.0;\ 45 target: "elm.swallow.day"#_pos;\ 46 }\ 47 program {\ 48 name: "day"#_pos"notvisible";\ 49 signal: "elm,day"#_pos",default";\ 50 source: "elm";\ 51 action: STATE_SET "default" 0.0;\ 52 target: "elm.swallow.day"#_pos;\ 53 }\ 54 } 55 56group { name: "elm/dayselector/base/default"; 57 parts { 58 part { 59 name: "elm.swallow.day0"; 60 type: SWALLOW; 61 scale: 1; 62 clip_to: "clipper"; 63 description { state: "default" 0.0; 64 visible: 0; 65 align: 0.0 0.5; 66 fixed: 1 0; 67 rel2.relative: 0.0 1.0; 68 } 69 description { state: "visible" 0.0; 70 inherit: "default" 0.0; 71 visible: 1; 72 min: 48 32; 73 } 74 } 75 DAYSELECTOR_DAY(1, 0) 76 DAYSELECTOR_DAY(2, 1) 77 DAYSELECTOR_DAY(3, 2) 78 DAYSELECTOR_DAY(4, 3) 79 DAYSELECTOR_DAY(5, 4) 80 DAYSELECTOR_DAY(6, 5) 81 part { 82 name: "clipper"; 83 type: RECT; 84 description { 85 state: "default" 0.0; 86 rel1.to: "elm.swallow.day0"; 87 rel2.to: "elm.swallow.day6"; 88 } 89 description { 90 state: "visible" 0.0; 91 inherit: "default" 0.0; 92 color: 185 185 185 185; 93 } 94 } 95 part { 96 name: "disabler"; 97 type: RECT; 98 description { 99 state: "default" 0.0; 100 color: 0 0 0 0; 101 visible: 0; 102 } 103 description { 104 state: "visible" 0.0; 105 inherit: "default" 0.0; 106 visible: 1; 107 } 108 } 109 } 110 programs { 111 program { 112 name: "disble_dayselector"; 113 signal: "elm,state,disabled"; 114 source: "elm"; 115 action: STATE_SET "visible" 0.0; 116 target: "disabler"; 117 target: "clipper"; 118 } 119 program { 120 name: "enable_dayselector"; 121 signal: "elm,state,enabled"; 122 source: "elm"; 123 action: STATE_SET "default" 0.0; 124 target: "disabler"; 125 target: "clipper"; 126 } 127 program { 128 name: "day0_visible"; 129 signal: "elm,day0,visible"; 130 source: "elm"; 131 action: STATE_SET "visible" 0.0; 132 target: "elm.swallow.day0"; 133 } 134 program { 135 name: "day0_default"; 136 signal: "elm,day0,default"; 137 source: "elm"; 138 action: STATE_SET "default" 0.0; 139 target: "elm.swallow.day0"; 140 } 141 } 142} 143 144group { name: "elm/check/base/dayselector/default"; 145 images { 146 image: "day_middle_normal.png" COMP; 147 image: "day_left_normal.png" COMP; 148 image: "day_right_normal.png" COMP; 149 image: "day_middle_press.png" COMP; 150 image: "day_middle_selected.png" COMP; 151 image: "day_left_press.png" COMP; 152 image: "day_left_selected.png" COMP; 153 image: "day_right_press.png" COMP; 154 image: "day_right_selected.png" COMP; 155 } 156 script { 157 public check_pos; // Left, Right, Middle. 158 public check_type; // Weekday, Weekend. 159 public check_state = DAYSELECOR_DAY_STATE_DEFAULT; // Default, Pressed, Selected. 160 161 public check_bg_show() { 162 if(get_int(check_pos) == DAYSELECOR_DAY_POS_LEFT) { 163 if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT) 164 set_state(PART:"bg", "default_left", 0.0); 165 else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED) 166 set_state(PART:"bg", "pressed_left", 0.0); 167 else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED) 168 set_state(PART:"bg", "selected_left", 0.0); 169 } 170 else if(get_int(check_pos) == DAYSELECOR_DAY_POS_RIGHT) { 171 if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT) 172 set_state(PART:"bg", "default_right", 0.0); 173 else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED) 174 set_state(PART:"bg", "pressed_right", 0.0); 175 else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED) 176 set_state(PART:"bg", "selected_right", 0.0); 177 } 178 else if(get_int(check_pos) == DAYSELECOR_DAY_POS_MIDDLE) { 179 if(get_int(check_state) == DAYSELECOR_DAY_STATE_DEFAULT) 180 set_state(PART:"bg", "default_middle", 0.0); 181 else if(get_int(check_state) == DAYSELECOR_DAY_STATE_PRESSED) 182 set_state(PART:"bg", "pressed_middle", 0.0); 183 else if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED) 184 set_state(PART:"bg", "selected_middle", 0.0); 185 } 186 } 187 public check_text_show() { 188 if(get_int(check_state) == DAYSELECOR_DAY_STATE_SELECTED) { 189 set_state(PART:"elm.text", "selected", 0.0); 190 set_state(PART:"text2", "selected", 0.0); 191 } else { 192 if(get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKDAY) { 193 set_state(PART:"elm.text", "default", 0.0); 194 set_state(PART:"text2", "default", 0.0); 195 } else if (get_int(check_type) == 196 DAYSELECOR_DAY_TYPE_WEEKEND_DEFAULT) { 197 set_state(PART:"elm.text", "weekend_default", 0.0); 198 set_state(PART:"text2", "weekend_default", 0.0); 199 } 200 else if (get_int(check_type) == DAYSELECOR_DAY_TYPE_WEEKEND_STYLE1) { 201 set_state(PART:"elm.text", "weekend_style1", 0.0); 202 set_state(PART:"text2", "weekend_style1", 0.0); 203 } 204 } 205 } 206 public check_text_pressed() { 207 set_state(PART:"elm.text", "pressed", 0.0); 208 set_state(PART:"text2", "default", 0.0); 209 } 210 } 211 parts { 212 part { 213 name: "bg"; 214 mouse_events: 0; 215 scale: 1; 216 description { 217 state: "default" 0.0; 218 image { 219 normal: "day_middle_normal.png"; 220 border: 1 1 3 4; 221 } 222 } 223 /* default */ 224 description { state: "default_left" 0.0; 225 inherit: "default" 0.0; 226 image { 227 normal: "day_left_normal.png"; 228 border: 4 1 3 4; 229 } 230 } 231 description { state: "default_right" 0.0; 232 inherit: "default" 0.0; 233 image { 234 normal: "day_right_normal.png"; 235 border: 1 4 3 5; 236 } 237 } 238 description { state: "default_middle" 0.0; 239 inherit: "default" 0.0; 240 image { 241 normal: "day_middle_normal.png"; 242 border: 1 1 3 4; 243 } 244 } 245 /* pressed */ 246 description { state: "pressed_left" 0.0; 247 inherit: "default" 0.0; 248 image { 249 normal: "day_left_press.png"; 250 border: 5 1 4 5; 251 } 252 } 253 description { state: "pressed_right" 0.0; 254 inherit: "default" 0.0; 255 image { 256 normal: "day_right_press.png"; 257 border: 1 5 4 5; 258 } 259 } 260 description { state: "pressed_middle" 0.0; 261 inherit: "default" 0.0; 262 image { 263 normal: "day_middle_press.png"; 264 border: 2 1 4 7; 265 } 266 } 267 /* selected */ 268 description { state: "selected_left" 0.0; 269 inherit: "default" 0.0; 270 image { 271 normal: "day_left_selected.png"; 272 border: 5 1 4 5; 273 } 274 } 275 description { state: "selected_right" 0.0; 276 inherit: "default" 0.0; 277 image { 278 normal: "day_right_selected.png"; 279 border: 1 5 4 5; 280 } 281 } 282 description { state: "selected_middle" 0.0; 283 inherit: "default" 0.0; 284 image { 285 normal: "day_middle_selected.png"; 286 border: 2 1 4 7; 287 } 288 } 289 } 290 part { 291 name: "left_padding"; 292 type: SPACER; 293 scale: 1; 294 description { state: "default" 0.0; 295 min: 5 0; 296 fixed: 1 0; 297 align: 0.0 0.5; 298 rel2.relative: 0.0 1.0; 299 } 300 } 301 part { 302 name: "right_padding"; 303 type: SPACER; 304 scale: 1; 305 description { state: "default" 0.0; 306 min: 5 0; 307 fixed: 1 0; 308 align: 1.0 0.5; 309 rel1.relative: 1.0 0.0; 310 } 311 } 312 part { 313 name: "elm.text"; 314 type: TEXT; 315 mouse_events: 0; 316 scale: 1; 317 effect: SHADOW BOTTOM; 318 description { state: "default" 0.0; 319 rel1 { 320 to: "left_padding"; 321 relative: 1.0 0.0; 322 } 323 rel2 { 324 to: "right_padding"; 325 relative: 0.0 1.0; 326 } 327 text { 328 font: FN; 329 size: 10; 330 min: 1 1; 331 ellipsis: -1; 332 text_class: "button"; 333 } 334 color: FN_COL_DEFAULT; 335 } 336 description { state: "weekend_default" 0.0; 337 inherit: "default" 0.0; 338 color: 175 175 175 255; 339 color3: 0 0 0 128; 340 visible: 1; 341 } 342 description { state: "weekend_style1" 0.0; 343 inherit: "default" 0.0; 344 visible: 0; 345 } 346 description { state: "selected" 0.0; 347 inherit: "default" 0.0; 348 visible: 0; 349 } 350 description { state: "pressed" 0.0; 351 inherit: "default" 0.0; 352 color: 255 255 255 255; 353 color3: 255 255 255 0; 354 visible: 1; 355 } 356 } 357 part { 358 name: "text2"; 359 type: TEXT; 360 mouse_events: 0; 361 scale: 1; 362 effect: GLOW; 363 description { state: "default" 0.0; 364 rel1.to: "elm.text"; 365 rel1.offset: 0 -1; 366 rel2.to: "elm.text"; 367 rel2.offset: -1 -2; 368 text { 369 font: FN; 370 size: 10; 371 min: 1 1; 372 ellipsis: -1; 373 text_source: "elm.text"; 374 text_class: "button"; 375 } 376 color: FN_COL_HIGHLIGHT; 377 visible: 0; 378 } 379 description { state: "weekend_default" 0.0; 380 inherit: "default" 0.0; 381 visible: 0; 382 } 383 description { state: "weekend_style1" 0.0; 384 inherit: "default" 0.0; 385 visible: 1; 386 } 387 description { state: "selected" 0.0; 388 inherit: "default" 0.0; 389 color: 255 255 255 255; 390 color2: 255 255 255 24; 391 color3: 255 255 255 18; 392 visible: 1; 393 } 394 } 395 part { 396 name: "events"; 397 type: RECT; 398 ignore_flags: ON_HOLD; 399 description { 400 state: "default" 0.0; 401 rel1.to: "bg"; 402 rel2.to: "bg"; 403 color: 0 0 0 0; 404 } 405 } 406 } 407 programs { 408 program { name: "check,pressed"; 409 signal: "mouse,down,1"; source: "events"; 410 script { 411 set_int(check_state, DAYSELECOR_DAY_STATE_PRESSED); 412 check_bg_show(); 413 check_text_pressed(); 414 } 415 } 416 program { name: "check,toggle"; 417 signal: "mouse,up,1"; source: "events"; 418 action: SIGNAL_EMIT "elm,action,check,toggle" "elm"; 419 } 420 program { name: "check,on"; 421 signal: "elm,state,check,on"; source: "elm"; 422 script { 423 set_int(check_state, DAYSELECOR_DAY_STATE_SELECTED); 424 check_bg_show(); 425 check_text_show(); 426 } 427 } 428 program { name: "check,off"; 429 signal: "elm,state,check,off"; source: "elm"; 430 script { 431 set_int(check_state, DAYSELECOR_DAY_STATE_DEFAULT); 432 check_bg_show(); 433 check_text_show(); 434 } 435 } 436 program { name: "check,left"; 437 signal: "elm,pos,check,left"; source: "elm"; 438 script { 439 set_int(check_pos, DAYSELECOR_DAY_POS_LEFT); 440 check_bg_show(); 441 } 442 } 443 program { name: "check,right"; 444 signal: "elm,pos,check,right"; source: "elm"; 445 script { 446 set_int(check_pos, DAYSELECOR_DAY_POS_RIGHT); 447 check_bg_show(); 448 } 449 } 450 program { name: "check,middle"; 451 signal: "elm,pos,check,middle"; source: "elm"; 452 script { 453 set_int(check_pos, DAYSELECOR_DAY_POS_MIDDLE); 454 check_bg_show(); 455 } 456 } 457 program { name: "check,weekday"; 458 signal: "elm,type,weekday,default"; source: "elm"; 459 script { 460 set_int(check_type, DAYSELECOR_DAY_TYPE_WEEKDAY); 461 check_text_show(); 462 } 463 } 464 program { name: "check,weekend,default"; 465 signal: "elm,type,weekend,default"; source: "elm"; 466 script { 467 set_int(check_type, DAYSELECOR_DAY_TYPE_WEEKEND_DEFAULT); 468 check_text_show(); 469 } 470 } 471 program { name: "check,weekend,style1"; 472 signal: "elm,type,weekend,style1"; source: "elm"; 473 script { 474 set_int(check_type, DAYSELECOR_DAY_TYPE_WEEKEND_STYLE1); 475 check_text_show(); 476 } 477 } 478 } 479} 480 481#undef DAYSELECOR_DAY_POS_LEFT 482#undef DAYSELECOR_DAY_POS_RIGHT 483#undef DAYSELECOR_DAY_POS_MIDDLE 484#undef DAYSELECOR_DAY_TYPE_WEEKDAY 485#undef DAYSELECOR_DAY_TYPE_WEEKEND_DEFAULT 486#undef DAYSELECOR_DAY_TYPE_WEEKEND_STYLE1 487#undef DAYSELECOR_DAY_STATE_DEFAULT 488#undef DAYSELECOR_DAY_STATE_PRESSED 489#undef DAYSELECOR_DAY_STATE_SELECTED 490#undef DAYSELECTOR_DAY 491