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

📄 uiprbsolvcontainer.cpp

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

#include "ProbSolvContent.h"

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

#include "DBProbSolv.h"
#include "UICallCenterSend.h"

#include "applay.h"

enum {
	ID_PROBSOLVCONTAIN_BASE	= ID_XXX_BASE + 200,

	ID_PROBSOLVCONTAIN_DELETE = ID_PROBSOLVCONTAIN_BASE+1,
	
	ID_PROBSOLVCONTAIN_RETURN = ID_PROBSOLVCONTAIN_BASE+2,
	ID_PROBSOLVCONTAIN_STRING_S	= ID_PROBSOLVCONTAIN_BASE+3,
	ID_PROBSOLVCONTAIN_CHECK_S	= ID_PROBSOLVCONTAIN_BASE+4,
};

UIPrbSolvContainer::UIPrbSolvContainer(BOOLEAN isDraft, SHORT iRecID)
:m_bIsDraft(isDraft), m_iRecId (iRecID)
{
}

//##ModelId=3D65F00F0201
void UIPrbSolvContainer::Show()
{
	m_UIProbSolvContent.Show();

	if (m_bIsDraft)
	{
		ControlDrawControl(ID_PROBSOLVCONTAIN_CHECK_S);
		StringDrawString (ID_PROBSOLVCONTAIN_STRING_S);
	}

	ControlDrawControl(ID_PROBSOLVCONTAIN_DELETE);
	DrawReturnButton ();
}

/*
//##ModelId=3D65F01500BF
Err UIPrbSolvContainer::Exit()
{
	return 1;
}
*/
void UIPrbSolvContainer::SaveContent()
{
	ProbSolvContent ContentOld, ContentNew;

	DBProbSolv theDBProbSolv(m_bIsDraft);
	theDBProbSolv.OpenTable(EMDB_RDONLY);
	theDBProbSolv.GetContent(m_iRecId, &ContentOld);
	theDBProbSolv.CloseTable();

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

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

//##ModelId=3D65EDEC00E2
Err UIPrbSolvContainer::OnDeleteBtn()
{
	ObjectID control_id;

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

		DBProbSolv theDBS(m_bIsDraft);
		theDBS.OpenTable(EMDB_RDWR);
		Err bSet = theDBS.SetIsDraftFlg(m_iRecId, FALSE);
		theDBS.CloseTable();

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

	this->pPrev->Enter ();
	delete this;

	return SUC;
}
/*
//##ModelId=3D55D1DE0157
Err UIPrbSolvContainer::OnSendBtn()
{
	SaveContent ();

	if (m_bIsDraft)
	{
		DBProbSolv theDBProbSolv(m_bIsDraft);
		theDBProbSolv.OpenTable(EMDB_RDWR);
		Err bSet = theDBProbSolv.SetIsDraftFlg(m_iRecId, FALSE);
		theDBProbSolv.CloseTable();
		
		//db is full, no go to 
		if (bSet != SUC)
		{
			return SUC;
		}
	}
	//Exit ();
	
	//SaveContent();
	this->DestroyWindow();
	
	UICallCenterSend *pUICallCenter = new UICallCenterSend;
	pUICallCenter->Enter(this);
	//CommProxy->Send(??, m_iRecId);
	CallCenterSendProbSolv(m_iRecId);
	return SUC;
}
*/
//##ModelId=3D6E3381010D
BOOLEAN UIPrbSolvContainer::HandleEvent(EvtType* pEvent)
{
	BOOLEAN bHandled = FALSE;
	switch (pEvent->eventType)
	{
	case EVT_CONTROL_SELECT:
			switch (pEvent->eventID)
			{
			case ID_PROBSOLVCONTAIN_DELETE:
				OnDeleteBtn();
				bHandled = TRUE;
				break;
			case ID_MAIN_RETURN:
				OnReturnBtn();//derived from UISectionCenter
				bHandled = TRUE;
				break;
			}
	}
	if (!bHandled)
	{
		bHandled = m_UIProbSolvContent.HandleEvent(pEvent);
	}

	return bHandled;
}

//##ModelId=3D65EDEE0077
Err UIPrbSolvContainer::Initialize()
{
	DBProbSolv theDBS(m_bIsDraft);
	ProbSolvContent content;
	ObjectID form_id = PDAXWT_FORM;

	//create content area
	theDBS.OpenTable(EMDB_RDONLY);
	theDBS.GetContent(m_iRecId, &content);
	theDBS.CloseTable();
	m_UIProbSolvContent.SetContent(&content);
	m_UIProbSolvContent.Initialize();

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

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

	/*
	UI_ButtonInit(ID_PROBSOLVCONTAIN_SEND,
					54, 125,//x,y
					15, 30,//height,width
					(BYTE*)"发送",//name
					form_id);
					*/
	UI_ButtonInit(ID_PROBSOLVCONTAIN_DELETE,
					87, 125,//x,y
					15, 30,//height,width
					(BYTE*)"删除",//name
					form_id);

	//ControlSetAttributes(ID_PROBSOLVCONTAIN_SEND, TRUE,FALSE,FALSE,TRUE,TRUE);
	ControlSetAttributes(ID_PROBSOLVCONTAIN_DELETE, TRUE,FALSE,FALSE,TRUE,TRUE);

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

	return SUC;
}

//##ModelId=3D65F053005A
Err UIPrbSolvContainer::DestroyWindow()
{
	SHORT	num = 0;
	SHORT	i = 0;
	ObjectID form_id = PDAXWT_FORM;
	
	//delete content area
	m_UIProbSolvContent.DestroyWindow();

	if (m_bIsDraft)
	{
		UI_FormDeleteObject (ID_PROBSOLVCONTAIN_STRING_S, form_id);
		UI_FormDeleteObject (ID_PROBSOLVCONTAIN_CHECK_S, form_id);
	}

	//UI_FormDeleteObject (ID_PROBSOLVCONTAIN_SEND, form_id);
	UI_FormDeleteObject (ID_PROBSOLVCONTAIN_DELETE, form_id);

	//delete return button
	UISectionCenter::DestroyUIObjects();

	return SUC;
}

Err UIPrbSolvContainer::Exit()
{
	ObjectID control_id;

	if (m_bIsDraft && 
		(TRUE == ControlGetCheckedCheckbox (PDAXWT_FORM, ID_PROBSOLVCONTAIN_CHECK_S, &control_id)))
	{
		ProbSolvContent ContentNew;
		memset(ContentNew.m_strContent, 0, sizeof(ContentNew.m_strContent));
		DBProbSolv tDB(FALSE);

		m_UIProbSolvContent.GetContent(&ContentNew);
		tDB.OpenTable(EMDB_RDWR);
		tDB.AddProbSolvRec(&ContentNew);
		tDB.CloseTable();
		SaveContent ();
	}
	else
	{
		SaveContent ();
	}

	return UIInfoNagvBase::Exit ();
}

⌨️ 快捷键说明

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