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