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

📄 sugarmemodetail.c

📁 Palm上著名的背单词软件的源码
💻 C
字号:
#include <PalmOS.h>
#include "SugarMemo.h"
#include "SugarMemoRsc.h"
#include "SugarMemoDetail.h"
#include "SugarMemoDB.h"
#include "SugarMemoTools.h"

static void DetailFormInit();

static void SetIntToField(Int32 intValue, UInt16 fieldID){
	FormType * frmP;
	FieldType * fldP;
	MemHandle textH;
	Char* p;
	
	frmP = FrmGetActiveForm();
	fldP = FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, fieldID));
	
	textH = MemHandleNew(maxStrIToALen);
	p = MemHandleLock(textH);
	
	StrIToA(p, intValue);
	MemHandleUnlock(textH);
	
	FldSetTextHandle(fldP, textH);
}

static void SetDateToField(DateType date, UInt16 fieldID){
	FormType * frmP;
	FieldType * fldP;
	MemHandle textH;
	Char* p;
	
	frmP = FrmGetActiveForm();
	fldP = FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, fieldID));
	textH = MemHandleNew(dateStringLength);
	p = MemHandleLock(textH);
	
	if (ZeroDate(date))
		StrPrintF(p,"%s", "n/a");
	else {
		date.year += 4;
		DateToAscii(date.month, date.day, date.year, dfYMDWithSlashes, p);
	}
	
	MemHandleUnlock(textH);
	
	FldSetTextHandle(fldP, textH);
}

static void DetailFormInit(){
	
	WordRecordType record;
	MemHandle recordH;
	
	GetWordRecord(CurrentDB, CurrentRecord, &record, &recordH);
	
	SetIntToField(record.memoStatus.difficulty, DetailDifficultyField);
	SetIntToField(record.memoStatus.totalLapse, DetailTotalLapseField);
	SetIntToField(record.memoStatus.totalRecall, DetailTotalRecallField);
	SetIntToField(record.memoStatus.step, DetailStepField);
	SetDateToField(record.memoStatus.create, DetailCreateField);
	SetDateToField(record.memoStatus.firstLearn, DetailFirstLearnField);
	SetDateToField(record.memoStatus.lastTest, DetailLastTestField);
	SetDateToField(record.memoStatus.nextTest, DetailNextTestField);

	MemHandleUnlock(recordH);
}


Boolean DetailFormHandleEvent(EventType * event){

	FormType* frmP;
	Boolean handled = false;
	
	switch (event->eType){
		
		case frmOpenEvent:
			frmP = FrmGetActiveForm();
			DetailFormInit();
			FrmDrawForm(frmP);
			break;
			
		case frmCloseEvent:
			break;
			
		case ctlSelectEvent:
			switch (event->data.ctlSelect.controlID){
				case DetailOKButton:
					FrmReturnToForm(0);
					FrmUpdateForm(0, frmRedrawUpdateCode);
					handled = true;	
					
					break;
				default:
					break;
			
			}
			break;		
		default:
			break;
	}
	
	return handled;
}

⌨️ 快捷键说明

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