ダイアログイベント処理/リストボックスに情報を表示する方法
説明
前回作成したパレットのイベントを処理する方法や、リストボックスに情報を表示する方法を紹介します。
パネルが表示されたときに要素情報を取得する
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イベント処理からパレットを非表示にする
問題がなければリストボックスに要素情報が追加されています。
続きをみる