autoTableEditor TableEditor_create (const char32 *title, Table table) { try { autoTableEditor me = Thing_new (TableEditor); Editor_init (me.get(), 0, 0, 700, 500, title, table); #if motif Melder_assert (XtWindow (my drawingArea -> d_widget)); #endif my topRow = 1; my leftColumn = 1; my selectedColumn = 1; my selectedRow = 1; my graphics = Graphics_create_xmdrawingarea (my drawingArea); double size_pixels = SIZE_INCHES * Graphics_getResolution (my graphics.get()); Graphics_setWsViewport (my graphics.get(), 0.0, size_pixels, 0.0, size_pixels); Graphics_setWsWindow (my graphics.get(), 0.0, size_pixels, 0.0, size_pixels); Graphics_setViewport (my graphics.get(), 0.0, size_pixels, 0.0, size_pixels); Graphics_setFont (my graphics.get(), kGraphics_font_COURIER); Graphics_setFontSize (my graphics.get(), 12); Graphics_setUnderscoreIsSubscript (my graphics.get(), false); Graphics_setAtSignIsLink (my graphics.get(), true); return me; } catch (MelderError) { Melder_throw (U"TableEditor not created."); } }
static void gui_drawingarea_cb_resize (I, GuiDrawingAreaResizeEvent event) { iam (RunnerMFC); if (my graphics == NULL) return; Graphics_setWsViewport (my graphics, 0, event -> width, 0, event -> height); Graphics_setWsWindow (my graphics, 0, event -> width, 0, event -> height); Graphics_setViewport (my graphics, 0, event -> width, 0, event -> height); Graphics_updateWs (my graphics); }
static void gui_drawingarea_cb_resize (I, GuiDrawingAreaResizeEvent event) { iam (HyperPage); if (my g == NULL) return; Graphics_setWsViewport (my g, 0, event -> width, 0, event -> height); Graphics_setWsWindow (my g, 0.0, my rightMargin = event -> width / resolution, PAGE_HEIGHT - event -> height / resolution, PAGE_HEIGHT); Graphics_updateWs (my g); updateVerticalScrollBar (me); }
static HENHMETAFILE copyToMetafile (Picture me) { RECT rect; HDC dc; PRINTDLG defaultPrinter; int resolution; memset (& defaultPrinter, 0, sizeof (PRINTDLG)); defaultPrinter. lStructSize = sizeof (PRINTDLG); defaultPrinter. Flags = PD_RETURNDEFAULT | PD_RETURNDC; PrintDlg (& defaultPrinter); SetRect (& rect, my selx1 * 2540, (12 - my sely2) * 2540, my selx2 * 2540, (12 - my sely1) * 2540); dc = CreateEnhMetaFile (defaultPrinter. hDC, nullptr, & rect, L"Praat\0"); if (! dc) Melder_throw (U"Cannot create Windows metafile."); resolution = GetDeviceCaps (dc, LOGPIXELSX); // Virtual PC: 360; Parallels Desktop: 600 //Melder_fatal (U"resolution ", resolution); if (Melder_debug == 6) { DEVMODE *devMode = * (DEVMODE **) defaultPrinter. hDevMode; MelderInfo_open (); MelderInfo_writeLine (U"DEVICE CAPS:"); MelderInfo_writeLine (U"aspect x ", GetDeviceCaps (dc, ASPECTX), U" y ", GetDeviceCaps (dc, ASPECTY)); MelderInfo_writeLine (U"res(pixels) hor ", GetDeviceCaps (dc, HORZRES), U" vert ", GetDeviceCaps (dc, VERTRES)); MelderInfo_writeLine (U"size(mm) hor ", GetDeviceCaps (dc, HORZSIZE), U" vert ", GetDeviceCaps (dc, VERTSIZE)); MelderInfo_writeLine (U"pixels/inch hor ", GetDeviceCaps (dc, LOGPIXELSX), U" vert ", GetDeviceCaps (dc, LOGPIXELSY)); MelderInfo_writeLine (U"physicalOffset(pixels) hor ", GetDeviceCaps (dc, PHYSICALOFFSETX), U" vert ", GetDeviceCaps (dc, PHYSICALOFFSETY)); MelderInfo_writeLine (U"PRINTER:"); MelderInfo_writeLine (U"dmFields ", devMode -> dmFields); if (devMode -> dmFields & DM_YRESOLUTION) MelderInfo_writeLine (U"y resolution ", devMode -> dmYResolution); if (devMode -> dmFields & DM_PRINTQUALITY) MelderInfo_writeLine (U"print quality ", devMode -> dmPrintQuality); if (devMode -> dmFields & DM_PAPERWIDTH) MelderInfo_writeLine (U"paper width ", devMode -> dmPaperWidth); if (devMode -> dmFields & DM_PAPERLENGTH) MelderInfo_writeLine (U"paper length ", devMode -> dmPaperLength); if (devMode -> dmFields & DM_PAPERSIZE) MelderInfo_writeLine (U"paper size ", devMode -> dmPaperSize); if (devMode -> dmFields & DM_ORIENTATION) MelderInfo_writeLine (U"orientation ", devMode -> dmOrientation); MelderInfo_close (); } autoGraphics pictGraphics = Graphics_create_screen ((void *) dc, nullptr, resolution); Graphics_setWsViewport (pictGraphics.peek(), 0, WIN_WIDTH * resolution, 0, WIN_HEIGHT * resolution); Graphics_setWsWindow (pictGraphics.peek(), 0.0, WIN_WIDTH, 12.0 - WIN_HEIGHT, 12.0); Graphics_play (my graphics.get(), pictGraphics.peek()); HENHMETAFILE metafile = CloseEnhMetaFile (dc); return metafile; }