Exemplo n.º 1
0
FieldType * MyFrmGetActiveField()
{
	Err err;
	UInt16 focus;
	FormType * activeForm;
	if (
		(activeForm = FrmGetActiveForm()) == 0 ||
		(focus = FrmGetFocus(activeForm)) == noFocus) {
		return 0;
	}
	FieldType * activeField = 0;
	switch (FrmGetObjectType(activeForm, focus)) {
	case frmFieldObj:
		UInt32 romVersion = 0;
		err = FtrGet(sysFtrCreator, sysFtrNumROMVersion, &romVersion);
		activeField = (romVersion >= sysMakeROMVersion(4, 0, 0, sysROMStageRelease, 0))
			? FrmGetActiveField(0) : (FieldType *)FrmGetObjectPtr(activeForm, focus);
		break;
	case frmTableObj:
		TableType * activeTable = (TableType *)FrmGetObjectPtr(activeForm, focus);
		activeField = TblGetCurrentField(activeTable);
		break;
	default:
		break;
	}
	/* this might not work, eg., expense.
	    perhaps if the field is new, it has no text handle.
	if (activeField) {
		if (FldGetTextHandle(activeField) == 0) { return 0; }
		FieldAttrType a;
		FldGetAttributes(activeField, &a);
		if (!(a.usable && a.editable)) { return 0; }
	}
	*/
	return activeField;
}
Exemplo n.º 2
0
/*!
 * Makes sure that the text field is given focus.
 */
Boolean
hFilesNew(EventPtr event)
{
	Boolean handled = false;
	FormPtr form;
	UInt16 fieldID;
	WChar chr;

	switch (event->eType) {
	case frmOpenEvent:
		setGameInProgress(0);
		form = FrmGetActiveForm();
		SetSilkResizable(form, true);
		collapseMove(form, CM_DEFAULT, NULL, NULL);
		FrmDrawForm(cityNewSetup(form));
		handled = true;
		break;
	case frmCloseEvent:
		break;
	case keyDownEvent:
		form = FrmGetActiveForm();
		fieldID = FrmGetObjectId(form, FrmGetFocus(form));
		if (fieldID < fieldID_width || fieldID > fieldID_width)
			break;

		chr = event->data.keyDown.chr;
		if (((chr >= chrDigitZero) && (chr <= chrDigitNine)) ||
			(chr == chrBackspace)) {
			EvtEnqueueKey(chrTilde, 0, 0);
			break;
		}
		if (chr == chrTilde)
			cnFieldContentChanged(fieldID);
		break;

	case ctlRepeatEvent:
		cnRepeatPressed(event);
		break;
	case ctlSelectEvent:
		switch (event->data.ctlSelect.controlID) {
		case buttonID_FilesNewCreate:
			cnCreateButtonPressed();
			handled = true;
			break;
		case buttonID_FilesNewCancel:
			cnCancelButtonPressed();
			handled = true;
			break;
		}
		break;
#if defined(HRSUPPORT)
	case winDisplayChangedEvent:
#if defined(SONY_CLIE)
	case vchrSilkResize:
#endif
		form = FrmGetActiveForm();
		if (collapseMove(form, CM_DEFAULT, NULL, NULL)) {
			FrmEraseForm(form);
			FrmDrawForm(form);
		}
		handled = true;
		break;
#endif
	default:
		break;
	}

	return (handled);
}