Mercurial > vim
annotate src/gui.h @ 34420:c5a945f7f3da v9.1.0133
patch 9.1.0133: MS-Windows: ligatures not rendering correctly
Commit: https://github.com/vim/vim/commit/8b1e749ca6ca6d09a174c57de6999f69393ee567
Author: Erik S. V. Jansson <caffeineviking@gmail.com>
Date: Sat Feb 24 14:26:52 2024 +0100
patch 9.1.0133: MS-Windows: ligatures not rendering correctly
Problem: font ligatures don't render correctly in the Win32 GUI-version
of gvim even when set rop=type:directx is used. Setting
guiligatures also doesn't make any difference. This leads to
broken font ligatures when the cursor passes through them. It
does not recover from this, and they remain broken until you
re-render the whole buffer (e.g. by using Ctrl+L).
Solution: the problem is that we only re-draw the current and previous
character in gui_undraw_cursor() and only have the special case
for GTK when it comes to rendering ligatures. So let's enable
gui_adjust_undraw_cursor_for_ligatures() to also happen for
Win32 GUI if guiligatures is setup correctly (all this does is
expand the range of gui_undraw_cursor() with ligature characters).
related: #9181
related: #12901
closes: #14084
Signed-off-by: Erik S. V. Jansson <caffeineviking@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 24 Feb 2024 14:45:03 +0100 |
parents | 995b539939c4 |
children |
rev | line source |
---|---|
10042
4aead6a9b7a9
commit https://github.com/vim/vim/commit/edf3f97ae2af024708ebb4ac614227327033ca47
Christian Brabandt <cb@256bit.org>
parents:
9834
diff
changeset
|
1 /* vi:set ts=8 sts=4 sw=4 noet: |
7 | 2 * |
3 * VIM - Vi IMproved by Bram Moolenaar | |
4 * Motif support by Robert Webb | |
5 * | |
6 * Do ":help uganda" in Vim to read copying and usage conditions. | |
7 * Do ":help credits" in Vim to see a list of people who contributed. | |
8 */ | |
9 | |
10 #ifdef FEAT_GUI_MOTIF | |
11 # include <Xm/Xm.h> | |
12 #endif | |
13 | |
14 #ifdef FEAT_GUI_GTK | |
33888
cb88e5c589d0
patch 9.0.2153: no support to build on OpenVMS
Christian Brabandt <cb@256bit.org>
parents:
33404
diff
changeset
|
15 # ifdef VMS |
23408
bdda90ed5f6c
patch 8.2.2247: VMS: various smaller problems
Bram Moolenaar <Bram@vim.org>
parents:
21745
diff
changeset
|
16 # include "gui_gtk_vms.h" |
33888
cb88e5c589d0
patch 9.0.2153: no support to build on OpenVMS
Christian Brabandt <cb@256bit.org>
parents:
33404
diff
changeset
|
17 # endif |
7 | 18 # include <X11/Intrinsic.h> |
33404
9b35b4c6df4c
patch 9.0.1960: Make CI checks more strict
Christian Brabandt <cb@256bit.org>
parents:
30075
diff
changeset
|
19 # pragma GCC diagnostic push |
9b35b4c6df4c
patch 9.0.1960: Make CI checks more strict
Christian Brabandt <cb@256bit.org>
parents:
30075
diff
changeset
|
20 # pragma GCC diagnostic ignored "-Wstrict-prototypes" |
7 | 21 # include <gtk/gtk.h> |
33404
9b35b4c6df4c
patch 9.0.1960: Make CI checks more strict
Christian Brabandt <cb@256bit.org>
parents:
30075
diff
changeset
|
22 # pragma GCC diagnostic pop |
7 | 23 #endif |
24 | |
19526
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
25 #ifdef FEAT_GUI_HAIKU |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
26 # include "gui_haiku.h" |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
27 #endif |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
28 |
17268
00cd8830bab9
patch 8.1.1633: cannot generate prototypes with X11 but without GUI
Bram Moolenaar <Bram@vim.org>
parents:
16451
diff
changeset
|
29 // Needed when generating prototypes, since FEAT_GUI is always defined then. |
00cd8830bab9
patch 8.1.1633: cannot generate prototypes with X11 but without GUI
Bram Moolenaar <Bram@vim.org>
parents:
16451
diff
changeset
|
30 #if defined(FEAT_XCLIPBOARD) && !defined(FEAT_GUI_MOTIF) \ |
28303
9849df834f1d
patch 8.2.4677: the Athena GUI support is outdated
Bram Moolenaar <Bram@vim.org>
parents:
28226
diff
changeset
|
31 && !defined(FEAT_GUI_GTK) |
17268
00cd8830bab9
patch 8.1.1633: cannot generate prototypes with X11 but without GUI
Bram Moolenaar <Bram@vim.org>
parents:
16451
diff
changeset
|
32 # include <X11/Intrinsic.h> |
00cd8830bab9
patch 8.1.1633: cannot generate prototypes with X11 but without GUI
Bram Moolenaar <Bram@vim.org>
parents:
16451
diff
changeset
|
33 #endif |
00cd8830bab9
patch 8.1.1633: cannot generate prototypes with X11 but without GUI
Bram Moolenaar <Bram@vim.org>
parents:
16451
diff
changeset
|
34 |
7 | 35 #ifdef FEAT_GUI_PHOTON |
36 # include <Ph.h> | |
37 # include <Pt.h> | |
38 # include "photon/PxProto.h" | |
39 #endif | |
40 | |
41 /* | |
1137 | 42 * On some systems scrolling needs to be done right away instead of in the |
43 * main loop. | |
44 */ | |
21745
35921b7fc07a
patch 8.2.1422: the Mac GUI implementation is outdated
Bram Moolenaar <Bram@vim.org>
parents:
19526
diff
changeset
|
45 #if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_GTK) |
7 | 46 # define USE_ON_FLY_SCROLL |
47 #endif | |
48 | |
49 /* | |
50 * GUIs that support dropping files on a running Vim. | |
51 */ | |
14428
aab5947be7c5
patch 8.1.0228: dropping files is ignored while Vim is busy
Christian Brabandt <cb@256bit.org>
parents:
13847
diff
changeset
|
52 #if (defined(FEAT_DND) && defined(FEAT_GUI_GTK)) \ |
aab5947be7c5
patch 8.1.0228: dropping files is ignored while Vim is busy
Christian Brabandt <cb@256bit.org>
parents:
13847
diff
changeset
|
53 || defined(FEAT_GUI_MSWIN) \ |
19526
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
54 || defined(FEAT_GUI_HAIKU) |
7 | 55 # define HAVE_DROP_FILE |
56 #endif | |
57 | |
58 /* | |
59 * This define makes menus always use a fontset. | |
60 * We're not sure if this code always works, thus it can be disabled. | |
61 */ | |
62 #ifdef FEAT_XFONTSET | |
63 # define FONTSET_ALWAYS | |
64 #endif | |
65 | |
66 /* | |
67 * These macros convert between character row/column and pixel coordinates. | |
68 * TEXT_X - Convert character column into X pixel coord for drawing strings. | |
69 * TEXT_Y - Convert character row into Y pixel coord for drawing strings. | |
70 * FILL_X - Convert character column into X pixel coord for filling the area | |
71 * under the character. | |
72 * FILL_Y - Convert character row into Y pixel coord for filling the area | |
73 * under the character. | |
74 * X_2_COL - Convert X pixel coord into character column. | |
75 * Y_2_ROW - Convert Y pixel coord into character row. | |
76 */ | |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15605
diff
changeset
|
77 #ifdef FEAT_GUI_MSWIN |
7 | 78 # define TEXT_X(col) ((col) * gui.char_width) |
79 # define TEXT_Y(row) ((row) * gui.char_height + gui.char_ascent) | |
80 # define FILL_X(col) ((col) * gui.char_width) | |
81 # define FILL_Y(row) ((row) * gui.char_height) | |
82 # define X_2_COL(x) ((x) / gui.char_width) | |
83 # define Y_2_ROW(y) ((y) / gui.char_height) | |
84 #else | |
85 # define TEXT_X(col) ((col) * gui.char_width + gui.border_offset) | |
86 # define FILL_X(col) ((col) * gui.char_width + gui.border_offset) | |
87 # define X_2_COL(x) (((x) - gui.border_offset) / gui.char_width) | |
88 # define TEXT_Y(row) ((row) * gui.char_height + gui.char_ascent \ | |
89 + gui.border_offset) | |
90 # define FILL_Y(row) ((row) * gui.char_height + gui.border_offset) | |
91 # define Y_2_ROW(y) (((y) - gui.border_offset) / gui.char_height) | |
92 #endif | |
93 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
94 // Indices for arrays of scrollbars |
28226
89c181c99e23
patch 8.2.4639: not sufficient parenthesis in preprocessor macros
Bram Moolenaar <Bram@vim.org>
parents:
28067
diff
changeset
|
95 #define SBAR_NONE (-1) |
7 | 96 #define SBAR_LEFT 0 |
97 #define SBAR_RIGHT 1 | |
98 #define SBAR_BOTTOM 2 | |
99 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
100 // Orientations for scrollbars |
7 | 101 #define SBAR_VERT 0 |
102 #define SBAR_HORIZ 1 | |
103 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
104 // Default size of scrollbar |
7 | 105 #define SB_DEFAULT_WIDTH 16 |
106 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
107 // Default height of the menu bar |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
108 #define MENU_DEFAULT_HEIGHT 1 // figure it out at runtime |
7 | 109 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
110 // Flags for gui_mch_outstr_nowrap() |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
111 #define GUI_MON_WRAP_CURSOR 0x01 // wrap cursor at end of line |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
112 #define GUI_MON_INVERT 0x02 // invert the characters |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
113 #define GUI_MON_IS_CURSOR 0x04 // drawing cursor |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
114 #define GUI_MON_TRS_CURSOR 0x08 // drawing transparent cursor |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
115 #define GUI_MON_NOCLEAR 0x10 // don't clear selection |
7 | 116 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
117 // Flags for gui_mch_draw_string() |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
118 #define DRAW_TRANSP 0x01 // draw with transparent bg |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
119 #define DRAW_BOLD 0x02 // draw bold text |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
120 #define DRAW_UNDERL 0x04 // draw underline text |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
121 #define DRAW_UNDERC 0x08 // draw undercurl text |
2823 | 122 #if defined(FEAT_GUI_GTK) |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
123 # define DRAW_ITALIC 0x10 // draw italic text |
7 | 124 #endif |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
125 #define DRAW_CURSOR 0x20 // drawing block cursor (win32) |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
126 #define DRAW_STRIKE 0x40 // strikethrough |
7 | 127 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
128 // For our own tearoff menu item |
7 | 129 #define TEAR_STRING "-->Detach" |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
130 #define TEAR_LEN (9) // length of above string |
7 | 131 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
132 // for the toolbar |
8163
d8a8e86f39ad
commit https://github.com/vim/vim/commit/e89ff0472bc33779583d48e8d38a5e794d05613a
Christian Brabandt <cb@256bit.org>
parents:
6448
diff
changeset
|
133 #define TOOLBAR_BUTTON_HEIGHT 18 |
d8a8e86f39ad
commit https://github.com/vim/vim/commit/e89ff0472bc33779583d48e8d38a5e794d05613a
Christian Brabandt <cb@256bit.org>
parents:
6448
diff
changeset
|
134 #define TOOLBAR_BUTTON_WIDTH 18 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
135 #define TOOLBAR_BORDER_HEIGHT 12 // room above+below buttons for MSWindows |
7 | 136 |
810 | 137 #ifdef FEAT_GUI_MSWIN |
811 | 138 # define TABLINE_HEIGHT 22 |
810 | 139 #endif |
819 | 140 #ifdef FEAT_GUI_MOTIF |
141 # define TABLINE_HEIGHT 30 | |
142 #endif | |
810 | 143 |
574 | 144 #if defined(NO_CONSOLE) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
145 # define NO_CONSOLE_INPUT // use no_console_input() to check if there |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
146 // is no console input possible |
7 | 147 #endif |
148 | |
149 typedef struct GuiScrollbar | |
150 { | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
151 long ident; // Unique identifier for each scrollbar |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
152 win_T *wp; // Scrollbar's window, NULL for bottom |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
153 int type; // one of SBAR_{LEFT,RIGHT,BOTTOM} |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
154 long value; // Represents top line number visible |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
155 long size; // Size of scrollbar thumb |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
156 long max; // Number of lines in buffer |
7 | 157 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
158 // Values measured in characters: |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
159 int top; // Top of scroll bar (chars from row 0) |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
160 int height; // Current height of scroll bar in rows |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
161 int width; // Current width of scroll bar in cols |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
162 int status_height; // Height of status line |
7 | 163 #ifdef FEAT_GUI_X11 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
164 Widget id; // Id of real scroll bar |
7 | 165 #endif |
166 #ifdef FEAT_GUI_GTK | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
167 GtkWidget *id; // Id of real scroll bar |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
168 unsigned long handler_id; // Id of "value_changed" signal handler |
7 | 169 #endif |
170 | |
171 #ifdef FEAT_GUI_MSWIN | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
172 HWND id; // Id of real scroll bar |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
173 int scroll_shift; // The scrollbar stuff can handle only up to |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
174 // 32767 lines. When the file is longer, |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
175 // scroll_shift is set to the number of shifts |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
176 // to reduce the count. |
7 | 177 #endif |
19526
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
178 |
34108
14b69ff2c1ab
patch 9.1.0018: use of #if instead of #ifdef
Christian Brabandt <cb@256bit.org>
parents:
33888
diff
changeset
|
179 #ifdef FEAT_GUI_HAIKU |
19526
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
180 VimScrollBar *id; // Pointer to real scroll bar |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
181 #endif |
7 | 182 #ifdef FEAT_GUI_PHOTON |
183 PtWidget_t *id; | |
184 #endif | |
185 } scrollbar_T; | |
186 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
187 typedef long guicolor_T; // handle for a GUI color; for X11 this should |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
188 // be "Pixel", but that's an unsigned and we |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
189 // need a signed value |
28226
89c181c99e23
patch 8.2.4639: not sufficient parenthesis in preprocessor macros
Bram Moolenaar <Bram@vim.org>
parents:
28067
diff
changeset
|
190 #define INVALCOLOR ((guicolor_T)-11111) // number for invalid color; on 32 bit |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
191 // displays there is a tiny chance this is an |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
192 // actual color |
28226
89c181c99e23
patch 8.2.4639: not sufficient parenthesis in preprocessor macros
Bram Moolenaar <Bram@vim.org>
parents:
28067
diff
changeset
|
193 #define CTERMCOLOR ((guicolor_T)-11110) // only used for cterm.bg_rgb and |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
194 // cterm.fg_rgb: use cterm color |
7 | 195 |
196 #ifdef FEAT_GUI_GTK | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
197 typedef PangoFontDescription *GuiFont; // handle for a GUI font |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
198 typedef PangoFontDescription *GuiFontset; // handle for a GUI fontset |
7 | 199 # define NOFONT (GuiFont)NULL |
200 # define NOFONTSET (GuiFontset)NULL | |
201 #else | |
202 # ifdef FEAT_GUI_PHOTON | |
203 typedef char *GuiFont; | |
204 typedef char *GuiFontset; | |
205 # define NOFONT (GuiFont)NULL | |
206 # define NOFONTSET (GuiFontset)NULL | |
207 # else | |
208 # ifdef FEAT_GUI_X11 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
209 typedef XFontStruct *GuiFont; // handle for a GUI font |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
210 typedef XFontSet GuiFontset; // handle for a GUI fontset |
7 | 211 # define NOFONT (GuiFont)0 |
212 # define NOFONTSET (GuiFontset)0 | |
213 # else | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
214 typedef long_u GuiFont; // handle for a GUI font |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
215 typedef long_u GuiFontset; // handle for a GUI fontset |
7 | 216 # define NOFONT (GuiFont)0 |
217 # define NOFONTSET (GuiFontset)0 | |
218 # endif | |
219 # endif | |
220 #endif | |
221 | |
16451
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
222 #ifdef VIMDLL |
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
223 // Use spawn when GUI is starting. |
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
224 # define GUI_MAY_SPAWN |
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
225 |
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
226 // Uncomment the next definition if you want to use the `:gui` command on |
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
227 // Windows. It uses `:mksession` to inherit the session from vim.exe to |
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
228 // gvim.exe. So, it doesn't work perfectly. (EXPERIMENTAL) |
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
229 //# define EXPERIMENTAL_GUI_CMD |
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
230 #endif |
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
231 |
7 | 232 typedef struct Gui |
233 { | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
234 int in_focus; // Vim has input focus |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
235 int in_use; // Is the GUI being used? |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
236 int starting; // GUI will start in a little while |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
237 int shell_created; // Has the shell been created yet? |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
238 int dying; // Is vim dying? Then output to terminal |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
239 int dofork; // Use fork() when GUI is starting |
16451
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
240 #ifdef GUI_MAY_SPAWN |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
241 int dospawn; // Use spawn() when GUI is starting |
16451
7ae2396cef62
patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe
Bram Moolenaar <Bram@vim.org>
parents:
15868
diff
changeset
|
242 #endif |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
243 int dragged_sb; // Which scrollbar being dragged, if any? |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
244 win_T *dragged_wp; // Which WIN's sb being dragged, if any? |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
245 int pointer_hidden; // Is the mouse pointer hidden? |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
246 int col; // Current cursor column in GUI display |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
247 int row; // Current cursor row in GUI display |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
248 int cursor_col; // Physical cursor column in GUI display |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
249 int cursor_row; // Physical cursor row in GUI display |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
250 char cursor_is_valid; // There is a cursor at cursor_row/col |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
251 int num_cols; // Number of columns |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
252 int num_rows; // Number of rows |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
253 int scroll_region_top; // Top (first) line of scroll region |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
254 int scroll_region_bot; // Bottom (last) line of scroll region |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
255 int scroll_region_left; // Left (first) column of scroll region |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
256 int scroll_region_right; // Right (last) col. of scroll region |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
257 int highlight_mask; // Highlight attribute mask |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
258 int scrollbar_width; // Width of vertical scrollbars |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
259 int scrollbar_height; // Height of horizontal scrollbar |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
260 int left_sbar_x; // Calculated x coord for left scrollbar |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
261 int right_sbar_x; // Calculated x coord for right scrollbar |
34238
995b539939c4
patch 9.1.0064: No Wayland support
Christian Brabandt <cb@256bit.org>
parents:
34108
diff
changeset
|
262 int force_redraw; // Force a redraw even e.g. not resized |
7 | 263 |
264 #ifdef FEAT_MENU | |
265 # ifndef FEAT_GUI_GTK | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
266 int menu_height; // Height of the menu bar |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
267 int menu_width; // Width of the menu bar |
7 | 268 # endif |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
269 char menu_is_active; // TRUE if menu is present |
7 | 270 #endif |
271 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
272 scrollbar_T bottom_sbar; // Bottom scrollbar |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
273 int which_scrollbars[3];// Which scrollbar boxes are active? |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
274 int prev_wrap; // For updating the horizontal scrollbar |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
275 int char_width; // Width of char cell in pixels |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
276 int char_height; // Height of char cell in pixels, includes |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
277 // 'linespace' |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
278 int char_ascent; // Ascent of char in pixels |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
279 int border_width; // Width of our border around text area |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
280 int border_offset; // Total pixel offset for all borders |
7 | 281 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
282 GuiFont norm_font; // Normal font |
2277
f42e0b5ff9e9
Change remaining HAVE_GTK2 to FEAT_GUI_GTK.
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
283 #ifndef FEAT_GUI_GTK |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
284 GuiFont bold_font; // Bold font |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
285 GuiFont ital_font; // Italic font |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
286 GuiFont boldital_font; // Bold-Italic font |
7 | 287 #else |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
288 int font_can_bold; // Whether norm_font supports bold weight. |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
289 // The styled font variants are not used. |
7 | 290 #endif |
291 | |
2277
f42e0b5ff9e9
Change remaining HAVE_GTK2 to FEAT_GUI_GTK.
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
292 #if defined(FEAT_MENU) && !defined(FEAT_GUI_GTK) |
7 | 293 # ifdef FONTSET_ALWAYS |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
294 GuiFontset menu_fontset; // set of fonts for multi-byte chars |
7 | 295 # else |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
296 GuiFont menu_font; // menu item font |
7 | 297 # endif |
298 #endif | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
299 GuiFont wide_font; // Normal 'guifontwide' font |
15605
62b3805506b3
patch 8.1.0810: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
14428
diff
changeset
|
300 #ifndef FEAT_GUI_GTK |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
301 GuiFont wide_bold_font; // Bold 'guifontwide' font |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
302 GuiFont wide_ital_font; // Italic 'guifontwide' font |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
303 GuiFont wide_boldital_font; // Bold-Italic 'guifontwide' font |
7 | 304 #endif |
305 #ifdef FEAT_XFONTSET | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
306 GuiFontset fontset; // set of fonts for multi-byte chars |
7 | 307 #endif |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
308 guicolor_T back_pixel; // Color of background |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
309 guicolor_T norm_pixel; // Color of normal text |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
310 guicolor_T def_back_pixel; // default Color of background |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
311 guicolor_T def_norm_pixel; // default Color of normal text |
7 | 312 |
313 #ifdef FEAT_GUI_X11 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
314 char *rsrc_menu_fg_name; // Color of menu & dialog foreground |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
315 guicolor_T menu_fg_pixel; // Same in Pixel format |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
316 char *rsrc_menu_bg_name; // Color of menu & dialog background |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
317 guicolor_T menu_bg_pixel; // Same in Pixel format |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
318 char *rsrc_scroll_fg_name; // Color of scrollbar foreground |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
319 guicolor_T scroll_fg_pixel; // Same in Pixel format |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
320 char *rsrc_scroll_bg_name; // Color of scrollbar background |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
321 guicolor_T scroll_bg_pixel; // Same in Pixel format |
7 | 322 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
323 Display *dpy; // X display |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
324 Window wid; // Window id of text area |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
325 int visibility; // Is shell partially/fully obscured? |
7 | 326 GC text_gc; |
327 GC back_gc; | |
328 GC invert_gc; | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
329 Cursor blank_pointer; // Blank pointer |
7 | 330 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
331 // X Resources |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
332 char_u *rsrc_font_name; // Resource font name, used if 'guifont' |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
333 // not set |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
334 char_u *rsrc_bold_font_name; // Resource bold font name |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
335 char_u *rsrc_ital_font_name; // Resource italic font name |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
336 char_u *rsrc_boldital_font_name; // Resource bold-italic font name |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
337 char_u *rsrc_menu_font_name; // Resource menu Font name |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
338 Bool rsrc_rev_video; // Use reverse video? |
7 | 339 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
340 char_u *geom; // Geometry, eg "80x24" |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
341 Bool color_approx; // Some color was approximated |
7 | 342 #endif |
343 | |
344 #ifdef FEAT_GUI_GTK | |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
8163
diff
changeset
|
345 # ifndef USE_GTK3 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
346 int visibility; // Is shell partially/fully obscured? |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
8163
diff
changeset
|
347 # endif |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
348 GdkCursor *blank_pointer; // Blank pointer |
7 | 349 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
350 // X Resources |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
351 char_u *geom; // Geometry, eg "80x24" |
7 | 352 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
353 GtkWidget *mainwin; // top level GTK window |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
354 GtkWidget *formwin; // manages all the windows below |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
355 GtkWidget *drawarea; // the "text" area |
7 | 356 # ifdef FEAT_MENU |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
357 GtkWidget *menubar; // menubar |
7 | 358 # endif |
359 # ifdef FEAT_TOOLBAR | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
360 GtkWidget *toolbar; // toolbar |
7 | 361 # endif |
362 # ifdef FEAT_GUI_GNOME | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
363 GtkWidget *menubar_h; // menubar handle |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
364 GtkWidget *toolbar_h; // toolbar handle |
7 | 365 # endif |
9624
d63b85fe3dc7
commit https://github.com/vim/vim/commit/36edf0685c8b55ee3ce709058d83ada8027fec1e
Christian Brabandt <cb@256bit.org>
parents:
8643
diff
changeset
|
366 # ifdef USE_GTK3 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
367 GdkRGBA *fgcolor; // GDK-styled foreground color |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
368 GdkRGBA *bgcolor; // GDK-styled background color |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
369 GdkRGBA *spcolor; // GDK-styled special color |
9624
d63b85fe3dc7
commit https://github.com/vim/vim/commit/36edf0685c8b55ee3ce709058d83ada8027fec1e
Christian Brabandt <cb@256bit.org>
parents:
8643
diff
changeset
|
370 # else |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
371 GdkColor *fgcolor; // GDK-styled foreground color |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
372 GdkColor *bgcolor; // GDK-styled background color |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
373 GdkColor *spcolor; // GDK-styled special color |
9624
d63b85fe3dc7
commit https://github.com/vim/vim/commit/36edf0685c8b55ee3ce709058d83ada8027fec1e
Christian Brabandt <cb@256bit.org>
parents:
8643
diff
changeset
|
374 # endif |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
8163
diff
changeset
|
375 # ifdef USE_GTK3 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
376 cairo_surface_t *surface; // drawarea surface |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
8163
diff
changeset
|
377 # else |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
378 GdkGC *text_gc; // cached GC for normal text |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
8163
diff
changeset
|
379 # endif |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
380 PangoContext *text_context; // the context used for all text |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
381 PangoFont *ascii_font; // cached font for ASCII strings |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
382 PangoGlyphString *ascii_glyphs; // cached code point -> glyph map |
714 | 383 # ifdef FEAT_GUI_TABLINE |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
384 GtkWidget *tabline; // tab pages line handle |
7 | 385 # endif |
386 | |
387 GtkAccelGroup *accel_group; | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
388 GtkWidget *filedlg; // file selection dialog |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
389 char_u *browse_fname; // file name from filedlg |
2923 | 390 |
391 guint32 event_time; | |
34420
c5a945f7f3da
patch 9.1.0133: MS-Windows: ligatures not rendering correctly
Christian Brabandt <cb@256bit.org>
parents:
34238
diff
changeset
|
392 #endif // FEAT_GUI_GTK |
25982
aade8ef975d5
patch 8.2.3524: GUI: ligatures are not used
Bram Moolenaar <Bram@vim.org>
parents:
23408
diff
changeset
|
393 |
34420
c5a945f7f3da
patch 9.1.0133: MS-Windows: ligatures not rendering correctly
Christian Brabandt <cb@256bit.org>
parents:
34238
diff
changeset
|
394 #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN) |
25982
aade8ef975d5
patch 8.2.3524: GUI: ligatures are not used
Bram Moolenaar <Bram@vim.org>
parents:
23408
diff
changeset
|
395 char_u ligatures_map[256]; // ascii map for characters 0-255, value is |
aade8ef975d5
patch 8.2.3524: GUI: ligatures are not used
Bram Moolenaar <Bram@vim.org>
parents:
23408
diff
changeset
|
396 // 1 if in 'guiligatures' |
34420
c5a945f7f3da
patch 9.1.0133: MS-Windows: ligatures not rendering correctly
Christian Brabandt <cb@256bit.org>
parents:
34238
diff
changeset
|
397 #endif |
7 | 398 |
843 | 399 #if defined(FEAT_GUI_TABLINE) \ |
15868
7fad90423bd2
patch 8.1.0941: macros for MS-Windows are inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
15605
diff
changeset
|
400 && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) \ |
21745
35921b7fc07a
patch 8.2.1422: the Mac GUI implementation is outdated
Bram Moolenaar <Bram@vim.org>
parents:
19526
diff
changeset
|
401 || defined(FEAT_GUI_HAIKU)) |
843 | 402 int tabline_height; |
403 #endif | |
404 | |
7 | 405 #if defined(FEAT_TOOLBAR) \ |
28303
9849df834f1d
patch 8.2.4677: the Athena GUI support is outdated
Bram Moolenaar <Bram@vim.org>
parents:
28226
diff
changeset
|
406 && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_HAIKU) || defined(FEAT_GUI_MSWIN)) |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
407 int toolbar_height; // height of the toolbar |
7 | 408 #endif |
409 | |
410 #ifdef FEAT_BEVAL_TIP | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
411 // Tooltip properties; also used for balloon evaluation |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
412 char_u *rsrc_tooltip_font_name; // tooltip font name |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
413 char *rsrc_tooltip_fg_name; // tooltip foreground color name |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
414 char *rsrc_tooltip_bg_name; // tooltip background color name |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
415 guicolor_T tooltip_fg_pixel; // tooltip foreground color |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
416 guicolor_T tooltip_bg_pixel; // tooltip background color |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
417 XFontSet tooltip_fontset; // tooltip fontset |
7 | 418 #endif |
419 | |
420 #ifdef FEAT_GUI_MSWIN | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
421 GuiFont currFont; // Current font |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
422 guicolor_T currFgColor; // Current foreground text color |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
423 guicolor_T currBgColor; // Current background text color |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
424 guicolor_T currSpColor; // Current special text color |
7 | 425 #endif |
426 | |
19526
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
427 #ifdef FEAT_GUI_HAIKU |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
428 VimApp *vimApp; |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
429 VimWindow *vimWindow; |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
430 VimFormView *vimForm; |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
431 VimTextAreaView *vimTextArea; |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
432 int vdcmp; // Vim Direct Communication Message Port |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
433 #endif |
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
434 |
7 | 435 #ifdef FEAT_GUI_PHOTON |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
436 PtWidget_t *vimWindow; // PtWindow |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
437 PtWidget_t *vimTextArea; // PtRaw |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
438 PtWidget_t *vimContainer; // PtPanel |
7 | 439 # if defined(FEAT_MENU) || defined(FEAT_TOOLBAR) |
440 PtWidget_t *vimToolBarGroup; | |
441 # endif | |
442 # ifdef FEAT_MENU | |
443 PtWidget_t *vimMenuBar; | |
444 # endif | |
445 # ifdef FEAT_TOOLBAR | |
446 PtWidget_t *vimToolBar; | |
447 int toolbar_height; | |
448 # endif | |
449 PhEvent_t *event_buffer; | |
450 #endif | |
451 | |
452 #ifdef FEAT_XIM | |
453 char *rsrc_input_method; | |
454 char *rsrc_preedit_type_name; | |
455 #endif | |
456 } gui_T; | |
457 | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
458 extern gui_T gui; // this is defined in gui.c |
7 | 459 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
460 // definitions of available window positionings for gui_*_position_in_parent() |
7 | 461 typedef enum |
462 { | |
463 VW_POS_MOUSE, | |
464 VW_POS_CENTER, | |
465 VW_POS_TOP_CENTER | |
325 | 466 } gui_win_pos_T; |
7 | 467 |
28 | 468 #ifdef FIND_REPLACE_DIALOG |
7 | 469 /* |
470 * Flags used to distinguish the different contexts in which the | |
471 * find/replace callback may be called. | |
472 */ | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
473 # define FRD_FINDNEXT 1 // Find next in find dialog |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
474 # define FRD_R_FINDNEXT 2 // Find next in repl dialog |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
475 # define FRD_REPLACE 3 // Replace once |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
476 # define FRD_REPLACEALL 4 // Replace remaining matches |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
477 # define FRD_UNDO 5 // Undo replaced text |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
478 # define FRD_TYPE_MASK 7 // Mask for the callback type |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
479 // Flags which change the way searching is done. |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
480 # define FRD_WHOLE_WORD 0x08 // match whole word only |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
481 # define FRD_MATCH_CASE 0x10 // match case |
7 | 482 #endif |
836 | 483 |
2277
f42e0b5ff9e9
Change remaining HAVE_GTK2 to FEAT_GUI_GTK.
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
484 #ifdef FEAT_GUI_GTK |
836 | 485 /* |
486 * Convenience macros to convert from 'encoding' to 'termencoding' and | |
487 * vice versa. If no conversion is necessary the passed-in pointer is | |
488 * returned as is, without allocating any memory. Thus additional _FREE() | |
489 * macros are provided. The _FREE() macros also set the pointer to NULL, | |
490 * in order to avoid bugs due to illegal memory access only happening if | |
491 * 'encoding' != utf-8... | |
492 * | |
493 * Defining these macros as pure expressions looks a bit tricky but | |
494 * avoids depending on the context of the macro expansion. One of the | |
495 * rare occasions where the comma operator comes in handy :) | |
496 * | |
497 * Note: Do NOT keep the result around when handling control back to | |
498 * the main Vim! The user could change 'encoding' at any time. | |
499 */ | |
500 # define CONVERT_TO_UTF8(String) \ | |
501 ((output_conv.vc_type == CONV_NONE || (String) == NULL) \ | |
502 ? (String) \ | |
503 : string_convert(&output_conv, (String), NULL)) | |
504 | |
505 # define CONVERT_TO_UTF8_FREE(String) \ | |
506 ((String) = ((output_conv.vc_type == CONV_NONE) \ | |
507 ? (char_u *)NULL \ | |
508 : (vim_free(String), (char_u *)NULL))) | |
509 | |
510 # define CONVERT_FROM_UTF8(String) \ | |
511 ((input_conv.vc_type == CONV_NONE || (String) == NULL) \ | |
512 ? (String) \ | |
513 : string_convert(&input_conv, (String), NULL)) | |
514 | |
515 # define CONVERT_FROM_UTF8_FREE(String) \ | |
516 ((String) = ((input_conv.vc_type == CONV_NONE) \ | |
517 ? (char_u *)NULL \ | |
518 : (vim_free(String), (char_u *)NULL))) | |
519 | |
520 #else | |
521 # define CONVERT_TO_UTF8(String) (String) | |
522 # define CONVERT_TO_UTF8_FREE(String) ((String) = (char_u *)NULL) | |
523 # define CONVERT_FROM_UTF8(String) (String) | |
524 # define CONVERT_FROM_UTF8_FREE(String) ((String) = (char_u *)NULL) | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
525 #endif // FEAT_GUI_GTK |
10176
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
526 |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
527 #ifdef FEAT_GUI_GTK |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
528 /* |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
529 * The second parameter of g_signal_handlers_disconnect_by_func() is supposed |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
530 * to be a function pointer which was passed to g_signal_connect_*() somewhere |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
531 * previously, and hence it must be of type GCallback, i.e., void (*)(void). |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
532 * |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
533 * Meanwhile, g_signal_handlers_disconnect_by_func() is a macro calling |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
534 * g_signal_handlers_disconnect_matched(), and the second parameter of the |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
535 * former is to be passed to the sixth parameter of the latter the type of |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
536 * which, however, is declared as void * in the function signature. |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
537 * |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
538 * While the ISO C Standard does not require that function pointers be |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
539 * interconvertible to void *, widely-used compilers such as gcc and clang |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
540 * do such conversion implicitly and automatically on some platforms without |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
541 * issuing any warning. |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
542 * |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
543 * For Solaris Studio, that is not the case. An explicit type cast is needed |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
544 * to suppress warnings on that particular conversion. |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
545 */ |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
546 # if defined(__SUNPRO_C) && defined(USE_GTK3) |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
547 # define FUNC2GENERIC(func) (void *)(func) |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
548 # else |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
549 # define FUNC2GENERIC(func) G_CALLBACK(func) |
51888fb2599f
commit https://github.com/vim/vim/commit/d47d83745ff450232328ca7a4b8b00b31bad22fc
Christian Brabandt <cb@256bit.org>
parents:
10042
diff
changeset
|
550 # endif |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
17268
diff
changeset
|
551 #endif // FEAT_GUI_GTK |
13847
fa0dcdaec6a3
patch 8.0.1795: lose contact with jobs when :gui forks
Christian Brabandt <cb@256bit.org>
parents:
13339
diff
changeset
|
552 |
21745
35921b7fc07a
patch 8.2.1422: the Mac GUI implementation is outdated
Bram Moolenaar <Bram@vim.org>
parents:
19526
diff
changeset
|
553 #if defined(UNIX) |
13847
fa0dcdaec6a3
patch 8.0.1795: lose contact with jobs when :gui forks
Christian Brabandt <cb@256bit.org>
parents:
13339
diff
changeset
|
554 # define GUI_MAY_FORK |
fa0dcdaec6a3
patch 8.0.1795: lose contact with jobs when :gui forks
Christian Brabandt <cb@256bit.org>
parents:
13339
diff
changeset
|
555 #endif |