
#ifndef font_h
#define font_h


//[참고!!!]{--------------------------------------------
//글꼴 헤더의 모든 정보는 전부 Big-Endian 으로 되 있다.
//}-----------------------------------------------------


//[file]
//{
    //*.gft 파일의 [파일ID].
    #define  d_FILEID_font             0x00000001

//}

//[*.gft 글꼴파일 헤더정보]
//{
    //[글꼴파일] 의 기본 header 는 각각 4 byte 단위이고 총 9 개가 있다.
    //이는 어떤 [글꼴파일] 의 경우도 완전히 같다.
    #define  d_HEADERsize              4 * 9

    //index 위치.
    #define  d_HEADER_fileid_ix        0
    #define  d_HEADER_filesize_ix      1
    #define  d_HEADER_width_ix         2
    #define  d_HEADER_height_ix        3
    #define  d_HEADER_language_ix      4
    #define  d_HEADER_count_ix         5
    #define  d_HEADER_coderange_ix     6
    #define  d_HEADER_DWinfo_ix        7
    #define  d_HEADER_dataindex_ix     8

    #define  d_HEADER_table_ix         9
//}

//[language 내부 정보]
//{
    //[기본/문자열 글꼴]
    #define  d_LANGUAGE_default_string_bt   31
    //{
        #define  d_default_bv    0
        #define  d_string_bv     1
    //}

    //[고정폭/가변폭 글꼴]
    #define  d_LANGUAGE_fixed_variable_bt   30
    //{
        #define  d_fixed_bv      0
        #define  d_variable_bv   1
    //}

    //[포함된 언어]
    #define  d_LANGUAGE_KS_hangul_bt        0x000001
    #define  d_LANGUAGE_KS_symbol_bt        0x000002
    #define  d_LANGUAGE_KS_hanja_bt         0x000004
    #define  d_LANGUAGE_english_bt          0x000008

//}

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

struct GFTNAME
{
  //[2010.01.26.화][생성!!!]{-------------------------------------------------------
  //한개의 <*.gft> 의 [순수이름] 만 저장할 저장소를 만든다.
  //향후 처리를 간단하게 하기 위하여 [확장자] 까지 같이 저장한다.
  //이렇게 해야 경로는 이미 [정해져] 있으므로 간단하게 [전체경로] 를 합성할수 있다.
  //}-------------------------------------------------------------------------------

  //<*.gft> 형식의 순수한 [이름] 만 저장하면 되므로 256 바이트면 충분하다.
  char  name[256];

  //추가정보는 이곳에 정의한다.

};

struct FONTRESOURCE
{
  //[2006.09.26.화][생성!!!]{---------------------
  //글꼴을 전부 가지는 글꼴 리소스를 구성한다.
  //모든 글꼴은 이 리소스 정보를 상대로 처리된다.
  //}---------------------------------------------

  unsigned char  *buf;
  int             size;

  //[글꼴정보]
  //{
      //-------------------------------------------------------
      //글꼴수.
      //buf[0] 위치가 된다.
      int             fontcount;   //4 byte.

      //글꼴 핸들 테이블 시작위치.
      //buf[] 상에서 4 byte 정보 count 바로 다음부처 시작된다.
      //fonthandle[x] 의 값이 *.gft 파일이 있는 위치 값이 된다.
      unsigned int   *fonthandle;  //4 byte 단위 정보.
      //-------------------------------------------------------
  //}

  //[글꼴 리소스 구조]{----------------------------------------------------------------
  //[글꼴수] + {[글꼴0 handle] + [글꼴1 handle] + ... } + { [글꼴0] + [글꼴1] + ... }.
  //   4              4                 4                    *.gft     *.gft
  //}----------------------------------------------------------------------------------

  //[글꼴 전체 목록(문자열)]
  //{
      //[2010.01.26.화][추가!!!]{------------------------------------------------------
      //[글꼴] 을 [글꼴이름] 으로 접근할수 있도록 [리소스] 에 저장된 순서대로
      //순수 [글꼴이름] 만 관리한다.
      //단, 반드시 저장된 순서와 일치해야 하며 이렇게 돼있어야 찾은 위치가 곧 index 가
      //되므로 처리가 쉬워진다.
      //}------------------------------------------------------------------------------

      //정해진 [font] 폴더안의 수집된 것만 저장하면 된다.
      struct GFTNAME  *names;

  //}

};

struct FONTPACK
{
  //[2006.09.27.수][생성!!!]{----------------------------------------
  //각각의 언어에 해당하는 *.gft 파일의 handle 을 저장한다.
  //기본적으로 4 종류만 사용하므로 고정으로 정해서 사용한다.
  //handle[0] : 한글.
  //handle[1] : 기호.
  //handle[2] : 한자.
  //handle[3] : 영어.

  //[2007.02.04.일][추가!!!]
  //handle[4] : 한글(굵은).
  //handle[5] : 기호(굵은).
  //handle[6] : 한자(굵은).
  //handle[7] : 영어(굵은).

  //즉, 기본 위치에서 +4 를 하면 해당 글꼴의 [굵은글꼴] 위치가 된다.
  //}----------------------------------------------------------------

  //*.gft 파일에 바로 접근할수 있는 handle.
  #define  d_FontPack_GftMax    8
  unsigned char  *gft[d_FontPack_GftMax];

  //[글꼴형태 선택]
  //{
      #define  d_FONTSTYLE_default           0
      #define  d_FONTSTYLE_bold              4

      //[기본글꼴] 위치에 +4 를 하면 [굵은글꼴] 위치가 되도록 d_FONTSTYLE_bold 값을 4 로 한다.
      //실제로 기본글꼴 index + d_FONTSTYLE_bold 로 [굵은글꼴] 위치를 구해서 사용한다.
  //}

  #define  d_FONTPACK_hangul_ix          0  //handle[0]
  #define  d_FONTPACK_symbol_ix          1  //handle[1]
  #define  d_FONTPACK_hanja_ix           2  //handle[2]
  #define  d_FONTPACK_english_ix         3  //handle[3]

  #define  d_FONTPACK_hangul_bold_ix     4  //handle[4]
  #define  d_FONTPACK_symbol_bold_ix     5  //handle[5]
  #define  d_FONTPACK_hanja_bold_ix      6  //handle[6]
  #define  d_FONTPACK_english_bold_ix    7  //handle[7]

  //[option]
  //{
      //[글꼴 묶음] 은 하나의 TFont 와 같이 사용할 [글꼴] 에 대한 모든 정보를 갖는다.

      //[editor-left margin]
      //{
          //문자출력 영역의 left margin.
          //이는 editor 좌측의 debug 공간을 비워 놓기 위한 것이다.
          int  margin_size;

      //}

      //[moonja offset]
      //{
          //출력시 [문자] [상/하/좌/우] 에 적용할 offset. (BASE : 0)
          //이 부분은 [문자 배경] 으로 취급한다.(반드시 [문자배경색] 으로 칠해준다.)
          int  offset_left;
          int  offset_right;
          int  offset_top;
          int  offset_bottom;
      //}

      //[영문 전용 간격]
      //{
          //[2010.01.25.월][중요추가!!!]{------------------------------------------
          //ASCII 문자는 보기 좋게 하기 위하여 전용 간격을 추가로 갖는다.
          //기본적으로 [글꼴묶음] 의 [3, 7] 번 index 로 고정되 있으므로 이 경우는
          //위의 기본 글꼴간격 정보와는 달리 추가로 무조건 이 값을 지정한다.
          //단, 왼쪽/오른쪽의 경우만 해당한다.
          //
          //이 것은 [영문 가변폭글꼴] 인 경우 아주 유용하다.
          //기본적으로 [영문 가변폭글꼴] 은 무조건 유효 pixel 만 추출하므로 그대로
          //출력하는 경우는
          //}----------------------------------------------------------------------

          int  en_offset_left;   //기본값(0).
          int  en_offset_right;  //기본값(0).

      //}

  //}

};

//[FONTRESOURCE]----------------------------------------------------------------

void __fastcall FONTRESOURCE_GetHandle(struct FONTRESOURCE **rFONTRESOURCE);

void __fastcall FONTRESOURCE_Init(void);

//[2006.09.29.금][완료!!!]
void __fastcall FONTRESOURCE_Load(void);

//[FONTPACK]--------------------------------------------------------------------

void __fastcall FONTPACK_GetHandle(struct FONTPACK **rFONTPACK);

void __fastcall FONTPACK_Init(void);

//[2006.09.29.금][완료!!!]
void __fastcall FONTPACK_Register(struct FONTPACK  *pFONTpack,
                                  unsigned char    *pHANGUL,
                                  unsigned char    *pSYMBOL,
                                  unsigned char    *pHANJA,
                                  unsigned char    *pENGLISH,
                                  unsigned char    *pHANGULbold,
                                  unsigned char    *pSYMBOLbold,
                                  unsigned char    *pHANJAbold,
                                  unsigned char    *pENGLISHbold);

//[2018.07.02.월][완료!!!]
void __fastcall FONTPACK_SetDefault(struct FONTPACK *pFONTpack);

//[2010.01.26.화][완료!!!]
bool __fastcall FONTPACK_SetFont_withName(//설정 대상이 되는 [글꼴묶음].
                                          struct FONTPACK  *pFontPack,
                                          //[글꼴묶음] 상의 등록 위치.
                                          int               pSetIndex,
                                          //[글꼴묶음] 에 할당할 [글꼴이름].
                                          char             *pFontName);

//[2010.02.12.금][완료!!!]
void __fastcall FONTPACK_Get_MaxHeight(//정보를 얻을 [글꼴묶음].
                                       struct FONTPACK  *pFontPack,
                                       //글꼴의 추가 여백설정까지 반영하는 경우는 true(기본 : false).
                                       bool              pFontOfs,
                                       //높이정보 반환.
                                       int              *rMaxHeight);

//[글꼴 출력 함수]--------------------------------------------------------------

void __fastcall FONT_Get_MoonjaPtr_byORDER(//*.gft 파일 핸들.
                                           unsigned char  *pFONThandle,
                                           //문자순번.
                                           int             pORDER,
                                           //{font-data} 상의 byte 위치.
                                           int            *rPTRbyte,
                                           //{font-data} 상의 bit 위치.
                                           int            *rPTRbit);

bool __fastcall FONT_Get_FontHandle_byCODE(//[사용 글꼴 묶음].
                                           struct FONTPACK   *pFONTPACK,
                                           //문자 code.
                                           unsigned short     pCODE,
                                           //해당 code 를 가진 [글꼴] 의 pFONTPACK 상의 index 를 반환한다.
                                           int               *rFONTindex);

void __fastcall FONT_Get_MoonjaOrder_byCODE(unsigned char   *pFONThandle,
                                            unsigned short   pCODE,
                                            int             *rORDER);

bool __fastcall FONT_Get_MoonjaPtr_byCODE(//[사용 글꼴 묶음].
                                          struct FONTPACK   *pFONTPACK,
                                          //문자순번.
                                          unsigned short     pCODE,
                                          //해당 code 를 가진 [글꼴] 의 pFONTPACK 상의 index 를 반환한다.
                                          int               *rFONTindex,
                                          //문자순번.
                                          int               *rMOONJAorder,
                                          //{font-data} 상의 byte 위치.
                                          int               *rPTRbyte,
                                          //{font-data} 상의 bit 위치.
                                          int               *rPTRbit);

//[2012.05.15.화][완료!!!]
bool __fastcall FONT_Out_Moonja(//[문자] 를 출력할 bitmap handle.
                                Graphics::TBitmap  *pVIEWhandle,
                                //[사용 글꼴 묶음].
                                struct FONTPACK    *pFONTPACK,
                                //문자를 표시할 좌표.(BASE:0)
                                int                 pX,
                                int                 pY,
                                //문자색.
                                int                 pMOONJAcolor,
                                //배경색.
                                int                 pBACKcolor,
                                //배경색투명속성지정.
                                bool                pBACKtransparent,
                                //출력 문자 코드.
                                unsigned short      pCODE,
                                //출력된 문자 width, height 정보 반환.
                                //[2012.05.15.화][수정!!!]
                                //NULL 이 아닌 경우만 반환.
                                int                *rWIDTH,
                                int                *rHEIGHT);

//[2011.08.22.월][완료!!!]
bool __fastcall FONT_Out_String(//[문자] 를 출력할 bitmap handle.
                                Graphics::TBitmap  *pVIEWhandle,
                                //[사용 글꼴 묶음].
                                struct FONTPACK    *pFONTPACK,
                                //문자열을 출력할 시작 위치.(BASE:0)
                                //수정된 값을 반환하기도 한다.
                                int                 pX,
                                int                 pY,
                                //문자색.
                                int                 pMOONJAcolor,
                                //배경색.
                                int                 pBACKcolor,
                                //배경색투명속성지정.
                                bool                pBACKtransparent,
                                //출력할 문자열.
                                char               *pSTRING,
                                //문자열 출력후 변경된 (x, y) 좌표를 반환한다.
                                int                *rX,
                                int                *rY);

bool __fastcall FONT_Out_Moonja2(//[문자] 를 출력할 bitmap handle.
                                 Graphics::TBitmap  *pVIEWhandle,
                                 //[사용 글꼴 묶음].
                                 struct FONTPACK    *pFONTPACK,
                                 //문자를 표시할 좌표.(BASE:0)
                                 int                 pX,
                                 int                 pY,
                                 //문자색.
                                 int                 pMOONJAcolor,
                                 //배경색.
                                 int                 pBACKcolor,
                                 //배경색투명속성지정.
                                 bool                pBACKtransparent,
                                 //출력 문자 코드.
                                 unsigned short      pCODE,
                                 //[field option]--------------------------------
                                 //밑줄 종류.
                                 int                 pUNDERLINEkind,
                                 //[공백] 에도 적용할지여부.
                                 bool                pUNDERLINEspace,
                                 //문자 출력 BOX 영역의 아래를 기준으로 한 위치.
                                 int                 pUNDERLINEoffset,
                                 //밑줄 색.
                                 int                 pUNDERLINEcolor,
                                 //----------------------------------------------
                                 //출력된 문자 width, height 정보 반환.
                                 int                *rWIDTH,
                                 int                *rHEIGHT);

#define  d_FONT_underline_no      0
#define  d_FONT_underline_dot     1
#define  d_FONT_underline_dot2    2
#define  d_FONT_underline_line    3

//[2011.08.22.월][완료!!!]
bool __fastcall FONT_Out_String2(//[문자] 를 출력할 bitmap handle.
                                 Graphics::TBitmap  *pVIEWhandle,
                                 //[사용 글꼴 묶음].
                                 struct FONTPACK    *pFONTPACK,
                                 //문자열을 출력할 시작 위치.(BASE:0)
                                 //수정된 값을 반환하기도 한다.
                                 int                 pX,
                                 int                 pY,
                                 //문자색.
                                 int                 pMOONJAcolor,
                                 //배경색.
                                 int                 pBACKcolor,
                                 //배경색투명속성지정.
                                 bool                pBACKtransparent,
                                 //출력할 문자열.
                                 char               *pSTRING,
                                 //[field option]--------------------------------
                                 //밑줄 종류.
                                 int                 pUNDERLINEkind,
                                 //[공백] 에도 적용할지여부.
                                 bool                pUNDERLINEspace,
                                 //문자 출력 BOX 영역의 아래를 기준으로 한 위치.
                                 int                 pUNDERLINEoffset,
                                 //밑줄 색.
                                 int                 pUNDERLINEcolor,
                                 //----------------------------------------------
                                 //문자열 출력후 변경된 (x, y) 좌표를 반환한다.
                                 int                *rX,
                                 int                *rY);

//[2010.01.30.토][완료!!!]
bool __fastcall FONT_Out_StyleMoonja(//[문자] 를 출력할 bitmap handle.
                                     Graphics::TBitmap  *pVIEWhandle,
                                     //[사용 글꼴 묶음].
                                     struct FONTPACK    *pFONTPACK,
                                     //문자를 표시할 좌표.(BASE:0)
                                     int                 pX,
                                     int                 pY,
                                     //문자색.
                                     int                 pMOONJAcolor,
                                     //배경색.
                                     int                 pBACKcolor,
                                     //배경색투명속성지정.
                                     bool                pBACKtransparent,
                                     //문자출력형식지정.(기본글꼴/굵은글꼴...)
                                     int                 pSTYLE,
                                     //출력 문자 코드.
                                     unsigned short      pCODE,
                                     //[field option]--------------------------------
                                     //밑줄 종류.
                                     int                 pUNDERLINEkind,
                                     //[공백] 에도 적용할지여부.
                                     bool                pUNDERLINEspace,
                                     //문자 출력 BOX 영역의 아래를 기준으로 한 위치.
                                     int                 pUNDERLINEoffset,
                                     //밑줄 색.
                                     int                 pUNDERLINEcolor,
                                     //----------------------------------------------
                                     //출력된 문자 width, height 정보 반환.
                                     int                *rWIDTH,
                                     int                *rHEIGHT);

//[2011.08.22.월][완료!!!]
bool __fastcall FONT_Out_StyleString2(//[문자] 를 출력할 bitmap handle.
                                      Graphics::TBitmap  *pVIEWhandle,
                                      //[사용 글꼴 묶음].
                                      struct FONTPACK    *pFONTPACK,
                                      //문자열을 출력할 시작 위치.(BASE:0)
                                      int                 pX,
                                      int                 pY,
                                      //문자색.
                                      int                 pMOONJAcolor,
                                      //배경색.
                                      int                 pBACKcolor,
                                      //배경색투명속성지정.
                                      bool                pBACKtransparent,
                                      //문자출력형식지정.(기본글꼴/굵은글꼴...)
                                      int                 pSTYLE,
                                      //출력할 문자열.
                                      char               *pSTRING,
                                      //[field option]--------------------------------
                                      //밑줄 종류.
                                      int                 pUNDERLINEkind,
                                      //[공백] 에도 적용할지여부.
                                      bool                pUNDERLINEspace,
                                      //문자 출력 BOX 영역의 아래를 기준으로 한 위치.
                                      int                 pUNDERLINEoffset,
                                      //밑줄 색.
                                      int                 pUNDERLINEcolor,
                                      //----------------------------------------------
                                      //문자열 출력후 변경된 (x, y) 좌표를 반환한다.
                                      int                *rX,
                                      int                *rY);

//[2011.08.22.월][완료!!!]
bool __fastcall FONT_Out_StyleString3(//[문자] 를 출력할 bitmap handle.
                                      Graphics::TBitmap  *pVIEWhandle,
                                      //[사용 글꼴 묶음].
                                      struct FONTPACK    *pFONTPACK,
                                      //문자열을 출력할 시작 위치.(BASE:0)
                                      int                 pX,
                                      int                 pY,
                                      //문자색.
                                      int                 pMOONJAcolor,
                                      //배경색.
                                      int                 pBACKcolor,
                                      //배경색투명속성지정.
                                      bool                pBACKtransparent,
                                      //문자출력형식지정.(기본글꼴/굵은글꼴...)
                                      int                 pSTYLE,
                                      //출력할 문자열.
                                      char               *pSTRING,

                                      //[2010.02.19.금][추가!!!]--------
                                      //출력 [시작 문자] 위치.
                                      int                 pStartIndex,
                                      //출력 [끝 문자] 다음 문자 위치.
                                      int                 pEndIndex,

                                      //[field option]--------------------------------
                                      //밑줄 종류.
                                      int                 pUNDERLINEkind,
                                      //[공백] 에도 적용할지여부.
                                      bool                pUNDERLINEspace,
                                      //문자 출력 BOX 영역의 아래를 기준으로 한 위치.
                                      int                 pUNDERLINEoffset,
                                      //밑줄 색.
                                      int                 pUNDERLINEcolor,
                                      //----------------------------------------------
                                      //문자열 출력후 변경된 (x, y) 좌표를 반환한다.
                                      int                *rX,
                                      int                *rY);

//[2012.05.15.화][완료!!!]
bool __fastcall Font_StyleStr_AutoLine(//[문자] 를 출력할 bitmap handle.
                                       Graphics::TBitmap  *pViewHandle,
                                       //[사용 글꼴 묶음].
                                       struct FONTPACK    *pFontPack,
                                       //문자열을 출력할 시작 위치.(BASE:0)
                                       int                 pX,
                                       int                 pY,

                                       //[2012.05.15.화][추가!!!]{----------------------------------
                                       //[출력폭] 을 지정(0 인 경우 사용하지 않음).
                                       //이 [출력폭] 을 넘는 경우 CRLF 없이 자동으로 행을 바꿔준다.
                                       //<pViewHandle> (0, 0) 위치를 기준으로 한 폭이 된다.
                                       int                 pWidth,
                                       //}----------------------------------------------------------

                                       //문자색.
                                       int                 pMoonjaColor,
                                       //배경색.
                                       int                 pBackColor,
                                       //배경색투명속성지정.
                                       bool                pBackTransparent,
                                       //문자출력형식지정.(기본글꼴/굵은글꼴...)
                                       int                 pStyle,
                                       //출력할 문자열.
                                       char               *pStr,
                                       //[field option]--------------------------------
                                       //밑줄 종류.
                                       int                 pUnderLineKind,
                                       //[공백] 에도 적용할지여부.
                                       bool                pUnderLineSpace,
                                       //문자 출력 BOX 영역의 아래를 기준으로 한 위치.
                                       int                 pUnderLineOffset,
                                       //밑줄 색.
                                       int                 pUnderLineColor,
                                       //----------------------------------------------
                                       //문자열 출력후 변경된 (x, y) 좌표를 반환한다.
                                       int                *rX,
                                       int                *rY);



//[2011.08.22.월][완료!!!]
bool __fastcall FONT_Out_String2_withLINEstartINDEX(//[문자] 를 출력할 bitmap handle.
                                                    Graphics::TBitmap  *pVIEWhandle,
                                                    //[사용 글꼴 묶음].
                                                    struct FONTPACK    *pFONTPACK,
                                                    //문자열을 출력할 시작 위치.(BASE:0)
                                                    int                 pX,
                                                    int                 pY,
                                                    //문자색.
                                                    int                 pMOONJAcolor,
                                                    //배경색.
                                                    int                 pBACKcolor,
                                                    //배경색투명속성지정.
                                                    bool                pBACKtransparent,
                                                    //출력할 문자열.
                                                    char               *pSTRING,
                                                    //출력할 시작 index.(pSTRING[pLINEstartINDEX] 로 사용된다.)
                                                    int                 pLINEstartINDEX,
                                                    //행높이.
                                                    int                 pLINEheight,
                                                    //[field option]--------------------------------
                                                    //밑줄 종류.
                                                    int                 pUNDERLINEkind,
                                                    //[공백] 에도 적용할지여부.
                                                    bool                pUNDERLINEspace,
                                                    //문자 출력 BOX 영역의 아래를 기준으로 한 위치.
                                                    int                 pUNDERLINEoffset,
                                                    //밑줄 색.
                                                    int                 pUNDERLINEcolor);

//[2011.08.22.월][완료!!!]
bool __fastcall FONT_Out_LineStr_withSTARTENDindex(//[문자] 를 출력할 bitmap handle.
                                                   Graphics::TBitmap  *pVIEWhandle,
                                                   //[사용 글꼴 묶음].
                                                   struct FONTPACK    *pFONTPACK,
                                                   //문자열을 출력할 시작 위치.(BASE:0)
                                                   int                 pX,
                                                   int                 pY,
                                                   //문자색.
                                                   int                 pMOONJAcolor,
                                                   //배경색.
                                                   int                 pBACKcolor,
                                                   //배경색투명속성지정.
                                                   bool                pBACKtransparent,
                                                   //출력할 문자열.
                                                   char               *pSTRING,
                                                   //출력할 시작 index.
                                                   int                 pSTARTindex,
                                                   //출력할 끝 index.
                                                   int                 pENDindex,
                                                   //[field option]--------------------------------
                                                   //밑줄 종류.
                                                   int                 pUNDERLINEkind,
                                                   //[공백] 에도 적용할지여부.
                                                   bool                pUNDERLINEspace,
                                                   //문자 출력 BOX 영역의 아래를 기준으로 한 위치.
                                                   int                 pUNDERLINEoffset,
                                                   //밑줄 색.
                                                   int                 pUNDERLINEcolor);

//[2012.05.15.화][완료!!!]
bool __fastcall FONT_Get_MoonjaOutAreaInfo(//[사용 글꼴 묶음].
                                           struct FONTPACK    *pFONTPACK,
                                           //[2010.01.30.토][추가!!!]
                                           //[보통글꼴/굵은글꼴] 을 구분한다.
                                           int                 pStyle,
                                           //출력 문자 코드.
                                           unsigned short      pCODE,
                                           //출력된 문자 width, height 정보 반환.
                                           //[2012.05.15.화][수정!!!]
                                           //NULL 인 경우는 반환하지 않는다.
                                           int                *rWIDTH,
                                           int                *rHEIGHT);
//[2012.05.28.월][완료!!!]
bool __fastcall FONT_Get_StringOutAreaInfo(//[사용 글꼴 묶음].
                                           struct FONTPACK  *pFONTPACK,
                                           //[2010.01.30.토][추가!!!]
                                           //[보통글꼴/굵은글꼴] 을 구분한다.
                                           int               pStyle,
                                           //출력할 문자열.
                                           char             *pSTRING,
                                           //문자열이 출력 영역 크기 정보.
                                           int              *rWIDTH,
                                           int              *rHEIGHT);

//[2011.07.16.토][완료!!!]
int __fastcall FONT_Get_StringOutAreaInfo_Width(//[사용 글꼴 묶음].
                                                struct FONTPACK  *pFontPack,
                                                //[보통글꼴/굵은글꼴] 을 구분한다.
                                                int               pStyle,
                                                //출력할 문자열.
                                                char             *pStr);

//[2012.03.30.금][완료!!!]
bool __fastcall Font_LineStr_Get_Length_condWidth(//처리할 문자열.
                                                  char             *pStr,
                                                  //적용할 [글꼴 묶음].
                                                  struct FONTPACK  *pFontPack,
                                                  //[보통글꼴/굵은글꼴] 을 구분한다.
                                                  int               pStyle,
                                                  //지정 출력 영역 폭.
                                                  int               pSetWidth,
                                                  //지정 영역을 만족시키는 문자열 길이(NULL 이 아닌 경우만 반환).
                                                  int              *rStrLength);

//[2012.05.15.화][완료!!!]
bool __fastcall Font_Get_AutoLineStr_OutAreaInfo(//[사용 글꼴 묶음].
                                                 struct FONTPACK  *pFontPack,
                                                 //[2010.01.30.토][추가!!!]
                                                 //[보통글꼴/굵은글꼴] 을 구분한다.
                                                 int               pStyle,
                                                 //지정폭(이 폭을 넘는 경우 자동 줄바꿈).
                                                 int               pWidth,
                                                 //출력할 문자열.
                                                 char             *pStr,
                                                 //문자열이 출력 영역 크기 정보.
                                                 //[2012.05.16.수][수정!!!]{------------------------------
                                                 //<pWidth > 0> 이라도 정확한 실제 출력 [최대폭] 을 반환.
                                                 int              *rWidth,
                                                 //}------------------------------------------------------
                                                 int              *rHeight);



#endif

