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

📄 natdisplay.cc

📁 gcc的组建
💻 CC
字号:
/* Copyright (C) 1999, 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.  */#include <X11/Xproto.h>#include <X11/Xlib.h>#include <stdio.h>#include <java/lang/System.h>#include <java/lang/RuntimeException.h>#include <java/io/PrintStream.h>#include <gcj/cni.h>#include <gnu/gcj/xlib/Display.h>#include <gnu/gcj/xlib/XConnectException.h>#include <gnu/gcj/xlib/XException.h>void gnu::gcj::xlib::Display::init(){  ::Display* openedDisplay = XOpenDisplay(0); // default display    if (openedDisplay == 0) {    jstring msg = JvNewStringLatin1("Unable to open display");    throw new gnu::gcj::xlib::XConnectException(msg);  }    display = reinterpret_cast<gnu::gcj::RawData*>(openedDisplay); }void gnu::gcj::xlib::Display::finalize(){  if (display == 0) return;  ::Display* dpy = (::Display*) display;  XCloseDisplay(dpy);}jint gnu::gcj::xlib::Display::getDefaultScreenNumber(){  ::Display* dpy = (::Display*) display;  return DefaultScreen(dpy);}jint gnu::gcj::xlib::Display::getDefaultRootWindowXID(){  ::Display* dpy = (::Display*) display;  return DefaultRootWindow(dpy);}jint gnu::gcj::xlib::Display::internAtom(jstring name){  ::Display* dpy = (::Display*) display;  int len = JvGetStringUTFLength(name);  char cName[len+1];  JvGetStringUTFRegion(name, 0, name->length(), cName);  cName[len] = '\0';  bool onlyIfExists = false;  return XInternAtom(dpy, cName, onlyIfExists);}jstring gnu::gcj::xlib::Display::getAtomName(jint atom){  ::Display* dpy = (::Display*) display;  char* cName = XGetAtomName(dpy, atom);  jstring name = JvNewStringLatin1(cName);  XFree(cName);  return name;}static int handleXError(Display* dpy, XErrorEvent* xee){  const int ERROR_TEXT_LENGTH = 256;  char errorText[ERROR_TEXT_LENGTH];  XGetErrorText(dpy, xee->error_code, errorText, ERROR_TEXT_LENGTH);  int requestCode = xee->request_code;    if (requestCode == X_GetImage)    {      /* The current implementation of Drawable.copyIntoXImage()	 will generate harmless X_GetImage errors if the initially	 requested area is not completly within the drawable. Until	 we find a better solution, simply ignore these errors. */      return 0;    }  java::lang::System::err->print(JvNewStringLatin1("X error: "));  java::lang::System::err->print(JvNewStringLatin1(errorText));  java::lang::System::err->print(JvNewStringLatin1(", serial="));  java::lang::System::err->print((jlong) xee->serial);  java::lang::System::err->print(JvNewStringLatin1(", requestCode="));  java::lang::System::err->print((jint) requestCode);    if (requestCode < 128)    {      char number[8];      snprintf(number, 8, "%d", requestCode);      number[7] = '\0';      XGetErrorDatabaseText(dpy, "XRequest", number,			    "", errorText, ERROR_TEXT_LENGTH);      java::lang::System::err->print(JvNewStringLatin1(" ("));      java::lang::System::err->print(JvNewStringLatin1(errorText));      java::lang::System::err->print(JvNewStringLatin1(")"));    }  java::lang::System::err->print(JvNewStringLatin1(", minorCode="));  java::lang::System::err->print((jint) xee->minor_code);  java::lang::System::err->print(JvNewStringLatin1(", XID="));  java::lang::System::err->println((jlong) xee->resourceid);    return 0;}void gnu::gcj::xlib::Display::staticInit(){  if (XInitThreads() == 0)    {      char msg[] = "threads is not supported on this platform";      throw new java::lang::RuntimeException(JvNewStringLatin1(msg));    }    XSetErrorHandler(&handleXError);}void gnu::gcj::xlib::Display::flush() {  ::Display* dpy = (::Display*) display;  XFlush(dpy);}

⌨️ 快捷键说明

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