36#include "gdk/gdkkeysyms.h" 
   65#define XDND_PROTOCOL_VERSION   5 
   67#define IDC_HAND  MAKEINTRESOURCE(32649) 
  120   GdkDrawable *drawing;          
 
  141GdkAtom gClipboardAtom = GDK_NONE;
 
  142static XWindow_t *
gCws;         
 
  143static XWindow_t *
gTws;         
 
  178static const char *
gTextFont = 
"arial.ttf";      
 
  206    GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK
 
  207    | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK
 
  208    | GDK_KEY_RELEASE_MASK;
 
  210    GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK | GDK_ENTER_NOTIFY_MASK |
 
  211    GDK_LEAVE_NOTIFY_MASK;
 
  217   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  218   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  219   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 
  223static bool gdk_initialized = 
false;
 
  227struct MWMHintsProperty_t {
 
  246struct KeySymbolMap_t {
 
  251static const char *keyCodeToString[] = {
 
  305static KeySymbolMap_t 
gKeyMap[] = {
 
  308#ifndef GDK_ISO_Left_Tab 
  362   int n = 
event->fUser[1];
 
  364      for (i = 0; i < 
n; i++) {
 
  365         buf[i] = 
event->fUser[2 + i];
 
  371   if (event->
fCode <= 0x20) {
 
  372      strncpy(buf, keyCodeToString[event->
fCode], buflen - 1);
 
  404   conv.i[0] = (
Int_t) i1;
 
  405   conv.i[1] = (
Int_t) i2;
 
  412static BOOL 
CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam)
 
  414   ::ShowWindow(hwndChild, SW_SHOWNORMAL);
 
  415   GdkWindow *child = gdk_window_lookup(hwndChild);
 
  417      ((GdkWindowPrivate *) child)->mapped = 
TRUE;
 
  423static void _ChangeProperty(HWND w, 
char *np, 
char *dp, 
int n, 
Atom_t type)
 
  428   hMem = ::GetProp(w, np);
 
  432   hMem = ::GlobalAlloc(GHND, 
n + 
sizeof(
Atom_t));
 
  433   p = (
char *) ::GlobalLock(hMem);
 
  435   memcpy(p + 
sizeof(
Atom_t), dp, 
n);
 
  436   ::GlobalUnlock(hMem);
 
  437   ::SetProp(w, np, hMem);
 
  445                       int format, 
int mode, 
const unsigned char *data,
 
  453   if (mode == GDK_PROP_MODE_REPLACE || mode == GDK_PROP_MODE_PREPEND) {
 
  454      len = (int) ::GlobalGetAtomName(property, buffer, 
sizeof(buffer));
 
  455      if ((atomName = (
char *) 
malloc(len + 1)) == NULL) {
 
  458         strcpy(atomName, buffer);
 
  460      sprintf(propName, 
"#0x%0.4x", (
unsigned) atomName);
 
  461      _ChangeProperty(w, propName, (
char *) data, nelements, 
type);
 
  469static int _GetWindowProperty(GdkWindow * 
id, 
Atom_t property, 
Long_t long_offset,
 
  471                       Atom_t * actual_type_return,
 
  477   char *data, *destPtr;
 
  482   w = (HWND) GDK_DRAWABLE_XID(
id);
 
  484   if (::IsClipboardFormatAvailable(CF_TEXT) && ::OpenClipboard(NULL)) {
 
  485      handle = ::GetClipboardData(CF_TEXT);
 
  486      if (handle != NULL) {
 
  487         data = (
char *) ::GlobalLock(handle);
 
  488         *nitems_return = strlen(data);
 
  490         destPtr = (
char *) *prop_return;
 
  491         while (*data != 
'\0') {
 
  499         ::GlobalUnlock(handle);
 
  501         *bytes_after_return = 0;
 
  507      ::RemoveProp(w, propName);
 
  519   GdkImage *image = (GdkImage *)
id;
 
  522   if (image->depth == 1) {
 
  523      pixel = (((
char *) image->mem)[
y * image->bpl + (
x >> 3)] & (1 << (7 - (
x & 0x7)))) != 0;
 
  526      switch (image->bpp) {
 
  532            pixel = pixelp[0] | (pixelp[1] << 8);
 
  535            pixel = pixelp[0] | (pixelp[1] << 8) | (pixelp[2] << 16);
 
  538            pixel = pixelp[0] | (pixelp[1] << 8) | (pixelp[2] << 16);
 
  548static void CollectImageColors(
ULong_t pixel, 
ULong_t * &orgcolors,
 
  551   if (maxcolors == 0) {
 
  557   for (
int i = 0; i < ncolors; i++) {
 
  558      if (pixel == orgcolors[i]) 
return;
 
  560   if (ncolors >= maxcolors) {
 
  568   orgcolors[ncolors++] = pixel;
 
  574static char *EventMask2String(
UInt_t evmask)
 
  576   static char bfr[500];
 
  581  if (evmask & k##x##Mask) \ 
  582    p += sprintf (p, "%s" #x, (p > bfr ? " " : ""))
 
  600class TGWin32MainThread {
 
  605   static LPCRITICAL_SECTION  fCritSec;      
 
  606   static LPCRITICAL_SECTION  fMessageMutex; 
 
  609   ~TGWin32MainThread();
 
  610   static void LockMSG();
 
  611   static void UnlockMSG();
 
  614TGWin32MainThread *gMainThread = 0;
 
  615LPCRITICAL_SECTION TGWin32MainThread::fCritSec = 0;
 
  616LPCRITICAL_SECTION TGWin32MainThread::fMessageMutex = 0;
 
  622TGWin32MainThread::~TGWin32MainThread()
 
  625      ::LeaveCriticalSection(fCritSec);
 
  626      ::DeleteCriticalSection(fCritSec);
 
  632      ::LeaveCriticalSection(fMessageMutex);
 
  633      ::DeleteCriticalSection(fMessageMutex);
 
  634      delete fMessageMutex;
 
  639      ::PostThreadMessage(fId, WM_QUIT, 0, 0);
 
  640      ::CloseHandle(fHandle);
 
  648void TGWin32MainThread::LockMSG()
 
  650   if (fMessageMutex) ::EnterCriticalSection(fMessageMutex);
 
  656void TGWin32MainThread::UnlockMSG()
 
  658   if (fMessageMutex) ::LeaveCriticalSection(fMessageMutex);
 
  662class TGWin32RefreshTimer : 
public TTimer {
 
  672      while (::PeekMessage(&msg, NULL, NULL, NULL, PM_NOREMOVE)) {
 
  673         ::PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE);
 
  686static DWORD WINAPI MessageProcessingLoop(void *p)
 
  690   Bool_t endLoop = kFALSE;
 
  691   TGWin32RefreshTimer *refersh = 0;
 
  693   // force to create message queue
 
  694   ::PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE);
 
  696   // periodically we refresh windows
 
  697   // Don't create refresh timer if the application has been created inside PVSS
 
  699      TString arg = gSystem->BaseName(gApplication->Argv(0));
 
  700      if (!arg.Contains("PVSS"))
 
  701         refersh = new TGWin32RefreshTimer();
 
  705      erret = ::GetMessage(&msg, NULL, NULL, NULL);
 
  706      if (erret <= 0) endLoop = kTRUE;
 
  707      endLoop = MessageProcessingFunc(&msg);
 
  710   TGWin32::Instance()->CloseDisplay();
 
  716      erret = ::GetLastError();
 
  717      Error("MsgLoop", "Error in GetMessage");
 
  726Bool_t GUIThreadMessageWrapper(MSG* msg)
 
  738TGWin32MainThread::TGWin32MainThread()
 
  740   fCritSec = 
new CRITICAL_SECTION;
 
  741   ::InitializeCriticalSection(fCritSec);
 
  742   fMessageMutex = 
new CRITICAL_SECTION;
 
  743   ::InitializeCriticalSection(fMessageMutex);
 
  803   if (!
gROOT->IsBatch() && !gMainThread) {
 
  804      gMainThread = 
new TGWin32MainThread();
 
  822   while (it.
Next(key, value)) {
 
  846   static Int_t m_timer = 0;
 
  848   if ( (msg->message == WM_NCLBUTTONDOWN) ) {
 
  850         m_timer = SetTimer(NULL, 1, 20, (TIMERPROC) 
MyTimerProc);
 
  852   else if (msg->message == WM_NCMOUSELEAVE ) {
 
  854         KillTimer(NULL, m_timer);
 
  873      TGWin32MainThread::LockMSG();
 
  874      TranslateMessage(msg);
 
  875      DispatchMessage(msg);
 
  876      TGWin32MainThread::UnlockMSG();
 
  886#ifdef OLD_THREAD_IMPLEMENTATION 
  908   TGWin32MainThread *delThread = gMainThread;
 
  938   if (gMainThread && gMainThread->fCritSec) ::EnterCriticalSection(gMainThread->fCritSec);
 
  946   if (gMainThread && gMainThread->fCritSec) ::LeaveCriticalSection(gMainThread->fCritSec);
 
  954   if (!gdk_initialized) {
 
  955      if (!gdk_init_check(NULL, NULL)) 
return kFALSE;
 
  956      gdk_initialized = 
true;
 
  959   if (!gClipboardAtom) {
 
  960      gClipboardAtom = gdk_atom_intern(
"CLIPBOARD", 
kFALSE);
 
  971   GdkPixmap *pixmp1, *pixmp2;
 
  977   if (!
Init((
void*)dpyName)) {
 
  987   fore.red = fore.green = fore.blue = 0;
 
  988   back.red = back.green = back.blue = 0;
 
  989   color.red = color.green = color.blue = 0;
 
  992   fVisual = gdk_visual_get_best();
 
  994   fDepth = gdk_visual_get_best_depth();
 
 1003   for (i = 0; i < 
kMAXGC; i++) {
 
 1004      gGClist[i]  = gdk_gc_new(GDK_ROOT_PARENT());
 
 1017   gdk_gc_get_values(
gGCtext, &gcvals);
 
 1018   gdk_gc_set_foreground(
gGCinvt, &gcvals.background);
 
 1019   gdk_gc_set_background(
gGCinvt, &gcvals.foreground);
 
 1023   gdk_color_black(
fColormap, &echov.foreground); 
 
 1024   gdk_color_white(
fColormap, &echov.background); 
 
 1025   echov.function = GDK_INVERT;
 
 1026   echov.subwindow_mode = GDK_CLIP_BY_CHILDREN;
 
 1028       gdk_gc_new_with_values((GdkWindow *) GDK_ROOT_PARENT(), &echov,
 
 1029                              (GdkGCValuesMask) (GDK_GC_FOREGROUND |
 
 1034   pixmp1 = gdk_bitmap_create_from_data(GDK_ROOT_PARENT(),
 
 1037   pixmp2 = gdk_bitmap_create_from_data(GDK_ROOT_PARENT(),
 
 1040   gNullCursor = gdk_cursor_new_from_pixmap((GdkDrawable *)pixmp1, (GdkDrawable *)pixmp2,
 
 1041                                             &fore, &back, 0, 0);
 
 1090   if ( gdk_visual_get_best_type() == GDK_VISUAL_TRUE_COLOR) {
 
 1096         if ((
fVisual->blue_mask >> i) == 1) {
 
 1105         if ((
fVisual->green_mask >> i) == 1) {
 
 1114         if ((
fVisual->red_mask >> i) == 1) {
 
 1122   SetTitle(
"ROOT interface to Win32 with TrueType fonts");
 
 1156      if ( gdk_color_alloc((GdkColormap *)cmap, (GdkColor *)color) ) 
return kTRUE;
 
 1175      GdkColorContext *cc = gdk_color_context_new(gdk_visual_get_system(), cmap);
 
 1176      gdk_color_context_query_colors(cc, color, ncolors);
 
 1177      gdk_color_context_free(cc);
 
 1179      for (
Int_t i = 0; i < ncolors; i++) {
 
 1234      static GdkColor col[5];
 
 1235      GdkColor *bcol = 0, *bc;
 
 1243         const Int_t maxdots = 50000;
 
 1245         dots = 
Int_t(source->width * source->rows);
 
 1246         dots = dots > maxdots ? maxdots : dots;
 
 1247         bcol = 
new GdkColor[dots];
 
 1252         for (
y = 0; 
y < (int) source->rows; 
y++) {
 
 1253            for (
x = 0; 
x < (int) source->width; 
x++, bc++) {
 
 1254               bc->pixel = GetPixelImage((
Drawable_t)xim, bx + 
x, by + 
y);
 
 1255               if (++dotcnt >= maxdots) 
break;
 
 1262         for (
y = 0; 
y < (int) source->rows; 
y++) {
 
 1263            for (
x = 0; 
x < (int) source->width; 
x++, bc++) {
 
 1267               if (++dotcnt >= maxdots) 
break;
 
 1276         if (bc->red == 
r && bc->green == 
g && bc->blue == 
b) {
 
 1290      if (fore != col[4].pixel || back != col[0].pixel) {
 
 1291         col[4].pixel = fore;
 
 1293            col[3].pixel = back;
 
 1301         for (
x = 3; 
x > 0; 
x--) {
 
 1302            col[
x].red   = (col[4].red  *
x + col[0].red  *(4-
x)) /4;
 
 1303            col[
x].green = (col[4].green*
x + col[0].green*(4-
x)) /4;
 
 1304            col[
x].blue  = (col[4].blue *
x + col[0].blue *(4-
x)) /4;
 
 1306               Warning(
"DrawImage", 
"cannot allocate smoothing color");
 
 1307               col[
x].pixel = col[
x+1].pixel;
 
 1314      for (
y = 0; 
y < (int) source->rows; 
y++) {
 
 1315         for (
x = 0; 
x < (int) source->width; 
x++) {
 
 1317            d = ((
d + 10) * 5) / 256;
 
 1319            if (
d && 
x < (
int) source->width) {
 
 1328      for (
int y = 0; 
y < (int) source->rows; 
y++) {
 
 1331         for (
int x = 0; 
x < (int) source->width; 
x++) {
 
 1332            if (
n == 0) 
d = *
s++;
 
 1338         row += source->pitch;
 
 1394   if (
y+
h > height) 
h = height - 
y;
 
 1396   return gdk_image_get((GdkDrawable*)cws, 
x, 
y, w, 
h);
 
 1411   if ((
int)w == 0 || (
int)
h == 0)  
return kFALSE;
 
 1415   if (
y + (
int)h <= 0 || y >= (
int)height) 
return kFALSE;
 
 1443   GdkImage *xim  = gdk_image_new(GDK_IMAGE_SHARED, gdk_visual_get_best(), w, 
h);
 
 1452   gdk_gc_get_values((GdkGC*)
GetGC(3), &gcvals);
 
 1459         Error(
"DrawText", 
"error getting background image");
 
 1464      Int_t xo = 0, yo = 0;
 
 1465      if (
x1 < 0) xo = -
x1;
 
 1466      if (y1 < 0) yo = -y1;
 
 1468      for (
int yp = 0; yp < (int) bim->height; yp++) {
 
 1469         for (
int xp = 0; xp < (int) bim->width; xp++) {
 
 1470            pixel = GetPixelImage((
Drawable_t)bim, xp, yp);
 
 1475      gdk_image_unref((GdkImage *)bim);
 
 1483         pixel = gcvals.background.pixel;
 
 1485         pixel = GetPixelImage((
Drawable_t)bim, 0, 0);
 
 1487      Int_t xo = 0, yo = 0;
 
 1488      if (
x1 < 0) xo = -
x1;
 
 1489      if (y1 < 0) yo = -y1;
 
 1491      for (
int yp = 0; yp < 
h; yp++) {
 
 1492         for (
int xp = 0; xp < (int) w; xp++) {
 
 1497         gdk_image_unref((GdkImage *)bim);
 
 1507      if (FT_Glyph_To_Bitmap(&glyph->
fImage,
 
 1509                                              : ft_render_mode_mono,
 
 1511      FT_BitmapGlyph bitmap = (FT_BitmapGlyph)glyph->
fImage;
 
 1512      FT_Bitmap*     source = &bitmap->bitmap;
 
 1515      bx = bitmap->left+Xoff;
 
 1516      by = 
h - bitmap->top-Yoff;
 
 1517      DrawImage(source, gcvals.foreground.pixel, bg, xim, bx, by);
 
 1522   gdk_draw_image((GdkDrawable *)cws, 
GetGC(6), xim, 0, 0, 
x1, y1, w, 
h);
 
 1524   gdk_image_unref(xim);
 
 1567   if (!
gCws->ispixmap && !
gCws->double_buffer) {
 
 1568      gdk_window_set_background(
gCws->drawing, (GdkColor *) & 
GetColor(0).color);
 
 1569      gdk_window_clear(
gCws->drawing);
 
 1602   if (
gCws->ispixmap) {
 
 1603      gdk_pixmap_unref(
gCws->window);
 
 1605      gdk_window_destroy(
gCws->window, 
kTRUE);
 
 1609      gdk_pixmap_unref(
gCws->buffer);
 
 1611   if (
gCws->new_colors) {
 
 1612      gdk_colormap_free_colors((GdkColormap *) 
fColormap,
 
 1613                               (GdkColor *)
gCws->new_colors, 
gCws->ncolors);
 
 1615      delete [] 
gCws->new_colors;
 
 1616      gCws->new_colors = 0;
 
 1642   gdk_window_copy_area(
gCws->drawing, 
gGCpxmp, xpos, ypos, 
gTws->drawing,
 
 1694   int i, j, icol, ix, iy, w, 
h, current_icol;
 
 1706   for (i = 0; i < nx; i++) {
 
 1708      for (j = 0; j < ny; j++) {
 
 1709         icol = ic[i + (nx * j)];
 
 1710         if (icol != current_icol) {
 
 1712            current_icol = icol;
 
 1730   static int lastn = 0;
 
 1731   static GdkPoint *
xy = 0;
 
 1739      delete [] (GdkPoint *)
xy;
 
 1740      xy = 
new GdkPoint[
n];
 
 1743   for (i = 0; i < 
n; i++) {
 
 1744      xy[i].x = xyt[i].
fX;
 
 1745      xy[i].y = xyt[i].
fY;
 
 1776         dashes[i] = (gint8) 0;
 
 1796   for (i = 0; i < 
n; i++) {
 
 1797      xy[i].fX = xyt[i].
fX;
 
 1798      xy[i].fY = xyt[i].
fY;
 
 1815            dashes[i] = (gint8) 0;
 
 1822         for (i = 1; i < 
n; i++) {
 
 1823            int dx = 
xy[i].fX - 
xy[i - 1].fX;
 
 1824            int dy = 
xy[i].fY - 
xy[i - 1].fY;
 
 1826            if (dx < 0) dx = -dx;
 
 1827            if (dy < 0) dy = -dy;
 
 1847   static int lastn = 0;
 
 1848   static GdkPoint *
xy = 0;
 
 1856      delete [] (GdkPoint *)
xy;
 
 1857      xy = 
new GdkPoint[
n];
 
 1861   for (i = 0; i < 
n; i++) {
 
 1862      xy[i].x = xyt[i].
fX;
 
 1863      xy[i].y = xyt[i].
fY;
 
 1872      for (
m = 0; 
m < 
n; 
m++) {
 
 1890            for (i = 0; i < 
gMarker.n; i++) {
 
 1899            for (i = 0; i < 
gMarker.n; i++) {
 
 1906            for (i = 0; i < 
gMarker.n; i += 2) {
 
 1956   if (which >= 
kMAXGC || which < 0) {
 
 1957      Error(
"GetGC", 
"trying to get illegal GdkGC (which = %d)", which);
 
 1976      return gTws->double_buffer;
 
 1996      w = gdk_screen_width();
 
 1997      h = gdk_screen_height();
 
 2003      gdk_window_get_geometry((GdkDrawable *) 
gTws->window, &
x, &
y,
 
 2004                              &
width, &height, &depth);
 
 2006      gdk_window_get_deskrelative_origin((GdkDrawable *) 
gTws->window, &
x, &
y);
 
 2008      if (
width > 0 && height > 0) {
 
 2010         gTws->height = height;
 
 2030   nplanes = gdk_visual_get_best_depth();
 
 2040   } 
else if (index == 1) {
 
 2084   if (!
gTws->open) 
return;
 
 2086   gdk_window_move((GdkDrawable *) 
gTws->window, 
x, 
y);
 
 2113                                                 newsize * 
sizeof(XWindow_t),
 
 2122   depth =gdk_visual_get_best_depth();
 
 2123   gCws->window = (GdkPixmap *) gdk_pixmap_new(GDK_ROOT_PARENT(),wval,hval,depth);
 
 2124   gdk_drawable_get_size((GdkDrawable *) 
gCws->window, &ww, &hh);
 
 2126   for (i = 0; i < 
kMAXGC; i++) {
 
 2127      gdk_gc_set_clip_mask((GdkGC *) 
gGClist[i], (GdkDrawable *)None);
 
 2138   gCws->double_buffer = 0;
 
 2142   gCws->height = hval;
 
 2143   gCws->new_colors = 0;
 
 2154   GdkWindowAttr attributes;
 
 2155   unsigned long attr_mask = 0;
 
 2158   int wval, hval, depth;
 
 2160   GdkWindow *wind = (GdkWindow *) win;
 
 2162   gdk_window_get_geometry(wind, &xval, &yval, &wval, &hval, &depth);
 
 2180                                          newsize * 
sizeof(XWindow_t),
 
 2192   attributes.wclass = GDK_INPUT_OUTPUT;
 
 2193   attributes.event_mask = 0
L;  
 
 2194   attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_STRUCTURE_MASK |
 
 2195       GDK_PROPERTY_CHANGE_MASK;
 
 2198      attributes.x = xval;
 
 2200      attributes.x = -1.0 * xval;
 
 2204      attributes.y = yval;
 
 2206      attributes.y = -1.0 * yval;
 
 2208   attributes.width = wval;
 
 2209   attributes.height = hval;
 
 2210   attributes.colormap = gdk_colormap_get_system();
 
 2211   attributes.visual = gdk_window_get_visual(wind);
 
 2212   attributes.override_redirect = 
TRUE;
 
 2214   if ((attributes.y > 0) && (attributes.x > 0)) {
 
 2215      attr_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_COLORMAP |
 
 2216          GDK_WA_WMCLASS | GDK_WA_NOREDIR;
 
 2218      attr_mask = GDK_WA_COLORMAP | GDK_WA_WMCLASS | GDK_WA_NOREDIR;
 
 2221   if (attributes.visual != NULL) {
 
 2222      attr_mask |= GDK_WA_VISUAL;
 
 2224   attributes.window_type = GDK_WINDOW_CHILD;
 
 2225   gCws->window = gdk_window_new(wind, &attributes, attr_mask);
 
 2226   HWND window = (HWND)GDK_DRAWABLE_XID((GdkWindow *)
gCws->window);
 
 2227   ::ShowWindow(window, SW_SHOWNORMAL);
 
 2228   ::ShowWindow(window, SW_RESTORE);
 
 2229   ::BringWindowToTop(window);
 
 2232      ::SetClassLong(window, GCL_HCURSOR,
 
 2240   gCws->double_buffer = 0;
 
 2244   gCws->height = hval;
 
 2245   gCws->new_colors = 0;
 
 2272   gdk_pixmap_unref((GdkPixmap *)pix);
 
 2303   static int xloc = 0;
 
 2304   static int yloc = 0;
 
 2305   static int xlocp = 0;
 
 2306   static int ylocp = 0;
 
 2307   static GdkCursor *cursor = NULL;
 
 2315   if (cursor == NULL) {
 
 2317         gdk_window_set_cursor((GdkWindow *)
gCws->window, (GdkCursor *)
gNullCursor);
 
 2321            cursor = gdk_syscursor_new((
ULong_t)IDC_CROSS);
 
 2323            cursor = gdk_cursor_new((GdkCursorType)GDK_CROSSHAIR);
 
 2324         gdk_window_set_cursor((GdkWindow *)
gCws->window, (GdkCursor *)cursor);
 
 2334   while (button_press == 0) {
 
 2335      event = gdk_event_get();
 
 2348         radius = (int) 
TMath::Sqrt((
double)((xloc - xlocp) * (xloc - xlocp) +
 
 2349                                             (yloc - ylocp) * (yloc - ylocp)));
 
 2352                            xlocp - radius, ylocp - radius,
 
 2353                            2 * radius, 2 * radius, 0, 23040);
 
 2357         gdk_draw_line(
gCws->window, 
gGCecho, xlocp, ylocp, xloc, yloc);
 
 2370      xloc = 
event->button.x;
 
 2371      yloc = 
event->button.y;
 
 2373      switch (event->type) {
 
 2375      case GDK_LEAVE_NOTIFY:
 
 2378               event = gdk_event_get();
 
 2380               if (event->type == GDK_ENTER_NOTIFY) {
 
 2381                  gdk_event_free(event);
 
 2384               gdk_event_free(event);
 
 2391      case GDK_BUTTON_PRESS:
 
 2392         button_press = 
event->button.button;
 
 2393         xlocp = 
event->button.x;
 
 2394         ylocp = 
event->button.y;
 
 2395         gdk_cursor_unref(cursor);
 
 2399      case GDK_BUTTON_RELEASE:
 
 2401            button_press = 10 + 
event->button.button;
 
 2402            xlocp = 
event->button.x;
 
 2403            ylocp = 
event->button.y;
 
 2409            button_press = 
event->key.keyval;
 
 2410            xlocp = 
event->button.x;
 
 2411            ylocp = 
event->button.y;
 
 2415      case GDK_KEY_RELEASE:
 
 2417            button_press = -1 * (int)(event->key.keyval);
 
 2418            xlocp = 
event->button.x;
 
 2419            ylocp = 
event->button.y;
 
 2427      xtmp = 
event->button.x;
 
 2428      ytmp = 
event->button.y;
 
 2430      gdk_event_free(event);
 
 2433         if (button_press == 0) {
 
 2444   return button_press;
 
 2458   static GdkCursor *cursor = NULL;
 
 2459   static int percent = 0;      
 
 2460   static GdkWindow *CurWnd;
 
 2465   int len_text = strlen(
text);
 
 2469   CurWnd = (GdkWindow *)
gCws->window;
 
 2471   if (cursor == NULL) {
 
 2473         cursor = gdk_syscursor_new((
ULong_t)IDC_HELP);
 
 2475         cursor = gdk_cursor_new((GdkCursorType)GDK_QUESTION_ARROW);
 
 2478      gdk_window_set_cursor(CurWnd, cursor);
 
 2480   for (nt = len_text; nt > 0 && 
text[nt - 1] == 
' '; nt--);
 
 2483   focuswindow = ::SetFocus((HWND)GDK_DRAWABLE_XID(CurWnd));
 
 2498         event = gdk_event_get();
 
 2501         ::SleepEx(10, 
kTRUE);
 
 2512         char *stmp = 
new char[
pt+1];
 
 2520      if (
pt < len_text) {
 
 2528      if (event != NULL) {
 
 2529         switch (event->type) {
 
 2530         case GDK_BUTTON_PRESS:
 
 2531         case GDK_ENTER_NOTIFY:
 
 2532            focuswindow = ::SetFocus((HWND)GDK_DRAWABLE_XID(CurWnd));
 
 2535         case GDK_LEAVE_NOTIFY:
 
 2536            ::SetFocus(focuswindow);
 
 2539            nbytes = 
event->key.length;
 
 2540            for (i = 0; i < nbytes; i++) {
 
 2541               keybuf[i] = 
event->key.string[i];
 
 2543            keysym = 
event->key.keyval;
 
 2579               if (isascii(keybuf[0]) && isprint(keybuf[0])) {
 
 2581                  if (nt < len_text) {
 
 2584                  for (i = nt - 1; i > 
pt; i--) {
 
 2587                  if (
pt < len_text) {
 
 2592                  switch (keybuf[0]) {
 
 2599                        for (i = 
pt; i < nt; i++) {
 
 2620                        for (i = 
pt; i < nt; i++) {
 
 2640                     for (i = 
pt; i < nt; i++)
 
 2670         gdk_event_free(event);
 
 2674   ::SetFocus(focuswindow);
 
 2679      gdk_cursor_unref(cursor);
 
 2703   if (
gTws->width == w && 
gTws->height == 
h)
 
 2706   gdk_window_resize((GdkWindow *) 
gTws->window, w, 
h);
 
 2710      if (
gTws->width < w || 
gTws->height < 
h) {
 
 2711         gdk_pixmap_unref(
gTws->buffer);
 
 2712         gTws->buffer = gdk_pixmap_new(GDK_ROOT_PARENT(), 
 
 2713                                       w, 
h, gdk_visual_get_best_depth());
 
 2715      for (i = 0; i < 
kMAXGC; i++) {
 
 2716         gdk_gc_set_clip_mask(
gGClist[i], None);
 
 2750   if (
gTws->width >= wval - 1 && 
gTws->width <= wval + 1 &&
 
 2751       gTws->height >= hval - 1 && 
gTws->height <= hval + 1)
 
 2755   if (
gTws->width < wval || 
gTws->height < hval) {
 
 2756      gdk_pixmap_unref((GdkPixmap *)
gTws->window);
 
 2757      depth = gdk_visual_get_best_depth();
 
 2758      gTws->window = gdk_pixmap_new(GDK_ROOT_PARENT(), wval, hval, depth);
 
 2761   gdk_drawable_get_size(
gTws->window, &ww, &hh);
 
 2763   for (i = 0; i < 
kMAXGC; i++) {
 
 2764      gdk_gc_set_clip_mask((GdkGC *) 
gGClist[i], (GdkDrawable *)None);
 
 2774   gTws->height = hval;
 
 2784   int xval = 0, yval = 0;
 
 2785   GdkWindow *win, *root = NULL;
 
 2786   int wval = 0, hval = 0, depth = 0;
 
 2792   win = (GdkWindow *) 
gTws->window;
 
 2793   gdk_window_get_geometry(win, &xval, &yval,
 
 2794                           &wval, &hval, &depth);
 
 2797   if (
gTws->width == wval && 
gTws->height == hval) {
 
 2801   gdk_window_resize((GdkWindow *) 
gTws->window, wval, hval);
 
 2804      if (
gTws->width < wval || 
gTws->height < hval) {
 
 2805         gdk_pixmap_unref((GdkPixmap *)
gTws->buffer);
 
 2806         depth = gdk_visual_get_best_depth();
 
 2807         gTws->buffer = (GdkPixmap *) gdk_pixmap_new(GDK_ROOT_PARENT(),
 
 2811      for (i = 0; i < 
kMAXGC; i++) {
 
 2812         gdk_gc_set_clip_mask((GdkGC *) 
gGClist[i], (GdkDrawable *)None);
 
 2824   gTws->height = hval;
 
 2841   if (
gCws->clip && !
gCws->ispixmap && !
gCws->double_buffer) {
 
 2842      rect.x = 
gCws->xclip;
 
 2843      rect.y = 
gCws->yclip;
 
 2844      rect.width = 
gCws->wclip;
 
 2845      rect.height = 
gCws->hclip;
 
 2847      for (i = 0; i < 
kMAXGC; i++) {
 
 2848         gdk_gc_set_clip_rectangle((GdkGC *) 
gGClist[i], &rect);
 
 2851      for (i = 0; i < 
kMAXGC; i++) {
 
 2852         gdk_gc_set_clip_mask((GdkGC *) 
gGClist[i], (GdkDrawable *)None);
 
 2864   if (chupx == 0 && chupy == 0) {
 
 2866   } 
else if (chupx == 0 && chupy == 1) {
 
 2868   } 
else if (chupx == -1 && chupy == 0) {
 
 2870   } 
else if (chupx == 0 && chupy == -1) {
 
 2872   } 
else if (chupx == 1 && chupy == 0) {
 
 2878            180.) / 3.14159) - 90;
 
 2896   for (
int i = 0; i < 
kMAXGC; i++) {
 
 2897      gdk_gc_set_clip_mask((GdkGC *) 
gGClist[i], (GdkDrawable *)None);
 
 2920   if (
gTws->clip && !
gTws->ispixmap && !
gTws->double_buffer) {
 
 2921      rect.x = 
gTws->xclip;
 
 2922      rect.y = 
gTws->yclip;
 
 2923      rect.width = 
gTws->wclip;
 
 2924      rect.height = 
gTws->hclip;
 
 2926      for (
int i = 0; i < 
kMAXGC; i++) {
 
 2927         gdk_gc_set_clip_rectangle((GdkGC *)
gGClist[i], &rect);
 
 2941   return col.
color.pixel;
 
 2961   } 
else if (!
fColormap && (ci < 0 || ci > 1)) {
 
 2966      gdk_gc_get_values(gc, &gcvals);
 
 2968      color.pixel = col.
color.pixel ^ gcvals.background.pixel;
 
 2969      color.red = GetRValue(color.pixel);
 
 2970      color.green = GetGValue(color.pixel);
 
 2971      color.blue = GetBValue(color.pixel);
 
 2972      gdk_gc_set_foreground(gc, &color);
 
 2975      gdk_gc_set_foreground(gc, &col.
color);
 
 2978      gdk_gc_get_values(gc, &gcvals);
 
 2980      if (gcvals.foreground.pixel != gcvals.background.pixel) {
 
 2981         gdk_gc_set_background(gc, &
GetColor(!ci).color);
 
 2994   gdk_window_set_cursor((GdkWindow *)
gTws->window, (GdkCursor *)
fCursors[cursor]);
 
 3004   static GdkWindow *lid = 0;
 
 3005   static GdkCursor *lcur = 0;
 
 3007   if ((lid == (GdkWindow *)
id) && (lcur==(GdkCursor *)curid)) 
return;
 
 3008   lid = (GdkWindow *)
id;
 
 3009   lcur = (GdkCursor *)curid;
 
 3011   gdk_window_set_cursor((GdkWindow *) 
id, (GdkCursor *)curid);
 
 3041      if (!
gTws->open) 
return;
 
 3059   if (!
gTws->double_buffer) 
return;
 
 3060   gTws->double_buffer = 0;
 
 3071   if (!
gTws->buffer) {
 
 3072      gTws->buffer = gdk_pixmap_new(GDK_ROOT_PARENT(), 
 
 3074                                    gdk_visual_get_best_depth());
 
 3080   for (
int i = 0; i < 
kMAXGC; i++) {
 
 3081      gdk_gc_set_clip_mask(
gGClist[i], None);
 
 3083   gTws->double_buffer = 1;
 
 3102      for (i = 0; i < 
kMAXGC; i++) {
 
 3103         gdk_gc_set_function(
gGClist[i], GDK_COPY);
 
 3108      for (i = 0; i < 
kMAXGC; i++) {
 
 3109         gdk_gc_set_function(
gGClist[i], GDK_XOR);
 
 3114      for (i = 0; i < 
kMAXGC; i++) {
 
 3115         gdk_gc_set_function(
gGClist[i], GDK_INVERT);
 
 3172   static int current_fasi = 0;
 
 3181      gdk_gc_set_fill(
gGCfill, GDK_SOLID);
 
 3190      gdk_gc_set_fill(
gGCfill, GDK_STIPPLED);
 
 3192      if (fasi != current_fasi) {
 
 3197         int stn = (fasi >= 1 && fasi <=25) ? fasi : 2;
 
 3198         gFillPattern = gdk_bitmap_create_from_data(GDK_ROOT_PARENT(),
 
 3201         current_fasi = fasi;
 
 3217   EnableWindow((HWND) GDK_DRAWABLE_XID(
gCws->window), inp);
 
 3225   if ((cindex < 0) || (cindex==
fLineColor)) 
return;
 
 3294   static Int_t dashed[2] = { 3, 3 };
 
 3295   static Int_t dotted[2] = { 1, 2 };
 
 3296   static Int_t dasheddotted[4] = { 3, 4, 1, 4 };
 
 3312      for (
Int_t j = 0; j<nt; j++) {
 
 3314         sscanf(((
TObjString*)tokens->
At(j))->GetName(), 
"%d", &it);
 
 3315         linestyle[j] = (
Int_t)(it/4);
 
 3318      delete [] linestyle;
 
 3389      for (
int i = 0; i < 
gMarker.n; i++) {
 
 3400   if ((
fMarkerStyle == markerstyle) || (markerstyle >= 50)) 
return;
 
 3410   static GdkPoint shape[30];
 
 3652      shape[0].x =   0;  shape[0].y = im;
 
 3653      shape[1].x =  im;  shape[1].y = -im;
 
 3654      shape[2].x = -im;  shape[2].y = -im;
 
 3655      shape[3].x =   0;  shape[3].y = im;
 
 3660      shape[0].x =-imx;  shape[0].y = 0;
 
 3661      shape[1].x =   0;  shape[1].y = -im;
 
 3662      shape[2].x = imx;  shape[2].y = 0;
 
 3663      shape[3].x =   0;  shape[3].y = im;
 
 3664      shape[4].x =-imx;  shape[4].y = 0;
 
 3669      shape[0].x = -im;  shape[0].y =-imx;
 
 3670      shape[1].x =-imx;  shape[1].y =-imx;
 
 3671      shape[2].x =-imx;  shape[2].y = -im;
 
 3672      shape[3].x = imx;  shape[3].y = -im;
 
 3673      shape[4].x = imx;  shape[4].y =-imx;
 
 3674      shape[5].x =  im;  shape[5].y =-imx;
 
 3675      shape[6].x =  im;  shape[6].y = imx;
 
 3676      shape[7].x = imx;  shape[7].y = imx;
 
 3677      shape[8].x = imx;  shape[8].y = im;
 
 3678      shape[9].x =-imx;  shape[9].y = im;
 
 3679      shape[10].x=-imx;  shape[10].y= imx;
 
 3680      shape[11].x= -im;  shape[11].y= imx;
 
 3681      shape[12].x= -im;  shape[12].y=-imx;
 
 3685      shape[0].x = -im;  shape[0].y = -im;
 
 3686      shape[1].x =  im;  shape[1].y = -im;
 
 3687      shape[2].x =  im;  shape[2].y = im;
 
 3688      shape[3].x = -im;  shape[3].y = im;
 
 3689      shape[4].x = -im;  shape[4].y = -im;
 
 3690      shape[5].x =  im;  shape[5].y = im;
 
 3691      shape[6].x = -im;  shape[6].y = im;
 
 3692      shape[7].x =  im;  shape[7].y = -im;
 
 3696      shape[0].x =-im;  shape[0].y = 0;
 
 3697      shape[1].x =  0;  shape[1].y = -im;
 
 3698      shape[2].x = im;  shape[2].y = 0;
 
 3699      shape[3].x =  0;  shape[3].y = im;
 
 3700      shape[4].x =-im;  shape[4].y = 0;
 
 3701      shape[5].x = im;  shape[5].y = 0;
 
 3702      shape[6].x =  0;  shape[6].y = im;
 
 3703      shape[7].x =  0;  shape[7].y =-im;
 
 3708      shape[0].x =   0;  shape[0].y =   0;
 
 3709      shape[1].x =-im2;  shape[1].y =  im;
 
 3710      shape[2].x = -im;  shape[2].y =   0;
 
 3711      shape[3].x =   0;  shape[3].y =   0;
 
 3712      shape[4].x =-im2;  shape[4].y = -im;
 
 3713      shape[5].x = im2;  shape[5].y = -im;
 
 3714      shape[6].x =   0;  shape[6].y =   0;
 
 3715      shape[7].x =  im;  shape[7].y =   0;
 
 3716      shape[8].x = im2;  shape[8].y =  im;
 
 3717      shape[9].x =   0;  shape[9].y =   0;
 
 3722      shape[0].x = -im;  shape[0].y = 0;
 
 3723      shape[1].x = -im;  shape[1].y =-im2;
 
 3724      shape[2].x =-im2;  shape[2].y =-im;
 
 3725      shape[3].x = im2;  shape[3].y = -im;
 
 3726      shape[4].x =  im;  shape[4].y =-im2;
 
 3727      shape[5].x =  im;  shape[5].y = im2;
 
 3728      shape[6].x = im2;  shape[6].y = im;
 
 3729      shape[7].x =-im2;  shape[7].y = im;
 
 3730      shape[8].x = -im;  shape[8].y = im2;
 
 3731      shape[9].x = -im;  shape[9].y = 0;
 
 3732      shape[10].x = im;  shape[10].y = 0;
 
 3733      shape[11].x =  0;  shape[11].y = 0;
 
 3734      shape[12].x =  0;  shape[12].y = -im;
 
 3735      shape[13].x =  0;  shape[13].y = im;
 
 3736      shape[14].x =  0;  shape[14].y = 0;
 
 3741      shape[0].x =   0;  shape[0].y =   0;
 
 3742      shape[1].x =-im2;  shape[1].y =  im;
 
 3743      shape[2].x = -im;  shape[2].y =   0;
 
 3744      shape[3].x =   0;  shape[3].y =   0;
 
 3745      shape[4].x =-im2;  shape[4].y = -im;
 
 3746      shape[5].x = im2;  shape[5].y = -im;
 
 3747      shape[6].x =   0;  shape[6].y =   0;
 
 3748      shape[7].x =  im;  shape[7].y =   0;
 
 3749      shape[8].x = im2;  shape[8].y =  im;
 
 3754      shape[0].x =     0;  shape[0].y =    0;
 
 3755      shape[1].x =   im2;  shape[1].y =   im;
 
 3756      shape[2].x =    im;  shape[2].y =  im2;
 
 3757      shape[3].x =     0;  shape[3].y =    0;
 
 3758      shape[4].x =    im;  shape[4].y = -im2;
 
 3759      shape[5].x =   im2;  shape[5].y =  -im;
 
 3760      shape[6].x =     0;  shape[6].y =    0;
 
 3761      shape[7].x =  -im2;  shape[7].y =  -im;
 
 3762      shape[8].x =   -im;  shape[8].y = -im2;
 
 3763      shape[9].x =     0;  shape[9].y =    0;
 
 3764      shape[10].x =   -im;  shape[10].y =  im2;
 
 3765      shape[11].x =  -im2;  shape[11].y =   im;
 
 3766      shape[12].x =     0;  shape[12].y =  0;
 
 3771      shape[0].x =     0;  shape[0].y =    0;
 
 3772      shape[1].x =   im2;  shape[1].y =   im;
 
 3773      shape[2].x =    im;  shape[2].y =  im2;
 
 3774      shape[3].x =     0;  shape[3].y =    0;
 
 3775      shape[4].x =    im;  shape[4].y = -im2;
 
 3776      shape[5].x =   im2;  shape[5].y =  -im;
 
 3777      shape[6].x =     0;  shape[6].y =    0;
 
 3778      shape[7].x =  -im2;  shape[7].y =  -im;
 
 3779      shape[8].x =   -im;  shape[8].y = -im2;
 
 3780      shape[9].x =     0;  shape[9].y =    0;
 
 3781      shape[10].x =   -im;  shape[10].y =  im2;
 
 3782      shape[11].x =  -im2;  shape[11].y =   im;
 
 3783      shape[12].x =     0;  shape[12].y =  0;
 
 3788      shape[0].x=     0;   shape[0].y= im;
 
 3789      shape[1].x=  -imx;   shape[1].y= imx;
 
 3790      shape[2].x  = -im;   shape[2].y = 0;
 
 3791      shape[3].x = -imx;   shape[3].y = -imx;
 
 3792      shape[4].x =    0;   shape[4].y = -im;
 
 3793      shape[5].x =  imx;   shape[5].y = -imx;
 
 3794      shape[6].x =   im;   shape[6].y = 0;
 
 3795      shape[7].x=   imx;   shape[7].y= imx;
 
 3796      shape[8].x=     0;   shape[8].y= im;
 
 3801      shape[0].x =    0;   shape[0].y =   im;
 
 3802      shape[1].x = -imx;   shape[1].y =  imx;
 
 3803      shape[2].x =  -im;   shape[2].y =    0;
 
 3804      shape[3].x = -imx;   shape[3].y = -imx;
 
 3805      shape[4].x =    0;   shape[4].y =  -im;
 
 3806      shape[5].x =  imx;   shape[5].y = -imx;
 
 3807      shape[6].x =   im;   shape[6].y =    0;
 
 3808      shape[7].x =  imx;   shape[7].y =  imx;
 
 3809      shape[8].x =    0;   shape[8].y =   im;
 
 3814      shape[0].x =    0;  shape[0].y =    0;
 
 3815      shape[1].x =  im2;  shape[1].y =   im;
 
 3816      shape[2].x = -im2;  shape[2].y =   im;
 
 3817      shape[3].x =  im2;  shape[3].y =  -im;
 
 3818      shape[4].x = -im2;  shape[4].y =  -im;
 
 3819      shape[5].x =    0;  shape[5].y =    0;
 
 3820      shape[6].x =   im;  shape[6].y =  im2;
 
 3821      shape[7].x =   im;  shape[7].y = -im2;
 
 3822      shape[8].x =  -im;  shape[8].y =  im2;
 
 3823      shape[9].x =  -im;  shape[9].y = -im2;
 
 3824      shape[10].x =    0;  shape[10].y =    0;
 
 3830      shape[0].x =  im0;  shape[0].y =  im0;
 
 3831      shape[1].x =  im2;  shape[1].y =   im;
 
 3832      shape[2].x = -im2;  shape[2].y =   im;
 
 3833      shape[3].x = -im0;  shape[3].y =  im0;
 
 3834      shape[4].x =  -im;  shape[4].y =  im2;
 
 3835      shape[5].x =  -im;  shape[5].y = -im2;
 
 3836      shape[6].x = -im0;  shape[6].y = -im0;
 
 3837      shape[7].x = -im2;  shape[7].y =  -im;
 
 3838      shape[8].x =  im2;  shape[8].y =  -im;
 
 3839      shape[9].x =  im0;  shape[9].y = -im0;
 
 3840      shape[10].x =   im;  shape[10].y = -im2;
 
 3841      shape[11].x =   im;  shape[11].y =  im2;
 
 3842      shape[12].x =  im0;  shape[12].y =  im0;
 
 3847      shape[0].x =    0;  shape[0].y =  im2;
 
 3848      shape[1].x = -im2;  shape[1].y =   im;
 
 3849      shape[2].x =  -im;  shape[2].y =  im2;
 
 3850      shape[3].x = -im2;  shape[3].y =    0;
 
 3851      shape[4].x =  -im;  shape[4].y = -im2;
 
 3852      shape[5].x = -im2;  shape[5].y =  -im;
 
 3853      shape[6].x =    0;  shape[6].y = -im2;
 
 3854      shape[7].x =  im2;  shape[7].y =  -im;
 
 3855      shape[8].x =   im;  shape[8].y = -im2;
 
 3856      shape[9].x =  im2;  shape[9].y =    0;
 
 3857      shape[10].x =  im;  shape[10].y = im2;
 
 3858      shape[11].x = im2;  shape[11].y =  im;
 
 3859      shape[12].x =   0;  shape[12].y = im2;
 
 3864      shape[0].x =    0;  shape[0].y =  im2;
 
 3865      shape[1].x = -im2;  shape[1].y =   im;
 
 3866      shape[2].x =  -im;  shape[2].y =  im2;
 
 3867      shape[3].x = -im2;  shape[3].y =    0;
 
 3868      shape[4].x =  -im;  shape[4].y = -im2;
 
 3869      shape[5].x = -im2;  shape[5].y =  -im;
 
 3870      shape[6].x =    0;  shape[6].y = -im2;
 
 3871      shape[7].x =  im2;  shape[7].y =  -im;
 
 3872      shape[8].x =   im;  shape[8].y = -im2;
 
 3873      shape[9].x =  im2;  shape[9].y =    0;
 
 3874      shape[10].x =  im;  shape[10].y = im2;
 
 3875      shape[11].x = im2;  shape[11].y =  im;
 
 3876      shape[12].x =   0;  shape[12].y = im2;
 
 3881      shape[0].x =    0;  shape[0].y =  im2*1.005;
 
 3882      shape[1].x = -im2;  shape[1].y =   im;
 
 3883      shape[2].x =  -im;  shape[2].y =  im2;
 
 3884      shape[3].x = -im2;  shape[3].y =    0;
 
 3885      shape[4].x =  -im;  shape[4].y = -im2;
 
 3886      shape[5].x = -im2;  shape[5].y =  -im;
 
 3887      shape[6].x =    0;  shape[6].y = -im2;
 
 3888      shape[7].x =  im2;  shape[7].y =  -im;
 
 3889      shape[8].x =   im;  shape[8].y = -im2;
 
 3890      shape[9].x =  im2;  shape[9].y =    0;
 
 3891      shape[10].x =  im;  shape[10].y = im2;
 
 3892      shape[11].x = im2;  shape[11].y =  im;
 
 3893      shape[12].x =   0;  shape[12].y = im2*0.995;
 
 3894      shape[13].x =  im2*0.995;  shape[13].y =    0;
 
 3895      shape[14].x =    0;  shape[14].y = -im2*0.995;
 
 3896      shape[15].x = -im2*0.995;  shape[15].y =    0;
 
 3897      shape[16].x =    0;  shape[16].y =  im2*0.995;
 
 3902      shape[0].x =-imx;  shape[0].y =-imx*1.005;
 
 3903      shape[1].x =-imx;  shape[1].y = -im;
 
 3904      shape[2].x = imx;  shape[2].y = -im;
 
 3905      shape[3].x = imx;  shape[3].y =-imx;
 
 3906      shape[4].x =  im;  shape[4].y =-imx;
 
 3907      shape[5].x =  im;  shape[5].y = imx;
 
 3908      shape[6].x = imx;  shape[6].y = imx;
 
 3909      shape[7].x = imx;  shape[7].y = im;
 
 3910      shape[8].x =-imx;  shape[8].y = im;
 
 3911      shape[9].x =-imx;  shape[9].y = imx;
 
 3912      shape[10].x = -im;  shape[10].y = imx;
 
 3913      shape[11].x = -im;  shape[11].y =-imx;
 
 3914      shape[12].x =-imx;  shape[12].y =-imx*0.995;
 
 3915      shape[13].x =-imx;  shape[13].y = imx;
 
 3916      shape[14].x = imx;  shape[14].y = imx;
 
 3917      shape[15].x = imx;  shape[15].y =-imx;
 
 3918      shape[16].x =-imx;  shape[16].y =-imx*1.005;
 
 3936   Int_t depth = gdk_visual_get_best_depth();
 
 3938   if (depth <= 8) 
return;
 
 3939   if (percent == 0) 
return;
 
 3942   ULong_t *orgcolors = 0, *tmpc = 0;
 
 3943   Int_t maxcolors = 0, ncolors, ntmpc = 0;
 
 3946   if (
gCws->new_colors) {
 
 3947      tmpc = 
gCws->new_colors;
 
 3948      ntmpc = 
gCws->ncolors;
 
 3951   GdkImage *image = gdk_image_get((GdkDrawable*)
gCws->drawing, 0, 0,
 
 3956   for (
y = 0; 
y < (int) 
gCws->height; 
y++) {
 
 3957      for (
x = 0; 
x < (int) 
gCws->width; 
x++) {
 
 3959         CollectImageColors(pixel, orgcolors, ncolors, maxcolors);
 
 3963      gdk_image_unref(image);
 
 3964      ::operator 
delete(orgcolors);
 
 3971   for (
y = 0; 
y < (int) 
gCws->height; 
y++) {
 
 3972      for (
x = 0; 
x < (int) 
gCws->width; 
x++) {
 
 3980   gdk_draw_image(
gCws->drawing, 
gGCpxmp, (GdkImage *)image,
 
 3981                  0, 0, 0, 0, 
gCws->width, 
gCws->height);
 
 3986      gdk_colors_free((GdkColormap *)
fColormap, tmpc, ntmpc, 0);
 
 3989   gdk_image_unref(image);
 
 3990   ::operator 
delete(orgcolors);
 
 4000   if (ncolors <= 0) 
return;
 
 4001   GdkColor *xcol = 
new GdkColor[ncolors];
 
 4004   for (i = 0; i < ncolors; i++) {
 
 4005      xcol[i].pixel = orgcolors[i];
 
 4006      xcol[i].red = xcol[i].green = xcol[i].blue = 0;
 
 4009   GdkColorContext *cc;
 
 4010   cc = gdk_color_context_new(gdk_visual_get_system(), (GdkColormap *)
fColormap);
 
 4011   gdk_color_context_query_colors(cc, xcol, ncolors);
 
 4012   gdk_color_context_free(cc);
 
 4017   for (i = 0; i < ncolors; i++) {
 
 4018      val = xcol[i].red + add;
 
 4023      val = xcol[i].green + add;
 
 4028      val = xcol[i].blue + add;
 
 4034      ret = gdk_color_alloc((GdkColormap *)
fColormap, &xcol[i]);
 
 4038                 "failed to allocate color %hd, %hd, %hd", xcol[i].red,
 
 4039                 xcol[i].green, xcol[i].blue);
 
 4045   gCws->ncolors = ncolors;
 
 4047   for (i = 0; i < ncolors; i++) {
 
 4048      gCws->new_colors[i] = xcol[i].pixel;
 
 4059   for (
int i = 0; i < ncolors; i++) {
 
 4060      if (pixel == orgcolors[i]) 
return i;
 
 4062   Error(
"FindColor", 
"did not find color, should never happen!");
 
 4080      xcol.pixel = RGB(xcol.red, xcol.green, xcol.blue);
 
 4085         if (col.
color.red  == xcol.red && col.
color.green == xcol.green &&
 
 4086             col.
color.blue == xcol.blue)
 
 4089         gdk_colormap_free_colors((GdkColormap *) 
fColormap,
 
 4090                                  (GdkColor *)&col, 1);
 
 4096         col.
color.pixel   = xcol.pixel;
 
 4097         col.
color.red     = xcol.red;
 
 4098         col.
color.green   = xcol.green;
 
 4099         col.
color.blue    = xcol.blue;
 
 4112   if (talign==current) 
return;
 
 4115   Int_t txalh = talign / 10;
 
 4116   Int_t txalv = talign % 10;
 
 4171   static Int_t current = 0;
 
 4173   if ((cindex < 0) || (
Int_t(cindex)==current)) 
return;
 
 4178   gdk_gc_get_values(
gGCtext, &values);
 
 4179   gdk_gc_set_foreground(
gGCinvt, &values.background);
 
 4180   gdk_gc_set_background(
gGCinvt, &values.foreground);
 
 4182   current = 
Int_t(cindex);
 
 4223      dw = (HWND) GDK_DRAWABLE_XID((GdkWindow *)
gCws->window);
 
 4225      dw = (HWND) GDK_DRAWABLE_XID((GdkWindow *)
id);
 
 4227   tmp.x = ix > 0 ? ix : cpt.x;
 
 4228   tmp.y = iy > 0 ? iy : cpt.y;
 
 4229   ClientToScreen(dw, &tmp);
 
 4230   SetCursorPos(tmp.x, tmp.y);
 
 4266                  void (*get_scline) (
int, 
int, 
Byte_t *),
 
 4270   int GIFinfo(
Byte_t * GIFarr, 
int *Width, 
int *Height, 
int *Ncols);
 
 4279   for (
int i = 0; i < 
width; i++) {
 
 4305   Int_t maxcolors = 0, ncolors;
 
 4309   for (
x = 0; 
x < (int) 
gCws->width; 
x++) {
 
 4310      for (
y = 0; 
y < (int) 
gCws->height; 
y++) {
 
 4312         CollectImageColors(pixel, orgcolors, ncolors, maxcolors);
 
 4317   GdkColor *xcol = 
new GdkColor[ncolors];
 
 4320   for (i = 0; i < ncolors; i++) {
 
 4321      xcol[i].pixel = orgcolors[i];
 
 4323      xcol[i].red = GetRValue(xcol[i].pixel);
 
 4324      xcol[i].green = GetGValue(xcol[i].pixel);
 
 4325      xcol[i].blue = GetBValue(xcol[i].pixel);
 
 4328   GdkColorContext *cc;
 
 4329   cc =  gdk_color_context_new(gdk_visual_get_system(), (GdkColormap *)
fColormap);
 
 4330   gdk_color_context_query_colors(cc, xcol, ncolors);
 
 4331   gdk_color_context_free(cc);
 
 4339   for (i = 0; i < ncolors; i++) {
 
 4341      G[i] = xcol[i].green;
 
 4342      B[i] = xcol[i].blue;
 
 4347   for (
x = 0; 
x < (int) 
gCws->width; 
x++) {
 
 4348      for (
y = 0; 
y < (int) 
gCws->height; 
y++) {
 
 4357   ::operator 
delete(orgcolors);
 
 4365   Byte_t scline[2000], 
r[256], 
b[256], 
g[256];
 
 4367   Int_t ncol, maxcol, i;
 
 4373   gGifImage = gdk_image_get((GdkDrawable*)
gCws->drawing, 0, 0,
 
 4381            "can not create GIF of image containing more than 256 colors");
 
 4389   for (i = 0; i < ncol; i++) {
 
 4390      if (maxcol < 
R[i]) maxcol = 
R[i];
 
 4391      if (maxcol < 
G[i]) maxcol = 
G[i];
 
 4392      if (maxcol < 
B[i]) maxcol = 
B[i];
 
 4398      for (i = 0; i < ncol; i++) {
 
 4399         r[i] = 
R[i] * 255 / maxcol;
 
 4400         g[i] = 
G[i] * 255 / maxcol;
 
 4401         b[i] = 
B[i] * 255 / maxcol;
 
 4413      Error(
"WriteGIF",
"cannot write file: %s",
name);
 
 4430   const int MAX_SEGMENT = 20;
 
 4431   int i, 
n, 
x, 
y, xcur, 
x1, 
x2, y1, y2;
 
 4432   unsigned char *jimg, *jbase, icol;
 
 4434   GdkSegment lines[256][MAX_SEGMENT];
 
 4438      id = (GdkDrawable*)wid;
 
 4443   for (i = 0; i < 256; i++) nlines[i] = 0;
 
 4446   y1 = y0 + ny - 
ymax - 1;
 
 4448   y2 = y0 + ny - 
ymin - 1;
 
 4449   jbase = image + (
ymin - 1) * nx + 
xmin;
 
 4451   for (
y = y2; 
y >= y1; 
y--) {
 
 4454      for (jimg = jbase, icol = *jimg++, 
x = 
x1 + 1; 
x <= 
x2; jimg++, 
x++) {
 
 4455         if (icol != *jimg) {
 
 4456            if (icol != itran) {
 
 4458               lines[icol][
n].x1 = xcur;
 
 4459               lines[icol][
n].y1 = 
y;
 
 4460               lines[icol][
n].x2 = 
x - 1;
 
 4461               lines[icol][
n].y2 = 
y;
 
 4462               if (nlines[icol] == MAX_SEGMENT) {
 
 4465                                       (GdkSegment *) &lines[icol][0], MAX_SEGMENT);
 
 4473      if (icol != itran) {
 
 4475         lines[icol][
n].x1 = xcur;
 
 4476         lines[icol][
n].y1 = 
y;
 
 4477         lines[icol][
n].x2 = 
x - 1;
 
 4478         lines[icol][
n].y2 = 
y;
 
 4479         if (nlines[icol] == MAX_SEGMENT) {
 
 4482                              (GdkSegment *)&lines[icol][0], MAX_SEGMENT);
 
 4488   for (i = 0; i < 256; i++) {
 
 4489      if (nlines[i] != 0) {
 
 4492                           (GdkSegment *)&lines[icol][0], nlines[i]);
 
 4505   unsigned char *GIFarr, *PIXarr, 
R[256], 
G[256], 
B[256], *j1, *j2, icol;
 
 4506   int i, j, k, 
width, height, ncolor, irep, offset;
 
 4510   fd = fopen(
file, 
"r+b");
 
 4512      Error(
"ReadGIF", 
"unable to open GIF file");
 
 4517   filesize = 
Seek_t(ftell(fd));
 
 4520   if (!(GIFarr = (
unsigned char *) 
calloc(filesize + 256, 1))) {
 
 4522      Error(
"ReadGIF", 
"unable to allocate array for gif");
 
 4526   if (fread(GIFarr, filesize, 1, fd) != 1) {
 
 4528      Error(
"ReadGIF", 
"GIF file read failed");
 
 4539   if (!(PIXarr = (
unsigned char *) 
calloc((
width * height), 1))) {
 
 4540      Error(
"ReadGIF", 
"unable to allocate array for image");
 
 4552   for (i = 0; i < ncolor; i++) {
 
 4562   for (i = 1; i <= height / 2; i++) {
 
 4563      j1 = PIXarr + (i - 1) * 
width;
 
 4564      j2 = PIXarr + (height - i) * 
width;
 
 4565      for (k = 0; k < 
width; k++) {
 
 4573   PutImage(offset, -1, x0, y0, 
width, height, 0, 0, 
width-1, height-1, PIXarr, pic);
 
 4575   if (pic) 
return pic;
 
 4588   gdk_window_show((GdkWindow *)
id);
 
 4589   if ((GDK_DRAWABLE_TYPE((GdkWindow *)
id) != GDK_WINDOW_TEMP) &&
 
 4591      HWND window = (HWND)GDK_DRAWABLE_XID((GdkWindow *)
id);
 
 4592      ::SetForegroundWindow(window);
 
 4603   EnumChildWindows((HWND)GDK_DRAWABLE_XID((GdkWindow *)
id),
 
 4604                    EnumChildProc, (LPARAM) NULL);
 
 4614   HWND hwnd = ::GetForegroundWindow();
 
 4615   HWND window = (HWND)GDK_DRAWABLE_XID((GdkWindow *)
id);
 
 4616   gdk_window_show((GdkWindow *)
id);
 
 4617   if (GDK_DRAWABLE_TYPE((GdkWindow *)
id) != GDK_WINDOW_TEMP) {
 
 4618      ::BringWindowToTop(window);
 
 4619      if (GDK_DRAWABLE_TYPE((GdkWindow *)
id) != GDK_WINDOW_CHILD)
 
 4620         ::SetForegroundWindow(window);
 
 4626      HWND fore = ::GetForegroundWindow();
 
 4627      ::GetWindowRect(fore, &r2);
 
 4628      if (!::IntersectRect(&r3, &r2, &r1)) {
 
 4641   gdk_window_hide((GdkWindow *) 
id);
 
 4653   gdk_window_hide((GdkWindow *) 
id);
 
 4654   gdk_window_destroy((GdkDrawable *) 
id, 
kTRUE);
 
 4664   gdk_window_destroy((GdkDrawable *) 
id, 
kFALSE);
 
 4674   HWND window = (HWND)GDK_DRAWABLE_XID((GdkWindow *)
id);
 
 4675   if (GDK_DRAWABLE_TYPE((GdkWindow *)
id) == GDK_WINDOW_TEMP) {
 
 4676       ::SetWindowPos(window, HWND_TOPMOST,  0, 0, 0, 0,
 
 4677                      SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
 
 4680      ::BringWindowToTop(window);
 
 4681      if (GDK_DRAWABLE_TYPE((GdkWindow *)
id) != GDK_WINDOW_CHILD)
 
 4682         ::SetForegroundWindow(window);
 
 4693   HWND window = (HWND)GDK_DRAWABLE_XID((GdkWindow *)
id);
 
 4694   ::SetWindowPos(window, HWND_BOTTOM, 0, 0, 0, 0,
 
 4695                  SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
 
 4705   gdk_window_move((GdkDrawable *) 
id, 
x, 
y);
 
 4716   gdk_window_move_resize((GdkWindow *) 
id, 
x, 
y, w, 
h);
 
 4729   gdk_window_resize((GdkWindow *) 
id, w, 
h);
 
 4739   gdk_window_lower((GdkWindow *) 
id);
 
 4751   gdk_window_reparent((GdkWindow *)
id, (GdkWindow *)pid, 
x, 
y);
 
 4763   back.red = GetRValue(color);
 
 4764   back.green = GetGValue(color);
 
 4765   back.blue = GetBValue(color);
 
 4767   gdk_window_set_background((GdkWindow *) 
id, &back);
 
 4777   gdk_window_set_back_pixmap((GdkWindow *) 
id, (GdkPixmap *) pxm, 0);
 
 4789   GdkWindowAttr xattr;
 
 4791   GdkColor background_color;
 
 4796      xattr.window_type = GDK_WINDOW_CHILD;
 
 4798         xattr.window_type = GDK_WINDOW_TOPLEVEL;
 
 4801         xattr.window_type = GDK_WINDOW_DIALOG;
 
 4804         xattr.window_type = GDK_WINDOW_TEMP;
 
 4806      newWin = gdk_window_new((GdkWindow *) parent, &xattr, xmask);
 
 4810      xattr.wclass = GDK_INPUT_OUTPUT;
 
 4811      xattr.event_mask = 0
L;    
 
 4812      xattr.event_mask |= GDK_EXPOSURE_MASK | GDK_STRUCTURE_MASK |
 
 4813          GDK_PROPERTY_CHANGE_MASK;
 
 4825      xattr.colormap = gdk_colormap_get_system();
 
 4826      xattr.cursor = NULL;
 
 4827      xattr.override_redirect = 
TRUE;
 
 4828      if ((xattr.y > 0) && (xattr.x > 0)) {
 
 4829         xmask = GDK_WA_X | GDK_WA_Y | GDK_WA_COLORMAP |
 
 4830             GDK_WA_WMCLASS | GDK_WA_NOREDIR;
 
 4832         xmask = GDK_WA_COLORMAP | GDK_WA_WMCLASS | GDK_WA_NOREDIR;
 
 4834      if (visual != NULL) {
 
 4835         xattr.visual = (GdkVisual *) visual;
 
 4836         xmask |= GDK_WA_VISUAL;
 
 4838         xattr.visual = gdk_visual_get_system();
 
 4839         xmask |= GDK_WA_VISUAL;
 
 4841      xattr.window_type = GDK_WINDOW_CHILD;
 
 4843         xattr.window_type = GDK_WINDOW_TOPLEVEL;
 
 4846         xattr.window_type = GDK_WINDOW_DIALOG;
 
 4849         xattr.window_type = GDK_WINDOW_TEMP;
 
 4851      newWin = gdk_window_new((GdkWindow *) parent, &xattr, xmask);
 
 4852      gdk_window_set_events(newWin, (GdkEventMask) 0
L);
 
 4855      gdk_window_set_decorations(newWin,
 
 4856                                 (GdkWMDecoration) GDK_DECOR_BORDER);
 
 4861            gdk_window_set_back_pixmap(newWin, (GdkPixmap *) GDK_NONE, 0);
 
 4863            gdk_window_set_back_pixmap(newWin, (GdkPixmap *) GDK_NONE, 1);
 
 4865            gdk_window_set_back_pixmap(newWin,
 
 4866                                       (GdkPixmap *) attr->
 
 4867                                       fBackgroundPixmap, 0);
 
 4875         gdk_window_set_background(newWin, &background_color);
 
 4879      ::SetClassLong((HWND)GDK_DRAWABLE_XID(newWin), GCL_HCURSOR,
 
 4893         lxemask |= GDK_KEY_PRESS_MASK;
 
 4896         lxemask |= GDK_KEY_RELEASE_MASK;
 
 4899         lxemask |= GDK_BUTTON_PRESS_MASK;
 
 4902         lxemask |= GDK_BUTTON_RELEASE_MASK;
 
 4905         lxemask |= GDK_POINTER_MOTION_MASK;
 
 4908         lxemask |= GDK_BUTTON_MOTION_MASK;
 
 4911         lxemask |= GDK_EXPOSURE_MASK;
 
 4914         lxemask |= GDK_STRUCTURE_MASK;
 
 4917         lxemask |= GDK_ENTER_NOTIFY_MASK;
 
 4920         lxemask |= GDK_LEAVE_NOTIFY_MASK;
 
 4923         lxemask |= GDK_FOCUS_CHANGE_MASK;
 
 4925      xemask = (
UInt_t) lxemask;
 
 4928      if ((xemask & GDK_KEY_PRESS_MASK)) {
 
 4931      if ((xemask & GDK_KEY_RELEASE_MASK)) {
 
 4934      if ((xemask & GDK_BUTTON_PRESS_MASK)) {
 
 4937      if ((xemask & GDK_BUTTON_RELEASE_MASK)) {
 
 4940      if ((xemask & GDK_POINTER_MOTION_MASK)) {
 
 4943      if ((xemask & GDK_BUTTON_MOTION_MASK)) {
 
 4946      if ((xemask & GDK_EXPOSURE_MASK)) {
 
 4949      if ((xemask & GDK_STRUCTURE_MASK)) {
 
 4952      if ((xemask & GDK_ENTER_NOTIFY_MASK)) {
 
 4955      if ((xemask & GDK_LEAVE_NOTIFY_MASK)) {
 
 4958      if ((xemask & GDK_FOCUS_CHANGE_MASK)) {
 
 4969                                     GdkWindowAttr & xattr)
 
 4975      xmask |= GDK_WA_NOREDIR;
 
 4981      xattr.event_mask = xmsk;
 
 4984      xmask |= GDK_WA_COLORMAP;
 
 4985      xattr.colormap = (GdkColormap *) attr->
fColormap;
 
 4988      xmask |= GDK_WA_CURSOR;
 
 4990         xattr.cursor = (GdkCursor *) attr->
fCursor;
 
 4993   xattr.wclass = GDK_INPUT_OUTPUT;
 
 5009         xmask |= GDK_GC_FUNCTION;
 
 5012            xgval.function = GDK_CLEAR;
 
 5015            xgval.function = GDK_AND;
 
 5018            xgval.function = GDK_AND_REVERSE;
 
 5021            xgval.function = GDK_COPY;
 
 5024            xgval.function = GDK_AND_INVERT;
 
 5027            xgval.function = GDK_NOOP;
 
 5030            xgval.function = GDK_XOR;
 
 5033            xgval.function = GDK_OR;
 
 5036            xgval.function = GDK_EQUIV;
 
 5039            xgval.function = GDK_INVERT;
 
 5042            xgval.function = GDK_OR_REVERSE;
 
 5045            xgval.function = GDK_COPY_INVERT;
 
 5048            xgval.function = GDK_OR_INVERT;
 
 5051            xgval.function = GDK_NAND;
 
 5054            xgval.function = GDK_SET;
 
 5059         xmask |= GDK_GC_SUBWINDOW;
 
 5061            xgval.subwindow_mode = GDK_INCLUDE_INFERIORS;
 
 5063            xgval.subwindow_mode = GDK_CLIP_BY_CHILDREN;
 
 5067         xmask |= GDK_GC_FOREGROUND;
 
 5069         xgval.foreground.red = GetRValue(gval.
fForeground);
 
 5070         xgval.foreground.green = GetGValue(gval.
fForeground);
 
 5071         xgval.foreground.blue = GetBValue(gval.
fForeground);
 
 5074         xmask |= GDK_GC_BACKGROUND;
 
 5076         xgval.background.red = GetRValue(gval.
fBackground);
 
 5077         xgval.background.green = GetGValue(gval.
fBackground);
 
 5078         xgval.background.blue = GetBValue(gval.
fBackground);
 
 5081         xmask |= GDK_GC_LINE_WIDTH;
 
 5085         xmask |= GDK_GC_LINE_STYLE;
 
 5086         xgval.line_style = (GdkLineStyle) gval.
fLineStyle; 
 
 5089         xmask |= GDK_GC_CAP_STYLE;
 
 5090         xgval.cap_style = (GdkCapStyle) gval.
fCapStyle; 
 
 5093         xmask |= GDK_GC_JOIN_STYLE;
 
 5094         xgval.join_style = (GdkJoinStyle) gval.
fJoinStyle; 
 
 5097         xmask |= GDK_GC_FILL;
 
 5101         xmask |= GDK_GC_TILE;
 
 5102         xgval.tile = (GdkPixmap *) gval.
fTile;
 
 5105         xmask |= GDK_GC_STIPPLE;
 
 5106         xgval.stipple = (GdkPixmap *) gval.
fStipple;
 
 5109         xmask |= GDK_GC_TS_X_ORIGIN;
 
 5113         xmask |= GDK_GC_TS_Y_ORIGIN;
 
 5117         xmask |= GDK_GC_FONT;
 
 5118         xgval.font = (GdkFont *) gval.
fFont;
 
 5121         xmask |= GDK_GC_EXPOSURES;
 
 5125         xmask |= GDK_GC_CLIP_X_ORIGIN;
 
 5129         xmask |= GDK_GC_CLIP_Y_ORIGIN;
 
 5133         xmask |= GDK_GC_CLIP_MASK;
 
 5134         xgval.clip_mask = (GdkPixmap *) gval.
fClipMask;
 
 5140      if ((xmask & GDK_GC_FUNCTION)) {
 
 5143         switch (xgval.function) {
 
 5150         case GDK_AND_REVERSE:
 
 5156         case GDK_AND_INVERT:
 
 5174         case GDK_OR_REVERSE:
 
 5177         case GDK_COPY_INVERT:
 
 5191      if (xmask & GDK_GC_SUBWINDOW) {
 
 5193         if (xgval.subwindow_mode == GDK_INCLUDE_INFERIORS)
 
 5198      if ((xmask & GDK_GC_FOREGROUND)) {
 
 5202      if ((xmask & GDK_GC_BACKGROUND)) {
 
 5206      if ((xmask & GDK_GC_LINE_WIDTH)) {
 
 5210      if ((xmask & GDK_GC_LINE_STYLE)) {
 
 5214      if ((xmask & GDK_GC_CAP_STYLE)) {
 
 5218      if ((xmask & GDK_GC_JOIN_STYLE)) {
 
 5222      if ((xmask & GDK_GC_FILL)) {
 
 5226      if ((xmask & GDK_GC_TILE)) {
 
 5230      if ((xmask & GDK_GC_STIPPLE)) {
 
 5234      if ((xmask & GDK_GC_TS_X_ORIGIN)) {
 
 5238      if ((xmask & GDK_GC_TS_Y_ORIGIN)) {
 
 5242      if ((xmask & GDK_GC_FONT)) {
 
 5246      if ((xmask & GDK_GC_EXPOSURES)) {
 
 5250      if ((xmask & GDK_GC_CLIP_X_ORIGIN)) {
 
 5254      if ((xmask & GDK_GC_CLIP_Y_ORIGIN)) {
 
 5258      if ((xmask & GDK_GC_CLIP_MASK)) {
 
 5273   RECT rcClient, rcWind;
 
 5274   ::GetClientRect((HWND)GDK_DRAWABLE_XID((GdkWindow *) 
id), &rcClient);
 
 5275   ::GetWindowRect((HWND)GDK_DRAWABLE_XID((GdkWindow *) 
id), &rcWind);
 
 5277   gdk_window_get_geometry((GdkWindow *) 
id, &attr.
fX, &attr.
fY,
 
 5279   attr.
fX = ((rcWind.right - rcWind.left) - rcClient.right) / 2;
 
 5280   attr.
fY = ((rcWind.bottom - rcWind.top) - rcClient.bottom) - attr.
fX;
 
 5285   attr.
fVisual = gdk_window_get_visual((GdkWindow *) 
id);
 
 5292   if (!gdk_window_is_visible((GdkWindow *) 
id)) {
 
 5294   } 
else if (!gdk_window_is_viewable((GdkWindow *) 
id)) {
 
 5300   UInt_t tmp_mask = (
UInt_t)gdk_window_get_events((GdkWindow *) 
id);
 
 5320   return gdk_visual_get_best_depth();
 
 5330   GdkAtom 
a = gdk_atom_intern((
const gchar *) atom_name, only_if_exist);
 
 5332   if (
a == None) 
return kNone;
 
 5342   return (
Window_t) GDK_ROOT_PARENT();
 
 5352   return (
Window_t)gdk_window_get_parent((GdkWindow *) 
id);
 
 5362   char  family[100], weight[32], slant[32], fontname[256];
 
 5363   Int_t n1, pixel, numfields;
 
 5365   numfields = sscanf(font_name, 
"%s -%d%n", family, &pixel, &n1);
 
 5366   if (numfields == 2) {
 
 5367      sprintf(weight,
"medium");
 
 5368      if (strstr(font_name, 
"bold"))
 
 5369         sprintf(weight,
"bold");
 
 5371      if (strstr(font_name, 
"italic"))
 
 5373      sprintf(fontname, 
"-*-%s-%s-%s-*-*-%d-*-*-*-*-*-iso8859-1",
 
 5374              family, weight, slant, pixel);
 
 5377      sprintf(fontname, 
"%s", font_name);
 
 5387      return (
FontH_t)gdk_font_ref((GdkFont *) fs);
 
 5397   gdk_font_unref((GdkFont *) fs);
 
 5413   xgval.subwindow_mode = GDK_CLIP_BY_CHILDREN; 
 
 5415   GdkGC *gc = gdk_gc_new_with_values((GdkDrawable *) 
id,
 
 5416                                      &xgval, (GdkGCValuesMask)xmask);
 
 5434      gdk_gc_set_foreground((GdkGC *) gc, &xgval.foreground);
 
 5437      gdk_gc_set_background((GdkGC *) gc, &xgval.background);
 
 5440      gdk_gc_set_font((GdkGC *) gc, xgval.font);
 
 5443      gdk_gc_set_function((GdkGC *) gc, xgval.function);
 
 5446      gdk_gc_set_fill((GdkGC *) gc, xgval.fill);
 
 5449      gdk_gc_set_tile((GdkGC *) gc, xgval.tile);
 
 5452      gdk_gc_set_stipple((GdkGC *) gc, xgval.stipple);
 
 5455      gdk_gc_set_ts_origin((GdkGC *) gc, xgval.ts_x_origin,
 
 5459      gdk_gc_set_clip_origin((GdkGC *) gc, xgval.clip_x_origin,
 
 5460                             xgval.clip_y_origin);
 
 5463      gdk_gc_set_clip_mask((GdkGC *) gc, xgval.clip_mask);
 
 5466      gdk_gc_set_exposures((GdkGC *) gc, xgval.graphics_exposures);
 
 5469      gdk_gc_set_values((GdkGC *) gc, &xgval, GDK_GC_LINE_WIDTH);
 
 5472      gdk_gc_set_values((GdkGC *) gc, &xgval, GDK_GC_LINE_STYLE);
 
 5475      gdk_gc_set_values((GdkGC *) gc, &xgval, GDK_GC_CAP_STYLE);
 
 5478      gdk_gc_set_values((GdkGC *) gc, &xgval, GDK_GC_JOIN_STYLE);
 
 5481      gdk_gc_set_subwindow((GdkGC *) gc, xgval.subwindow_mode);
 
 5503   gdk_gc_copy((GdkGC *) 
dest, (GdkGC *) 
org);
 
 5511   gdk_gc_unref((GdkGC *) gc);
 
 5528   GdkWindow *wid = (GdkWindow *)
id;
 
 5529   if (!
id) wid =  GDK_ROOT_PARENT();
 
 5531   return (
Pixmap_t) gdk_pixmap_new(wid, w, 
h, gdk_visual_get_best_depth());
 
 5543   GdkColor fore, back;
 
 5544   fore.pixel = forecolor;
 
 5545   fore.red = GetRValue(forecolor);
 
 5546   fore.green = GetGValue(forecolor);
 
 5547   fore.blue = GetBValue(forecolor);
 
 5549   back.pixel = backcolor;
 
 5550   back.red = GetRValue(backcolor);
 
 5551   back.green = GetGValue(backcolor);
 
 5552   back.blue = GetBValue(backcolor);
 
 5554   GdkWindow *wid = (GdkWindow *)
id;
 
 5555   if (!
id) wid =  GDK_ROOT_PARENT();
 
 5557   return (
Pixmap_t) gdk_pixmap_create_from_data(wid, (
char *) bitmap, 
width,
 
 5558                                                 height, depth, &fore, &back);
 
 5567   GdkWindow *wid = (GdkWindow *)
id;
 
 5568   if (!
id) wid =  GDK_ROOT_PARENT();
 
 5571                                                 (
char *)bitmap, 
width, height);
 
 5580   gdk_pixmap_unref((GdkPixmap *) pmap);
 
 5593   GdkBitmap *gdk_pixmap_mask;
 
 5594   if (strstr(filename, 
".xpm") || strstr(filename, 
".XPM")) {
 
 5595      GdkWindow *wid = (GdkWindow *)
id;
 
 5596      if (!
id) wid =  GDK_ROOT_PARENT();
 
 5598      pict = (
Pixmap_t) gdk_pixmap_create_from_xpm(wid, &gdk_pixmap_mask, 0,
 
 5600      pict_mask = (
Pixmap_t) gdk_pixmap_mask;
 
 5601   } 
else if (strstr(filename, 
".gif") || strstr(filename, 
".GIF")) {
 
 5602      pict = 
ReadGIF(0, 0, filename, 
id);
 
 5606   gdk_drawable_get_size((GdkPixmap *) pict, (
int *) &attr.
fWidth,
 
 5627   GdkBitmap *gdk_pixmap_mask;
 
 5628   GdkWindow *wid = (GdkWindow *)
id;
 
 5629   if (!
id) wid =  GDK_ROOT_PARENT();
 
 5631   pict = (
Pixmap_t) gdk_pixmap_create_from_xpm_d(wid, &gdk_pixmap_mask, 0,
 
 5633   pict_mask = (
Pixmap_t) gdk_pixmap_mask;
 
 5651   GdkPixmap *pxm = gdk_pixmap_create_from_xpm(NULL, NULL, NULL, filename);
 
 5654   if (pxm==NULL) 
return kFALSE;
 
 5656   HBITMAP hbm = (HBITMAP)GDK_DRAWABLE_XID(pxm);
 
 5659   ret = ::GetObject(hbm, 
sizeof(HBITMAP), (LPVOID)&bitmap);
 
 5660   ret_data = (
char ***)&bitmap.bmBits;
 
 5661   gdk_pixmap_unref(pxm);
 
 5683   for (i = 0; i < 
n; i++) {
 
 5684      dashes[i] = (gint8) dash_list[i];
 
 5686   for (i = 
n; i < 32; i++) {
 
 5687      dashes[i] = (gint8) 0;
 
 5690   gdk_gc_set_dashes((GdkGC *) gc, offset, dashes, 
n);
 
 5698   xcolor.pixel = color->
fPixel;
 
 5699   xcolor.red = color->
fRed;
 
 5700   xcolor.green = color->
fGreen;
 
 5701   xcolor.blue = color->
fBlue;
 
 5716   if (gdk_color_parse((
char *)cname, &xc)) {
 
 5717      color.
fPixel = xc.pixel = RGB(xc.red, xc.green, xc.blue);
 
 5718      color.
fRed = xc.red;
 
 5720      color.
fBlue = xc.blue;
 
 5736   xc.red = color.
fRed;
 
 5738   xc.blue = color.
fBlue;
 
 5740   status = gdk_colormap_alloc_color((GdkColormap *) cmap, &xc, 
FALSE, 
TRUE);
 
 5756   GdkColorContext *cc = gdk_color_context_new(gdk_visual_get_system(), 
fColormap);
 
 5757   gdk_color_context_query_color(cc, &xc);
 
 5758   gdk_color_context_free(cc);
 
 5761   color.
fRed = xc.red;
 
 5763   color.
fBlue = xc.blue;
 
 5789   tev.
fX = tev.
fY = 0;
 
 5800   TGWin32MainThread::LockMSG();
 
 5802   Bool_t r = gdk_check_typed_window_event((GdkWindow *) 
id, xev.type, &xev);
 
 5805   TGWin32MainThread::UnlockMSG();
 
 5815   if (!ev || !
id) 
return;
 
 5817   TGWin32MainThread::LockMSG();
 
 5820   gdk_event_put(&xev);
 
 5821   TGWin32MainThread::UnlockMSG();
 
 5831   TGWin32MainThread::LockMSG();
 
 5832   ret = (
Int_t)gdk_event_queue_find_first();
 
 5833   TGWin32MainThread::UnlockMSG();
 
 5845   TGWin32MainThread::LockMSG();
 
 5846   GdkEvent *xev = gdk_event_unqueue();
 
 5851      TGWin32MainThread::UnlockMSG();
 
 5855   gdk_event_free (xev);
 
 5856   TGWin32MainThread::UnlockMSG();
 
 5867         xstate = GDK_MODIFIER_MASK;
 
 5878   switch (event.type) {
 
 5879      case GDK_MOTION_NOTIFY:
 
 5880         event.motion.time = time;
 
 5881      case GDK_BUTTON_PRESS:
 
 5882      case GDK_2BUTTON_PRESS:
 
 5883      case GDK_3BUTTON_PRESS:
 
 5884      case GDK_BUTTON_RELEASE:
 
 5886         event.button.time = time;
 
 5888      case GDK_KEY_RELEASE:
 
 5889         event.key.time = time;
 
 5890      case GDK_ENTER_NOTIFY:
 
 5891      case GDK_LEAVE_NOTIFY:
 
 5892         event.crossing.time = time;
 
 5893      case GDK_PROPERTY_NOTIFY:
 
 5894         event.property.time = time;
 
 5895      case GDK_SELECTION_CLEAR:
 
 5896      case GDK_SELECTION_REQUEST:
 
 5897      case GDK_SELECTION_NOTIFY:
 
 5898         event.selection.time = time;
 
 5899      case GDK_PROXIMITY_IN:
 
 5900      case GDK_PROXIMITY_OUT:
 
 5901         event.proximity.time = time;
 
 5902      case GDK_DRAG_ENTER:
 
 5903      case GDK_DRAG_LEAVE:
 
 5904      case GDK_DRAG_MOTION:
 
 5905      case GDK_DRAG_STATUS:
 
 5906      case GDK_DROP_START:
 
 5907      case GDK_DROP_FINISHED:
 
 5908         event.dnd.time = time;
 
 5922      xev.type = GDK_NOTHING;
 
 5924         xev.type = GDK_KEY_PRESS;
 
 5926         xev.type = GDK_KEY_RELEASE;
 
 5928         xev.type = GDK_BUTTON_PRESS;
 
 5930         xev.type = GDK_BUTTON_RELEASE;
 
 5932         xev.type = GDK_MOTION_NOTIFY;
 
 5934         xev.type = GDK_ENTER_NOTIFY;
 
 5936         xev.type = GDK_LEAVE_NOTIFY;
 
 5938         xev.type = GDK_EXPOSE;
 
 5940         xev.type = GDK_CONFIGURE;
 
 5944         xev.type = GDK_UNMAP;
 
 5946         xev.type = GDK_DESTROY;
 
 5948         xev.type = GDK_CLIENT_EVENT;
 
 5950         xev.type = GDK_SELECTION_CLEAR;
 
 5952         xev.type = GDK_SELECTION_REQUEST;
 
 5954         xev.type = GDK_SELECTION_NOTIFY;
 
 5956      xev.any.type = xev.type;
 
 5959         xev.any.window = (GdkWindow *) ev.
fWindow;
 
 5962         xev.type = GDK_FOCUS_CHANGE;
 
 5963         xev.focus_change.type = xev.type;
 
 5964         xev.focus_change.window = (GdkWindow *) ev.
fWindow;
 
 5965         xev.focus_change.in = 
TRUE;
 
 5968         xev.type = GDK_FOCUS_CHANGE;
 
 5969         xev.focus_change.type = xev.type;
 
 5970         xev.focus_change.window = (GdkWindow *) ev.
fWindow;
 
 5971         xev.focus_change.in = 
FALSE;
 
 5974         xev.key.window = (GdkWindow *) ev.
fWindow;
 
 5975         xev.key.type = xev.type;
 
 5977         xev.key.keyval = ev.
fCode; 
 
 5980         xev.button.window = (GdkWindow *) ev.
fWindow;
 
 5981         xev.button.type = xev.type;
 
 5982         xev.button.x = ev.
fX;
 
 5983         xev.button.y = ev.
fY;
 
 5984         xev.button.x_root = ev.
fXRoot;
 
 5985         xev.button.y_root = ev.
fYRoot;
 
 5987         xev.button.button = ev.
fCode; 
 
 5990         xev.selection.window = (GdkWindow *) ev.
fUser[0];
 
 5991         xev.selection.requestor = (guint32) ev.
fUser[0];
 
 5992         xev.selection.selection = (GdkAtom) ev.
fUser[1];
 
 5993         xev.selection.target = (GdkAtom) ev.
fUser[2];
 
 5994         xev.selection.property = (GdkAtom) ev.
fUser[3];
 
 5995         xev.selection.type = xev.type;
 
 5999            xev.type = GDK_DELETE;
 
 6000            xev.any.type = xev.type;
 
 6001            xev.any.window = (GdkWindow *) ev.
fWindow;
 
 6003            xev.client.window = (GdkWindow *) ev.
fWindow;
 
 6004            xev.client.type = xev.type;
 
 6005            xev.client.message_type = (GdkAtom) ev.
fHandle;
 
 6006            xev.client.data_format = ev.
fFormat;
 
 6007            xev.client.data.l[0] = ev.
fUser[0];
 
 6008            if (
sizeof(ev.
fUser[0]) > 4) {
 
 6010                         xev.client.data.l[3]);
 
 6012                         xev.client.data.l[4]);
 
 6014               xev.client.data.l[1] = ev.
fUser[1];
 
 6015               xev.client.data.l[2] = ev.
fUser[2];
 
 6016               xev.client.data.l[3] = ev.
fUser[3];
 
 6017               xev.client.data.l[4] = ev.
fUser[4];
 
 6022         xev.motion.window = (GdkWindow *) ev.
fWindow;
 
 6023         xev.motion.type = xev.type;
 
 6024         xev.motion.x = ev.
fX;
 
 6025         xev.motion.y = ev.
fY;
 
 6026         xev.motion.x_root = ev.
fXRoot;
 
 6027         xev.motion.y_root = ev.
fYRoot;
 
 6030         xev.crossing.window = (GdkWindow *) ev.
fWindow;
 
 6031         xev.crossing.type = xev.type;
 
 6032         xev.crossing.x = ev.
fX;
 
 6033         xev.crossing.y = ev.
fY;
 
 6034         xev.crossing.x_root = ev.
fXRoot;
 
 6035         xev.crossing.y_root = ev.
fYRoot;
 
 6036         xev.crossing.mode = (GdkCrossingMode) ev.
fCode; 
 
 6040         xev.expose.window = (GdkWindow *) ev.
fWindow;
 
 6041         xev.expose.type = xev.type;
 
 6042         xev.expose.area.x = ev.
fX;
 
 6043         xev.expose.area.y = ev.
fY;
 
 6044         xev.expose.area.width = ev.
fWidth;  
 
 6045         xev.expose.area.height = ev.
fHeight;   
 
 6046         xev.expose.count = ev.
fCount; 
 
 6049         xev.configure.window = (GdkWindow *) ev.
fWindow;
 
 6050         xev.configure.type = xev.type;
 
 6051         xev.configure.x = ev.
fX;
 
 6052         xev.configure.y = ev.
fY;
 
 6053         xev.configure.width = ev.
fWidth;
 
 6054         xev.configure.height = ev.
fHeight;
 
 6057         xev.selection.window = (GdkWindow *) ev.
fWindow;
 
 6058         xev.selection.type = xev.type;
 
 6059         xev.selection.selection = ev.
fUser[0];
 
 6062         xev.selection.window = (GdkWindow *) ev.
fUser[0];
 
 6063         xev.selection.type = xev.type;
 
 6064         xev.selection.selection = ev.
fUser[1];
 
 6065         xev.selection.target = ev.
fUser[2];
 
 6066         xev.selection.property = ev.
fUser[3];
 
 6069         xev.any.window = (GdkWindow *) ev.
fWindow;
 
 6071      if (xev.type != GDK_CLIENT_EVENT)
 
 6076      if (xev.type == GDK_KEY_PRESS)
 
 6078      if (xev.type == GDK_KEY_RELEASE)
 
 6080      if (xev.type == GDK_BUTTON_PRESS)
 
 6082      if (xev.type == GDK_BUTTON_RELEASE)
 
 6084      if (xev.type == GDK_MOTION_NOTIFY)
 
 6086      if (xev.type == GDK_ENTER_NOTIFY)
 
 6088      if (xev.type == GDK_LEAVE_NOTIFY)
 
 6090      if (xev.type == GDK_EXPOSE)
 
 6092      if (xev.type == GDK_CONFIGURE)
 
 6094      if (xev.type == GDK_MAP)
 
 6096      if (xev.type == GDK_UNMAP)
 
 6098      if (xev.type == GDK_DESTROY)
 
 6100      if (xev.type == GDK_SELECTION_CLEAR)
 
 6102      if (xev.type == GDK_SELECTION_REQUEST)
 
 6104      if (xev.type == GDK_SELECTION_NOTIFY)
 
 6108      ev.
fTime = gdk_event_get_time((GdkEvent *)&xev);
 
 6111      if ((xev.type == GDK_MAP) || (xev.type == GDK_UNMAP)) {
 
 6114      if (xev.type == GDK_DELETE) {
 
 6120         if (
sizeof(ev.
fUser[0]) > 4) {
 
 6121            AsmLong(xev.client.data.l[1], xev.client.data.l[3],
 
 6123            AsmLong(xev.client.data.l[2], xev.client.data.l[4],
 
 6132      if (xev.type == GDK_DESTROY) {
 
 6137      if (xev.type == GDK_FOCUS_CHANGE) {
 
 6141         if (xev.focus_change.in == 
TRUE) {
 
 6150         ev.
fCode = xev.key.keyval;  
 
 6151         ev.
fUser[1] = xev.key.length;
 
 6152         if (xev.key.length > 0) ev.
fUser[2] = xev.key.string[0];
 
 6153         if (xev.key.length > 1) ev.
fUser[3] = xev.key.string[1];
 
 6154         if (xev.key.length > 2) ev.
fUser[4] = xev.key.string[2];
 
 6155         HWND tmpwin = (HWND) GetWindow((HWND) GDK_DRAWABLE_XID((GdkWindow *)xev.key.window), GW_CHILD);
 
 6157            ev.
fUser[0] = (
ULong_t) gdk_xid_table_lookup((HANDLE)tmpwin);
 
 6164         ev.
fX = xev.button.x;
 
 6165         ev.
fY = xev.button.y;
 
 6166         ev.
fXRoot = xev.button.x_root;
 
 6167         ev.
fYRoot = xev.button.y_root;
 
 6169         ev.
fCode = xev.button.button; 
 
 6171         tpoint.x = xev.button.x;
 
 6172         tpoint.y = xev.button.y;
 
 6173         HWND tmpwin = ChildWindowFromPoint((HWND) GDK_DRAWABLE_XID((GdkWindow *)xev.button.window), tpoint);
 
 6175             ev.
fUser[0] = (
ULong_t) gdk_xid_table_lookup((HANDLE)tmpwin);
 
 6182         ev.
fX = xev.motion.x;
 
 6183         ev.
fY = xev.motion.y;
 
 6184         ev.
fXRoot = xev.motion.x_root;
 
 6185         ev.
fYRoot = xev.motion.y_root;
 
 6189         tpoint.x = xev.button.x;
 
 6190         tpoint.y = xev.button.y;
 
 6191         HWND tmpwin = ChildWindowFromPoint((HWND) GDK_DRAWABLE_XID((GdkWindow *)xev.motion.window), tpoint);
 
 6193             ev.
fUser[0] = (
ULong_t)gdk_xid_table_lookup((HANDLE)tmpwin);
 
 6200         ev.
fX = xev.crossing.x;
 
 6201         ev.
fY = xev.crossing.y;
 
 6202         ev.
fXRoot = xev.crossing.x_root;
 
 6203         ev.
fYRoot = xev.crossing.y_root;
 
 6204         ev.
fCode = xev.crossing.mode; 
 
 6209         ev.
fX = xev.expose.area.x;
 
 6210         ev.
fY = xev.expose.area.y;
 
 6211         ev.
fWidth = xev.expose.area.width;  
 
 6212         ev.
fHeight = xev.expose.area.height;   
 
 6213         ev.
fCount = xev.expose.count; 
 
 6217         ev.
fX = xev.configure.x;
 
 6218         ev.
fY = xev.configure.y;
 
 6219         ev.
fWidth = xev.configure.width;
 
 6220         ev.
fHeight = xev.configure.height;
 
 6222      if (xev.type == GDK_CLIENT_EVENT) {
 
 6225         ev.
fHandle = xev.client.message_type;
 
 6226         ev.
fFormat = xev.client.data_format;
 
 6227         ev.
fUser[0] = xev.client.data.l[0];
 
 6228         if (
sizeof(ev.
fUser[0]) > 4) {
 
 6229            AsmLong(xev.client.data.l[1], xev.client.data.l[3],
 
 6231            AsmLong(xev.client.data.l[2], xev.client.data.l[4],
 
 6234            ev.
fUser[1] = xev.client.data.l[1];
 
 6235            ev.
fUser[2] = xev.client.data.l[2];
 
 6236            ev.
fUser[3] = xev.client.data.l[3];
 
 6237            ev.
fUser[4] = xev.client.data.l[4];
 
 6242         ev.
fUser[0] = xev.selection.selection;
 
 6247         ev.
fUser[1] = xev.selection.selection;
 
 6248         ev.
fUser[2] = xev.selection.target;
 
 6249         ev.
fUser[3] = xev.selection.property;
 
 6254         ev.
fUser[1] = xev.selection.selection;
 
 6255         ev.
fUser[2] = xev.selection.target;
 
 6256         ev.
fUser[3] = xev.selection.property;
 
 6258      if (xev.type == GDK_SCROLL) {
 
 6260         if (xev.scroll.direction == GDK_SCROLL_UP) {
 
 6262         } 
else if (xev.scroll.direction == GDK_SCROLL_DOWN) {
 
 6266         ev.
fX = xev.scroll.x;
 
 6267         ev.
fY = xev.scroll.y;
 
 6268         ev.
fXRoot = xev.scroll.x_root;
 
 6269         ev.
fYRoot = xev.scroll.y_root;
 
 6271         tpoint.x = xev.scroll.x;
 
 6272         tpoint.y = xev.scroll.y;
 
 6273         HWND tmpwin = ChildWindowFromPoint((HWND) GDK_DRAWABLE_XID((GdkWindow *)xev.scroll.window), tpoint);
 
 6275             ev.
fUser[0] = (
ULong_t)gdk_xid_table_lookup((HANDLE)tmpwin);
 
 6300   if (!src || !
dest) 
return;
 
 6302   gdk_window_copy_area((GdkDrawable *) 
dest, (GdkGC *) gc, dest_x, dest_y,
 
 6303                        (GdkDrawable *) src, src_x, src_y, 
width, height);
 
 6320      gdk_window_set_events((GdkWindow *) 
id, (GdkEventMask) xevmask);
 
 6327      gdk_window_set_background((GdkWindow *) 
id, &color);
 
 6332      gdk_window_set_back_pixmap((GdkWindow *) 
id,
 
 6336      gdk_window_set_cursor((GdkWindow *) 
id, (GdkCursor *) attr->
fCursor);
 
 6339      gdk_window_set_colormap((GdkWindow *) 
id,(GdkColormap *) attr->
fColormap);
 
 6343         gdk_window_set_decorations((GdkWindow *) 
id,
 
 6344                                    (GdkWMDecoration) GDK_DECOR_BORDER);
 
 6359   gdk_property_change((GdkWindow *) 
id, (GdkAtom) property,
 
 6360                       (GdkAtom) 
type, 8, GDK_PROP_MODE_REPLACE, data,len);
 
 6371   gdk_draw_line((GdkDrawable *) 
id, (GdkGC *) gc, 
x1, y1, 
x2, y2);
 
 6381   gdk_window_clear_area((GdkWindow *) 
id, 
x, 
y, w, 
h);
 
 6392   prop = (
Atom_t) gdk_atom_intern(
"WM_DELETE_WINDOW", 
FALSE);
 
 6394   W32ChangeProperty((HWND) GDK_DRAWABLE_XID((GdkWindow *) 
id),
 
 6395                     prop, 
XA_ATOM, 32, GDK_PROP_MODE_REPLACE,
 
 6405      gdk_key_repeat_restore();
 
 6407      gdk_key_repeat_disable();
 
 6424      gdk_key_grab(keycode, (GdkEventMask)xmod, (GdkWindow *)
id);
 
 6426      gdk_key_ungrab(keycode, (GdkEventMask)xmod, (GdkWindow *)
id);
 
 6449      gdk_button_grab(button, xmod, ( GdkWindow *)
id, 1,  (GdkEventMask)xevmask,
 
 6450                      (GdkWindow*)confine,  (GdkCursor*)cursor);
 
 6452      gdk_button_ungrab(button, xmod, ( GdkWindow *)
id);
 
 6468      if(!::IsWindowVisible((HWND)GDK_DRAWABLE_XID(
id))) 
return;
 
 6469      gdk_pointer_grab((GdkWindow *) 
id, owner_events, (GdkEventMask) xevmask,
 
 6470                       (GdkWindow *) confine, (GdkCursor *) cursor,
 
 6473      gdk_pointer_ungrab(GDK_CURRENT_TIME);
 
 6485   gdk_window_set_title((GdkWindow *) 
id, 
name);
 
 6495   gdk_window_set_icon_name((GdkWindow *) 
id, 
name);
 
 6505   gdk_window_set_icon((GdkWindow *)
id, NULL, (GdkPixmap *)pic, (GdkPixmap *)pic);
 
 6508#define safestrlen(s) ((s) ? strlen(s) : 0) 
 6522   prop = gdk_atom_intern(
"WM_CLASS", 
kFALSE);
 
 6527   if ((class_string = 
s =
 
 6528        (
char *) 
malloc((
unsigned) (len_nm + len_cl + 2)))) {
 
 6530         strcpy(
s, resourceName);
 
 6535         strcpy(
s, className);
 
 6540      W32ChangeProperty((HWND) GDK_DRAWABLE_XID((GdkWindow *) 
id),
 
 6542                            GDK_PROP_MODE_REPLACE,
 
 6543                            (
unsigned char *) class_string,
 
 6544                            len_nm + len_cl + 2);
 
 6557   gdk_window_set_decorations((GdkDrawable *) 
id, (GdkWMDecoration) value);
 
 6558   gdk_window_set_functions((GdkDrawable *) 
id, (GdkWMFunction) funcs);
 
 6568   gdk_window_move((GdkDrawable *) 
id, 
x, 
y);
 
 6578   gdk_window_resize((GdkWindow *) 
id, w, 
h);
 
 6592   GdkWindowHints flags;
 
 6594   flags = (GdkWindowHints) (GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE |
 
 6595                             GDK_HINT_RESIZE_INC);
 
 6596   hints.min_width = (
Int_t) wmin;
 
 6597   hints.max_width = (
Int_t) wmax;
 
 6598   hints.min_height = (
Int_t) hmin;
 
 6599   hints.max_height = (
Int_t) hmax;
 
 6600   hints.width_inc = (
Int_t) winc;
 
 6601   hints.height_inc = (
Int_t) hinc;
 
 6603   gdk_window_set_geometry_hints((GdkWindow *) 
id, (GdkGeometry *) &hints,
 
 6604                                 (GdkWindowHints) flags);
 
 6616   Int_t xstate = NormalState;
 
 6619      xstate = NormalState;
 
 6621      xstate = IconicState;
 
 6623   hints.flags = StateHint;
 
 6624   hints.initial_state = xstate;
 
 6626   XSetWMHints((GdkWindow *) 
id, &hints);
 
 6637   gdk_window_set_transient_for((GdkWindow *) 
id, (GdkWindow *) main_id);
 
 6644                         const char *
s, 
Int_t len)
 
 6649   gdk_gc_get_values((GdkGC *) gc, &values);
 
 6651                 (GdkGC *) gc, 
x, 
y, (
const gchar *)
s, len);
 
 6659   return gdk_text_width((GdkFont *)font, 
s, len);
 
 6666                                Int_t & max_descent)
 
 6668   GdkFont *
f = (GdkFont *) font;
 
 6669   max_ascent = 
f->ascent;
 
 6670   max_descent = 
f->descent;
 
 6683   gdk_gc_get_values((GdkGC *) gc, &xgval);
 
 6701   gdk_font_unref((GdkFont *) fs);
 
 6711   gdk_window_clear((GdkDrawable *) 
id);
 
 6771   gdk_window_set_events((GdkWindow *) 
id, (GdkEventMask)xevmask);
 
 6779   HWND hwnd = ::GetFocus();
 
 6780   return (
Window_t) gdk_xid_table_lookup(hwnd);
 
 6790   HWND hwnd = (HWND)GDK_DRAWABLE_XID((GdkWindow *)
id);
 
 6800   return (
Window_t)gdk_selection_owner_get(gClipboardAtom);
 
 6811   gdk_selection_owner_set((GdkWindow *) 
id, gClipboardAtom, GDK_CURRENT_TIME, 0);
 
 6829   gdk_selection_convert((GdkWindow *) 
id, clipboard,
 
 6830                         gdk_atom_intern(
"GDK_TARGET_STRING", 0), when);
 
 6842   _lookup_string(event, buf, buflen);
 
 6845   keysym = (
Int_t) ks;
 
 6855      xkeysym = GDK_VoidSymbol;
 
 6861         for (
int i = 0; 
gKeyMap[i].fKeySym; i++) {      
 
 6871      if (xkeysym < 127) {
 
 6873      } 
else if (xkeysym >= GDK_F1 && xkeysym <= GDK_F35) {
 
 6874         keysym = 
kKey_F1 + (xkeysym - GDK_F1);    
 
 6875      } 
else if (xkeysym >= GDK_KP_0 && xkeysym <= GDK_KP_9) {
 
 6876         keysym = 
kKey_0 + (xkeysym - GDK_KP_0);   
 
 6878         for (
int i = 0; 
gKeyMap[i].fXKeySym; i++) { 
 
 6879            if (xkeysym == 
gKeyMap[i].fXKeySym) {
 
 6898   int nread, actual_format;
 
 6900   nread = gdk_selection_property_get((GdkWindow *) 
id,
 
 6901                                      (
unsigned char **) &data,
 
 6902                                      (GdkAtom *) & atom, &actual_format);
 
 6904   if ((nread == 0) || (data == NULL)) {
 
 6909   text.Insert(0, (
const char *) data);
 
 6914   gdk_property_delete((GdkWindow *) 
id,
 
 6915                       gdk_atom_intern(
"GDK_SELECTION", 
FALSE));
 
 6929   if (!src || !
dest) 
return;
 
 6931   HWND sw, dw, ch = NULL;
 
 6933   sw = (HWND)GDK_DRAWABLE_XID((GdkWindow *)src);
 
 6934   dw = (HWND)GDK_DRAWABLE_XID((GdkWindow *)
dest);
 
 6937   ::MapWindowPoints(sw,        
 
 6941   ch = ::ChildWindowFromPointEx(dw, point, CWP_SKIPDISABLED | CWP_SKIPINVISIBLE);
 
 6942   child = (
Window_t)gdk_xid_table_lookup(ch);
 
 6961   if (GDK_DRAWABLE_TYPE(
id) == GDK_DRAWABLE_PIXMAP) {
 
 6963      gdk_drawable_get_size((GdkDrawable *)
id, (
int*)&w, (
int*)&
h);
 
 6966      gdk_window_get_geometry((GdkDrawable *) 
id, &
x, &
y, (
int*)&w,
 
 7008   window = (HWND)GDK_DRAWABLE_XID((GdkWindow *)
id);
 
 7009   rootw = (
Window_t)GDK_ROOT_PARENT();
 
 7010   ::GetCursorPos(&currPt);
 
 7011   chw = ::WindowFromPoint(currPt);
 
 7012   childw = (
Window_t)gdk_xid_table_lookup(chw);
 
 7016   ::ScreenToClient(window, &currPt);
 
 7020   ::GetKeyboardState (kbd);
 
 7022   if (kbd[VK_SHIFT] & 0x80) {
 
 7023      umask |= GDK_SHIFT_MASK;
 
 7025   if (kbd[VK_CAPITAL] & 0x80) {
 
 7026      umask |= GDK_LOCK_MASK;
 
 7028   if (kbd[VK_CONTROL] & 0x80) {
 
 7029      umask |= GDK_CONTROL_MASK;
 
 7031   if (kbd[VK_MENU] & 0x80) {
 
 7032      umask |= GDK_MOD1_MASK;
 
 7034   if (kbd[VK_LBUTTON] & 0x80) {
 
 7035      umask |= GDK_BUTTON1_MASK;
 
 7037   if (kbd[VK_MBUTTON] & 0x80) {
 
 7038      umask |= GDK_BUTTON2_MASK;
 
 7040   if (kbd[VK_RBUTTON] & 0x80) {
 
 7041      umask |= GDK_BUTTON3_MASK;
 
 7054   fore.pixel = foreground;
 
 7055   fore.red = GetRValue(foreground);
 
 7056   fore.green = GetGValue(foreground);
 
 7057   fore.blue = GetBValue(foreground);
 
 7058   gdk_gc_set_foreground((GdkGC *) gc, &fore);
 
 7070   GdkRectangle *grects = 
new GdkRectangle[
n];
 
 7072   for (i = 0; i < 
n; i++) {
 
 7073      grects[i].x = 
x+recs[i].
fX;
 
 7074      grects[i].y = 
y+recs[i].
fY;
 
 7075      grects[i].width = recs[i].
fWidth;
 
 7076      grects[i].height = recs[i].
fHeight;
 
 7079   for (i = 0; i < 
n; i++) {
 
 7080      gdk_gc_set_clip_rectangle((GdkGC *)gc, (GdkRectangle*)recs);
 
 7100   return (
Region_t) gdk_region_new();
 
 7108   gdk_region_destroy((GdkRegion *) reg);
 
 7121   dest = (
Region_t) gdk_region_union_with_rect((GdkRegion *) src, &
r);
 
 7131                                 winding ? GDK_WINDING_RULE : GDK_EVEN_ODD_RULE);
 
 7140   result = (
Region_t) gdk_regions_union((GdkRegion *) rega, (GdkRegion *) regb);
 
 7150   result = (
Region_t) gdk_regions_intersect((GdkRegion *) rega,(GdkRegion *) regb);
 
 7158   result = (
Region_t)gdk_regions_subtract((GdkRegion *) rega,(GdkRegion *) regb);
 
 7167   result = (
Region_t) gdk_regions_xor((GdkRegion *) rega, (GdkRegion *) regb);
 
 7175   return (
Bool_t) gdk_region_empty((GdkRegion *) reg);
 
 7183   return (
Bool_t) gdk_region_point_in((GdkRegion *) reg, 
x, 
y);
 
 7191   return (
Bool_t) gdk_region_equal((GdkRegion *) rega, (GdkRegion *) regb);
 
 7200   gdk_region_get_clipbox((GdkRegion *) reg, &
r);
 
 7212   char  foundry[32], family[100], weight[32], slant[32], font_name[256];
 
 7214   Int_t n1, fontcount = 0;
 
 7216   sscanf(fontname, 
"-%30[^-]-%100[^-]-%30[^-]-%30[^-]-%n",
 
 7217          foundry, family, weight, slant, &n1);
 
 7219   if(!stricmp(weight,
"medium")) {
 
 7220      sprintf(weight,
"normal");
 
 7223   sprintf(font_name, 
"-%s-%s-%s-%s-*", foundry, family, weight, slant);
 
 7224   fontlist = gdk_font_list_new(font_name, &fontcount);
 
 7227   if (fontcount > 0) 
return fontlist;
 
 7236   gdk_font_list_free(fontlist);
 
 7244   return (
Drawable_t) gdk_image_new(GDK_IMAGE_SHARED, gdk_visual_get_best(),
 
 7253   width  = ((GdkImage*)
id)->width;
 
 7254   height = ((GdkImage*)
id)->height;
 
 7264   GdkImage *image = (GdkImage *)
id;
 
 7265   if (image->depth == 1) {
 
 7267         ((
UChar_t *) image->mem)[
y * image->bpl + (
x >> 3)] |= (1 << (7 - (
x & 0x7)));
 
 7269         ((
UChar_t *) image->mem)[
y * image->bpl + (
x >> 3)] &= ~(1 << (7 - (
x & 0x7)));
 
 7272      UChar_t *pixelp = (
UChar_t *) image->mem + 
y * image->bpl + 
x * image->bpp;
 
 7274      switch (image->bpp) {
 
 7278            pixelp[2] = ((pixel >> 16) & 0xFF);
 
 7280            pixelp[1] = ((pixel >> 8) & 0xFF);
 
 7282            pixelp[0] = (pixel & 0xFF);
 
 7295   gdk_draw_image((GdkDrawable *) 
id, (GdkGC *)gc, (GdkImage *)img,
 
 7296                  x, 
y, dx, dy, w, 
h);
 
 7305   gdk_image_unref((GdkImage *)img);
 
 7323   HGDIOBJ oldbitmap1, oldbitmap2;
 
 7327   unsigned char *ret = 0;
 
 7329   if (GDK_DRAWABLE_TYPE(wid) == GDK_DRAWABLE_PIXMAP) {
 
 7330      hdc = ::CreateCompatibleDC(NULL);
 
 7331      oldbitmap1 = ::SelectObject(hdc, GDK_DRAWABLE_XID(wid));
 
 7332      ::GetObject(GDK_DRAWABLE_XID(wid), 
sizeof(BITMAP), &bm);
 
 7334      hdc = ::GetDC((HWND)GDK_DRAWABLE_XID(wid));
 
 7336   memdc = ::CreateCompatibleDC(hdc);
 
 7338   bmi.bmiHeader.biSize = 
sizeof(BITMAPINFOHEADER);
 
 7339   bmi.bmiHeader.biWidth = 
width;
 
 7340   bmi.bmiHeader.biHeight = -1 * (int)(height);
 
 7341   bmi.bmiHeader.biPlanes = 1;
 
 7342   bmi.bmiHeader.biBitCount = 32;
 
 7343   bmi.bmiHeader.biCompression = BI_RGB;
 
 7344   bmi.bmiHeader.biSizeImage = 0;
 
 7345   bmi.bmiHeader.biXPelsPerMeter = bmi.bmiHeader.biYPelsPerMeter = 0;
 
 7346   bmi.bmiHeader.biClrUsed = 0;
 
 7347   bmi.bmiHeader.biClrImportant = 0;
 
 7349   ximage = ::CreateDIBSection(hdc, (BITMAPINFO *) &bmi, DIB_RGB_COLORS, &bmbits, NULL, 0);
 
 7351   if (ximage && bmbits) {
 
 7352      oldbitmap2 = ::SelectObject(memdc, ximage);
 
 7353      ::BitBlt(memdc, 
x, 
y, 
width, height, hdc, 0, 0, SRCCOPY);
 
 7354      ::SelectObject(memdc, oldbitmap2);
 
 7357   if (GDK_DRAWABLE_TYPE(wid) == GDK_DRAWABLE_PIXMAP) {
 
 7358      ::SelectObject(hdc, oldbitmap1);
 
 7361      ::ReleaseDC((HWND)GDK_DRAWABLE_XID(wid), hdc);
 
 7363   if (ximage && bmbits) {
 
 7365      ret = 
new unsigned char[sz];
 
 7366      memcpy(ret, bmbits, sz);
 
 7367      ::DeleteObject(ximage);
 
 7381   BITMAPINFO bmp_info;
 
 7382   bmp_info.bmiHeader.biSize = 
sizeof(BITMAPINFOHEADER);
 
 7383   bmp_info.bmiHeader.biWidth = 
width;
 
 7384   bmp_info.bmiHeader.biHeight = -1 * (int)(height);
 
 7385   bmp_info.bmiHeader.biPlanes = 1;
 
 7386   bmp_info.bmiHeader.biBitCount = 32;
 
 7387   bmp_info.bmiHeader.biCompression = BI_RGB;
 
 7388   bmp_info.bmiHeader.biSizeImage = 0;
 
 7389   bmp_info.bmiHeader.biClrUsed = 0;
 
 7390   bmp_info.bmiHeader.biXPelsPerMeter = 0
L;
 
 7391   bmp_info.bmiHeader.biYPelsPerMeter = 0
L;
 
 7392   bmp_info.bmiHeader.biClrImportant = 0;
 
 7393   bmp_info.bmiColors[0].rgbRed = 0;
 
 7394   bmp_info.bmiColors[0].rgbGreen = 0;
 
 7395   bmp_info.bmiColors[0].rgbBlue = 0;
 
 7396   bmp_info.bmiColors[0].rgbReserved = 0;
 
 7398   HDC hdc = ::GetDC(NULL);
 
 7399   HBITMAP hbitmap = ::CreateDIBitmap(hdc, &bmp_info.bmiHeader, CBM_INIT,
 
 7400                                      (
void *)bits, &bmp_info, DIB_RGB_COLORS);
 
 7401   ::ReleaseDC(NULL, hdc);
 
 7407   ::SetBitmapDimensionEx(hbitmap,
width, height, &size);
 
 7409   return (
Pixmap_t)gdk_pixmap_foreign_new((guint32)hbitmap);
 
 7417   HBITMAP hBmp = 
reinterpret_cast<HBITMAP
>(pix);
 
 7420   SetBitmapDimensionEx(hBmp, w, 
h, &sz);
 
 7421   GdkPixmap *newPix = gdk_pixmap_foreign_new(
reinterpret_cast<guint32
>(hBmp));
 
 7442   gCws->window = newPix;
 
 7445   gCws->double_buffer = 0;
 
 7450   gCws->new_colors = 0;
 
 7477                                          newsize * 
sizeof(XWindow_t),
 
 7489   gCws->window = gdk_window_foreign_new((guint32)qwid);
 
 7493   gCws->double_buffer = 0;
 
 7498   gCws->new_colors    = 0;
 
 7513      gdk_pixmap_unref(
gCws->buffer);
 
 7515   if (
gCws->new_colors) {
 
 7516      gdk_colormap_free_colors((GdkColormap *) 
fColormap,
 
 7517                               (GdkColor *)
gCws->new_colors, 
gCws->ncolors);
 
 7519      delete [] 
gCws->new_colors;
 
 7520      gCws->new_colors = 0;
 
 7545   gdk_window_shape_combine_mask((GdkWindow *)
id, (GdkBitmap *) mask, 
x, 
y);
 
 7553   return (
UInt_t)gdk_screen_width_mm();
 
 7563   HWND hWnd = (HWND)GDK_DRAWABLE_XID((GdkWindow *)win);
 
 7564   Atom_t atom = (
Atom_t)GetProp(hWnd,(LPCTSTR)MAKELONG(prop,0));
 
 7566      GlobalDeleteAtom(atom);
 
 7568   RemoveProp(hWnd,(LPCTSTR)MAKELONG(prop,0));
 
 7578                         unsigned char **prop_list)
 
 7584   HWND hWnd = (HWND)GDK_DRAWABLE_XID((GdkWindow *)win);
 
 7591   if (prop == dndproxy)
 
 7593   if (prop == dndtypelist) {
 
 7595      *prop_list = (
unsigned char *)GetProp(hWnd, (LPCTSTR)MAKELONG(prop,0));
 
 7596      for (
n = 0; prop_list[
n]; 
n++);
 
 7601      if (!OpenClipboard((HWND)GDK_DRAWABLE_XID((GdkWindow *)win))) {
 
 7604      hdata = GetClipboardData(CF_PRIVATEFIRST);
 
 7605      ptr = (
UChar_t *)GlobalLock(hdata);
 
 7606      length = GlobalSize(hdata);
 
 7608      for (i = 0; i < length; i++) {
 
 7611      GlobalUnlock(hdata);
 
 7614      *bytes = *nitems = length;
 
 7630      gdk_window_set_cursor((GdkWindow *) win, (GdkCursor *)cur);
 
 7641   static UINT gdk_selection_notify_msg =
 
 7642      RegisterWindowMessage(
"gdk-selection-notify");
 
 7643   HWND hWnd = (HWND)GDK_DRAWABLE_XID((GdkWindow *)win);
 
 7644   if (!OpenClipboard((HWND)GDK_DRAWABLE_XID((GdkWindow *)win))) {
 
 7647   hdata = GetClipboardData(CF_PRIVATEFIRST);
 
 7654   PostMessage(hWnd, gdk_selection_notify_msg, sel, target);
 
 7662   static UINT gdk_selection_request_msg =
 
 7663      RegisterWindowMessage(
"gdk-selection-request");
 
 7664   HWND hWnd = (HWND)GDK_DRAWABLE_XID((GdkWindow *)owner);
 
 7665   OpenClipboard(hWnd);
 
 7669      ::PostMessage(hWnd, gdk_selection_request_msg, sel, 0);
 
 7684   if (data == 0 || len == 0)
 
 7686   if (!OpenClipboard((HWND)GDK_DRAWABLE_XID((GdkWindow *)
id))) {
 
 7689   hdata = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, len + 1);
 
 7690   ptr = (
UChar_t *)GlobalLock(hdata);
 
 7691   for (i = 0; i < len; i++) {
 
 7694   GlobalUnlock(hdata);
 
 7695   SetClipboardData(CF_PRIVATEFIRST, hdata);
 
 7704   SetProp((HWND)GDK_DRAWABLE_XID((GdkWindow *)win),
 
 7705           (LPCTSTR)MAKELONG(prop,0),
 
 7715                              int x, 
int y, 
int maxd)
 
 7728   hwnd = ::ChildWindowFromPointEx((HWND)GDK_DRAWABLE_XID((GdkWindow *)root),
 
 7731      GetWindowRect(hwnd, &rect);
 
 7732      if (PtInRect(&rect, cpt)) {
 
 7733         if (GetProp(hwnd,(LPCTSTR)MAKELONG(dndaware,0))) {
 
 7734            win = (
Window_t) gdk_xid_table_lookup(hwnd);
 
 7735            if (win && win != dragwin && win != input)
 
 7742            ::MapWindowPoints(NULL, hwndt, &point, 1);
 
 7743            hwndc = ChildWindowFromPoint (hwndt, point);
 
 7744            if (GetProp(hwnd,(LPCTSTR)MAKELONG(dndaware,0))) {
 
 7745               win = (
Window_t) gdk_xid_table_lookup(hwndc);
 
 7746               if (win && win != dragwin && win != input)
 
 7751            else if (hwndc == hwndt)
 
 7755            if (GetProp(hwndt,(LPCTSTR)MAKELONG(dndaware,0))) {
 
 7756               win = (
Window_t) gdk_xid_table_lookup(hwndt);
 
 7757               if (win && win != dragwin && win != input)
 
 7762      hwnd = GetNextWindow(hwnd, GW_HWNDNEXT);
 
 7777   HWND window = (HWND)GDK_DRAWABLE_XID((GdkWindow *)win);
 
 7779      version = (
Atom_t)GetProp(window,(LPCTSTR)MAKELONG(dndaware,0));
 
 7780      if (version) 
return kTRUE;
 
 7795   DWORD dwStyle = GetWindowLong((HWND)GDK_DRAWABLE_XID((GdkWindow *)
id),
 
 7797   SetWindowLong((HWND)GDK_DRAWABLE_XID((GdkWindow *)
id), GWL_EXSTYLE,
 
 7798                 dwStyle | WS_EX_ACCEPTFILES);
 
 7800   SetProp((HWND)GDK_DRAWABLE_XID((GdkWindow *)
id),
 
 7801           (LPCTSTR)MAKELONG(dndaware,0),
 
 7806   for (
n = 0; typelist[
n]; 
n++);
 
 7808   SetProp((HWND)GDK_DRAWABLE_XID((GdkWindow *)
id),
 
 7809           (LPCTSTR)MAKELONG(dndtypelist,0),
 
const Int_t kPropMotifWMHintsElements
 
static KeySymbolMap_t gKeyMap[]
 
const ULong_t kMWMHintsInputMode
 
const ULong_t kMWMHintsDecorations
 
const Int_t kPropMWMHintElements
 
const ULong_t kMWMHintsFunctions
 
void AsmLong(Long_t i1, Long_t i2, Long_t &ll)
 
void SplitLong(Long_t ll, Long_t &i1, Long_t &i2)
 
const Mask_t kWAOverrideRedirect
 
const Mask_t kGCBackground
 
const Mask_t kGCForeground
 
const Mask_t kGCLineStyle
 
const Mask_t kGCSubwindowMode
 
const Mask_t kGCLineWidth
 
const Mask_t kButtonMotionMask
 
const Mask_t kGCClipXOrigin
 
const Mask_t kFocusChangeMask
 
const Mask_t kButtonPressMask
 
const Mask_t kExposureMask
 
const Mask_t kWAEventMask
 
const Mask_t kGCFillStyle
 
const Mask_t kGCJoinStyle
 
const Mask_t kKeyReleaseMask
 
const Mask_t kWABackPixel
 
const Mask_t kAnyModifier
 
const Mask_t kKeyPressMask
 
const Mask_t kGCTileStipXOrigin
 
const Mask_t kPointerMotionMask
 
const Mask_t kLeaveWindowMask
 
const Mask_t kStructureNotifyMask
 
const Handle_t kParentRelative
 
const Mask_t kButtonReleaseMask
 
const Mask_t kGCGraphicsExposures
 
const Mask_t kGCClipYOrigin
 
const Mask_t kEnterWindowMask
 
const Mask_t kGCTileStipYOrigin
 
const Mask_t kWABackPixmap
 
const Mask_t kWABorderWidth
 
#define R(a, b, c, d, e, f, g, h, i)
 
const unsigned char gStipples[26][32]
 
static const double x2[5]
 
static const double x1[5]
 
const size_t kBitsPerByte
 
R__EXTERN TApplication * gApplication
 
include TDocParser_001 C image html pict1_TDocParser_001 png width
 
void gdk_win32_draw_segments(GdkDrawable *drawable, GdkGC *gc, GdkSegment *segs, gint nsegs)
 
int GIFdecode(Byte_t *GIFarr, Byte_t *PIXarr, int *Width, int *Height, int *Ncols, Byte_t *R, Byte_t *G, Byte_t *B)
 
int GIFquantize(UInt_t width, UInt_t height, Int_t *ncol, Byte_t *red, Byte_t *green, Byte_t *blue, Byte_t *outputBuf, Byte_t *outputCmap)
 
#define XDND_PROTOCOL_VERSION
 
int GIFinfo(Byte_t *GIFarr, int *Width, int *Height, int *Ncols)
 
static void GetPixel(int y, int width, Byte_t *scline)
Get pixels in line y and put in array scline.
 
static void _set_event_time(GdkEvent &event, UInt_t time)
 
void gdk_win32_draw_text(GdkDrawable *drawable, GdkFont *font, GdkGC *gc, gint x, gint y, const gchar *text, gint text_length)
 
void gdk_win32_draw_polygon(GdkDrawable *drawable, GdkGC *gc, gint filled, GdkPoint *points, gint npoints)
 
void gdk_win32_draw_lines(GdkDrawable *drawable, GdkGC *gc, GdkPoint *points, gint npoints)
 
void gdk_win32_draw_points(GdkDrawable *drawable, GdkGC *gc, GdkPoint *points, gint npoints)
 
static GdkImage * gGifImage
 
static void PutByte(Byte_t b)
Put byte b in output stream.
 
VOID CALLBACK MyTimerProc(HWND hwnd, UINT message, UINT idTimer, DWORD dwTime)
Windows timer handling events while moving/resizing windows.
 
void gdk_win32_draw_arc(GdkDrawable *drawable, GdkGC *gc, gint filled, gint x, gint y, gint width, gint height, gint angle1, gint angle2)
 
long GIFencode(int Width, int Height, Int_t Ncol, Byte_t R[], Byte_t G[], Byte_t B[], Byte_t ScLine[], void(*get_scline)(int, int, Byte_t *), void(*pb)(Byte_t))
 
void gdk_win32_draw_rectangle(GdkDrawable *drawable, GdkGC *gc, gint filled, gint x, gint y, gint width, gint height)
 
static ULong_t gKeybdMask
 
static Pixmap gFillPattern
 
static Cursor gNullCursor
 
const char null_cursor_bits[]
 
static char gDashList[10]
 
const Int_t kBIGGEST_RGB_VALUE
 
static ULong_t gMouseMask
 
static GC gGClist[kMAXGC]
 
static struct @52 gMarker
 
static XFontStruct * gTextFont
 
R__EXTERN TStyle * gStyle
 
R__EXTERN TSystem * gSystem
 
R__EXTERN TVirtualX *(* gPtr2VirtualX)()
 
R__EXTERN Atom_t gWM_DELETE_WINDOW
 
R__EXTERN TWin32SplashThread * gSplash
 
R__EXTERN ULong_t gConsoleWindow
 
virtual Color_t GetFillColor() const
Return the fill area color.
 
Style_t fFillStyle
Fill area style.
 
Color_t fFillColor
Fill area color.
 
Width_t fLineWidth
Line width.
 
Style_t fLineStyle
Line style.
 
Color_t fLineColor
Line color.
 
Color_t fMarkerColor
Marker color.
 
Size_t fMarkerSize
Marker size.
 
Style_t fMarkerStyle
Marker style.
 
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
 
Float_t fTextAngle
Text angle.
 
virtual void SetTextColor(Color_t tcolor=1)
Set the text color.
 
Font_t fTextFont
Text font.
 
Float_t fTextSize
Text size.
 
The color creation and management class.
 
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
 
Bool_t Next(ULong64_t &hash, Long64_t &key, Long64_t &value)
Get next entry from TExMap. Returns kFALSE at end of map.
 
This class stores a (key,value) pair using an external hash.
 
void Add(ULong64_t hash, Long64_t key, Long64_t value)
Add an (key,value) pair to the table. The key should be unique.
 
Long64_t GetValue(ULong64_t hash, Long64_t key)
Return the value belonging to specified key and hash value.
 
Proxy classes provide thread-safe interface to global objects.
 
static ULong_t fgPingMessageId
ping message ID
 
static void GlobalUnlock()
unlock any proxy (client thread)
 
static UInt_t fMaxResponseTime
max period for waiting response from server thread
 
static void GlobalLock()
lock any proxy (client thread)
 
static ULong_t fgUserThreadId
user (e.g. python) thread ID
 
static ULong_t fgPostMessageId
post message ID
 
static ULong_t fgMainThreadId
main thread ID
 
virtual void ExecuteCallBack(Bool_t sync)
Executes all batched callbacks and the latest callback This method is executed by server thread.
 
static TVirtualX * fgRealObject
 
static TVirtualX * ProxyObject()
 
static TVirtualX * RealObject()
 
This class is the basic interface to the Win32 graphics system.
 
void DrawString(Drawable_t id, GContext_t gc, Int_t x, Int_t y, const char *s, Int_t len)
Draw a string using a specific graphics context in position (x,y).
 
void SetClipRectangles(GContext_t gc, Int_t x, Int_t y, Rectangle_t *recs, Int_t n)
Set clipping rectangles in graphics context.
 
void MapWindow(Window_t id)
Map window on screen.
 
void SetWMSizeHints(Window_t id, UInt_t wmin, UInt_t hmin, UInt_t wmax, UInt_t hmax, UInt_t winc, UInt_t hinc)
Give the window manager minimum and maximum size hints.
 
void DrawImage(FT_Bitmap *source, ULong_t fore, ULong_t back, GdkImage *xim, Int_t bx, Int_t by)
Draw FT_Bitmap bitmap to xim image at position bx,by using specified foreground color.
 
void MapModifierState(UInt_t &state, UInt_t &xstate, Bool_t tox=kTRUE)
Map modifier key state to or from X.
 
void CloseWindow1()
Delete current window.
 
void SetClassHints(Window_t id, char *className, char *resourceName)
Set the windows class and resource name.
 
void LookupString(Event_t *event, char *buf, Int_t buflen, UInt_t &keysym)
Convert the keycode from the event structure to a key symbol (according to the modifiers specified in...
 
void DestroyWindow(Window_t id)
Destroy window.
 
void IntersectRegion(Region_t rega, Region_t regb, Region_t result)
Compute the intersection of rega and regb and return result region.
 
void SetIconPixmap(Window_t id, Pixmap_t pic)
Set pixmap the WM can use when the window is iconized.
 
void DrawCellArray(Int_t x1, Int_t y1, Int_t x2, Int_t y2, Int_t nx, Int_t ny, Int_t *ic)
Draw a cell array.
 
void SetMarkerSize(Float_t markersize)
Set marker size index.
 
void MapSetWindowAttributes(SetWindowAttributes_t *attr, ULong_t &xmask, GdkWindowAttr &xattr)
Map a SetWindowAttributes_t to a GdkWindowAttr structure.
 
void SetClipOFF(Int_t wid)
Turn off the clipping for the window wid.
 
void SetClipRegion(Int_t wid, Int_t x, Int_t y, UInt_t w, UInt_t h)
Set clipping region for the window wid.
 
void SetCharacterUp(Float_t chupx, Float_t chupy)
Set character up vector.
 
void DrawFillArea(Int_t n, TPoint *xy)
Fill area described by polygon.
 
void SendEvent(Window_t id, Event_t *ev)
Send event ev to window id.
 
void QueryColor(Colormap_t cmap, ColorStruct_t &color)
Fill in the primary color components for a specific pixel value.
 
void GetPasteBuffer(Window_t id, Atom_t atom, TString &text, Int_t &nchar, Bool_t del)
Get contents of paste buffer atom into string.
 
void SetInputFocus(Window_t id)
Set keyboard input focus to window id.
 
void SubtractRegion(Region_t rega, Region_t regb, Region_t result)
Subtract rega from regb.
 
void SetForeground(GContext_t gc, ULong_t foreground)
Set foreground color in graphics context (shortcut for ChangeGC with only foreground mask set).
 
void MoveWindow(Int_t wid, Int_t x, Int_t y)
Move the window wid.
 
Int_t EventsPending()
Returns number of pending events.
 
const char * DisplayName(const char *dpyName=0)
Return hostname on which the display is opened.
 
Int_t TextWidth(FontStruct_t font, const char *s, Int_t len)
Return length of string in pixels. Size depends on font.
 
void DrawBox(Int_t x1, Int_t y1, Int_t x2, Int_t y2, EBoxMode mode)
Draw a box.
 
void UnmapWindow(Window_t id)
Unmap window from screen.
 
void ClearWindow()
Clear current window.
 
void SetTextFont(Font_t fontnumber)
Set specified font.
 
Pixmap_t ReadGIF(Int_t x0, Int_t y0, const char *file, Window_t id=0)
If id is NULL - loads the specified gif file at position [x0,y0] in the current window.
 
Float_t fCharacterUpY
Character Up vector along Y.
 
Bool_t EqualRegion(Region_t rega, Region_t regb)
Returns true if two regions are equal.
 
void FillPolygon(Window_t id, GContext_t gc, Point_t *points, Int_t npnt)
FillPolygon fills the region closed by the specified path.
 
void UnionRegion(Region_t rega, Region_t regb, Region_t result)
Compute the union of rega and regb and return result region.
 
Bool_t SetSelectionOwner(Window_t, Atom_t &)
Assigns owner of Clipboard.
 
void ChangeGC(GContext_t gc, GCValues_t *gval)
Change entries in an existing graphics context, gc, by values from gval.
 
void SetWMSize(Window_t id, UInt_t w, UInt_t h)
Tells window manager the desired size of window "id".
 
void ShapeCombineMask(Window_t id, Int_t x, Int_t y, Pixmap_t mask)
The Nonrectangular Window Shape Extension adds nonrectangular windows to the System.
 
void RenderString(Int_t x, Int_t y, ETextMode mode)
Perform the string rendering in the pad.
 
Int_t fDepth
Number of color planes.
 
void SetWMTransientHint(Window_t id, Window_t main_id)
Tell window manager that window is a transient window of gdk_parent_root.
 
void SetRGB(Int_t cindex, Float_t r, Float_t g, Float_t b)
Set color intensities for given color index.
 
Bool_t IsDNDAware(Window_t win, Atom_t *typelist)
Checks if Window win is DND aware, and knows any of the DND formats passed in argument.
 
Float_t fTextMagnitude
Text Magnitude.
 
void GetFontProperties(FontStruct_t font, Int_t &max_ascent, Int_t &max_descent)
Return some font properties.
 
void SetLineType(Int_t n, Int_t *dash)
Set line type.
 
void DestroySubwindows(Window_t id)
Destroy all internal subwindows.
 
void CopyArea(Drawable_t src, Drawable_t dest, GContext_t gc, Int_t src_x, Int_t src_y, UInt_t width, UInt_t height, Int_t dest_x, Int_t dest_y)
Copy a drawable (i.e.
 
void NextEvent(Event_t &event)
Copies first pending event from event queue to Event_t structure and removes event from queue.
 
void SetOpacity(Int_t percent)
Set opacity of a window.
 
void Align(void)
Compute alignment variables.
 
GdkImage * GetBackground(Int_t x, Int_t y, UInt_t w, UInt_t h)
Get the background of the current window in an XImage.
 
Region_t CreateRegion()
Create a new empty region.
 
void DrawLine(Int_t x1, Int_t y1, Int_t x2, Int_t y2)
Draw a line.
 
Pixmap_t CreatePixmapFromData(unsigned char *bits, UInt_t width, UInt_t height)
create an image from RGB data.
 
Atom_t InternAtom(const char *atom_name, Bool_t only_if_exist)
Return atom handle for atom_name.
 
Bool_t fMarkerStyleModified
 
void DeleteProperty(Window_t, Atom_t &)
Deletes the specified property on the specified window.
 
TGWin32()
Default constructor.
 
void ResizeWindow(Int_t wid)
Resize the current window if necessary.
 
Int_t ResizePixmap(Int_t wid, UInt_t w, UInt_t h)
Resize a pixmap.
 
void IconifyWindow(Window_t id)
Iconify the window.
 
void SetColor(GdkGC *gc, Int_t ci)
Set the foreground color in GdkGC.
 
void SetWMPosition(Window_t id, Int_t x, Int_t y)
Tells the window manager the desired position [x,y] of window "id".
 
GdkColormap * fColormap
Default colormap, 0 if b/w.
 
void GetPlanes(Int_t &nplanes)
Get maximum number of planes.
 
Int_t InitWindow(ULong_t window)
Open window and return window number.
 
Region_t PolygonRegion(Point_t *points, Int_t np, Bool_t winding)
Create region for the polygon defined by the points array.
 
Bool_t fFillStyleModified
 
void CloseWindow()
Delete current window.
 
void GetWindowSize(Drawable_t id, Int_t &x, Int_t &y, UInt_t &w, UInt_t &h)
Return geometry of window (should be called GetGeometry but signature already used).
 
void RaiseWindow(Window_t id)
Put window on top of window stack.
 
void SetUserThreadId(ULong_t id)
Set user thread id.
 
Int_t fBlueDiv
Blue value divider.
 
void FreeFontStruct(FontStruct_t fs)
Free font structure returned by GetFontStruct().
 
void DeleteGC(GContext_t gc)
Explicitely delete a graphics context.
 
void TranslateCoordinates(Window_t src, Window_t dest, Int_t src_x, Int_t src_y, Int_t &dest_x, Int_t &dest_y, Window_t &child)
TranslateCoordinates translates coordinates from the frame of reference of one window to another.
 
void SetWindowBackgroundPixmap(Window_t id, Pixmap_t pxm)
Set pixmap as window background.
 
Bool_t CheckEvent(Window_t id, EGEventType type, Event_t &ev)
Check if there is for window "id" an event of type "type".
 
Int_t fGreenShift
Bits to left shift green.
 
void ImgPickPalette(GdkImage *image, Int_t &ncol, Int_t *&R, Int_t *&G, Int_t *&B)
Returns in R G B the ncol colors of the palette used by the image.
 
void SetTextSize(Float_t textsize)
Set current text size.
 
void SetTypeList(Window_t win, Atom_t prop, Atom_t *typelist)
Add the list of drag and drop types to the Window win.
 
Window_t CreateWindow(Window_t parent, Int_t x, Int_t y, UInt_t w, UInt_t h, UInt_t border, Int_t depth, UInt_t clss, void *visual, SetWindowAttributes_t *attr, UInt_t wtype)
Return handle to newly created gdk window.
 
void DrawSegments(Drawable_t id, GContext_t gc, Segment_t *seg, Int_t nseg)
Draws multiple line segments. Each line is specified by a pair of points.
 
virtual void GetTextExtent(UInt_t &w, UInt_t &h, char *mess)
Return the size of a character string.
 
Window_t GetDefaultRootWindow() const
Return handle to the default root window created when calling XOpenDisplay().
 
void SetDoubleBufferOFF()
Turn double buffer mode off.
 
Int_t AddWindow(ULong_t qwid, UInt_t w, UInt_t h)
Register a window created by Qt as a ROOT window (like InitWindow()).
 
void SetLineStyle(Style_t linestyle)
Set line style.
 
Int_t GetDoubleBuffer(Int_t wid)
Query the double buffer value for the window wid.
 
void CloseDisplay()
close display (terminate server/gMainThread thread)
 
void ReparentWindow(Window_t id, Window_t pid, Int_t x, Int_t y)
Reparent window, make pid the new parent and position the window at position (x,y) in new parent.
 
void MapEventMask(UInt_t &emask, UInt_t &xemask, Bool_t tox=kTRUE)
Map event mask to or from gdk.
 
Float_t fCharacterUpX
Character Up vector along X.
 
void GrabPointer(Window_t id, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab=kTRUE, Bool_t owner_events=kTRUE)
Establish an active pointer grab.
 
Window_t FindRWindow(Window_t win, Window_t dragwin, Window_t input, int x, int y, int maxd)
Recursively search in the children of Window for a Window which is at location x, y and is DND aware,...
 
void CopyGC(GContext_t org, GContext_t dest, Mask_t mask)
Copies graphics context from org to dest.
 
void MapRaised(Window_t id)
Map window on screen and put on top of all windows.
 
void CopyPixmap(Int_t wid, Int_t xpos, Int_t ypos)
Copy the pixmap wid at the position xpos, ypos in the current window.
 
Bool_t fPenModified
line syle || width modified
 
void DeletePixmap(Pixmap_t pmap)
Explicitely delete pixmap resource.
 
void SelectWindow(Int_t wid)
Select window to which subsequent output is directed.
 
void QueryPointer(Int_t &ix, Int_t &iy)
Query pointer position.
 
void SetFillColor(Color_t cindex)
Set color index for fill areas.
 
void DrawText(Int_t x, Int_t y, Float_t angle, Float_t mgn, const char *text, ETextMode mode)
Draw text using TrueType fonts.
 
Bool_t fHasTTFonts
True when TrueType fonts are used.
 
void DeleteFont(FontStruct_t fs)
Explicitely delete font structure obtained with LoadQueryFont().
 
void MapEvent(Event_t &ev, GdkEvent &xev, Bool_t tox=kTRUE)
Map Event_t structure to gdk_event structure.
 
void DrawPolyMarker(Int_t n, TPoint *xy)
Draw n markers with the current attributes at position x, y.
 
void DrawPolyLine(Int_t n, TPoint *xy)
Draw a line through all points.
 
void UpdateLineStyle()
Update line style.
 
void SelectInput(Window_t id, UInt_t evmask)
Defines which input events the window is interested in.
 
Int_t fRedShift
Bits to left shift red, -1 if no TrueColor visual.
 
Bool_t IsVisible(Int_t x, Int_t y, UInt_t w, UInt_t h)
Test if there is really something to render.
 
void DestroyRegion(Region_t reg)
Destroy region.
 
Int_t FindColor(ULong_t pixel, ULong_t *orgcolors, Int_t ncolors)
Returns index in orgcolors (and new_colors) for pixel.
 
void UpdateFillStyle()
Set fill area style index.
 
Pixmap_t CreateBitmap(Drawable_t id, const char *bitmap, UInt_t width, UInt_t height)
Create a bitmap (i.e. pixmap with depth 1) from the bitmap data.
 
void SetDoubleBuffer(Int_t wid, Int_t mode)
Set the double buffer on/off on window wid.
 
void UpdateWindow(Int_t mode)
Update display.
 
void LowerWindow(Window_t id)
Lower window so it lays below all its siblings.
 
void WMDeleteNotify(Window_t id)
Tell WM to send message when window is closed via WM.
 
Window_t GetInputFocus()
Returns the window id of the window having the input focus.
 
void DeleteImage(Drawable_t img)
Deallocates the memory associated with the image img.
 
Bool_t fLineColorModified
 
Int_t WriteGIF(char *name)
Writes the current window into GIF file.
 
void MakeOpaqueColors(Int_t percent, ULong_t *orgcolors, Int_t ncolors)
Get RGB values for orgcolors, add percent neutral to the RGB and allocate new_colors.
 
Int_t GetDepth() const
Get maximum number of planes.
 
void GetWindowAttributes(Window_t id, WindowAttributes_t &attr)
Get window attributes and return filled in attributes structure.
 
void GrabButton(Window_t id, EMouseButton button, UInt_t modifier, UInt_t evmask, Window_t confine, Cursor_t cursor, Bool_t grab=kTRUE)
Establish passive grab on a certain mouse button.
 
void GetGeometry(Int_t wid, Int_t &x, Int_t &y, UInt_t &w, UInt_t &h)
Return position and size of window wid.
 
void SetDNDAware(Window_t win, Atom_t *typelist)
Add XdndAware property and the list of drag and drop types to the Window win.
 
Int_t fScreenNumber
Screen number.
 
void Warp(Int_t ix, Int_t iy, Window_t id=0)
Set pointer position.
 
Drawable_t CreateImage(UInt_t width, UInt_t height)
Allocates the memory needed for an drawable.
 
Cursor_t CreateCursor(ECursor cursor)
Create cursor handle (just return cursor from cursor pool fCursors).
 
void MapGCValues(GCValues_t &gval, ULong_t &xmask, GdkGCValues &xgval, Bool_t tox=kTRUE)
Map a GCValues_t to a XCGValues structure if tox is true.
 
void DrawRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h)
Draw a rectangle outline.
 
Int_t AddPixmap(ULong_t pix, UInt_t w, UInt_t h)
register pixmap created by TGWin32GLManager
 
void SetMarkerType(Int_t type, Int_t n, GdkPoint *xy)
Set marker type.
 
Int_t OpenPixmap(UInt_t w, UInt_t h)
Open a new pixmap.
 
void SetDoubleBufferON()
Turn double buffer mode on.
 
void ClearArea(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h)
Clear a window area to the bakcground color.
 
void SetKeyAutoRepeat(Bool_t on=kTRUE)
Turn key auto repeat on or off.
 
void FillRectangle(Drawable_t id, GContext_t gc, Int_t x, Int_t y, UInt_t w, UInt_t h)
Draw a filled rectangle. Filling is done according to the gc.
 
void SetFillStyle(Style_t style)
Set fill area style.
 
void SetMWMHints(Window_t id, UInt_t value, UInt_t funcs, UInt_t input)
Set decoration style for MWM-compatible wm (mwm, ncdwm, fvwm?).
 
TObject * fRefreshTimer
TGWin32RefreshTimer for GUI thread message handler.
 
void SetCursor(Int_t win, ECursor cursor)
Set the cursor.
 
char ** ListFonts(const char *fontname, Int_t max, Int_t &count)
Return list of font names matching "fontname".
 
void QueryColors(GdkColormap *cmap, GdkColor *colors, Int_t ncolors)
Returns the current RGB value for the pixel in the XColor structure.
 
void GrabKey(Window_t id, Int_t keycode, UInt_t modifier, Bool_t grab=kTRUE)
Establish passive grab on a certain key.
 
Window_t GetPrimarySelectionOwner()
Returns the window id of the current owner of the primary selection.
 
void MapColorStruct(ColorStruct_t *color, GdkColor &xcolor)
Map a ColorStruct_t to a XColor structure.
 
void SetWindowName(Window_t id, char *name)
Set window name.
 
FontH_t GetFontHandle(FontStruct_t fs)
Return handle to font described by font structure.
 
void ConvertPrimarySelection(Window_t id, Atom_t clipboard, Time_t when)
XConvertSelection() causes a SelectionRequest event to be sent to the current primary selection owner...
 
void SetTextColor(Color_t cindex)
Set color index for text.
 
void SetWindowBackground(Window_t id, ULong_t color)
Set the window background color.
 
FT_Vector fAlign
alignment vector
 
Bool_t IsCmdThread() const
returns kTRUE if we are inside cmd/server thread
 
Int_t fTextAlignH
Text Alignment Horizontal.
 
Handle_t fXEvent
Current native (GDK) event.
 
void RemovePixmap(GdkDrawable *pix)
Remove the pixmap pix.
 
void GetGCValues(GContext_t gc, GCValues_t &gval)
Get current values from graphics context gc.
 
Bool_t fFillColorModified
 
Int_t fRedDiv
Red value divider, -1 if no TrueColor visual.
 
void SetIconName(Window_t id, char *name)
Set window icon name.
 
Bool_t fMarkerColorModified
 
void PutImage(Int_t offset, Int_t itran, Int_t x0, Int_t y0, Int_t nx, Int_t ny, Int_t xmin, Int_t ymin, Int_t xmax, Int_t ymax, UChar_t *image, Drawable_t id)
Draw image.
 
void DeletePictureData(void *data)
Delete picture data created by the function ReadPictureDataFromFile.
 
GdkGC * GetGC(Int_t which) const
Return desired Graphics Context ("which" maps directly on gGCList[]).
 
void ConvertSelection(Window_t, Atom_t &, Atom_t &, Atom_t &, Time_t &)
Get Clipboard data.
 
GContext_t CreateGC(Drawable_t id, GCValues_t *gval)
Create a graphics context using the values set in gval (but only for those entries that are in the ma...
 
void SetLineColor(Color_t cindex)
Set color index for lines.
 
XColor_t & GetColor(Int_t cid)
Return reference to internal color structure associated to color index cid.
 
Int_t OpenDisplay(const char *dpyName=0)
Open the display. Return -1 if the opening fails, 0 when ok.
 
void SetDashes(GContext_t gc, Int_t offset, const char *dash_list, Int_t n)
Specify a dash pattertn.
 
void FreeFontNames(char **fontlist)
Frees the specified the array of strings "fontlist".
 
Bool_t ParseColor(Colormap_t cmap, const char *cname, ColorStruct_t &color)
Parse string cname containing color name, like "green" or "#00FF00".
 
void SetDrawMode(EDrawMode mode)
Set the drawing mode.
 
Int_t fTextAlign
Text alignment (set in SetTextAlign)
 
void SetMarkerColor(Color_t cindex)
Set color index for markers.
 
Bool_t Init(void *display=0)
Initialize Win32 system. Returns kFALSE in case of failure.
 
unsigned char * GetColorBits(Drawable_t wid, Int_t x, Int_t y, UInt_t width, UInt_t height)
Gets DIB bits x, y, width, height - position of bitmap returns a pointer on bitmap bits array in form...
 
FontStruct_t GetFontStruct(FontH_t fh)
Retrieve associated font structure once we have the font handle.
 
void GetCharacterUp(Float_t &chupx, Float_t &chupy)
Return character up vector.
 
void SetLineWidth(Width_t width)
Set line width.
 
void RescaleWindow(Int_t wid, UInt_t w, UInt_t h)
Rescale the window wid.
 
void ChangeProperty(Window_t id, Atom_t property, Atom_t type, UChar_t *data, Int_t len)
This function alters the property for the specified window and causes the X server to generate a Prop...
 
void SetMarkerStyle(Style_t markerstyle)
Set marker style.
 
Int_t RequestString(Int_t x, Int_t y, char *text)
Request a string.
 
void SetWMState(Window_t id, EInitialState state)
Set the initial state of the window. Either kNormalState or kIconicState.
 
void MapSubwindows(Window_t id)
Maps all subwindows for the specified window "id" in top-to-bottom stacking order.
 
void GetRegionBox(Region_t reg, Rectangle_t *)
Return smallest enclosing rectangle.
 
Int_t fMaxNumberOfWindows
Maximum number of windows.
 
void RemoveWindow(ULong_t qwid)
Remove a window created by Qt (like CloseWindow1()).
 
Bool_t ReadPictureDataFromFile(const char *filename, char ***ret_data)
Read picture data from file and store in ret_data.
 
Pixmap_t CreatePixmap(Drawable_t id, UInt_t w, UInt_t h)
Creates a pixmap of the width and height you specified and returns a pixmap ID that identifies it.
 
void MoveResizeWindow(Window_t id, Int_t x, Int_t y, UInt_t w, UInt_t h)
Move and resize a window.
 
UInt_t ScreenWidthMM() const
Returns the width of the screen in millimeters.
 
void MapKeySym(UInt_t &keysym, UInt_t &xkeysym, Bool_t tox=kTRUE)
Map to and from X key symbols.
 
void ChangeWindowAttributes(Window_t id, SetWindowAttributes_t *attr)
Change window attributes.
 
Bool_t AllocColor(GdkColormap *cmap, GdkColor *color)
Allocate color in colormap.
 
void SetTextAlign(Short_t talign=11)
Set text alignment.
 
Int_t RequestLocator(Int_t mode, Int_t ctyp, Int_t &x, Int_t &y)
Request Locator position.
 
Int_t GetProperty(Window_t, Atom_t, Long_t, Long_t, Bool_t, Atom_t, Atom_t *, Int_t *, ULong_t *, ULong_t *, unsigned char **)
Returns the actual type of the property, the actual format of the property, and a pointer to the data...
 
Int_t KeysymToKeycode(UInt_t keysym)
Convert a keysym to the appropriate keycode.
 
void ClosePixmap()
Delete current pixmap.
 
Window_t GetCurrentWindow() const
Return current window pointer. Protected method used by TGWin32TTF.
 
Bool_t EmptyRegion(Region_t reg)
Return true if the region is empty.
 
void XorRegion(Region_t rega, Region_t regb, Region_t result)
Calculate the difference between the union and intersection of two regions.
 
void Bell(Int_t percent)
Sets the sound bell. Percent is loudness from -100% to 100%.
 
void SetPrimarySelectionOwner(Window_t id)
Makes the window id the current owner of the primary selection.
 
Bool_t PointInRegion(Int_t x, Int_t y, Region_t reg)
Returns true if the point x,y is in the region.
 
Int_t fBlueShift
Bits to left shift blue.
 
GdkCursor * fCursors[kNumCursors]
List of cursors.
 
FontStruct_t LoadQueryFont(const char *font_name)
Load font and query font.
 
void ChangeActivePointerGrab(Window_t, UInt_t, Cursor_t)
Changes the active cursor of the specified window.
 
void PutPixel(Drawable_t id, Int_t x, Int_t y, ULong_t pixel)
Overwrites the pixel in the image with the specified pixel value.
 
Window_t GetParent(Window_t id) const
Return the parent of the window.
 
void ChangeProperties(Window_t id, Atom_t property, Atom_t type, Int_t format, UChar_t *data, Int_t len)
Put data into Clipboard.
 
Bool_t CreatePictureFromData(Drawable_t id, char **data, Pixmap_t &pict, Pixmap_t &pict_mask, PictureAttributes_t &attr)
Create a pixture pixmap from data.
 
void FreeColor(Colormap_t cmap, ULong_t pixel)
Free color cell with specified pixel value.
 
Window_t GetWindowID(Int_t wid)
Return the X11 window identifier.
 
virtual ~TGWin32()
destructor.
 
Bool_t GUIThreadMessageFunc(MSG *msg)
Message processing function for the GUI thread.
 
Int_t fTextAlignV
Text Alignment Vertical.
 
Bool_t fUseSysPointers
True when using system mouse pointers.
 
XWindow_t * fWindows
List of windows.
 
void GetImageSize(Drawable_t id, UInt_t &width, UInt_t &height)
Returns the width and height of the image id.
 
Int_t fGreenDiv
Green value divider.
 
void Update(Int_t mode=0)
Flush (mode = 0, default) or synchronize (mode = 1) X output buffer.
 
void WritePixmap(Int_t wid, UInt_t w, UInt_t h, char *pxname)
Write the pixmap wid in the bitmap file pxname.
 
void SetInput(Int_t inp)
Set input on or off.
 
ULong_t GetPixel(Color_t cindex)
Return pixel value associated to specified ROOT color number.
 
Display_t GetDisplay() const
Returns handle to display (might be useful in some cases where direct X11 manipulation outside of TVi...
 
void GetRGB(Int_t index, Float_t &r, Float_t &g, Float_t &b)
Get rgb values for color "index".
 
void Sync(Int_t mode)
Set synchronisation on or off.
 
TExMap * fColors
Hash list of colors.
 
void UnionRectWithRegion(Rectangle_t *rect, Region_t src, Region_t dest)
Union of rectangle with a region.
 
Bool_t CreatePictureFromFile(Drawable_t id, const char *filename, Pixmap_t &pict, Pixmap_t &pict_mask, PictureAttributes_t &attr)
Create a picture pixmap from data on file.
 
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
 
virtual void SetName(const char *name)
Set the name of the TNamed.
 
Int_t GetEntries() const
Return the number of objects in array (i.e.
 
TObject * At(Int_t idx) const
 
Collectable string class.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
static void * Alloc(size_t size)
Allocate a block of memory, that later can be resized using TStorage::ReAlloc().
 
static void * ReAlloc(void *vp, size_t size)
Reallocate (i.e.
 
static void Dealloc(void *ptr)
De-allocate block of memory, that was allocated via TStorage::Alloc().
 
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
const char * GetLineStyleString(Int_t i=1) const
Return line style string (used by PostScript).
 
void Beep(Int_t freq=-1, Int_t duration=-1, Bool_t setDefault=kFALSE)
Beep for duration milliseconds with a tone of frequency freq.
 
virtual void AddTimer(TTimer *t)
Add timer to list of system timers.
 
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
 
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
 
virtual TTimer * RemoveTimer(TTimer *t)
Remove timer from list of system timers.
 
TTF helper class containing glyphs description.
 
FT_Glyph fImage
glyph image
 
static Bool_t IsInitialized()
 
static void PrepareString(const char *string)
Put the characters in "string" in the "glyphs" array.
 
static void Init()
Initialise the TrueType fonts interface.
 
static void LayoutGlyphs()
Compute the glyphs positions, fgAscent and fgWidth (needed for alignment).
 
static void SetSmoothing(Bool_t state)
Set smoothing (anti-aliasing) flag.
 
static void SetRotationMatrix(Float_t angle)
Set the rotation matrix used to rotate the font outlines.
 
static void SetTextFont(Font_t fontnumber)
Set specified font.
 
static void GetTextExtent(UInt_t &w, UInt_t &h, char *text)
Get width (w) and height (h) when text is horizontal.
 
static TTGlyph * GetGlyphs()
 
static Int_t GetNumGlyphs()
 
static const FT_BBox & GetBox()
 
static Bool_t GetSmoothing()
 
static void SetTextSize(Float_t textsize)
Set current text size.
 
static FT_Matrix * GetRotMatrix()
 
Handles synchronous and a-synchronous timer events.
 
void Reset()
Reset the timer.
 
virtual Bool_t Notify()
Notify when timer times out.
 
Semi-Abstract base class defining a generic interface to the underlying, low level,...
 
static constexpr double s
 
static constexpr double L
 
Short_t Max(Short_t a, Short_t b)
 
Double_t Sqrt(Double_t x)
 
Short_t Min(Short_t a, Short_t b)
 
Bool_t fGraphicsExposures
 
EGraphicsFunction fFunction
 
Pixmap_t fBackgroundPixmap
 
Description of a X11 color.
 
Bool_t fDefined
true if pixel value is defined
 
#define dest(otri, vertexptr)
 
#define org(otri, vertexptr)