⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uitestcontent.cpp

📁 嵌入式系统PDA的流程
💻 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 + -