Actual source code: win32draw.h
4: #include <stdio.h>
5: #if defined(PETSC_HAVE_WINDOWS_H)
6: #include <windows.h>
7: #endif
8: #if defined(PETSC_HAVE_WINDOWSX_H)
9: #include <windowsx.h>
10: #endif
11: #include <math.h>
12: #if defined(PETSC_HAVE_TIME_H)
13: #include <time.h>
14: #endif
15: #if defined(PETSC_HAVE_STDLIB_H)
16: #include <stdlib.h>
17: #endif
18: #include "petscdraw.h"
20: /* Nodes that record mouse actions when needed */
21: typedef struct _p_MouseNode *MouseNode;
22: struct _p_MouseNode{
23: PetscDrawButton Button;
24: POINT user;
25: POINT phys;
26: MouseNode mnext;
27: int Length;
28: };
30: /* nodes that contain handle to all user created windows */
31: typedef struct _p_WindowNode *WindowNode;
32: struct _p_WindowNode {
33: HWND hWnd;
34: WindowNode wnext,wprev;
35: HANDLE event;
36: MouseNode MouseListHead;
37: MouseNode MouseListTail;
38: BOOL IsGetMouseOn;
39: PetscTruth DoubleBuffered;
40: HDC Buffer,DoubleBuffer;
41: HBITMAP BufferBit,DoubleBufferBit;
42: HGDIOBJ store,dbstore;
43: int bitwidth,bitheight;
44: };
46: /* Nodes that hold all information about a windows device context */
47: typedef struct {
48: HDC hdc;
49: HWND hWnd;
50: int linewidth;
51: int pointdiameter;
52: COLORREF currentcolor;
53: int stringheight;
54: int stringwidth;
55: int pause;
56: PetscTruth haveresized;
57: HANDLE hReadyEvent;
58: int x,y,w,h; /* Size and location of window */
59: WindowNode node;/* so we can grab windownode info if needed */
60: DWORD popup,caption,overlapped;
61:
62: } PetscDraw_Win32;
66: #endif