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