// headers
// ----------------------------------------------------------------------------
+#ifdef __VMS
+#define XtDisplay XTDISPLAY
+#endif
+
#include "wx/setup.h"
#include "wx/utils.h"
#include "wx/app.h"
#include "wx/msgdlg.h"
#include "wx/cursor.h"
+#include "wx/window.h" // for wxTopLevelWindows
#include <ctype.h>
#include <stdarg.h>
#include <sysent.h>
#endif
+#ifdef __VMS__
+#pragma message disable nosimpint
+#endif
#include <Xm/Xm.h>
+#ifdef __VMS__
+#pragma message enable nosimpint
+#endif
#include "wx/unix/execute.h"
static char *GetIniFile (char *dest, const char *filename);
-extern wxList wxTopLevelWindows;
-
// ============================================================================
// implementation
// ============================================================================
Display *display = (Display*) wxGetDisplay();
XSync (display, FALSE);
- XEvent event;
+
// XtAppPending returns availability of events AND timers/inputs, which
// are processed via callbacks, so XtAppNextEvent will not return if
// there are no events. So added '& XtIMXEvent' - Sergey.
// wxExecute stuff
// ----------------------------------------------------------------------------
-static void xt_notify_end_process(XtPointer data, int *fid,
+static void xt_notify_end_process(XtPointer data, int *WXUNUSED(fid),
XtInputId *id)
{
wxEndProcessData *proc_data = (wxEndProcessData *)data;
size_t len;
environment = GetIniFile (filename, NULL);
len = strlen (environment);
- wxString hostname;
- if ( wxGetHostName(hostname) )
+ wxString hostname = wxGetHostName();
+ if ( !!hostname )
strncat(environment, hostname, 1024 - len);
}
homeDB = XrmGetFileDatabase (environment);
else
{
// Restore old cursor
- if (win->GetCursor()->Ok())
- attrs.cursor = (Cursor) win->GetCursor()->GetXCursor(display);
+ if (win->GetCursor().Ok())
+ attrs.cursor = (Cursor) win->GetCursor().GetXCursor(display);
else
attrs.cursor = None;
}
*height = DisplayHeight (dpy, DefaultScreen (dpy));
}
+void wxDisplaySizeMM(int *width, int *height)
+{
+ Display *dpy = (Display*) wxGetDisplay();
+
+ if ( width )
+ *width = DisplayWidthMM(dpy, DefaultScreen (dpy));
+ if ( height )
+ *height = DisplayHeightMM(dpy, DefaultScreen (dpy));
+}
+
+void wxClientDisplayRect(int *x, int *y, int *width, int *height)
+{
+ // This is supposed to return desktop dimensions minus any window
+ // manager panels, menus, taskbars, etc. If there is a way to do that
+ // for this platform please fix this function, otherwise it defaults
+ // to the entire desktop.
+ if (x) *x = 0;
+ if (y) *y = 0;
+ wxDisplaySize(width, height);
+}
+
+
// Configurable display in Motif
static WXDisplay *gs_currentDisplay = NULL;
static wxString gs_displayName;
else
return FALSE;
}
-
- return FALSE;
}
wxString wxGetDisplayName()
return gs_displayName;
}
+wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
+{
+ return wxGenericFindWindowAtPoint(pt);
+}
+
// ----------------------------------------------------------------------------
// accelerators
// ----------------------------------------------------------------------------
return mnem;
}
-char * wxFindAccelerator (char *s)
+char * wxFindAccelerator (const char *s)
{
- // The accelerator text is after the \t char.
+ // VZ: this function returns incorrect keysym which completely breaks kbd
+ // handling
+ return NULL;
+
+#if 0
+ // The accelerator text is after the \t char.
while (*s && *s != '\t')
s++;
if (*s == '\0')
wxBuffer[0] = '\0';
char *tmp = copystring (s);
s = tmp;
- char *p = s;
+ char *p = tmp;
while (1)
{
strcat (wxBuffer, s);
else
strcat (wxBuffer, "Meta");
- s = p + 1;
- p = s;
+ s = p++;
}
else
{
}
delete[]tmp;
return wxBuffer;
+#endif
}
-XmString wxFindAcceleratorText (char *s)
+XmString wxFindAcceleratorText (const char *s)
{
- // The accelerator text is after the \t char.
+ // VZ: this function returns incorrect keysym which completely breaks kbd
+ // handling
+ return NULL;
+
+#if 0
+ // The accelerator text is after the \t char.
while (*s && *s != '\t')
s++;
if (*s == '\0')
return (NULL);
s++;
- XmString text = XmStringCreateSimple (s);
+ XmString text = XmStringCreateSimple ((char *)s);
return text;
+#endif
}
// ----------------------------------------------------------------------------
int h = hsv->h;
int s = hsv->s;
int v = hsv->v;
- int r, g, b;
+ int r = 0, g = 0, b = 0;
int i, f;
int p, q, t;
s = (s * wxMAX_RGB) / wxMAX_SV;
int b = rgb->blue >> 8;
int maxv = wxMax3(r, g, b);
int minv = wxMin3(r, g, b);
- int h, s, v;
+ int h = 0, s, v;
v = maxv;
if (maxv) s = (maxv - minv) * wxMAX_RGB / maxv;
else s = 0;
if (s == 0) h = 0;
else
{
- int rc, gc, bc, hex;
+ int rc, gc, bc, hex = 0;
rc = (maxv - r) * wxMAX_RGB / (maxv - minv);
gc = (maxv - g) * wxMAX_RGB / (maxv - minv);
bc = (maxv - b) * wxMAX_RGB / (maxv - minv);
wxHSV hsv_defs, hsv;
wxXColorToHSV(&hsv,xc);
- int diff, min_diff, pixel = 0;
+ int diff, min_diff = 0, pixel = 0;
for(llp = 0;llp < num_colors;llp++)
{
xc -> green = color_defs[pixel].green;
xc -> blue = color_defs[pixel].blue;
xc -> flags = DoRed | DoGreen | DoBlue;
+
+/* FIXME, TODO
if (!XAllocColor(d,cmp,xc))
cout << "wxAllocNearestColor : Warning : Cannot find nearest color !\n";
+*/
delete[] color_defs;
}