1660 lines
39 KiB
C++
1660 lines
39 KiB
C++
#include "TMenu.h"
|
|
#include "gvalue.h"
|
|
#include "gType.h"
|
|
#include "GraphLow.h"
|
|
#include "GraphBase.h"
|
|
#include "GlobalString.h"
|
|
#include "ImageData.h"
|
|
|
|
#define Icon16_Up 1
|
|
#define Icon16_Down 2
|
|
|
|
#define MainShowFont 24
|
|
|
|
#define SubShowFont 24
|
|
|
|
#define SubShowHeight 32
|
|
|
|
#define SubTextLeft 24
|
|
|
|
static const unsigned char SavePassWord[32] = "9910232250266023\0";
|
|
|
|
/*
|
|
|
|
const char StrMainMenuName[28] = {"系统设置"};
|
|
|
|
const char StrMainMenu[8][20] = {
|
|
"设备注册",
|
|
"设备定义",
|
|
"联动公式",
|
|
"网络设置",
|
|
"工作模式",
|
|
"密码设置",
|
|
"其他设置",
|
|
"清除故障从机"
|
|
};
|
|
|
|
const char StrSubMenuItem[48][40] = {
|
|
//0
|
|
"设备追加注册",
|
|
"全部更新注册",
|
|
"板卡更新注册",
|
|
"手动增加设备",
|
|
"手动减少设备",
|
|
|
|
//5
|
|
"总线设备定义",
|
|
"手动盘定义",
|
|
"多线盘定义",
|
|
"广播/电话盘定义",
|
|
"联网控制器定义",
|
|
"自定义设备类型",
|
|
"回路注释定义",
|
|
"工程名称",
|
|
|
|
//13
|
|
"新建联动公式",
|
|
"修改联动公式",
|
|
"删除联动公式",
|
|
|
|
//16
|
|
"本机地址设置",
|
|
"通讯板设置",
|
|
|
|
//18
|
|
"调试模式设置",
|
|
"广播同步设置",
|
|
"预警功能设置",
|
|
"火警输出设置",
|
|
"接地检查设置",
|
|
"显示盘静音设置",
|
|
"控制器静音设置",
|
|
"声光报警器反馈设置",
|
|
|
|
//26
|
|
"权限I级密码设置",
|
|
"权限II级密码设置",
|
|
"权限III级密码设置",
|
|
"权限IV级密码设置-最高",
|
|
"气体密码设置",
|
|
|
|
//31
|
|
"定点调试",
|
|
"数字化设备调试",
|
|
"修改设备编码",
|
|
"重码检测",
|
|
"探测器污染补偿",
|
|
"探测器清洗修正",
|
|
"REV0",
|
|
"REV1",
|
|
"REV2",
|
|
"REV3"
|
|
|
|
//41
|
|
};
|
|
*/
|
|
|
|
|
|
|
|
const char StrMainMenuName[28] = {"系统设置"};
|
|
|
|
|
|
const char StrMainMenu[12][36]={
|
|
//"1.操作权限登录",
|
|
"1.本机",
|
|
"2.历史事件",
|
|
"3.工程",
|
|
"4.回路",
|
|
"5.手动控制盘",
|
|
"6.联动",
|
|
"7.局域网",
|
|
"8.数据传输",
|
|
"9.高级设计",
|
|
"*,--------",
|
|
"*,--------"
|
|
};
|
|
|
|
const char StrMainMenuEn[12][36]={
|
|
//"1.操作权限登录",
|
|
"1.Local Machine",
|
|
"2.Histroy Message",
|
|
"3.Project",
|
|
"4.Loop",
|
|
"5.App Keypad Boards",
|
|
"6.Linkage",
|
|
"7.LAN",
|
|
"8.Data Transfer",
|
|
"9.Data Setting",
|
|
"*,--------",
|
|
"*,--------"
|
|
};
|
|
|
|
//const xxxx MenuActionList_0[4] ={ActLoginII, ActLoginIII, ActLoginIV, Null0};
|
|
//const char StrSubMenu_0 [SubItemCount_0] [32]={
|
|
//"权限登录", 1111_ 1=allow 0=NotAllow S=BySet
|
|
// "1110_1.II级权限登录",
|
|
// "1110_2.III级权限登录",
|
|
// "1110_3.退出登录",
|
|
//};
|
|
|
|
//const xxxx MenuActionList_1[12] ={ActQueDevice, ActQueRegAddr, ActQueMaskDevice, ActQueConfig, ActQueInterLink, ActQueInterLink4Pad, ActQueNetwork, Null1};
|
|
const char StrSubMenu_0 [SubItemCount_0] [SubItemTextLen]={
|
|
//"查询信息", 1111_ 1=allow 0=NotAllow S=BySet
|
|
/*"S110_1.注册信息",
|
|
"S110_2.设备状态",
|
|
"S110_3.屏蔽部件",
|
|
"S110_4.注释信息",
|
|
"S110_5.本机配置",
|
|
"S110_6.网络配置",
|
|
"S110_7.联动编程",
|
|
"S110_8.总线盘编程",
|
|
"S110_9.多线盘配置信息",*/
|
|
|
|
"1110_1.硬件",
|
|
"1110_2.电源",
|
|
"1110_3.打印机",
|
|
"0110_4.日期时间",
|
|
"1110_5.密码",
|
|
"1110_6.屏保",
|
|
"1110_7.语言/Language"
|
|
};
|
|
|
|
const char StrSubMenu_0_En [SubItemCount_0] [SubItemTextLen]={
|
|
//"查询信息", 1111_ 1=allow 0=NotAllow S=BySet
|
|
/*"S110_1.注册信息",
|
|
"S110_2.设备状态",
|
|
"S110_3.屏蔽部件",
|
|
"S110_4.注释信息",
|
|
"S110_5.本机配置",
|
|
"S110_6.网络配置",
|
|
"S110_7.联动编程",
|
|
"S110_8.总线盘编程",
|
|
"S110_9.多线盘配置信息",*/
|
|
|
|
"1110_1.Hardware",
|
|
"1110_2.Power Suppy Info",
|
|
"1110_3.Printer",
|
|
"0110_4.Date and time",
|
|
"1110_5.Password",
|
|
"1110_6.Screen Saver",
|
|
"1110_7.Language/语言"
|
|
};
|
|
|
|
//const xxxx MenuActionList_2[12] ={ActQueMsgAll, ActQueMsgAlarm, ActQueMsgInterLink, ActQueMsgFault, ActQueMsgOperator, ActQueMsgMonitor, Null2};
|
|
const char StrSubMenu_1 [SubItemCount_1] [SubItemTextLen]={
|
|
//"查询历史记录", 1111_ 1=allow 0=NotAllow S=BySet
|
|
/*"S110_1.全部事件",
|
|
"S110_2.火警事件",
|
|
"S110_3.联动事件",
|
|
"S110_4.故障事件",
|
|
"S110_5.操作事件",
|
|
"S110_6.监管事件",
|
|
"S110_7.打印事件"*/
|
|
|
|
"1110_1.全部事件",
|
|
"1110_2.报警事件",
|
|
"1110_3.联动事件",
|
|
"1110_4.监管事件",
|
|
"1110_5.故障事件",
|
|
"1110_6.操作事件",
|
|
"1110_7.打印事件"
|
|
};
|
|
|
|
const char StrSubMenu_1_En [SubItemCount_1] [SubItemTextLen]={
|
|
//"查询历史记录", 1111_ 1=allow 0=NotAllow S=BySet
|
|
/*"S110_1.全部事件",
|
|
"S110_2.火警事件",
|
|
"S110_3.联动事件",
|
|
"S110_4.故障事件",
|
|
"S110_5.操作事件",
|
|
"S110_6.监管事件",
|
|
"S110_7.打印事件"*/
|
|
|
|
"1110_1.All",
|
|
"1110_2.Alarm",
|
|
"1110_3.Linkage",
|
|
"1110_4.Supervision",
|
|
"1110_5.Fault",
|
|
"1110_6.Operation",
|
|
"1110_7.Print"
|
|
};
|
|
|
|
//const xxxx MenuActionList_3[12] ={ActQueValue, ActQueMsgAlarm, ActQueMsgInterLink, ActQueMsgFault, ActQueMsgOperator, ActQueMsgMonitor, Null3};
|
|
const char StrSubMenu_2 [SubItemCount_2] [SubItemTextLen]={
|
|
//"通用设置", 1111_ 1=allow 0=NotAllow S=BySet
|
|
"1110_1.工程信息",
|
|
"1110_2.维保提醒",
|
|
"1110_3.运行模式",
|
|
"1110_4.系统授权",
|
|
"1110_5.设计数量",
|
|
"1110_6.按回路查询模块输出检线", //"1110_6.批量设置模块输出检线",
|
|
"1110_7.按回路查询烟感灵敏度", //"1110_7.批量设置烟感灵敏度",
|
|
"1110_8.按回路查询声光", //"1110_8.批量设置声光",
|
|
"1110_9.层显信息下载",
|
|
};
|
|
|
|
const char StrSubMenu_2_En [SubItemCount_2] [SubItemTextLen]={
|
|
//"通用设置", 1111_ 1=allow 0=NotAllow S=BySet
|
|
"1110_1.Information",
|
|
"1110_2.Maintenance",
|
|
"1110_3.Operating State",
|
|
"1110_4.System Authorized",
|
|
"1110_5.Designed Numbers",
|
|
"1110_6.Output Line Inspection",
|
|
"1110_7.Smoke Det Sensitivity",
|
|
"1110_8.Acoustooptic Parameter",
|
|
"1110_9.Floor Display KeyPad Cfg",
|
|
};
|
|
|
|
//const xxxx MenuActionList_4[12] ={ActDeviceSetup, guiQueMsgAlarm, guiQueMsgInterLink, guiQueMsgFault, guiQueMsgOperator, guiQueMsgMonitor, Null4};
|
|
const char StrSubMenu_3 [SubItemCount_3] [SubItemTextLen]={
|
|
//"系统调试", 1111_ 1=allow 0=NotAllow S=BySet
|
|
|
|
/*"0010_1.探测器模拟曲线",
|
|
"0010_2.回路设备运行状态",
|
|
"0010_3.回路设备实时数据",
|
|
"0010_4.回路设备在线配置",
|
|
"0010_5.回路设备运行电压",
|
|
"0010_6.回路设备手动启动",
|
|
"0S10_7.回路设备状态",
|
|
"0010_8.回路重号检测",
|
|
"0010_9.设备地址变更",
|
|
"0010_0.模拟运行与操作"*/
|
|
|
|
"1110_1.注册数据",
|
|
"1110_2.状态总览",
|
|
"1110_3.部件数据",
|
|
"1110_4.部件控制",
|
|
"1110_5.自动注册",
|
|
"1110_6.手动注册",
|
|
"1110_7.部件屏蔽",
|
|
"1110_8.重码检测",
|
|
"1110_9.部件分类数量",
|
|
"1110_0.注释编辑"
|
|
};
|
|
|
|
const char StrSubMenu_3_En [SubItemCount_3] [SubItemTextLen]={
|
|
//"系统调试", 1111_ 1=allow 0=NotAllow S=BySet
|
|
|
|
/*"0010_1.探测器模拟曲线",
|
|
"0010_2.回路设备运行状态",
|
|
"0010_3.回路设备实时数据",
|
|
"0010_4.回路设备在线配置",
|
|
"0010_5.回路设备运行电压",
|
|
"0010_6.回路设备手动启动",
|
|
"0S10_7.回路设备状态",
|
|
"0010_8.回路重号检测",
|
|
"0010_9.设备地址变更",
|
|
"0010_0.模拟运行与操作"*/
|
|
|
|
"1110_1.Registration Information",
|
|
"1110_2.Overview",
|
|
"1110_3.Device Information",
|
|
"1110_4.Device Control",
|
|
"1110_5.Auto Register",
|
|
"1110_6.Manual Register",
|
|
"1110_7.Device Blocking",
|
|
"1110_8.Duplicate Addr Check",
|
|
"1110_9.Device Types Count",
|
|
"1110_0.Device Annotation"
|
|
};
|
|
|
|
const char StrSubMenu_4 [SubItemCount_4] [SubItemTextLen]={
|
|
//"系统设置", 1111_ 1=allow 0=NotAllow S=BySet
|
|
"1110_1.手动控制盘信息",
|
|
"1110_2.多线盘配置",
|
|
"1110_3.总线盘配置"
|
|
};
|
|
|
|
const char StrSubMenu_4_En [SubItemCount_4] [SubItemTextLen]={
|
|
//"系统设置", 1111_ 1=allow 0=NotAllow S=BySet
|
|
"1110_1.App Keypad Boards Info",
|
|
"1110_2.Direct Keypad Boards Cfg",
|
|
"1110_3.Bus Keypad Boards Cfg"
|
|
};
|
|
|
|
const char StrSubMenu_5 [SubItemCount_5] [SubItemTextLen]={
|
|
//"系统安装", 1111_ 1=allow 0=NotAllow S=BySet
|
|
"1110_1.编程查询",
|
|
"1110_2.编程输入",
|
|
"1110_3.广播控制",
|
|
"1110_4.手/自动控制状态",
|
|
"1110_5.联动设备控制总线FECBUS",
|
|
"1110_6.分区编辑",
|
|
"1110_7.二次码编辑(按回路)",
|
|
"1110_8.二次码编辑(按分区)"
|
|
};
|
|
|
|
const char StrSubMenu_5_En [SubItemCount_5] [SubItemTextLen]={
|
|
//"系统安装", 1111_ 1=allow 0=NotAllow S=BySet
|
|
"1110_1.Linkage Expressions List",
|
|
"1110_2.Linkage Expressions Edit",
|
|
"1110_3.Broadcast Config",
|
|
"1110_4.Manual-Auto Switch",
|
|
"1110_5.FECBus Setting",
|
|
"1110_6.Zone Setting",
|
|
"1110_7.Aux ID Setting(Loop)",
|
|
"1110_8.Aux ID Setting(Zone)"
|
|
};
|
|
|
|
const char StrSubMenu_6 [SubItemCount_6] [SubItemTextLen]={
|
|
//"网络设置" 1111_ 1=allow 0=NotAllow S=BySet
|
|
"1110 1.组网信息",
|
|
"1110_2.本机模式与注册",
|
|
"1110_3.网络屏蔽",
|
|
"1110_4.消防控制室图形显示装置"
|
|
};
|
|
|
|
const char StrSubMenu_6_En [SubItemCount_6] [SubItemTextLen]={
|
|
//"网络设置" 1111_ 1=allow 0=NotAllow S=BySet
|
|
"1110 1.Network Information",
|
|
"1110_2.Local Setting",
|
|
"1110_3.Network ID Mask",
|
|
"1110_4.Graphic Display Setting"
|
|
};
|
|
|
|
const char StrSubMenu_7 [SubItemCount_7] [SubItemTextLen]={
|
|
//本机 1=allow 0=NotAllow S=BySet
|
|
"1110_1.在线调试",
|
|
"0010_2.U盘传输",
|
|
"0010_3.蓝牙连接",
|
|
"0010_4.WIFI连接",
|
|
"0010_5.传输装置",
|
|
"0010_6.固件升级",
|
|
};
|
|
|
|
const char StrSubMenu_7_En [SubItemCount_7] [SubItemTextLen]={
|
|
//本机 1=allow 0=NotAllow S=BySet
|
|
"1110_1.Online Test",
|
|
"0010_2.USB Disk Config",
|
|
"0010_3.Blue Tooth",
|
|
"0010_4.WIFI Setting",
|
|
"0010_5.Transmission Setting",
|
|
"0010_6.Firmware Upgrade",
|
|
};
|
|
|
|
const char StrSubMenu_8 [SubItemCount_8] [SubItemTextLen]={
|
|
//高级设置
|
|
"0010_1.清除注册数据",
|
|
"0010_2.清除联动编程",
|
|
"0010_3.清除注释信息",
|
|
"0010_4.恢复出厂设置"
|
|
};
|
|
|
|
const char StrSubMenu_8_En [SubItemCount_8] [SubItemTextLen]={
|
|
//高级设置
|
|
"1110_1.Clear Registered Data",
|
|
"1110_2.Clear Linkage Expressions",
|
|
"1110_3.Clear All Descriptions",
|
|
"1110_4.Restore Factory Setting"
|
|
};
|
|
|
|
const char StrSubMenu_9 [SubItemCount_9] [SubItemTextLen]={
|
|
//"出厂设置, 隐藏",
|
|
"0010_1.生产过程检验信息",
|
|
"0010_2.清除全部配置信息",
|
|
"0010_3.清除全部历史事件",
|
|
};
|
|
|
|
const unsigned char SubMenuItem_Count[12] = {
|
|
SubItemCount_0,
|
|
SubItemCount_1,
|
|
SubItemCount_2,
|
|
SubItemCount_3,
|
|
SubItemCount_4,
|
|
SubItemCount_5,
|
|
SubItemCount_6,
|
|
SubItemCount_7,
|
|
SubItemCount_8,
|
|
SubItemCount_9,
|
|
SubItemCount_0,
|
|
SubItemCount_0
|
|
};
|
|
|
|
const char *const pPermissionText[MainItemCount] ={
|
|
&StrSubMenu_0[0][0],
|
|
&StrSubMenu_1[0][0],
|
|
&StrSubMenu_2[0][0],
|
|
&StrSubMenu_3[0][0],
|
|
&StrSubMenu_4[0][0],
|
|
&StrSubMenu_5[0][0],
|
|
&StrSubMenu_6[0][0],
|
|
&StrSubMenu_7[0][0],
|
|
&StrSubMenu_8[0][0],
|
|
};
|
|
|
|
const unsigned short Main_Top[12] = {
|
|
|
|
56,
|
|
102,
|
|
148,
|
|
194,
|
|
240,
|
|
|
|
286,
|
|
332,
|
|
378,
|
|
};
|
|
|
|
const unsigned short Main_Bottom[12] = {
|
|
|
|
98,
|
|
144,
|
|
190,
|
|
236,
|
|
282,
|
|
|
|
328,
|
|
374,
|
|
420,
|
|
};
|
|
|
|
const unsigned short Sub_Top[16] = {
|
|
// 320 / 8 / = 40,
|
|
56,
|
|
92,
|
|
128,
|
|
164,
|
|
200,
|
|
|
|
236,
|
|
272,
|
|
308,
|
|
344,
|
|
380
|
|
|
|
};
|
|
|
|
const unsigned short Sub_Bottom[16] = {
|
|
// 320 / 8 / = 40,
|
|
88,
|
|
124,
|
|
160,
|
|
196,
|
|
232,
|
|
|
|
268,
|
|
304,
|
|
340,
|
|
376,
|
|
412
|
|
|
|
};
|
|
|
|
|
|
|
|
void TMenu::Init(int x1, int y1, int x2, int y2)
|
|
{
|
|
unsigned int i,j,x;
|
|
//0 level
|
|
BorderWidth = 2;
|
|
BorderColor = 0x00343242;
|
|
|
|
MainBound.Set(x1,y1,299,y2);
|
|
SubBound.Set(300,y1,x2,y2);
|
|
|
|
BevelOuter = bvRaised;
|
|
if(BevelOuter == bvRaised){
|
|
MainContent.Set(x1 +1, y1 +1, 297, y2-2);
|
|
SubContent.Set(301, y1 +1, 797, y2-2);
|
|
}else{
|
|
MainContent.Set(x1 +2, y1 +2, 297, y2-2);
|
|
SubContent.Set(301, y1 +2, 797, y2-2);
|
|
}
|
|
|
|
MainFontSize = 24;
|
|
SubFontSize = 24;
|
|
|
|
MainIndexOnTop = 0;
|
|
SelectedMainIndex = 0;
|
|
SelectedSubIndex = 0;
|
|
LastMainIndex =0xFF;
|
|
LastSubIndex =0xFF;
|
|
ActiveLevel = 0;
|
|
NeedRedraw =0;
|
|
|
|
Active = 0;
|
|
OnAction = 0;
|
|
IsHasActive2 = 0;
|
|
|
|
LoadText();
|
|
LoadPermission(0);
|
|
}
|
|
|
|
void TMenu::LoadText(void)
|
|
{
|
|
unsigned int i;
|
|
//1 level
|
|
for(i=0; i<MainItemCount; i++){
|
|
if(LanguageEnCn==0)
|
|
MainItemList[i].fName = StrMainMenu[i];
|
|
else
|
|
MainItemList[i].fName = StrMainMenuEn[i];
|
|
}
|
|
|
|
//2 level
|
|
for(i=0; i<SubItemCount_0; i++){
|
|
if(LanguageEnCn==0)
|
|
SubItemList[0][i].fName = StrSubMenu_0[i];
|
|
else
|
|
SubItemList[0][i].fName = StrSubMenu_0_En[i];
|
|
}
|
|
|
|
for(i=0; i<SubItemCount_1; i++){
|
|
if(LanguageEnCn==0)
|
|
SubItemList[1][i].fName = StrSubMenu_1[i];
|
|
else
|
|
SubItemList[1][i].fName = StrSubMenu_1_En[i];
|
|
}
|
|
|
|
|
|
for(i=0; i<SubItemCount_2; i++){
|
|
if(LanguageEnCn==0)
|
|
SubItemList[2][i].fName = StrSubMenu_2[i];
|
|
else
|
|
SubItemList[2][i].fName = StrSubMenu_2_En[i];
|
|
}
|
|
|
|
for(i=0; i<SubItemCount_3; i++){
|
|
if(LanguageEnCn==0)
|
|
SubItemList[3][i].fName = StrSubMenu_3[i];
|
|
else
|
|
SubItemList[3][i].fName = StrSubMenu_3_En[i];
|
|
}
|
|
|
|
for(i=0; i<SubItemCount_4; i++){
|
|
if(LanguageEnCn==0)
|
|
SubItemList[4][i].fName = StrSubMenu_4[i];
|
|
else
|
|
SubItemList[4][i].fName = StrSubMenu_4_En[i];
|
|
}
|
|
|
|
for(i=0; i<SubItemCount_5; i++){
|
|
if(LanguageEnCn==0)
|
|
SubItemList[5][i].fName = StrSubMenu_5[i];
|
|
else
|
|
SubItemList[5][i].fName = StrSubMenu_5_En[i];
|
|
}
|
|
|
|
for(i=0; i<SubItemCount_6; i++){
|
|
if(LanguageEnCn==0)
|
|
SubItemList[6][i].fName = StrSubMenu_6[i];
|
|
else
|
|
SubItemList[6][i].fName = StrSubMenu_6_En[i];
|
|
}
|
|
|
|
for(i=0; i<SubItemCount_7; i++){
|
|
if(LanguageEnCn==0)
|
|
SubItemList[7][i].fName = StrSubMenu_7[i];
|
|
else
|
|
SubItemList[7][i].fName = StrSubMenu_7_En[i];
|
|
}
|
|
|
|
for(i=0; i<SubItemCount_8; i++){
|
|
if(LanguageEnCn==0)
|
|
SubItemList[8][i].fName = StrSubMenu_8[i];
|
|
else
|
|
SubItemList[8][i].fName = StrSubMenu_8_En[i];
|
|
}
|
|
|
|
for(i=0; i<SubItemCount_9; i++){
|
|
if(LanguageEnCn==0)
|
|
SubItemList[9][i].fName = StrSubMenu_9[i];
|
|
else
|
|
SubItemList[9][i].fName = StrSubMenu_9[i];
|
|
}
|
|
|
|
//for(i=0; i<SubItemCount_10; i++){
|
|
// SubItemList[10][i].fName = StrSubMenu_10[i];
|
|
//}
|
|
}
|
|
|
|
|
|
void TMenu::SelfDraw(void)
|
|
{
|
|
unsigned int LeftClr, RightClr;
|
|
|
|
#define MenuLevelSelectedCLR clMaroon
|
|
#define MenuLevelCLR clWhite
|
|
|
|
#define MENU_BG_COLOR clTeal
|
|
#define MENU_ITEM_SELECTED_BG_CLR clBlue
|
|
#define MENU_ITEM_BG_CLR clTeal
|
|
|
|
#define MENU_SELECTED_TEXT_CLR clNearWhite
|
|
#define MENU_TEXT_CLR clNearBlack
|
|
|
|
if(BevelOuter == bvRaised){
|
|
VertLineRender(MainBound.Left, MainBound.Top, MainBound.Height -1, 0xFFFFFFFF);
|
|
VertLineRender(MainBound.Right -1, MainBound.Top +1, MainBound.Height -2, 0xFF808080);
|
|
VertLineRender(MainBound.Right, MainBound.Top, MainBound.Height, 0xFF404040);
|
|
|
|
HorizLineRender(MainBound.Left, MainBound.Top, MainBound.Width - 1, 0xFFFFFFFF);
|
|
HorizLineRender(MainBound.Left +1, MainBound.Bottom -1, MainBound.Width - 2, 0xFF808080);
|
|
HorizLineRender(MainBound.Left, MainBound.Bottom, MainBound.Width, 0xFF404040);
|
|
|
|
VertLineRender(SubBound.Left, SubBound.Top, SubBound.Height -1, 0xFFFFFFFF);
|
|
VertLineRender(SubBound.Right -1, SubBound.Top +1, SubBound.Height -2, 0xFF808080);
|
|
VertLineRender(SubBound.Right, SubBound.Top, SubBound.Height, 0xFF404040);
|
|
|
|
HorizLineRender(SubBound.Left, SubBound.Top, SubBound.Width - 1, 0xFFFFFFFF);
|
|
HorizLineRender(SubBound.Left +1, SubBound.Bottom -1, SubBound.Width - 2, 0xFF808080);
|
|
HorizLineRender(SubBound.Left, SubBound.Bottom, SubBound.Width, 0xFF404040);
|
|
|
|
}else{
|
|
VertLineRender(MainBound.Left, MainBound.Top, MainBound.Height-1, 0xFF808080);
|
|
HorizLineRender(MainBound.Left, MainBound.Top, MainBound.Width-1, 0xFF808080);
|
|
VertLineRender(MainBound.Left+1, MainBound.Top+1, MainBound.Height-2, 0xFF404040);
|
|
HorizLineRender(MainBound.Left+1, MainBound.Top+1, MainBound.Width-2, 0xFF404040);
|
|
VertLineRender(MainBound.Right-1, MainBound.Top+1, MainBound.Height-2, 0xFFD4D0C8);
|
|
HorizLineRender(MainBound.Left+1, MainBound.Bottom-1, MainBound.Width-2, 0xFFD4D0C8);
|
|
VertLineRender(MainBound.Right, MainBound.Top, MainBound.Height, 0xFFFFFFFF);
|
|
HorizLineRender(MainBound.Left, MainBound.Bottom, MainBound.Width, 0xFFFFFFFF);
|
|
|
|
|
|
VertLineRender(SubBound.Left, SubBound.Top, SubBound.Height-1, 0xFF808080);
|
|
HorizLineRender(SubBound.Left, SubBound.Top, SubBound.Width-1, 0xFF808080);
|
|
VertLineRender(SubBound.Left+1, SubBound.Top+1, SubBound.Height-2, 0xFF404040);
|
|
HorizLineRender(SubBound.Left+1, SubBound.Top+1, SubBound.Width-2, 0xFF404040);
|
|
VertLineRender(SubBound.Right-1, SubBound.Top+1, SubBound.Height-2, 0xFFD4D0C8);
|
|
HorizLineRender(SubBound.Left+1, SubBound.Bottom-1, SubBound.Width-2, 0xFFD4D0C8);
|
|
VertLineRender(SubBound.Right, SubBound.Top, SubBound.Height, 0xFFFFFFFF);
|
|
HorizLineRender(SubBound.Left, SubBound.Bottom, SubBound.Width, 0xFFFFFFFF);
|
|
}
|
|
/*if(ActiveLevel == 0){
|
|
LeftClr = MenuLevelSelectedCLR;
|
|
RightClr = MenuLevelCLR;
|
|
}else
|
|
if(ActiveLevel == 1){
|
|
LeftClr = MenuLevelCLR;
|
|
RightClr = MenuLevelSelectedCLR ;
|
|
}else{
|
|
ActiveLevel = 0;
|
|
SelectedMainIndex = 0;
|
|
SelectedSubIndex = 0;
|
|
LeftClr = MenuLevelSelectedCLR;
|
|
RightClr = MenuLevelCLR;
|
|
}*/
|
|
RectFillRender(MainContent.Left, MainContent.Top, MainContent.Right, MainContent.Bottom, clFrmFace);
|
|
RectFillRender(SubContent.Left, SubContent.Top, SubContent.Right, SubContent.Bottom, clFrmFace);
|
|
|
|
if(ActiveLevel == 0){
|
|
// RectFillRender(MainContent.Left, MainContent.Top, MainContent.Right, MainContent.Bottom, MENU_SELECTED_BG_COLOR);
|
|
}else{
|
|
// RectFillRender(MainContent.Left, MainContent.Top, MainContent.Right, MainContent.Bottom, MENU_BG_COLOR);
|
|
}
|
|
}
|
|
|
|
void TMenu::MainDraw(void)
|
|
{
|
|
#define MainShowCount 8
|
|
#define MainTextLeft 24
|
|
|
|
#define MainLeft 20
|
|
#define MainRight 270
|
|
#define MainWidth 251
|
|
#define MainHeight 42
|
|
#define MainConLeft 22
|
|
#define MainConRight 268
|
|
|
|
#define MainIconLeft 272
|
|
#define MainIconRight 296
|
|
|
|
#define MainFixLeft 276
|
|
#define MainFixRight 292
|
|
#define MainTFixTop 40
|
|
#define MainTFixBottom 56
|
|
#define MainBFixTop 422
|
|
#define MainBFixBottom 438
|
|
|
|
unsigned int i;
|
|
unsigned int aIdx;
|
|
if( (ActiveLevel != 0) && (ActiveLevel != 1) )ActiveLevel = 0;
|
|
if(ActiveLevel == 0){
|
|
if(IconList != nullptr){
|
|
IconList->Render(16,Icon16_Up , MainFixLeft, MainTFixTop);
|
|
IconList->Render(16,Icon16_Down, MainFixLeft, MainBFixTop);
|
|
}
|
|
}else{
|
|
RectFillRender(MainFixLeft, MainTFixTop, MainFixRight, MainTFixBottom, clFrmFace);
|
|
RectFillRender(MainFixLeft, MainBFixTop, MainFixRight, MainBFixBottom, clFrmFace);
|
|
}
|
|
aIdx = MainIndexOnTop;
|
|
for(i=0; i< MainShowCount; i++){
|
|
RectFillRender(MainIconLeft, Main_Top[i], MainIconRight, Main_Bottom[i], clFrmFace);
|
|
|
|
if(SelectedMainIndex == aIdx){
|
|
VertLineRender(MainLeft, Main_Top[i], MainHeight-1, 0xFF808080);
|
|
HorizLineRender(MainLeft, Main_Top[i], MainWidth-1, 0xFF808080);
|
|
|
|
VertLineRender(MainLeft+1, Main_Top[i]+1, MainHeight-2, 0xFF404040);
|
|
HorizLineRender(MainLeft+1, Main_Top[i]+1, MainWidth-2, 0xFF404040);
|
|
|
|
VertLineRender(MainRight-1, Main_Top[i]+1, MainHeight-2, 0xFFD4D0C8);
|
|
HorizLineRender(MainLeft+1, Main_Bottom[i]-1, MainWidth-2, 0xFFD4D0C8);
|
|
|
|
VertLineRender(MainRight, Main_Top[i], MainHeight, 0xFFFFFFFF);
|
|
HorizLineRender(MainLeft, Main_Bottom[i], MainWidth, 0xFFFFFFFF);
|
|
|
|
if(ActiveLevel == 0){
|
|
if(IconList != nullptr)IconList->Render(24, 0, MainIconLeft ,Main_Top[i]+10);
|
|
RectFillRender(MainConLeft, Main_Top[i]+2, MainConRight, Main_Bottom[i]-2, clMaroon);
|
|
}else{
|
|
if(IconList != nullptr)IconList->Render(24, 9, MainIconLeft ,Main_Top[i]+10);
|
|
RectFillRender(MainConLeft, Main_Top[i]+2, MainConRight, Main_Bottom[i]-2, clNearTeal);
|
|
}
|
|
|
|
TextRender_string24(MainConLeft+16, Main_Top[i]+12, MENU_SELECTED_TEXT_CLR, MainItemList[aIdx].fName);
|
|
|
|
}else{
|
|
RectFillRender(MainLeft, Main_Top[i], MainRight, Main_Bottom[i], MENU_BG_COLOR);
|
|
RectFillRender(MainIconLeft ,Main_Top[i]+10, MainIconRight, Main_Bottom[i], clFrmFace);
|
|
TextRender_string24(MainLeft+10, Main_Top[i]+9, MENU_TEXT_CLR, MainItemList[aIdx].fName);
|
|
}
|
|
|
|
aIdx++;
|
|
}
|
|
}
|
|
|
|
void TMenu::SubDraw(void)
|
|
{
|
|
|
|
#define SubShowCount 10
|
|
|
|
#define Sub_Sel_EN_BG_CLR clSkyBlue
|
|
#define Sub_Sel_DIS_BG_CLR clLtGray
|
|
#define Sub_EN_BG_CLR clTeal
|
|
#define Sub_DIS_BG_CLR clOlive
|
|
|
|
#define Sub_TEXT_Sel_EN_CLR clNearWhite
|
|
#define Sub_TEXT_Sel_DIS_CLR clGray
|
|
#define Sub_TEXT_EN_CLR clNearBlack
|
|
#define Sub_TEXT_DIS_CLR clGray
|
|
|
|
#define Sub_Static_CLR clGray
|
|
#define Sub_Static_Text_CLR clOlive
|
|
|
|
#define SubLeft 340
|
|
#define SubRight 780
|
|
|
|
#define SubIconLeft 308
|
|
#define SubIconRight 332
|
|
|
|
#define SubFixLeft 312
|
|
#define SubFixRight 328
|
|
#define SubTFixTop 40
|
|
#define SubTFixBottom 56
|
|
#define SubBFixTop 422
|
|
#define SubBFixBottom 438
|
|
|
|
#define SubSelRectLeft 332
|
|
#define SubSelRectRight 782
|
|
int i;
|
|
unsigned int Tidx, Mid,Sid;
|
|
unsigned int Lstart, Lend, aClr;
|
|
if( (ActiveLevel != 0) && (ActiveLevel != 1) )ActiveLevel = 0;
|
|
for(i=0; i<SubShowCount; i++){
|
|
RectRender(SubSelRectLeft, Sub_Top[i], SubSelRectLeft +6, Sub_Top[i] +6 , 2, clFrmFace);
|
|
RectRender(SubSelRectLeft, Sub_Bottom[i]-6, SubSelRectLeft +6, Sub_Bottom[i], 2, clFrmFace);
|
|
RectRender(SubSelRectRight, Sub_Top[i], SubSelRectRight +6, Sub_Top[i] +6, 2, clFrmFace);
|
|
RectRender(SubSelRectRight, Sub_Bottom[i]-6, SubSelRectRight +6, Sub_Bottom[i], 2, clFrmFace);
|
|
RectRender(SubSelRectLeft+1, Sub_Top[i]+1, SubSelRectLeft +5, Sub_Top[i] +5 , 2, clFrmFace);
|
|
RectRender(SubSelRectLeft+1, Sub_Bottom[i]-5, SubSelRectLeft +5, Sub_Bottom[i]-1, 2, clFrmFace);
|
|
RectRender(SubSelRectRight+1, Sub_Top[i]+1, SubSelRectRight +5, Sub_Top[i] +5, 2, clFrmFace);
|
|
RectRender(SubSelRectRight+1, Sub_Bottom[i]-5, SubSelRectRight +5, Sub_Bottom[i]-1, 2, clFrmFace);
|
|
|
|
RectFillRender(SubIconLeft, Sub_Top[i], SubRight, Sub_Bottom[i], clFrmFace);
|
|
}
|
|
if(ActiveLevel == 1){
|
|
if(IconList != nullptr){
|
|
IconList->Render(16,Icon16_Up , SubFixLeft, SubTFixTop);
|
|
IconList->Render(16,Icon16_Down, SubFixLeft, SubBFixTop);
|
|
}
|
|
}else{
|
|
RectFillRender(SubFixLeft, SubTFixTop, SubFixRight, SubTFixBottom, clFrmFace);
|
|
RectFillRender(SubFixLeft, SubBFixTop, SubFixRight, SubBFixBottom, clFrmFace);
|
|
}
|
|
Lstart = (SubShowCount - SubMenuItem_Count[SelectedMainIndex]) / 2;
|
|
//sp = 0;
|
|
Tidx = 0;
|
|
Lstart = 0;
|
|
for(i=Lstart; i<SubShowCount; i++){
|
|
if(Tidx < SubMenuItem_Count[SelectedMainIndex]){
|
|
if(Tidx == SelectedSubIndex){
|
|
if(ActiveLevel == 1)aClr =clMaroon; else aClr = clNearTeal;
|
|
RectRender(SubSelRectLeft, Sub_Top[i], SubSelRectLeft +6, Sub_Top[i] +6 , 2,aClr);
|
|
RectRender(SubSelRectLeft, Sub_Bottom[i]-6, SubSelRectLeft +6, Sub_Bottom[i], 2, aClr);
|
|
RectRender(SubSelRectRight, Sub_Top[i], SubSelRectRight +6, Sub_Top[i] +6, 2, aClr);
|
|
RectRender(SubSelRectRight, Sub_Bottom[i]-6, SubSelRectRight +6, Sub_Bottom[i], 2, aClr);
|
|
RectRender(SubSelRectLeft+1, Sub_Top[i]+1, SubSelRectLeft +5, Sub_Top[i] +5 , 2, aClr);
|
|
RectRender(SubSelRectLeft+1, Sub_Bottom[i]-5, SubSelRectLeft +5, Sub_Bottom[i]-1, 2, aClr);
|
|
RectRender(SubSelRectRight+1, Sub_Top[i]+1, SubSelRectRight +5, Sub_Top[i] +5, 2, aClr);
|
|
RectRender(SubSelRectRight+1, Sub_Bottom[i]-5, SubSelRectRight +5, Sub_Bottom[i]-1, 2, aClr);
|
|
|
|
if(SubItemList[SelectedMainIndex][Tidx].Enable){
|
|
if(IconList != nullptr) IconList->Render(24,dIcon24_Allow1, SubIconLeft, Sub_Top[i]+6);
|
|
RectFillRender(SubLeft, Sub_Top[i], SubRight, Sub_Bottom[i], aClr);
|
|
TextRender_string24(SubLeft+6, Sub_Top[i]+6, clWhite, &SubItemList[SelectedMainIndex][Tidx].fName[5]);
|
|
}else{
|
|
if(IconList != nullptr) IconList->Render(24,dIcon24_NotAllow1, SubIconLeft, Sub_Top[i]+6);
|
|
RectFillRender(SubLeft, Sub_Top[i], SubRight, Sub_Bottom[i], aClr);
|
|
TextRender_string24(SubLeft+6, Sub_Top[i]+6, clWhite, &SubItemList[SelectedMainIndex][Tidx].fName[5]);
|
|
}
|
|
}else{
|
|
if(SubItemList[SelectedMainIndex][Tidx].Enable){
|
|
if(IconList != nullptr) IconList->Render(24,dIcon24_Allow1, SubIconLeft, Sub_Top[i]+6);
|
|
RectFillRender(SubLeft, Sub_Top[i], SubRight, Sub_Bottom[i], clTeal);
|
|
TextRender_string24(SubLeft+6, Sub_Top[i]+6, clNearBlack, &SubItemList[SelectedMainIndex][Tidx].fName[5]);
|
|
}else{
|
|
if(IconList != nullptr) IconList->Render(24,dIcon24_NotAllow1, SubIconLeft, Sub_Top[i]+6);
|
|
RectFillRender(SubLeft, Sub_Top[i], SubRight, Sub_Bottom[i], clTeal);
|
|
TextRender_string24(SubLeft+6, Sub_Top[i]+6, clNearBlack, &SubItemList[SelectedMainIndex][Tidx].fName[5]);
|
|
}
|
|
}
|
|
Lend = Lstart + Tidx;
|
|
Tidx++;
|
|
}else{
|
|
break;
|
|
}
|
|
}
|
|
/*if(Lstart >0){
|
|
if(SelectedMainIndex > 0){
|
|
//get prv MainIndex
|
|
Mid = SelectedMainIndex - 1;
|
|
Sid = SubMenuItem_Count[Mid] -1;
|
|
for(i=Lstart-1; i>-1; i--){
|
|
if(Sid>0){
|
|
RectFillRender(SubLeft + 40, Sub_Top[i], SubRight, Sub_Bottom[i], clGray);
|
|
TextRender_string24(SubLeft + 46, Sub_Top[i]+6, clNearBlack, &SubItemList[Mid][Sid].fName[5]);
|
|
Sid--;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(Lend < SubShowCount){
|
|
if(SelectedMainIndex < (MainItemCount - 1)){
|
|
//get Next MainIndex
|
|
Mid = SelectedMainIndex + 1;
|
|
Sid = 0;
|
|
for(i=Lend+1; i<SubShowCount; i++){
|
|
if(Sid < (SubMenuItem_Count[Mid])){
|
|
RectFillRender(SubLeft + 40, Sub_Top[i], SubRight, Sub_Bottom[i], clGray);
|
|
TextRender_string24(SubLeft +46, Sub_Top[i]+6, clNearBlack, &SubItemList[Mid][Sid].fName[5]);
|
|
Sid++;
|
|
}
|
|
}
|
|
}
|
|
}*/
|
|
}
|
|
|
|
void TMenu::Check4ReDraw(void)
|
|
{
|
|
if(NeedFullRedraw){
|
|
SelfDraw();
|
|
MainDraw();
|
|
SubDraw();
|
|
NeedFullRedraw = 0;
|
|
}else
|
|
if(NeedRedraw){
|
|
MainDraw();
|
|
SubDraw();
|
|
NeedRedraw = 0;
|
|
}
|
|
}
|
|
|
|
void TMenu::FullRedraw(void)
|
|
{
|
|
SelfDraw();
|
|
MainDraw();
|
|
SubDraw();
|
|
NeedFullRedraw = 0;
|
|
if(IsBlockPermission){
|
|
PmsIntervene4Gui.ReDraw4GuiRecall();
|
|
}
|
|
}
|
|
|
|
void TMenu::Show(void)
|
|
{
|
|
SelfDraw();
|
|
MainDraw();
|
|
SubDraw();
|
|
Active = 1;
|
|
IsHasActive2 = 0;
|
|
|
|
LoadPermission(SystemPermission);
|
|
}
|
|
|
|
void TMenu::ReDraw(void)
|
|
{
|
|
MainDraw();
|
|
SubDraw();
|
|
Active = 1;
|
|
}
|
|
|
|
void TMenu::LoadPermission(unsigned int aPms)
|
|
{
|
|
unsigned int i,j, BitX;
|
|
if(aPms > 3)return;
|
|
Permisson = aPms;
|
|
if( (aPms <1) || (aPms >3) ){
|
|
Permisson = 1;
|
|
}
|
|
BitX = Permisson -1;
|
|
if(1){
|
|
for(j=0; j<MainItemCount; j++){
|
|
for(i=0; i<SubMenuItem_Count[j]; i++){
|
|
if(SubItemList[j][i].fName[BitX] == '1' ){
|
|
SubItemList[j][i].Enable = 1;
|
|
}else
|
|
if(SubItemList[j][i].fName[BitX] == 'S'){
|
|
//this is By set , read setting inf
|
|
}else{
|
|
SubItemList[j][i].Enable = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void TMenu::LoginBlock(int aPms)
|
|
{
|
|
if(aPms == 2){
|
|
//aPanel->GuiLoginIIIShow();
|
|
PmsIntervene4Gui.Show4Gui(200, 200, 400, 140, 2);
|
|
}else
|
|
if(aPms == 3){
|
|
//aPanel->GuiLoginIIIShow();
|
|
PmsIntervene4Gui.Show4Gui(200, 200, 400, 140, 3);
|
|
}
|
|
}
|
|
|
|
void TMenu::GoAction()
|
|
{
|
|
if(SelectedMainIndex == 0){
|
|
ActList_0 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_0_Call(ActList_0)){
|
|
ActiveLevel = 2;
|
|
OnAction = 1;
|
|
IsHasActive2 = 1;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 1){
|
|
ActList_1 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_1_Call(ActList_1)){
|
|
ActiveLevel = 2;
|
|
OnAction = 1;
|
|
IsHasActive2 = 1;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 2){
|
|
ActList_2 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_2_Call(ActList_2)){
|
|
ActiveLevel = 2;
|
|
OnAction = 1;
|
|
IsHasActive2 = 1;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 3){
|
|
ActList_3 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_3_Call(ActList_3)){
|
|
ActiveLevel = 2;
|
|
OnAction = 1;
|
|
IsHasActive2 = 1;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 4){
|
|
ActList_4 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_4_Call(ActList_4)){
|
|
ActiveLevel = 2;
|
|
OnAction = 1;
|
|
IsHasActive2 = 1;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 5){
|
|
ActList_5 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_5_Call(ActList_5)){
|
|
ActiveLevel = 2;
|
|
OnAction = 1;
|
|
IsHasActive2 = 1;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 6){
|
|
ActList_6 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_6_Call(ActList_6)){
|
|
ActiveLevel = 2;
|
|
OnAction = 1;
|
|
IsHasActive2 = 1;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 7){
|
|
ActList_7 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_7_Call(ActList_7)){
|
|
ActiveLevel = 2;
|
|
OnAction = 1;
|
|
IsHasActive2 = 1;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 8){
|
|
ActList_8 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_8_Call(ActList_8)){
|
|
ActiveLevel = 2;
|
|
OnAction = 1;
|
|
IsHasActive2 = 1;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 9){
|
|
ActList_9 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_9_Call(ActList_9)){
|
|
ActiveLevel = 2;
|
|
OnAction = 1;
|
|
IsHasActive2 = 1;
|
|
}
|
|
}/*else
|
|
if(SelectedMainIndex == 10){
|
|
ActList_10 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_10_Call(ActList_10)){
|
|
ActiveLevel = 2;
|
|
}
|
|
}*/
|
|
}
|
|
|
|
void TMenu::CheckPermission()
|
|
{
|
|
int NeedPms;
|
|
const char *p;
|
|
char aPmsChar[4];
|
|
unsigned int OffsetCnt;
|
|
unsigned int aVal;
|
|
|
|
aVal = SelectedSubIndex;
|
|
OffsetCnt = aVal * SubItemTextLen;
|
|
p = pPermissionText[SelectedMainIndex];
|
|
p += OffsetCnt;
|
|
aPmsChar[0] = static_cast<char>(*p++);
|
|
aPmsChar[1] = static_cast<char>(*p++);
|
|
aPmsChar[2] = static_cast<char>(*p++);
|
|
aPmsChar[3] = static_cast<char>(*p++);
|
|
|
|
if(aPmsChar[0] == '1'){
|
|
NeedPms = 1;
|
|
}else
|
|
if(aPmsChar[1] == '1'){
|
|
NeedPms = 2;
|
|
}else
|
|
if(aPmsChar[2] == '1'){
|
|
NeedPms = 3;
|
|
}else{
|
|
NeedPms = 4;
|
|
}
|
|
|
|
if(SystemPermission < NeedPms){
|
|
if(NeedPms == 2){
|
|
IsBlockPermission = 1;
|
|
PmsIntervene4Gui.Show4Gui(200, 200, 400, 140, 2);
|
|
NeedingPermission = 2;
|
|
}else
|
|
if(NeedPms == 3){
|
|
IsBlockPermission = 1;
|
|
PmsIntervene4Gui.Show4Gui(200, 200, 400, 140, 3);
|
|
NeedingPermission = 3;
|
|
}
|
|
}
|
|
}
|
|
|
|
void TMenu::CheckSystemPermissionII()
|
|
{
|
|
unsigned int Len,i, Cok, Cing;
|
|
Len = aPanel->Edit[0].Str.GetLength();
|
|
if(Len <6)return;
|
|
if(Len >12)return;
|
|
Cok = 0;
|
|
Cing = 1;
|
|
if(Len == CtlCenter.PassWordII.Len){
|
|
for(i=0; i<Len; i++){
|
|
if(aPanel->Edit[0].Str.Text[i] != CtlCenter.PassWordII.Content[i]){
|
|
Cing = 0;
|
|
}
|
|
}
|
|
if(Cing){
|
|
Cok = 1;
|
|
if( (NeedingPermission >1) && (NeedingPermission < 4) ){
|
|
SystemPermission = NeedingPermission;
|
|
}else{
|
|
SystemPermission = 2;
|
|
}
|
|
SystemPermissionTick = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
void TMenu::CheckSystemPermissionIII()
|
|
{
|
|
unsigned int Len,i, Cok, Cing;
|
|
Len = aPanel->Edit[0].Str.GetLength();
|
|
|
|
if(Len == 16){
|
|
Cok =0;
|
|
for(i=0; i<16; i++){
|
|
if(SavePassWord[i] == aPanel->Edit[0].Str.Text[i])Cok++;
|
|
}
|
|
if(Cok == 16){
|
|
SystemPermission = 3;
|
|
SystemPermissionTick = 0;
|
|
}
|
|
return;
|
|
}
|
|
|
|
if(Len <6)return;
|
|
if(Len >12)return;
|
|
Cok = 0;
|
|
Cing = 1;
|
|
if(Len == CtlCenter.PassWordIII.Len){
|
|
for(i=0; i<Len; i++){
|
|
if(aPanel->Edit[0].Str.Text[i] != CtlCenter.PassWordIII.Content[i]){
|
|
Cing = 0;
|
|
}
|
|
}
|
|
if(Cing){
|
|
Cok = 1;
|
|
if( (NeedingPermission >1) && (NeedingPermission < 4) ){
|
|
SystemPermission = NeedingPermission;
|
|
}else{
|
|
SystemPermission = 3;
|
|
}
|
|
SystemPermissionTick = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
TGuiMsgReturn TMenu::KeyIn(unsigned char aKey)
|
|
{
|
|
TGuiMsgReturn aMsg = guiMsgNone;
|
|
TGuiMsgReturn PmsRtnMsg;
|
|
unsigned char aNum, NewInx;
|
|
if(IsBlockPermission){
|
|
PmsRtnMsg = PmsIntervene4Gui.KeyIn(aKey);
|
|
if(PmsRtnMsg == guiMsgOkAndReturn){
|
|
//Enter And Run Go
|
|
IsBlockPermission = 0;
|
|
SystemPermissionTick = 0;
|
|
MainMenu.LoadPermission(SystemPermission);
|
|
GoAction();
|
|
}else
|
|
if(PmsRtnMsg == guiMsgReturn){
|
|
//Not Enter Redraw
|
|
IsBlockPermission = 0;
|
|
NeedFullRedraw = 1;
|
|
}
|
|
Check4ReDraw();
|
|
return guiMsgNone;
|
|
}
|
|
/*if(IsBlockPermission){
|
|
if(VK_RETURN == aKey){
|
|
IsBlockPermission =0;
|
|
NeedFullRedraw = 1;
|
|
}else{
|
|
if(NeedingPermission == 2){
|
|
aMsg = aPanel->GuiLoginII_KeyIn(aKey);
|
|
aPanel->Edit[0].Show();
|
|
if(aMsg == guiMsgOkAndReturn){
|
|
CheckSystemPermissionII();
|
|
CheckSystemPermissionIII();
|
|
if(SystemPermission >= 2){
|
|
SystemPermissionTick = 0;
|
|
IsBlockPermission =0;
|
|
MainMenu.LoadPermission(SystemPermission);
|
|
GoAction();
|
|
}else{
|
|
aPanel->GuiLoginPasswdErrShow();
|
|
}
|
|
}
|
|
}else
|
|
if(NeedingPermission == 3){
|
|
aMsg = aPanel->GuiLoginIII_KeyIn(aKey);
|
|
aPanel->Edit[0].Show();
|
|
if(aMsg == guiMsgOkAndReturn){
|
|
CheckSystemPermissionIII();
|
|
if(SystemPermission >= 3){
|
|
SystemPermissionTick = 0;
|
|
IsBlockPermission =0;
|
|
MainMenu.LoadPermission(SystemPermission);
|
|
GoAction();
|
|
}else{
|
|
aPanel->GuiLoginPasswdErrShow();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Check4ReDraw();
|
|
return guiMsgNone;
|
|
}*/
|
|
|
|
if(ActiveLevel == 0){
|
|
switch(aKey){
|
|
case '1':
|
|
case '2':
|
|
case '3':
|
|
case '4':
|
|
case '5':
|
|
case '6':
|
|
case '7':
|
|
case '8':
|
|
case '9':
|
|
if(aKey == '0'){
|
|
aNum = aKey - '0' + 10;
|
|
}else{
|
|
aNum = aKey - '0';
|
|
}
|
|
NewInx = aNum -1;
|
|
if(NewInx < MainItemCount){
|
|
if(SelectedMainIndex == NewInx){
|
|
SelectedSubIndex = 0;
|
|
ActiveLevel = 1;
|
|
IsHasActive2 = 0;
|
|
}else{
|
|
SelectedMainIndex = NewInx;
|
|
if(SelectedMainIndex < 8){
|
|
MainIndexOnTop = 0;
|
|
}else{
|
|
MainIndexOnTop = 1;
|
|
}
|
|
}
|
|
SelectedSubIndex = 0;
|
|
NeedRedraw = 1;
|
|
}
|
|
break;
|
|
}
|
|
}else
|
|
if(ActiveLevel == 1){
|
|
switch(aKey){
|
|
case '0':
|
|
case '1':
|
|
case '2':
|
|
case '3':
|
|
case '4':
|
|
case '5':
|
|
case '6':
|
|
case '7':
|
|
case '8':
|
|
case '9':
|
|
if(aKey == '0'){
|
|
aNum = aKey - '0' + 10;
|
|
}else{
|
|
aNum = aKey - '0';
|
|
}
|
|
NewInx = aNum -1;
|
|
if(NewInx < SubMenuItem_Count[SelectedMainIndex]){
|
|
if(SelectedSubIndex == NewInx){
|
|
CheckPermission();
|
|
if(IsBlockPermission == 0)
|
|
GoAction();
|
|
}else{
|
|
SelectedSubIndex = NewInx;
|
|
NeedRedraw = 1;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(ActiveLevel == 2){
|
|
if(SelectedMainIndex == 0){
|
|
ActList_0 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_0_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
OnAction = 0;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 1){
|
|
ActList_1 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_1_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
OnAction = 0;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 2){
|
|
ActList_2 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_2_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
OnAction = 0;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 3){
|
|
ActList_3 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_3_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
OnAction = 0;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 4){
|
|
ActList_4 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_4_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
OnAction = 0;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 5){
|
|
ActList_5 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_5_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
OnAction = 0;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 6){
|
|
ActList_6 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_6_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
OnAction = 0;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 7){
|
|
ActList_7 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_7_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
OnAction = 0;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 8){
|
|
ActList_8 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_8_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
OnAction = 0;
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 9){
|
|
ActList_9 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_9_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
OnAction = 0;
|
|
}
|
|
}/*else
|
|
if(SelectedMainIndex == 10){
|
|
ActList_10 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(guiMsgReturn == ActList_10_ToDo(aKey)){
|
|
ActiveLevel = 1;
|
|
NeedFullRedraw = 1;
|
|
}
|
|
}*/
|
|
Check4ReDraw();
|
|
return aMsg;
|
|
}
|
|
|
|
if(VK_LEFT == aKey){
|
|
if(ActiveLevel == 1){
|
|
ActiveLevel = 0;
|
|
NeedRedraw = 1;
|
|
}
|
|
}else
|
|
if(VK_RIGHT == aKey){
|
|
if(ActiveLevel == 0){
|
|
ActiveLevel = 1;
|
|
NeedRedraw = 1;
|
|
}
|
|
}else
|
|
if(VK_UP == aKey){
|
|
if(ActiveLevel == 0){
|
|
if(SelectedMainIndex > 0){
|
|
SelectedMainIndex--;
|
|
SelectedSubIndex = 0;
|
|
NeedRedraw = 1;
|
|
if(SelectedMainIndex < MainIndexOnTop){
|
|
MainIndexOnTop--;
|
|
}
|
|
}
|
|
}else
|
|
if(ActiveLevel == 1){
|
|
if(SelectedSubIndex > 0){
|
|
SelectedSubIndex--;
|
|
NeedRedraw = 1;
|
|
}else{
|
|
if(SelectedMainIndex > 0){
|
|
SelectedMainIndex--;
|
|
SelectedSubIndex = SubMenuItem_Count[SelectedMainIndex] - 1;
|
|
NeedRedraw = 1;
|
|
if(SelectedMainIndex < MainIndexOnTop){
|
|
MainIndexOnTop--;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}else
|
|
if(VK_DOWN == aKey){
|
|
if(ActiveLevel == 0){
|
|
if( SelectedMainIndex < (MainItemCount - 1) ){
|
|
SelectedMainIndex++;
|
|
SelectedSubIndex = 0;
|
|
NeedRedraw = 1;
|
|
if(SelectedMainIndex > (MainIndexOnTop + MainShowCount - 1)){
|
|
MainIndexOnTop++;
|
|
}
|
|
}
|
|
}else
|
|
if(ActiveLevel == 1){
|
|
if( SelectedSubIndex < (SubMenuItem_Count[SelectedMainIndex]-1) ){
|
|
SelectedSubIndex++;
|
|
NeedRedraw = 1;
|
|
}else{
|
|
if(SelectedMainIndex < (MainItemCount - 1)){
|
|
SelectedMainIndex++;
|
|
SelectedSubIndex = 0;
|
|
NeedRedraw = 1;
|
|
if(SelectedMainIndex > (MainIndexOnTop + MainShowCount - 1)){
|
|
MainIndexOnTop++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}else
|
|
if(VK_RETURN == aKey){
|
|
if(ActiveLevel == 0){
|
|
IsBlockPermission = 0;
|
|
Active = 0;
|
|
OnAction = 0;
|
|
aMsg = guiMsgReturn;
|
|
}else
|
|
if(ActiveLevel == 1){
|
|
IsBlockPermission = 0;
|
|
ActiveLevel = 0;
|
|
NeedRedraw = 1;
|
|
OnAction = 0;
|
|
}else
|
|
if(ActiveLevel == 2){
|
|
|
|
}else{
|
|
NeedRedraw = 1;
|
|
}
|
|
}else
|
|
if(VK_MENU == aKey){
|
|
//NeedRedraw = 1;
|
|
}else
|
|
if(VK_EXECUTE == aKey){
|
|
if(ActiveLevel == 0){
|
|
ActiveLevel = 1;
|
|
NeedRedraw = 1;
|
|
}else
|
|
if(ActiveLevel == 1){
|
|
CheckPermission();
|
|
if(IsBlockPermission == 0)
|
|
GoAction();
|
|
}
|
|
}
|
|
|
|
Check4ReDraw();
|
|
|
|
return aMsg;
|
|
}
|
|
|
|
void TMenu::Hide()
|
|
{
|
|
IsBlockPermission = 0;
|
|
Active = 0;
|
|
OnAction = 0;
|
|
if(IsHasActive2){
|
|
IsHasActive2 = 0;
|
|
ExtReqExit();
|
|
}
|
|
ActiveLevel = 0;
|
|
}
|
|
|
|
void TMenu::FullRedrawFrm(int Prm)
|
|
{
|
|
if(SelectedMainIndex == 0){
|
|
ActList_0 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_0_RedrawCallBack(Prm)){
|
|
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 1){
|
|
ActList_1 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_1_RedrawCallBack(Prm)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 2){
|
|
ActList_2 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_2_RedrawCallBack(Prm)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 3){
|
|
ActList_3 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_3_RedrawCallBack(Prm)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 4){
|
|
ActList_4 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_4_RedrawCallBack(Prm)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 5){
|
|
ActList_5 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_5_RedrawCallBack(Prm)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 6){
|
|
ActList_6 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_6_RedrawCallBack(Prm)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 7){
|
|
ActList_7 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_7_RedrawCallBack(Prm)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 8){
|
|
ActList_8 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_8_RedrawCallBack(Prm)){
|
|
|
|
}
|
|
}else
|
|
if(SelectedMainIndex == 9){
|
|
ActList_9 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_9_RedrawCallBack(Prm)){
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
void TMenu::ExtReqExit()
|
|
{
|
|
if(SelectedMainIndex == 0){
|
|
ActList_0 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_0_CallBack(ActList_0)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 1){
|
|
ActList_1 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_1_CallBack(ActList_1)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 2){
|
|
ActList_2 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_2_CallBack(ActList_2)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 3){
|
|
ActList_3 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_3_CallBack(ActList_3)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 4){
|
|
ActList_4 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_4_CallBack(ActList_4)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 5){
|
|
ActList_5 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_5_CallBack(ActList_5)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 6){
|
|
ActList_6 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_6_CallBack(ActList_6)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 7){
|
|
ActList_7 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_7_CallBack(ActList_7)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 8){
|
|
ActList_8 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_8_CallBack(ActList_8)){
|
|
|
|
}
|
|
|
|
}else
|
|
if(SelectedMainIndex == 9){
|
|
ActList_9 = static_cast<unsigned char>(SelectedSubIndex);
|
|
if(ActList_9_CallBack(ActList_9)){
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|