133 lines
4.2 KiB
C++
133 lines
4.2 KiB
C++
#pragma once
|
|
//#include "KUIControl.h"
|
|
|
|
namespace
|
|
{
|
|
const char* c_lpStrListItemCtrName = "item_string";
|
|
const char* c_lpIconStrListItemCtrName = "item_icon_string";
|
|
const char* c_lpCommunityListItemCtrName = "item_community";
|
|
};
|
|
|
|
//--------------------------------------------------------------------------------------------------------------------------------------------
|
|
/** 리스트의 아이템으로 들어갈 컨트롤들의 집합은 생성할 시 KUIControlListItem을 상속받은 자식으로 생성해야하기 때문에 ★생성자는 protected★이며
|
|
KUIControlList에서 사용할때는 부모인 KUIControlListItem으로 통합관리 하기 때문에 KUIControlListItem을 상속받아서 만든
|
|
클래스의 접근 함수는 모두 private이다. */
|
|
//--------------------------------------------------------------------------------------------------------------------------------------------
|
|
//ListItem Info List
|
|
class KUIControlListItem : public KUIControl
|
|
{
|
|
protected:
|
|
KUIControlListItem():m_nDefaultGap(0), m_bCreate(false) {};
|
|
virtual ~KUIControlListItem() {};
|
|
|
|
public:
|
|
struct Item
|
|
{
|
|
Item() : bAble(false), uiFlag(0) {} /// 2010.12.23 - prodongi
|
|
Item(const char* lpName):bAble(true), uiFlag(0) {strCtrName=lpName;}
|
|
virtual ~Item( ) { };
|
|
void SetAble(bool Able) { bAble = Able; }
|
|
bool IsAble() { return bAble; }
|
|
|
|
bool bAble;
|
|
DWORD uiFlag; /// 2010.12.23 - prodongi
|
|
std::string strCtrName;
|
|
};
|
|
|
|
/** ItemCreate 함수는 public이지만 KUIControlList에서 Item을 생성할때말고는 절대 호출해서는 안된다.
|
|
KUIControlList를 friend로 지정해서 사용하는 것이 더 좋을지도...
|
|
아이템을 관리할 가상의 베이스 컨트롤을 만드는 함수로 리스트에서는 이 함수에서 생성된 것을 기준으로 아이템을 관리하게 된다. */
|
|
bool ItemCreate( class KUIControlList* pParent, const char* lpClassName, const char* lpCtrID, KUIWndManager* wndManager ); /// 2011.07.11 wndManager 추가- prodongi
|
|
|
|
int GetDefaultGap() { return m_nDefaultGap; }
|
|
|
|
/// 아이템에 데이터를 쎄팅하는 함수
|
|
virtual void SetItem( Item* pItemData ) = 0;
|
|
/// 리사이즈가 발생했을 때 아이템을 어떻게 처리할 것인지 처리하는 함수
|
|
virtual void ResizeListItemRect( KRect rt ) = 0;
|
|
|
|
protected:
|
|
void SetIconCtr( class KUIControlIconStatic* pIcon, const char* pAni );
|
|
void SetStaticCaption( class KUIControlStatic* pStatic, const char* lpCaption );
|
|
void CuttingText( class KUIControlStatic* pNameText, const char* lpCaption, std::string& rOutCutName );
|
|
|
|
protected:
|
|
int m_nDefaultGap;
|
|
bool m_bCreate;
|
|
};
|
|
|
|
/// ListItem Info List
|
|
class KUIControlStringItem : public KUIControlListItem
|
|
{
|
|
public:
|
|
struct StrItem : KUIControlListItem::Item
|
|
{
|
|
StrItem(const char* lpCaption):Item(c_lpStrListItemCtrName), strCaption(lpCaption) {}
|
|
std::string strCaption;
|
|
};
|
|
|
|
KUIControlStringItem()
|
|
{
|
|
m_nDefaultGap = 30;
|
|
};
|
|
virtual ~KUIControlStringItem() {};
|
|
|
|
private:
|
|
virtual void _initControl();
|
|
|
|
virtual void SetItem( Item* pItemData );
|
|
virtual void ResizeListItemRect( KRect rt );
|
|
};
|
|
|
|
class KUIControlIconNStringItem : public KUIControlListItem
|
|
{
|
|
public:
|
|
struct IconStrItem : KUIControlListItem::Item
|
|
{
|
|
IconStrItem(const char* lpAni, const char* lpCaption)
|
|
:Item(c_lpIconStrListItemCtrName), strIconAni(lpAni), strCaption(lpCaption) {}
|
|
|
|
std::string strIconAni;
|
|
std::string strCaption;
|
|
};
|
|
|
|
KUIControlIconNStringItem()
|
|
{
|
|
m_nDefaultGap = 30;
|
|
};
|
|
virtual ~KUIControlIconNStringItem() {};
|
|
|
|
private:
|
|
virtual void _initControl();
|
|
|
|
virtual void SetItem( Item* pItemData );
|
|
virtual void ResizeListItemRect( KRect rt );
|
|
};
|
|
|
|
class KUIControlCommunityItem : public KUIControlListItem
|
|
{
|
|
public:
|
|
struct CommunityItem : KUIControlListItem::Item
|
|
{
|
|
CommunityItem( const char* lpOnline, const char* lpJopID, const char* lpLV, const char* lpName)
|
|
:Item(c_lpCommunityListItemCtrName), strOnlineIcon(lpOnline), strJopIcon(lpJopID), strLV(lpLV), strName(lpName) {}
|
|
|
|
std::string strOnlineIcon;
|
|
std::string strJopIcon;
|
|
std::string strLV;
|
|
std::string strName;
|
|
};
|
|
|
|
KUIControlCommunityItem()
|
|
{
|
|
m_nDefaultGap = 30;
|
|
};
|
|
virtual ~KUIControlCommunityItem() {};
|
|
|
|
private:
|
|
virtual void _initControl();
|
|
|
|
virtual void SetItem( Item* pItemData );
|
|
virtual void ResizeListItemRect( KRect rt );
|
|
};
|