X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/78be8b64657aeca0472d708450ea1ce2bc142606..28a16449218739dc41387b71233e9f9c0d62ceb9:/src/w32term.h diff --git a/src/w32term.h b/src/w32term.h index a31c5de193..e65c114629 100644 --- a/src/w32term.h +++ b/src/w32term.h @@ -71,6 +71,8 @@ struct w32_palette_entry { }; extern void w32_regenerate_palette (struct frame *f); +extern void w32_fullscreen_rect (HWND hwnd, int fsmode, RECT normal, + RECT *rect); /* For each display (currently only one on w32), we have a structure that @@ -203,8 +205,7 @@ extern void x_focus_on_frame (struct frame *f); extern struct w32_display_info *w32_term_init (Lisp_Object, char *, char *); -extern void check_w32 (void); -extern int w32_defined_color (FRAME_PTR f, const char *color, +extern int w32_defined_color (struct frame *f, const char *color, XColor *color_def, int alloc); extern void x_set_window_size (struct frame *f, int change_grav, int cols, int rows); @@ -217,8 +218,6 @@ extern void x_set_mouse_pixel_position (struct frame *f, int pix_x, int pix_y); extern void x_make_frame_visible (struct frame *f); extern void x_make_frame_invisible (struct frame *f); extern void x_iconify_frame (struct frame *f); -extern int x_pixel_width (struct frame *f); -extern int x_pixel_height (struct frame *f); extern void x_set_frame_alpha (struct frame *f); extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); extern void x_set_tool_bar_lines (struct frame *f, @@ -237,6 +236,10 @@ extern int w32_kbd_mods_to_emacs (DWORD mods, WORD key); extern Lisp_Object x_get_focus_frame (struct frame *); +/* w32console.c */ +extern void w32con_hide_cursor (void); +extern void w32con_show_cursor (void); + #define PIX_TYPE COLORREF @@ -359,6 +362,12 @@ struct w32_output /* The background for which the above relief GCs were set up. They are changed only when a different background is involved. */ unsigned long relief_background; + + /* Frame geometry and full-screen mode before it was resized by + specifying the 'fullscreen' frame parameter. Used to restore the + geometry when 'fullscreen' is reset to nil. */ + WINDOWPLACEMENT normal_placement; + int prev_fsmode; }; extern struct w32_output w32term_display; @@ -390,6 +399,10 @@ extern struct w32_output w32term_display; #define FRAME_SMALLEST_FONT_HEIGHT(F) \ FRAME_W32_DISPLAY_INFO(F)->smallest_font_height + +#define FRAME_NORMAL_PLACEMENT(F) ((F)->output_data.w32->normal_placement) +#define FRAME_PREV_FSMODE(F) ((F)->output_data.w32->prev_fsmode) + /* W32-specific scroll bar stuff. */ @@ -442,9 +455,11 @@ struct scroll_bar { being dragged, this is Qnil. */ Lisp_Object dragging; - /* t if the background of the fringe that is adjacent to a scroll + /* 1 if the background of the fringe that is adjacent to a scroll bar is extended to the gap between the fringe and the bar. */ - Lisp_Object fringe_extended_p; + /* Note: this could be a bit field, but we need to take its address + in ALLOCATE_PSEUDOVECTOR (see x_scroll_bar_create). */ + bool fringe_extended_p; }; /* Turning a lisp vector value into a pointer to a struct scroll_bar. */ @@ -672,7 +687,7 @@ extern Lisp_Object w32_get_watch_object (void *); extern Lisp_Object lispy_file_action (DWORD); extern void w32_initialize_display_info (Lisp_Object); -extern void initialize_w32_display (struct terminal *); +extern void initialize_w32_display (struct terminal *, int *, int *); /* Keypad command key support. W32 doesn't have virtual keys defined for the function keys on the keypad (they are mapped to the standard @@ -727,7 +742,6 @@ struct image; struct face; XGCValues *XCreateGC (void *, Window, unsigned long, XGCValues *); -struct frame * check_x_frame (Lisp_Object); typedef DWORD (WINAPI * ClipboardSequence_Proc) (void); typedef BOOL (WINAPI * AppendMenuW_Proc) ( @@ -740,6 +754,9 @@ extern HWND w32_system_caret_hwnd; extern int w32_system_caret_height; extern int w32_system_caret_x; extern int w32_system_caret_y; +extern struct window *w32_system_caret_window; +extern int w32_system_caret_hdr_height; +extern int w32_system_caret_mode_height; #ifdef _MSC_VER #ifndef EnumSystemLocales