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 >
C/C++ Source or Header  |  2000-09-05  |  4KB  |  148 lines

  1. /* code07d0.c - Preferences panel
  2.    Copyright ⌐ 1999 Ben Darnell
  3.    This file is a part of LinkMaster,
  4.    which is distributed under the GNU GPL.
  5.    Based on SampleHack by Roger Chaplin <foursquaredev@att.net>
  6. */
  7.  
  8.  
  9. #include <Pilot.h>
  10. #include "linkhistoryhack.h"
  11. #include "linkhistoryhackRsc.h"
  12.  
  13. static void PrefsInit(FormPtr frm);
  14. static void PrefsOK();
  15. static VoidPtr GetObjectPtr(Word id);
  16. static void SetList(Word triggerid, Word listid, UInt key);
  17.  
  18. // This is the code that will be called whenever the user taps myhack's "+"
  19. // button in the HackMaster list. HackMaster is not smart about the content of
  20. // this file; it will simply jump to the first executable statement in this
  21. // file. If you need helper functions, prototype them above, and define them
  22. // AFTER the trap patch.
  23. Boolean PrefsHandler(EventPtr event)
  24. {
  25.    FormPtr         frm;
  26.    Boolean handled=false;
  27.  
  28.    switch (event->eType) {
  29.    case frmOpenEvent:
  30.       frm = FrmGetActiveForm();
  31.       PrefsInit(frm);
  32.       FrmDrawForm(frm);
  33.       handled=1;
  34.       break;
  35.       
  36.    case ctlSelectEvent:
  37.       switch (event->data.ctlEnter.controlID) {
  38.       case PrefsOKButton:
  39.      PrefsOK();
  40.      /* FALL THRU */
  41.  
  42.       case PrefsCancelButton:
  43.      FrmGotoForm(9000);  // return to HackMaster control panel
  44.      handled=true;
  45.      break;
  46.       }
  47.       break;
  48.       
  49.    default:
  50.       break;
  51.    }
  52.    
  53.    return handled;
  54. }
  55.  
  56. static void PrefsInit(FormPtr frm)
  57. {
  58.    MyPrefsType prefs;
  59.    Word prefssize=sizeof(prefs);
  60.    SWord prefsver;
  61.  
  62.    prefsver=PrefGetAppPreferences('LMHH', 0, &prefs, &prefssize, true);
  63.    if (prefsver<0) {
  64.       prefs.backstart=findChr;
  65.       prefs.backend=menuChr;
  66.       prefs.fwdstart=menuChr;
  67.       prefs.fwdend=findChr;
  68.       prefs.liststart=menuChr;
  69.       prefs.listend=launchChr;
  70.    }
  71.    if (prefsver<1)
  72.       prefs.trackapps=1;
  73.  
  74.    SetList(BackFromTrigger, BackFromList, prefs.backstart);
  75.    SetList(BackToTrigger, BackToList, prefs.backend);
  76.    SetList(FwdFromTrigger, FwdFromList, prefs.fwdstart);
  77.    SetList(FwdToTrigger, FwdToList, prefs.fwdend);
  78.    SetList(ListFromTrigger, ListFromList, prefs.liststart);
  79.    SetList(ListToTrigger, ListToList, prefs.listend);
  80.  
  81.    CtlSetValue(GetObjectPtr(TrackAppsCheckBox), prefs.trackapps);
  82. }
  83.  
  84. static void SetList(Word triggerid, Word listid, UInt key)
  85. {
  86.    Word selection;
  87.    CharPtr text;
  88.    
  89.    switch (key) {
  90.    case launchChr:
  91.       selection=0;
  92.       text="Applications";
  93.       break;
  94.  
  95.    case menuChr:
  96.       selection=1;
  97.       text="Menu";
  98.       break;
  99.  
  100.    case calcChr:
  101.       selection=2;
  102.       text="Calculator";
  103.       break;
  104.  
  105.    case findChr:
  106.       selection=3;
  107.       text="Find";
  108.       break;
  109.  
  110.    default:
  111.       selection=4;
  112.       text="Disabled";
  113.       break;
  114.    };
  115.    LstSetSelection(GetObjectPtr(listid), selection);
  116.    CtlSetLabel(GetObjectPtr(triggerid), text);
  117. }
  118.  
  119. static void PrefsOK()
  120. {
  121.    UInt key[5];
  122.    MyPrefsType prefs;
  123.    Word prefssize=sizeof(prefs);
  124.  
  125.    key[0]=launchChr;
  126.    key[1]=menuChr;
  127.    key[2]=calcChr;
  128.    key[3]=findChr;
  129.    
  130.    prefs.backstart=key[LstGetSelection(GetObjectPtr(BackFromList))];
  131.    prefs.backend=key[LstGetSelection(GetObjectPtr(BackToList))];
  132.    prefs.fwdstart=key[LstGetSelection(GetObjectPtr(FwdFromList))];
  133.    prefs.fwdend=key[LstGetSelection(GetObjectPtr(FwdToList))];
  134.    prefs.liststart=key[LstGetSelection(GetObjectPtr(ListFromList))];
  135.    prefs.listend=key[LstGetSelection(GetObjectPtr(ListToList))];
  136.  
  137.    prefs.trackapps=CtlGetValue(GetObjectPtr(TrackAppsCheckBox));
  138.  
  139.    PrefSetAppPreferences('LMHH', 0, 1, &prefs, prefssize, true);
  140. }
  141.  
  142. static VoidPtr GetObjectPtr(Word id)
  143. {
  144.    FormPtr frm;
  145.    frm=FrmGetActiveForm();
  146.    return FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, id));
  147. }
  148.