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

📄 uiworkrepcontainer.cpp

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

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

#include "DBWorkRep.h"
#include "WorkRepContent.h"
#include "UICallCenterSend.h"

#include "applay.h"

#define		ID_WORKREPCONTAIN_BASE			ID_XXX_BASE+100
//#define		ID_WORKREPCONTAIN_SEND			ID_WORKREPCONTAIN_BASE			
#define		ID_WORKREPCONTAIN_DELETE		ID_WORKREPCONTAIN_BASE+1
#define		ID_WORKREPCONTAIN_RETURN		ID_WORKREPCONTAIN_BASE+2
#define		ID_WORKREPCONTAIN_STRING_S		ID_WORKREPCONTAIN_BASE+3
#define		ID_WORKREPCONTAIN_CHECK_S		ID_WORKREPCONTAIN_BASE+4

UIWorkRepContainer::UIWorkRepContainer (BOOLEAN isDraft, SHORT iRecId)
:m_bIsDraft (isDraft), m_iRecId (iRecId)
{
}

//##ModelId=3D698F1C0342
Err UIWorkRepContainer::Initialize()
{
	Err result = ERR_UNKOWN;
	ObjectID form_id = PDAXWT_FORM;
	DBWorkRep	DBS (m_bIsDraft);
	WorkRepContent content;

	DBS.OpenTable (EMDB_RDONLY);
	DBS.GetContent (m_iRecId, &content);
	DBS.CloseTable ();
	m_UIWorkRepContent.Initialize ();
	m_UIWorkRepContent.SetContent (&content);


	if (m_bIsDraft)
	{
		UI_StringInit(ID_WORKREPCONTAIN_STRING_S,
			10, 125,//x,y
			15, 30,//height,width
			(BYTE*)"发件箱", form_id);
		StringSetAttribute(ID_WORKREPCONTAIN_STRING_S, TRUE, TRUE);

		UI_CheckBoxInit(ID_WORKREPCONTAIN_CHECK_S, 
				52, 127,//x,y
				 ID_WORKREPCONTAIN_CHECK_S, form_id);
		ControlSetAttributes(ID_WORKREPCONTAIN_CHECK_S, TRUE, FALSE, FALSE, TRUE, TRUE);
		//UI_CheckBoxSetControlValue(ID_WORKREP_CHECK_D, TRUE);
	}

		//create delete button
	UI_ButtonInit(ID_WORKREPCONTAIN_DELETE,
					87, 125,//x,y
					15, 30,//height,width
					(BYTE*)"删除",//name
					form_id);

	//ControlSetAttributes(ID_WORKREPCONTAIN_SEND, TRUE,FALSE,FALSE,TRUE,TRUE);
	ControlSetAttributes(ID_WORKREPCONTAIN_DELETE, TRUE,FALSE,FALSE,TRUE,TRUE);

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

	result = SUC;
	return result;
}

//##ModelId=3D6E32C303D1
void UIWorkRepContainer::Show()
{
	m_UIWorkRepContent.Show();

	if (m_bIsDraft)
	{
		ControlDrawControl(ID_WORKREPCONTAIN_CHECK_S);
		StringDrawString (ID_WORKREPCONTAIN_STRING_S);
	}

	//ControlDrawControl(ID_WORKREPCONTAIN_SEND);
	ControlDrawControl(ID_WORKREPCONTAIN_DELETE);

	DrawReturnButton ();
}

void UIWorkRepContainer::SaveContent()
{
	WorkRepContent ContentOld, ContentNew;

	DBWorkRep theDBWorkRep(m_bIsDraft);
	theDBWorkRep.OpenTable(EMDB_RDONLY);
	theDBWorkRep.GetContent(m_iRecId, &ContentOld);
	theDBWorkRep.CloseTable();

	m_UIWorkRepContent.GetContent(&ContentNew);
	if (0 != memcmp(ContentOld.m_strContent, ContentNew.m_strContent, WorkRepContent::CONTENT_LEN))
	{
		theDBWorkRep.OpenTable(EMDB_RDWR);
		theDBWorkRep.ModifyContent(m_iRecId, &ContentNew);
		theDBWorkRep.CloseTable();
	}
}

//##ModelId=3D55D36D022E
Err UIWorkRepContainer::OnReturnBtn()
{
	//SaveContent();
	OnReturnClick();
	return SUC;//Not Finished
}

//##ModelId=3D698F000111
Err UIWorkRepContainer::OnDeleteBtn()
{
	ObjectID control_id;

	if (m_bIsDraft && 
		(TRUE == ControlGetCheckedCheckbox (PDAXWT_FORM, ID_WORKREPCONTAIN_CHECK_S, &control_id)))
	{
		SaveContent ();

		DBWorkRep theDBWorkRep(m_bIsDraft);
		theDBWorkRep.OpenTable(EMDB_RDWR);
		Err bSet = theDBWorkRep.SetIsDraftFlg(m_iRecId, FALSE);
		theDBWorkRep.CloseTable();

		//db is full, no continue to delete
		if (bSet != SUC)
		{
			return SUC;
		}
	}
	else
	{
		DBWorkRep	DBS(m_bIsDraft);
		DBS.OpenTable(EMDB_RDWR);
		DBS.DelRec(m_iRecId);
		DBS.CloseTable();
	}
	//return to previous view
	//Add by cao 11.15
	//UIInfoBackBase::OnReturnClick();
	UIInfoBackBase::Exit ();

	this->pPrev->Enter ();
	delete this;
	return SUC;
}

/*
//##ModelId=3D55D36D022E
Err UIWorkRepContainer::OnSendBtn()
{
	SaveContent ();

	if (m_bIsDraft)
	{
		DBWorkRep theDBWorkRep(m_bIsDraft);
		theDBWorkRep.OpenTable(EMDB_RDWR);
		Err bSet = theDBWorkRep.SetIsDraftFlg(m_iRecId, FALSE);
		theDBWorkRep.CloseTable();

		//db is full, no go to call center
		if (bSet != SUC)
		{
			return SUC;
		}
	}
	//Exit ();
	
	//SaveContent();
	this->DestroyWindow();
	
	UICallCenterSend *pUICallCenter = new UICallCenterSend;
	pUICallCenter->Enter(this);

	CallCenterSendWorkRep(m_iRecId);
	//CommProxy->Send(??, m_iRecId);
	return SUC;
}
*/

//##ModelId=3D698EE501EE
BOOLEAN UIWorkRepContainer::HandleEvent(EvtType* event)
{
	if (!m_UIWorkRepContent.HandleEvent (event))
	{
		switch (event->eventType)
		{
		case EVT_CONTROL_SELECT:
			switch(event->eventID)
			{
			case ID_MAIN_RETURN:
				OnReturnBtn();
				return TRUE;
				break;
			case ID_WORKREPCONTAIN_DELETE:
				OnDeleteBtn ();
				return TRUE;
				break;
			default: 
				return FALSE;
			}
			break;
		default: return FALSE;
		}
	}
	else
	{
		return TRUE;
	}
	return FALSE;
}

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

	//delete content area
	m_UIWorkRepContent.DestroyWindow();

	if (m_bIsDraft)
	{
		UI_FormDeleteObject (ID_WORKREPCONTAIN_STRING_S, form_id);
		UI_FormDeleteObject (ID_WORKREPCONTAIN_CHECK_S, form_id);
	}

	//UI_FormDeleteObject (ID_WORKREPCONTAIN_SEND, form_id);
	UI_FormDeleteObject (ID_WORKREPCONTAIN_DELETE, form_id);
	/*
	ControlDeleteControl(ID_WORKREPCONTAIN_SEND);
	ControlDeleteControl(ID_WORKREPCONTAIN_DELETE);
	*/
	//delete return button
	UISectionCenter::DestroyUIObjects();

	return SUC;
}

Err UIWorkRepContainer::Exit ()
{
	ObjectID control_id;

	if (m_bIsDraft && 
		(TRUE == ControlGetCheckedCheckbox (PDAXWT_FORM, ID_WORKREPCONTAIN_CHECK_S, &control_id)))
	{
		WorkRepContent ContentNew;
		memset(ContentNew.m_strContent, 0, sizeof(ContentNew.m_strContent));
		DBWorkRep theDBWorkRep(FALSE);

		m_UIWorkRepContent.GetContent(&ContentNew);
		theDBWorkRep.OpenTable(EMDB_RDWR);
		theDBWorkRep.AddWorkRepRec(&ContentNew);
		theDBWorkRep.CloseTable();
		SaveContent ();
	}
	else
	{
		SaveContent ();
	}

	return UIInfoNagvBase::Exit ();
}

⌨️ 快捷键说明

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