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

📄 natvisual.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.  */#include <X11/Xlib.h>#include <X11/Xutil.h>#include <gcj/cni.h>#include <gnu/gcj/xlib/Visual.h>#include <gnu/gcj/xlib/Screen.h>#include <gnu/gcj/xlib/Display.h>#include <gnu/gcj/xlib/XException.h>#include <gnu/gcj/RawData.h>using namespace gnu::gcj;void gnu::gcj::xlib::Visual::init(RawData* visual, jint depth){  XVisualInfo* info = new XVisualInfo;  xVisualInfo = reinterpret_cast<gnu::gcj::RawData*>(info);  infoMask = 0;      if (visual != 0)    {      ::Visual* visualStructure = (::Visual*) visual;      info->visual = visualStructure;      info->visualid = XVisualIDFromVisual(visualStructure);      infoMask |= MASK_ID | MASK_VISUAL_STRUCTURE;    }  if (depth  != 0)    {      info->depth = depth;      infoMask |= MASK_DEPTH;    }}void gnu::gcj::xlib::Visual::finalize(){  if (xVisualInfo != 0)    {      delete xVisualInfo;      xVisualInfo = 0;    }}RawData* gnu::gcj::xlib::Visual::getVisualStructure(){    ensureXVisualInfo(MASK_ALL); // Make sure structure is set    XVisualInfo* info = (XVisualInfo*) xVisualInfo;    return reinterpret_cast<gnu::gcj::RawData*>(info->visual);}jint gnu::gcj::xlib::Visual::getRedMask(){  ensureXVisualInfo(MASK_RED);  XVisualInfo* info = (XVisualInfo*) xVisualInfo;  return info->red_mask;}jint gnu::gcj::xlib::Visual::getGreenMask(){  ensureXVisualInfo(MASK_GREEN);  XVisualInfo* info = (XVisualInfo*) xVisualInfo;  return info->green_mask;}jint gnu::gcj::xlib::Visual::getBlueMask(){  ensureXVisualInfo(MASK_BLUE);  XVisualInfo* info = (XVisualInfo*) xVisualInfo;  return info->blue_mask;}jint gnu::gcj::xlib::Visual::getScreenNumber(){  if (screen != 0)    return screen->getScreenNumber();  ensureXVisualInfo(MASK_SCREEN);  XVisualInfo* info = (XVisualInfo*) xVisualInfo;  return info->screen;}jint gnu::gcj::xlib::Visual::getDepth(){  ensureXVisualInfo(MASK_DEPTH);    XVisualInfo* info = (XVisualInfo*) xVisualInfo;  return info->depth;}jint gnu::gcj::xlib::Visual::getVisualClass(){  ensureXVisualInfo(MASK_CLASS);  ::XVisualInfo* info = (::XVisualInfo*) xVisualInfo;  return info->c_class;}void gnu::gcj::xlib::Visual::ensureXVisualInfo(jint requiredMask){  int missingInformation = ~infoMask;  if ((missingInformation & requiredMask) == 0)    return;    // We need more info...  XVisualInfo* info = (XVisualInfo*) xVisualInfo;  // Store everything we know into template  if (screen != 0)    {      info->screen = screen->getScreenNumber();      infoMask |= MASK_SCREEN;    }    // Aquire info using the current info as template for matching  ::Display* dpy = (::Display*) display->display;  int visualInfoCount;  long mask = infoMask & MASK_ALL & (~MASK_VISUAL_STRUCTURE);  XVisualInfo* matches = XGetVisualInfo(dpy, mask,					  info, &visualInfoCount);  if (matches != 0)    {      (*info) = matches[0];      // redundant?      xVisualInfo = reinterpret_cast<gnu::gcj::RawData*>(info);      infoMask = ~0; // ALL      XFree(matches);    }   else     {      char msg[] = 	"XGetVisualInfo failed to find any matching visuals. The template "	"describes a combination of properties that does not exist on "	"this X server.";      throw new XException(JvNewStringLatin1(msg));    }}

⌨️ 快捷键说明

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