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 + -
显示快捷键?