X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/f67e15be8d94718b2e2ea7da68eb0b2dc94ce016..6dfab00d57392a6453a4ed7286c9edca3ff6320e:/src/frame.h diff --git a/src/frame.h b/src/frame.h index d18f5aedcb..fa22b2c875 100644 --- a/src/frame.h +++ b/src/frame.h @@ -4,10 +4,10 @@ This file is part of GNU Emacs. -GNU Emacs is free software; you can redistribute it and/or modify +GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3, or (at your option) -any later version. +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,9 +15,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GNU Emacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ +along with GNU Emacs. If not, see . */ /* Don't multiply include: dispextern.h includes macterm.h which includes frame.h some emacs source includes both dispextern.h and @@ -26,6 +24,8 @@ Boston, MA 02110-1301, USA. */ #ifndef EMACS_FRAME_H #define EMACS_FRAME_H +#include "dispextern.h" + /* Miscellanea. */ @@ -52,7 +52,8 @@ enum output_method output_x_window, output_msdos_raw, output_w32, - output_mac + output_mac, + output_ns }; enum vertical_scroll_bar_type @@ -239,7 +240,7 @@ struct frame auto-resize-tool-bar is set to grow-only. */ unsigned minimize_tool_bar_window_p : 1; -#if defined (USE_GTK) || defined (MAC_OS) +#if defined (USE_GTK) || defined (HAVE_NS) /* Nonzero means using a tool bar that comes from the toolkit. */ int external_tool_bar; #endif @@ -328,7 +329,7 @@ struct frame struct tty_output *tty; /* termchar.h */ struct x_output *x; /* xterm.h */ struct w32_output *w32; /* w32term.h */ - struct mac_output *mac; /* macterm.h */ + struct ns_output *ns; /* nsterm.h */ EMACS_INT nothing; } output_data; @@ -355,8 +356,8 @@ struct frame /* Number of lines of menu bar. */ int menu_bar_lines; -#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined (MAC_OS) \ - || defined (USE_GTK) +#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ + || defined (HAVE_NS) || defined (USE_GTK) /* Nonzero means using a menu bar that comes from the X toolkit. */ unsigned int external_menu_bar : 1; #endif @@ -479,6 +480,11 @@ struct frame /* The baud rate that was used to calculate costs for this frame. */ int cost_calculation_baud_rate; + /* frame opacity + alpha[0]: alpha transparency of the active frame + alpha[1]: alpha transparency of inactive frames */ + double alpha[2]; + /* Exponent for gamma correction of colors. 1/(VIEWING_GAMMA * SCREEN_GAMMA) where viewing_gamma is 0.4545 and SCREEN_GAMMA is a frame parameter. 0 means don't do gamma correction. */ @@ -492,11 +498,7 @@ struct frame unsigned long foreground_pixel; }; -#ifdef MULTI_KBOARD #define FRAME_KBOARD(f) ((f)->terminal->kboard) -#else -#define FRAME_KBOARD(f) (&the_only_kboard) -#endif /* Return a pointer to the image cache of frame F. */ #define FRAME_IMAGE_CACHE(F) ((F)->terminal->image_cache) @@ -516,6 +518,7 @@ typedef struct frame *FRAME_PTR; #define FRAME_W32_P(f) ((f)->output_method == output_w32) #define FRAME_MSDOS_P(f) ((f)->output_method == output_msdos_raw) #define FRAME_MAC_P(f) ((f)->output_method == output_mac) +#define FRAME_NS_P(f) ((f)->output_method == output_ns) /* FRAME_WINDOW_P tests whether the frame is a window, and is defined to be the predicate for the window system being used. */ @@ -526,8 +529,8 @@ typedef struct frame *FRAME_PTR; #ifdef HAVE_NTGUI #define FRAME_WINDOW_P(f) FRAME_W32_P (f) #endif -#ifdef MAC_OS -#define FRAME_WINDOW_P(f) FRAME_MAC_P (f) +#ifdef HAVE_NS +#define FRAME_WINDOW_P(f) FRAME_NS_P(f) #endif #ifndef FRAME_WINDOW_P #define FRAME_WINDOW_P(f) (0) @@ -567,7 +570,7 @@ typedef struct frame *FRAME_PTR; /* Nonzero if this frame should display a tool bar in a way that does not use any text lines. */ -#if defined (USE_GTK) || defined (MAC_OS) +#if defined (USE_GTK) || defined (HAVE_NS) #define FRAME_EXTERNAL_TOOL_BAR(f) (f)->external_tool_bar #else #define FRAME_EXTERNAL_TOOL_BAR(f) 0 @@ -585,8 +588,8 @@ typedef struct frame *FRAME_PTR; /* Nonzero if this frame should display a menu bar in a way that does not use any text lines. */ -#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) || defined (MAC_OS) \ - || defined (USE_GTK) +#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ + || defined (HAVE_NS) || defined (USE_GTK) #define FRAME_EXTERNAL_MENU_BAR(f) (f)->external_menu_bar #else #define FRAME_EXTERNAL_MENU_BAR(f) 0 @@ -1035,12 +1038,13 @@ extern Lisp_Object Qline_spacing; extern Lisp_Object Qwait_for_wm; extern Lisp_Object Qfullscreen; extern Lisp_Object Qfont_backend; +extern Lisp_Object Qalpha; extern Lisp_Object Qleft_fringe, Qright_fringe; extern Lisp_Object Qheight, Qwidth; extern Lisp_Object Qminibuffer, Qmodeline; extern Lisp_Object Qonly; -extern Lisp_Object Qx, Qw32, Qmac, Qpc; +extern Lisp_Object Qx, Qw32, Qmac, Qpc, Qns; extern Lisp_Object Qvisible; extern Lisp_Object Qdisplay_type; extern Lisp_Object Qbackground_mode; @@ -1061,11 +1065,7 @@ extern void x_set_scroll_bar_default_width P_ ((struct frame *)); extern void x_set_offset P_ ((struct frame *, int, int, int)); extern void x_wm_set_icon_position P_ ((struct frame *, int, int)); -extern Lisp_Object x_new_font P_ ((struct frame *, char *)); -extern Lisp_Object x_new_fontset P_ ((struct frame *, Lisp_Object)); -#ifdef USE_FONT_BACKEND -extern Lisp_Object x_new_fontset2 P_ ((struct frame *, int, Lisp_Object)); -#endif /* USE_FONT_BACKEND */ +extern Lisp_Object x_new_font P_ ((struct frame *, Lisp_Object, int)); /* These are in frame.c */ @@ -1103,9 +1103,18 @@ extern Lisp_Object x_icon_type P_ ((struct frame *)); extern int x_figure_window_size P_ ((struct frame *, Lisp_Object, int)); +extern Lisp_Object Vframe_alpha_lower_limit; +extern void x_set_alpha P_ ((struct frame *, Lisp_Object, Lisp_Object)); extern void validate_x_resource_name P_ ((void)); +extern Lisp_Object display_x_get_resource (Display_Info *, + Lisp_Object attribute, + Lisp_Object class, + Lisp_Object component, + Lisp_Object subclass); + + #endif /* HAVE_WINDOW_SYSTEM */ #endif /* not EMACS_FRAME_H */