#define _KEY_BG(key_name, x, y, w, h) \ part { \ name: "key-bg-"key_name; \ type: IMAGE; \ pointer_mode: NOGRAB; \ description { \ state: "default" 0.0; \ min: w h; \ max: w h; \ rel1 { \ relative: 0.0 0.0; \ offset: (x + w/2) (y + h/2); \ } \ rel2 { \ relative: 0.0 0.0; \ offset: (x + w/2) (y + h/2); \ } \ image.normal: "bt_basew.png"; \ } \ } \ part { \ name: "key-bg2-"key_name; \ type: IMAGE; \ mouse_events: 0; \ description { \ state: "default" 0.0; \ min: (w-2) (h-2); \ max: (w-2) (h-2); \ rel1 { \ relative: 0.0 0.0; \ offset: (x + w/2 + 2) (y + h/2 + 2); \ } \ rel2 { \ relative: 0.0 0.0; \ offset: (x + w/2 -2) (y + h/2 - 2); \ } \ image.normal: "bt_glow.png"; \ } \ } #define _KEY_LABEL(key_text, key_name, lbl_dx, lbl_dy) \ part { \ name: "key-lbl-"key_name; \ type: TEXT; \ mouse_events: 0; \ effect: OUTLINE; \ description { \ state: "default" 0.0; \ color: 0 0 0 255; \ color2: 255 255 255 255; \ color3: 255 255 255 255; \ rel1 { \ to: "key-bg-"key_name; \ relative: 0.0 0.0; \ offset: (2 + lbl_dx) (1 + lbl_dy); \ } \ rel2 { \ to: "key-bg-"key_name; \ relative: 1.0 0.0; \ offset: -1 30; \ } \ text { \ font: "key"; \ size: 15; \ text: key_text; \ } \ } \ description { \ state: "down" 0.0; \ inherit: "default" 0.0; \ visible: 0; \ } \ } #define KEY_IMG(key_img, key_name, x, y, w, h) \ _KEY_BG(key_name, x, y, w, h) \ part { \ name: "key-img-"key_name; \ type: IMAGE; \ mouse_events: 0; \ description { \ state: "default" 0.0; \ min: w h; \ max: w h; \ rel1 { \ relative: 0.0 0.0; \ offset: (x + w/2) (y + h/2); \ } \ rel2 { \ relative: 0.0 0.0; \ offset: (x + w/2) (y + h/2);\ }\ image.normal: key_img;\ }\ }\ #define KEY_IMG2(key_img, key_name, x, y, w, h, iw, ih) \ _KEY_BG(key_name, x, y, w, h) \ part { \ name: "key-img-"key_name; \ type: IMAGE; \ mouse_events: 0; \ description { \ state: "default" 0.0; \ min: iw ih; \ max: iw ih; \ rel1 { \ relative: 0.0 0.0; \ offset: (x + w/2) (y+h/2); \ } \ rel2 { \ relative: 0.0 0.0; \ offset: (x + w/2) (y+h/2);\ }\ image.normal: key_img;\ }\ }\ #define SKEY_FULL(key_text, key_name, x, y, w, h, lbl_dx, lbl_dy) \ _KEY_BG(key_name, x, y, w, h) \ _KEY_LABEL(key_text, key_name, lbl_dx, lbl_dy) \ #define KEY_SIZE 30 #define KEY_FULL(v, x, y, lbl_dx, lbl_dy) SKEY_FULL(v, v, x, y, KEY_SIZE, KEY_SIZE, lbl_dx, lbl_dy) #define SKEY(name, text, x, y) SKEY_FULL(name, text, x, y, KEY_SIZE, KEY_SIZE, 0, 0) #define KEY(v, x, y) SKEY(v, v, x, y) #define SKEY_WIDE(name, lbl, x, y, w) \ _KEY_BG(name, x, y, w, KEY_SIZE) \ _KEY_LABEL(lbl, name, 0, 0) \ #define KEY_WIDE(v, x, y, w) SKEY_WIDE(v, v, x, y, w) #define KEY_HPOS(index) KEY_SIZE * index #define KEY_VPOS(index) KEY_SIZE * index