Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / sdk / lib / 3rdparty / cardlib / cardlib.h
diff --git a/sdk/lib/3rdparty/cardlib/cardlib.h b/sdk/lib/3rdparty/cardlib/cardlib.h
new file mode 100644 (file)
index 0000000..df622ee
--- /dev/null
@@ -0,0 +1,110 @@
+#ifndef CARDLIB_INCLUDED
+#define CARDLIB_INCLUDED
+
+#include <stdarg.h>
+#include <stdlib.h>
+
+#define WIN32_NO_STATUS
+#include <windef.h>
+#include <winbase.h>
+#include <wingdi.h>
+#include <winuser.h>
+
+#define CARDLIBPROC __stdcall
+
+void CardBlt(HDC hdc, int x, int y, int nCardNum);
+void CardLib_SetZoomSpeed(int);
+
+#define CS_EI_NONE     0
+#define CS_EI_SUNK     1
+#define CS_EI_CIRC     67
+#define CS_EI_X                66
+
+#define CS_DEFXOFF                     12              //x-offset
+#define CS_DEFYOFF                     18              //y-offset
+#define CS_NO3D                                1               //default 3d counts (recommened)
+#define CS_DEF3D                       10              //(best for decks)
+
+#define CS_DRAG_NONE           0
+#define CS_DRAG_TOP                    1
+#define CS_DRAG_ALL                    2
+#define CS_DRAG_CALLBACK       3
+
+#define CS_DROP_NONE           0
+#define CS_DROP_ALL                    1
+#define        CS_DROP_CALLBACK        2
+
+#define CS_XJUST_NONE          0
+#define CS_XJUST_RIGHT         1
+#define CS_XJUST_CENTER                2
+
+#define CS_YJUST_NONE          0
+#define CS_YJUST_BOTTOM                1
+#define CS_YJUST_CENTER                2
+
+#define CB_STATIC                      0               //static text label
+#define CB_PUSHBUTTON          1               //normal button
+#define CB_ALIGN_CENTER                0               //centered is default
+#define CB_ALIGN_LEFT          2
+#define CB_ALIGN_RIGHT         4
+
+#define CS_FACE_UP              0      //all cards face-up
+#define CS_FACE_DOWN    1      //all cards face-down
+#define CS_FACE_DOWNUP  2      //bottom X cards down, top-most face-up
+#define CS_FACE_UPDOWN  3      //bottom X cards up, top-most face-down
+#define CS_FACE_ANY             4      //cards can be any orientation
+
+#define CS_DROPZONE_NODROP     -1
+
+//
+//     Define the standard card-back indices
+//
+#define ecbCROSSHATCH  53
+#define ecbWEAVE1              54
+#define ecbWEAVE2              55
+#define ecbROBOT               56
+#define ecbFLOWERS             57
+#define ecbVINE1               58
+#define ecbVINE2               59
+#define ecbFISH1               60
+#define ecbFISH2               61
+#define ecbSHELLS              62
+#define ecbCASTLE              63
+#define ecbISLAND              64
+#define ecbCARDHAND            65
+#define ecbUNUSED              66
+#define ecbTHE_X               67
+#define ecbTHE_O               68
+
+
+class CardRegion;
+class CardButton;
+class CardStack;
+class CardWindow;
+
+typedef bool (CARDLIBPROC *pCanDragProc)    (CardRegion &stackobj, int iNumDragging);
+typedef bool (CARDLIBPROC *pCanDropProc)    (CardRegion &stackobj, CardStack &cards);
+typedef void (CARDLIBPROC *pClickProc)      (CardRegion &stackobj, int iNumCards);
+typedef void (CARDLIBPROC *pAddProc)        (CardRegion &stackobj, const CardStack &cards);
+typedef void (CARDLIBPROC *pRemoveProc)     (CardRegion &stackobj, int iNumRemoved);
+
+typedef void (CARDLIBPROC *pResizeWndProc)  (int width, int height);
+typedef int  (CARDLIBPROC *pDropZoneProc)   (int dzid, const CardStack &cards);
+
+typedef void (CARDLIBPROC *pButtonProc)                (CardButton &pButton);
+
+#include "globals.h"
+#include "card.h"
+#include "cardbutton.h"
+#include "cardcolor.h"
+#include "cardstack.h"
+#include "cardregion.h"
+#include "dropzone.h"
+#include "cardwindow.h"
+
+#ifdef _DEBUG
+typedef bool (CARDLIBPROC *pDebugClickProc) (CardRegion &stackobj);
+void CardLib_SetStackClickProc(pDebugClickProc proc);
+#endif
+
+#endif /* CARDLIB_INCLUDED */