
//[2012.02.26.일][생성!!!]

#ifndef bookMark_DialogBox_h
#define bookMark_DialogBox_h


#include  "GForm.h"
#include  "GList.h"


class BookMark_DialogBox
{
  //[2012.02.26.일][생성!!!]{------------------------------
  //[찾기목록(책갈피)] 기능을 구현하기 위하여 사용한다.
  //맷돌C 용으로 만든 <Gxxx> 계열 [그림부품] 을 사용하므로
  //별도의 <class> 로 만든다.
  //단지, 기존과 다른 방법으로 구현해 보는것.
  //}------------------------------------------------------


  private:
  public:


  //[생성자/소멸자]
  //{
      //[2012.03.01.목][완료!!!]
      __fastcall BookMark_DialogBox(void);

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

  //}

  //[환경변수]
  //{
      //[2018.03.05.월][추가!!!]
      struct  IDE_OPTION   *_ide_option;

  //}


  //[내부 부품]
  //{
      //이 [대화상자] 의 기본바탕을 제공.
      TGForm_Form  *_base;

      //실제 [찾기목록(책갈피)] 를 관리.
      TGList_Form  *_list;

      //[빠른항목]
      //{
          TGList_Form  *_popupMenu;

      //}

  //}

  //[속성]
  //{
      //[2012.03.03.토][중요추가!!!]{-----------------------------------------------
      //<~BookMark_DialogBox()> 가 호출되어 내부 [그림부품] 이 삭제되는 경우는
      //[책갈피 대화상자] 는 더이상 제기능을 하지 못하므로 <false> 로 설정.
      //이는 [개발환경 종료] 시에 [책갈피 대홧상자] 를 사용하는 [편집기] 보다
      //[책갈피 대화상자] 의 <~BookMark_DialogBox()> 가 먼저 호출되므로
      //[편집기] 의 종료시 처리에 [책갈피 대화상자] 의 <GList>에 접근할수 없게 되어
      //[포인터 오류] 가 발생하는 것을 막기 위한 것.
      //}---------------------------------------------------------------------------

      //내부 [그림부품] 이 모두 삭제되어 더이상 동작 불가인 경우 <false> 로 설정.
      bool  _enable; //(기본:true).

  //}

  //[함수]
  //{
      //[2012.03.18.일][완료!!!]
      void __fastcall _Create(void);

  //}

  //[동작함수]
  //{
      //[2012.02.27.월][완료!!!]
      void __fastcall _EVENT_ReSize_base(void);

      //[2018.07.09.월][완료!!!]
      void __fastcall _EVENT_ItemSelect_list(void);

      //[2018.07.09.월][완료!!!]
      void __fastcall _EVENT_ItemReSelect_list(void);

      //[2012.02.28.화][완료!!!]
      void __fastcall _EVENT_MouseUp_R_list(void);

      //[2012.02.28.화][완료!!!]
      void __fastcall _EVENT_ItemMouseSelect_list(void);

      //[2012.02.27.월][완료!!!]
      void __fastcall _EVENT_ItemSelect_popupMenu(void);

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


  //}

  //[제어함수]
  //{
      //[2018.03.05.월][완료!!!]
      bool __fastcall _Find(//찾을 문자열.
                            char  *pFindStr,
                            //선택 된것 항상 보이기.
                            bool   pSelectView,
                            //다시 그릴 것인가.
                            bool   pReDraw,
                            //찾을수 없는 경우 대화상자 보여주려면 <true>.
                            bool   pMsgView,
                            //[입력지정자] 위쪽 보기 설정.
                            bool   pAlwaysTopMiddle,
                            //[입력지정자] 아래쪽 보기 설정.
                            bool   pAlwaysBottomMiddle);

      //[2021.06.16.수][완료]
      void __fastcall _BookMark(void);

  //}

  //[문서관련함수]
  //{
      //[2012.03.27.화][완료!!!]
      void __fastcall _FileSave(//[책갈피] 대상 원본 문서 이름.
                                char  *pFilePathNameExt);

      //[2012.04.27.금][완료!!!]
      void __fastcall _FileOpen(//[책갈피] 대상 원본 문서 이름.
                                char  *pFilePathNameExt);

  //}

};

//[2012.03.03.토][완료!!!]
void __fastcall BookMark_DialogBox_GetPtr(class BookMark_DialogBox  **rBookMark_DialogBox);


#endif
