1 |
673 |
markom |
/* wintern.h*/
|
2 |
|
|
/*
|
3 |
|
|
* Copyright (c) 1999 Greg Haerr <greg@censoft.com>
|
4 |
|
|
*
|
5 |
|
|
* Microwindows internal routines header file
|
6 |
|
|
*/
|
7 |
|
|
#include <string.h>
|
8 |
|
|
|
9 |
|
|
#if (UNIX | DOS_DJGPP)
|
10 |
|
|
#define strcmpi strcasecmp
|
11 |
|
|
#elif (VXWORKS)
|
12 |
|
|
int strcmpi(const char *s1, const char *s2);
|
13 |
|
|
#endif
|
14 |
|
|
|
15 |
|
|
#ifdef __PACIFIC__
|
16 |
|
|
#define strcmpi stricmp
|
17 |
|
|
#endif
|
18 |
|
|
|
19 |
|
|
#define DBLCLICKSPEED 750 /* mouse dblclik speed msecs (was 450)*/
|
20 |
|
|
|
21 |
|
|
/* gotPaintMsg values*/
|
22 |
|
|
#define PAINT_PAINTED 0 /* WM_PAINT msg has been processed*/
|
23 |
|
|
#define PAINT_NEEDSPAINT 1 /* WM_PAINT seen, paint when can*/
|
24 |
|
|
#define PAINT_DELAYPAINT 2 /* WM_PAINT seen,paint after user move*/
|
25 |
|
|
|
26 |
|
|
/* non-win32 api access for microwin*/
|
27 |
|
|
BOOL MwSetDesktopWallpaper(PMWIMAGEHDR pImage);
|
28 |
|
|
void MwRegisterFdInput(HWND hwnd,int fd);
|
29 |
|
|
void MwUnregisterFdInput(HWND hwnd,int fd);
|
30 |
|
|
void MwRegisterFdOutput(HWND hwnd,int fd);
|
31 |
|
|
void MwUnregisterFdOutput(HWND hwnd,int fd);
|
32 |
|
|
void MwRegisterFdExcept(HWND hwnd,int fd);
|
33 |
|
|
void MwUnregisterFdExcept(HWND hwnd,int fd);
|
34 |
|
|
|
35 |
|
|
/* internal routines*/
|
36 |
|
|
|
37 |
|
|
/* winuser.c*/
|
38 |
|
|
PWNDCLASS MwFindClassByName(LPCSTR lpClassName);
|
39 |
|
|
void MwDestroyWindow(HWND hwnd,BOOL bSendMsg);
|
40 |
|
|
HWND MwGetTopWindow(HWND hwnd);
|
41 |
|
|
void MwCalcClientRect(HWND hwnd);
|
42 |
|
|
void MwSendSizeMove(HWND hwnd, BOOL bSize, BOOL bMove);
|
43 |
|
|
void MwSetCursor(HWND wp, PMWCURSOR pcursor);
|
44 |
|
|
|
45 |
|
|
/* wingdi.c*/
|
46 |
|
|
#define MwIsClientDC(hdc) (((hdc)->flags & DCX_WINDOW) == 0)
|
47 |
|
|
#define MwIsMemDC(hdc) ((hdc)->psd->flags == PSF_MEMORY)
|
48 |
|
|
void MwPaintNCArea(HWND hwnd);
|
49 |
|
|
HWND MwPrepareDC(HDC hdc);
|
50 |
|
|
void MwSetClipWindow(HDC hdc);
|
51 |
|
|
|
52 |
|
|
/* winsbar.c*/
|
53 |
|
|
void MwAdjustNCScrollbars(HWND hwnd);
|
54 |
|
|
void MwPaintNCScrollbars(HWND hwnd, HDC hdc);
|
55 |
|
|
void MwHandleNCMessageScrollbar(HWND hwnd, UINT msg, WPARAM hitcode,
|
56 |
|
|
LPARAM lParam);
|
57 |
|
|
|
58 |
|
|
/* winexpos.c*/
|
59 |
|
|
void MwRedrawScreen(void);
|
60 |
|
|
void MwHideWindow(HWND hwnd,BOOL bChangeFocus,BOOL bSendMsg);
|
61 |
|
|
void MwShowWindow(HWND hwnd,BOOL bSendMsg);
|
62 |
|
|
void MwRaiseWindow(HWND hwnd);
|
63 |
|
|
void MwLowerWindow(HWND hwnd);
|
64 |
|
|
BOOL MwCheckOverlap(HWND topwp, HWND botwp);
|
65 |
|
|
void MwClearWindow(HWND wp,MWCOORD x,MWCOORD y,MWCOORD width,
|
66 |
|
|
MWCOORD height,BOOL exposeflag);
|
67 |
|
|
void MwExposeArea(HWND wp, MWCOORD rootx,MWCOORD rooty,
|
68 |
|
|
MWCOORD width,MWCOORD height);
|
69 |
|
|
/* winevent.c*/
|
70 |
|
|
BOOL MwCheckMouseEvent(void);
|
71 |
|
|
BOOL MwCheckKeyboardEvent(void);
|
72 |
|
|
void MwHandleMouseStatus(MWCOORD newx, MWCOORD newy, int newbuttons);
|
73 |
|
|
void MwTranslateMouseMessage(HWND hwnd,UINT msg,int hittest);
|
74 |
|
|
void MwDeliverMouseEvent(int buttons, int changebuttons,
|
75 |
|
|
MWKEYMOD modifiers);
|
76 |
|
|
void MwDeliverKeyboardEvent(MWKEY keyvalue, MWKEYMOD modifiers,
|
77 |
|
|
MWSCANCODE scancode, BOOL pressed);
|
78 |
|
|
void MwDeliverExposureEvent(HWND wp, MWCOORD x, MWCOORD y,
|
79 |
|
|
MWCOORD width,MWCOORD height);
|
80 |
|
|
void MwUnionUpdateRegion(HWND wp, MWCOORD x, MWCOORD y,
|
81 |
|
|
MWCOORD width,MWCOORD height, BOOL bUnion);
|
82 |
|
|
void MwMoveCursor(MWCOORD x, MWCOORD y);
|
83 |
|
|
void MwCheckCursor(void);
|
84 |
|
|
HWND MwFindVisibleWindow(MWCOORD x, MWCOORD y);
|
85 |
|
|
void MwCheckMouseWindow(void);
|
86 |
|
|
int strzcpy(char *dst,const char *src,int dstsiz);
|
87 |
|
|
|
88 |
|
|
/* winuser.c*/
|
89 |
|
|
extern int mwSYSMETRICS_CYCAPTION;
|
90 |
|
|
extern int mwSYSMETRICS_CXBORDER;
|
91 |
|
|
extern int mwSYSMETRICS_CYBORDER;
|
92 |
|
|
extern int mwSYSMETRICS_CXFRAME;
|
93 |
|
|
extern int mwSYSMETRICS_CYFRAME;
|
94 |
|
|
extern int mwSYSMETRICS_CXDOUBLECLK;
|
95 |
|
|
extern int mwSYSMETRICS_CYDOUBLECLK;
|
96 |
|
|
extern int mwSYSMETRICS_CYHSCROLL;
|
97 |
|
|
extern int mwSYSMETRICS_CXHSCROLL;
|
98 |
|
|
extern int mwSYSMETRICS_CXVSCROLL;
|
99 |
|
|
extern int mwSYSMETRICS_CYVSCROLL;
|
100 |
|
|
|
101 |
|
|
/* wingdi.c*/
|
102 |
|
|
extern BOOL mwERASEMOVE; /* default repaint algorithm*/
|
103 |
|
|
|
104 |
|
|
/* winmain.c*/
|
105 |
|
|
int MwOpen(void);
|
106 |
|
|
void MwClose(void);
|
107 |
|
|
void MwSelect(void);
|
108 |
|
|
int MwInitialize(void);
|
109 |
|
|
void MwTerminate(void);
|
110 |
|
|
extern HWND listwp; /* list of all windows */
|
111 |
|
|
extern HWND rootwp; /* root window pointer */
|
112 |
|
|
extern HWND focuswp; /* focus window for keyboard */
|
113 |
|
|
extern HWND mousewp; /* window mouse is currently in */
|
114 |
|
|
extern HWND capturewp; /* capture window*/
|
115 |
|
|
extern HWND dragwp; /* window user is dragging*/
|
116 |
|
|
extern HCURSOR curcursor; /* currently enabled cursor */
|
117 |
|
|
extern MWCOORD cursorx; /* x position of cursor */
|
118 |
|
|
extern MWCOORD cursory; /* y position of cursor */
|
119 |
|
|
extern MWSCREENINFO sinfo; /* screen information */
|
120 |
|
|
extern DWORD startTicks; /* tickcount on startup */
|
121 |
|
|
extern int mwpaintNC; /* experimental nonclient regions*/
|
122 |
|
|
extern BOOL mwforceNCpaint; /* force NC paint for alphablend*/
|
123 |
|
|
|
124 |
|
|
#if VTSWITCH
|
125 |
|
|
/* temp framebuffer vt switch stuff at upper level
|
126 |
|
|
* this should be handled at the lower level, just like vgalib does.
|
127 |
|
|
*/
|
128 |
|
|
void MwInitVt(void);
|
129 |
|
|
int MwCurrentVt(void);
|
130 |
|
|
int MwCheckVtChange(void);
|
131 |
|
|
void MwRedrawVt(int t);
|
132 |
|
|
void MwExitVt(void);
|
133 |
|
|
extern int mwvterm;
|
134 |
|
|
#endif /* VTSWITCH*/
|