Files
2022-10-26 12:25:11 +08:00

99 lines
3.7 KiB
C++

#pragma once
//#ifdef _YMS_TREECONTROL
#include "ListboxScrollControlProduce.h"
//------------------------------------------------------------------------------
class DropdownControl : public ListboxScrollControlProduce
{
public:
DropdownControl();
virtual ~DropdownControl();
//------------------------------------------------------------------------------
//! Returns: bool
//! Qualifier: 콤보박스 모듈
//! Parameter: CCtrlStaticWZ * _text_control : 선택되었을경우 출력될 text control
//! Parameter: CCtrlButtonWZ * _button_control : 리스트 박스(_list_control)를 보여줄 버튼
//! Parameter: CCtrlListWZ * _list_control : 콤보 복록
//! Parameter: CCtrlVScrollWZ * _vscroll_control : 스크롤 컨트롤일 있으면 넣어 준다. 없으면 NULL
//------------------------------------------------------------------------------
bool Init(CControlWZ* _text_control,
CCtrlButtonWZ* _button_control,
CCtrlListWZ* _list_control,
CCtrlVScrollWZ* _vscroll_control,
CCtrlPictureWZ* _picture_control);
void Release();
void InsertItem(DWORD string_code,
void* user_data,
DWORD font_id = StrToWzID("st10"),
DWORD style = DT_VCENTER | DT_LEFT,
COLORREF back_color = RGBA(0, 0, 0, 0),
COLORREF text_color = RGBA(255, 255, 255, 255),
COLORREF select_text_color = RGBA(0, 220, 0, 255));
void InsertItem(TCHAR* msg_text,
void* user_data,
DWORD font_id = StrToWzID("st10"),
DWORD style = DT_VCENTER | DT_LEFT,
COLORREF back_color = RGBA(0, 0, 0, 0),
COLORREF text_color = RGBA(255, 255, 255, 255),
COLORREF select_text_color = RGBA(0, 220, 0, 255));
void DeleteItemAll();
//------------------------------------------------------------------------------
//! Returns: bool : true : 처리되었을때 이후 메세지 무시해도됨, false : 메세지 처리 하지 않음
//! Qualifier: dropdown 관련 컨트롤 메세지 처리
//! Parameter: SI_MESSAGE * msg
//------------------------------------------------------------------------------
bool MessageProc(SI_MESSAGE* msg, OUT bool& is_change);
void Update();
bool Select(int list_sell_index);
bool SelectByUserData(DWORD user_data);
//------------------------------------------------------------------------------
//! Returns: DWORD : InsertItem 할때 입력한 void* user_data 이다
DWORD CurrentUserData();
template<class T>
T CurrentUserData(){return static_cast<T>(CurrentUserData());}
//! 선택창 리스트 박스가 열려있는지
bool IsOpened();
void SetEnable(bool is_enable);
void SetVisible(bool is_visible);
bool IsVisible();
bool is_simple_menu() const { return simple_menu_; }
void set_simple_menu(bool val) { simple_menu_ = val; }
CControlWZ* text_control() { return text_control_; }
CCtrlButtonWZ* button_control() { return button_control_; }
CCtrlPictureWZ* picture_control() { return picture_control_; }
private:
CCtrlPictureWZ* blend_picture_control_;
public:
void SetBlendImage( CCtrlPictureWZ* _blend_picture_control );
void OnDraw();
private:
bool OnLButtonClick(SI_MESSAGE* msg, OUT bool& is_change);
bool IsMouseOver();
void CollectControlRect(CControlWZ* control_pointer,
RECT& rect_pointer,
bool& is_first_control);
CControlWZ* text_control_;
CCtrlButtonWZ* button_control_;
CCtrlPictureWZ* picture_control_; //!< 백판
//! 마우스가 나갔으면 자동으로 닫히게 한다.
bool simple_menu_;
};
//#endif //#ifdef _YMS_TREECONTROL