+#define PADDING_PART( PADDING_NAME , PADDING_VALUE ) \
+ part { \
+ name: PADDING_NAME; \
+ scale: 1; \
+ type: SPACER; \
+ description { \
+ state: "default" 0.0; \
+ rel1.relative: 0.0 0.0; \
+ rel2.relative: 1.0 0.0; \
+ align: 0.5 0.0; \
+ fixed: 0 1; \
+ min: 0 PADDING_VALUE; \
+ max: -1 PADDING_VALUE; \
+ } \
+ }
+
+#define RESOURCE_IMAGE_CODE_PRESS_SIZE( FILE_NAME , DEFAULT_COLOR_CODE, PRESSED_COLOR_CODE, FILE_SIZE_W, FILE_SIZE_H ) \
+ group { \
+ name: FILE_NAME; \
+ images.image: FILE_NAME COMP; \
+ parts { \
+ part { \
+ name: "image"; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: FILE_NAME; \
+ color_class: DEFAULT_COLOR_CODE;\
+ aspect: 1 1; \
+ fixed: 1 1; \
+ min: FILE_SIZE_W FILE_SIZE_H; \
+ max: FILE_SIZE_W FILE_SIZE_H; \
+ aspect_preference: BOTH; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: PRESSED_COLOR_CODE;\
+ } \
+ }\
+ }\
+ programs{\
+ program {\
+ name: "mouse.down";\
+ source: "image";\
+ signal: "mouse,down,*";\
+ action: STATE_SET "pressed" 0.0;\
+ target: "image";\
+ }\
+ program {\
+ name: "mouse.up";\
+ source: "image";\
+ signal: "mouse,up,*";\
+ action: STATE_SET "default" 0.0;\
+ target: "image";\
+ }\
+ }\
+ }
+
+
+#define RESOURCE_IMAGE_AND_PRESS( FILE_NAME , DEFAULT_COLOR_CODE, PRESSED_COLOR_CODE ) \
+ group { \
+ name: FILE_NAME; \
+ images.image: FILE_NAME COMP; \
+ parts { \
+ part { \
+ name: "image"; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: FILE_NAME; \
+ color_class: DEFAULT_COLOR_CODE;\
+ aspect: 1 1; \
+ aspect_preference: BOTH; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0;\
+ color_class: PRESSED_COLOR_CODE;\
+ } \
+ }\
+ }\
+ programs{\
+ program {\
+ name: "mouse.down";\
+ source: "image";\
+ signal: "mouse,down,*";\
+ action: STATE_SET "pressed" 0.0;\
+ target: "image";\
+ }\
+ program {\
+ name: "mouse.up";\
+ source: "image";\
+ signal: "mouse,up,*";\
+ action: STATE_SET "default" 0.0;\
+ target: "image";\
+ }\
+ }\
+ }
+
+#define RESOURCE_IMAGE_AND_PRESS_WITHOUT_COLOR( FILE_NAME ) \
+ group { \
+ name: FILE_NAME; \
+ images.image: FILE_NAME COMP; \
+ parts { \
+ part { \
+ name: "image"; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: FILE_NAME; \
+ aspect: 1 1; \
+ aspect_preference: BOTH; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0;\
+ } \
+ }\
+ }\
+ programs{\
+ program {\
+ name: "mouse.down";\
+ source: "image";\
+ signal: "mouse,down,*";\
+ action: STATE_SET "pressed" 0.0;\
+ target: "image";\
+ }\
+ program {\
+ name: "mouse.up";\
+ source: "image";\
+ signal: "mouse,up,*";\
+ action: STATE_SET "default" 0.0;\
+ target: "image";\
+ }\
+ }\
+ }
+
+#define RESOURCE_IMAGE( FILE_NAME ) \
+ group { \
+ name: FILE_NAME; \
+ images.image: FILE_NAME COMP; \
+ parts { \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: FILE_NAME; \
+ aspect: 1 1; \
+ aspect_preference: BOTH; \
+ } \
+ } \
+ } \
+ }
+
+#define RESOURCE_IMAGE_COLOR_SIZE( FILE_NAME, COLOR_CLASS , FILE_SIZE_W, FILE_SIZE_H) \
+ group { \
+ name: FILE_NAME; \
+ images.image: FILE_NAME COMP; \
+ parts { \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ fixed: 1 1; \
+ align: 0.5 0.5; \
+ min: FILE_SIZE_W FILE_SIZE_H; \
+ max: FILE_SIZE_W FILE_SIZE_H; \
+ image.normal: FILE_NAME; \
+ color_class: COLOR_CLASS; \
+ } \
+ } \
+ } \
+ }
+
+#define RESOURCE_IMAGE_SIZE( FILE_NAME, FILE_SIZE_W, FILE_SIZE_H) \
+ group { \
+ name: FILE_NAME; \
+ images.image: FILE_NAME COMP; \
+ parts { \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ fixed: 1 1; \
+ min: FILE_SIZE_W FILE_SIZE_H; \
+ max: FILE_SIZE_W FILE_SIZE_H; \
+ image.normal: FILE_NAME; \
+ } \
+ } \
+ } \
+ }
+
+#define RESOURCE_MAP_PIN( FILE_NAME, FILE_SIZE_W, FILE_SIZE_H, OFFSET_H ) \
+ group { \
+ name: FILE_NAME; \
+ images.image: FILE_NAME COMP; \
+ parts { \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ fixed: 1 1; \
+ align: 0.0 0.0; \
+ min: FILE_SIZE_W FILE_SIZE_H; \
+ max: FILE_SIZE_W FILE_SIZE_H; \
+ image.normal: FILE_NAME; \
+ rel1 { offset: -FILE_SIZE_W/2 -OFFSET_H; } \
+ rel2 { offset: -FILE_SIZE_W/2 -OFFSET_H; } \
+ } \
+ } \
+ } \
+ }
+
+#define RESOURCE_MAP_OVERAY( FILE_NAME, FILE_SIZE_W, FILE_SIZE_H) \
+ group { \
+ name: FILE_NAME; \
+ images.image: FILE_NAME COMP; \
+ parts { \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ fixed: 1 1; \
+ align: 0.0 0.0; \
+ min: FILE_SIZE_W FILE_SIZE_H; \
+ max: FILE_SIZE_W FILE_SIZE_H; \
+ image.normal: FILE_NAME; \
+ rel1 { offset: -FILE_SIZE_W/2 -FILE_SIZE_H/2; } \
+ rel2 { offset: -FILE_SIZE_W/2 -FILE_SIZE_H/2; } \
+ } \
+ } \
+ } \
+ }