home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
linuxmafia.com 2016
/
linuxmafia.com.tar
/
linuxmafia.com
/
pub
/
palmos
/
wapuniverse-src-0.3.5.build9.tar.gz
/
wapuniverse-src-0.3.5.build9.tar
/
wapuniverse-0.3.5.build9
/
frmScroll.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-11-12
|
4KB
|
168 lines
// ---------------------------------------------------------------------------
// ScrollFrm.c
// Contains PalmOS specific code, for Scrolling info form (used for view-source, license)
//
// Project: WAPUniverse for PalmOS
// Copyright ⌐ 1999-2000 Filip Onkelinx
//
// http://www.wapuniverse.com/
// filip@onkelinx.com
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
//
// $Workfile: frmScroll.c $
// $Author: wapuniverse $
// $Date: 2000/11/11 20:51:09 $
// $Revision: 1.7 $
//
// $Header: /cvsroot/wapuniverse/wapuniverse/src/frmScroll.c,v 1.7 2000/11/11 20:51:09 wapuniverse Exp $
//
// -------------------------------------------------------------------------------
#include <PalmOS.h>
#include <SysEvtMgr.h>
#include "../res/WAPUniverse_res.h"
#include "WAPUniverse.h"
static void ScrollFrmScroll (FormPtr frm, WinDirectionType direction) SEC_1;
void ScrollFrm (Char * title, MemHandle bodyHandle) SEC_1;
static void ScrollFrmScroll (FormPtr frm, WinDirectionType direction)
{
UInt16 upIndex;
UInt16 downIndex;
UInt16 linesToScroll;
Boolean enableUp;
Boolean enableDown;
FieldPtr fld;
fld = FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, scrllField));
linesToScroll = FldGetVisibleLines (fld) - 1;
FldScrollField (fld, linesToScroll, direction);
enableUp = FldScrollable (fld, winUp);
enableDown = FldScrollable (fld, winDown);
upIndex = FrmGetObjectIndex (frm, buttonScrollUp);
downIndex = FrmGetObjectIndex (frm, buttonScrollDown);
FrmUpdateScrollers (frm, upIndex, downIndex, enableUp, enableDown);
}
void ScrollFrm (Char * title, MemHandle bodyHandle)
{
UInt16 upIndex;
UInt16 downIndex;
FormPtr frm;
FieldPtr fld;
Boolean enableUp;
Boolean enableDown;
Boolean done = false;
EventType event;
FormPtr curForm;
curForm = FrmGetActiveForm(); // save active form/window state
InsPtEnable (false);
frm = FrmInitForm (frmScroll);
FrmSetTitle(frm,title);
fld = FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, scrllField));
FldSetTextHandle (fld, (MemHandle)bodyHandle);
// FrmEraseForm (curForm);
FrmDrawForm (frm);
FrmSetActiveForm (frm);
upIndex = FrmGetObjectIndex (frm, buttonScrollUp);
downIndex = FrmGetObjectIndex (frm, buttonScrollDown);
enableUp = FldScrollable (fld, winUp);
enableDown = FldScrollable (fld, winDown);
FrmUpdateScrollers (frm, upIndex, downIndex, enableUp, enableDown);
while (! done)
{
EvtGetEvent (&event, evtWaitForever);
if (! SysHandleEvent (&event))
FrmHandleEvent (frm, &event);
if (event.eType == ctlSelectEvent)
{
switch (event.data.ctlSelect.controlID)
{
case buttonScrollUp:
ScrollFrmScroll (frm, winUp);
break;
case buttonScrollDown:
ScrollFrmScroll (frm, winDown);
break;
case buttonScrollDone:
done = true;
}
if (event.data.ctlSelect.controlID == buttonScrollDone)
done = true;
}
else if (event.eType == ctlRepeatEvent)
{
switch (event.data.ctlSelect.controlID)
{
case buttonScrollUp:
ScrollFrmScroll (frm, winUp);
break;
case buttonScrollDown:
ScrollFrmScroll (frm, winDown);
break;
}
}
else if (event.eType == keyDownEvent)
{
switch (event.data.keyDown.chr)
{
case pageUpChr:
ScrollFrmScroll(frm, winUp);
break;
case pageDownChr:
ScrollFrmScroll (frm, winDown);
break;
}
}
else if (event.eType == appStopEvent)
{
EvtAddEventToQueue (&event);
break;
}
}
FldSetTextHandle (fld, 0);
FrmEraseForm (frm);
FrmDeleteForm (frm);
// FrmDrawForm(curForm);
FrmSetActiveForm(curForm);
}