⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 natwindow.cc

📁 gcc的组建
💻 CC
字号:
/* Copyright (C) 2000  Free Software Foundation   This file is part of libgcj.This software is copyrighted work licensed under the terms of theLibgcj License.  Please consult the file "LIBGCJ_LICENSE" fordetails.  */// Needed to avoid linking in libstdc++#ifndef __STL_USE_EXCEPTIONS#   include <java/lang/OutOfMemoryError.h>#   define __THROW_BAD_ALLOC throw new java::lang::OutOfMemoryError()#endif#include <vector>#include <X11/Xlib.h>#include <gcj/cni.h>#include <java/awt/Rectangle.h>#include <gnu/gcj/xlib/Display.h>#include <gnu/gcj/xlib/Window.h>#include <gnu/gcj/xlib/WindowAttributes.h>#include <gnu/gcj/xlib/Visual.h>#include <gnu/gcj/xlib/XException.h>jint gnu::gcj::xlib::Window::createChildXID(java::awt::Rectangle* bounds,					jint borderWidth,					WindowAttributes* attributes,					jint windowIOClass, 					Visual* visual){  ::Window parentXID = xid;    int x      = bounds->x;  int y      = bounds->y;  int width  = bounds->width;  int height = bounds->height;    long mask = attributes->mask;  XSetWindowAttributes* attr = (XSetWindowAttributes*)    attributes->getXSetWindowAttributesStructure();    ::Visual* vis = CopyFromParent;  int depth = CopyFromParent;  if (visual != 0)    {      vis = (::Visual*) visual->getVisualStructure();      depth = visual->getDepth();    }  ::Window childXID = XCreateWindow((::Display*) (display->display),				    parentXID,				    x, y, width, height,				    borderWidth, depth, windowIOClass,				    vis,				    mask, attr);  // no fast fail  return childXID;}void gnu::gcj::xlib::Window::destroy(){  ::Display* dpy = (::Display*) (display->display);  ::Window window = xid;  XDestroyWindow(dpy, window);  // no fast fail}void gnu::gcj::xlib::Window::setAttributes(WindowAttributes* attributes){  ::Display* dpy = (::Display*) (display->display);  ::Window window = xid;  ::XSetWindowAttributes* attr = (::XSetWindowAttributes*)      attributes->getXSetWindowAttributesStructure();  XChangeWindowAttributes(dpy, window, attributes->mask, attr);  // no fast fail}void gnu::gcj::xlib::Window::toBack(){  ::Display* dpy = (::Display*) (display->display);  ::Window window = xid;  XLowerWindow(dpy, window);}void gnu::gcj::xlib::Window::toFront(){  ::Display* dpy = (::Display*) (display->display);  ::Window window = xid;  XRaiseWindow(dpy, window);}void gnu::gcj::xlib::Window::map(){  ::Display* dpy = (::Display*) (display->display);  ::Window window = xid;  XMapWindow(dpy, window);  // no fast fail}void gnu::gcj::xlib::Window::unmap(){  ::Display* dpy = (::Display*) (display->display);  ::Window window = xid;  XUnmapWindow(dpy, window);  // no fast fail}void gnu::gcj::xlib::Window::setProperty(jint nameAtom, jint typeAtom, 					 jbyteArray data){  ::Display* dpy = (::Display*) (display->display);  int format = 8;  int mode = PropModeReplace;  unsigned char* pData = (unsigned char*) elements(data);  int len = data->length;    XChangeProperty(dpy, xid, nameAtom, typeAtom, format, mode,		  pData, len);  // no fast fail}void gnu::gcj::xlib::Window::setWMProtocols(jintArray atoms){  ::Display* dpy = (::Display*) (display->display);    size_t length = atoms->length;  jint* atomsBegin = elements(atoms);  jint* atomsEnd   = atomsBegin + length;    // Avoid confusion between Xlib.h and Atom.java "Atom" types.  typedef ::Atom XLibAtom;    std::vector<XLibAtom> atomVector(atomsBegin, atomsEnd);  XLibAtom* atomsArray = &(atomVector.front());    XSetWMProtocols(dpy, xid, atomsArray, length);  // no fail fast}jintArray gnu::gcj::xlib::Window::getWMProtocols(){  ::Display* dpy = (::Display*) (display->display);    ::Atom* protocolsReturn;  int countReturn;    Status success = XGetWMProtocols(dpy, xid, &protocolsReturn,				   &countReturn);    if (!success)    throw new XException(JvNewStringLatin1("cannot get "					   "WM protocols "));    jintArray atoms;  try    {      ::Atom* protocolsBegin = protocolsReturn;      ::Atom* protocolsEnd = protocolsBegin + countReturn;            atoms = JvNewIntArray(countReturn);      jint* atomsBegin = elements(atoms);            std::copy(protocolsBegin, protocolsEnd, atomsBegin);          }  catch (...)    {      XFree(protocolsReturn);      throw;    }  XFree(protocolsReturn);    return atoms;}void gnu::gcj::xlib::Window::setBounds(jint x, jint y,				       jint width, jint height){  ::Display* dpy = (::Display*) (display->display);    XMoveResizeWindow(dpy, xid, x, y, width, height);  // no fast fail}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -