File: winMS.h

package info (click to toggle)
glhack 1.2-1
  • links: PTS
  • area: main
  • in suites: squeeze, wheezy
  • size: 24,604 kB
  • ctags: 18,992
  • sloc: ansic: 208,570; cpp: 13,139; yacc: 2,005; makefile: 1,161; lex: 377; sh: 321; awk: 89; sed: 11
file content (182 lines) | stat: -rw-r--r-- 5,513 bytes parent folder | download | duplicates (22)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
/* Copyright (C) 2001 by Alex Kompel <shurikk@pacbell.net> */
/* NetHack may be freely redistributed.  See license for details. */

#ifndef WINMS_H
#define WINMS_H

#pragma warning(disable:4142) /* benign redefinition of type */

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <commctrl.h>
#include <tchar.h>
#include <newres.h>
#include "resource.h"
#include "hack.h"

#if defined(WIN_CE_POCKETPC)
#include <aygshell.h> 
#include <sipapi.h>
#endif

#if defined(WIN_CE_SMARTPHONE)
#include <aygshell.h> 
#include <sipapi.h>
#include <shlobj.h>
#include <prsht.h>
#include <Tpcshell.h>
#include <windowsm.h>
#include <KEYBD.H>
#endif

#if defined(WIN_CE_PS2xx) || defined(WIN32_PLATFORM_HPCPRO)
#include <sipapi.h>
#endif

/* Taskbar Menu height */
#define MENU_HEIGHT 26

/* Create an array to keep track of the various windows */

#ifndef MAXWINDOWS
#define MAXWINDOWS 15
#endif

/* RIP window ID */
#define NHW_RIP		32
#define NHW_KEYPAD  33

/* size of tiles */
#ifndef TILE_X
#define TILE_X 16
#endif
#define TILE_Y 16

/* tiles per line in the bitmap */
#define TILES_PER_LINE  40

/* tile background color */
#define TILE_BK_COLOR RGB(71, 108, 108)

/* minimum/maximum font size (in points - 1/72 inch) */
#define NHFONT_DEFAULT_SIZE 9
#define NHFONT_STATUS_DEFAULT_SIZE 6
#define NHFONT_SIZE_MIN 3
#define NHFONT_SIZE_MAX 20

typedef struct mswin_nhwindow_data {
  HWND	      win;
  int		  type;
  int		  dead;
} MSNHWinData, *PMSNHWinData;

/* global application data - alailable thour GetNHApp() */
typedef struct mswin_nhwindow_app {
	HINSTANCE   hApp;		/* hInstance from WinMain */
	int			nCmdShow;	/* main window mode flag */
	HWND		hMainWnd;	/* main window handle */
	HACCEL		hAccelTable; /* accelerator table */
	HWND		hPopupWnd;	/* active dialog window (nethack menu, text, etc) */
	HWND		hMenuBar;	/* menu bar */

	MSNHWinData windowlist[MAXWINDOWS];	/* nethack windows array */

	HBITMAP		bmpTiles;	/* nethack tiles */
	HBITMAP		bmpPetMark; /* pet mark Bitmap */
	HBITMAP		bmpMapTiles; /* alternative map tiles */
	int			mapTile_X;	/* alt. tiles width */
	int			mapTile_Y;	/* alt. tiles height */
	int			mapTilesPerLine;	/* number of tile per row in the bitmap */

	boolean		bNoHScroll;	/* disable cliparound for horizontal grid (map) */
	boolean		bNoVScroll; /* disable cliparound for vertical grid (map) */

	int			mapDisplayModeSave;	/* saved map display mode */

	int			bCmdPad;	/* command pad - on-screen keyboard */ 
	HWND		hCmdWnd;	/* handle of on-screen keyboard window */

	/* options */
	boolean		bWrapText;	/* format text to fit the window */
	boolean		bFullScreen;/* run nethack in full-screen mode  */
	boolean		bHideScrollBars; /* hide scroll bars */
	boolean		bUseSIP; /* use SIP (built-in software keyboard) for menus (PocketPC only) */
} NHWinApp, *PNHWinApp;
extern PNHWinApp GetNHApp();

#define E extern

E struct window_procs mswin_procs;

#undef E

/* Some prototypes */
void mswin_init_nhwindows(int* argc, char** argv);
void mswin_player_selection(void);
void mswin_askname(void);
void mswin_get_nh_event(void);
void mswin_exit_nhwindows(const char *);
void mswin_suspend_nhwindows(const char *);
void mswin_resume_nhwindows(void);
winid mswin_create_nhwindow(int type);
void mswin_clear_nhwindow(winid wid);
void mswin_display_nhwindow(winid wid, BOOLEAN_P block);
void mswin_destroy_nhwindow(winid wid);
void mswin_curs(winid wid, int x, int y);
void mswin_putstr(winid wid, int attr, const char *text);
void mswin_putstr_ex(winid wid, int attr, const char *text, boolean append);
void mswin_display_file(const char *filename,BOOLEAN_P must_exist);
void mswin_start_menu(winid wid);
void mswin_add_menu(winid wid, int glyph, const ANY_P * identifier,
		CHAR_P accelerator, CHAR_P group_accel, int attr, 
		const char *str, BOOLEAN_P presel);
void mswin_end_menu(winid wid, const char *prompt);
int  mswin_select_menu(winid wid, int how, MENU_ITEM_P **selected);
void mswin_update_inventory(void);
void mswin_mark_synch(void);
void mswin_wait_synch(void);
void mswin_cliparound(int x, int y);
void mswin_print_glyph(winid wid,XCHAR_P x,XCHAR_P y,int glyph);
void mswin_raw_print(const char *str);
void mswin_raw_print_bold(const char *str);
int  mswin_nhgetch(void);
int  mswin_nh_poskey(int *x, int *y, int *mod);
void mswin_nhbell(void);
int  mswin_doprev_message(void);
char mswin_yn_function(const char *question, const char *choices,
		CHAR_P def);
void mswin_getlin(const char *question, char *input);
int  mswin_get_ext_cmd(void);
void mswin_number_pad(int state);
void mswin_delay_output(void);
void mswin_change_color(void);
char *mswin_get_color_string(void);
void mswin_start_screen(void);
void mswin_end_screen(void);
void mswin_outrip(winid wid, int how);
void mswin_preference_update(const char *pref);

/* helper function */
HWND mswin_hwnd_from_winid(winid wid);
winid mswin_winid_from_type(int type);
winid mswin_winid_from_handle(HWND hWnd);
void mswin_window_mark_dead(winid wid);
void bail(const char *mesg);
void nhapply_image_transparent( 
	HDC hDC, int x, int y, int width, int height,
	HDC sourceDC, int s_x, int s_y, int s_width, int s_height,
	COLORREF cTransparent
);
void mswin_popup_display(HWND popup, int* done_indicator);
void mswin_popup_destroy(HWND popup);

#if defined(WIN_CE_SMARTPHONE)
void NHSPhoneDialogSetup(HWND hDlg, BOOL is_edit, BOOL is_fullscreen);
#endif

void mswin_read_reg(void);
void mswin_destroy_reg(void);
void mswin_write_reg(void);

void mswin_set_fullscreen(BOOL is_fullscreen);
#endif /* WINmswin_H */