📄 pgvlan.c
字号:
/*
* Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
* All rights reserved.
*
* This software is copyrighted by and is the sole property of
* VIA Networking Technologies, Inc. This software may only be used
* in accordance with the corresponding license agreement. Any unauthorized
* use, duplication, transmission, distribution, or disclosure of this
* software is expressly forbidden.
*
* This software is provided by VIA Networking Technologies, Inc. "as is"
* and any express or implied warranties, including, but not limited to, the
* implied warranties of merchantability and fitness for a particular purpose
* are disclaimed. In no event shall VIA Networking Technologies, Inc.
* be liable for any direct, indirect, incidental, special, exemplary, or
* consequential damages.
*
*
* File: vlandef.c
*
* Purpose: VLAN module UI definitions
*
* Author: Jenda Jao
*
* Date: Jan 08, 2002
*
* Functions:
*
* Revision History:
*
*/
#include "engine.h"
#include "eng_act.h"
#include "allpages.h"
#include "pgvlan.h"
#include "pigencfg.h"
#include "cfgstr.h"
#include "gen_act.h"
#include "pimsg.h"
#include "str.h"
#include "ttyio.h"
#include "eng_io.h"
#include "piportmp.h"
////
//// vlan menu page
////
DIRECT_MEMTYPE_CODE SFixLabel aSFixLabelVlan[] = {
{{2,31}, g_strVlanCfg, 0},
{{3,31}, "=", 18},
{{24,2}, g_strHelpMsg, 0}
};
DIRECT_MEMTYPE_CODE SItemPageSel aSIPageSelVlan[] = {
{g_strVlanCfg, PAGE_VLAN_MODE_DIS},
{g_strAdvVlanCfg, PAGE_VLAN_8021Q_INGR},
{g_strRtnToMain, PAGE_MAIN_MENU}
};
DIRECT_MEMTYPE_CODE SItem aSItemVlan[] = {
{{5,26}, aSIPageSelVlan, "", ITEM_MENU_PAGESEL, REPEAT_TYPE_NONE, LINK_TYPE_EDITPAGE},
{{5+2,26}, aSIPageSelVlan+1, "", ITEM_MENU_PAGESEL, REPEAT_TYPE_NONE, LINK_TYPE_EDITPAGE},
{{5+4,26}, aSIPageSelVlan+2, "", ITEM_MENU_PAGESEL, REPEAT_TYPE_NONE, LINK_TYPE_EDITPAGE},
};
DIRECT_MEMTYPE_CODE SPage g_SPageVlanMenu = {
aSFixLabelVlan, 3,
NULL, 0,
aSItemVlan, 3,
};
////
//// vlan mode & vlan group list
////
// assign fix label
DIRECT_MEMTYPE_CODE SFixLabel aSFixLabelVlanCfg[] = {
{{2,31}, g_strVlanCfg, 0},
{{3,31}, "=", 18},
{{5,26}, "VLAN Mode :", 0},
{{24,2}, g_strHelpMsg, 0},
{{7,26}, "VLAN Group List :", 0},
{{8,26}, "-", 28},
};
// assign var item
DIRECT_MEMTYPE_CODE SItemListbox SIListboxVlanMode = {
&g_UCfgBuf.SPageCfg_Vlan.byVlanMode,
0, 7, 0,
g_aszVlanModeCfg, 3
};
DIRECT_MEMTYPE_CODE SItemNum SIDecVlanGrpID = {
&g_UCfgBuf.SPageCfg_Vlan.awValidGrpIdList[0],
2, 4, 2
};
// all items
DIRECT_MEMTYPE_CODE SItem aSItemVlanGrpList[] = {
{{5,38}, &SIListboxVlanMode, g_strChgModeMsg, ITEM_LISTBOX, REPEAT_TYPE_NONE, LINK_TYPE_LISTBOX},
{{9,26}, &SIDecVlanGrpID, g_strEditGrpMsg, ITEM_DECNUM, REPEAT_TYPE_RECT_SINGLE, LINK_TYPE_EDITPAGE, ROW_NUM_IN_3_FIELD, 12}
};
// action
DIRECT_MEMTYPE_CODE SActItem aSActionVlanMode[] = {
{{22, 12}, g_strActionQuit, PAACT_bQuit},
{{22, 22}, g_strActionEdit, PAVLAN_bEditVlanMode},
};
DIRECT_MEMTYPE_CODE SActItem aSActionVlanGrpList_P[] = {
{{22, 12}, g_strActionQuit, PAACT_bQuit},
{{22, 22}, g_strActionEdit, PAVLAN_bEditVlanMode},
{{22, 32}, g_strActionAdd, PAVLAN_bAddVlanMode},
{{22, 42}, g_strActionDel, PAVLAN_bDelVlanMode},
};
// assign page
DIRECT_MEMTYPE_CODE SPage g_SPageVlanMode = {
aSFixLabelVlanCfg, 4,
NULL, 0,
aSItemVlanGrpList, 1,
aSActionVlanMode, 2,
PAVLAN_bLoadVlanMode
};
DIRECT_MEMTYPE_CODE SPage g_SPageVlanGrpList_P = {
aSFixLabelVlanCfg, 6,
NULL, 0,
aSItemVlanGrpList, 2,
aSActionVlanGrpList_P, 4,
PAVLAN_bLoadVlanMode
};
DIRECT_MEMTYPE_CODE SPage g_SPageVlanGrpList_Q = {
aSFixLabelVlanCfg, 6,
NULL, 0,
aSItemVlanGrpList, 2,
aSActionVlanGrpList_P, 4,
PAVLAN_bLoadVlanMode
};
////
//// edit a vlan group
////
// assign fix label
DIRECT_MEMTYPE_CODE char strTitleAdd[] = "Add";
DIRECT_MEMTYPE_CODE char strTitleEdit[] = "Edit";
DIRECT_MEMTYPE_CODE char strTitleVlanP[] = "a PortBased VLAN Group";
DIRECT_MEMTYPE_CODE char strTitleVlanQ[] = "a 802.1Q VLAN Group";
DIRECT_MEMTYPE_CODE char strGroupID[] = "Group ID : [ ]";
DIRECT_MEMTYPE_CODE char strVlanID[] = "VLAN ID : [ ]";
DIRECT_MEMTYPE_CODE char strVlanIDRange[] = "(1~ )";
DIRECT_MEMTYPE_CODE char strGroupMbr[] = "VLAN Group Member :";
DIRECT_MEMTYPE_CODE SFixLabel aSFixLabelVlanGrpAdd_P[] = {
{{2,27}, strTitleAdd, 0},
{{2,31}, strTitleVlanP, 0},
{{3,27}, "=", 26},
{{7,13}, strGroupID, 0},
{{7,31}, strVlanIDRange, 0},
{{9,13}, strGroupMbr, 0},
{{10,13}, "-", 53},
{{24,2}, g_strHelpMsg, 0}
};
DIRECT_MEMTYPE_CODE SFixLabel aSFixLabelVlanGrpAdd_Q[] = {
{{2,29}, strTitleAdd, 0},
{{2,33}, strTitleVlanQ, 0},
{{3,29}, "=", 23},
{{7,13}, strVlanID, 0},
{{7,31}, strVlanIDRange, 0},
{{9,13}, strGroupMbr, 0},
{{10,13}, "-", 55},
{{24,2}, g_strHelpMsg, 0}
};
DIRECT_MEMTYPE_CODE SFixLabel aSFixLabelVlanGrpEdit_P[] = {
{{2,27}, strTitleEdit, 0},
{{2,32}, strTitleVlanP, 0},
{{3,27}, "=", 27},
{{7,13}, strGroupID, 0},
{{9,13}, strGroupMbr, 0},
{{10,13}, "-", 53},
{{24,2}, g_strHelpMsg, 0}
};
DIRECT_MEMTYPE_CODE SFixLabel aSFixLabelVlanGrpEdit_Q[] = {
{{2,28}, strTitleEdit, 0},
{{2,33}, strTitleVlanQ, 0},
{{3,28}, "=", 24},
{{7,13}, strVlanID, 0},
{{9,13}, strGroupMbr, 0},
{{10,13}, "-", 55},
{{24,2}, g_strHelpMsg, 0}
};
// assign var label
SItemNum DIRECT_MEMTYPE_CODE SIDecNumVID = {
&g_UCfgBuf.SPageCfg_Vlan.SCurGrp.wVid,
2, 4, 0
};
SItemNum DIRECT_MEMTYPE_CODE SIDecNumMaxVID = {
&g_UCfgBuf.SPageCfg_Vlan.wMaxVid,
2, 4, 0
};
DIRECT_MEMTYPE_CODE SVarLabel aSVarLabelVlanGrp[] = {
{{ 7,25}, &SIDecNumVID, "", ITEM_DECNUM, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
{{11,13}, &g_SIListboxLogPortName, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_SINGLE, LINK_TYPE_NONE, ROW_NUM_IN_3_FIELD, 20},
{{ 7,34}, &SIDecNumMaxVID, "", ITEM_DECNUM, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
};
// assign var item
DIRECT_MEMTYPE_CODE SItemListbox SIListboxVlanGrpMember_P = {
((PBYTE)(&g_UCfgBuf.SPageCfg_Vlan.SCurGrp.wVid))+2,
0, 1, 2,
g_aszMbrNotCfg, 2
};
DIRECT_MEMTYPE_CODE SItem aSItemVlanGrp_P[] = {
{{ 7,25}, &SIDecNumVID, "", ITEM_DECNUM, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
{{11,20}, &SIListboxVlanGrpMember_P, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_SINGLE, LINK_TYPE_NONE, ROW_NUM_IN_3_FIELD, 20}
};
DIRECT_MEMTYPE_CODE SItemListbox SIListboxVlanGrpMember_Q = {
((PBYTE)(&g_UCfgBuf.SPageCfg_Vlan.SCurGrp.wVid))+2,
0, 1, 2,
g_aszVlanMbrCfg, 3
};
DIRECT_MEMTYPE_CODE SItem aSItemVlanGrp_Q[] = {
{{ 7,25}, &SIDecNumVID, "", ITEM_DECNUM, REPEAT_TYPE_NONE, LINK_TYPE_NONE},
{{11,20}, &SIListboxVlanGrpMember_Q, "", ITEM_LISTBOX, REPEAT_TYPE_RECT_SINGLE, LINK_TYPE_NONE, ROW_NUM_IN_3_FIELD, 20}
};
// action
DIRECT_MEMTYPE_CODE SActItem aSActionVlanGrpEdit[] = {
{{22, 12}, g_strActionQuit, PAACT_bQuit},
{{22, 22}, g_strActionEdit, PAACT_bEdit},
{{22, 32}, g_strActionSave, PAVLAN_bSaveVlanGrpEdit},
};
// assign page
DIRECT_MEMTYPE_CODE SPage g_SPageVlanGrpEdit_P = {
aSFixLabelVlanGrpEdit_P, 7,
aSVarLabelVlanGrp, 2,
aSItemVlanGrp_P+1, 1,
aSActionVlanGrpEdit, 3,
PAVLAN_bLoadVlanGrpEdit
};
DIRECT_MEMTYPE_CODE SPage g_SPageVlanGrpEdit_Q = {
aSFixLabelVlanGrpEdit_Q, 7,
aSVarLabelVlanGrp, 2,
aSItemVlanGrp_Q+1, 1,
aSActionVlanGrpEdit, 3,
PAVLAN_bLoadVlanGrpEdit
};
//// add a vlan group
DIRECT_MEMTYPE_CODE SActItem aSActionVlanGrpAdd[] = {
{{22, 12}, g_strActionQuit, PAACT_bQuit},
{{22, 22}, g_strActionEdit, PAACT_bEdit},
{{22, 32}, g_strActionSave, PAVLAN_bSaveVlanGrpAdd},
};
DIRECT_MEMTYPE_CODE SPage g_SPageVlanGrpAdd_P = {
aSFixLabelVlanGrpAdd_P, 8,
aSVarLabelVlanGrp+1, 2,
aSItemVlanGrp_P, 2,
aSActionVlanGrpAdd, 3,
PAVLAN_bLoadVlanGrpAdd
};
DIRECT_MEMTYPE_CODE SPage g_SPageVlanGrpAdd_Q = {
aSFixLabelVlanGrpAdd_Q, 8,
aSVarLabelVlanGrp+1, 2,
aSItemVlanGrp_Q, 2,
aSActionVlanGrpAdd, 3,
PAVLAN_bLoadVlanGrpAdd
};
////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -