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

📄 uiassigncontent.cpp

📁 嵌入式系统PDA的流程
💻 CPP
字号:
#include "UIAssignContent.h"

#include "UI_Field.h"
#include "UI_Table.h"
#include "UI_Scrollbar.h"
#include "UI_String.h"

enum {
	ID_PGD_CONTENT_BASE	= ID_XXX_BASE + 750,

	ID_TABLE			= ID_PGD_CONTENT_BASE + 1,
	ID_SCROLLBAR		= ID_TABLE + 1,

	NUM_TABLE_ROWS		= AssignContent::NUM_SUBCONTENT,

	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;
}RowInfo[NUM_TABLE_ROWS] =
{
	{"故障号码"},
	{"流水号"},
	{"用户姓名"},
	{"用户地址"},
	{"申告时间"},
	{"受理故障"},
	{"交换机\r设备号 "},
	{"横列号"},
	{"测量故障\r时间"},
	{"测量故障"},
	{"中继载波"},
	{"联系电话"},
	{"地址"},
	{"主叫"},
	{"主干"},
	{"2交"},
	{"配线"},
	{"分线"},
	{"备注"},
};
//##ModelId=3D65EBBB0262
UIAssignContent::UIAssignContent()
:m_iTopRow(0)
{
	memset(&m_Content, 0, AssignContent::CONTENT_LEN);
}

void UIAssignContent::SetContent(AssignContent *pContent)
{
	m_Content = *pContent;
}

//##ModelId=3D6D64050233
void UIAssignContent::Show()
{
	TableUpdateTable(ID_TABLE, m_iTopRow);
	ScrollbarDrawScrollbar(ID_SCROLLBAR);
}

//##ModelId=3D65E0D902E8
BOOLEAN UIAssignContent::HandleEvent(EvtType* pEvent)
{
	switch (pEvent->eventType)
	{
	case EVT_SCROLLBAR_REPEAT:
		ScrollbarDrawScrollbar (ID_SCROLLBAR);
		return TRUE;
	case EVT_SCROLLBAR_SELECT:
		m_iTopRow = (USHORT)pEvent->para2;
		TableUpdateTable(ID_TABLE, m_iTopRow);
		return TRUE;
	default:
		return FALSE;
		break;
	}
	return FALSE;
}

//##ModelId=3D65E0CC0325
Err UIAssignContent::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, 19,//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[AssignContent::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
		//get the text first
		m_Content.GetSubContent(row, (CHAR*)ContentText);

		ObjectBounds FieldBounds2 = {0, 0, COLUMN1_WIDTH, 13};
		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 UIAssignContent::DestroyWindow()
{
	BYTE bType;
	void *pobj;
	SHORT row;
	for (row = 0; row < NUM_TABLE_ROWS; row++)
	{
		UI_FormDeleteObject(ID_COLUMN0_OBJECT0 + row, PDAXWT_FORM);
	}
	for (row = 0; row < NUM_TABLE_ROWS; row++)
	{
		UI_FormDeleteObject(ID_COLUMN1_OBJECT0 + row, PDAXWT_FORM);
	}
	UI_FormDeleteObject(ID_TABLE, PDAXWT_FORM);
	UI_FormDeleteObject(ID_SCROLLBAR, PDAXWT_FORM);
	return SUC;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -