changeset 80393:c8d0b8e7977a

(struct scroll_bar): Rename member control_handle_low and control_handle_high to control_ref_low and control_ref_high. All uses changed. (SCROLL_BAR_CONTROL_REF, SET_SCROLL_BAR_CONTROL_REF): Rename from SCROLL_BAR_CONTROL_HANDLE and SET_SCROLL_BAR_CONTROL_HANDLE, respectively. All uses changed. (XCreatePixmap, XCreatePixmapFromBitmapData, XSetWindowBackground) (install_window_handler, remove_window_handler): Replace WindowPtr with WindowRef in externs. (mac_get_window_bounds): Move extern from macfns.c. (FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y): New macros. (struct mac_output) [USE_MAC_TOOLBAR]: New member toolbar_win_gravity. (struct scroll_bar) [MAC_OSX]: New member fringe_extended_p. (update_frame_tool_bar, free_frame_tool_bar) [USE_MAC_TOOLBAR]: Add externs.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Sat, 29 Mar 2008 00:47:33 +0000
parents 80c2bc6163c3
children 53c3795eb7ea
files src/macterm.h
diffstat 1 files changed, 40 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/macterm.h	Sat Mar 29 00:46:51 2008 +0000
+++ b/src/macterm.h	Sat Mar 29 00:47:33 2008 +0000
@@ -333,6 +333,16 @@
   /* Hints for the size and the position of a window.  */
   XSizeHints *size_hints;
 
+#if USE_MAC_TOOLBAR
+  /* This variable records the gravity value of the window position if
+     the window has an external tool bar when it is created.  The
+     position of the window is adjusted using this information when
+     the tool bar is first redisplayed.  Once the tool bar is
+     redisplayed, it is set to 0 in order to avoid further
+     adjustment.  */
+  int toolbar_win_gravity;
+#endif
+
 #if USE_CG_DRAWING
   /* Quartz 2D graphics context.  */
   CGContextRef cg_context;
@@ -369,6 +379,12 @@
 /* This is the 'font_info *' which frame F has.  */
 #define FRAME_MAC_FONT_TABLE(f) (FRAME_MAC_DISPLAY_INFO (f)->font_table)
 
+/* The difference in pixels between the top left corner of the
+   Emacs window (including possible window manager decorations)
+   and FRAME_MAC_WINDOW (f).  */
+#define FRAME_OUTER_TO_INNER_DIFF_X(f) ((f)->x_pixels_diff)
+#define FRAME_OUTER_TO_INNER_DIFF_Y(f) ((f)->y_pixels_diff)
+
 /* Value is the smallest width of any character in any font on frame F.  */
 
 #define FRAME_SMALLEST_CHAR_WIDTH(F) \
@@ -406,9 +422,9 @@
   /* The next and previous in the chain of scroll bars in this frame.  */
   Lisp_Object next, prev;
 
-  /* The Mac control handle of this scroll bar.  Since this is a
+  /* The Mac control reference of this scroll bar.  Since this is a
      pointer value, we store it split into two Lisp integers.  */
-  Lisp_Object control_handle_low, control_handle_high;
+  Lisp_Object control_ref_low, control_ref_high;
 
   /* The position and size of the scroll bar in pixels, relative to the
      frame.  */
@@ -435,6 +451,12 @@
      being dragged, this is Qnil.  */
   Lisp_Object dragging;
 
+#ifdef MAC_OSX
+  /* t 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;
+#endif
+
   /* t if redraw needed in the next XTset_vertical_scroll_bar call.  */
   Lisp_Object redraw_needed_p;
 
@@ -469,14 +491,14 @@
 
 /* Extract the Mac control handle of the scroll bar from a struct
    scroll_bar.  */
-#define SCROLL_BAR_CONTROL_HANDLE(ptr) \
-  ((ControlHandle) SCROLL_BAR_PACK ((ptr)->control_handle_low, \
-                                    (ptr)->control_handle_high))
+#define SCROLL_BAR_CONTROL_REF(ptr)				\
+  ((ControlRef) SCROLL_BAR_PACK ((ptr)->control_ref_low,	\
+				 (ptr)->control_ref_high))
 
 /* Store a Mac control handle in a struct scroll_bar.  */
-#define SET_SCROLL_BAR_CONTROL_HANDLE(ptr, handle) \
-  (SCROLL_BAR_UNPACK ((ptr)->control_handle_low, \
-                      (ptr)->control_handle_high, (unsigned long) (handle)))
+#define SET_SCROLL_BAR_CONTROL_REF(ptr, ref)				\
+  (SCROLL_BAR_UNPACK ((ptr)->control_ref_low,				\
+                      (ptr)->control_ref_high, (unsigned long) (ref)))
 
 /* Return the inside width of a vertical scroll bar, given the outside
    width.  */
@@ -618,9 +640,9 @@
 extern void x_wm_set_size_hint P_ ((struct frame *, long, int));
 extern void x_delete_display P_ ((struct x_display_info *));
 extern void mac_initialize P_ ((void));
-extern Pixmap XCreatePixmap P_ ((Display *, WindowPtr, unsigned int,
+extern Pixmap XCreatePixmap P_ ((Display *, WindowRef, unsigned int,
 				 unsigned int, unsigned int));
-extern Pixmap XCreatePixmapFromBitmapData P_ ((Display *, WindowPtr, char *,
+extern Pixmap XCreatePixmapFromBitmapData P_ ((Display *, WindowRef, char *,
 					       unsigned int, unsigned int,
 					       unsigned long, unsigned long,
 					       unsigned int));
@@ -629,7 +651,7 @@
 extern void XFreeGC P_ ((Display *, GC));
 extern void XSetForeground P_ ((Display *, GC, unsigned long));
 extern void XSetBackground P_ ((Display *, GC, unsigned long));
-extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long));
+extern void XSetWindowBackground P_ ((Display *, WindowRef, unsigned long));
 extern void XDrawLine P_ ((Display *, Pixmap, GC, int, int, int, int));
 extern void mac_clear_area P_ ((struct frame *, int, int,
 				unsigned int, unsigned int));
@@ -637,8 +659,8 @@
 extern int mac_font_panel_visible_p P_ ((void));
 extern OSStatus mac_show_hide_font_panel P_ ((void));
 extern OSStatus mac_set_font_info_for_selection P_ ((struct frame *, int, int));
-extern OSStatus install_window_handler P_ ((WindowPtr));
-extern void remove_window_handler P_ ((WindowPtr));
+extern OSStatus install_window_handler P_ ((WindowRef));
+extern void remove_window_handler P_ ((WindowRef));
 extern OSStatus mac_post_mouse_moved_event P_ ((void));
 #if !TARGET_API_MAC_CARBON
 extern void do_apple_menu P_ ((SInt16));
@@ -646,7 +668,12 @@
 #if USE_CG_DRAWING
 extern void mac_prepare_for_quickdraw P_ ((struct frame *));
 #endif
+extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *));
 extern int mac_quit_char_key_p P_ ((UInt32, UInt32));
+#if USE_MAC_TOOLBAR
+extern void update_frame_tool_bar P_ ((FRAME_PTR f));
+extern void free_frame_tool_bar P_ ((FRAME_PTR f));
+#endif
 
 #define FONT_TYPE_FOR_UNIBYTE(font, ch) 0
 #define FONT_TYPE_FOR_MULTIBYTE(font, ch) 0