source: trunk/dll/key.c@ 1880

Last change on this file since 1880 was 1880, checked in by Gregg Young, 10 years ago

Remove dead code and comments from remaining c files. #if 0 and #if NEVER were not addressed

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 10.0 KB
RevLine 
[2]1
[119]2/***********************************************************************
3
4 $Id: key.c 1880 2015-10-12 18:26:16Z gyoung $
5
6 About dialogs
7
8 Copyright (c) 1993-98 M. Kimes
[1498]9 Copyright (c) 2004, 2010 Steven H. Levine
[119]10
[793]11 Revisions
[775]12 01 Nov 04 SHL Rename SKULL? defines to avoid rc issues
13 06 Aug 07 GKY Reduce DosSleep times (ticket 148)
[793]14 20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat
[1444]15 13 Jul 09 SHL Sync with renames
[1498]16 17 JAN 10 GKY Changes to get working with Watcom 1.9 Beta (1/16/10). Mostly cast CHAR CONSTANT * as CHAR *.
[119]17
18***********************************************************************/
19
[907]20#include <string.h>
21
[2]22#define INCL_DOS
23#define INCL_WIN
[907]24#define INCL_LONGLONG // dircnrs.h
[2]25
[1179]26#include "fm3dll.h"
[1224]27#include "fm3dll2.h" // #define's for UM_*, control id's, etc.
[1209]28#include "mainwnd2.h" // Data declaration(s)
29#include "mainwnd.h" // Data declaration(s)
[2]30#include "fm3dlg.h"
31#include "fm3str.h"
32#include "version.h"
[907]33#include "errutil.h" // Dos_Error...
34#include "strutil.h" // GetPString
[1157]35#include "key.h" // AboutDlgProc
[1179]36#include "misc.h" // PostMsg
[2]37
[1209]38// Data declarations
39#pragma data_seg(GLOBAL1)
40static HWND AboutBox;
41
[2]42#pragma data_seg(DATA1)
43
[551]44MRESULT EXPENTRY AuthorDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[119]45{
[551]46 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]47}
48
[551]49MRESULT EXPENTRY AboutDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
[119]50{
[551]51 SWP swp;
52 static HAB hab = 0;
53 BOOL no = FALSE;
[1444]54 static BOOL noanimation;
55 static INT width, direction, ticktock, counter;
[551]56 static HPOINTER stick1, stick2, stick3, stick4, stick12, stick22, stick32,
[1471]57 stick42, stick5, stick52;
[2]58
[551]59 switch (msg) {
60 case WM_INITDLG:
61 if (hab) {
62 WinDismissDlg(hwnd, 0);
[2]63 break;
[551]64 }
65 if (mp2)
[1444]66 noanimation = TRUE;
[551]67 else
[1444]68 noanimation = FALSE;
[551]69 AboutBox = hwnd;
70 hab = WinQueryAnchorBlock(hwnd);
71 WinQueryWindowPos(hwnd, &swp);
72 width = swp.cx;
73 {
74 CHAR s[81];
[2]75
[551]76 sprintf(s,
77 "%s %d.%02d%s",
78 GetPString(IDS_VERSIONTEXT), VERMAJOR, VERMINOR, VERREALMINOR);
79 WinSetDlgItemText(hwnd, ABT_VERSION, s);
80 }
81 if (!strcmp(realappname, "FM/4"))
[1498]82 WinSetDlgItemText(hwnd, ABT_PROGNAME, (CHAR *) GetPString(IDS_FM2LITETEXT));
[1444]83 if (!noanimation) {
[551]84 stick1 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, ID_STICK1);
85 stick2 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, ID_STICK2);
86 stick3 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, ID_STICK3);
87 stick4 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, ID_STICK4);
88 stick5 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, ID_STICK5);
89 stick12 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, ID_STICK12);
90 stick22 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, ID_STICK22);
91 stick32 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, ID_STICK32);
92 stick42 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, ID_STICK42);
93 stick52 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, ID_STICK52);
94 direction = 2;
95 ticktock = 0;
[1444]96 WinStartTimer(hab, hwnd, ID_ABOUT_TIMER, 164);
[551]97 PostMsg(hwnd, UM_SETUP, MPVOID, MPVOID);
98 }
99 break;
[2]100
[551]101 case UM_SETUP:
102 if (counter++ > 1) {
[2]103
[551]104 HPOINTER hbm, sk0, sk1, sk2, sk3, sk4, sk5, sk6, sk7, sk8, sk9;
105
106 hbm = (HPOINTER) WinSendDlgItemMsg(hwnd,
107 ABT_ICON,
108 SM_QUERYHANDLE, MPVOID, MPVOID);
109 if (hbm) {
110 sk0 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, SKULL0_ICON);
111 sk1 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, SKULL1_ICON);
112 sk2 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, SKULL2_ICON);
113 sk3 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, SKULL3_ICON);
114 sk4 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, SKULL4_ICON);
115 sk5 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, SKULL5_ICON);
116 sk6 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, SKULL6_ICON);
117 sk7 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, SKULL7_ICON);
118 sk8 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, SKULL8_ICON);
119 sk9 = WinLoadPointer(HWND_DESKTOP, FM3ModHandle, SKULL9_ICON);
120 if (sk0 && sk1 && sk2 && sk3 && sk4 && sk5 && sk6 && sk7 &&
121 sk8 && sk9) {
122 WinShowWindow(WinWindowFromID(hwnd, ABT_ICON), FALSE);
123 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
124 MPFROMLONG(sk0), MPVOID);
125 WinShowWindow(WinWindowFromID(hwnd, ABT_ICON), TRUE);
[771]126 DosSleep(16);
[551]127 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
128 MPFROMLONG(sk1), MPVOID);
[1880]129 DosSleep(16);
[551]130 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
131 MPFROMLONG(sk2), MPVOID);
[1880]132 DosSleep(16);
[551]133 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
134 MPFROMLONG(sk3), MPVOID);
[1880]135 DosSleep(16);
[551]136 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
137 MPFROMLONG(sk4), MPVOID);
[1880]138 DosSleep(16);
[551]139 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
140 MPFROMLONG(sk5), MPVOID);
[1880]141 DosSleep(16);
[551]142 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
143 MPFROMLONG(sk6), MPVOID);
[1880]144 DosSleep(16);
[551]145 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
146 MPFROMLONG(sk7), MPVOID);
[1880]147 DosSleep(16);
[551]148 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
149 MPFROMLONG(sk8), MPVOID);
[1880]150 DosSleep(16);
[551]151 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
152 MPFROMLONG(sk9), MPVOID);
[1880]153 DosSleep(100);
[551]154 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
155 MPFROMLONG(sk8), MPVOID);
[1880]156 DosSleep(16);
[551]157 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
158 MPFROMLONG(sk7), MPVOID);
[1880]159 DosSleep(16);
[551]160 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
161 MPFROMLONG(sk6), MPVOID);
[1880]162 DosSleep(16);
[551]163 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
164 MPFROMLONG(sk5), MPVOID);
[1880]165 DosSleep(16);
[551]166 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
167 MPFROMLONG(sk4), MPVOID);
[1880]168 DosSleep(16);
[551]169 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
170 MPFROMLONG(sk3), MPVOID);
[1880]171 DosSleep(16);
[551]172 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
173 MPFROMLONG(sk2), MPVOID);
[1880]174 DosSleep(16);
[551]175 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
176 MPFROMLONG(sk1), MPVOID);
[1880]177 DosSleep(16);
[551]178 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
179 MPFROMLONG(sk0), MPVOID);
[1880]180 DosSleep(16);
[551]181 WinShowWindow(WinWindowFromID(hwnd, ABT_ICON), FALSE);
182 WinSendDlgItemMsg(hwnd, ABT_ICON, SM_SETHANDLE,
183 MPFROMLONG(hbm), MPVOID);
184 WinShowWindow(WinWindowFromID(hwnd, ABT_ICON), TRUE);
185 }
186 if (sk0)
187 WinDestroyPointer(sk0);
188 if (sk1)
189 WinDestroyPointer(sk1);
190 if (sk2)
191 WinDestroyPointer(sk2);
192 if (sk3)
193 WinDestroyPointer(sk3);
194 if (sk4)
195 WinDestroyPointer(sk4);
196 if (sk5)
197 WinDestroyPointer(sk5);
198 if (sk6)
199 WinDestroyPointer(sk6);
200 if (sk7)
201 WinDestroyPointer(sk7);
202 if (sk8)
203 WinDestroyPointer(sk8);
204 if (sk9)
205 WinDestroyPointer(sk9);
[2]206 }
[551]207 }
208 if (counter > 4)
209 WinDlgBox(HWND_DESKTOP,
210 hwnd, AuthorDlgProc, FM3ModHandle, AUTHOR_FRAME, NULL);
211 return 0;
[2]212
[551]213 case UM_SETDIR:
214 WinSetFocus(HWND_DESKTOP, HWND_DESKTOP);
[1880]215 DosSleep(250);
[551]216 return 0;
[2]217
[551]218 case WM_TIMER:
219 WinQueryWindowPos(WinWindowFromID(hwnd, ABT_STICK1), &swp);
220 if (swp.x + (swp.cx * 3) > width - 3) {
221 direction = -2;
222 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK1), FALSE);
223 WinSendDlgItemMsg(hwnd,
224 ABT_STICK1, SM_SETHANDLE, MPFROMLONG(stick3), MPVOID);
225 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK1), TRUE);
226 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK2), FALSE);
227 WinSendDlgItemMsg(hwnd,
228 ABT_STICK2,
229 SM_SETHANDLE, MPFROMLONG(stick32), MPVOID);
230 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK2), TRUE);
231 no = TRUE;
232 }
233 else if (swp.x < 3) {
234 direction = 2;
235 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK2), FALSE);
236 WinSendDlgItemMsg(hwnd, ABT_STICK2,
237 SM_SETHANDLE, MPFROMLONG(stick32), MPVOID);
238 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK2), TRUE);
239 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK1), FALSE);
240 WinSendDlgItemMsg(hwnd,
241 ABT_STICK1, SM_SETHANDLE, MPFROMLONG(stick3), MPVOID);
242 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK1), TRUE);
243 no = TRUE;
244 }
245 swp.x += direction;
246 WinSetWindowPos(WinWindowFromID(hwnd, ABT_STICK1),
247 HWND_TOP, swp.x, swp.y, swp.cx, swp.cy, SWP_MOVE);
248 WinSetWindowPos(WinWindowFromID(hwnd, ABT_ICON),
249 HWND_TOP,
250 swp.x + swp.cx, swp.y, swp.cx, swp.cy, SWP_MOVE);
251 WinSetWindowPos(WinWindowFromID(hwnd, ABT_STICK2),
252 HWND_TOP,
253 swp.x + (swp.cx * 2), swp.y, swp.cx, swp.cy, SWP_MOVE);
254 if (!no) {
255 if (direction > 0) {
256 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK1), FALSE);
257 WinSendDlgItemMsg(hwnd,
258 ABT_STICK1,
259 SM_SETHANDLE,
260 MPFROMLONG((ticktock) ? stick1 : stick2), MPVOID);
261 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK1), TRUE);
262 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK2), FALSE);
263 WinSendDlgItemMsg(hwnd,
264 ABT_STICK2,
265 SM_SETHANDLE,
266 MPFROMLONG((ticktock) ? stick42 : stick52), MPVOID);
267 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK2), TRUE);
[2]268 }
[551]269 else {
270 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK2), FALSE);
271 WinSendDlgItemMsg(hwnd,
272 ABT_STICK2,
273 SM_SETHANDLE,
274 MPFROMLONG((ticktock) ? stick12 : stick22), MPVOID);
275 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK2), TRUE);
276 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK1), FALSE);
277 WinSendDlgItemMsg(hwnd,
278 ABT_STICK1,
279 SM_SETHANDLE,
280 MPFROMLONG((ticktock) ? stick4 : stick5), MPVOID);
281 WinShowWindow(WinWindowFromID(hwnd, ABT_STICK1), TRUE);
[2]282 }
[551]283 }
284 ticktock = (ticktock) ? 0 : 1;
285 break;
286
287 case WM_COMMAND:
288 switch (SHORT1FROMMP(mp1)) {
289 case ABT_VERSION:
290 case DID_CANCEL:
291 WinDismissDlg(hwnd, 0);
[2]292 break;
[551]293 }
294 return 0;
[2]295
[551]296 case WM_CLOSE:
297 WinDestroyWindow(hwnd);
298 return 0;
[2]299
[551]300 case WM_DESTROY:
301 if (hab) {
[1444]302 if (!noanimation) {
303 WinStopTimer(hab, hwnd, ID_ABOUT_TIMER);
[551]304 WinDestroyPointer(stick1);
305 WinDestroyPointer(stick2);
306 WinDestroyPointer(stick3);
307 WinDestroyPointer(stick4);
308 WinDestroyPointer(stick5);
309 WinDestroyPointer(stick12);
310 WinDestroyPointer(stick22);
311 WinDestroyPointer(stick32);
312 WinDestroyPointer(stick42);
313 WinDestroyPointer(stick52);
[2]314 }
[551]315 hab = 0;
316 }
317 AboutBox = (HWND) 0;
318 break;
[2]319 }
[551]320 return WinDefDlgProc(hwnd, msg, mp1, mp2);
[2]321}
[793]322
323#pragma alloc_text(ABOUT,AboutDlgProc,AuthorDlgProc)
Note: See TracBrowser for help on using the repository browser.