source: trunk/settings.h@ 2

Last change on this file since 2 was 2, checked in by Gregg Young, 8 years ago

Gotcha 1.78 source from Hobbes

  • Property svn:eol-style set to native
File size: 6.7 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 "mmio.h"
27#include "./settings/thth_settings.h"
28
29#define PSZ_PROFILENAME "gotcha.ini"
30
31// this should be increased every time the format of the proFile changes
32#define L_PROFILEVERSION 2
33
34#define COUNT_PAGES 4
35
36enum { SAVESTYLE_CLIPBOARD, SAVESTYLE_FILE, };
37enum {
38 BMF_12, BMF_16, BMF_20, BMF_OS13, BMF_OS20, BMF_TIF, BMF_TIFU,
39 BMF_TGA, BMF_PCX, BMF_GIF, BMF_JPG, BMF_DIB,
40 BMF_INVALID
41};
42enum { FSS_PROMPT, FSS_NUMFILES, FSS_FORCEFILE, };
43
44class ImageFormatInfo
45{
46public:
47 BOOL available;
48 USHORT type;
49 FOURCC fourcc;
50 PSZ label;
51 PSZ extension;
52 PSZ eaType;
53};
54
55// ** classdef ************************************************************ /*FOLD00*/
56
57class Settings : public ththSettings
58{
59public:
60 Settings (VOID);
61
62 BOOL Dialog (BOOL f = FALSE);
63
64 PSZ QuerySaveFile (VOID) { return QueryString (SEI_SAVEFILE); }
65 VOID SetSaveFile (PSZ psz) { SetString (SEI_SAVEFILE, psz); }
66
67 VOID SetWindowData (SWP *pswp, BOOL f = TRUE);
68 VOID QueryWindowData (SWP *pswp, USHORT us[7], BOOL f = TRUE);
69
70 BOOL HideWindow (VOID) { return QueryFlag (SEI_HIDEWINDOW); }
71 VOID HideWindow (BOOL f) { SetFlag (SEI_HIDEWINDOW, f); }
72
73 BOOL DelayedCapture (VOID) { return QueryFlag (SEI_DELAYEDCAPTURE); }
74 VOID DelayedCapture (BOOL f) { SetFlag (SEI_DELAYEDCAPTURE, f); }
75
76 BYTE QuerySaveStyle (VOID) { return QueryLong (SEI_SAVESTYLE); }
77 VOID SetSaveStyle (BYTE b) { SetLong (SEI_SAVESTYLE, b); }
78
79 BOOL AutoaddExtension (VOID) { return QueryFlag (SEI_AUTOADDEXTENSION); }
80 VOID AutoaddExtension (BOOL f) { SetFlag (SEI_AUTOADDEXTENSION, f); }
81
82 BOOL ConfirmOverwrite (VOID) { return QueryFlag (SEI_CONFIRMOVERWRITE); }
83 VOID ConfirmOverwrite (BOOL f) { SetFlag (SEI_CONFIRMOVERWRITE, f); }
84
85 PSZ QueryForceSaveFile (VOID) { return QueryString (SEI_FORCESAVEFILE); }
86 VOID SetForceSaveFile (PSZ psz) { SetString (SEI_FORCESAVEFILE, psz); }
87
88 BOOL DelayCountdown (VOID) { return QueryFlag (SEI_DELAYCOUNTDOWN); }
89 VOID DelayCountdown (BOOL f) { SetFlag (SEI_DELAYCOUNTDOWN, f); }
90
91 USHORT QueryDelayTime (VOID) { return QueryLong (SEI_DELAYTIME); }
92 VOID SetDelayTime (USHORT us) { SetLong (SEI_DELAYTIME, us); }
93
94 BOOL SnapshotWindow (VOID) { return QueryFlag (SEI_SNAPSHOTWINDOW); }
95 VOID SnapshotWindow (BOOL f) { SetFlag (SEI_SNAPSHOTWINDOW, f); }
96
97 BOOL SSWHide (VOID) { return QueryFlag (SEI_SSWHIDE); }
98 VOID SSWHide (BOOL f) { SetFlag (SEI_SSWHIDE, f); }
99
100 BOOL SSWAlwaysOnTop (VOID) { return QueryFlag (SEI_SSWALWAYSONTOP); }
101 VOID SSWAlwaysOnTop (BOOL f) { SetFlag (SEI_SSWALWAYSONTOP, f); }
102
103 BYTE QuerySSWCaptureType (VOID) { return QueryLong (SEI_SSWCAPTURETYPE); }
104 VOID SetSSWCaptureType (BYTE b) { SetLong (SEI_SSWCAPTURETYPE, b); }
105
106 BOOL SerialCapture (VOID) { return QueryFlag (SEI_SERIALCAPTURE); }
107 VOID SerialCapture (BOOL f) { SetFlag (SEI_SERIALCAPTURE, f); }
108
109 USHORT QuerySerialTime (VOID) { return QueryLong (SEI_SERIALTIME); }
110 VOID SetSerialTime (USHORT us) { SetLong (SEI_SERIALTIME, us); }
111
112 BOOL DoSound (VOID) { return QueryFlag (SEI_DOSOUND); }
113 VOID DoSound (BOOL f) { SetFlag (SEI_DOSOUND, f); }
114
115 BYTE QueryFileFormat (VOID) { return QueryLong (SEI_FILEFORMAT); }
116 VOID SetFileFormat (BYTE b) { SetLong (SEI_FILEFORMAT, b); }
117
118 BYTE QueryFileSaveStyle (VOID) { return QueryLong (SEI_FILESAVESTYLE); }
119 VOID SetFileSaveStyle (BYTE b) { SetLong (SEI_FILESAVESTYLE, b); }
120
121 PSZ QueryNumSaveDir (VOID);
122 VOID SetNumSaveDir (PSZ psz)
123 {
124 if ((psz[strlen (psz)-1] == '\\') || (psz[strlen (psz)-1] == '/'))
125 psz[strlen (psz)-1] = '\0';
126 SetString (SEI_NUMSAVEDIR, psz);
127 }
128
129 VOID SelectLanguage (VOID);
130
131 PSZ GetFileExtension( SHORT type = BMF_INVALID );
132 FOURCC GetFOURCC( SHORT type = BMF_INVALID );
133 PSZ GetFileEAType( SHORT type = BMF_INVALID );
134
135 BOOL IsMMIOAvailable( VOID );
136 class thth_MMIO *GetMMIO( VOID );
137
138protected:
139 USHORT FileNotOpenError (VOID);
140 USHORT VersionError (VOID);
141
142 BOOL ReloadResources (PSZ psz);
143
144 USHORT GetLanguages (HWND hwnd);
145
146private:
147 static MRESULT EXPENTRY
148 DialogProcedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
149 static MRESULT EXPENTRY
150 Page1Procedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
151 static MRESULT EXPENTRY
152 Page2Procedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
153 static MRESULT EXPENTRY
154 Page3Procedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
155 static MRESULT EXPENTRY
156 Page4Procedure (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
157
158 VOID AdjustButton (HWND hwnd, USHORT id, BOOL f)
159 {
160 WinSendDlgItemMsg (hwnd, id, BM_SETCHECK,
161 MPFROMLONG (f), MPFROMLONG (0));
162 }
163
164 VOID AdjustFlag (HWND hwnd, USHORT id, BOOL &f)
165 {
166 f = BOOL (WinSendDlgItemMsg (hwnd, id, BM_QUERYCHECK, 0, 0));
167 }
168
169 HWND hwndPage[COUNT_PAGES];
170 static PSZ pszPageTab[COUNT_PAGES];
171 BOOL fAutoLanguage;
172
173 thth_MMIO *mmio;
174
175 HWND hwndDlg;
176
177 static ImageFormatInfo ifi[];
178};
179
180// ** inline funcs ******************************************************** /*FOLD00*/
181
182inline VOID Settings :: SetWindowData (SWP *pswp, BOOL f = TRUE)
183{
184 // FIXME puke, yukk, choke! get this flag thing away! do it better!
185 // FIXME what is with US?
186 if (f)
187 SetBinary(SEI_SWPSSW, PVOID(pswp), sizeof(SWP));
188 else
189 SetBinary(SEI_SWP, PVOID(pswp), sizeof(SWP));
190}
191
192inline BOOL Settings :: IsMMIOAvailable( VOID )
193{
194 if( mmio ) return TRUE;
195 return FALSE;
196}
197
198inline thth_MMIO *Settings :: GetMMIO( VOID ) { return mmio; }
199
200// ************************************************************************
201#endif
Note: See TracBrowser for help on using the repository browser.