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

📄 uiworkreplist.cpp

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

#include "UI_Button.h"
#include "UI_String.h"
#include "UI_Scrollbar.h"
#include "UI_Form.h"

#include "UIWorkRepContainer.h"

#define		WORKREPLIST_NUM				5//必须要和button数保持一致

#define		ID_WORKREPLIST_BASE			ID_XXX_BASE+60
#define		ID_WORKREPLIST_BJSJ			ID_WORKREPLIST_BASE	//编辑时间
#define		ID_WORKREPLIST_BUTTON1		(ID_WORKREPLIST_BASE+1)	//Button List
#define		ID_WORKREPLIST_BUTTON2		(ID_WORKREPLIST_BASE+2)
#define		ID_WORKREPLIST_BUTTON3		(ID_WORKREPLIST_BASE+3)
#define		ID_WORKREPLIST_BUTTON4		(ID_WORKREPLIST_BASE+4)
#define		ID_WORKREPLIST_BUTTON5		(ID_WORKREPLIST_BASE+5)
#define		ID_WORKREPLIST_SCROLLBAR	ID_WORKREPLIST_BASE+10	//Scrollbar
#define		ID_WORKREPLIST_RETURN		ID_WORKREPLIST_BASE+11	//Return Button

UIWorkRepList::UIWorkRepList (BOOLEAN isDraft)
:m_bIsDraft (isDraft),m_IndexTop (0)
{
}

//##ModelId=3D636567036F
BOOLEAN UIWorkRepList::HandleEvent(EvtType* event)
{
	switch (event->eventType)
	{
		
	case EVT_CONTROL_SELECT:
		switch(event->eventID)
		{
		case ID_MAIN_RETURN:
			OnReturnClick();
			return TRUE;
			break;
		case ID_WORKREPLIST_BUTTON1:
		case ID_WORKREPLIST_BUTTON2:
		case ID_WORKREPLIST_BUTTON3:
		case ID_WORKREPLIST_BUTTON4:
		case ID_WORKREPLIST_BUTTON5:
			OnListItemClick (event->eventID-ID_WORKREPLIST_BUTTON1);
			return TRUE;
			break;
		default: 
			return FALSE;
		}
		return FALSE;
		break;
	case EVT_SCROLLBAR_REPEAT:
		ScrollbarDrawScrollbar (ID_WORKREPLIST_SCROLLBAR);
		return TRUE;
		break;
	case EVT_SCROLLBAR_SELECT:
		m_IndexTop = (SHORT)event->para2;//current scrollbar value
		OnScrollbarClick();
		return TRUE;
		break;
	default: return FALSE;
	}
	return FALSE;
}

//##ModelId=3D625BFB027D
Err UIWorkRepList::Initialize()
{
	Err result = ERR_UNKOWN;
	ObjectID form_id = PDAXWT_FORM;
	//BYTE temp[10];
	SHORT num = 0;
	SHORT i = 0;
	SHORT j = 0;
	BOOLEAN isDraft;
	DBWorkRep DBS(m_bIsDraft);

	DBS.OpenTable(EMDB_RDONLY);

	if (m_bIsDraft)
	{
		m_Count = DBS.GetDraftRecCnt ();
	}
	else
	{
		m_Count = DBS.GetSendRecCnt ();
	}

	for (i=0,j=0; i<DBS.GetRecCnt(); ++i)
	{
		DBS.GetIsDraftFlg(i, &isDraft);
		if (m_bIsDraft == isDraft)
		{
			m_iDBListIndex[j] = i;
			DBS.GetEditTime (i, m_strEditTime[j]);
			++j;
		}
	}
	DBS.CloseTable();

	//create scrollbar
	if (m_IndexTop + WORKREPLIST_NUM > m_Count)
	{
		if (WORKREPLIST_NUM >= m_Count)
		{
			m_IndexTop = 0;
		}
		else
		{
			m_IndexTop = m_Count - WORKREPLIST_NUM;
		}
	}

	if (m_Count > WORKREPLIST_NUM)
	{
		UI_ScrollBarInit(ID_WORKREPLIST_SCROLLBAR, 
			151, SECTIONUP_HEIGHT + 25, 75, form_id);
		ScrollbarSetScrollbar(ID_WORKREPLIST_SCROLLBAR,
							m_IndexTop,//value
							m_Count - WORKREPLIST_NUM,//max
							0,// min value
							WORKREPLIST_NUM, //page_size
							m_Count);//total_num_lines
		ScrollbarSetScrollbarDrawPagesize(ID_WORKREPLIST_SCROLLBAR, WORKREPLIST_NUM);
		ScrollbarSetScrollbarVisible(ID_WORKREPLIST_SCROLLBAR, TRUE);
	}

	UI_StringInit (ID_WORKREPLIST_BJSJ, 25, SECTIONUP_HEIGHT+5, 
		15, 55,(BYTE*)"编辑时间", form_id);

	if (m_Count - m_IndexTop < WORKREPLIST_NUM)
	{
		num = m_Count - m_IndexTop;
	}
	else
	{
		num = WORKREPLIST_NUM;
	}

	for (i=0; i<num; ++i)
	{
		UI_ButtonInit2 (ID_WORKREPLIST_BUTTON1+i, 15, 
			SECTIONUP_HEIGHT + 25 + 15*i, 
			15, 95,(BYTE*)m_strEditTime[m_IndexTop+i], form_id);

		UI_ButtonSetAlign(ID_WORKREPLIST_BUTTON1+i, LEFT_ALIGN);
		ControlSetAttributes(ID_WORKREPLIST_BUTTON1+i, TRUE,FALSE,FALSE,TRUE,TRUE);
	}

	StringSetAttribute (ID_WORKREPLIST_BJSJ, FALSE, TRUE);

	//create return button
	UISectionCenter::CreateUIObjects();

	result = SUC;
	return result;
}

void UIWorkRepList::OnScrollbarClick (void)
{
	SHORT num = 0;
	SHORT i = 0;

	if (m_Count - m_IndexTop < WORKREPLIST_NUM)
	{
		num = m_Count - m_IndexTop;
	}
	else
	{
		num = WORKREPLIST_NUM;
	}

	for (i=0; i<num; ++i)
	{
		ControlEraseControl(ID_WORKREPLIST_BUTTON1+i);
		ControlSetLabel(ID_WORKREPLIST_BUTTON1+i, 
			(BYTE*)m_strEditTime[m_IndexTop + i]);

		ControlDrawControl (ID_WORKREPLIST_BUTTON1+i);
	}

	//
}

void UIWorkRepList::Show()
{
	SHORT num = 0;
	SHORT i = 0;

	StringDrawString (ID_WORKREPLIST_BJSJ);

	if (m_Count - m_IndexTop < WORKREPLIST_NUM)
	{
		num = m_Count - m_IndexTop;
	}
	else
	{	
		num = WORKREPLIST_NUM;
		ScrollbarDrawScrollbar (ID_WORKREPLIST_SCROLLBAR);
	}

	for (i=0; i<num; ++i)
	{
		ControlSetLabel(ID_WORKREPLIST_BUTTON1+i, 
			(BYTE*)m_strEditTime[m_IndexTop + i]);
		ControlDrawControl (ID_WORKREPLIST_BUTTON1+i);
	}

	DrawReturnButton ();
}

//##ModelId=3D643ED10084
Err UIWorkRepList::DestroyWindow()
{
	SHORT	num = 0;
	SHORT	i = 0;
	ObjectID form_id = PDAXWT_FORM;

	UI_FormDeleteObject (ID_WORKREPLIST_BJSJ, form_id);

	if (m_Count - m_IndexTop < WORKREPLIST_NUM)
	{
		num = m_Count - m_IndexTop;
	}
	else
	{
		num = WORKREPLIST_NUM;
	}

	for (i=0; i<num; ++i)
	{
		UI_FormDeleteObject (ID_WORKREPLIST_BUTTON1+i, form_id);
	}

	if (m_Count > WORKREPLIST_NUM)
	{
		UI_FormDeleteObject (ID_WORKREPLIST_SCROLLBAR, form_id);
	}

	//删除返回按键
	UISectionCenter::DestroyUIObjects();

	return SUC;
}

Err UIWorkRepList::OnListItemClick (SHORT ItemIndex)
{
	SHORT iRecID = m_iDBListIndex[m_IndexTop + ItemIndex];
	UIWorkRepContainer *pUIWorkRepContainer = new UIWorkRepContainer(m_bIsDraft,iRecID);
	DestroyWindow();
	if(!VERIFY_OK(pUIWorkRepContainer->Enter(this)))
	{
		this->Initialize();
		this->Show();
	}

	return SUC;
}

⌨️ 快捷键说明

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