#define SAMPLE_IME_KEYBOARD_BG              "sample_ime_keyboard_bg.png"
#define SAMPLE_IME_KEY_BG_NORMAL            "sample_ime_key_bg_normal.png"
#define SAMPLE_IME_MAGNIFIER_BG             "sample_ime_magnifier_bg.png"
#define SAMPLE_IME_KEY_BG_PRESSED           "sample_ime_key_bg_pressed.png"
#define SAMPLE_IME_CTRL_KEY_BG_NORMAL       "sample_ime_control_key_bg_normal.png"
#define SAMPLE_IME_CTRL_KEY_BG_PRESSED      "sample_ime_key_bg_pressed.png"
#define SAMPLE_IME_SHIFT_BG_LOC             "sample_ime_shift_bg_loc.png"
#define SAMPLE_IME_SHIFT_ON                 "sample_ime_shift_on.png"
#define SAMPLE_IME_SHIFT_OFF                "sample_ime_shift_off.png"
#define SAMPLE_IME_SHIFT_LOC                "sample_ime_shift_loc.png"
#define SAMPLE_IME_SHIFT_PRESSED            "sample_ime_shift_press.png"
#define SAMPLE_IME_BACK_SPACE_NORMAL        "sample_ime_back_space_normal.png"
#define SAMPLE_IME_SPACE_NORMAL             "sample_ime_space_normal.png"
#define SAMPLE_IME_SETTING_NORMAL           "sample_ime_setting_normal.png"
#define SAMPLE_IME_ENTER_NORMAL             "sample_ime_enter_normal.png"
#define SAMPLE_IME_ENTER_DISABLE            "sample_ime_enter_disable.png"
#define SAMPLE_IME_ENTER_EMPTY              "sample_ime_enter_empty.png"

#define SAMPLE_IME_MAIN_LABEL_COLOR         17 17 17 255
#define SAMPLE_IME_SUB_LABEL_COLOR          17 17 17 127
#define SAMPLE_IME_MAGNIFIER_LABEL_COLOR    0 166 194 255
#define SAMPLE_IME_ENTER_DISABLE_COLOR      17 17 17 51
#define SAMPLE_IME_MAIN_LABEL_FONT          "Tizen:style=Regular"
#define SAMPLE_IME_SUB_LABEL_FONT           "Tizen:style=Regular"
#define SAMPLE_IME_MAIN_LABEL_SIZE          45
#define SAMPLE_IME_SUB_LABEL_SIZE           23

collections {
   group {
      name: "sample_ime_keyboard_bg";
      images {
         image: SAMPLE_IME_KEYBOARD_BG COMP;
      }

      parts {
         part {
            name: "image";
            type: IMAGE;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
               image.normal: SAMPLE_IME_KEYBOARD_BG;
               fill.smooth: 1;
            }
         }
      }
   }

   group {
      name: "sample_ime_magnifier_label";
      images {
         image: SAMPLE_IME_MAGNIFIER_BG COMP;
      }
      parts {
         part {
            name: "button";
            type: IMAGE;
            mouse_events: 1;
            description {
               state: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
               image.normal: SAMPLE_IME_MAGNIFIER_BG;
               image.border: 11 10 38 37;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_MAGNIFIER_BG;
            }
         }
         part {
            name: "main_label";
            type: TEXT;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               color: SAMPLE_IME_MAGNIFIER_LABEL_COLOR;
               text {
                  text_class: "SAMPLE_IME_MAIN_LABEL_CLASS";
                  font: SAMPLE_IME_MAIN_LABEL_FONT ;
                  size: SAMPLE_IME_MAIN_LABEL_SIZE;
                  align: 0.5 0.5;
               }
               rel1.to: "button";
               rel1.relative: 0.0 0.0;
               rel2.to: "button";
               rel2.relative: 1.0 1.0;
            }
         }
      }
   }

   group {
      name: "sample_ime_key";
      images {
         image: SAMPLE_IME_KEY_BG_NORMAL COMP;
         image: SAMPLE_IME_KEY_BG_PRESSED COMP;
      }
      parts {
         part {
            name: "button";
            type: IMAGE;
            mouse_events: 1;
            description {
               state: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
               image.normal: SAMPLE_IME_KEY_BG_NORMAL;
               image.border: 17 16 15 18;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_KEY_BG_PRESSED;
            }
         }
         part {
            name: "main_label";
            type: TEXT;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               color: SAMPLE_IME_MAIN_LABEL_COLOR;
               text {
                  text_class: "SAMPLE_IME_MAIN_LABEL_CLASS";
                  font: SAMPLE_IME_MAIN_LABEL_FONT ;
                  size: SAMPLE_IME_MAIN_LABEL_SIZE;
                  align: 0.5 0.5;
               }
               rel1.to: "button";
               rel1.relative: 0.0 0.0;
               rel2.to: "button";
               rel2.relative: 1.0 1.0;
            }
         }
         part {
            name: "sub_label";
            type: TEXT;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               color: SAMPLE_IME_SUB_LABEL_COLOR;
               text {
                  text_class: "SAMPLE_IME_SUB_LABEL_CLASS";
                  font: SAMPLE_IME_SUB_LABEL_FONT;
                  size: SAMPLE_IME_SUB_LABEL_SIZE;
                  align: 0.85 0.05;
               }
               rel1.to: "button";
               rel1.relative: 0.0 0.0;
               rel2.to: "button";
               rel2.relative: 1.0 1.0;
            }
         }
      }

      programs {
         program {
            signal: "mouse,down,1";
            source: "button";
            action: STATE_SET "pressed" 0.0;
            target: "button";
            after: "key_press";
            after: "key_longpress";
         }
         program {
            signal: "mouse,up,1";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            after: "key_release";
            after: "key_stop";
         }
         program {
            signal: "mouse,motion,up";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            after: "key_stop";
         }
         program {
            name: "key_press";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,press" "";
         }
         program {
            name: "key_longpress";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,longpress" "";
            in: 0.5 0.0;
         }
         program {
            name: "key_release";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,release" "";
         }
         program {
            name: "key_stop";
            signal: "*";
            source: "button_unclick";
            action: ACTION_STOP;
            target: "key_longpress";
         }
      }
   }

   group {
      name: "sample_ime_shift_key";
      images {
         image: SAMPLE_IME_CTRL_KEY_BG_NORMAL  COMP;
         image: SAMPLE_IME_CTRL_KEY_BG_PRESSED COMP;
         image: SAMPLE_IME_SHIFT_BG_LOC COMP;
         image: SAMPLE_IME_SHIFT_ON COMP;
         image: SAMPLE_IME_SHIFT_OFF COMP;
         image: SAMPLE_IME_SHIFT_LOC COMP;
         image: SAMPLE_IME_SHIFT_PRESSED COMP;
      }
      parts {
         part {
            name: "button";
            type: IMAGE;
            mouse_events: 1;
            description {
               state: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
               image.normal: SAMPLE_IME_CTRL_KEY_BG_NORMAL;
               image.border: 17 16 15 18;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_CTRL_KEY_BG_PRESSED;
            }
            description {
               state: "locked" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_SHIFT_BG_LOC;
            }
         }
         part {
            name: "image";
            type: IMAGE;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               rel1.to: "button";
               rel1.relative: 0.23 0.17;
               rel2.to: "button";
               rel2.relative: 0.77 0.83;
               image.normal: SAMPLE_IME_SHIFT_OFF;
               fill.smooth: 1;
            }
            description {
               state: "on" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_SHIFT_ON;
            }
            description {
               state: "locked" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_SHIFT_LOC;
            }
         }
      }
      programs {
         program {
            signal: "mouse,down,1";
            source: "button";
            action: STATE_SET "pressed" 0.0;
            target: "button";
            after: "key_press";
            after: "key_longpress";
         }
         program {
            signal: "mouse,up,1";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            after: "key_release";
            after: "key_stop";
         }
         program {
            signal: "mouse,motion,up";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            after: "key_stop";
         }
         program {
            name: "key_press";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,press" "";
         }
         program {
            name: "key_longpress";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,longpress" "";
            in: 1.0 0.0;
         }
         program {
            name: "key_release";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,release" "";
         }
         program {
            name: "key_stop";
            signal: "*";
            source: "button_unclick";
            action: ACTION_STOP;
            target: "key_longpress";
         }
         program {
            signal: "shift,on";
            source: "image";
            action: STATE_SET "on" 0.0;
            target: "image";
         }
         program {
            signal: "shift,off";
            source: "image";
            action: STATE_SET "default" 0.0;
            target: "image";
            target: "button";
         }
         program {
            signal: "shift,lock";
            source: "image";
            action: STATE_SET "locked" 0.0;
            target: "image";
            target: "button";
         }
      }
   }

   group {
      name: "sample_ime_back_space_key";
      images {
         image: SAMPLE_IME_CTRL_KEY_BG_NORMAL  COMP;
         image: SAMPLE_IME_CTRL_KEY_BG_PRESSED COMP;
         image: SAMPLE_IME_BACK_SPACE_NORMAL COMP;
      }
      parts {
         part {
            name: "button";
            type: IMAGE;
            mouse_events: 1;
            description {
               state: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
               image.normal: SAMPLE_IME_CTRL_KEY_BG_NORMAL;
               image.border: 17 16 15 18;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_CTRL_KEY_BG_PRESSED;
            }
         }
         part {
            name: "image";
            type: IMAGE;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               rel1.to: "button";
               rel1.relative: 0.23 0.17;
               rel2.to: "button";
               rel2.relative: 0.77 0.83;
               image.normal:SAMPLE_IME_BACK_SPACE_NORMAL;
               fill.smooth: 1;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_BACK_SPACE_NORMAL;
            }
         }
      }
      programs {
         program {
            signal: "mouse,down,1";
            source: "button";
            action: STATE_SET "pressed" 0.0;
            target: "button";
            target: "image";
            after: "key_press";
            after: "longpress_start";
         }
         program {
            signal: "mouse,up,1";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            target: "image";
            after: "key_release";
            after: "key_stop";
         }
         program {
            signal: "mouse,motion,up";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            target: "image";
            after: "key_stop";
         }
         program {
            name: "key_press";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,press" "";
         }
         program {
            name: "longpress_start";
            signal: "*";
            source: "button_click";
            in: 1.0 0.0;
            after: "key_longpress";
         }
         program {
            name: "key_longpress";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,longpress" "";
            in: 0.05 0.0;
            after: "key_longpress";
         }
         program {
            name: "key_release";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,release" "";
         }
         program {
            name: "key_stop";
            signal: "*";
            source: "button_unclick";
            action: ACTION_STOP;
            target: "longpress_start";
            target: "key_longpress";
         }
      }
   }

   group {
      name: "sample_ime_space_key";
      images {
         image: SAMPLE_IME_KEY_BG_NORMAL COMP;
         image: SAMPLE_IME_KEY_BG_PRESSED COMP;
         image: SAMPLE_IME_SPACE_NORMAL COMP;
      }
      parts {
         part {
            name: "button";
            type: IMAGE;
            mouse_events: 1;
            description {
               state: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
               image.normal: SAMPLE_IME_KEY_BG_NORMAL;
               image.border: 17 16 15 18;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_KEY_BG_PRESSED;
            }
         }
         part {
            name: "image";
            type: IMAGE;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               rel1.to: "button";
               rel1.relative: 0.39 0.60;
               rel2.to: "button";
               rel2.relative: 0.60 0.89;
               image.normal: SAMPLE_IME_SPACE_NORMAL;
               fill.smooth: 1;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_SPACE_NORMAL;
            }
         }
         part {
            name: "main_label";
            type: TEXT;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               color: SAMPLE_IME_SUB_LABEL_COLOR;
               text {
                  text_class: "SAMPLE_IME_SPACE_LABEL_CLASS";
                  font: SAMPLE_IME_MAIN_LABEL_FONT ;
                  size: SAMPLE_IME_MAIN_LABEL_SIZE;
                  align: 0.5 0.2;
               }
               rel1.to: "button";
               rel1.relative: 0.0 0.0;
               rel2.to: "button";
               rel2.relative: 1.0 1.0;
            }
         }
      }
      programs {
         program {
            signal: "mouse,down,1";
            source: "button";
            action: STATE_SET "pressed" 0.0;
            target: "button";
            target: "image";
            after: "key_press";
            after: "key_longpress";
         }
         program {
            signal: "mouse,up,1";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            target: "image";
            after: "key_release";
            after: "key_stop";
         }
         program {
            signal: "mouse,motion,up";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            target: "image";
            after: "key_stop";
         }
         program {
            name: "key_press";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,press" "";
         }
         program {
            name: "key_longpress";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,longpress" "";
            in: 1.0 0.0;
         }
         program {
            name: "key_release";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,release" "";
         }
         program {
            name: "key_stop";
            signal: "*";
            source: "button_unclick";
            action: ACTION_STOP;
            target: "key_longpress";
         }
      }
   }

   group {
      name: "sample_ime_symbol_key";
      images {
         image: SAMPLE_IME_CTRL_KEY_BG_NORMAL  COMP;
         image: SAMPLE_IME_CTRL_KEY_BG_PRESSED COMP;
      }
      parts {
         part {
            name: "button";
            type: IMAGE;
            mouse_events: 1;
            description {
               state: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
               image.normal: SAMPLE_IME_CTRL_KEY_BG_NORMAL;
               image.border: 17 16 15 18;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal:  SAMPLE_IME_CTRL_KEY_BG_PRESSED;
            }
         }
         part {
            name: "main_label";
            type: TEXT;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               color: SAMPLE_IME_MAIN_LABEL_COLOR;
               text {
                  text_class: "SAMPLE_IME_SYMBOL_LABEL_CLASS";
                  font: SAMPLE_IME_MAIN_LABEL_FONT ;
                  size: 35;
                  align: 0.5 0.5;
               }
               rel1.to: "button";
               rel1.relative: 0.0 0.0;
               rel2.to: "button";
               rel2.relative: 1.0 1.0;
            }
         }
      }
      programs {
         program {
            signal: "mouse,down,1";
            source: "button";
            action: STATE_SET "pressed" 0.0;
            target: "button";
            after: "key_press";
            after: "key_longpress";
         }
         program {
            signal: "mouse,up,1";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            after: "key_release";
            after: "key_stop";
         }
         program {
            signal: "mouse,motion,up";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            after: "key_stop";
         }
         program {
            name: "key_press";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,press" "";
         }
         program {
            name: "key_longpress";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,longpress" "";
            in: 1.0 0.0;
         }
         program {
            name: "key_release";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,release" "";
         }
         program {
            name: "key_stop";
            signal: "*";
            source: "button_unclick";
            action: ACTION_STOP;
            target: "key_longpress";
         }
      }
   }

   group {
      name: "sample_ime_setting_key";
      images {
         image: SAMPLE_IME_CTRL_KEY_BG_NORMAL  COMP;
         image: SAMPLE_IME_CTRL_KEY_BG_PRESSED COMP;
         image: SAMPLE_IME_SETTING_NORMAL COMP;
      }
      parts {
         part {
            name: "button";
            type: IMAGE;
            mouse_events: 1;
            description {
               state: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
               image.normal: SAMPLE_IME_CTRL_KEY_BG_NORMAL;
               image.border: 17 16 15 18;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_CTRL_KEY_BG_PRESSED;
            }
         }
         part {
            name: "image";
            type: IMAGE;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               rel1.to: "button";
               rel1.relative: 0.08 0.17;
               rel2.to: "button";
               rel2.relative: 0.92 0.83;
               image.normal: SAMPLE_IME_SETTING_NORMAL;
               fill.smooth: 1;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_SETTING_NORMAL;
            }
         }
      }
      programs {
         program {
            signal: "mouse,down,1";
            source: "button";
            action: STATE_SET "pressed" 0.0;
            target: "button";
            target: "image";
            after: "key_press";
            after: "key_longpress";
         }
         program {
            signal: "mouse,up,1";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            target: "image";
            after: "key_release";
            after: "key_stop";
         }
         program {
            signal: "mouse,motion,up";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            target: "image";
            after: "key_stop";
         }
         program {
            name: "key_press";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,press" "";
         }
         program {
            name: "key_longpress";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,longpress" "";
            in: 1.0 0.0;
         }
         program {
            name: "key_release";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,release" "";
         }
         program {
            name: "key_stop";
            signal: "*";
            source: "button_unclick";
            action: ACTION_STOP;
            target: "key_longpress";
         }
      }
   }

    group {
      name: "sample_ime_question_key";
      images {
         image: SAMPLE_IME_KEY_BG_NORMAL COMP;
         image: SAMPLE_IME_KEY_BG_PRESSED COMP;
      }
      parts {
         part {
            name: "button";
            type: IMAGE;
            mouse_events: 1;
            description {
               state: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
               image.normal: SAMPLE_IME_KEY_BG_NORMAL;
               image.border: 17 16 15 18;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_KEY_BG_PRESSED;
            }
         }
         part {
            name: "main_label";
            type: TEXT;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               color: SAMPLE_IME_MAIN_LABEL_COLOR;
               text {
                  text_class: "SAMPLE_IME_MAIN_LABEL_CLASS";
                  font: SAMPLE_IME_MAIN_LABEL_FONT ;
                  size: 56;
                  align: 0.5 0.5;
               }
               rel1.to: "button";
               rel1.relative: 0.0 0.0;
               rel2.to: "button";
               rel2.relative: 1.0 1.0;
            }
         }
      }
      programs {
         program {
            signal: "mouse,down,1";
            source: "button";
            action: STATE_SET "pressed" 0.0;
            target: "button";
            after: "key_press";
            after: "key_longpress";
         }
         program {
            signal: "mouse,up,1";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            after: "key_release";
            after: "key_stop";
         }
         program {
            signal: "mouse,motion,up";
            source: "button";
            action: STATE_SET "default" 0.0;
            target: "button";
            after: "key_stop";
         }
         program {
            name: "key_press";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,press" "";
         }
         program {
            name: "key_longpress";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,longpress" "";
            in: 1.0 0.0;
         }
         program {
            name: "key_release";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,release" "";
         }
         program {
            name: "key_stop";
            signal: "*";
            source: "button_unclick";
            action: ACTION_STOP;
            target: "key_longpress";
         }
      }
   }

   group {
      name: "sample_ime_enter_key";
      images {
         image: SAMPLE_IME_CTRL_KEY_BG_NORMAL  COMP;
         image: SAMPLE_IME_CTRL_KEY_BG_PRESSED COMP;
         image: SAMPLE_IME_ENTER_NORMAL  COMP;
         image: SAMPLE_IME_ENTER_DISABLE COMP;
         image: SAMPLE_IME_ENTER_EMPTY  COMP;
      }
      parts {
         part {
            name: "bg";
            type: RECT;
            mouse_events: 1;
            description {
               state: "default" 0.0;
               color: 255 255 255 0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
            }
            description {
               state: "disabled" 0.0;
               inherit:  "default" 0.0;
               visible: 0;
            }
         }
         part {
            name: "button";
            type: IMAGE;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
               image.normal: SAMPLE_IME_CTRL_KEY_BG_NORMAL;
               image.border: 17 16 15 18;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_CTRL_KEY_BG_PRESSED;
            }
         }
         part {
            name: "image";
            type: IMAGE;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               rel1.to: "button";
               rel1.relative: 0.23 0.17;
               rel2.to: "button";
               rel2.relative: 0.77 0.83;
               image.normal: SAMPLE_IME_ENTER_NORMAL;
               fill.smooth: 1;
            }
            description {
               state: "pressed" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_ENTER_NORMAL;
            }
            description {
               state: "hide" 0.0;
               inherit: "default" 0.0;
               image.normal: SAMPLE_IME_ENTER_EMPTY;
            }
            description {
               state: "disabled" 0.0;
               inherit:  "default" 0.0;
               image.normal: SAMPLE_IME_ENTER_DISABLE;
            }
         }
         part {
            name: "main_label";
            type: TEXT;
            mouse_events: 0;
            description {
               state: "default" 0.0;
               color: SAMPLE_IME_MAIN_LABEL_COLOR;
               text {
                  text_class: "SAMPLE_IME_MAIN_LABEL_CLASS";
                  font: SAMPLE_IME_MAIN_LABEL_FONT ;
                  size: SAMPLE_IME_MAIN_LABEL_SIZE;
                  align: 0.5 0.5;
               }
               rel1.to: "button";
               rel1.relative: 0.0 0.0;
               rel2.to: "button";
               rel2.relative: 1.0 1.0;
            }
            description {
               state: "disabled" 0.0;
               inherit: "default" 0.0;
               color: SAMPLE_IME_ENTER_DISABLE_COLOR;
            }
         }
      }
      programs {
         program {
            signal: "mouse,down,1";
            source: "bg";
            action: STATE_SET "pressed" 0.0;
            target: "button";
            after: "key_press";
            after: "key_longpress";
         }
         program {
            signal: "mouse,up,1";
            source: "bg";
            action: STATE_SET "default" 0.0;
            target: "button";
            after: "key_release";
            after: "key_stop";
         }
         program {
            signal: "mouse,motion,up";
            source: "bg";
            action: STATE_SET "default" 0.0;
            target: "button";
            after: "key_stop";
         }
         program {
            name: "key_press";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,press" "";
         }
         program {
            name: "key_longpress";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,longpress" "";
            in: 1.0 0.0;
         }
         program {
            name: "key_release";
            signal: "*";
            source: "button_click";
            action: SIGNAL_EMIT "elm,action,release" "";
         }
         program {
            name: "key_stop";
            signal: "*";
            source: "button_unclick";
            action: ACTION_STOP;
            target: "key_longpress";
         }
         program {
            name: "image_show";
            signal: "enter,show";
            source: "image";
            action: STATE_SET "default" 0.0;
            target: "image";
         }
         program {
            name: "image_hide";
            signal: "enter,hide";
            source: "image";
            action: STATE_SET "hide" 0.0;
            target: "image";
         }
         program {
            name: "label_default";
            signal: "elm,state,default";
            source: "main_label";
            action: STATE_SET "default" 0.0;
            target: "bg";
            target: "main_label";
         }
         program {
            name: "label_disable";
            signal: "elm,state,disabled";
            source: "main_label";
            action: STATE_SET "disabled" 0.0;
            target: "bg";
            target: "main_label";
         }
         program {
            name: "image_default";
            signal: "elm,state,default";
            source: "image";
            action: STATE_SET "default" 0.0;
            target: "bg";
            target: "image";
         }
         program {
            name: "image_disable";
            signal: "elm,state,disabled";
            source: "image";
            action: STATE_SET "disabled" 0.0;
            target: "bg";
            target: "image";
         }
      }
   }
}
