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 / prefsform.c < prev    next >
C/C++ Source or Header  |  2000-09-05  |  3KB  |  108 lines

  1. /* prefsform.c
  2.    Copyright (C) 1999 Ben Darnell
  3.    This file is a part of LinkMaster,
  4.    which is distributed under the GNU GPL.
  5. */
  6.  
  7. #include <Pilot.h>
  8. #include "callback.h"
  9.  
  10. #include "linkaware.h"
  11. #include "linkmaster.h"
  12. #include "linkmasterRsc.h"
  13.  
  14. static VoidPtr GetObjectPtr(Word id)
  15. {
  16.    FormPtr frm;
  17.    frm=FrmGetActiveForm();
  18.    return FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, id));
  19. }
  20.  
  21. static void InitForm()
  22. {
  23.    LinkHistoryPrefsType histprefs;
  24.    LinkHistoryPrefsType2 histprefs2;
  25.    Word prefssize;
  26.    SWord prefsver;
  27.    Char buffer[10];
  28.  
  29.    prefssize=sizeof(histprefs);
  30.    prefsver=PrefGetAppPreferences('Link', 0, &histprefs, &prefssize, true);
  31.    if (prefsver<0) {
  32.       histprefs.max=50;
  33.       histprefs.current=0;
  34.    }
  35.  
  36.    prefssize=sizeof(histprefs2);
  37.    prefsver=PrefGetAppPreferences('Link', 2, &histprefs2, &prefssize, true);
  38.    if (prefsver<0) {
  39.       histprefs2.mintime=2;
  40.       histprefs2.allowdups=0;
  41.    };
  42.  
  43.    StrIToA(buffer, histprefs.max);
  44.    FldInsert(GetObjectPtr(PrefsHistMaxField), buffer, StrLen(buffer));
  45.  
  46.    StrIToA(buffer, histprefs2.mintime);
  47.    FldInsert(GetObjectPtr(PrefsHistMinTimeField), buffer, StrLen(buffer));
  48.  
  49.    CtlSetValue(GetObjectPtr(PrefsHistAllowDups), histprefs2.allowdups);
  50. }
  51.  
  52. static void SavePrefs()
  53. {
  54.    LinkHistoryPrefsType histprefs;
  55.    LinkHistoryPrefsType2 histprefs2;
  56.    Word prefssize;
  57.    SWord prefsver;
  58.  
  59.    /* have to get previous current value */
  60.    prefssize=sizeof(histprefs);
  61.    prefsver=PrefGetAppPreferences('Link', 0, &histprefs, &prefssize, true);
  62.    if (prefsver<0)
  63.       histprefs.current=0;
  64.  
  65.    histprefs.max=StrAToI(FldGetTextPtr(GetObjectPtr(PrefsHistMaxField)));
  66.    histprefs2.mintime=StrAToI(FldGetTextPtr
  67.                   (GetObjectPtr(PrefsHistMinTimeField)));
  68.    histprefs2.allowdups=CtlGetValue(GetObjectPtr(PrefsHistAllowDups));
  69.  
  70.    PrefSetAppPreferences('Link', 0, 0, &histprefs, sizeof(histprefs), true);
  71.    PrefSetAppPreferences('Link', 2, 0, &histprefs2, sizeof(histprefs2), true);
  72. }
  73.  
  74. Boolean PrefsFormHandleEvent(EventPtr e)
  75. {
  76.    Boolean handled=false;
  77.  
  78.    CALLBACK_PROLOGUE;
  79.  
  80.    switch (e->eType) {
  81.    case frmOpenEvent:
  82.       InitForm();
  83.       FrmDrawForm(FrmGetActiveForm());
  84.       handled=true;
  85.       break;
  86.  
  87.    case ctlSelectEvent:
  88.       switch (e->data.ctlSelect.controlID) {
  89.       case OK:
  90.      SavePrefs();
  91.      FrmReturnToForm(0);
  92.      handled=true;
  93.      break;
  94.  
  95.       case Cancel:
  96.      FrmReturnToForm(0);
  97.      handled=true;
  98.      break;
  99.       };
  100.       break;
  101.  
  102.    default:
  103.       break;
  104.    };
  105.    CALLBACK_EPILOGUE;
  106.    return handled;
  107. }
  108.