home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
linuxmafia.com 2016
/
linuxmafia.com.tar
/
linuxmafia.com
/
pub
/
palmos
/
linkmaster-src-1.0.4.tar.gz
/
linkmaster-src-1.0.4.tar
/
linkmaster-1.0.4
/
hack
/
code07d0.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-09-05
|
4KB
|
148 lines
/* code07d0.c - Preferences panel
Copyright ⌐ 1999 Ben Darnell
This file is a part of LinkMaster,
which is distributed under the GNU GPL.
Based on SampleHack by Roger Chaplin <foursquaredev@att.net>
*/
#include <Pilot.h>
#include "linkhistoryhack.h"
#include "linkhistoryhackRsc.h"
static void PrefsInit(FormPtr frm);
static void PrefsOK();
static VoidPtr GetObjectPtr(Word id);
static void SetList(Word triggerid, Word listid, UInt key);
// This is the code that will be called whenever the user taps myhack's "+"
// button in the HackMaster list. HackMaster is not smart about the content of
// this file; it will simply jump to the first executable statement in this
// file. If you need helper functions, prototype them above, and define them
// AFTER the trap patch.
Boolean PrefsHandler(EventPtr event)
{
FormPtr frm;
Boolean handled=false;
switch (event->eType) {
case frmOpenEvent:
frm = FrmGetActiveForm();
PrefsInit(frm);
FrmDrawForm(frm);
handled=1;
break;
case ctlSelectEvent:
switch (event->data.ctlEnter.controlID) {
case PrefsOKButton:
PrefsOK();
/* FALL THRU */
case PrefsCancelButton:
FrmGotoForm(9000); // return to HackMaster control panel
handled=true;
break;
}
break;
default:
break;
}
return handled;
}
static void PrefsInit(FormPtr frm)
{
MyPrefsType prefs;
Word prefssize=sizeof(prefs);
SWord prefsver;
prefsver=PrefGetAppPreferences('LMHH', 0, &prefs, &prefssize, true);
if (prefsver<0) {
prefs.backstart=findChr;
prefs.backend=menuChr;
prefs.fwdstart=menuChr;
prefs.fwdend=findChr;
prefs.liststart=menuChr;
prefs.listend=launchChr;
}
if (prefsver<1)
prefs.trackapps=1;
SetList(BackFromTrigger, BackFromList, prefs.backstart);
SetList(BackToTrigger, BackToList, prefs.backend);
SetList(FwdFromTrigger, FwdFromList, prefs.fwdstart);
SetList(FwdToTrigger, FwdToList, prefs.fwdend);
SetList(ListFromTrigger, ListFromList, prefs.liststart);
SetList(ListToTrigger, ListToList, prefs.listend);
CtlSetValue(GetObjectPtr(TrackAppsCheckBox), prefs.trackapps);
}
static void SetList(Word triggerid, Word listid, UInt key)
{
Word selection;
CharPtr text;
switch (key) {
case launchChr:
selection=0;
text="Applications";
break;
case menuChr:
selection=1;
text="Menu";
break;
case calcChr:
selection=2;
text="Calculator";
break;
case findChr:
selection=3;
text="Find";
break;
default:
selection=4;
text="Disabled";
break;
};
LstSetSelection(GetObjectPtr(listid), selection);
CtlSetLabel(GetObjectPtr(triggerid), text);
}
static void PrefsOK()
{
UInt key[5];
MyPrefsType prefs;
Word prefssize=sizeof(prefs);
key[0]=launchChr;
key[1]=menuChr;
key[2]=calcChr;
key[3]=findChr;
prefs.backstart=key[LstGetSelection(GetObjectPtr(BackFromList))];
prefs.backend=key[LstGetSelection(GetObjectPtr(BackToList))];
prefs.fwdstart=key[LstGetSelection(GetObjectPtr(FwdFromList))];
prefs.fwdend=key[LstGetSelection(GetObjectPtr(FwdToList))];
prefs.liststart=key[LstGetSelection(GetObjectPtr(ListFromList))];
prefs.listend=key[LstGetSelection(GetObjectPtr(ListToList))];
prefs.trackapps=CtlGetValue(GetObjectPtr(TrackAppsCheckBox));
PrefSetAppPreferences('LMHH', 0, 1, &prefs, prefssize, true);
}
static VoidPtr GetObjectPtr(Word id)
{
FormPtr frm;
frm=FrmGetActiveForm();
return FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, id));
}