📄 uisolvlist.cpp
字号:
#include "UISolvList.h"
#include "UIPrbSolvContainer.h"
#include "UI_Button.h"
#include "UI_String.h"
#include "UI_Scrollbar.h"
#define PROBSOLVLIST_NUM 5//必须要和button数保持一致
#define ID_PROBSOLVLIST_BASE ID_XXX_BASE+80
#define ID_PROBSOLVLIST_BJSJ ID_PROBSOLVLIST_BASE //编辑时间
#define ID_PROBSOLVLIST_BUTTON1 (ID_PROBSOLVLIST_BASE+1) //Button List
#define ID_PROBSOLVLIST_BUTTON2 (ID_PROBSOLVLIST_BASE+2)
#define ID_PROBSOLVLIST_BUTTON3 (ID_PROBSOLVLIST_BASE+3)
#define ID_PROBSOLVLIST_BUTTON4 (ID_PROBSOLVLIST_BASE+4)
#define ID_PROBSOLVLIST_BUTTON5 (ID_PROBSOLVLIST_BASE+5)
#define ID_PROBSOLVLIST_SCROLLBAR ID_PROBSOLVLIST_BASE+10 //Scrollbar
#define ID_PROBSOLVLIST_RETURN ID_PROBSOLVLIST_BASE+11 //Return Button
UISolvList::UISolvList (BOOLEAN isDraft)
:m_bIsDraft (isDraft),m_IndexTop (0)
{
}
void UISolvList::OnScrollbarClick (void)
{
SHORT num = 0;
SHORT i = 0;
if (m_Count - m_IndexTop < PROBSOLVLIST_NUM)
{
num = m_Count - m_IndexTop;
}
else
{
num = PROBSOLVLIST_NUM;
}
for (i=0; i<num; ++i)
{
ControlEraseControl(ID_PROBSOLVLIST_BUTTON1+i);
ControlSetLabel(ID_PROBSOLVLIST_BUTTON1+i,
(BYTE*)m_strEditTime[m_IndexTop + i]);
ControlDrawControl (ID_PROBSOLVLIST_BUTTON1+i);
}
//ScrollbarDrawScrollbar (ID_PROBSOLVLIST_SCROLLBAR);
}
//##ModelId=3D625C1E02CE
void UISolvList::Show()
{
SHORT num = 0;
SHORT i = 0;
StringDrawString (ID_PROBSOLVLIST_BJSJ);
if (m_Count - m_IndexTop < PROBSOLVLIST_NUM)
{
num = m_Count - m_IndexTop;
}
else
{
num = PROBSOLVLIST_NUM;
ScrollbarDrawScrollbar (ID_PROBSOLVLIST_SCROLLBAR);
}
for (i=0; i<num; ++i)
{
ControlSetLabel(ID_PROBSOLVLIST_BUTTON1+i,
(BYTE*)m_strEditTime[m_IndexTop + i]);
ControlDrawControl (ID_PROBSOLVLIST_BUTTON1+i);
}
DrawReturnButton ();
}
//##ModelId=3D63656C0330
BOOLEAN UISolvList::HandleEvent(EvtType* event)
{
switch (event->eventType)
{
case EVT_CONTROL_SELECT:
switch(event->eventID)
{
case ID_MAIN_RETURN:
OnReturnClick();
return TRUE;
break;
case ID_PROBSOLVLIST_BUTTON1:
case ID_PROBSOLVLIST_BUTTON2:
case ID_PROBSOLVLIST_BUTTON3:
case ID_PROBSOLVLIST_BUTTON4:
case ID_PROBSOLVLIST_BUTTON5:
OnListItemClick (event->eventID-ID_PROBSOLVLIST_BUTTON1);
return TRUE;
break;
default:
return FALSE;
}
case EVT_SCROLLBAR_REPEAT:
ScrollbarDrawScrollbar (ID_PROBSOLVLIST_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=3D625BF40151
Err UISolvList::Initialize()
{
Err result = ERR_UNKOWN;
ObjectID form_id = PDAXWT_FORM;
//BYTE temp[10];
SHORT num = 0;
SHORT i = 0;
SHORT j = 0;
BOOLEAN isDraft;
DBProbSolv 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 + PROBSOLVLIST_NUM > m_Count)
{
if (PROBSOLVLIST_NUM >= m_Count)
{
m_IndexTop = 0;
}
else
{
m_IndexTop = m_Count - PROBSOLVLIST_NUM;
}
}
if (m_Count > PROBSOLVLIST_NUM)
{
UI_ScrollBarInit(ID_PROBSOLVLIST_SCROLLBAR,
151, SECTIONUP_HEIGHT + 25, 75, form_id);
ScrollbarSetScrollbar(ID_PROBSOLVLIST_SCROLLBAR,
m_IndexTop,//value
m_Count - PROBSOLVLIST_NUM,//max
0,// min value
PROBSOLVLIST_NUM, //page_size
m_Count);//total_num_lines
ScrollbarSetScrollbarDrawPagesize(ID_PROBSOLVLIST_SCROLLBAR, PROBSOLVLIST_NUM);
ScrollbarSetScrollbarVisible(ID_PROBSOLVLIST_SCROLLBAR, TRUE);
}
UI_StringInit (ID_PROBSOLVLIST_BJSJ, 25, SECTIONUP_HEIGHT+5,
15, 55,(BYTE*)"编辑时间", form_id);
if (m_Count - m_IndexTop < PROBSOLVLIST_NUM)
{
num = m_Count - m_IndexTop;
}
else
{
num = PROBSOLVLIST_NUM;
}
for (i=0; i<num; ++i)
{
UI_ButtonInit2 (ID_PROBSOLVLIST_BUTTON1+i, 15,
SECTIONUP_HEIGHT + 25 + 15*i,
15, 95,(BYTE*)m_strEditTime[m_IndexTop+i], form_id);
UI_ButtonSetAlign(ID_PROBSOLVLIST_BUTTON1+i, LEFT_ALIGN);
ControlSetAttributes(ID_PROBSOLVLIST_BUTTON1+i, TRUE,FALSE,FALSE,TRUE,TRUE);
}
StringSetAttribute (ID_PROBSOLVLIST_BJSJ, FALSE, TRUE);
//create return button
UISectionCenter::CreateUIObjects();
result = SUC;
return result;
}
//##ModelId=3D643EC802C6
Err UISolvList::DestroyWindow()
{
SHORT num = 0;
SHORT i = 0;
ObjectID form_id = PDAXWT_FORM;
UI_FormDeleteObject (ID_PROBSOLVLIST_BJSJ, form_id);
if (m_Count - m_IndexTop < PROBSOLVLIST_NUM)
{
num = m_Count - m_IndexTop;
}
else
{
num = PROBSOLVLIST_NUM;
}
for (i=0; i<num; ++i)
{
UI_FormDeleteObject (ID_PROBSOLVLIST_BUTTON1+i, form_id);
}
if (m_Count > PROBSOLVLIST_NUM)
{
UI_FormDeleteObject (ID_PROBSOLVLIST_SCROLLBAR, form_id);
}
//删除返回按键
UISectionCenter::DestroyUIObjects();
return SUC;
}
Err UISolvList::OnListItemClick (SHORT ItemIndex)
{
SHORT iRecID = m_iDBListIndex[m_IndexTop + ItemIndex];
UIPrbSolvContainer *pUIPrbSolvContainer = new UIPrbSolvContainer(m_bIsDraft,iRecID);
DestroyWindow();
if(!VERIFY_OK(pUIPrbSolvContainer->Enter(this)))
{
this->Initialize();
this->Show();
}
return SUC;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -