📄 uitestcontent.cpp
字号:
#include "UITestContent.h"
#include "UI_Field.h"
#include "UI_Table.h"
#include "UI_Scrollbar.h"
#include "UI_String.h"
enum {
ID_CSJG_CONTENT_BASE = ID_XXX_BASE + 830,
ID_TABLE = ID_CSJG_CONTENT_BASE + 1,
ID_SCROLLBAR = ID_TABLE + 1,
//there are 4 lines with only title on left, and 2 sub content not dssplayed
NUM_TABLE_ROWS = TestContent::NUM_SUBCONTENT + 4 - 2,
ID_COLUMN0_OBJECT0 = ID_SCROLLBAR + 1,
ID_COLUMN1_OBJECT0 = ID_COLUMN0_OBJECT0 + NUM_TABLE_ROWS,
COLUMN0_WIDTH = 54,
COLUMN1_WIDTH = 93,
};
const struct
{
CHAR *Title;
SHORT SubIndex;
}RowInfo[NUM_TABLE_ROWS] =
{
{"测试结果", 1},
{"交流电压", -1},
{" A-地", 3},
{" B-地", 4},
{" A-B", 5},
{"直流电压", -1},
{" A-地", 6},
{" B-地", 7},
{" A-B", 8},
{"电阻", -1},
{" A-地", 9},
{" B-地", 10},
{" A-B", 11},
{" A-电池", 15},
{" B-电池", 16},
{" B-A", 17},
{"电容", -1},
{" A-地", 12},
{" B-地", 13},
{" A-B", 14},
{"交换机\r馈电电压",18},
{"交换机\r环路电流",19},
{"拨号音\r频率(hz)",20},
{"电容平衡\r(%)", 21},
{"纵向平衡\r(%)", 22},
{"金属噪声\r(DB)", 23},
{"A-B间\r交流阻抗", 24},
{"开路距离\r(米)", 25},
{"环路距离\r(米)", 26},
};
//##ModelId=3D65EBBB0262
UITestContent::UITestContent()
:m_iTopRow(0)
{
memset(&m_Content, 0, TestContent::CONTENT_LEN);
}
void UITestContent::SetContent(TestContent *pContent)
{
m_Content = *pContent;
}
//##ModelId=3D6D64050233
void UITestContent::Show()
{
TableUpdateTable(ID_TABLE, m_iTopRow);
ScrollbarDrawScrollbar(ID_SCROLLBAR);
}
//##ModelId=3D65E0D902E8
BOOLEAN UITestContent::HandleEvent(EvtType* pEvent)
{
switch (pEvent->eventType)
{
case EVT_SCROLLBAR_REPEAT:
ScrollbarDrawScrollbar (ID_SCROLLBAR);
return TRUE;
case EVT_SCROLLBAR_SELECT:
m_iTopRow = (USHORT)pEvent->para2;//current value of the scrollbar
TableUpdateTable(ID_TABLE, m_iTopRow);
return TRUE;
default:
return FALSE;
break;
}
return FALSE;
}
//##ModelId=3D65E0CC0325
Err UITestContent::Initialize()
{
//create table
UI_TableInit(ID_TABLE,
2, SECTIONUP_HEIGHT+3,//X,Y
160-SECTIONUP_HEIGHT-SECTIONDOWN_HEIGHT-15-5-3-3, COLUMN0_WIDTH+COLUMN1_WIDTH+1,//h,w
2, NUM_TABLE_ROWS,//columns, rows
PDAXWT_FORM);
TableSetColumnWidth(ID_TABLE, 0, COLUMN0_WIDTH);
TableSetColumnWidth(ID_TABLE, 1, COLUMN1_WIDTH);
TableSetAttributes(ID_TABLE, TRUE, FALSE, TRUE, TRUE, TRUE);
//create srcollbar
UI_ScrollBarInit(ID_SCROLLBAR,
151, SECTIONUP_HEIGHT+3,//x,y
160-SECTIONUP_HEIGHT-SECTIONDOWN_HEIGHT-15-5-3-3,//height
PDAXWT_FORM);
ScrollbarSetScrollbar(ID_SCROLLBAR,
0,//value
NUM_TABLE_ROWS-2,0,//max, min value
2, NUM_TABLE_ROWS);//page_size, total_num_lines
ScrollbarSetScrollbarDrawPagesize(ID_SCROLLBAR, 2);
ScrollbarSetScrollbarVisible(ID_SCROLLBAR, TRUE);
CHAR ContentText[TestContent::CONTENT_LEN];
WORD FieldNumLines;
for (SHORT row = 0; row < NUM_TABLE_ROWS; row++)
{
//the left column
ObjectBounds FieldBounds1 = {0, 0, COLUMN0_WIDTH, 13};
UI_FieldInit(ID_COLUMN0_OBJECT0 + row,
FieldBounds1.xcoord, FieldBounds1.ycoord,//x,y
FieldBounds1.height,FieldBounds1.width,//ObjHeight, ObjWidth,//height, width
strlen(RowInfo[row].Title),//char num
(BYTE*)RowInfo[row].Title,//text
PDAXWT_FORM);
//recalculate field height
FieldGetTotalNumOfLines(ID_COLUMN0_OBJECT0 + row, &FieldNumLines);
FieldBounds1.height = (SHORT)(13 * FieldNumLines);
FieldSetBounds(ID_COLUMN0_OBJECT0 + row, FieldBounds1);
UI_FieldSetNoLine(ID_COLUMN0_OBJECT0 + row);
UI_FieldSet(ID_COLUMN0_OBJECT0 + row, FALSE, FALSE, TRUE, FALSE);
TableSetItemType(ID_TABLE, row, 0, TABLE_UI_OBJECT);
UI_TableSetItemId(ID_TABLE, row, 0, ID_COLUMN0_OBJECT0 + row);
//the right column
ObjectBounds FieldBounds2 = {0, 0, COLUMN1_WIDTH, 13};
if (RowInfo[row].SubIndex != -1)// -1 means empty cell
{
//get the text first
m_Content.GetSubContent(RowInfo[row].SubIndex, (CHAR*)ContentText);
UI_FieldInit(ID_COLUMN1_OBJECT0 + row,
FieldBounds2.xcoord, FieldBounds2.ycoord,//x,y
FieldBounds2.height,FieldBounds2.width,//ObjHeight, ObjWidth,//height, width
strlen(ContentText),//char num
(BYTE*)ContentText,//text
PDAXWT_FORM);
//recalculate field height
FieldGetTotalNumOfLines(ID_COLUMN1_OBJECT0 + row, &FieldNumLines);
FieldBounds2.height = (SHORT)(13 * FieldNumLines);
FieldSetBounds(ID_COLUMN1_OBJECT0 + row, FieldBounds2);
UI_FieldSet(ID_COLUMN1_OBJECT0 + row, FALSE, FALSE, TRUE, FALSE);
TableSetItemType(ID_TABLE, row, 1, TABLE_UI_OBJECT);
UI_TableSetItemId(ID_TABLE, row, 1, ID_COLUMN1_OBJECT0 + row);
}
//set row height
TableSetRowHeight(ID_TABLE, row,
(FieldBounds1.height > FieldBounds2.height) ? FieldBounds1.height+1 : FieldBounds2.height+1);
}
return SUC;
}
//##ModelId=3D65EBD00294
Err UITestContent::DestroyWindow()
{
for (SHORT row = 0; row < NUM_TABLE_ROWS; row++)
{
//FieldEraseField(ID_COLUMN0_OBJECT0 + row);
UI_FormDeleteObject(ID_COLUMN0_OBJECT0 + row, PDAXWT_FORM);
if (RowInfo[row].SubIndex != -1)
{
//FieldEraseField(ID_COLUMN1_OBJECT0 + row);
UI_FormDeleteObject(ID_COLUMN1_OBJECT0 + row, PDAXWT_FORM);
}
}
UI_FormDeleteObject(ID_TABLE, PDAXWT_FORM);
//ScrollbarEraseScrollbar(ID_SCROLLBAR);
UI_FormDeleteObject(ID_SCROLLBAR, PDAXWT_FORM);
return SUC;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -