Mercurial > hg > xemacs-beta
comparison src/window.c @ 438:84b14dcb0985 r21-2-27
Import from CVS: tag r21-2-27
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:32:25 +0200 |
parents | 9d177e8d4150 |
children | 8de8e3f6228a |
comparison
equal
deleted
inserted
replaced
437:e2a4e8b94b82 | 438:84b14dcb0985 |
---|---|
1146 (con_dev_or_frame)) | 1146 (con_dev_or_frame)) |
1147 { | 1147 { |
1148 return FRAME_MINIBUF_WINDOW (decode_frame_or_selected (con_dev_or_frame)); | 1148 return FRAME_MINIBUF_WINDOW (decode_frame_or_selected (con_dev_or_frame)); |
1149 } | 1149 } |
1150 | 1150 |
1151 DEFUN ("window-minibuffer-p", Fwindow_minibuffer_p, 1, 1, 0, /* | 1151 DEFUN ("window-minibuffer-p", Fwindow_minibuffer_p, 0, 1, 0, /* |
1152 Return non-nil if WINDOW is a minibuffer window. | 1152 Return non-nil if WINDOW is a minibuffer window. |
1153 */ | 1153 */ |
1154 (window)) | 1154 (window)) |
1155 { | 1155 { |
1156 return MINI_WINDOW_P (decode_window (window)) ? Qt : Qnil; | 1156 return MINI_WINDOW_P (decode_window (window)) ? Qt : Qnil; |
1435 (window)) | 1435 (window)) |
1436 { | 1436 { |
1437 return make_int (decode_window (window)->hscroll); | 1437 return make_int (decode_window (window)->hscroll); |
1438 } | 1438 } |
1439 | 1439 |
1440 #ifdef MODELINE_IS_SCROLLABLE | |
1441 DEFUN ("modeline-hscroll", Fmodeline_hscroll, 0, 1, 0, /* | 1440 DEFUN ("modeline-hscroll", Fmodeline_hscroll, 0, 1, 0, /* |
1442 Return the number of columns by which WINDOW's modeline is scrolled from | 1441 Return the horizontal scrolling ammount of WINDOW's modeline. |
1443 left margin. If the window has no modeline, return nil. | 1442 If the window has no modeline, return nil. |
1444 */ | 1443 */ |
1445 (window)) | 1444 (window)) |
1446 { | 1445 { |
1447 struct window *w = decode_window (window); | 1446 struct window *w = decode_window (window); |
1448 | 1447 |
1449 return (WINDOW_HAS_MODELINE_P (w)) ? make_int (w->modeline_hscroll) : Qnil; | 1448 return (WINDOW_HAS_MODELINE_P (w)) ? make_int ((int) w->modeline_hscroll) : |
1449 Qnil; | |
1450 } | 1450 } |
1451 | 1451 |
1452 DEFUN ("set-modeline-hscroll", Fset_modeline_hscroll, 2, 2, 0, /* | 1452 DEFUN ("set-modeline-hscroll", Fset_modeline_hscroll, 2, 2, 0, /* |
1453 Set number of columns WINDOW's modeline is scrolled from left margin to NCOL. | 1453 Set the horizontal scrolling ammount of WINDOW's modeline to NCOL. |
1454 NCOL should be zero or positive. If NCOL is negative, it will be forced to 0. | 1454 If NCOL is negative, it will silently be forced to 0. |
1455 If the window has no modeline, do nothing and return nil. | 1455 If the window has no modeline, return nil. Otherwise, return the actual |
1456 value that was set. | |
1456 */ | 1457 */ |
1457 (window, ncol)) | 1458 (window, ncol)) |
1458 { | 1459 { |
1459 struct window *w = decode_window (window); | 1460 struct window *w = decode_window (window); |
1460 | 1461 |
1461 if (WINDOW_HAS_MODELINE_P (w)) | 1462 if (WINDOW_HAS_MODELINE_P (w)) |
1462 { | 1463 { |
1463 int ncols; | 1464 Charcount ncols; |
1465 | |
1464 CHECK_INT (ncol); | 1466 CHECK_INT (ncol); |
1465 ncols = XINT (ncol); | 1467 ncols = (XINT (ncol) <= 0) ? 0 : (Charcount) XINT (ncol); |
1466 if (ncols < 0) ncols = 0; | 1468 if (ncols != w->modeline_hscroll) |
1467 if (w->modeline_hscroll != ncols) | 1469 { |
1468 MARK_MODELINE_CHANGED; | 1470 MARK_MODELINE_CHANGED; |
1469 w->modeline_hscroll = ncols; | 1471 w->modeline_hscroll = ncols; |
1470 return ncol; | 1472 } |
1471 } | 1473 return make_int ((int) ncols); |
1474 } | |
1475 | |
1472 return Qnil; | 1476 return Qnil; |
1473 } | 1477 } |
1474 #endif /* MODELINE_IS_SCROLLABLE */ | |
1475 | 1478 |
1476 DEFUN ("set-window-hscroll", Fset_window_hscroll, 2, 2, 0, /* | 1479 DEFUN ("set-window-hscroll", Fset_window_hscroll, 2, 2, 0, /* |
1477 Set number of columns WINDOW is scrolled from left margin to NCOL. | 1480 Set number of columns WINDOW is scrolled from left margin to NCOL. |
1478 NCOL should be zero or positive. | 1481 NCOL should be zero or positive. |
1479 */ | 1482 */ |
4048 | 4051 |
4049 if (INTP (Vwindow_pixel_scroll_increment)) | 4052 if (INTP (Vwindow_pixel_scroll_increment)) |
4050 fheight = XINT (Vwindow_pixel_scroll_increment); | 4053 fheight = XINT (Vwindow_pixel_scroll_increment); |
4051 else if (!NILP (Vwindow_pixel_scroll_increment)); | 4054 else if (!NILP (Vwindow_pixel_scroll_increment)); |
4052 default_face_height_and_width (window, &fheight, &fwidth); | 4055 default_face_height_and_width (window, &fheight, &fwidth); |
4053 | 4056 |
4054 if (Dynarr_length (dla) >= 1) | 4057 if (Dynarr_length (dla) >= 1) |
4055 modeline = Dynarr_atp (dla, 0)->modeline; | 4058 modeline = Dynarr_atp (dla, 0)->modeline; |
4056 | 4059 |
4057 dl = Dynarr_atp (dla, modeline); | 4060 dl = Dynarr_atp (dla, modeline); |
4058 | 4061 |
4059 if (value > 0) | 4062 if (value > 0) |
4060 { | 4063 { |
4061 /* Go for partial display line scrolling. This just means bumping | 4064 /* Go for partial display line scrolling. This just means bumping |
4062 the clip by a reasonable amount and redisplaying, everything else | 4065 the clip by a reasonable amount and redisplaying, everything else |
4063 remains unchanged. */ | 4066 remains unchanged. */ |
4072 } | 4075 } |
4073 else | 4076 else |
4074 { | 4077 { |
4075 int vtarget; | 4078 int vtarget; |
4076 Bufpos startp, old_start; | 4079 Bufpos startp, old_start; |
4077 | 4080 |
4078 if (WINDOW_TEXT_TOP_CLIP (w)) | 4081 if (WINDOW_TEXT_TOP_CLIP (w)) |
4079 { | 4082 { |
4080 WINDOW_TEXT_TOP_CLIP (w) = 0; | 4083 WINDOW_TEXT_TOP_CLIP (w) = 0; |
4081 MARK_WINDOWS_CHANGED (w); | 4084 MARK_WINDOWS_CHANGED (w); |
4082 } | 4085 } |
4083 | 4086 |
4084 old_start = marker_position (w->start[CURRENT_DISP]); | 4087 old_start = marker_position (w->start[CURRENT_DISP]); |
4085 startp = vmotion (w, old_start, value, &vtarget); | 4088 startp = vmotion (w, old_start, value, &vtarget); |
4086 | 4089 |
4087 if (vtarget < value && | 4090 if (vtarget < value && |
4088 (w->window_end_pos[CURRENT_DISP] == -1 | 4091 (w->window_end_pos[CURRENT_DISP] == -1 |
4089 || (BUF_Z (b) - w->window_end_pos[CURRENT_DISP] > BUF_ZV (b)))) | 4092 || (BUF_Z (b) - w->window_end_pos[CURRENT_DISP] > BUF_ZV (b)))) |
4090 { | 4093 { |
4091 maybe_signal_error (Qend_of_buffer, Qnil, Qwindow, errb); | 4094 maybe_signal_error (Qend_of_buffer, Qnil, Qwindow, errb); |
4096 set_marker_restricted (w->start[CURRENT_DISP], make_int (startp), | 4099 set_marker_restricted (w->start[CURRENT_DISP], make_int (startp), |
4097 w->buffer); | 4100 w->buffer); |
4098 w->force_start = 1; | 4101 w->force_start = 1; |
4099 w->start_at_line_beg = beginning_of_line_p (b, startp); | 4102 w->start_at_line_beg = beginning_of_line_p (b, startp); |
4100 MARK_WINDOWS_CHANGED (w); | 4103 MARK_WINDOWS_CHANGED (w); |
4101 | 4104 |
4102 if (!point_would_be_visible (w, startp, XINT (point))) | 4105 if (!point_would_be_visible (w, startp, XINT (point))) |
4103 { | 4106 { |
4104 if (selected) | 4107 if (selected) |
4105 BUF_SET_PT (b, startp); | 4108 BUF_SET_PT (b, startp); |
4106 else | 4109 else |
4130 } | 4133 } |
4131 else | 4134 else |
4132 { | 4135 { |
4133 int vtarget; | 4136 int vtarget; |
4134 Bufpos startp, old_start; | 4137 Bufpos startp, old_start; |
4135 | 4138 |
4136 if (WINDOW_TEXT_TOP_CLIP (w)) | 4139 if (WINDOW_TEXT_TOP_CLIP (w)) |
4137 { | 4140 { |
4138 WINDOW_TEXT_TOP_CLIP (w) = 0; | 4141 WINDOW_TEXT_TOP_CLIP (w) = 0; |
4139 MARK_WINDOWS_CHANGED (w); | 4142 MARK_WINDOWS_CHANGED (w); |
4140 } | 4143 } |
4141 | 4144 |
4142 old_start = marker_position (w->start[CURRENT_DISP]); | 4145 old_start = marker_position (w->start[CURRENT_DISP]); |
4143 startp = vmotion (w, old_start, value, &vtarget); | 4146 startp = vmotion (w, old_start, value, &vtarget); |
4144 | 4147 |
4145 if (vtarget > value | 4148 if (vtarget > value |
4146 && marker_position (w->start[CURRENT_DISP]) == BUF_BEGV (b)) | 4149 && marker_position (w->start[CURRENT_DISP]) == BUF_BEGV (b)) |
4147 { | 4150 { |
4148 maybe_signal_error (Qbeginning_of_buffer, Qnil, Qwindow, errb); | 4151 maybe_signal_error (Qbeginning_of_buffer, Qnil, Qwindow, errb); |
4149 return; | 4152 return; |
4153 set_marker_restricted (w->start[CURRENT_DISP], make_int (startp), | 4156 set_marker_restricted (w->start[CURRENT_DISP], make_int (startp), |
4154 w->buffer); | 4157 w->buffer); |
4155 w->force_start = 1; | 4158 w->force_start = 1; |
4156 w->start_at_line_beg = beginning_of_line_p (b, startp); | 4159 w->start_at_line_beg = beginning_of_line_p (b, startp); |
4157 MARK_WINDOWS_CHANGED (w); | 4160 MARK_WINDOWS_CHANGED (w); |
4158 | 4161 |
4159 if (!point_would_be_visible (w, startp, XINT (point))) | 4162 if (!point_would_be_visible (w, startp, XINT (point))) |
4160 { | 4163 { |
4161 Bufpos new_point; | 4164 Bufpos new_point; |
4162 | 4165 |
4163 if (MINI_WINDOW_P (w)) | 4166 if (MINI_WINDOW_P (w)) |
4164 new_point = startp; | 4167 new_point = startp; |
4165 else | 4168 else |
4166 new_point = start_of_last_line (w, startp); | 4169 new_point = start_of_last_line (w, startp); |
4167 | 4170 |
4168 if (selected) | 4171 if (selected) |
4169 BUF_SET_PT (b, new_point); | 4172 BUF_SET_PT (b, new_point); |
4170 else | 4173 else |
4171 set_marker_restricted (w->pointm[CURRENT_DISP], | 4174 set_marker_restricted (w->pointm[CURRENT_DISP], |
4172 make_int (new_point), | 4175 make_int (new_point), |
4692 int pixel_left; | 4695 int pixel_left; |
4693 int pixel_top; | 4696 int pixel_top; |
4694 int pixel_width; | 4697 int pixel_width; |
4695 int pixel_height; | 4698 int pixel_height; |
4696 int hscroll; | 4699 int hscroll; |
4697 int modeline_hscroll; | 4700 Charcount modeline_hscroll; |
4698 int parent_index; /* index into saved_windows */ | 4701 int parent_index; /* index into saved_windows */ |
4699 int prev_index; /* index into saved_windows */ | 4702 int prev_index; /* index into saved_windows */ |
4700 char start_at_line_beg; /* boolean */ | 4703 char start_at_line_beg; /* boolean */ |
4701 | 4704 |
4702 #define WINDOW_SLOT_DECLARATION | 4705 #define WINDOW_SLOT_DECLARATION |
4954 int previous_pixel_height; | 4957 int previous_pixel_height; |
4955 int previous_pixel_left; | 4958 int previous_pixel_left; |
4956 int previous_pixel_width; | 4959 int previous_pixel_width; |
4957 int previous_minibuf_height, previous_minibuf_top,previous_minibuf_width; | 4960 int previous_minibuf_height, previous_minibuf_top,previous_minibuf_width; |
4958 int real_font_height; | 4961 int real_font_height; |
4959 int converted_minibuf_height,target_minibuf_height; | 4962 int converted_minibuf_height,target_minibuf_height; |
4960 int specpdl_count = specpdl_depth (); | 4963 int specpdl_count = specpdl_depth (); |
4961 | 4964 |
4962 GCPRO1 (configuration); | 4965 GCPRO1 (configuration); |
4963 | 4966 |
4964 CHECK_WINDOW_CONFIGURATION (configuration); | 4967 CHECK_WINDOW_CONFIGURATION (configuration); |
5022 mark_windows_in_use (f, 1); | 5025 mark_windows_in_use (f, 1); |
5023 | 5026 |
5024 #if 0 | 5027 #if 0 |
5025 /* JV: This is bogus, | 5028 /* JV: This is bogus, |
5026 First of all, the units are inconsistent. The frame sizes are measured | 5029 First of all, the units are inconsistent. The frame sizes are measured |
5027 in characters but the window sizes are stored in pixels. So if a | 5030 in characters but the window sizes are stored in pixels. So if a |
5028 font size change happened between saving and restoring, the | 5031 font size change happened between saving and restoring, the |
5029 frame "sizes" maybe equal but the windows still should be | 5032 frame "sizes" maybe equal but the windows still should be |
5030 resized. This is tickled alot by the new "character size | 5033 resized. This is tickled alot by the new "character size |
5031 stays constant" policy in 21.0. It leads to very wierd | 5034 stays constant" policy in 21.0. It leads to very wierd |
5032 glitches (and possibly craches when asserts are tickled). | 5035 glitches (and possibly craches when asserts are tickled). |
5043 back. We keep track of the prevailing height in these variables. */ | 5046 back. We keep track of the prevailing height in these variables. */ |
5044 if (config->frame_height != FRAME_HEIGHT (f) | 5047 if (config->frame_height != FRAME_HEIGHT (f) |
5045 || config->frame_width != FRAME_WIDTH (f)) | 5048 || config->frame_width != FRAME_WIDTH (f)) |
5046 change_frame_size (f, config->frame_height, config->frame_width, 0); | 5049 change_frame_size (f, config->frame_height, config->frame_width, 0); |
5047 #endif | 5050 #endif |
5048 | 5051 |
5049 previous_pixel_top = XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_top; | 5052 previous_pixel_top = XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_top; |
5050 previous_pixel_height = XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_height; | 5053 previous_pixel_height = XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_height; |
5051 previous_pixel_left = XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_left; | 5054 previous_pixel_left = XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_left; |
5052 previous_pixel_width = XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_width; | 5055 previous_pixel_width = XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_width; |
5053 | 5056 |
5054 /* remember some properties of the minibuffer */ | 5057 /* remember some properties of the minibuffer */ |
5055 | 5058 |
5056 default_face_height_and_width (frame, &real_font_height, 0); | 5059 default_face_height_and_width (frame, &real_font_height, 0); |
5057 assert(real_font_height > 0); | 5060 assert(real_font_height > 0); |
5058 | 5061 |
5059 if (FRAME_HAS_MINIBUF_P (f) && ! FRAME_MINIBUF_ONLY_P (f)) | 5062 if (FRAME_HAS_MINIBUF_P (f) && ! FRAME_MINIBUF_ONLY_P (f)) |
5060 { | 5063 { |
5061 previous_minibuf_height | 5064 previous_minibuf_height |
5062 = XWINDOW(FRAME_MINIBUF_WINDOW(f))->pixel_height; | 5065 = XWINDOW(FRAME_MINIBUF_WINDOW(f))->pixel_height; |
5063 previous_minibuf_top | 5066 previous_minibuf_top |
5066 = XWINDOW(FRAME_MINIBUF_WINDOW(f))->pixel_width; | 5069 = XWINDOW(FRAME_MINIBUF_WINDOW(f))->pixel_width; |
5067 } | 5070 } |
5068 else | 5071 else |
5069 { | 5072 { |
5070 previous_minibuf_height = 0; | 5073 previous_minibuf_height = 0; |
5074 previous_minibuf_top = 0; | |
5071 previous_minibuf_width = 0; | 5075 previous_minibuf_width = 0; |
5072 } | 5076 } |
5073 converted_minibuf_height = | 5077 converted_minibuf_height = |
5074 (previous_minibuf_height % real_font_height) == 0 ? | 5078 (previous_minibuf_height % real_font_height) == 0 ? |
5075 - (previous_minibuf_height / real_font_height ) : /* lines */ | 5079 - (previous_minibuf_height / real_font_height ) : /* lines */ |
5076 previous_minibuf_height; /* pixels */ | 5080 previous_minibuf_height; /* pixels */ |
5077 | 5081 |
5078 /* Temporarily avoid any problems with windows that are smaller | 5082 /* Temporarily avoid any problems with windows that are smaller |
5079 than they are supposed to be. */ | 5083 than they are supposed to be. */ |
5080 window_min_height = 1; | 5084 window_min_height = 1; |
5081 window_min_width = 1; | 5085 window_min_width = 1; |
5082 | 5086 |
5254 We take the old value if is in the same units but differs from the | 5258 We take the old value if is in the same units but differs from the |
5255 current value. | 5259 current value. |
5256 | 5260 |
5257 #### Now we get more cases correct then ever before, but | 5261 #### Now we get more cases correct then ever before, but |
5258 are we treating all? For instance what if the frames minibuf window | 5262 are we treating all? For instance what if the frames minibuf window |
5259 is no longer the same one? | 5263 is no longer the same one? |
5260 */ | 5264 */ |
5261 target_minibuf_height = previous_minibuf_height; | 5265 target_minibuf_height = previous_minibuf_height; |
5262 if (converted_minibuf_height && | 5266 if (converted_minibuf_height && |
5263 (converted_minibuf_height * config->minibuf_height) > 0 && | 5267 (converted_minibuf_height * config->minibuf_height) > 0 && |
5264 (converted_minibuf_height != config->minibuf_height)) | 5268 (converted_minibuf_height != config->minibuf_height)) |
5277 set_window_pixheight (FRAME_MINIBUF_WINDOW (f), | 5281 set_window_pixheight (FRAME_MINIBUF_WINDOW (f), |
5278 target_minibuf_height, 0); | 5282 target_minibuf_height, 0); |
5279 set_window_pixwidth (FRAME_MINIBUF_WINDOW (f), | 5283 set_window_pixwidth (FRAME_MINIBUF_WINDOW (f), |
5280 previous_minibuf_width, 0); | 5284 previous_minibuf_width, 0); |
5281 } | 5285 } |
5282 | 5286 |
5283 /* This is a better way to deal with frame resizing, etc. | 5287 /* This is a better way to deal with frame resizing, etc. |
5284 What we _actually_ want is for the old (just restored) | 5288 What we _actually_ want is for the old (just restored) |
5285 root window to fit | 5289 root window to fit |
5286 into the place of the new one. So we just do that. Simple! */ | 5290 into the place of the new one. So we just do that. Simple! */ |
5287 XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_top = previous_pixel_top; | 5291 XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_top = previous_pixel_top; |
5292 (target_minibuf_height - previous_minibuf_height), 0); | 5296 (target_minibuf_height - previous_minibuf_height), 0); |
5293 XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_left = previous_pixel_left; | 5297 XWINDOW (FRAME_ROOT_WINDOW (f))->pixel_left = previous_pixel_left; |
5294 /* Note that this function also updates the subwindow | 5298 /* Note that this function also updates the subwindow |
5295 "pixel_left"s */ | 5299 "pixel_left"s */ |
5296 set_window_pixwidth (FRAME_ROOT_WINDOW (f), previous_pixel_width, 0); | 5300 set_window_pixwidth (FRAME_ROOT_WINDOW (f), previous_pixel_width, 0); |
5297 | 5301 |
5298 /* If restoring in the current frame make the window current, | 5302 /* If restoring in the current frame make the window current, |
5299 otherwise just update the frame selected_window slot to be | 5303 otherwise just update the frame selected_window slot to be |
5300 the restored current_window. */ | 5304 the restored current_window. */ |
5301 if (f == selected_frame ()) | 5305 if (f == selected_frame ()) |
5302 { | 5306 { |
5534 config->saved_windows_count = n_windows; | 5538 config->saved_windows_count = n_windows; |
5535 save_window_save (FRAME_ROOT_WINDOW (f), config, 0); | 5539 save_window_save (FRAME_ROOT_WINDOW (f), config, 0); |
5536 | 5540 |
5537 /* save the minibuffer height using the heuristics from | 5541 /* save the minibuffer height using the heuristics from |
5538 change_frame_size_1 */ | 5542 change_frame_size_1 */ |
5539 | 5543 |
5540 XSETFRAME (frame, f); /* frame could have been nil ! */ | 5544 XSETFRAME (frame, f); /* frame could have been nil ! */ |
5541 default_face_height_and_width (frame, &real_font_height, 0); | 5545 default_face_height_and_width (frame, &real_font_height, 0); |
5542 assert(real_font_height > 0); | 5546 assert(real_font_height > 0); |
5543 | 5547 |
5544 if (FRAME_HAS_MINIBUF_P (f) && ! FRAME_MINIBUF_ONLY_P (f)) | 5548 if (FRAME_HAS_MINIBUF_P (f) && ! FRAME_MINIBUF_ONLY_P (f)) |
5545 minibuf_height = XWINDOW(FRAME_MINIBUF_WINDOW(f))->pixel_height; | 5549 minibuf_height = XWINDOW(FRAME_MINIBUF_WINDOW(f))->pixel_height; |
5546 else | 5550 else |
5547 minibuf_height = 0; | 5551 minibuf_height = 0; |
5548 config->minibuf_height = (minibuf_height % real_font_height) == 0 ? | 5552 config->minibuf_height = (minibuf_height % real_font_height) == 0 ? |
5604 int first_line, i; | 5608 int first_line, i; |
5605 Bufpos point; | 5609 Bufpos point; |
5606 | 5610 |
5607 if (NILP (pos)) | 5611 if (NILP (pos)) |
5608 pos = Fwindow_point (window); | 5612 pos = Fwindow_point (window); |
5609 | 5613 |
5610 CHECK_INT (pos); | 5614 CHECK_INT (pos); |
5611 point = XINT (pos); | 5615 point = XINT (pos); |
5612 | 5616 |
5613 if (Dynarr_length (dla) && Dynarr_atp (dla, 0)->modeline) | 5617 if (Dynarr_length (dla) && Dynarr_atp (dla, 0)->modeline) |
5614 first_line = 1; | 5618 first_line = 1; |
5742 DEFSUBR (Fwindow_pixel_width); | 5746 DEFSUBR (Fwindow_pixel_width); |
5743 DEFSUBR (Fwindow_text_area_pixel_height); | 5747 DEFSUBR (Fwindow_text_area_pixel_height); |
5744 DEFSUBR (Fwindow_displayed_text_pixel_height); | 5748 DEFSUBR (Fwindow_displayed_text_pixel_height); |
5745 DEFSUBR (Fwindow_text_area_pixel_width); | 5749 DEFSUBR (Fwindow_text_area_pixel_width); |
5746 DEFSUBR (Fwindow_hscroll); | 5750 DEFSUBR (Fwindow_hscroll); |
5747 #ifdef MODELINE_IS_SCROLLABLE | 5751 DEFSUBR (Fset_window_hscroll); |
5748 DEFSUBR (Fmodeline_hscroll); | 5752 DEFSUBR (Fmodeline_hscroll); |
5749 DEFSUBR (Fset_modeline_hscroll); | 5753 DEFSUBR (Fset_modeline_hscroll); |
5750 #endif /* MODELINE_IS_SCROLLABLE */ | |
5751 #if 0 /* bogus FSF crock */ | 5754 #if 0 /* bogus FSF crock */ |
5752 DEFSUBR (Fwindow_redisplay_end_trigger); | 5755 DEFSUBR (Fwindow_redisplay_end_trigger); |
5753 DEFSUBR (Fset_window_redisplay_end_trigger); | 5756 DEFSUBR (Fset_window_redisplay_end_trigger); |
5754 #endif | 5757 #endif |
5755 DEFSUBR (Fset_window_hscroll); | |
5756 DEFSUBR (Fwindow_pixel_edges); | 5758 DEFSUBR (Fwindow_pixel_edges); |
5757 DEFSUBR (Fwindow_text_area_pixel_edges); | 5759 DEFSUBR (Fwindow_text_area_pixel_edges); |
5758 DEFSUBR (Fwindow_point); | 5760 DEFSUBR (Fwindow_point); |
5759 DEFSUBR (Fwindow_start); | 5761 DEFSUBR (Fwindow_start); |
5760 DEFSUBR (Fwindow_end); | 5762 DEFSUBR (Fwindow_end); |
5890 set_specifier_fallback (Vmodeline_shadow_thickness, | 5892 set_specifier_fallback (Vmodeline_shadow_thickness, |
5891 list1 (Fcons (Qnil, Qzero))); | 5893 list1 (Fcons (Qnil, Qzero))); |
5892 Fadd_spec_to_specifier (Vmodeline_shadow_thickness, make_int (2), | 5894 Fadd_spec_to_specifier (Vmodeline_shadow_thickness, make_int (2), |
5893 Qnil, Qnil, Qnil); | 5895 Qnil, Qnil, Qnil); |
5894 set_specifier_caching (Vmodeline_shadow_thickness, | 5896 set_specifier_caching (Vmodeline_shadow_thickness, |
5895 slot_offset (struct window, | 5897 offsetof (struct window, modeline_shadow_thickness), |
5896 modeline_shadow_thickness), | |
5897 modeline_shadow_thickness_changed, | 5898 modeline_shadow_thickness_changed, |
5898 0, 0); | 5899 0, 0); |
5899 | 5900 |
5900 DEFVAR_SPECIFIER ("has-modeline-p", &Vhas_modeline_p /* | 5901 DEFVAR_SPECIFIER ("has-modeline-p", &Vhas_modeline_p /* |
5901 *Whether the modeline should be displayed. | 5902 *Whether the modeline should be displayed. |
5903 */ ); | 5904 */ ); |
5904 Vhas_modeline_p = Fmake_specifier (Qboolean); | 5905 Vhas_modeline_p = Fmake_specifier (Qboolean); |
5905 set_specifier_fallback (Vhas_modeline_p, | 5906 set_specifier_fallback (Vhas_modeline_p, |
5906 list1 (Fcons (Qnil, Qt))); | 5907 list1 (Fcons (Qnil, Qt))); |
5907 set_specifier_caching (Vhas_modeline_p, | 5908 set_specifier_caching (Vhas_modeline_p, |
5908 slot_offset (struct window, | 5909 offsetof (struct window, has_modeline_p), |
5909 has_modeline_p), | |
5910 /* #### It's strange that we need a special | 5910 /* #### It's strange that we need a special |
5911 flag to indicate that the shadow-thickness | 5911 flag to indicate that the shadow-thickness |
5912 has changed, but not one to indicate that | 5912 has changed, but not one to indicate that |
5913 the modeline has been turned off or on. */ | 5913 the modeline has been turned off or on. */ |
5914 some_window_value_changed, | 5914 some_window_value_changed, |
5926 */ ); | 5926 */ ); |
5927 Vvertical_divider_always_visible_p = Fmake_specifier (Qboolean); | 5927 Vvertical_divider_always_visible_p = Fmake_specifier (Qboolean); |
5928 set_specifier_fallback (Vvertical_divider_always_visible_p, | 5928 set_specifier_fallback (Vvertical_divider_always_visible_p, |
5929 list1 (Fcons (Qnil, Qt))); | 5929 list1 (Fcons (Qnil, Qt))); |
5930 set_specifier_caching (Vvertical_divider_always_visible_p, | 5930 set_specifier_caching (Vvertical_divider_always_visible_p, |
5931 slot_offset (struct window, | 5931 offsetof (struct window, |
5932 vertical_divider_always_visible_p), | 5932 vertical_divider_always_visible_p), |
5933 vertical_divider_changed_in_window, | 5933 vertical_divider_changed_in_window, |
5934 0, 0); | 5934 0, 0); |
5935 | 5935 |
5936 DEFVAR_SPECIFIER ("vertical-divider-shadow-thickness", &Vvertical_divider_shadow_thickness /* | 5936 DEFVAR_SPECIFIER ("vertical-divider-shadow-thickness", &Vvertical_divider_shadow_thickness /* |
5937 *How thick to draw 3D shadows around vertical dividers. | 5937 *How thick to draw 3D shadows around vertical dividers. |
5941 set_specifier_fallback (Vvertical_divider_shadow_thickness, | 5941 set_specifier_fallback (Vvertical_divider_shadow_thickness, |
5942 list1 (Fcons (Qnil, Qzero))); | 5942 list1 (Fcons (Qnil, Qzero))); |
5943 Fadd_spec_to_specifier (Vvertical_divider_shadow_thickness, make_int (2), | 5943 Fadd_spec_to_specifier (Vvertical_divider_shadow_thickness, make_int (2), |
5944 Qnil, Qnil, Qnil); | 5944 Qnil, Qnil, Qnil); |
5945 set_specifier_caching (Vvertical_divider_shadow_thickness, | 5945 set_specifier_caching (Vvertical_divider_shadow_thickness, |
5946 slot_offset (struct window, | 5946 offsetof (struct window, |
5947 vertical_divider_shadow_thickness), | 5947 vertical_divider_shadow_thickness), |
5948 vertical_divider_changed_in_window, | 5948 vertical_divider_changed_in_window, |
5949 0, 0); | 5949 0, 0); |
5950 DEFVAR_SPECIFIER ("vertical-divider-line-width", &Vvertical_divider_line_width /* | 5950 DEFVAR_SPECIFIER ("vertical-divider-line-width", &Vvertical_divider_line_width /* |
5951 *The width of the vertical dividers, not including shadows. | 5951 *The width of the vertical dividers, not including shadows. |
5952 | 5952 |
5972 fb = Fcons (Fcons (list1 (Qmswindows), make_int (3)), fb); | 5972 fb = Fcons (Fcons (list1 (Qmswindows), make_int (3)), fb); |
5973 #endif | 5973 #endif |
5974 set_specifier_fallback (Vvertical_divider_line_width, fb); | 5974 set_specifier_fallback (Vvertical_divider_line_width, fb); |
5975 } | 5975 } |
5976 set_specifier_caching (Vvertical_divider_line_width, | 5976 set_specifier_caching (Vvertical_divider_line_width, |
5977 slot_offset (struct window, | 5977 offsetof (struct window, |
5978 vertical_divider_line_width), | 5978 vertical_divider_line_width), |
5979 vertical_divider_changed_in_window, | 5979 vertical_divider_changed_in_window, |
5980 0, 0); | 5980 0, 0); |
5981 | 5981 |
5982 DEFVAR_SPECIFIER ("vertical-divider-spacing", &Vvertical_divider_spacing /* | 5982 DEFVAR_SPECIFIER ("vertical-divider-spacing", &Vvertical_divider_spacing /* |
5983 *How much space to leave around the vertical dividers. | 5983 *How much space to leave around the vertical dividers. |
6002 fb = Fcons (Fcons (list1 (Qmswindows), Qzero), fb); | 6002 fb = Fcons (Fcons (list1 (Qmswindows), Qzero), fb); |
6003 #endif | 6003 #endif |
6004 set_specifier_fallback (Vvertical_divider_spacing, fb); | 6004 set_specifier_fallback (Vvertical_divider_spacing, fb); |
6005 } | 6005 } |
6006 set_specifier_caching (Vvertical_divider_spacing, | 6006 set_specifier_caching (Vvertical_divider_spacing, |
6007 slot_offset (struct window, | 6007 offsetof (struct window, vertical_divider_spacing), |
6008 vertical_divider_spacing), | |
6009 vertical_divider_changed_in_window, | 6008 vertical_divider_changed_in_window, |
6010 0, 0); | 6009 0, 0); |
6011 } | 6010 } |