DragonNest/Common/EtInterface/EtUIHtmlTextBox.h
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

45 lines
1.7 KiB
C++

#pragma once
#include "EtUITextBox.h"
#include "LiteHTMLReader.h"
// Note : 아래는 Html을 읽어서 뿌려주는 텍스트 박스.
// LiteHTMLReader라는 파서를 사용했습니다. NPC 대화창을 보시면됩니다.
// 현재로는 HTML문법중에 문단, 줄바꿈, 폰트 컬러 정도만 지원됩니다.
//
class CEtUIHtmlTextBox : public CEtUITextBox, public ILiteHTMLReaderEvents
{
public:
CEtUIHtmlTextBox(CEtUIDialog *pParent);
virtual ~CEtUIHtmlTextBox(void);
protected:
DWORD m_dwTextColor; // 현재 색상
DWORD m_dwDefaultTextColor; // 기본 색상
CLiteHTMLReader m_htmlReader;
protected:
virtual void BeginParse(DWORD dwAppData, bool &bAbort);
virtual void StartTag(CLiteHTMLTag *pTag, DWORD dwAppData, bool &bAbort);
virtual void EndTag(CLiteHTMLTag *pTag, DWORD dwAppData, bool &bAbort);
virtual void Characters(const CStringW &rText, DWORD dwAppData, bool &bAbort);
virtual void Comment(const CStringW &rComment, DWORD dwAppData, bool &bAbort);
virtual void EndParse(DWORD dwAppData, bool bIsAborted);
virtual void RenderLine( float fElapsedTime, CLine* sLine, bool bRollOver = false );
public:
bool ReadHtmlString( LPCWSTR lpszString );
bool ReadHtmlFile( LPCWSTR filename );
bool ReadHtmlFile( LPCSTR filename );
bool ReadHtmlStream( CStream *pStream );
virtual int GetScrollBarTemplate();
virtual void SetScrollBarTemplate( int nIndex );
// HtmlTextBox가 많이 사용되지 않는 관계로, 색상을 아직 속성으로 빼지 않았다.
// 다음에 필요하다면 속성값으로 빼야겠다.(그땐 m_dwTextColor멤버가 빠져도 될듯.)
// 기본색상은 흰색이다.
//
// 만약 속성으로 빼면, 기존 UI파일들에 있는 색상들은 0x00000000으로 설정될테니, 찾아서 다시 설정해야할거다.
void SetDefaultTextColor( DWORD dwColor ) { m_dwTextColor = m_dwDefaultTextColor = dwColor; }
};