source: trunk/settings.h

Last change on this file was 100, checked in by Gregg Young, 4 years ago

Don't drop trailing \ for root directories

  • Property svn:eol-style set to native
File size: 6.8 KB
Line 
1/***
2 This file belongs to the Gotcha! distribution.
3 Copyright (C) 1998-2002 Thorsten Thielen <thth@c2226.de>
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 ***/
19
20#ifndef _Settings_H_
21#define _Settings_H_
22
23// ** defines & stuff ***************************************************** /*FOLD00*/
24
25#include "gotcha.h"
26#include "./settings/thth_settings.h"
27
28#ifdef _QUIET
29#define PSZ_PROFILENAME "gotchaq.ini"
30#else
31#define PSZ_PROFILENAME "gotcha.ini"
32#endif
33
34// this should be increased every time the format of the proFile changes
35#define L_PROFILEVERSION 2
36
37#define COUNT_PAGES 4
38
39enum { SAVESTYLE_CLIPBOARD, SAVESTYLE_FILE, };
40
41enum {
42 BMF_JPG, BMF_PNG, BMF_OS20, BMF_TIF, BMF_TGA, BMF_PCX, BMF_GIF,
43 BMF_PBM, BMF_JP2, BMF_DIB,
44 BMF_INVALID
45};
46
47enum { FSS_PROMPT, FSS_NUMFILES, FSS_FORCEFILE, };
48
49class ImageFormatInfo
50{
51public:
52 BOOL available;
53 USHORT type;
54// FOURCC fourcc;
55 PSZ label;
56 PSZ extension;
57 PSZ eaType;
58};
59
60// ** classdef ************************************************************ /*FOLD00*/
61
62class Settings : public ththSettings
63{
64public:
65 Settings (VOID);
66
67 BOOL Dialog (BOOL f = FALSE);
68
69 PSZ QuerySaveFile (VOID) { return QueryString (SEI_SAVEFILE); }
70 VOID SetSaveFile (PSZ psz) { SetString (SEI_SAVEFILE, psz); }
71
72 VOID SetWindowData (SWP *pswp, BOOL f = TRUE);
73 VOID QueryWindowData (SWP *pswp, USHORT us[7], BOOL f = TRUE);
74
75 BOOL HideWindow (VOID) { return QueryFlag (SEI_HIDEWINDOW); }
76 VOID HideWindow (BOOL f) { SetFlag (SEI_HIDEWINDOW, f); }
77
78 BOOL DelayedCapture (VOID) { return QueryFlag (SEI_DELAYEDCAPTURE); }
79 VOID DelayedCapture (BOOL f) { SetFlag (SEI_DELAYEDCAPTURE, f); }
80
81 BYTE QuerySaveStyle (VOID) { return QueryLong (SEI_SAVESTYLE); }
82 VOID SetSaveStyle (BYTE b) { SetLong (SEI_SAVESTYLE, b); }
83
84 BOOL AutoaddExtension (VOID) { return QueryFlag (SEI_AUTOADDEXTENSION); }
85 VOID AutoaddExtension (BOOL f) { SetFlag (SEI_AUTOADDEXTENSION, f); }
86
87 BOOL ConfirmOverwrite (VOID) { return QueryFlag (SEI_CONFIRMOVERWRITE); }
88 VOID ConfirmOverwrite (BOOL f) { SetFlag (SEI_CONFIRMOVERWRITE, f); }
89
90 PSZ QueryForceSaveFile (VOID) { return QueryString (SEI_FORCESAVEFILE); }
91 VOID SetForceSaveFile (PSZ psz) { SetString (SEI_FORCESAVEFILE, psz); }
92
93 BOOL DelayCountdown (VOID) { return QueryFlag (SEI_DELAYCOUNTDOWN); }
94 VOID DelayCountdown (BOOL f) { SetFlag (SEI_DELAYCOUNTDOWN, f); }
95
96 USHORT QueryDelayTime (VOID) { return QueryLong (SEI_DELAYTIME); }
97 VOID SetDelayTime (USHORT us) { SetLong (SEI_DELAYTIME, us); }
98#ifndef _QUIET_
99 BOOL SnapshotWindow (VOID) { return QueryFlag (SEI_SNAPSHOTWINDOW); }
100 VOID SnapshotWindow (BOOL f) { SetFlag (SEI_SNAPSHOTWINDOW, f); }
101
102 BOOL SSWHide (VOID) { return QueryFlag (SEI_SSWHIDE); }
103 VOID SSWHide (BOOL f) { SetFlag (SEI_SSWHIDE, f); }
104
105 BOOL SSWAlwaysOnTop (VOID) { return QueryFlag (SEI_SSWALWAYSONTOP); }
106 VOID SSWAlwaysOnTop (BOOL f) { SetFlag (SEI_SSWALWAYSONTOP, f); }
107#endif
108 BYTE QuerySSWCaptureType (VOID) { return QueryLong (SEI_SSWCAPTURETYPE); }
109 VOID SetSSWCaptureType (BYTE b) { SetLong (SEI_SSWCAPTURETYPE, b); }
110
111 BOOL SerialCapture (VOID) { return QueryFlag (SEI_SERIALCAPTURE); }
112 VOID SerialCapture (BOOL f) { SetFlag (SEI_SERIALCAPTURE, f); }
113
114 USHORT QuerySerialTime (VOID) { return QueryLong (SEI_SERIALTIME); }
115 VOID SetSerialTime (USHORT us) { SetLong (SEI_SERIALTIME, us); }
116
117 BOOL DoSound (VOID) { return QueryFlag (SEI_DOSOUND); }
118 VOID DoSound (BOOL f) { SetFlag (SEI_DOSOUND, f); }
119
120 BYTE QueryFileFormat (VOID) { return QueryLong (SEI_FILEFORMAT); }
121 VOID SetFileFormat (BYTE b) { SetLong (SEI_FILEFORMAT, b); }
122
123 BYTE QueryFileSaveStyle (VOID) { return QueryLong (SEI_FILESAVESTYLE); }
124 VOID SetFileSaveStyle (BYTE b) { SetLong (SEI_FILESAVESTYLE, b); }
125
126 PSZ QueryNumSaveDir (VOID);
127 VOID SetNumSaveDir (PSZ psz)
128 {
129 if (strlen(psz) > 3 && (psz[strlen (psz)-1] == '\\') || (psz[strlen (psz)-1] == '/'))
130 psz[strlen (psz)-1] = '\0';
131 SetString (SEI_NUMSAVEDIR, psz);
132 }
133
134 VOID SetLangID(INT Language) {LangID = Language;}
135 INT GetLangID(VOID) {return LangID;}
136
137 VOID SelectLanguage (VOID);
138
139 PSZ GetFileExtension( SHORT type = BMF_INVALID );
140// FOURCC GetFOURCC( SHORT type = BMF_INVALID );
141 PSZ GetFileEAType( SHORT type = BMF_INVALID );
142
143 bool idleSetInIni;
144 int saveStyle;
145 PSZ pNumSaveDir;
146 PSZ pForceSaveFile;
147 bool bSerialCapture;
148// BOOL IsMMIOAvailable( VOID );
149// class thth_MMIO *GetMMIO( VOID );
150
151protected:
152 USHORT FileNotOpenError (VOID);
153 USHORT VersionError (VOID);
154
155 BOOL ReloadResources (PSZ psz);
156
157 USHORT GetLanguages (HWND hwnd);
158
159private:
160 static MRESULT EXPENTRY
161 DialogProcedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
162 static MRESULT EXPENTRY
163 Page1Procedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
164 static MRESULT EXPENTRY
165 Page2Procedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
166 static MRESULT EXPENTRY
167 Page3Procedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
168 static MRESULT EXPENTRY
169 Page4Procedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
170
171 VOID AdjustButton (HWND hwnd, USHORT id, BOOL f)
172 {
173 WinSendDlgItemMsg (hwnd, id, BM_SETCHECK,
174 MPFROMLONG (f), MPFROMLONG (0));
175 }
176
177 VOID AdjustFlag (HWND hwnd, USHORT id, BOOL &f)
178 {
179 f = BOOL (WinSendDlgItemMsg (hwnd, id, BM_QUERYCHECK, 0, 0));
180 }
181
182 HWND hwndPage[COUNT_PAGES];
183 static PSZ pszPageTab[COUNT_PAGES];
184 BOOL fAutoLanguage;
185 HWND hwndDlg;
186 INT LangID;
187
188 static ImageFormatInfo ifi[];
189};
190
191// ** inline funcs ******************************************************** /*FOLD00*/
192
193inline VOID Settings :: SetWindowData (SWP *pswp, BOOL f)
194{
195 // FIXME puke, yukk, choke! get this flag thing away! do it better!
196 // FIXME what is with US?
197 if (f)
198 SetBinary(SEI_SWPSSW, PVOID(pswp), sizeof(SWP));
199 else
200 SetBinary(SEI_SWP, PVOID(pswp), sizeof(SWP));
201}
202
203// ************************************************************************
204#endif
Note: See TracBrowser for help on using the repository browser.