home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 25 / AACD 25.iso / AACD / Utilities / BasiliskII / src / include / prefs.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-04-01  |  2.5 KB  |  85 lines

  1. /*
  2.  *  prefs.h - Preferences handling
  3.  *
  4.  *  Basilisk II (C) 1997-2001 Christian Bauer
  5.  *
  6.  *  This program is free software; you can redistribute it and/or modify
  7.  *  it under the terms of the GNU General Public License as published by
  8.  *  the Free Software Foundation; either version 2 of the License, or
  9.  *  (at your option) any later version.
  10.  *
  11.  *  This program is distributed in the hope that it will be useful,
  12.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  *  GNU General Public License for more details.
  15.  *
  16.  *  You should have received a copy of the GNU General Public License
  17.  *  along with this program; if not, write to the Free Software
  18.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19.  */
  20.  
  21. #ifndef PREFS_H
  22. #define PREFS_H
  23.  
  24. #include <stdio.h>
  25.  
  26. extern void PrefsInit(int &argc, char **&argv);
  27. extern void PrefsExit(void);
  28.  
  29. extern void PrefsPrintUsage(void);
  30.  
  31. extern void AddPrefsDefaults(void);
  32. extern void AddPlatformPrefsDefaults(void);
  33.  
  34. // Preferences loading/saving
  35. extern void LoadPrefs(void);
  36. extern void SavePrefs(void);
  37.  
  38. extern void LoadPrefsFromStream(FILE *f);
  39. extern void SavePrefsToStream(FILE *f);
  40.  
  41. // Public preferences access functions
  42. extern void PrefsAddString(const char *name, const char *s);
  43. extern void PrefsAddBool(const char *name, bool b);
  44. extern void PrefsAddInt32(const char *name, int32 val);
  45.  
  46. extern void PrefsReplaceString(const char *name, const char *s, int index = 0);
  47. extern void PrefsReplaceBool(const char *name, bool b);
  48. extern void PrefsReplaceInt32(const char *name, int32 val);
  49.  
  50. extern const char *PrefsFindString(const char *name, int index = 0);
  51. extern bool PrefsFindBool(const char *name);
  52. extern int32 PrefsFindInt32(const char *name);
  53.  
  54. extern void PrefsRemoveItem(const char *name, int index = 0);
  55.  
  56.  
  57. /*
  58.  *  Definition of preferences items
  59.  */
  60.  
  61. // Item types
  62. enum prefs_type {
  63.     TYPE_STRING,        // char[]
  64.     TYPE_BOOLEAN,        // bool
  65.     TYPE_INT32,            // int32
  66.     TYPE_ANY,            // Wildcard for find_node
  67.     TYPE_END = TYPE_ANY    // Terminator for prefs_desc list
  68. };
  69.  
  70. // Item descriptor
  71. struct prefs_desc {
  72.     const char *name;    // Name of keyword
  73.     prefs_type type;    // Type (see above)
  74.     bool multiple;        // Can this item occur multiple times (only for TYPE_STRING)?
  75.     const char *help;    // Help/descriptive text about this item
  76. };
  77.  
  78. // List of common preferences items (those which exist on all platforms)
  79. extern prefs_desc common_prefs_items[];
  80.  
  81. // List of platform-specific preferences items
  82. extern prefs_desc platform_prefs_items[];
  83.  
  84. #endif
  85.