
#include "폼디자인\폼디자인.h"

#include "함수묶음.h"

#include "기계닉스\색상정의.h"

//[2022.05.17.화][추가]
#include "기계닉스\함수모음.h"


//[VAR]
//{
    struct ts_폼디자인  _폼디자인;

//}


void _폼디자인_위치얻기(struct ts_폼디자인  **r폼디자인)
{
  (*r폼디자인) = &_폼디자인;

}

void _폼디자인_생성(void)
{
  //[VAR]
  //{
      char   ide_실행경로[1024];

      char   가상기계실행경로[1024];

      char   경로이름확장자[1024];

      struct ts_전광판전구설정정보  전광판전구설정정보;

      int    l, r, t, b;
      int    보정_x, 보정_y;

      //[2020.09.27.일][추가]
      int    색상;

  //}

  //[전처리]
  //{
      _Ide_실행경로_(ide_실행경로);

      //[수정][2022.05.17.화]{-------------------------------------------------
      //[가상기계(GVMS)] 를 직접 실행하는 경우를 위하여 [설계묶음] 경로만을 기준으로 하는
      //<_Ide_설계묶음_경로이름확장자_()> 함수 대신에, [설계묶음] 경로와 [가상기계(GVMS)]
      //실행 경로를 둘다 만족시키는 <Ide_Gvms_실행경로()> 함수로 교체.
      Ide_Gvms_실행경로(가상기계실행경로);
      //}---------------------------------------------------------------------

      _GDotMatrix_전체_일시정지_(true, d_쓰기);

  //}

  //[위치 보정값 계산]
  //{
      //[!]{------------------------------------------
      //생성된 [그림부품] 들을 [화면:중앙] 에 분포시키기 위한것.
      //}---------------------------------------------

      l = 280;
      r = 719;
      t = 138;
      b = 448;

      보정_x = (l + r)/2 - _Sys_화면영역폭_()/2;
      보정_y = (t + b)/2 - _Sys_화면영역높이_()/2;

  //}

  //[!]{------------
  //폼디자인 구현 시작.
  //}---------------

  //[_폼디자인.기본_GForm]
  //{
      _GForm_생성_(_폼디자인.기본_GForm, NULL, _Gui_ID_생성(), 280 - 보정_x, 138 - 보정_y, 439, 310, false);
      _GForm_제목줄문자열_(_폼디자인.기본_GForm, "::: 폴더 구조 비교기 :::", d_쓰기);
      _GForm_유효_(_폼디자인.기본_GForm, true, d_쓰기);
      _GForm_보이기_(_폼디자인.기본_GForm, true, d_쓰기);
      _GForm_이벤트_Close_(_폼디자인.기본_GForm, true, d_쓰기);
      _GForm_이벤트_Resize_(_폼디자인.기본_GForm, true, d_쓰기);
      _GX_표시되는_이름설정_(_폼디자인.기본_GForm, "기본_GForm");

      //[<기본:GForm> 가장 앞으로]
      //{
          //[2021.01.01.금][추가]

          _GX_항상위로_(_폼디자인.기본_GForm, true);
          _GX_가장앞으로_(_폼디자인.기본_GForm);
          _GX_항상위로_(_폼디자인.기본_GForm, false);

      //}

  //}

  //[_폼디자인.기준경로_GLabel]
  //{
      _GLabel_생성_(_폼디자인.기준경로_GLabel, _폼디자인.기본_GForm, _Gui_ID_생성(), 4, 8, 60, 20, false);
      _GLabel_제목_(_폼디자인.기준경로_GLabel, "기준 경로", d_쓰기);
      _GLabel_유효_(_폼디자인.기준경로_GLabel, true, d_쓰기);
      _GLabel_보이기_(_폼디자인.기준경로_GLabel, true, d_쓰기);
      _GX_표시되는_이름설정_(_폼디자인.기준경로_GLabel, "기준경로_GLabel");

  //}

  //[_폼디자인.비교경로_GLabel]
  //{
      _GLabel_생성_(_폼디자인.비교경로_GLabel, _폼디자인.기본_GForm, _Gui_ID_생성(), 4, 37, 60, 20, false);
      _GLabel_제목_(_폼디자인.비교경로_GLabel, "비교 경로", d_쓰기);
      _GLabel_유효_(_폼디자인.비교경로_GLabel, true, d_쓰기);
      _GLabel_보이기_(_폼디자인.비교경로_GLabel, true, d_쓰기);
      _GX_표시되는_이름설정_(_폼디자인.비교경로_GLabel, "비교경로_GLabel");

  //}

  //[_폼디자인.기준경로_GBtn]
  //{
      _GButton_생성_(_폼디자인.기준경로_GBtn, _폼디자인.기본_GForm, _Gui_ID_생성(), 68, 4, 360, 25, false);
      _GButton_제목_(_폼디자인.기준경로_GBtn, "미지정", d_쓰기);
      _GButton_제목위치X_(_폼디자인.기준경로_GBtn, 162, d_쓰기);
      _GButton_풍선도움말_(_폼디자인.기준경로_GBtn, true, d_쓰기);
      _GButton_풍선도움말문자열_(_폼디자인.기준경로_GBtn, "미지정", d_쓰기);
      _GButton_유효_(_폼디자인.기준경로_GBtn, true, d_쓰기);
      _GButton_보이기_(_폼디자인.기준경로_GBtn, true, d_쓰기);
      _GButton_이벤트_MClick_(_폼디자인.기준경로_GBtn, true, d_쓰기);
      _GX_표시되는_이름설정_(_폼디자인.기준경로_GBtn, "기준경로_GBtn");

  //}

  //[_폼디자인.비교경로_GBtn]
  //{
      _GButton_생성_(_폼디자인.비교경로_GBtn, _폼디자인.기본_GForm, _Gui_ID_생성(), 68, 32, 360, 25, false);
      _GButton_제목_(_폼디자인.비교경로_GBtn, "미지정", d_쓰기);
      _GButton_제목위치X_(_폼디자인.비교경로_GBtn, 162, d_쓰기);
      _GButton_풍선도움말_(_폼디자인.비교경로_GBtn, true, d_쓰기);
      _GButton_풍선도움말문자열_(_폼디자인.비교경로_GBtn, "미지정", d_쓰기);
      _GButton_유효_(_폼디자인.비교경로_GBtn, true, d_쓰기);
      _GButton_보이기_(_폼디자인.비교경로_GBtn, true, d_쓰기);
      _GButton_이벤트_MClick_(_폼디자인.비교경로_GBtn, true, d_쓰기);
      _GX_표시되는_이름설정_(_폼디자인.비교경로_GBtn, "비교경로_GBtn");

  //}

  //[_폼디자인.추출경로_GLabel]
  //{
      _GLabel_생성_(_폼디자인.추출경로_GLabel, _폼디자인.기본_GForm, _Gui_ID_생성(), 4, 64, 60, 20, false);
      _GLabel_제목_(_폼디자인.추출경로_GLabel, "추출 경로", d_쓰기);
      _GLabel_유효_(_폼디자인.추출경로_GLabel, true, d_쓰기);
      _GLabel_보이기_(_폼디자인.추출경로_GLabel, true, d_쓰기);
      _GX_표시되는_이름설정_(_폼디자인.추출경로_GLabel, "추출경로_GLabel");

  //}

  //[_폼디자인.추출경로_GBtn]
  //{
      _GButton_생성_(_폼디자인.추출경로_GBtn, _폼디자인.기본_GForm, _Gui_ID_생성(), 68, 60, 360, 25, false);
      _GButton_제목_(_폼디자인.추출경로_GBtn, "미지정", d_쓰기);
      _GButton_제목위치X_(_폼디자인.추출경로_GBtn, 162, d_쓰기);
      _GButton_풍선도움말_(_폼디자인.추출경로_GBtn, true, d_쓰기);
      _GButton_풍선도움말문자열_(_폼디자인.추출경로_GBtn, "미지정", d_쓰기);
      _GButton_유효_(_폼디자인.추출경로_GBtn, true, d_쓰기);
      _GButton_보이기_(_폼디자인.추출경로_GBtn, true, d_쓰기);
      _GButton_이벤트_MClick_(_폼디자인.추출경로_GBtn, true, d_쓰기);
      _GX_표시되는_이름설정_(_폼디자인.추출경로_GBtn, "추출경로_GBtn");

  //}

  //[_폼디자인.검사_GBtn]
  //{
      _GButton_생성_(_폼디자인.검사_GBtn, _폼디자인.기본_GForm, _Gui_ID_생성(), 4, 92, 207, 25, false);
      _GButton_제목_(_폼디자인.검사_GBtn, "검사", d_쓰기);
      _GButton_제목위치X_(_폼디자인.검사_GBtn, 91, d_쓰기);
      _GButton_유효_(_폼디자인.검사_GBtn, true, d_쓰기);
      _GButton_보이기_(_폼디자인.검사_GBtn, true, d_쓰기);
      _GButton_이벤트_MClick_(_폼디자인.검사_GBtn, true, d_쓰기);
      _GX_표시되는_이름설정_(_폼디자인.검사_GBtn, "검사_GBtn");

  //}

  //[_폼디자인.추출_GBtn]
  //{
      _GButton_생성_(_폼디자인.추출_GBtn, _폼디자인.기본_GForm, _Gui_ID_생성(), 220, 92, 208, 25, false);
      _GButton_제목_(_폼디자인.추출_GBtn, "추출", d_쓰기);
      _GButton_제목위치X_(_폼디자인.추출_GBtn, 92, d_쓰기);
      _GButton_유효_(_폼디자인.추출_GBtn, true, d_쓰기);
      _GButton_보이기_(_폼디자인.추출_GBtn, true, d_쓰기);
      _GButton_이벤트_MClick_(_폼디자인.추출_GBtn, true, d_쓰기);
      _GX_표시되는_이름설정_(_폼디자인.추출_GBtn, "추출_GBtn");

  //}

  //[_폼디자인.출력_GPrintBox]
  //{
      _GPrintBox_생성_(_폼디자인.출력_GPrintBox, _폼디자인.기본_GForm, _Gui_ID_생성(), 4, 123, 423, 160, false);
      _GPrintBox_유효_(_폼디자인.출력_GPrintBox, true, d_쓰기);
      _GPrintBox_보이기_(_폼디자인.출력_GPrintBox, true, d_쓰기);

      //[2020.09.27.일][추가]{------------------------------------------------
      색상 = _GColor_밝기_(clBlack, 66);
      _GPrintBox_배경색_(_폼디자인.출력_GPrintBox, 색상, d_쓰기);
      _GPrintBox_수직줄이동자배경색_(_폼디자인.출력_GPrintBox, clWhite, d_쓰기);
      _GPrintBox_수평줄이동자배경색_(_폼디자인.출력_GPrintBox, clWhite, d_쓰기);
      _GPrintBox_모서리배경색_(_폼디자인.출력_GPrintBox, clWhite, d_쓰기);
      _GPrintBox_출력형식_(_폼디자인.출력_GPrintBox, clRed, d_일반문자, clWhite);
      //}--------------------------------------------------------------------

      _GX_표시되는_이름설정_(_폼디자인.출력_GPrintBox, "출력_GPrintBox");

  //}

  //[_폼디자인.진행_GProgress]
  //{
      //[2020.09.27.일][추가]{--------------------------------------------------
      //[폼디자이너] 단계에서 추가하지 않은 것으로 직접 추가.
      //<_폼디자인.기준경로_GBtn> 와 같은 [크기/위치] 를 가지나 [배타적보이기] 속성을 갖는다.
      //그러므로, 처음에는 보이지 않고 시작.
      //}----------------------------------------------------------------------

      _GProgress_생성_(_폼디자인.진행_GProgress, _폼디자인.기본_GForm, _Gui_ID_생성(), 68, 4, 360, 25, false);
      _GProgress_테두리간격_(_폼디자인.진행_GProgress, 3, d_쓰기);

      //[2022.05.22.일][추가]{------------------------------------------
      _GProgress_진행막대색_(_폼디자인.진행_GProgress, 0x000000e0, d_쓰기);
      _GProgress_진행막대테두리색_(_폼디자인.진행_GProgress, clBlack, d_쓰기);
      //}--------------------------------------------------------------

      _GProgress_유효_(_폼디자인.진행_GProgress, true, d_쓰기);
      _GProgress_보이기_(_폼디자인.진행_GProgress, false, d_쓰기);
      _GX_표시되는_이름설정_(_폼디자인.진행_GProgress, "진행_GProgress");

  //}

  //[후처리]
  //{
      _GDotMatrix_전체_일시정지_(false, d_쓰기);

  //}

}

void _폼디자인_소멸(void)
{
  //[2020.09.27.일][추가]{-----------------
  _GProgress_삭제_(_폼디자인.진행_GProgress);
  //}-------------------------------------

  _GPrintBox_삭제_(_폼디자인.출력_GPrintBox);
  _GButton_삭제_(_폼디자인.추출_GBtn);
  _GButton_삭제_(_폼디자인.검사_GBtn);
  _GButton_삭제_(_폼디자인.추출경로_GBtn);
  _GLabel_삭제_(_폼디자인.추출경로_GLabel);
  _GButton_삭제_(_폼디자인.비교경로_GBtn);
  _GButton_삭제_(_폼디자인.기준경로_GBtn);
  _GLabel_삭제_(_폼디자인.비교경로_GLabel);
  _GLabel_삭제_(_폼디자인.기준경로_GLabel);
  _GForm_삭제_(_폼디자인.기본_GForm);

}

void _폼디자인_모달_초기화(void)
{
  _폼디자인.기본_GForm_모달 = _GForm_유효_(_폼디자인.기본_GForm, NULL, d_읽기);

}

void _폼디자인_모달_구현(bool  p모달유무)
{
  if(p모달유무 == false)
  {
    _폼디자인.기본_GForm_모달 = _GForm_유효_(_폼디자인.기본_GForm, NULL, d_읽기);
    _GForm_유효_(_폼디자인.기본_GForm, false, d_쓰기);

  }
  else
  {
    _GForm_유효_(_폼디자인.기본_GForm, _폼디자인.기본_GForm_모달 && true, d_쓰기);

  }

}

void _폼디자인_이벤트(struct t_Gui_알림문64  *p알림문64)
{
  if     ((p알림문64->식별자 == _Gui_ID_읽기(_폼디자인.기본_GForm)) && (p알림문64->알림문 == d_GuiMsg_Close))
  {
    _폼디자인_기본_GForm_이벤트_Close(p알림문64);

  }
  else if((p알림문64->식별자 == _Gui_ID_읽기(_폼디자인.기본_GForm)) && (p알림문64->알림문 == d_GuiMsg_Resize))
  {
    _폼디자인_기본_GForm_이벤트_Resize(p알림문64);

  }
  else if((p알림문64->식별자 == _Gui_ID_읽기(_폼디자인.기준경로_GBtn)) && (p알림문64->알림문 == d_GuiMsg_MClick))
  {
    _폼디자인_기준경로_GBtn_이벤트_MClick(p알림문64);

  }
  else if((p알림문64->식별자 == _Gui_ID_읽기(_폼디자인.비교경로_GBtn)) && (p알림문64->알림문 == d_GuiMsg_MClick))
  {
    _폼디자인_비교경로_GBtn_이벤트_MClick(p알림문64);

  }
  else if((p알림문64->식별자 == _Gui_ID_읽기(_폼디자인.추출경로_GBtn)) && (p알림문64->알림문 == d_GuiMsg_MClick))
  {
    _폼디자인_추출경로_GBtn_이벤트_MClick(p알림문64);

  }
  else if((p알림문64->식별자 == _Gui_ID_읽기(_폼디자인.검사_GBtn)) && (p알림문64->알림문 == d_GuiMsg_MClick))
  {
    _폼디자인_검사_GBtn_이벤트_MClick(p알림문64);

  }
  else if((p알림문64->식별자 == _Gui_ID_읽기(_폼디자인.추출_GBtn)) && (p알림문64->알림문 == d_GuiMsg_MClick))
  {
    _폼디자인_추출_GBtn_이벤트_MClick(p알림문64);

  }

}

