option menu นั้น เป็นส่วนของ Menu ที่ขึ้นตรงกลางล่างของหน้าจอครับ หลักการทำงานคล้ายๆกับ Softkey และปุ่ม Button ทั่วไปครับ โดยในที่นี้ผมไม่พูดถึงเรื่องการตั้งค่าต่างๆเมื่อมี action นะครับ
จากตัวอย่างข้างล่าง จะเป็นการใส่ sub menu ให้ และจะเป็นการกำหนด Listener ให้กับ OptionMenu
__pOptionMenu =
new
OptionMenu();
__pOptionMenu->Construct();
__pOptionMenu->AddItem("Save
Image",
ON_MENU_SAVE);
__pOptionMenu->AddItem("Load
Image",
ON_MENU_LOAD);
this->SetOptionkeyActionId(ON_MENU);
this->AddOptionkeyActionListener(*this);
__pOptionMenu->AddActionEventListener(*this);
ส่วนของ code ข่างล่างจะเป็นในส่วนของ Event ซึ่งจะใช้ Event เดียวกับปุ่ม Button คือ OnActionPerformed
void
AppOptionMenuForm::OnActionPerformed(const
Osp::Ui::Control&
source,
int
actionId)
{
switch(actionId)
{
case
ON_MENU_SAVE:
{
AppLog("Save
clicked! \n");
}
break;
case
ON_MENU_LOAD:
{
AppLog("Load
clicked! \n");
}
break;
case
ON_MENU:
{
ShowOptionMenu();
AppLog("menu
clicked! \n");
}
break;
default:
{
AppLog("Error
clicked! \n");
}
break;
}
}
void
AppOptionMenuForm::ShowOptionMenu(void)
{
__pOptionMenu->SetShowState(true);
__pOptionMenu->Show();
}
void
AppOptionMenuForm::HideOptionMenu(void)
{
__pOptionMenu->SetShowState(false);
Draw();
Show();
}
ผลที่ได้ออกมาจาก code ตัวอย่างครับ
