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

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


#include "font.h"

#include "gui_button.h"
#include "gui_imagebox.h"
#include "gui_edit.h"
#include <ExtCtrls.hpp>


class Tide_msgbox_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 Tide_msgbox_Form(TComponent* Owner);

        //[2012.04.29.일][완료!!!]
        __fastcall ~Tide_msgbox_Form(void);

        //[서브클래싱]
        //{
            //[2012.05.20.일][완료!!!]
            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_button_Form    *_button_ok;
                Tgui_imagebox_Form  *_imagebox;

                //[2007.03.27.화][추가!!!]
                Tgui_button_Form    *_button_cancle;

                //[2009.04.20.월][추가!!!]
                //[한줄 현집기] 를 보여주는 경우에 사용된다.
                Tgui_edit_Form      *_edit_Edit;

            //}

            //[2007.03.27.화][추가!!!]
            //눌린 버튼을 알려준다.(눌린 경우는 true.)
            bool  _button_ok_down;
            bool  _button_cancle_down;
        //}

        //[EVENT FUNCTION]
        //{
            void __fastcall _EVENT_ButtonClick_Ok(void);

            //[2007.03.27.화][추가!!!]
            void __fastcall _EVENT_ButtonClick_Cancle(void);

            //[2009.04.20.월][완료!!!]
            void __fastcall _EVENT_KeyEnter_edit_Edit(void);

            //[2012.05.20.일][완료!!!]
            void __fastcall _EVENT_KeyDown_Esc_All(void);

        //}

        //[FUNCTION]
        //{

            //[2012.07.12.목][완료!!!]
            void __fastcall _FormCut(void);
            //{
                //[2012.0.]
                //왼쪽 아래 모서리 깍기는 15 정도가 가장 보기 좋다.
                #define  d_MsgBoxEdgeSize    15

            //}

            //[2012.07.12.목][완료!!!]
            void __fastcall _Border(void);

            void __fastcall _Draw(void);

            //[2018.02.21.수][완료!!!]
            void __fastcall _MsgBox(//표시할 아이콘 종류.
                                    int    pICONindex,
                                    //전달 글.
                                    char  *pMESSAGE);

            //[2018.02.21.수][완료!!!]
            void __fastcall _MsgBox2(//표시할 아이콘 종류.
                                     int    pIconIndex,
                                     //true 인 경우는 첫 행을 [굵은 글꼴] 로 표시한다.
                                     bool   p1stLineBold,
                                     //전달 글.
                                     char  *pMessage);

            //[2018.02.21.수][완료!!!]
            bool __fastcall _MsgBox_Ok_Cancle(//표시할 아이콘 종류.
                                              int    pICONindex,
                                              //전달 글.
                                              char  *pMESSAGE);

            //[2018.02.21.수][완료!!!]
            bool __fastcall _MsgBox_Edit(//표시할 아이콘 종류.
                                         int    pIconIndex,
                                         //전달 글.
                                         char  *pMessage);

            //[정의]
            //{
                //기본은 회사로고.
                #define  d_MSGBOX_default     0
                //!.
                #define  d_MSGBOX_info        1
                //?.
                #define  d_MSGBOX_question    2
                //X.
                #define  d_MSGBOX_error       3
            //}
        //}


};
//---------------------------------------------------------------------------
extern PACKAGE Tide_msgbox_Form *ide_msgbox_Form;
//---------------------------------------------------------------------------
#endif
