Lines Matching defs:dw

60 #define MY_WIDTH(dw) ((int)(dw->dvi.paperwidth * dw->dvi.scale_factor + .5))
61 #define MY_HEIGHT(dw) ((int)(dw->dvi.paperlength * dw->dvi.scale_factor + .5))
200 DviWidget dw = (DviWidget) new_wd;
202 dw->dvi.current_page = 0;
203 dw->dvi.font_map = 0;
204 dw->dvi.cache.index = 0;
205 dw->dvi.text_x_width = 0;
206 dw->dvi.text_device_width = 0;
207 dw->dvi.word_flag = 0;
208 dw->dvi.file = 0;
209 dw->dvi.tmpFile = 0;
210 dw->dvi.state = 0;
211 dw->dvi.readingTmp = 0;
212 dw->dvi.cache.char_index = 0;
213 dw->dvi.cache.font_size = -1;
214 dw->dvi.cache.font_number = -1;
215 dw->dvi.cache.adjustable[0] = 0;
216 dw->dvi.file_map = 0;
217 dw->dvi.fonts = 0;
218 dw->dvi.seek = False;
219 dw->dvi.device_resolution = dw->dvi.default_resolution;
220 dw->dvi.display_resolution = dw->dvi.default_resolution;
221 dw->dvi.paperlength = dw->dvi.default_resolution*11;
222 dw->dvi.paperwidth = (dw->dvi.default_resolution*8
223 + dw->dvi.default_resolution/2);
224 dw->dvi.scale_factor = 1.0;
225 dw->dvi.sizescale = 1;
226 dw->dvi.line_thickness = -1;
227 dw->dvi.line_width = 1;
228 dw->dvi.fill = DVI_FILL_MAX;
229 dw->dvi.device_font = 0;
230 dw->dvi.device_font_number = -1;
231 dw->dvi.device = 0;
232 dw->dvi.native = 0;
251 DviWidget dw = (DviWidget) w;
254 if (dw->dvi.backing_store != Always + WhenMapped + NotUseful) {
255 attrs->backing_store = dw->dvi.backing_store;
260 values.foreground = dw->dvi.foreground;
263 values.line_width = dw->dvi.line_width;
264 dw->dvi.normal_GC = XCreateGC (XtDisplay (w), XtWindow (w),
268 dw->dvi.gray[0] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
271 dw->dvi.gray[1] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
274 dw->dvi.gray[2] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
277 dw->dvi.gray[3] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
280 dw->dvi.gray[4] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
283 dw->dvi.gray[5] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
286 dw->dvi.gray[6] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
289 dw->dvi.gray[7] = XCreateBitmapFromData(XtDisplay (w), XtWindow (w),
292 values.background = dw->dvi.background;
293 values.stipple = dw->dvi.gray[5];
294 dw->dvi.fill_GC = XCreateGC (XtDisplay (w), XtWindow (w),
298 dw->dvi.fill_type = 9;
300 if (dw->dvi.file)
301 OpenFile (dw);
302 ParseFontMap (dw);
308 DviWidget dw = (DviWidget) w;
310 XFreeGC (XtDisplay (w), dw->dvi.normal_GC);
311 XFreeGC (XtDisplay (w), dw->dvi.fill_GC);
312 XFreePixmap (XtDisplay (w), dw->dvi.gray[0]);
313 XFreePixmap (XtDisplay (w), dw->dvi.gray[1]);
314 XFreePixmap (XtDisplay (w), dw->dvi.gray[2]);
315 XFreePixmap (XtDisplay (w), dw->dvi.gray[3]);
316 XFreePixmap (XtDisplay (w), dw->dvi.gray[4]);
317 XFreePixmap (XtDisplay (w), dw->dvi.gray[5]);
318 XFreePixmap (XtDisplay (w), dw->dvi.gray[6]);
319 XFreePixmap (XtDisplay (w), dw->dvi.gray[7]);
320 DestroyFontMap (dw->dvi.font_map);
321 DestroyFileMap (dw->dvi.file_map);
322 device_destroy (dw->dvi.device);
333 DviWidget dw = (DviWidget) w;
337 dw->dvi.extents.x1 = extents.x;
338 dw->dvi.extents.y1 = extents.y;
339 dw->dvi.extents.x2 = extents.x + extents.width;
340 dw->dvi.extents.y2 = extents.y + extents.height;
341 ShowDvi (dw);
408 DviWidget dw = (DviWidget)wdw;
412 CloseFile (dw);
413 OpenFile (dw);
420 static void CloseFile (DviWidget dw)
422 if (dw->dvi.tmpFile)
423 fclose (dw->dvi.tmpFile);
424 ForgetPagePositions (dw);
427 static void OpenFile (DviWidget dw)
429 dw->dvi.tmpFile = 0;
430 if (!dw->dvi.seek)
431 dw->dvi.tmpFile = tmpfile();
432 dw->dvi.requested_page = 1;
433 dw->dvi.last_page = 0;
441 DviWidget dw = (DviWidget) w;
445 && request->width < MY_WIDTH(dw))
447 && request->height < MY_HEIGHT(dw)))
449 geometry_return->width = MY_WIDTH(dw);
450 geometry_return->height = MY_HEIGHT(dw);
456 SetDevice (DviWidget dw, const char *name)
461 ForgetFonts (dw);
462 dw->dvi.device = device_load (name);
463 if (!dw->dvi.device)
465 dw->dvi.sizescale = dw->dvi.device->sizescale;
466 dw->dvi.device_resolution = dw->dvi.device->res;
467 dw->dvi.native = dw->dvi.device->X11;
468 dw->dvi.paperlength = dw->dvi.device->paperlength;
469 dw->dvi.paperwidth = dw->dvi.device->paperwidth;
470 if (dw->dvi.native) {
471 dw->dvi.display_resolution = dw->dvi.device_resolution;
472 dw->dvi.scale_factor = 1.0;
475 dw->dvi.display_resolution = dw->dvi.default_resolution;
476 dw->dvi.scale_factor = ((double)dw->dvi.display_resolution
477 / dw->dvi.device_resolution);
480 request.width = MY_WIDTH(dw);
481 request.height = MY_HEIGHT(dw);
482 ret = XtMakeGeometryRequest ((Widget)dw, &request, &reply);
488 XtMakeGeometryRequest ((Widget)dw, &request, &reply);
493 ShowDvi (DviWidget dw)
495 if (!dw->dvi.file) {
498 XSetFont (XtDisplay(dw), dw->dvi.normal_GC,
499 dw->dvi.default_font->fid);
500 XDrawString (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
505 FindPage (dw);
507 dw->dvi.display_enable = 1;
508 ParseInput (dw);
509 if (dw->dvi.last_page && dw->dvi.requested_page > dw->dvi.last_page)
510 dw->dvi.requested_page = dw->dvi.last_page;
514 FindPage (DviWidget dw)
519 if (dw->dvi.requested_page < 1)
520 dw->dvi.requested_page = 1;
522 if (dw->dvi.last_page != 0 && dw->dvi.requested_page > dw->dvi.last_page)
523 dw->dvi.requested_page = dw->dvi.last_page;
525 file_position = SearchPagePosition (dw, dw->dvi.requested_page);
527 FileSeek(dw, file_position);
528 dw->dvi.current_page = dw->dvi.requested_page;
530 for (i=dw->dvi.requested_page; i > 0; i--) {
531 file_position = SearchPagePosition (dw, i);
537 FileSeek (dw, file_position);
539 dw->dvi.current_page = i;
541 dw->dvi.display_enable = 0;
542 while (dw->dvi.current_page != dw->dvi.requested_page) {
543 dw->dvi.current_page = ParseInput (dw);
547 if (!dw->dvi.readingTmp && feof (dw->dvi.file)) {
548 file_position = SearchPagePosition (dw,
549 dw->dvi.current_page);
551 FileSeek (dw, file_position);
552 dw->dvi.requested_page = dw->dvi.current_page;
568 DviWidget dw = (DviWidget)w;
572 if (dw->dvi.tmpFile) {
573 pos = ftell(dw->dvi.tmpFile);
574 if (dw->dvi.ungot) {
576 dw->dvi.ungot = 0;
579 (void)getc(dw->dvi.file);
583 pos = ftell(dw->dvi.file);
584 FileSeek(dw, 0L);
585 while (DviGetC(dw, &c) != EOF)
590 FileSeek(dw, pos);