//---------------------------------------------------------------------------

#ifndef buildStatusH
#define buildStatusH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------


#include "font.h"

#include "gui_bmpbutton.h"
#include "gui_button.h"
#include "gui_radio_button.h"
#include "gui_scroll_v.h"
#include "gui_check_button.h"
#include "gui_Label.h"
#include "gui_edit.h"

//[2011.04.28.목][추가!!!]
#include "gui_Progress.h"
#include <ExtCtrls.hpp>


class TbuildStatus_Form : public TForm
{
__published:	// IDE-managed Components
    TTimer *captionMoveTimer;
        void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
        void __fastcall FormMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y);
        void __fastcall FormMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
    void __fastcall captionMoveTimerTimer(TObject *Sender);
private:	// User declarations
public:		// User declarations

        __fastcall TbuildStatus_Form(TComponent* Owner);

        //[2012.04.30.월][완료!!!]
        __fastcall ~TbuildStatus_Form(void);

        //[서브클래싱]
        //{
            void __fastcall WndProc(Messages::TMessage &Message);

        //}

        //[VAR]
        //{
            //[환경변수]
            //{
                //[2007.10.02.화][추가!!!]
                struct  IDE_OPTION   *_ide_option;

            //}

            //[실제 그리는 영역]
            //{
                Graphics::TBitmap  *_bmp_;

            //}

            //[사용글꼴]
            //{
                struct FONTPACK     _font;

            //}

            //caption 에 표시할 문자열을 기록한다.
            char               _caption[100];

            int                _caption_height;
            int                _caption_width;

            //caption 을 마우스로 끄는 경우 true.
            bool               _caption_selected;

            //[제목줄 이동 관련]
            //{
                //[2018.03.17.토][추가!!!]
                int  deltaLeft;
                int  deltaTop;

            //}

            //[내부 컨트롤]
            //{
                //닫기 버튼.
                Tgui_bmpbutton_Form  *_close_bmpbtns;

            //}

            //[설정 컨트롤]
            //{
                //각 배경색은 희미하게 설정한다.
                int  _colorBack;

                //[문서전체이름]
                //{
                    //[2011.04.27.수][추가!!!]
                    Tgui_Label_Form  *_fileNameTitle_Label,
                                     *_fileName_Label;

                //}

                //[문서이름]
                //{
                    //[2011.04.28.목][추가!!!]
                    Tgui_Label_Form  *_fileNameOnlyTitle_Label,
                                     *_fileNameOnly_Label;

                //}

                //[현재 처리 행번호]
                //{
                    //[2011.04.28.목][추가!!!]
                    Tgui_Label_Form  *_lineNumTitle_Label,
                                     *_lineNum_Label;

                //}

                //[총 처리 행수(Parser 단계만?)]
                //{
                    //[2011.04.28.목][추가!!!]
                    Tgui_Label_Form  *_totalLineNumTitle_Label,
                                     *_totalLineNum_Label;

                //}

                //[진행막대]
                //{
                    //[2011.04.28.목][추가!!!]
                    Tgui_Progress_Form  *_build_Progress;

                //}

                //[중지]
                //{
                    //[2011.04.28.목][추가!!!]
                    Tgui_button_Form  *_stop_Btn;

                //}

            //}

            //[환경변수]
            //{
                //[2011.04.28.목][추가!!!]{------------------------------------------
                //내부적으로 관리되는 중요 변수.
                //이 변수들은 새로운 문서가 처리될때마다 자동으로 <_FileName()> 에서
                //초기화 된다.
                //}------------------------------------------------------------------

                //총처리행수.
                //<IDE_Build()> 가 실핼될때 처음 한번만 초기화 되어야 한다.
                int  _totalLineNum; //(기본값 : 0))

                //[2011.04.29.금][추가!!!]
                //처리 대상 문서의 총수로 여기서 관리하는 것이 효과적이다.
                //해당 사용부에서 처리하므로 초기화 할 필요는 없다.
                int  _fileLineCount;

                //[2011.04.30.토][추가!!!]
                //문서중에는 [행] 정보가 없는 것도 있으므로 여기서 관리한다.
                //해당 사용부에서 초기화 하므로 여기서는 초기화 할 필요가 없다.
                int  _line;


                //[함수]
                //{
                    //[2011.04.28.목][완료!!!]
                    void __fastcall _Init(void);

                    //[2012.05.05.토][완료!!!]
                    void __fastcall _On(void);

                    //[2011.04.29.금][완료!!!]
                    void __fastcall _Off(void);


                    //[2011.04.30.토][완료!!!]
                    void __fastcall _FileInfo(char *pFileName,
                                              //문서 총 행수(진행막대 설정에 필요).
                                              int   pFileLineCount);

                    //[2011.04.29.금][완료!!!]
                    void __fastcall _LineNum(int  pLineNum);

                    //[2011.04.29.금][완료!!!]
                    void __fastcall _TotalLineNum(void);

                //}

            //}

        //}

        //[FUNCTION]
        //{
            void __fastcall _FormCut(void);
            void __fastcall _Draw(void);
            void __fastcall _Border(void);
            void __fastcall _Shape(void);


            //[2007.12.14.금][완료!!!]
            void __fastcall _Caption(char  *pCaption);

            //[2007.12.14.금][완료!!!]
            void __fastcall _Width(int  pWidth);

            //[2007.12.14.금][완료!!!]
            void __fastcall _Height(int  pHeight);

        //}

        //[동작홤수들]
        //{
            //[2007.10.02.화][완료!!!]
            void __fastcall _EVENT_CloseButton_Click(void);

            //[2011.04.28.목][처리중!!!]
            void __fastcall _EVENT_Click_stop_Btn(void);

        //}

        


};
//---------------------------------------------------------------------------
extern PACKAGE TbuildStatus_Form *buildStatus_Form;
//---------------------------------------------------------------------------
#endif
