239 |
Lisp_Object Qw32_charset_unicode; |
Lisp_Object Qw32_charset_unicode; |
240 |
#endif |
#endif |
241 |
|
|
242 |
|
/* Prefix for system colors. */ |
243 |
|
#define SYSTEM_COLOR_PREFIX "System" |
244 |
|
#define SYSTEM_COLOR_PREFIX_LEN (sizeof (SYSTEM_COLOR_PREFIX) - 1) |
245 |
|
|
246 |
/* State variables for emulating a three button mouse. */ |
/* State variables for emulating a three button mouse. */ |
247 |
#define LMOUSE 1 |
#define LMOUSE 1 |
248 |
#define MMOUSE 2 |
#define MMOUSE 2 |
257 |
/* Window that is tracking the mouse. */ |
/* Window that is tracking the mouse. */ |
258 |
static HWND track_mouse_window; |
static HWND track_mouse_window; |
259 |
|
|
260 |
typedef BOOL (WINAPI * TrackMouseEvent_Proc) ( |
typedef BOOL (WINAPI * TrackMouseEvent_Proc) |
261 |
IN OUT LPTRACKMOUSEEVENT lpEventTrack |
(IN OUT LPTRACKMOUSEEVENT lpEventTrack); |
|
); |
|
262 |
|
|
263 |
TrackMouseEvent_Proc track_mouse_event_fn=NULL; |
TrackMouseEvent_Proc track_mouse_event_fn = NULL; |
264 |
|
ClipboardSequence_Proc clipboard_sequence_fn = NULL; |
265 |
|
|
266 |
/* W95 mousewheel handler */ |
/* W95 mousewheel handler */ |
267 |
unsigned int msh_mousewheel = 0; |
unsigned int msh_mousewheel = 0; |
659 |
ClientToScreen (FRAME_W32_WINDOW(f), &pt); |
ClientToScreen (FRAME_W32_WINDOW(f), &pt); |
660 |
|
|
661 |
/* Remember x_pixels_diff and y_pixels_diff. */ |
/* Remember x_pixels_diff and y_pixels_diff. */ |
662 |
f->output_data.w32->x_pixels_diff = pt.x - rect.left; |
f->x_pixels_diff = pt.x - rect.left; |
663 |
f->output_data.w32->y_pixels_diff = pt.y - rect.top; |
f->y_pixels_diff = pt.y - rect.top; |
664 |
|
|
665 |
*xptr = pt.x; |
*xptr = pt.x; |
666 |
*yptr = pt.y; |
*yptr = pt.y; |
1081 |
return ret; |
return ret; |
1082 |
} |
} |
1083 |
|
|
1084 |
|
|
1085 |
|
static void |
1086 |
|
add_system_logical_colors_to_map (system_colors) |
1087 |
|
Lisp_Object *system_colors; |
1088 |
|
{ |
1089 |
|
HKEY colors_key; |
1090 |
|
|
1091 |
|
/* Other registry operations are done with input blocked. */ |
1092 |
|
BLOCK_INPUT; |
1093 |
|
|
1094 |
|
/* Look for "Control Panel/Colors" under User and Machine registry |
1095 |
|
settings. */ |
1096 |
|
if (RegOpenKeyEx (HKEY_CURRENT_USER, "Control Panel\\Colors", 0, |
1097 |
|
KEY_READ, &colors_key) == ERROR_SUCCESS |
1098 |
|
|| RegOpenKeyEx (HKEY_LOCAL_MACHINE, "Control Panel\\Colors", 0, |
1099 |
|
KEY_READ, &colors_key) == ERROR_SUCCESS) |
1100 |
|
{ |
1101 |
|
/* List all keys. */ |
1102 |
|
char color_buffer[64]; |
1103 |
|
char full_name_buffer[MAX_PATH + SYSTEM_COLOR_PREFIX_LEN]; |
1104 |
|
int index = 0; |
1105 |
|
DWORD name_size, color_size; |
1106 |
|
char *name_buffer = full_name_buffer + SYSTEM_COLOR_PREFIX_LEN; |
1107 |
|
|
1108 |
|
name_size = sizeof (full_name_buffer) - SYSTEM_COLOR_PREFIX_LEN; |
1109 |
|
color_size = sizeof (color_buffer); |
1110 |
|
|
1111 |
|
strcpy (full_name_buffer, SYSTEM_COLOR_PREFIX); |
1112 |
|
|
1113 |
|
while (RegEnumValueA (colors_key, index, name_buffer, &name_size, |
1114 |
|
NULL, NULL, color_buffer, &color_size) |
1115 |
|
== ERROR_SUCCESS) |
1116 |
|
{ |
1117 |
|
int r, g, b; |
1118 |
|
if (sscanf (color_buffer, " %u %u %u", &r, &g, &b) == 3) |
1119 |
|
*system_colors = Fcons (Fcons (build_string (full_name_buffer), |
1120 |
|
make_number (RGB (r, g, b))), |
1121 |
|
*system_colors); |
1122 |
|
|
1123 |
|
name_size = sizeof (full_name_buffer) - SYSTEM_COLOR_PREFIX_LEN; |
1124 |
|
color_size = sizeof (color_buffer); |
1125 |
|
index++; |
1126 |
|
} |
1127 |
|
RegCloseKey (colors_key); |
1128 |
|
} |
1129 |
|
|
1130 |
|
UNBLOCK_INPUT; |
1131 |
|
} |
1132 |
|
|
1133 |
|
|
1134 |
COLORREF |
COLORREF |
1135 |
x_to_w32_color (colorname) |
x_to_w32_color (colorname) |
1136 |
char * colorname; |
char * colorname; |
1322 |
return ret; |
return ret; |
1323 |
} |
} |
1324 |
|
|
|
|
|
1325 |
void |
void |
1326 |
w32_regenerate_palette (FRAME_PTR f) |
w32_regenerate_palette (FRAME_PTR f) |
1327 |
{ |
{ |
1822 |
|
|
1823 |
f->output_data.w32->border_pixel = pix; |
f->output_data.w32->border_pixel = pix; |
1824 |
|
|
1825 |
if (FRAME_W32_WINDOW (f) != 0 && f->output_data.w32->border_width > 0) |
if (FRAME_W32_WINDOW (f) != 0 && f->border_width > 0) |
1826 |
{ |
{ |
1827 |
if (FRAME_VISIBLE_P (f)) |
if (FRAME_VISIBLE_P (f)) |
1828 |
redraw_frame (f); |
redraw_frame (f); |
1971 |
/* Adjust the frame size so that the client (text) dimensions |
/* Adjust the frame size so that the client (text) dimensions |
1972 |
remain the same. This depends on FRAME_EXTERNAL_MENU_BAR being |
remain the same. This depends on FRAME_EXTERNAL_MENU_BAR being |
1973 |
set correctly. */ |
set correctly. */ |
1974 |
x_set_window_size (f, 0, FRAME_WIDTH (f), FRAME_HEIGHT (f)); |
x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f)); |
1975 |
do_pending_window_change (0); |
do_pending_window_change (0); |
1976 |
} |
} |
1977 |
adjust_glyphs (f); |
adjust_glyphs (f); |
2009 |
|
|
2010 |
/* Don't resize the tool-bar to more than we have room for. */ |
/* Don't resize the tool-bar to more than we have room for. */ |
2011 |
root_window = FRAME_ROOT_WINDOW (f); |
root_window = FRAME_ROOT_WINDOW (f); |
2012 |
root_height = XINT (XWINDOW (root_window)->height); |
root_height = WINDOW_TOTAL_LINES (XWINDOW (root_window)); |
2013 |
if (root_height - delta < 1) |
if (root_height - delta < 1) |
2014 |
{ |
{ |
2015 |
delta = root_height - 1; |
delta = root_height - 1; |
2040 |
if (delta < 0) |
if (delta < 0) |
2041 |
{ |
{ |
2042 |
int height = FRAME_INTERNAL_BORDER_WIDTH (f); |
int height = FRAME_INTERNAL_BORDER_WIDTH (f); |
2043 |
int width = PIXEL_WIDTH (f); |
int width = FRAME_PIXEL_WIDTH (f); |
2044 |
int y = nlines * CANON_Y_UNIT (f); |
int y = nlines * FRAME_LINE_HEIGHT (f); |
2045 |
|
|
2046 |
BLOCK_INPUT; |
BLOCK_INPUT; |
2047 |
{ |
{ |
2187 |
void x_set_scroll_bar_default_width (f) |
void x_set_scroll_bar_default_width (f) |
2188 |
struct frame *f; |
struct frame *f; |
2189 |
{ |
{ |
2190 |
int wid = FONT_WIDTH (f->output_data.w32->font); |
int wid = FRAME_COLUMN_WIDTH (f); |
2191 |
|
|
2192 |
FRAME_SCROLL_BAR_PIXEL_WIDTH (f) = GetSystemMetrics (SM_CXVSCROLL); |
FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = GetSystemMetrics (SM_CXVSCROLL); |
2193 |
FRAME_SCROLL_BAR_COLS (f) = (FRAME_SCROLL_BAR_PIXEL_WIDTH (f) + |
FRAME_CONFIG_SCROLL_BAR_COLS (f) = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + |
2194 |
wid - 1) / wid; |
wid - 1) / wid; |
2195 |
} |
} |
2196 |
|
|
2197 |
|
|
2284 |
RECT rect; |
RECT rect; |
2285 |
|
|
2286 |
rect.left = rect.top = 0; |
rect.left = rect.top = 0; |
2287 |
rect.right = PIXEL_WIDTH (f); |
rect.right = FRAME_PIXEL_WIDTH (f); |
2288 |
rect.bottom = PIXEL_HEIGHT (f); |
rect.bottom = FRAME_PIXEL_HEIGHT (f); |
2289 |
|
|
2290 |
AdjustWindowRect (&rect, f->output_data.w32->dwStyle, |
AdjustWindowRect (&rect, f->output_data.w32->dwStyle, |
2291 |
FRAME_EXTERNAL_MENU_BAR (f)); |
FRAME_EXTERNAL_MENU_BAR (f)); |
2301 |
= CreateWindow (EMACS_CLASS, |
= CreateWindow (EMACS_CLASS, |
2302 |
f->namebuf, |
f->namebuf, |
2303 |
f->output_data.w32->dwStyle | WS_CLIPCHILDREN, |
f->output_data.w32->dwStyle | WS_CLIPCHILDREN, |
2304 |
f->output_data.w32->left_pos, |
f->left_pos, |
2305 |
f->output_data.w32->top_pos, |
f->top_pos, |
2306 |
rect.right - rect.left, |
rect.right - rect.left, |
2307 |
rect.bottom - rect.top, |
rect.bottom - rect.top, |
2308 |
NULL, |
NULL, |
2312 |
|
|
2313 |
if (hwnd) |
if (hwnd) |
2314 |
{ |
{ |
2315 |
SetWindowLong (hwnd, WND_FONTWIDTH_INDEX, FONT_WIDTH (f->output_data.w32->font)); |
SetWindowLong (hwnd, WND_FONTWIDTH_INDEX, FRAME_COLUMN_WIDTH (f)); |
2316 |
SetWindowLong (hwnd, WND_LINEHEIGHT_INDEX, f->output_data.w32->line_height); |
SetWindowLong (hwnd, WND_LINEHEIGHT_INDEX, FRAME_LINE_HEIGHT (f)); |
2317 |
SetWindowLong (hwnd, WND_BORDER_INDEX, f->output_data.w32->internal_border_width); |
SetWindowLong (hwnd, WND_BORDER_INDEX, FRAME_INTERNAL_BORDER_WIDTH (f)); |
2318 |
SetWindowLong (hwnd, WND_SCROLLBAR_INDEX, f->output_data.w32->vertical_scroll_bar_extra); |
SetWindowLong (hwnd, WND_SCROLLBAR_INDEX, f->scroll_bar_actual_width); |
2319 |
SetWindowLong (hwnd, WND_BACKGROUND_INDEX, FRAME_BACKGROUND_PIXEL (f)); |
SetWindowLong (hwnd, WND_BACKGROUND_INDEX, FRAME_BACKGROUND_PIXEL (f)); |
2320 |
|
|
2321 |
/* Enable drag-n-drop. */ |
/* Enable drag-n-drop. */ |
4067 |
RECT rect; |
RECT rect; |
4068 |
|
|
4069 |
rect.left = rect.top = 0; |
rect.left = rect.top = 0; |
4070 |
rect.right = PIXEL_WIDTH (f); |
rect.right = FRAME_PIXEL_WIDTH (f); |
4071 |
rect.bottom = PIXEL_HEIGHT (f); |
rect.bottom = FRAME_PIXEL_HEIGHT (f); |
4072 |
|
|
4073 |
AdjustWindowRect (&rect, f->output_data.w32->dwStyle, |
AdjustWindowRect (&rect, f->output_data.w32->dwStyle, |
4074 |
FRAME_EXTERNAL_MENU_BAR (f)); |
FRAME_EXTERNAL_MENU_BAR (f)); |
4077 |
= CreateWindow (EMACS_CLASS, |
= CreateWindow (EMACS_CLASS, |
4078 |
f->namebuf, |
f->namebuf, |
4079 |
f->output_data.w32->dwStyle, |
f->output_data.w32->dwStyle, |
4080 |
f->output_data.w32->left_pos, |
f->left_pos, |
4081 |
f->output_data.w32->top_pos, |
f->top_pos, |
4082 |
rect.right - rect.left, |
rect.right - rect.left, |
4083 |
rect.bottom - rect.top, |
rect.bottom - rect.top, |
4084 |
FRAME_W32_WINDOW (SELECTED_FRAME ()), /* owner */ |
FRAME_W32_WINDOW (SELECTED_FRAME ()), /* owner */ |
4088 |
|
|
4089 |
if (tip_window) |
if (tip_window) |
4090 |
{ |
{ |
4091 |
SetWindowLong (tip_window, WND_FONTWIDTH_INDEX, FONT_WIDTH (f->output_data.w32->font)); |
SetWindowLong (tip_window, WND_FONTWIDTH_INDEX, FRAME_COLUMN_WIDTH (f)); |
4092 |
SetWindowLong (tip_window, WND_LINEHEIGHT_INDEX, f->output_data.w32->line_height); |
SetWindowLong (tip_window, WND_LINEHEIGHT_INDEX, FRAME_LINE_HEIGHT (f)); |
4093 |
SetWindowLong (tip_window, WND_BORDER_INDEX, f->output_data.w32->internal_border_width); |
SetWindowLong (tip_window, WND_BORDER_INDEX, FRAME_INTERNAL_BORDER_WIDTH (f)); |
4094 |
SetWindowLong (tip_window, WND_BACKGROUND_INDEX, FRAME_BACKGROUND_PIXEL (f)); |
SetWindowLong (tip_window, WND_BACKGROUND_INDEX, FRAME_BACKGROUND_PIXEL (f)); |
4095 |
|
|
4096 |
/* Tip frames have no scrollbars. */ |
/* Tip frames have no scrollbars. */ |
4207 |
Note that many default values are used. */ |
Note that many default values are used. */ |
4208 |
|
|
4209 |
/* Normal video */ |
/* Normal video */ |
4210 |
gc_values.font = f->output_data.w32->font; |
gc_values.font = FRAME_FONT (f); |
4211 |
|
|
4212 |
/* Cursor has cursor-color background, background-color foreground. */ |
/* Cursor has cursor-color background, background-color foreground. */ |
4213 |
gc_values.foreground = FRAME_BACKGROUND_PIXEL (f); |
gc_values.foreground = FRAME_BACKGROUND_PIXEL (f); |
4339 |
FRAME_CAN_HAVE_SCROLL_BARS (f) = 1; |
FRAME_CAN_HAVE_SCROLL_BARS (f) = 1; |
4340 |
|
|
4341 |
/* By default, make scrollbars the system standard width. */ |
/* By default, make scrollbars the system standard width. */ |
4342 |
f->scroll_bar_pixel_width = GetSystemMetrics (SM_CXVSCROLL); |
FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = GetSystemMetrics (SM_CXVSCROLL); |
4343 |
|
|
4344 |
f->output_method = output_w32; |
f->output_method = output_w32; |
4345 |
f->output_data.w32 = |
f->output_data.w32 = |
4519 |
x_default_parameter (f, parms, Qscroll_bar_width, Qnil, |
x_default_parameter (f, parms, Qscroll_bar_width, Qnil, |
4520 |
"scrollBarWidth", "ScrollBarWidth", RES_TYPE_NUMBER); |
"scrollBarWidth", "ScrollBarWidth", RES_TYPE_NUMBER); |
4521 |
|
|
4522 |
/* Dimensions, especially f->height, must be done via change_frame_size. |
/* Dimensions, especially FRAME_LINES (f), must be done via change_frame_size. |
4523 |
Change will not be effected unless different from the current |
Change will not be effected unless different from the current |
4524 |
f->height. */ |
FRAME_LINES (f). */ |
4525 |
width = f->width; |
width = FRAME_COLS (f); |
4526 |
height = f->height; |
height = FRAME_LINES (f); |
4527 |
|
|
4528 |
f->height = 0; |
FRAME_LINES (f) = 0; |
4529 |
SET_FRAME_WIDTH (f, 0); |
SET_FRAME_COLS (f, 0); |
4530 |
change_frame_size (f, height, width, 1, 0, 0); |
change_frame_size (f, height, width, 1, 0, 0); |
4531 |
|
|
4532 |
/* Tell the server what size and position, etc, we want, and how |
/* Tell the server what size and position, etc, we want, and how |
4784 |
|
|
4785 |
/* Now fill in the slots of *FONTP. */ |
/* Now fill in the slots of *FONTP. */ |
4786 |
BLOCK_INPUT; |
BLOCK_INPUT; |
4787 |
|
bzero (fontp, sizeof (*fontp)); |
4788 |
fontp->font = font; |
fontp->font = font; |
4789 |
fontp->font_idx = i; |
fontp->font_idx = i; |
4790 |
fontp->name = (char *) xmalloc (strlen (fontname) + 1); |
fontp->name = (char *) xmalloc (strlen (fontname) + 1); |
6712 |
x_pixel_width (f) |
x_pixel_width (f) |
6713 |
register struct frame *f; |
register struct frame *f; |
6714 |
{ |
{ |
6715 |
return PIXEL_WIDTH (f); |
return FRAME_PIXEL_WIDTH (f); |
6716 |
} |
} |
6717 |
|
|
6718 |
int |
int |
6719 |
x_pixel_height (f) |
x_pixel_height (f) |
6720 |
register struct frame *f; |
register struct frame *f; |
6721 |
{ |
{ |
6722 |
return PIXEL_HEIGHT (f); |
return FRAME_PIXEL_HEIGHT (f); |
6723 |
} |
} |
6724 |
|
|
6725 |
int |
int |
6726 |
x_char_width (f) |
x_char_width (f) |
6727 |
register struct frame *f; |
register struct frame *f; |
6728 |
{ |
{ |
6729 |
return FONT_WIDTH (f->output_data.w32->font); |
return FRAME_COLUMN_WIDTH (f); |
6730 |
} |
} |
6731 |
|
|
6732 |
int |
int |
6733 |
x_char_height (f) |
x_char_height (f) |
6734 |
register struct frame *f; |
register struct frame *f; |
6735 |
{ |
{ |
6736 |
return f->output_data.w32->line_height; |
return FRAME_LINE_HEIGHT (f); |
6737 |
} |
} |
6738 |
|
|
6739 |
int |
int |
6828 |
if (NILP (Vw32_color_map)) |
if (NILP (Vw32_color_map)) |
6829 |
Vw32_color_map = Fw32_default_color_map (); |
Vw32_color_map = Fw32_default_color_map (); |
6830 |
|
|
6831 |
|
/* Merge in system logical colors. */ |
6832 |
|
add_system_logical_colors_to_map (&Vw32_color_map); |
6833 |
|
|
6834 |
if (! NILP (xrm_string)) |
if (! NILP (xrm_string)) |
6835 |
xrm_option = (unsigned char *) SDATA (xrm_string); |
xrm_option = (unsigned char *) SDATA (xrm_string); |
6836 |
else |
else |
7301 |
int height = img->height + 2 * img->vmargin; |
int height = img->height + 2 * img->vmargin; |
7302 |
|
|
7303 |
if (NILP (pixels)) |
if (NILP (pixels)) |
7304 |
size = Fcons (make_float ((double) width / CANON_X_UNIT (f)), |
size = Fcons (make_float ((double) width / FRAME_COLUMN_WIDTH (f)), |
7305 |
make_float ((double) height / CANON_Y_UNIT (f))); |
make_float ((double) height / FRAME_LINE_HEIGHT (f))); |
7306 |
else |
else |
7307 |
size = Fcons (make_number (width), make_number (height)); |
size = Fcons (make_number (width), make_number (height)); |
7308 |
} |
} |
12788 |
XSETFRAME (frame, f); |
XSETFRAME (frame, f); |
12789 |
|
|
12790 |
buffer = Fget_buffer_create (build_string (" *tip*")); |
buffer = Fget_buffer_create (build_string (" *tip*")); |
12791 |
Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer); |
Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer, Qnil); |
12792 |
old_buffer = current_buffer; |
old_buffer = current_buffer; |
12793 |
set_buffer_internal_1 (XBUFFER (buffer)); |
set_buffer_internal_1 (XBUFFER (buffer)); |
12794 |
current_buffer->truncate_lines = Qnil; |
current_buffer->truncate_lines = Qnil; |
12915 |
window_prompting = x_figure_window_size (f, parms, 0); |
window_prompting = x_figure_window_size (f, parms, 0); |
12916 |
|
|
12917 |
/* No fringes on tip frame. */ |
/* No fringes on tip frame. */ |
12918 |
f->output_data.w32->fringes_extra = 0; |
f->fringe_cols = 0; |
12919 |
f->output_data.w32->fringe_cols = 0; |
f->left_fringe_width = 0; |
12920 |
f->output_data.w32->left_fringe_width = 0; |
f->right_fringe_width = 0; |
|
f->output_data.w32->right_fringe_width = 0; |
|
12921 |
|
|
12922 |
BLOCK_INPUT; |
BLOCK_INPUT; |
12923 |
my_create_tip_window (f); |
my_create_tip_window (f); |
12932 |
x_default_parameter (f, parms, Qcursor_type, Qbox, |
x_default_parameter (f, parms, Qcursor_type, Qbox, |
12933 |
"cursorType", "CursorType", RES_TYPE_SYMBOL); |
"cursorType", "CursorType", RES_TYPE_SYMBOL); |
12934 |
|
|
12935 |
/* Dimensions, especially f->height, must be done via change_frame_size. |
/* Dimensions, especially FRAME_LINES (f), must be done via change_frame_size. |
12936 |
Change will not be effected unless different from the current |
Change will not be effected unless different from the current |
12937 |
f->height. */ |
FRAME_LINES (f). */ |
12938 |
width = f->width; |
width = FRAME_COLS (f); |
12939 |
height = f->height; |
height = FRAME_LINES (f); |
12940 |
f->height = 0; |
FRAME_LINES (f) = 0; |
12941 |
SET_FRAME_WIDTH (f, 0); |
SET_FRAME_COLS (f, 0); |
12942 |
change_frame_size (f, height, width, 1, 0, 0); |
change_frame_size (f, height, width, 1, 0, 0); |
12943 |
|
|
12944 |
/* Add `tooltip' frame parameter's default value. */ |
/* Add `tooltip' frame parameter's default value. */ |
13127 |
} |
} |
13128 |
|
|
13129 |
BLOCK_INPUT; |
BLOCK_INPUT; |
13130 |
compute_tip_xy (f, parms, dx, dy, PIXEL_WIDTH (f), |
compute_tip_xy (f, parms, dx, dy, FRAME_PIXEL_WIDTH (f), |
13131 |
PIXEL_HEIGHT (f), &root_x, &root_y); |
FRAME_PIXEL_HEIGHT (f), &root_x, &root_y); |
13132 |
|
|
13133 |
/* Put tooltip in topmost group and in position. */ |
/* Put tooltip in topmost group and in position. */ |
13134 |
SetWindowPos (FRAME_W32_WINDOW (f), HWND_TOPMOST, |
SetWindowPos (FRAME_W32_WINDOW (f), HWND_TOPMOST, |
13176 |
|
|
13177 |
/* Set up the frame's root window. */ |
/* Set up the frame's root window. */ |
13178 |
w = XWINDOW (FRAME_ROOT_WINDOW (f)); |
w = XWINDOW (FRAME_ROOT_WINDOW (f)); |
13179 |
w->left = w->top = make_number (0); |
w->left_col = w->top_line = make_number (0); |
13180 |
|
|
13181 |
if (CONSP (Vx_max_tooltip_size) |
if (CONSP (Vx_max_tooltip_size) |
13182 |
&& INTEGERP (XCAR (Vx_max_tooltip_size)) |
&& INTEGERP (XCAR (Vx_max_tooltip_size)) |
13184 |
&& INTEGERP (XCDR (Vx_max_tooltip_size)) |
&& INTEGERP (XCDR (Vx_max_tooltip_size)) |
13185 |
&& XINT (XCDR (Vx_max_tooltip_size)) > 0) |
&& XINT (XCDR (Vx_max_tooltip_size)) > 0) |
13186 |
{ |
{ |
13187 |
w->width = XCAR (Vx_max_tooltip_size); |
w->total_cols = XCAR (Vx_max_tooltip_size); |
13188 |
w->height = XCDR (Vx_max_tooltip_size); |
w->total_lines = XCDR (Vx_max_tooltip_size); |
13189 |
} |
} |
13190 |
else |
else |
13191 |
{ |
{ |
13192 |
w->width = make_number (80); |
w->total_cols = make_number (80); |
13193 |
w->height = make_number (40); |
w->total_lines = make_number (40); |
13194 |
} |
} |
13195 |
|
|
13196 |
f->window_width = XINT (w->width); |
FRAME_TOTAL_COLS (f) = XINT (w->total_cols); |
13197 |
adjust_glyphs (f); |
adjust_glyphs (f); |
13198 |
w->pseudo_window_p = 1; |
w->pseudo_window_p = 1; |
13199 |
|
|
14264 |
w32-charset-ansi, w32-charset-default, w32-charset-symbol, |
w32-charset-ansi, w32-charset-default, w32-charset-symbol, |
14265 |
w32-charset-shiftjis, w32-charset-hangeul, w32-charset-gb2312, |
w32-charset-shiftjis, w32-charset-hangeul, w32-charset-gb2312, |
14266 |
w32-charset-chinesebig5, |
w32-charset-chinesebig5, |
|
#ifdef JOHAB_CHARSET |
|
14267 |
w32-charset-johab, w32-charset-hebrew, |
w32-charset-johab, w32-charset-hebrew, |
14268 |
w32-charset-arabic, w32-charset-greek, w32-charset-turkish, |
w32-charset-arabic, w32-charset-greek, w32-charset-turkish, |
14269 |
w32-charset-vietnamese, w32-charset-thai, w32-charset-easteurope, |
w32-charset-vietnamese, w32-charset-thai, w32-charset-easteurope, |
14270 |
w32-charset-russian, w32-charset-mac, w32-charset-baltic, |
w32-charset-russian, w32-charset-mac, w32-charset-baltic, |
|
#endif |
|
|
#ifdef UNICODE_CHARSET |
|
14271 |
w32-charset-unicode, |
w32-charset-unicode, |
|
#endif |
|
14272 |
or w32-charset-oem. |
or w32-charset-oem. |
14273 |
CODEPAGE should be an integer specifying the codepage that should be used |
CODEPAGE should be an integer specifying the codepage that should be used |
14274 |
to display the character set, t to do no translation and output as Unicode, |
to display the character set, t to do no translation and output as Unicode, |
14452 |
defsubr (&Simage_size); |
defsubr (&Simage_size); |
14453 |
defsubr (&Simage_mask_p); |
defsubr (&Simage_mask_p); |
14454 |
|
|
|
#if GLYPH_DEBUG |
|
|
defsubr (&Simagep); |
|
|
defsubr (&Slookup_image); |
|
|
#endif |
|
|
|
|
14455 |
hourglass_atimer = NULL; |
hourglass_atimer = NULL; |
14456 |
hourglass_shown_p = 0; |
hourglass_shown_p = 0; |
14457 |
defsubr (&Sx_show_tip); |
defsubr (&Sx_show_tip); |
14479 |
void globals_of_w32fns () |
void globals_of_w32fns () |
14480 |
{ |
{ |
14481 |
HMODULE user32_lib = GetModuleHandle ("user32.dll"); |
HMODULE user32_lib = GetModuleHandle ("user32.dll"); |
14482 |
/* |
/* |
14483 |
TrackMouseEvent not available in all versions of Windows, so must load |
TrackMouseEvent not available in all versions of Windows, so must load |
14484 |
it dynamically. Do it once, here, instead of every time it is used. |
it dynamically. Do it once, here, instead of every time it is used. |
14485 |
*/ |
*/ |
14486 |
track_mouse_event_fn = (TrackMouseEvent_Proc) GetProcAddress (user32_lib, "TrackMouseEvent"); |
track_mouse_event_fn = (TrackMouseEvent_Proc) |
14487 |
|
GetProcAddress (user32_lib, "TrackMouseEvent"); |
14488 |
|
/* ditto for GetClipboardSequenceNumber. */ |
14489 |
|
clipboard_sequence_fn = (ClipboardSequence_Proc) |
14490 |
|
GetProcAddress (user32_lib, "GetClipboardSequenceNumber"); |
14491 |
} |
} |
14492 |
|
|
14493 |
/* Initialize image types. Based on which libraries are available. */ |
/* Initialize image types. Based on which libraries are available. */ |
14600 |
{ |
{ |
14601 |
return GetLastError (); |
return GetLastError (); |
14602 |
} |
} |
14603 |
|
|
14604 |
|
/* arch-tag: 707589ab-b9be-4638-8cdd-74629cc9b446 |
14605 |
|
(do not change this comment) */ |