about.c

来自「WAP browser is based on the Wireless App」· C语言 代码 · 共 149 行

C
149
字号
//About Dialog Form
#include "about.h"
#include "WAPUniverse.h"
#include "../res/WAPUniverse_res.h"
#include "build.h"
#include "PalmUtils.h"

#ifdef __GNUC__
#include "callbacks.h"
#endif


/***********************************************************************
 *
 *	Updates the scrollers for the help text
 *
 *	Paramaters:		None
 *
 *	Returns:			Nothing
 *
 ***********************************************************************/
static void UpdateScrollers()
{
	UInt16		scrollPos		= 0;
	UInt16		textHeight	= 0;
	UInt16		fieldHeight	= 0;
	UInt16		maxpos			= 0;	

	//get field vals
	FldGetScrollValues (GetObjectPtr(fldInfo), &scrollPos, &textHeight, &fieldHeight);

	//set scroll vals
	if(textHeight > fieldHeight)
	{
		maxpos = textHeight - fieldHeight - 1;
	}
	else
	{
		maxpos = 0;
	}

	//set scrollbar
	SclSetScrollBar (GetObjectPtr(sclInfo), scrollPos, 0, maxpos, fieldHeight);
}

/***********************************************************************
 *
 *	Help form event handler
 *
 *	Paramaters:		eventP : EventPtr - ptr to the event
 *
 *	Returns:			Boolean	- true if handled, false otherwise
 *
 ***********************************************************************/
Boolean ehFormInfo(EventPtr event)
{
    Boolean		handled = false;
    FormPtr		frm;
    UInt16		lines = 0;
    WinDirectionType	dir = winDown;
    UInt16		scrollPos = 0;
    UInt16		textHeight = 0;
    UInt16		fieldHeight = 0;
    ControlPtr		ctl;
    MemHandle		textH = NULL;

#ifdef __GNUC__
    CALLBACK_PROLOGUE
#endif

	//get field ptr
	frm = FrmGetActiveForm();

	switch (event->eType) 
		{
    case ctlSelectEvent:
		if (event->data.ctlSelect.controlID == buttonInfoOK){
			FldSetTextHandle(GetObjectPtr(fldInfo), NULL);
			FrmReturnToForm(0);//return to calling form
	        }
	  break;

		//form opened			
		case frmOpenEvent:
			textH = DmGetResource('tSTR', strGPL);
			if(textH)
			{
				FldSetTextHandle(GetObjectPtr(fldInfo), textH);
			}
			UpdateScrollers();
            ctl = (ControlPtr)(FrmGetObjectPtr(frm,(FrmGetObjectIndex(frm,lblVersion))));
            CtlSetLabel(ctl,VERSIONSTR2);
			FrmDrawForm (frm);
			break;

		//form closed
		case frmCloseEvent:
			//release MemHandle
			FldSetTextHandle(GetObjectPtr(fldInfo), NULL);
			break;

    // scroll bar used
    case sclRepeatEvent:
    	//scroll as appropriate
    	if(event->data.sclExit.value > event->data.sclRepeat.newValue)
    	{
    		lines = event->data.sclExit.value - event->data.sclRepeat.newValue;
    		dir = winUp;
    	}
			else
			{
    		lines = event->data.sclExit.newValue - event->data.sclRepeat.value;
    		dir = winDown;
			}
			 	
			FldScrollField(GetObjectPtr(fldInfo), lines, dir);
			UpdateScrollers();
			break;

		case fldChangedEvent:
			UpdateScrollers();
			break;

		case keyDownEvent:
			switch (event->data.keyDown.chr)
			{
				case pageUpChr:
					FldGetScrollValues (GetObjectPtr(fldInfo), &scrollPos, &textHeight, &fieldHeight);	
					FldScrollField(GetObjectPtr(fldInfo), fieldHeight - 1, winUp);
					UpdateScrollers();
					break;

				case pageDownChr:
					FldGetScrollValues (GetObjectPtr(fldInfo), &scrollPos, &textHeight, &fieldHeight);					
					FldScrollField(GetObjectPtr(fldInfo), fieldHeight - 1, winDown);
					UpdateScrollers();
					break;
			}
			break;

		default:
			break;
		
		}
#ifdef __GNUC__
    CALLBACK_EPILOGUE
#endif
	return handled;
}

⌨️ 快捷键说明

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