/* vim: set sw=3 ts=3 sts=3 expandtab: */
group {
   name: "ecdb/erase_page";
   min: 640 170;

   script {
      public message(Msg_Type:type, id, ...) {
         if ((type == MSG_INT_SET) && (id == 0)) {
            new percent[10], sectors[100];
            snprintf(percent, 10, "%d%%", getarg(2));
            set_text(PART:"progress_percent", percent);
            snprintf(sectors, 100, "%d/%d", getarg(3), getarg(4));
            set_text(PART:"progress_text", sectors);
         }
      }
   }

   parts {
      part {
         name: "bg";
         type: RECT;

         description {
            state: "default" 0.0;
            color: 0 0 0 0;
            align: 0.5 0.5;

            rel1 {
               relative: 0.0 0.0;
               offset: 0 0;
            }

            rel2 {
               relative: 1.0 1.0;
               offset: -1 -1;
            }
         }

         description {
            state: "before_show" 0.0;
            color: 0 0 0 0;
            align: 0.0 0.0;

            rel1 {
               relative: 0.0 0.0;
               offset: -33 0;
            }

            rel2 {
               relative: 0.0 0.0;
               offset: -1 0;
            }
         }

         description {
            state: "hide" 0.0;
            color: 0 0 0 0;
            align: 1.0 1.0;

            rel1 {
               relative: 1.0 1.0;
               offset: -1 -1;
            }

            rel2 {
               relative: 1.0 1.0;
               offset: 33 33;
            }
         }
      }

      part {
         name: "ecdb/erase/return";
         type: SWALLOW;
         repeat_events: 1;
         scale: 1;

         description {
            state: "default" 0.0;
            min: 100 26;
            max: 150 26;
            align: 1.0 0.0;

            rel1 {
               to: "bg";
               relative: 0.0 0.0;
               offset: 0 5;
            }

            rel2 {
               to: "bg";
               relative: 1.0 1.0;
               offset: -5 -1;
            }
         }
      }

      part {
         name: "ecdb/erase/begin";
         type: SWALLOW;
         repeat_events: 1;
         scale: 1;

         description {
            state: "default" 0.0;
            min: 100 26;
            max: 150 26;
            align: 1.0 0.0;

            rel1 {
               to_y: "ecdb/erase/return";
               to_x: "bg";
               relative: 0.0 1.0;
               offset: 0 5;
            }

            rel2 {
               to_y: "ecdb/erase/return";
               to_x: "bg";
               relative: 1.0 1.0;
               offset: -5 -1;
            }
         }
      }

      part {
         name: "ecdb/erase/speed";
         type: SWALLOW;
         repeat_events: 1;
         scale: 1;

         description {
            state: "default" 0.0;
            min: 100 26;
            max: 150 26;
            align: 1.0 0.0;

            rel1 {
               to_x: "bg";
               to_y: "ecdb/erase/begin";
               relative: 0.0 1.0;
               offset: 0 5;
            }

            rel2 {
               to_x: "bg";
               to_y: "ecdb/erase/begin";
               relative: 1.0 1.0;
               offset: -5 -1;
            }
         }
      }

      part {
         name: "ecdb/erase/drive";
         type: SWALLOW;
         repeat_events: 1;
         scale: 1;

         description {
            state: "default" 0.0;
            min: 100 26;
            max: 150 26;
            align: 1.0 0.0;

            rel1 {
               to_x: "bg";
               to_y: "ecdb/erase/speed";
               relative: 0.0 1.0;
               offset: 0 5;
            }

            rel2 {
               to_x: "bg";
               to_y: "ecdb/erase/speed";
               relative: 1.0 1.0;
               offset: -5 -1;
            }
         }
      }

      part {
         name: "progress_outline";
         type: IMAGE;
         mouse_events: 0;
         scale: 1;

         description {
            state: "default" 0.0;

            rel1 {
               to: "bg";
               relative: 0.0 0.0;
               offset: 10 5;
            }

            rel2 {
               to: "bg";
               to_x: "ecdb/erase/speed";
               relative: 0.0 1.0;
               offset: -5 -10;
            }

            image {
               normal: "frame_outline.png";
               border: 9 9 9 9;
            }
         }
      }

      part {
         name: "progress_text";
         type: TEXT;
         effect: SOFT_SHADOW;
         scale: 1;

         description {
            state: "default" 0.0;
            fixed: 1 1;
            color: 200 200 200 255;
            color3: 20 20 20 255;

            rel1 {
               to: "progress_outline";
               relative: 0.0 0.7;
               offset: 5 5;
            }

            rel2 {
               to: "progress_outline";
               relative: 1.0 1.0;
               offset: -6 -6;
            }

            text {
               text: "Begin Erase";
               font: "ecdb/default";
               min: 1 1;
               size: 24;
               align: 0.5 0.5;
            }
         }

         description {
            state: "fade" 0.0;
            inherit: "default" 0.0;
            color: 255 255 255 0;
         }
      }

      part {
         name: "progress_percent";
         type: TEXT;
         effect: SOFT_SHADOW;
         scale: 1;

         description {
            state: "default" 0.0;
            fixed: 1 1;
            color: 200 200 200 255;
            color3: 20 20 20 255;

            rel1 {
               to: "progress_outline";
               relative: 0.0 0.0;
               offset: 5 5;
            }

            rel2 {
               to: "progress_outline";
               relative: 1.0 0.7;
               offset: -6 -6;
            }

            text {
               text: "0%";
               font: "ecdb/default";
               min: 1 1;
               size: 72;
               align: 0.5 0.5;
            }
         }
      }

      part {
         name: "disabled_hack";
         type: RECT;
         mouse_events: 1;

         description {
            state: "default" 0.0;
            visible: 0;

            rel1 {
               to_x: "bg";
               to_y: "ecdb/erase/return";
               relative: 0.0 0.0;
               offset: 0 0;
            }

            rel2 {
               to: "bg";
               relative: 1.0 1.0;
               offset: -1 -1;
            }
         }

         description {
            state: "visible" 0.0;
            inherit: "default" 0.0;
            color: 255 255 255 0;
            visible: 1;
         }
      }
   }

   programs {
      program {
         name: "emit_clicked_return";
         signal: "mouse,clicked,1";
         action: SIGNAL_EMIT "ecdb,clicked" "ecdb/erase/return";
         source: "ecdb/erase/return";
      }

      program {
         name: "emit_clicked_begin";
         signal: "mouse,clicked,1";
         action: SIGNAL_EMIT "ecdb,clicked" "ecdb/erase/begin";
         source: "ecdb/erase/begin";
      }

      program {
         name: "erase_page,visible1";
         signal: "ecdb,erase_page,visible";
         source: "ecdb";
         action: STATE_SET "before_show" 0.0;
         target: "bg";
         after: "erase_page,visible2";
      }

      program {
         name: "erase_page,visible2";
         action: STATE_SET "default" 0.0;
         target: "bg";
         transition: DECELERATE 0.5;
      }

      program {
         name: "erase_page,hide";
         signal: "ecdb,erase_page,hide";
         source: "ecdb";
         action: STATE_SET "hide" 0.0;
         target: "bg";
         transition: DECELERATE 0.5;
         after: "hide,finished";
      }

      program {
         name: "erase_page,controls_disable";
         signal: "ecdb,erase,start";
         source: "ecdb";
         action: STATE_SET "visible" 0.0;
         target: "disabled_hack";
      }

      program {
         name: "erase_page,controls_enable";
         signal: "ecdb,erase,done";
         source: "ecdb";
         action: STATE_SET "default" 0.0;
         target: "disabled_hack";
      }

      program {
         name: "hide,finished";
         action: SIGNAL_EMIT "hide,finished" "erase_page";
      }
   }
}