#define ODD(_NAME, _SRC) \
   group { name: _NAME; \
      inherit: _SRC; \
      parts { \
         part { name: "base"; \
            description { state: "default" 0.0; \
               color: 56 56 56 255; \
               color_class: "list_item_base_odd"; \
            } \
         } \
      } \
   }
#define COMPRESS(_NAME, _SRC) \
   group { name: _NAME; \
      inherit: _SRC; \
      parts { \
         part { name: "elm.text"; \
            description { state: "default" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "selected" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "disabled" 0.0; \
               text.min: 0 1; \
            } \
         } \
         part { name: "label2"; \
            description { state: "default" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "selected" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "disabled" 0.0; \
               text.min: 0 1; \
            } \
         } \
         part { name: "label3"; \
            description { state: "default" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "selected" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "disabled" 0.0; \
               text.min: 0 1; \
            } \
         } \
      } \
   }
#define COMPRESS_ODD(_NAME, _SRC) \
   group { name: _NAME; \
      inherit: _SRC; \
      parts { \
         part { name: "elm.text"; \
            description { state: "default" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "selected" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "disabled" 0.0; \
               text.min: 0 1; \
            } \
         } \
         part { name: "label2"; \
            description { state: "default" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "selected" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "disabled" 0.0; \
               text.min: 0 1; \
            } \
         } \
         part { name: "label3"; \
            description { state: "default" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "selected" 0.0; \
               text.min: 0 1; \
            } \
            description { state: "disabled" 0.0; \
               text.min: 0 1; \
            } \
         } \
         part { name: "base"; \
            description { state: "default" 0.0; \
               color: 56 56 56 255; \
               color_class: "list_item_base_odd"; \
            } \
         } \
      } \
   }

group { name: "elm/list/item/default";
   data.item: "selectraise" "on";
   data.item: "focusraise" "on";
   images.image: "bevel_curved_horiz_out.png" COMP;
   images.image: "shadow_rounded_horiz.png" COMP;
   images.image: "vgrad_med_dark.png" COMP;
   images.image: "bevel_horiz_out.png" COMP;
   images.image: "shine.png" COMP;
   parts {
      part { name: "event"; type: RECT;
         description { state: "default" 0.0;
            color: 0 0 0 0;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
      part { name: "base"; type: RECT; mouse_events: 0;
         description { state: "default" 0.0;
            color: 64 64 64 255;
            color_class: "list_item_base";
         }
         description { state: "odd" 0.0;
            color: 56 56 56 255;
            color_class: "list_item_base_odd";
         }
      }
      program {
         signal: "elm,state,odd"; source: "elm";
         action: STATE_SET "odd" 1.0;
         target: "base";
      }
      program {
         signal: "elm,state,even"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "base";
      }
      part { name: "bevel"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "bevel_curved_horiz_out.png";
            image.border: 0 0 2 2;
            image.middle: 0;
            fill.smooth: 0;
         }
      }
      part { name: "sel_shadow"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "shadow_rounded_horiz.png";
            image.border: 0 0 9 9;
            rel1.offset: 0 -4;
            rel2.offset: -1 5;
            fill.smooth: 0;
            visible: 0;
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "sel_base"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "vgrad_med_dark.png";
            fill.smooth: 0;
            visible: 0;
            TILED_HORIZ(120)
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "sel_bevel"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "bevel_horiz_out.png";
            image.border: 0 0 2 2;
            image.middle: 0;
            fill.smooth: 0;
            visible: 0;
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      program {
         signal: "elm,state,selected"; source: "elm";
         action: STATE_SET "selected" 0.0;
         target: "sel_shadow";
         target: "sel_base";
         target: "sel_bevel";
      }
      program {
         signal: "elm,state,unselected"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "sel_shadow";
         target: "sel_base";
         target: "sel_bevel";
      }
      program {
         signal: "elm,state,disabled"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "event";
      }
      program {
         signal: "elm,state,enabled"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "event";
      }

      //##//
      part { name: "elm.text"; type: TEXT; mouse_events: 0;
         effect: SHADOW BOTTOM;
         scale: 1;
         description { state: "default" 0.0;
            rel1.offset: 2 3;
            rel1.relative: 1.0 0.0;
            rel1.to_x: "elm.swallow.icon";
            rel2.offset: -3 -3;
            rel2.relative: 0.0 1.0;
            rel2.to_x: "elm.swallow.end";
            color: FN_COL_DEFAULT;
            color_class: "list_item";
            text { font: FN; size: 10;
               min: 1 1;
               ellipsis: -1;
               align: 0.0 0.5;
               text_class: "list_item";
            }
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
      part { name: "label2"; type: TEXT; mouse_events: 0;
         effect: SHADOW BOTTOM;
         scale: 1;
         description { state: "default" 0.0;
            rel1.to: "elm.text";
            rel2.to: "elm.text";
            color: FN_COL_DISABLE;
            color_class: "list_item_disabled";
            text { font: FN; size: 10;
               text_source: "elm.text";
               align: 0.0 0.5;
               text_class: "list_item";
            }
            visible: 0;
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "label3"; type: TEXT; mouse_events: 0;
         effect: GLOW;
         scale: 1;
         description { state: "default" 0.0;
            rel1.offset: -2 -3;
            rel1.to: "elm.text";
            rel2.offset: 1 1;
            rel2.to: "elm.text";
            color: FN_COL_HIGHLIGHT;
            color_class: "list_item_selected";
            text { font: FN; size: 10;
               text_source: "elm.text";
               align: 0.0 0.5;
               text_class: "list_item";
            }
            visible: 0;
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
      program {
         signal: "elm,state,selected"; source: "elm";
         action: STATE_SET "selected" 0.0;
         target: "elm.text";
         target: "label2";
         target: "label3";
      }
      program {
         signal: "elm,state,unselected"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "elm.text";
         target: "label2";
         target: "label3";
      }
      program {
         signal: "elm,state,disabled"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "elm.text";
         target: "label2";
         target: "label3";
      }
      program {
         signal: "elm,state,enabled"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "elm.text";
         target: "label2";
         target: "label3";
      }
      //##//
      part { name: "elm.swallow.icon"; type: SWALLOW;
         description { state: "default" 0.0;
            fixed: 1 0;
            align: 0.0 0.5;
            aspect: 1.0 1.0;
            rel1.offset: 2 2;
            rel2.relative: 0.0 1.0;
            rel2.offset: 2 -3;
         }
      }
      part { name: "elm.swallow.end"; type: SWALLOW;
         description { state: "default" 0.0;
            fixed: 1 0;
            align: 1.0 0.5;
            aspect: 1.0 1.0;
            rel1.offset: -3 2;
            rel1.relative: 1.0 0.0;
            rel2.offset: -3 -3;
         }
      }
      //##//

      part { name: "sel_shine"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "shine.png";
            rel1.offset: 0 -2;
            rel1.to: "sel_base";
            rel2.relative: 1.0 0.0;
            rel2.offset: -1 2;
            rel2.to: "sel_base";
            visible: 0;
            FIXED_SIZE(69, 5)
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "event_block"; type: RECT;
         description { state: "default" 0.0;
            color: 0 0 0 0;
            visible: 0;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      program {
         signal: "elm,state,selected"; source: "elm";
         action: STATE_SET "selected" 0.0;
         target: "sel_shine";
      }
      program {
         signal: "elm,state,unselected"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "sel_shine";
      }
      program {
         signal: "elm,state,disabled"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "event_block";
      }
      program {
         signal: "elm,state,enabled"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "event_block";
      }
   }
}
ODD("elm/list/item_odd/default", "elm/list/item/default")
COMPRESS("elm/list/item_compress/default", "elm/list/item/default")
COMPRESS_ODD("elm/list/item_compress_odd/default", "elm/list/item/default")

// XXX: DO:
// elm/list/h_item/default
// elm/list/h_item_odd/default
// elm/list/h_item_compress/default
// elm/list/h_item_compress_odd/default














group { name: "elm/list/h_item/default";
   data.item: "selectraise" "on";
   data.item: "focusraise" "on";
   images.image: "bevel_curved_vert_out.png" COMP;
   images.image: "shadow_rounded_vert.png" COMP;
   images.image: "vgrad_med_dark.png" COMP;
   images.image: "bevel_out.png" COMP;
   images.image: "shine.png" COMP;
   parts {
      part { name: "event"; type: RECT;
         description { state: "default" 0.0;
            color: 0 0 0 0;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
      part { name: "base"; type: RECT; mouse_events: 0;
         description { state: "default" 0.0;
            color: 64 64 64 255;
            color_class: "list_item_base";
         }
         description { state: "odd" 0.0;
            color: 56 56 56 255;
            color_class: "list_item_base_odd";
         }
      }
      program {
         signal: "elm,state,odd"; source: "elm";
         action: STATE_SET "odd" 1.0;
         target: "base";
      }
      program {
         signal: "elm,state,even"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "base";
      }
      part { name: "bevel"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "bevel_curved_vert_out.png";
            image.border: 2 2 0 0;
            image.middle: 0;
            fill.smooth: 0;
         }
      }
      part { name: "sel_shadow"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "shadow_rounded_vert.png";
            image.border: 9 9 0 0;
            rel1.offset: -6 0;
            rel2.offset: 5 -1;
            fill.smooth: 0;
            visible: 0;
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "sel_base"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "vgrad_med_dark.png";
            fill.smooth: 0;
            visible: 0;
            TILED_HORIZ(120)
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "sel_bevel"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "bevel_out.png";
            image.border: 2 2 2 2;
            image.middle: 0;
            fill.smooth: 0;
            visible: 0;
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      program {
         signal: "elm,state,selected"; source: "elm";
         action: STATE_SET "selected" 0.0;
         target: "sel_shadow";
         target: "sel_base";
         target: "sel_bevel";
      }
      program {
         signal: "elm,state,unselected"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "sel_shadow";
         target: "sel_base";
         target: "sel_bevel";
      }
      program {
         signal: "elm,state,disabled"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "event";
      }
      program {
         signal: "elm,state,enabled"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "event";
      }

      //##//
      part { name: "elm.text"; type: TEXT; mouse_events: 0;
         effect: SHADOW BOTTOM;
         scale: 1;
         description { state: "default" 0.0;
            rel1.offset: 2 2;
            rel1.relative: 0.0 1.0;
            rel1.to_y: "elm.swallow.icon";
            rel2.offset: -3 -3;
            rel2.relative: 1.0 0.0;
            rel2.to_y: "elm.swallow.end";
            color: FN_COL_DEFAULT;
            color_class: "list_item";
            text { font: FN; size: 10;
               min: 1 1;
               ellipsis: -1;
               align: 0.5 0.5;
               text_class: "list_item";
            }
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
      part { name: "label2"; type: TEXT; mouse_events: 0;
         effect: SHADOW BOTTOM;
         scale: 1;
         description { state: "default" 0.0;
            rel1.to: "elm.text";
            rel2.to: "elm.text";
            color: FN_COL_DISABLE;
            color_class: "list_item_disabled";
            text { font: FN; size: 10;
               text_source: "elm.text";
               align: 0.5 0.5;
               text_class: "list_item";
            }
            visible: 0;
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "label3"; type: TEXT; mouse_events: 0;
         effect: GLOW;
         scale: 1;
         description { state: "default" 0.0;
            rel1.offset: -2 -3;
            rel1.to: "elm.text";
            rel2.offset: 1 1;
            rel2.to: "elm.text";
            color: FN_COL_HIGHLIGHT;
            color_class: "list_item_selected";
            text { font: FN; size: 10;
               text_source: "elm.text";
               align: 0.5 0.5;
               text_class: "list_item";
            }
            visible: 0;
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
      program {
         signal: "elm,state,selected"; source: "elm";
         action: STATE_SET "selected" 0.0;
         target: "elm.text";
         target: "label2";
         target: "label3";
      }
      program {
         signal: "elm,state,unselected"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "elm.text";
         target: "label2";
         target: "label3";
      }
      program {
         signal: "elm,state,disabled"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "elm.text";
         target: "label2";
         target: "label3";
      }
      program {
         signal: "elm,state,enabled"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "elm.text";
         target: "label2";
         target: "label3";
      }
      //##//
      part { name: "elm.swallow.icon"; type: SWALLOW;
         description { state: "default" 0.0;
            fixed: 0 1;
            aspect: 1.0 1.0;
            align: 0.5 0.0;
            rel1.offset: 2 2;
            rel2.relative: 1.0 0.0;
            rel2.offset: -3 2;
         }
      }
      part { name: "elm.swallow.end"; type: SWALLOW;
         description { state: "default" 0.0;
            fixed: 0 1;
            aspect: 1.0 1.0;
            align: 0.5 1.0;
            rel1.offset: 2 -3;
            rel1.relative: 0.0 1.0;
            rel2.offset: -3 -3;
         }
      }
      //##//

      part { name: "sel_shine"; mouse_events: 0;
         description { state: "default" 0.0;
            image.normal: "shine.png";
            rel1.offset: 0 -2;
            rel1.to: "sel_base";
            rel2.relative: 1.0 0.0;
            rel2.offset: -1 2;
            rel2.to: "sel_base";
            visible: 0;
            FIXED_SIZE(69, 5)
         }
         description { state: "selected" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "event_block"; type: RECT;
         description { state: "default" 0.0;
            color: 0 0 0 0;
            visible: 0;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      program {
         signal: "elm,state,selected"; source: "elm";
         action: STATE_SET "selected" 0.0;
         target: "sel_shine";
      }
      program {
         signal: "elm,state,unselected"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "sel_shine";
      }
      program {
         signal: "elm,state,disabled"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "event_block";
      }
      program {
         signal: "elm,state,enabled"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "event_block";
      }
   }
}
ODD("elm/list/h_item_odd/default", "elm/list/h_item/default")
COMPRESS("elm/list/h_item_compress/default", "elm/list/h_item/default")
COMPRESS_ODD("elm/list/h_item_compress_odd/default", "elm/list/h_item/default")

#undef ODD
#undef COMPRESS
#undef COMPRESS_ODD
