Lines Matching refs:XiWin

20 static PetscErrorCode PetscDrawXiOpenDisplay(PetscDraw_X *XiWin, const char display[])  in PetscDrawXiOpenDisplay()  argument
23 XiWin->disp = XOpenDisplay(display); in PetscDrawXiOpenDisplay()
24 if (!XiWin->disp) { in PetscDrawXiOpenDisplay()
31 XiWin->screen = DefaultScreen(XiWin->disp); in PetscDrawXiOpenDisplay()
32 XiWin->vis = DefaultVisual(XiWin->disp, XiWin->screen); in PetscDrawXiOpenDisplay()
33 XiWin->depth = DefaultDepth(XiWin->disp, XiWin->screen); in PetscDrawXiOpenDisplay()
34 XiWin->cmap = DefaultColormap(XiWin->disp, XiWin->screen); in PetscDrawXiOpenDisplay()
35 XiWin->background = WhitePixel(XiWin->disp, XiWin->screen); in PetscDrawXiOpenDisplay()
36 XiWin->foreground = BlackPixel(XiWin->disp, XiWin->screen); in PetscDrawXiOpenDisplay()
40 PetscErrorCode PetscDrawXiClose(PetscDraw_X *XiWin) in PetscDrawXiClose() argument
43 if (!XiWin) PetscFunctionReturn(PETSC_SUCCESS); in PetscDrawXiClose()
44 PetscCall(PetscFree(XiWin->font)); in PetscDrawXiClose()
45 if (XiWin->disp) { in PetscDrawXiClose()
54 XFreeGC(XiWin->disp, XiWin->gc.set); in PetscDrawXiClose()
55 XCloseDisplay(XiWin->disp); in PetscDrawXiClose()
57 XiWin->disp = NULL; in PetscDrawXiClose()
69 static PetscErrorCode PetscDrawXiCreateGC(PetscDraw_X *XiWin, PetscDrawXiPixVal fg) in PetscDrawXiCreateGC() argument
79 XiWin->gc.cur_pix = fg; in PetscDrawXiCreateGC()
80XiWin->gc.set = XCreateGC(XiWin->disp, RootWindow(XiWin->disp, XiWin->screen), GCFunction | … in PetscDrawXiCreateGC()
81 PetscCheck(XiWin->gc.set, PETSC_COMM_SELF, PETSC_ERR_LIB, "Unable to create X graphics context"); in PetscDrawXiCreateGC()
88 PetscErrorCode PetscDrawXiInit(PetscDraw_X *XiWin, const char display[]) in PetscDrawXiInit() argument
91 PetscCall(PetscDrawXiOpenDisplay(XiWin, display)); in PetscDrawXiInit()
92 PetscCall(PetscDrawXiCreateGC(XiWin, XiWin->foreground)); in PetscDrawXiInit()
93 PetscCall(PetscDrawXiFontFixed(XiWin, 6, 10, &XiWin->font)); in PetscDrawXiInit()
101 static PetscErrorCode PetscDrawXiWaitMap(PetscDraw_X *XiWin) in PetscDrawXiWaitMap() argument
107 XMaskEvent(XiWin->disp, ExposureMask | StructureNotifyMask, &event); in PetscDrawXiWaitMap()
108 if (event.xany.window != XiWin->win) break; in PetscDrawXiWaitMap()
113 XiWin->w = event.xconfigure.width - 2 * event.xconfigure.border_width; in PetscDrawXiWaitMap()
114 XiWin->h = event.xconfigure.height - 2 * event.xconfigure.border_width; in PetscDrawXiWaitMap()
130 static PetscErrorCode PetscDrawXiDisplayWindow(PetscDraw_X *XiWin, char *label, int x, int y, int w… in PetscDrawXiDisplayWindow() argument
137 unsigned long backgnd_pixel = WhitePixel(XiWin->disp, XiWin->screen); in PetscDrawXiDisplayWindow()
142 wavail = DisplayWidth(XiWin->disp, XiWin->screen); in PetscDrawXiDisplayWindow()
143 havail = DisplayHeight(XiWin->disp, XiWin->screen); in PetscDrawXiDisplayWindow()
154 XGetWindowAttributes(XiWin->disp, RootWindow(XiWin->disp, XiWin->screen), &in_window_attributes); in PetscDrawXiDisplayWindow()
171 window_attributes.colormap = XiWin->cmap; in PetscDrawXiDisplayWindow()
177XiWin->win = XCreateWindow(XiWin->disp, RootWindow(XiWin->disp, XiWin->screen), x, y, w, h, border… in PetscDrawXiDisplayWindow()
178 PetscCheck(XiWin->win, PETSC_COMM_SELF, PETSC_ERR_LIB, "Unable to open X window"); in PetscDrawXiDisplayWindow()
207 …XSetWMProperties(XiWin->disp, XiWin->win, &windowname, &iconname, NULL, 0, &size_hints, &wm_hints,… in PetscDrawXiDisplayWindow()
213 XSelectInput(XiWin->disp, XiWin->win, ExposureMask | StructureNotifyMask); in PetscDrawXiDisplayWindow()
214 XMapWindow(XiWin->disp, XiWin->win); in PetscDrawXiDisplayWindow()
217 PetscCall(PetscDrawXiWaitMap(XiWin)); in PetscDrawXiDisplayWindow()
218 XSelectInput(XiWin->disp, XiWin->win, NoEventMask); in PetscDrawXiDisplayWindow()
222 PetscErrorCode PetscDrawXiQuickWindow(PetscDraw_X *XiWin, char *name, int x, int y, int nx, int ny) in PetscDrawXiQuickWindow() argument
225 PetscCall(PetscDrawSetColormap_X(XiWin, (Colormap)0)); in PetscDrawXiQuickWindow()
226 PetscCall(PetscDrawXiDisplayWindow(XiWin, name, x, y, nx, ny)); in PetscDrawXiQuickWindow()
227 XSetWindowBackground(XiWin->disp, XiWin->win, XiWin->background); in PetscDrawXiQuickWindow()
228 XClearWindow(XiWin->disp, XiWin->win); in PetscDrawXiQuickWindow()
235 PetscErrorCode PetscDrawXiQuickWindowFromWindow(PetscDraw_X *XiWin, Window win) in PetscDrawXiQuickWindowFromWindow() argument
240 XiWin->win = win; in PetscDrawXiQuickWindowFromWindow()
241 XGetWindowAttributes(XiWin->disp, XiWin->win, &attributes); in PetscDrawXiQuickWindowFromWindow()
242 PetscCall(PetscDrawSetColormap_X(XiWin, attributes.colormap)); in PetscDrawXiQuickWindowFromWindow()
246 PetscErrorCode PetscDrawXiQuickPixmap(PetscDraw_X *XiWin) in PetscDrawXiQuickPixmap() argument
249 if (XiWin->drw) XFreePixmap(XiWin->disp, XiWin->drw); in PetscDrawXiQuickPixmap()
250XiWin->drw = XCreatePixmap(XiWin->disp, RootWindow(XiWin->disp, XiWin->screen), XiWin->w, XiWin->h… in PetscDrawXiQuickPixmap()
251 PetscDrawXiSetPixVal(XiWin, XiWin->background); in PetscDrawXiQuickPixmap()
252 XFillRectangle(XiWin->disp, XiWin->drw, XiWin->gc.set, 0, 0, XiWin->w, XiWin->h); in PetscDrawXiQuickPixmap()
253 XSync(XiWin->disp, False); in PetscDrawXiQuickPixmap()
257 PetscErrorCode PetscDrawXiResizeWindow(PetscDraw_X *XiWin, int w, int h) in PetscDrawXiResizeWindow() argument
262 XSelectInput(XiWin->disp, XiWin->win, StructureNotifyMask); in PetscDrawXiResizeWindow()
263 XResizeWindow(XiWin->disp, XiWin->win, (unsigned int)w, (unsigned int)h); in PetscDrawXiResizeWindow()
264 XWindowEvent(XiWin->disp, XiWin->win, StructureNotifyMask, &event); in PetscDrawXiResizeWindow()
265 XSelectInput(XiWin->disp, XiWin->win, NoEventMask); in PetscDrawXiResizeWindow()
269 PetscErrorCode PetscDrawXiGetGeometry(PetscDraw_X *XiWin, int *x, int *y, int *w, int *h) in PetscDrawXiGetGeometry() argument
277 if (XiWin->win) { in PetscDrawXiGetGeometry()
278 XGetGeometry(XiWin->disp, XiWin->win, &parent, &xx, &yy, &ww, &hh, &dummy, &dummy); in PetscDrawXiGetGeometry()
279 root = RootWindow(XiWin->disp, XiWin->screen); in PetscDrawXiGetGeometry()
280 if (!XTranslateCoordinates(XiWin->disp, XiWin->win, root, 0, 0, &xx, &yy, &child)) { in PetscDrawXiGetGeometry()
281 XGetWindowAttributes(XiWin->disp, XiWin->win, &attributes); in PetscDrawXiGetGeometry()
283 (void)XTranslateCoordinates(XiWin->disp, XiWin->win, root, 0, 0, &xx, &yy, &child); in PetscDrawXiGetGeometry()
285 } else if (XiWin->drw) { in PetscDrawXiGetGeometry()
286 XGetGeometry(XiWin->disp, XiWin->drw, &root, &xx, &yy, &ww, &hh, &dummy, &dummy); in PetscDrawXiGetGeometry()