X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/2b0c7330457b8ca42375c92ada7dc7cefb0fa9fb..4dc7c8d5795458e89d19b59f64760e155c2cd70b:/src/nsterm.h diff --git a/src/nsterm.h b/src/nsterm.h index 09ec8c19b1..b20621a53d 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -1,5 +1,5 @@ /* Definitions and headers for communication with NeXT/Open/GNUstep API. - Copyright (C) 1989, 1993, 2005, 2008-2011 Free Software Foundation, Inc. + Copyright (C) 1989, 1993, 2005, 2008-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -25,6 +25,21 @@ along with GNU Emacs. If not, see . */ #ifdef HAVE_NS +#ifdef NS_IMPL_COCOA +#ifndef MAC_OS_X_VERSION_10_3 +#define MAC_OS_X_VERSION_10_3 1030 +#endif +#ifndef MAC_OS_X_VERSION_10_4 +#define MAC_OS_X_VERSION_10_4 1040 +#endif +#ifndef MAC_OS_X_VERSION_10_5 +#define MAC_OS_X_VERSION_10_5 1050 +#endif +#ifndef MAC_OS_X_VERSION_10_6 +#define MAC_OS_X_VERSION_10_6 1060 +#endif +#endif /* NS_IMPL_COCOA */ + #ifdef __OBJC__ /* ========================================================================== @@ -55,7 +70,11 @@ along with GNU Emacs. If not, see . */ @class EmacsToolbar; -@interface EmacsView : NSView /* 10.6+: NSWindowDelegate */ +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +@interface EmacsView : NSView +#else +@interface EmacsView : NSView +#endif { char *old_title; BOOL windowClosing; @@ -70,7 +89,7 @@ along with GNU Emacs. If not, see . */ } /* AppKit-side interface */ -- menuDown: sender; +- menuDown: (id)sender; - toolbarClicked: (id)item; - toggleToolbar: (id)sender; - (void)keyDown: (NSEvent *)theEvent; @@ -106,7 +125,11 @@ along with GNU Emacs. If not, see . */ ========================================================================== */ -@interface EmacsMenu : NSMenu /* 10.6+: */ +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +@interface EmacsMenu : NSMenu +#else +@interface EmacsMenu : NSMenu +#endif { struct frame *frame; unsigned long keyEquivModMask; @@ -133,7 +156,11 @@ along with GNU Emacs. If not, see . */ @class EmacsImage; -@interface EmacsToolbar : NSToolbar /* 10.6+: */ +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +@interface EmacsToolbar : NSToolbar +#else +@interface EmacsToolbar : NSToolbar +#endif { EmacsView *emacsView; NSMutableDictionary *identifierToItem; @@ -176,7 +203,11 @@ along with GNU Emacs. If not, see . */ - (Lisp_Object)runDialogAt: (NSPoint)p; @end -@interface EmacsTooltip : NSObject /* 10.6+: */ +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +@interface EmacsTooltip : NSObject +#else +@interface EmacsTooltip : NSObject +#endif { NSWindow *win; NSTextField *textField; @@ -331,7 +362,7 @@ extern EmacsMenu *mainMenu, *svcsMenu, *dockMenu; #endif #ifndef NS_HAVE_NSINTEGER -#if defined(__LP64__) && __LP64__ +#if defined (__LP64__) && __LP64__ typedef double CGFloat; typedef long NSInteger; typedef unsigned long NSUInteger; @@ -385,8 +416,8 @@ struct ns_bitmap_record /* this to map between emacs color indices and NSColor objects */ struct ns_color_table { - unsigned int size; - unsigned int avail; + ptrdiff_t size; + ptrdiff_t avail; #ifdef __OBJC__ NSColor **colors; NSMutableSet *empty_indices; @@ -416,7 +447,7 @@ struct nsfont_info { struct font font; - char *name; /* postscript name, uniquely identifies on NS systems */ + char *name; /* PostScript name, uniquely identifies on NS systems */ float width; /* this and following metrics stored as float rather than int */ float height; float underpos; @@ -436,11 +467,10 @@ struct nsfont_info #endif char bold, ital; /* convenience flags */ char synthItal; - float voffset; /* mean of ascender/descender offsets */ XCharStruct max_bounds; /* we compute glyph codes and metrics on-demand in blocks of 256 indexed by hibyte, lobyte */ - unsigned short **glyphs; /* map unicode index to glyph */ + unsigned short **glyphs; /* map Unicode index to glyph */ struct font_metrics **metrics; }; @@ -468,8 +498,8 @@ struct ns_display_info int smallest_font_height; struct ns_bitmap_record *bitmaps; - int bitmaps_size; - int bitmaps_last; + ptrdiff_t bitmaps_size; + ptrdiff_t bitmaps_last; struct image_cache *image_cache; @@ -505,7 +535,7 @@ struct ns_display_info extern struct ns_display_info *x_display_list; extern Lisp_Object ns_display_name_list; -extern struct ns_display_info *ns_display_info_for_name (); +extern struct ns_display_info *ns_display_info_for_name (Lisp_Object name); struct ns_display_info *check_x_display_info (Lisp_Object frame); FRAME_PTR check_x_frame (Lisp_Object frame); @@ -667,7 +697,7 @@ struct x_output (! (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f)) ? 0 \ : FRAME_SCROLL_BAR_COLS (f)) -extern struct ns_display_info *ns_term_init (); +extern struct ns_display_info *ns_term_init (Lisp_Object display_name); extern void ns_term_shutdown (int sig); /* constants for text rendering */ @@ -677,8 +707,6 @@ extern void ns_term_shutdown (int sig); #define NS_DUMPGLYPH_MOUSEFACE 3 -EXFUN (Fx_display_grayscale_p, 1); -EXFUN (Fx_display_planes, 1); /* In nsfont, called from fontset.c */ extern void nsfont_make_fontset_for_font (Lisp_Object name, @@ -697,11 +725,15 @@ extern void ns_clear_frame (struct frame *f); extern const char *ns_xlfd_to_fontname (const char *xlfd); extern void check_ns (void); -extern Lisp_Object ns_map_event_to_object (); -extern Lisp_Object ns_string_from_pasteboard (); -extern void ns_string_to_pasteboard (); -extern void nxatoms_of_nsselect (); -extern int ns_lisp_to_cursor_type (); +extern Lisp_Object ns_map_event_to_object (void); +#ifdef __OBJC__ +extern Lisp_Object ns_string_from_pasteboard (id pb); +extern void ns_string_to_pasteboard (id pb, Lisp_Object str); +#endif +extern Lisp_Object ns_get_local_selection (Lisp_Object selection_name, + Lisp_Object target_type); +extern void nxatoms_of_nsselect (void); +extern int ns_lisp_to_cursor_type (Lisp_Object arg); extern Lisp_Object ns_cursor_type_to_lisp (int arg); extern Lisp_Object Qnone; extern void ns_set_name_as_filename (struct frame *f); @@ -726,8 +758,9 @@ extern void ns_free_indexed_color (unsigned long idx, struct frame *f); /* C access to ObjC functionality */ extern void ns_release_object (void *obj); extern void ns_retain_object (void *obj); -extern void *ns_alloc_autorelease_pool (); -extern void ns_release_autorelease_pool (); +extern void *ns_alloc_autorelease_pool (void); +extern void ns_release_autorelease_pool (void *); +extern const char *ns_get_defaults_value (const char *key); /* in nsmenu */ extern void update_frame_tool_bar (FRAME_PTR f); @@ -762,8 +795,15 @@ extern void x_set_tool_bar_lines (struct frame *f, Lisp_Object oldval); extern void x_activate_menubar (struct frame *); extern void free_frame_menubar (struct frame *); +extern void x_free_frame_resources (struct frame *); +extern void x_destroy_window (struct frame *); + +#define NSAPP_DATA2_RUNASSCRIPT 10 +extern void ns_run_ascript (void); -extern void ns_init_paths (void); +extern const char *ns_etc_directory (void); +extern const char *ns_exec_path (void); +extern const char *ns_load_path (void); extern void syms_of_nsterm (void); extern void syms_of_nsfns (void); extern void syms_of_nsmenu (void); @@ -787,11 +827,19 @@ 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); + fd_set *exceptfds, EMACS_TIME *timeout, + sigset_t *sigmask); extern unsigned long ns_get_rgb_color (struct frame *f, float r, float g, float b, float a); extern NSPoint last_mouse_motion_position; +/* From nsterm.m, needed in nsfont.m. */ +#ifdef __OBJC__ +extern void +ns_draw_text_decoration (struct glyph_string *s, struct face *face, + NSColor *defaultCol, CGFloat width, CGFloat x); +#endif + #ifdef NS_IMPL_GNUSTEP extern char gnustep_base_version[]; /* version tracking */ #endif @@ -818,4 +866,3 @@ extern char gnustep_base_version[]; /* version tracking */ #endif /* HAVE_NS */ -