ダイアログイベント処理/リストボックスに情報を表示する方法
説明
前回作成したパレットのイベントを処理する方法や、リストボックスに情報を表示する方法を紹介します。
パネルが表示されたときに要素情報を取得する
class SamplePalette 
	: public DG::Palette
	, public DG::PanelObserver
	, public DG::ListBoxObserver
{
public:
    void GetElementList();
...
};
void SamplePalette::GetElementList()
{
	listBox.DeleteItem(DG::ListBox::AllItems);
	GSErrCode err = NoError;
	GS::Array<API_Guid> elemGuids;
	err = ACAPI_Element_GetElemList(API_ZombieElemID, &elemGuids);
	if (err != NoError)
		return;
	for (API_Guid guid : elemGuids)
	{
		API_Element elem = {};
		elem.header.guid = guid;
		err = ACAPI_Element_Get(&elem);
		if (err != NoError)
			continue;
		listBox.AppendItem();
		GS::UniString text = ElemID_To_Name(elem.header.typeID);
		listBox.SetTabItemText(DG::SingleSelListBox::BottomItem, 1, text);
	}
}
void SamplePalette::ShowPalette()
{
	DG::Palette::Show();
	DG::Palette::BringToFront();
	GetElementList();
}
パネルを閉じるときのイベントを取得する
DG::PanelObserverの関数をoverride
- DG::PanelObserverの定義へいく
 
- PanelCloseRequested関数をコピー
 
class SamplePalette 
	: public DG::Palette
	, public DG::PanelObserver
	, public DG::ListBoxObserver
{
public:
	virtual	void PanelCloseRequested (const DG::PanelCloseRequestEvent& ev, bool* accepted) override;
...
};
PanelCloseRequestedイベント処理からパレットを非表示にする
void SamplePalette::PanelCloseRequested (const DG::PanelCloseRequestEvent& ev, bool* accepted)
{
	UNUSED_VARIABLE(ev);
	HidePalette();
	*accepted = true;
}
問題がなければリストボックスに要素情報が追加されています。
続きをみる
 
        
     
    
ダイアログイベント処理/リストボックスに情報を表示する方法
説明
前回作成したパレットのイベントを処理する方法や、リストボックスに情報を表示する方法を紹介します。
パネルが表示されたときに要素情報を取得する
パネルを閉じるときのイベントを取得する
DG::PanelObserverの関数をoverride
PanelCloseRequestedイベント処理からパレットを非表示にする
問題がなければリストボックスに要素情報が追加されています。
続きをみる