home *** CD-ROM | disk | FTP | other *** search
- /*
- * prefs.c
- *
- * Routines for loading and saving ppdata preferences.
- *
- * MWS 3/92.
- */
-
- #include <exec/types.h>
- #include <intuition/intuition.h>
- #include <libraries/dos.h>
- #include <libraries/ppbase.h>
- #include <proto/dos.h>
- #include <proto/intuition.h>
-
- #define PREFS_C
- #include "prefs.h"
- #include "display.h"
- #include "messages.h"
-
- static void UpdateMenus(void); /* prototype */
- struct PPDataPrefs prefs; /* this is global variable containing prefs */
-
-
- static void UpdateMenus() /* update menus to reflect preferences */
- {
- struct MenuItem *item;
-
- item = ItemAddress(mainmenu, FULLMENUNUM(PREFS, COLOR, prefs.color));
- item->Flags |= CHECKED;
-
- item = ItemAddress(mainmenu, FULLMENUNUM(PREFS, EFFICIENCY, prefs.efficiency));
- item->Flags |= CHECKED;
-
- item = ItemAddress(mainmenu, FULLMENUNUM(PREFS, SPEEDUP, prefs.speedup));
- item->Flags |= CHECKED;
-
- item = ItemAddress(mainmenu, FULLMENUNUM(CONTROL, prefs.control, 0));
- item->Flags |= CHECKED;
-
- if (prefs.suffix)
- {
- item = ItemAddress(mainmenu, FULLMENUNUM(PREFS, SUFFIX, 0));
- item->Flags |= CHECKED;
- }
- if (prefs.overwrite)
- {
- item = ItemAddress(mainmenu, FULLMENUNUM(PREFS, OVERWRITE, 0));
- item->Flags |= CHECKED;
- }
- }
-
-
- void LoadPrefs() /* try to load prefs; if failure, use defaults */
- { /* update menus to reflect preferences */
-
- BPTR prefshandle;
- BOOL usedefaults = FALSE;
-
- if (prefshandle = Open(PREFS_NAME, MODE_OLDFILE))
- {
- if (Read(prefshandle, &prefs, PREFS_SIZE) != PREFS_SIZE)
- {
- Message("Error in preference file " PREFS_NAME "\nUsing defaults");
- usedefaults = TRUE; /* invalid preference file */
- }
- Close(prefshandle);
- }
- else usedefaults = TRUE;
-
- if (usedefaults) /* no prefs file or I/O error */
- {
- prefs.color = DECR_POINTER;
- prefs.efficiency = CRUN_GOOD;
- prefs.speedup = SPEEDUP_BUFFMEDIUM;
- prefs.suffix = 0L;
- prefs.overwrite = 1L;
- prefs.control = QUERY;
- }
-
- UpdateMenus();
- }
-
-
- void SavePrefs() /* save current preferences; returns TRUE on success */
- {
- BPTR prefshandle;
-
- if (prefshandle = Open(PREFS_NAME, MODE_NEWFILE))
- {
- if (Write(prefshandle, &prefs, PREFS_SIZE) != PREFS_SIZE)
- Message("Can't write to file " PREFS_NAME);
- Close(prefshandle);
- }
- else Message("Can't open file " PREFS_NAME);
- }
-
-