#include "SunClientPrecompiledHeader.h" #ifdef _NA_008016_20150203_SUN_RANKING_SYSTEM #include "SUNRankingPointControl.h" SUNRankingPointControl::SUNRankingPointControl(void) { } SUNRankingPointControl::~SUNRankingPointControl(void) { Release(); } void SUNRankingPointControl::Release() { } void SUNRankingPointControl::Init( SUNRankingSlot* parent_slot, CControlWZ* total_control_ptr ) { parent_slot_ = parent_slot; total_control_ptr_ = total_control_ptr; RECT rc = {0, }; m_FTextRender.Init(g_pSunRenderer, rc); DWORD font_ID = StrToWzID("mn12"); COLORREF font_color = WzColor_RGBA(255, 255, 255, 255); TCHAR point_string[INTERFACE_STRING_LENGTH] = {0, }; TCHAR result_string[INTERFACE_STRING_LENGTH] = {0, }; NUMBERFMT fmt = { 0, 0, 3, _T("."), _T(","), 1 }; SUN_RANKING_SCORE_INFO score_info = parent_slot_->get_point_(); if ( score_info.is_level_value_ == true && parent_slot_->get_rank_() > 0 ) { Snprintf(result_string, INTERFACE_STRING_LENGTH-1, _T("%I64u(%.2f%%)"), score_info.score_, score_info.extra_score_info_); } else { if ( parent_slot_->get_rank_() == 0 ) { score_info.score_ = 0; } Snprintf(point_string, INTERFACE_STRING_LENGTH-1, _T("%I64u"), score_info.score_); ::GetNumberFormat( LOCALE_SYSTEM_DEFAULT, NULL, point_string, &fmt, result_string, sizeof(result_string)); } if ( parent_slot_->get_index_() == 0 ) { Snprintf(point_string, INTERFACE_STRING_LENGTH-1, _T("%s"), result_string); } else { Snprintf(point_string, INTERFACE_STRING_LENGTH-1, _T("%s"), result_string); } if( m_FTextParser.Parser(point_string, m_FTextSentence) ) { m_FTextRender.ClearSentence(); m_FTextRender.Append(m_FTextSentence); m_FTextSentence.Release(); } } void SUNRankingPointControl::Update() { } void SUNRankingPointControl::Render() { if ( is_show_() == false ) return; RECT parent_rect = parent_slot_->get_control_rect_(); RECT origin_parent_rect = parent_rect; static int left = 280; static int top = 11; static int right = 40; static int bottom = 12; parent_rect.left += left; parent_rect.top += top; parent_rect.right = right; parent_rect.bottom -= bottom; static LONG text_size_rect_width = 200; static LONG text_top_gap = 3; RECT point_text_rect = parent_rect; point_text_rect.left = parent_rect.left + parent_rect.right + 3; point_text_rect.top = parent_rect.top + text_top_gap; point_text_rect.right = point_text_rect.left + text_size_rect_width; point_text_rect.bottom = point_text_rect.top + 20; RECT total_rect = total_control_ptr_->GetSizeRect(); RECT result_rect = point_text_rect; bool is_bottom = false; if (parent_slot_->get_index_() != 0 && point_text_rect.bottom > total_rect.bottom) { is_bottom = true; LONG differ = point_text_rect.bottom - total_rect.bottom; point_text_rect.bottom = (point_text_rect.bottom - point_text_rect.top) - differ; } RECT ftext_rect; ftext_rect = point_text_rect; ftext_rect.right = point_text_rect.left + point_text_rect.right; ftext_rect.bottom = point_text_rect.top + point_text_rect.bottom; bool is_differ_rect = false; if ( ftext_rect.left != m_FTextRender.GetRect().left ) { is_differ_rect = true; } m_FTextRender.SetRect( ftext_rect ); m_FTextRender.SetBeginLineIndex(0); // ÀÌÀü ¿µ¿ªÀÇ Â÷À̰¡ ÀÖÀ¸¸é Render¸¦ µÎ¹ø ÇØÁØ´Ù. if ( is_differ_rect == true ) { m_FTextRender.Render(); } m_FTextRender.Render(); } #endif // _NA_008016_20150203_SUN_RANKING_SYSTEM