/*
 * Xailer source code:
 *
 * FormatDriveDlg.prg
 * Dialogo para formateo de discos
 *
 * Copyright 2003, 2007 Jose Lalin
 * Copyright 2003, 2007 Xailer.com
 * All rights reserved
 *
 */

#include "Xailer.ch"
#include "ShlObj.api"


//--------------------------------------------------------------------------

CLASS XFormatDriveDlg FROM TComponent

PUBLISHED:
   PROPERTY cDrive         INIT "A:\"
   PROPERTY cLabel         INIT ""

   PROPERTY nType          INIT shfQUICK VALUES shfQUICK, shfFULL, shfSYSONLY ;
                           WRITE METHOD SetType

   EVENT OnShow( oSender ) // --> Nil
   EVENT OnClose( oSender ) // --> Nil

PROTECTED:
   DATA nFlags             INIT IIf( XA_IsWin9X(), SHFMT_OPT_QUICK_9X, SHFMT_OPT_QUICK_NT )

   METHOD SetType( Value )

PUBLIC:
   DATA nLastError         INIT 0 READONLY

   METHOD Run() // --> lSuccess
   METHOD Execute()        EXTERN XFormatDriveDlg_Run() // --> lSuccess

ENDCLASS

//--------------------------------------------------------------------------

METHOD SetType( Value ) CLASS XFormatDriveDlg

   UPDATE ::FnType TO Value

   DO CASE
      CASE Value == shfQUICK
         ::nFlags := IIf( XA_IsWin9x(), SHFMT_OPT_QUICK_9X, SHFMT_OPT_QUICK_NT )
      CASE Value == shfFULL
         ::nFlags := IIf( XA_IsWin9X(), SHFMT_OPT_FULL_9X, SHFMT_OPT_FULL_NT )
      CASE Value == shfSYSONLY
         ::nFlags := IIf( XA_IsWin9X(), SHFMT_OPT_SYSONLY_9X, SHFMT_OPT_SYSONLY_NT )
   ENDCASE

RETURN Nil

//--------------------------------------------------------------------------
