

#include "함수묶음.h"

#include "GUI_EEprom문서.h"

#include "main.h"
#include "GUI.h"
#include "일반함수.h"

//[2011.11.03.목][추가!!!]
#include "GUI_보기창.h"


void Ide_모양만들기_EEprom문서(void)
{
  //[2011.09.24.토][생성!!!]{--------
  //[EEprom 문서] 관련 처리부를 구현한다.
  //}-------------------------------

  //[GUI]{----------
  struct GUI  *gui;
  GUI_위치얻기(&gui);
  //}---------------

  //[Lb_EEprom문서]
  //{
      _GLabel_생성_(gui->Lb_EEprom문서, gui->GVmos, GID_Lb_EEprom문서,
                   3, _GLabel_Y_(gui->Lb_Flash문서, 0, d_읽기) + _GLabel_높이_(gui->Lb_Flash문서, 0, d_읽기) + 2,
                   60, 18,
                   true);
      _GLabel_제목_(gui->Lb_EEprom문서, "EEprom", d_쓰기);

      _GLabel_테두리_(gui->Lb_EEprom문서, true, d_쓰기);
      _GLabel_제목위치X_(gui->Lb_EEprom문서, 4, d_쓰기);

      _GLabel_배경색_(gui->Lb_EEprom문서, _GColor_밝기_(clGray, 100), d_쓰기);
      _GLabel_문자색_(gui->Lb_EEprom문서, clWhite, d_쓰기);

  //}

  //[Lb_EEprom문서_경로]
  //{
      _GLabel_생성_(gui->Lb_EEprom문서_경로, gui->GVmos, GID_Lb_EEprom문서_경로,
                   _GLabel_X_(gui->Lb_EEprom문서, 0, d_읽기) + _GLabel_폭_(gui->Lb_EEprom문서, 0, d_읽기) + 2 - 3,
                   _GLabel_Y_(gui->Lb_EEprom문서, 0, d_읽기),
                   500 + 3 - 32, 18,
                   true);
      _GLabel_제목_(gui->Lb_EEprom문서_경로, "http://www.gigyenics.co.kr", d_쓰기);

      _GLabel_테두리_(gui->Lb_EEprom문서_경로, true, d_쓰기);
      _GLabel_제목위치X_(gui->Lb_EEprom문서_경로, 4, d_쓰기);

      _GLabel_배경색_(gui->Lb_EEprom문서_경로, _GColor_밝기_(clGray, 200), d_쓰기);

      //[퐁선도움말]
      //{
          //[2011.10.24.월][추가!!!]{-------------------------------------------
          //[경로이름확장자] 가 너무 긴 경우 전부 보이지 않으므로 [풍선도움말] 로 보이게 한다.
          //[풍선도움말 보이기] 설정과 무관하며 항상 보여진다.
          //}------------------------------------------------------------------

          _GLabel_풍선도움말문자열_
          (gui->Lb_EEprom문서_경로,
           "http://www.gigyenics.co.kr",
           d_쓰기);

          //[경로이름확장자] 전부를 보여주어야 하므로 항상 보이게 만든다.
          _GLabel_풍선도움말_(gui->Lb_EEprom문서_경로, true, d_쓰기);

      //}

  //}

  //[Prog_EEprom문서_진행]
  //{
      //[2011.10.22.토][완료!!!]{------------------------
      //[진행막대] 는 <Lb_EEprom문서_경로> 와 겹치도록 배치한다.
      //단, 필요한 경우만 보이게 된다.
      //}-----------------------------------------------

      _GProgress_생성_(gui->Prog_EEprom문서_진행, gui->GVmos, GID_Prog_EEprom문서_진행,
                      _GLabel_X_(gui->Lb_EEprom문서_경로, 0, d_읽기),
                      _GLabel_Y_(gui->Lb_EEprom문서_경로, 0, d_읽기),
                      _GLabel_폭_(gui->Lb_EEprom문서_경로, 0, d_읽기),
                      _GLabel_높이_(gui->Lb_EEprom문서_경로, 0, d_읽기),
                      //처음에는 보이지 않는다.
                      false);

      _GProgress_테두리간격_(gui->Prog_EEprom문서_진행, 3, d_쓰기);

  //}

  //[Btn_EEprom문서_열기]
  //{
      _GButton_생성_(gui->Btn_EEprom문서_열기, gui->GVmos, GID_Btn_EEprom문서_열기,
                    _GLabel_X_(gui->Lb_EEprom문서_경로, 0, d_읽기) + _GLabel_폭_(gui->Lb_EEprom문서_경로, 0, d_읽기) + 2,
                    _GLabel_Y_(gui->Lb_EEprom문서_경로, 0, d_읽기),
                    30, 18,
                    true);
      _GButton_제목_(gui->Btn_EEprom문서_열기, "열기", d_쓰기);

      //[이벤트]
      //{
          _GButton_이벤트_MClick_(gui->Btn_EEprom문서_열기, true, d_쓰기);

      //}

      //[퐁선도움말]
      //{
          _GButton_풍선도움말문자열_
          (gui->Btn_EEprom문서_열기,
           "EEprom 에 기록할 문서를 열어줍니다.",
           d_쓰기);

          _GButton_풍선도움말_(gui->Btn_EEprom문서_열기, false, d_쓰기);

      //}

  //}

  //[Btn_EEprom문서_닫기]
  //{
      _GButton_생성_(gui->Btn_EEprom문서_닫기, gui->GVmos, GID_Btn_EEprom문서_닫기,
                    _GButton_X_(gui->Btn_EEprom문서_열기, 0, d_읽기) + _GButton_폭_(gui->Btn_EEprom문서_열기, 0, d_읽기) + 2,
                    _GButton_Y_(gui->Btn_EEprom문서_열기, 0, d_읽기),
                    30, 18,
                    true);
      _GButton_제목_(gui->Btn_EEprom문서_닫기, "닫기", d_쓰기);

      //[이벤트]
      //{
          _GButton_이벤트_MClick_(gui->Btn_EEprom문서_닫기, true, d_쓰기);

      //}

      //[퐁선도움말]
      //{
          _GButton_풍선도움말문자열_
          (gui->Btn_EEprom문서_닫기,
           "EEprom 에 기록할 문서를 닫아줍니다.",
           d_쓰기);

          _GButton_풍선도움말_(gui->Btn_EEprom문서_닫기, false, d_쓰기);

      //}

  //}

  //[Btn_EEprom문서_보기]
  //{
      _GButton_생성_(gui->Btn_EEprom문서_보기, gui->GVmos, GID_Btn_EEprom문서_보기,
                    _GButton_X_(gui->Btn_EEprom문서_닫기, 0, d_읽기) + _GButton_폭_(gui->Btn_EEprom문서_닫기, 0, d_읽기) + 2,
                    _GButton_Y_(gui->Btn_EEprom문서_닫기, 0, d_읽기),
                    30, 18,
                    true);
      _GButton_제목_(gui->Btn_EEprom문서_보기, "보기", d_쓰기);

      //[이벤트]
      //{
          _GButton_이벤트_MClick_(gui->Btn_EEprom문서_보기, true, d_쓰기);

      //}

      //[퐁선도움말]
      //{
          _GButton_풍선도움말문자열_
          (gui->Btn_EEprom문서_보기,
           "EEprom 의 내용을 별도 창으로 보여줍니다.",
           d_쓰기);

          _GButton_풍선도움말_(gui->Btn_EEprom문서_보기, false, d_쓰기);

      //}

  //}

}

void Ide_모양삭제_EEprom문서(void)
{
  //[2011.11.22.화][생성!!!]{--------
  //[EEprom 문서] 관련 처리부를 삭제한다.
  //
  //[2012.04.30.월][수정!!!]---------
  //안전을 위하여 선언한 역순으로 삭제한다.
  //}-------------------------------

  //[GUI]{----------
  struct GUI  *gui;
  GUI_위치얻기(&gui);
  //}---------------

  _GButton_삭제_(gui->Btn_EEprom문서_보기);
  _GButton_삭제_(gui->Btn_EEprom문서_닫기);
  _GButton_삭제_(gui->Btn_EEprom문서_열기);
  _GProgress_삭제_(gui->Prog_EEprom문서_진행);
  _GLabel_삭제_(gui->Lb_EEprom문서_경로);
  _GLabel_삭제_(gui->Lb_EEprom문서);

}

void Ide_EEprom문서_보이기(bool  p보이기_감추기)
{
  //[2011.11.23.수][생성!!!]{---------------------
  //[병렬접근전환] 을 위하여 비관련 부분을 보이거나 감춘다.
  //}--------------------------------------------

  //[GUI]{----------
  struct GUI  *gui;
  GUI_위치얻기(&gui);
  //}---------------

  _GButton_보이기_(gui->Btn_EEprom문서_열기, p보이기_감추기, d_쓰기);
  _GButton_보이기_(gui->Btn_EEprom문서_닫기, p보이기_감추기, d_쓰기);
  _GButton_보이기_(gui->Btn_EEprom문서_보기, p보이기_감추기, d_쓰기);

}

void Btn_EEprom문서_열기_이벤트_MClick(void)
{
  //[2011.09.25.일][생성!!!]{--------------
  //[2011.10.24.월][수정!!!]
  //AVR <EEprom> 에 기록할 문서를 열어준다.
  //단, <*.hex> 만 가능.
  //
  //[2011.11.26.토][수정!!!]---------------
  //[보기창] 이 보이는 경우는 내용을 바로 출력한다.
  //}-------------------------------------

  //[VAR]
  //{
      char  경로이름확장자[512];
      char  이름확장자[256];

  //}

  //[GUI/전역변수]{------
  struct 전역변수  *gv;
  struct GUI     *gui;
  전역변수_위치얻기(&gv);
  GUI_위치얻기(&gui);
  //}------------------

  //[열기 대화상자]
  //{
      _File_열기대화상자_확장자_("AVR EEprom 기록문서(*.hex)|*.hex");

      if(_File_열기대화상자_() != true) return;

      //경로이름확장자 얻기.
      _File_열기대화상자_문서이름_(경로이름확장자);

  //}

  //[저장소 초기화]
  //{
      //[2011.11.04.금][추가!!!]{-----------------------------
      //<*.hex> 를 읽어들이기전 이전 내용이 남지 않도록 저장소를 초기화.
      //}----------------------------------------------------

      Ide_EEprom_저장소_초기화(gv->eeprom);

  //}

  //[<*.hex> 문서 읽기]
  //{
      //<*.hex> 문서를 [2진문서] 로 전용 저장소에 저장.
      _File_HexToBin_(경로이름확장자, gv->eeprom, NULL, NULL);

  //}

  //[Lb_EEprom문서_경로]
  //{
      //[주의!!!]{--------------------------------------------------------------
      //<Lb_EEprom문서_경로> 자체가 <*.hex> [경로이름확장자] 를 저장하는 [전역변수]
      //역활을 하므로 절대 <_Str_출력폭줄임표적용_()> 로 줄여서는 안되고 그대로 둔다.
      //
      //[2011.10.24.월][중요수정!!!]----------------------------------------------
      //대부분의 [경로이름확장자] 는 전체가 길어 정작 중요한 [이름.확장자] 부분이 보이지 않으므로
      //실제는 [이름.확장자] 만 보여주고, 전체 [경로이름확장자] 는 [풍선도움말] 에 저장한다.
      //}-----------------------------------------------------------------------

      _GLabel_풍선도움말문자열_(gui->Lb_EEprom문서_경로, 경로이름확장자, d_쓰기);

      //[이름확장자] 만 추출.
      _FileStr_이름확장자만얻기_(경로이름확장자, 이름확장자);

      //<*.hex> [이름.확장자] 출력.
      _GLabel_제목_(gui->Lb_EEprom문서_경로, 이름확장자, d_쓰기);

  //}

  //[보기창 처리]
  //{
      //[2011.11.26.토][추가!!!]{----------------
      //[보기창] 이 보이고 있는 경우라면 내용을 보여준다.
      //}---------------------------------------

      if(_GForm_보이기_(gui->Form_보기창, NULL, d_읽기) == true)
      {
        Form_보기창_EEprom_보기();

      }

  //}

}

void Btn_EEprom문서_닫기_이벤트_MClick(void)
{
  //[2011.09.25.일][생성!!!]{--
  //[2011.10.22.토][수정!!!]
  //<Lb_EEprom문서_경로> 초기화.
  //[2011.11.26.토][수정!!!]
  //}-------------------------

  //[전역변수]{---------
  struct 전역변수  *gv;
  struct GUI  *gui;
  전역변수_위치얻기(&gv);
  GUI_위치얻기(&gui);
  //}-----------------

  //[저장소 초기화]
  //{
      //[2011.11.05.토][추가!!!]{-----------------
      //닫았으므로 이전 내용이 남지 않도록 저장소를 초기화.
      //}----------------------------------------

      Ide_EEprom_저장소_초기화(gv->eeprom);

  //}

  //[Lb_EEprom문서_경로]
  //{
      //기본 문자열로 초기화.
      _GLabel_제목_(gui->Lb_EEprom문서_경로, "http://www.gigyenics.co.kr", d_쓰기);

      _GLabel_풍선도움말문자열_(gui->Lb_EEprom문서_경로,
                            "http://www.gigyenics.co.kr",
                            d_쓰기);

  //}

  //[보기창 처리]
  //{
      //[2011.11.26.토][추가!!!]{----------------
      //[보기창] 이 보이고 있는 경우라면 내용을 보여준다.
      //}---------------------------------------

      if(_GForm_보이기_(gui->Form_보기창, NULL, d_읽기) == true)
      {
        Form_보기창_EEprom_보기();

      }

  //}

}

void Btn_EEprom문서_보기_이벤트_MClick(void)
{
  //[2011.11.03.목][생성!!!]{--------------------
  //<전역변수:eeprom[]> 의 내용을 별도 창으로 보여준다.
  //}-------------------------------------------

  Form_보기창_EEprom_보기();

}





