[MSTSC]
[reactos.git] / reactos / base / applications / games / solitaire / solitaire.h
1
2 #include <windows.h>
3 #include <commctrl.h>
4 #include <tchar.h>
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include "resource.h"
8 #include "cardlib.h"
9
10 extern CardWindow SolWnd;
11 extern TCHAR szAppName[];
12 extern bool fGameStarted;
13
14 #define OPTION_SHOW_STATUS 4
15 #define OPTION_THREE_CARDS 8
16 #define CARDBACK_START IDC_CARDBACK1
17 #define CARDBACK_END IDC_CARDBACK12
18 #define NUM_CARDBACKS (CARDBACK_END - CARDBACK_START + 1)
19 #define CARDBACK_RES_START 53
20 /* Display option cards with half the size */
21 #define CARDBACK_OPTIONS_WIDTH 36
22 #define CARDBACK_OPTIONS_HEIGHT 48
23
24 extern DWORD dwOptions;
25
26 void CreateSol(void);
27 void NewGame(void);
28
29 #define NUM_ROW_STACKS 7
30 #define DECK_ID 1
31 #define PILE_ID 2
32 #define SUIT_ID 4
33 #define ROW_ID 10
34
35 // Various metrics used for placing the objects and computing the minimum window size
36 #define X_BORDER 20
37 #define X_PILE_BORDER 18
38 #define X_ROWSTACK_BORDER 10
39 #define X_SUITSTACK_BORDER 10
40 #define Y_BORDER 20
41 #define Y_ROWSTACK_BORDER 32
42 extern int yRowStackCardOffset;
43
44 extern CardRegion *pDeck;
45 extern CardRegion *pPile;
46 extern CardRegion *pSuitStack[];
47 extern CardRegion *pRowStack[];
48
49
50 bool CARDLIBPROC RowStackDragProc(CardRegion &stackobj, int iNumCards);
51 bool CARDLIBPROC RowStackDropProc(CardRegion &stackobj, CardStack &dragcards);
52
53 bool CARDLIBPROC SuitStackDropProc(CardRegion &stackobj, CardStack &dragcards);
54 void CARDLIBPROC SuitStackAddProc(CardRegion &stackobj, const CardStack &added);
55
56 void CARDLIBPROC RowStackClickProc(CardRegion &stackobj, int iNumClicked);
57 void CARDLIBPROC RowStackDblClickProc(CardRegion &stackobj, int iNumClicked);
58
59 void CARDLIBPROC DeckClickProc(CardRegion &stackobj, int iNumClicked);
60 void CARDLIBPROC PileDblClickProc(CardRegion &stackobj, int iNumClicked);
61
62 void CARDLIBPROC PileRemoveProc(CardRegion &stackobj, int iRemoved);