]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libjava/gnu/gcj/xlib/natColormap.cc
Imported gcc-4.4.3
[msp430-gcc.git] / libjava / gnu / gcj / xlib / natColormap.cc
diff --git a/libjava/gnu/gcj/xlib/natColormap.cc b/libjava/gnu/gcj/xlib/natColormap.cc
deleted file mode 100644 (file)
index 83c897e..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/* 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.  */
-
-// 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/lang/RuntimeException.h>
-#include <gnu/gcj/xlib/Display.h>
-#include <gnu/gcj/xlib/Screen.h>
-#include <gnu/gcj/xlib/Colormap.h>
-#include <gnu/gcj/xlib/XColor.h>
-#include <gnu/gcj/RawData.h>
-
-jlong gnu::gcj::xlib::Colormap::allocateColorPixel(XColor* color)
-{
-  ::Display* dpy = (::Display*) (screen->getDisplay()->display);
-  ::XColor* col = (::XColor*) (color->structure);
-  Status result = XAllocColor(dpy, xid, col);
-  if (result == 0)
-    throw new java::lang::RuntimeException(
-      JvNewStringLatin1("Unable to allocate color pixel."));
-
-  return col->pixel;
-}
-
-typedef JArray<gnu::gcj::xlib::XColor*>* xcolorarray;
-
-xcolorarray gnu::gcj::xlib::Colormap::getSharedColors()
-{
-  ::Display* dpy = (::Display*) (screen->getDisplay()->display);
-  unsigned int nCells = CellsOfScreen(ScreenOfDisplay(dpy, screen->screenNumber));
-
-  typedef ::XColor xcolor;
-  std::vector<xcolor> colors(nCells);
-  for (unsigned int i=0; i<nCells; i++)
-    colors[i].pixel = i;
-  ::XColor* cols = colors.get_allocator().address(colors.front());
-  XQueryColors(dpy, xid, cols,
-              nCells);
-
-  int nShared = 0;
-  for (unsigned int i=0; i<nCells; i++)
-    {
-      ::XColor color = colors[i];
-
-      if (!XAllocColor(dpy, xid, &color))
-       continue;
-
-      /* FIXME: In some cases this algorithm may identify a free
-        color cell as a shared one. */
-      if (color.pixel != i)
-       {
-         // Oops, the color wasn't shared. Free it.
-         XFreeColors(dpy, xid, &(color.pixel), 1, 0);
-         colors[i].flags = FLAG_NOT_SHARED;
-         continue;
-       }
-      
-      // FIXME: Shared or free?
-      
-      nShared++;
-      colors[i].flags = FLAG_SHARED;
-    }
-  
-  JArray<XColor*>* shared = newXColorArray(nShared);
-  int si=0;
-  for (unsigned int i=0; i<nCells; i++)
-    {
-      if (colors[i].flags != FLAG_SHARED)
-       continue;
-      
-      XColor* col = elements(shared)[si++];
-      gnu::gcj::RawData* colorData = col->structure;
-      ::XColor* colStruct = reinterpret_cast<xcolor*>(colorData);
-      *colStruct = colors[i];
-    }
-
-  return shared;
-}
-
-xcolorarray gnu::gcj::xlib::Colormap::getXColors()
-{
-  ::Display* dpy = (::Display*) (screen->getDisplay()->display);
-  unsigned int nCells =
-    CellsOfScreen(ScreenOfDisplay(dpy, screen->screenNumber));
-  
-  typedef ::XColor xcolor;
-  std::vector<xcolor> colors(nCells);
-  
-  JArray<XColor*>* colArray = newXColorArray(nCells);
-  
-  for (unsigned int i=0; i<nCells; i++)
-    colors[i].pixel = i;
-  
-  XQueryColors(dpy, xid, &(colors.front()), nCells);
-
-  /* TODO: The current problem with this code is that it relies on
-     (color.pixel == i) as an indicator that the color is
-     shared. However, (color.pixel == i), may also occur simply
-     because color cell i simply was the next free in the list of
-     unallocated color cells.  IDEA: run through the list both
-     backwards and forwards, and only pick out the colorcells that
-     have been identified as shared during both passes.  Reversing the
-     traversal direction might prevent i from corresponding to the
-     next free colorcell, atleast in one of the passes. */
-  for (unsigned int i=0; i<nCells; i++)
-    {
-      ::XColor color = colors[i];
-      
-      char flag = FLAG_NOT_SHARED;
-      if (XAllocColor(dpy, xid, &color))
-       {
-         if (color.pixel == i)
-           {
-             flag = FLAG_SHARED;
-           }
-         else
-           {
-             // Oops, the color wasn't shared. Free it.
-             XFreeColors(dpy, xid, &(color.pixel), 1, 0);
-           }
-       }
-      
-      // Copy color data into object in array
-      XColor* col = elements(colArray)[i];
-      gnu::gcj::RawData* colorData = col->structure;
-      ::XColor* colStruct = reinterpret_cast<xcolor*>(colorData);
-      *colStruct = colors[i];
-      colStruct->flags = flag;
-    }
-  
-  return colArray;
-}
-