comparison src/redisplay-msw.c @ 4928:ea701c23ed84

change text_width method to take a window, in preparation for unicode-internal changes -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-01-19 Ben Wing <ben@xemacs.org> * console-impl.h (struct console_methods): * console-stream.c (stream_text_width): * redisplay-msw.c (mswindows_output_string): * redisplay-msw.c (mswindows_text_width): * redisplay-tty.c (tty_text_width): * redisplay-xlike-inc.c (XLIKE_text_width): * redisplay-xlike-inc.c (XLIKE_output_string): * redisplay.c: * redisplay.c (redisplay_window_text_width_ichar_string): * redisplay.c (redisplay_text_width_string): Change the text_width method to take a window instead of a frame. Needed for Unicode-internal.
author Ben Wing <ben@xemacs.org>
date Tue, 19 Jan 2010 11:21:34 -0600
parents dbf79a1732ba
children 0d4c9d0f6a8d
comparison
equal deleted inserted replaced
4882:eab9498ecc0e 4928:ea701c23ed84
467 window = wrap_window (w); 467 window = wrap_window (w);
468 468
469 #if 0 /* #### FIXME? */ 469 #if 0 /* #### FIXME? */
470 /* We can't work out the width before we've set the font in the DC */ 470 /* We can't work out the width before we've set the font in the DC */
471 if (width < 0) 471 if (width < 0)
472 width = mswindows_text_width (cachel, Dynarr_atp (buf, 0), Dynarr_length (buf)); 472 width = mswindows_text_width (w, cachel, Dynarr_atp (buf, 0),
473 Dynarr_length (buf));
473 #else 474 #else
474 assert(width>=0); 475 assert (width >= 0);
475 #endif 476 #endif
476 477
477 /* Regularize the variables passed in. */ 478 /* Regularize the variables passed in. */
478 if (clip_start < xpos) 479 if (clip_start < xpos)
479 clip_start = xpos; 480 clip_start = xpos;
1179 1180
1180 Given a string and a face, return the string's length in pixels when 1181 Given a string and a face, return the string's length in pixels when
1181 displayed in the font associated with the face. 1182 displayed in the font associated with the face.
1182 ****************************************************************************/ 1183 ****************************************************************************/
1183 static int 1184 static int
1184 mswindows_text_width (struct frame *f, struct face_cachel *cachel, 1185 mswindows_text_width (struct window *w, struct face_cachel *cachel,
1185 const Ichar *str, Charcount len) 1186 const Ichar *str, Charcount len)
1186 { 1187 {
1188 struct frame *f = WINDOW_XFRAME (w);
1187 HDC hdc = get_frame_dc (f, 0); 1189 HDC hdc = get_frame_dc (f, 0);
1188 int width_so_far = 0; 1190 int width_so_far = 0;
1189 textual_run *runs; 1191 textual_run *runs;
1190 int nruns; 1192 int nruns;
1191 int i; 1193 int i;