#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 <Xm/Xm.h>
+#include "wx/unix/execute.h"
+
#include "wx/motif/private.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 client, int *fid,
+static void xt_notify_end_process(XtPointer data, int *fid,
XtInputId *id)
{
wxEndProcessData *proc_data = (wxEndProcessData *)data;
fd,
(XtPointer *) XtInputReadMask,
(XtInputCallbackProc) xt_notify_end_process,
- (XtPointer) process_data);
+ (XtPointer) proc_data);
return (int)id;
}
size_t len;
environment = GetIniFile (filename, NULL);
len = strlen (environment);
-#if defined(__SOLARIS__) || defined(__SVR4__) && !defined(__HPUX__)
- (void) sysinfo (SI_HOSTNAME, environment + len, 1024 - len);
-#else
- (void) gethostname (environment + len, 1024 - len);
-#endif
+ wxString hostname = wxGetHostName();
+ if ( !!hostname )
+ strncat(environment, hostname, 1024 - len);
}
homeDB = XrmGetFileDatabase (environment);
XrmMergeDatabases (homeDB, &wxResourceDatabase);
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;
}
return mnem;
}
-char * wxFindAccelerator (char *s)
+char * wxFindAccelerator (const char *s)
{
+ // VZ: this function returns incorrect keysym which completely breaks kbd
+ // handling
+ return NULL;
+
// The accelerator text is after the \t char.
while (*s && *s != '\t')
s++;
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
{
return wxBuffer;
}
-XmString wxFindAcceleratorText (char *s)
+XmString wxFindAcceleratorText (const char *s)
{
+ // VZ: this function returns incorrect keysym which completely breaks kbd
+ // handling
+ return NULL;
+
// 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;
}
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;
}