157 lines
6.9 KiB
C++
157 lines
6.9 KiB
C++
|
#include "MenuComponent.h"
|
||
|
#include "Menu.h"
|
||
|
#include "Menu_Item.h"
|
||
|
#include "commondef.h"
|
||
|
|
||
|
MenuComponent::MenuComponent()
|
||
|
{
|
||
|
if (!m_menu.get())
|
||
|
m_menu.reset(new Menu("Menu",DisType::Dis_Idel));
|
||
|
current_distype = DisType::Dis_Idel;
|
||
|
cur_index = 0;
|
||
|
}
|
||
|
|
||
|
MenuComponent::~MenuComponent()
|
||
|
{
|
||
|
|
||
|
if (m_menu.get())
|
||
|
m_menu.reset();
|
||
|
}
|
||
|
|
||
|
void MenuComponent::initmenu()
|
||
|
{
|
||
|
m_keytable.push_back({0,0,1,DisType::Dis_Idel}); //0
|
||
|
m_keytable.push_back({8,2,0,DisType::Dis_Set_ClearPaperPass}); //1
|
||
|
m_keytable.push_back({1,3,9,DisType::Dis_Set_PollPaperIntensity}); //2
|
||
|
#ifdef G200
|
||
|
m_keytable.push_back({2,4,13,DisType::Dis_Set_SleepMode}); //3
|
||
|
m_keytable.push_back({3,6,22,DisType::Dis_Set_TrayPosition}); //4
|
||
|
m_keytable.push_back({7,8,0,DisType::Dis_Set_Poweroff}); //5
|
||
|
m_keytable.push_back({4,7,26,DisType::Dis_Set_ScanNum_Option}); //6
|
||
|
m_keytable.push_back({6,5,33,DisType::Dis_Language}); //7
|
||
|
#else
|
||
|
m_keytable.push_back({2,6,13,DisType::Dis_Set_SleepMode}); //3
|
||
|
m_keytable.push_back({3,5,22,DisType::Dis_Set_TrayPosition}); //4
|
||
|
m_keytable.push_back({7,8,0,DisType::Dis_Set_Poweroff}); //5
|
||
|
m_keytable.push_back({3,7,26,DisType::Dis_Set_ScanNum_Option}); //6
|
||
|
m_keytable.push_back({6,5,33,DisType::Dis_Language}); //7
|
||
|
#endif
|
||
|
m_keytable.push_back({5,1,0,DisType::Dis_Set_Return}); //8
|
||
|
|
||
|
m_keytable.push_back({12,10,2,DisType::Dis_Set_PollPI_High}); //9
|
||
|
m_keytable.push_back({9,11,2,DisType::Dis_Set_PollPI_Mid}); //10
|
||
|
m_keytable.push_back({10,12,2,DisType::Dis_Set_PollPI_Low}); //11
|
||
|
m_keytable.push_back({11,9,2,DisType::Dis_Set_Item_Return}); //12
|
||
|
|
||
|
m_keytable.push_back({21,14,3,DisType::Dis_Set_SleepMode_5M}); //13
|
||
|
m_keytable.push_back({13,15,3,DisType::Dis_Set_SleepMode_10M}); //14
|
||
|
m_keytable.push_back({14,16,3,DisType::Dis_Set_SleepMode_20M}); //15
|
||
|
m_keytable.push_back({15,17,3,DisType::Dis_Set_SleepMode_30M}); //16
|
||
|
m_keytable.push_back({16,18,3,DisType::Dis_Set_SleepMode_1H}); //17
|
||
|
m_keytable.push_back({17,19,3,DisType::Dis_Set_SleepMode_2H}); //18
|
||
|
m_keytable.push_back({18,20,3,DisType::Dis_Set_SleepMode_4H}); //19
|
||
|
m_keytable.push_back({19,21,3,DisType::Dis_Set_SleepMode_NEVER}); //20
|
||
|
m_keytable.push_back({20,13,3,DisType::Dis_Set_Item_Return}); //21
|
||
|
|
||
|
m_keytable.push_back({25,23,4,DisType::Dis_Set_TrayPosition_High}); //22
|
||
|
m_keytable.push_back({22,24,4,DisType::Dis_Set_TrayPosition_Mid}); //23
|
||
|
m_keytable.push_back({23,25,4,DisType::Dis_Set_TrayPosition_Low}); //24
|
||
|
m_keytable.push_back({24,22,4,DisType::Dis_Set_Item_Return}); //25
|
||
|
|
||
|
m_keytable.push_back({29,27,6,DisType::Dis_Set_Get_Roller_ScanNum}); //26
|
||
|
m_keytable.push_back({26,28,6,DisType::Dis_Set_Get_History_ScanNum}); //27
|
||
|
m_keytable.push_back({27,29,30,DisType::Dis_Set_Clear_Roller_ScanNum}); //28
|
||
|
m_keytable.push_back({28,26,6,DisType::Dis_Set_Item_Return}); //29
|
||
|
//m_keytable.push_back({32,30,4,DisType::Dis_Set_Is_Sure});//29
|
||
|
m_keytable.push_back({32,31,28,DisType::Dis_Set_YES}); //30
|
||
|
m_keytable.push_back({30,32,28,DisType::Dis_Set_No}); //31
|
||
|
m_keytable.push_back({31,30,28,DisType::Dis_Set_Item_Return}); //32
|
||
|
|
||
|
m_keytable.push_back({36,34,0,DisType::Dis_Language_Chinese}); //33
|
||
|
m_keytable.push_back({33,35,0,DisType::Dis_Language_Chinese_Traditional}); //34
|
||
|
m_keytable.push_back({34,36,0,DisType::Dis_Language_English}); //35
|
||
|
m_keytable.push_back({35,33,0,DisType::Dis_Set_Item_Return}); //36
|
||
|
|
||
|
// if (m_menu.get())
|
||
|
// {
|
||
|
|
||
|
// unique_ptr<Menu_Item> menu_clearpass = std::make_unique<Menu_Item>("clearpass",DisType::Dis_Set_ClearPaperPass);
|
||
|
// m_menu->add_menu_item(std::move(menu_clearpass));
|
||
|
|
||
|
// unique_ptr<Menu> submenu_feedstrength = std::make_unique<Menu>("feedstrenth",DisType::Dis_Set_PollPaperIntensity);
|
||
|
// std::unique_ptr<Menu_Item> feeditemH = std::make_unique<Menu_Item>("feedhigh",DisType::Dis_Set_PollPI_High);
|
||
|
// std::unique_ptr<Menu_Item> feeditemM = std::make_unique<Menu_Item>("feedmid",DisType::Dis_Set_PollPI_Mid);
|
||
|
// std::unique_ptr<Menu_Item> feeditemL = std::make_unique<Menu_Item>("feedlow",DisType::Dis_Set_PollPI_Low);
|
||
|
// submenu_feedstrength->add_menu_item(std::move(feeditemH));
|
||
|
// submenu_feedstrength->add_menu_item(std::move(feeditemM));
|
||
|
// submenu_feedstrength->add_menu_item(std::move(feeditemL));
|
||
|
// m_menu->add_menu_item(std::move(submenu_feedstrength));
|
||
|
|
||
|
// unique_ptr<Menu> submenu_sleep = std::make_unique<Menu>("sleepset",DisType::Dis_Set_SleepMode);
|
||
|
// std::unique_ptr<Menu_Item> sleep30 = std::make_unique<Menu_Item>("30min",DisType::Dis_Set_SleepMode_30M);
|
||
|
// std::unique_ptr<Menu_Item> sleep60 = std::make_unique<Menu_Item>("60min",DisType::Dis_Set_SleepMode_1H);
|
||
|
// std::unique_ptr<Menu_Item> sleep120 = std::make_unique<Menu_Item>("120min",DisType::Dis_Set_SleepMode_2H);
|
||
|
// std::unique_ptr<Menu_Item> sleepnever = std::make_unique<Menu_Item>("never",DisType::Dis_Set_SleepMode_NEVER);
|
||
|
// submenu_sleep->add_menu_item(std::move(sleep30));
|
||
|
// submenu_sleep->add_menu_item(std::move(sleep60));
|
||
|
// submenu_sleep->add_menu_item(std::move(sleep120));
|
||
|
// submenu_sleep->add_menu_item(std::move(sleepnever));
|
||
|
// m_menu->add_menu_item(std::move(submenu_sleep));
|
||
|
|
||
|
// unique_ptr<Menu_Item> submenu_poweroff = std::make_unique<Menu_Item>("poweroff",DisType::Dis_Set_Poweroff);
|
||
|
// m_menu->add_menu_item(std::move(submenu_poweroff));
|
||
|
// }
|
||
|
}
|
||
|
|
||
|
void MenuComponent::select()
|
||
|
{
|
||
|
if (m_menu.get())
|
||
|
{
|
||
|
m_menu->select();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void MenuComponent::option(int key)
|
||
|
{
|
||
|
switch (key)
|
||
|
{
|
||
|
#ifdef G200
|
||
|
case 85: //Key_Menu
|
||
|
cur_index = m_keytable[cur_index].enter;
|
||
|
break;
|
||
|
case 86: //Key_Left
|
||
|
cur_index = m_keytable[cur_index].up;
|
||
|
break;
|
||
|
case 76: //Key_Right
|
||
|
cur_index = m_keytable[cur_index].down;
|
||
|
break;
|
||
|
#else
|
||
|
case 76: //Key_Menu
|
||
|
cur_index = m_keytable[cur_index].enter;
|
||
|
break;
|
||
|
case 77: //Key_Right
|
||
|
cur_index = m_keytable[cur_index].down;
|
||
|
break;
|
||
|
#endif
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
DisType MenuComponent::getcurtype()
|
||
|
{
|
||
|
return m_keytable[cur_index].m_type;
|
||
|
}
|
||
|
|
||
|
void MenuComponent::setcurindex(int x)
|
||
|
{
|
||
|
if(x < 0 || x >= m_keytable.size())
|
||
|
return ;
|
||
|
cur_index = x;
|
||
|
printf("\n MenuComponent setcurindex %d",x);
|
||
|
}
|
||
|
|
||
|
int MenuComponent::getcurindex()
|
||
|
{
|
||
|
return cur_index;
|
||
|
}
|