/* Definitions and headers for communication with NeXT/Open/GNUstep API.
- Copyright (C) 1989, 1993, 2005, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1989, 1993, 2005, 2008-2011 Free Software Foundation, Inc.
This file is part of GNU Emacs.
#include "frame.h"
#include "character.h"
#include "font.h"
+#include "sysselect.h"
#ifdef HAVE_NS
int rows, cols;
int scrollbarsNeedingUpdate;
EmacsToolbar *toolbar;
+ NSRect ns_userRect;
}
/* AppKit-side interface */
- initWithTitle: (NSString *)title frame: (struct frame *)f;
- (void)setFrame: (struct frame *)f;
- (void)menuNeedsUpdate: (NSMenu *)menu; /* (delegate method) */
-- (NSString *)parseKeyEquiv: (char *)key;
+- (NSString *)parseKeyEquiv: (const char *)key;
- (NSMenuItem *)addItemWithWidgetValue: (void *)wvptr;
- (void)fillWithWidgetValue: (void *)wvptr;
-- (EmacsMenu *)addSubmenuWithTitle: (char *)title forFrame: (struct frame *)f;
+- (EmacsMenu *)addSubmenuWithTitle: (const char *)title forFrame: (struct frame *)f;
- (void) clear;
- (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f
keymaps: (int)keymaps;
- (void) clearActive;
- (BOOL) changed;
- (void) addDisplayItemWithImage: (EmacsImage *)img idx: (int)idx
- helpText: (char *)help
+ helpText: (const char *)help
enabled: (BOOL)enabled;
/* delegate methods */
- (NSToolbarItem *)toolbar: (NSToolbar *)toolbar
/* The cursor to use for vertical scroll bars. */
Cursor vertical_scroll_bar_cursor;
- /* most mouse face stuff moved in here as of 21+ (and reasonably so) */
- int mouse_face_beg_row, mouse_face_beg_col;
- int mouse_face_end_row, mouse_face_end_col;
- int mouse_face_beg_x, mouse_face_beg_y;
- int mouse_face_end_x, mouse_face_end_y;
- int mouse_face_past_end;
- Lisp_Object mouse_face_window;
- int mouse_face_face_id;
- int mouse_face_deferred_gc;
- Lisp_Object mouse_face_overlay;
- FRAME_PTR mouse_face_mouse_frame;
- int mouse_face_mouse_x, mouse_face_mouse_y;
- int mouse_face_defer;
- int mouse_face_hidden;
- int mouse_face_image_state;
+ /* Information about the range of text currently shown in
+ mouse-face. */
+ Mouse_HLInfo mouse_highlight;
struct frame *x_highlight_frame;
struct frame *x_focus_frame;
/* This is the Emacs structure for the NS display this frame is on. */
struct ns_display_info *display_info;
+
+ /* Non-zero if we want to constrain the frame to the screen. */
+ int dont_constrain;
+
+ /* Non-zero if we are zooming (maximizing) the frame. */
+ int zooming;
};
/* this dummy decl needed to support TTYs */
extern void ns_set_doc_edited (struct frame *f, Lisp_Object arg);
extern int
-ns_defined_color (struct frame *f, char *name, XColor *color_def, int alloc,
+ns_defined_color (struct frame *f,
+ const char *name,
+ XColor *color_def, int alloc,
char makeIndex);
extern void
ns_query_color (void *col, XColor *color_def, int setPixel);
extern Lisp_Object ns_popup_dialog (Lisp_Object position, Lisp_Object contents,
Lisp_Object header);
-/* two more prototypes that should be moved to a more general include file */
+/* More prototypes that should be moved to a more general include file */
extern void set_frame_menubar (struct frame *f, int first_time, int deep_p);
extern void x_set_window_size (struct frame *f, int change_grav,
int cols, int rows);
+extern void x_sync (struct frame *);
+extern Lisp_Object x_get_focus_frame (struct frame *);
+extern void x_set_mouse_position (struct frame *f, int h, int v);
+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_char_width (struct frame *f);
+extern int x_char_height (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,
+ Lisp_Object value,
+ Lisp_Object oldval);
+extern void x_activate_menubar (struct frame *);
+extern void free_frame_menubar (struct frame *);
+
+extern void ns_init_paths (void);
+extern void syms_of_nsterm (void);
+extern void syms_of_nsfns (void);
+extern void syms_of_nsmenu (void);
+extern void syms_of_nsselect (void);
/* From nsimage.m, needed in image.c */
struct image;
extern int x_display_pixel_width (struct ns_display_info *);
/* This in nsterm.m */
+extern int ns_select (int nfds, fd_set *readfds, fd_set *writefds,
+ fd_set *exceptfds, struct timeval *timeout);
extern unsigned long ns_get_rgb_color (struct frame *f,
float r, float g, float b, float a);
extern NSPoint last_mouse_motion_position;
#endif /* HAVE_NS */
-/* arch-tag: 0a28b142-4ac1-4a81-a243-abcd82d9c4e5
- (do not change this comment) */