URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [gnu/] [gcj/] [xlib/] [natWindowAttributes.cc] - Rev 765
Go to most recent revision | Compare with Previous | Blame | View Log
/* Copyright (C) 2000 Free Software Foundation This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ #include <X11/Xlib.h> #include <gcj/cni.h> #include <gnu/gcj/RawData.h> #include <gnu/gcj/xlib/Display.h> #include <gnu/gcj/xlib/Window.h> #include <gnu/gcj/xlib/WindowAttributes.h> #include <gnu/gcj/xlib/Pixmap.h> #include <gnu/gcj/xlib/XException.h> #include <gnu/gcj/xlib/Screen.h> #include <gnu/gcj/xlib/Visual.h> void gnu::gcj::xlib::WindowAttributes::initFromWindow(Window* from) { display = from->getDisplay(); ::Display* dpy = (::Display*) display->display; ::Window win = from->getXID(); XWindowAttributes* attributesIn = new XWindowAttributes; in = reinterpret_cast<gnu::gcj::RawData*>(attributesIn); Status status = XGetWindowAttributes(dpy, win, attributesIn); if ((status == BadDrawable) | (status == BadWindow)) throw new XException(display, status); } void gnu::gcj::xlib::WindowAttributes::init(WindowAttributes* copyFrom) { XSetWindowAttributes* attributes = new XSetWindowAttributes; if (copyFrom != 0) { XSetWindowAttributes* from = (XSetWindowAttributes*) copyFrom->out; (*attributes) = (*from); } out = reinterpret_cast<gnu::gcj::RawData*>(attributes); } void gnu::gcj::xlib::WindowAttributes::finalize() { delete in; in = 0; delete out; out = 0; } void gnu::gcj::xlib::WindowAttributes::setBackground(jlong pixel) { XSetWindowAttributes* attributes = (XSetWindowAttributes*) out; attributes->background_pixel = pixel; mask = mask | CWBackPixel; } void gnu::gcj::xlib::WindowAttributes::setBackground(Pixmap* pixmap) { XSetWindowAttributes* attributes = (XSetWindowAttributes*) out; attributes->background_pixmap = pixmap->getXID(); mask = mask | CWBackPixmap; } void gnu::gcj::xlib::WindowAttributes::setEventMask(jlong eventMask) { XSetWindowAttributes* attributes = (XSetWindowAttributes*) out; attributes->event_mask = eventMask; mask = mask | CWEventMask; } gnu::gcj::xlib::Visual* gnu::gcj::xlib::WindowAttributes::getVisual() { if (in == 0) return 0; XWindowAttributes* attributesIn = (XWindowAttributes*) in; gnu::gcj::RawData* screenRef = reinterpret_cast<gnu::gcj::RawData*>(attributesIn->screen); Screen* screen = new Screen(display, screenRef); gnu::gcj::RawData* visualRef = reinterpret_cast<gnu::gcj::RawData*>(attributesIn->visual); return new gnu::gcj::xlib::Visual(visualRef, screen, attributesIn->depth); } void gnu::gcj::xlib::WindowAttributes::apply(Window* window) { ::Display* dpy = (::Display*) window->getDisplay()->display; ::Window win = window->getXID(); XSetWindowAttributes* attributes = (XSetWindowAttributes*) out; XChangeWindowAttributes(dpy, win, mask, attributes); }
Go to most recent revision | Compare with Previous | Blame | View Log