]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/utils.cpp
added an error message if a bitmap can't be addedto the image list
[wxWidgets.git] / src / motif / utils.cpp
index 5c2797dc175c0f5be21fc5067c48da9009d04cf8..8af9016cac6c5784a082069d15bb4378265ffc91 100644 (file)
 #include <netdb.h>
 #include <signal.h>
 
 #include <netdb.h>
 #include <signal.h>
 
-#ifdef __SVR4__
+#if defined(__SVR4__) && !defined(__HPUX__)
 #include <sys/systeminfo.h>
 #endif
 
 #include <sys/systeminfo.h>
 #endif
 
+#if (defined(__SUNCC__) || defined(__CLCC__))
+#include <sysent.h>
+#endif
+
 #include <Xm/Xm.h>
 
 #include "wx/motif/private.h"
 #include <Xm/Xm.h>
 
 #include "wx/motif/private.h"
@@ -57,7 +61,7 @@ extern wxList wxTopLevelWindows;
 // Get full hostname (eg. DoDo.BSn-Germany.crg.de)
 bool wxGetHostName(char *buf, int maxSize)
 {
 // Get full hostname (eg. DoDo.BSn-Germany.crg.de)
 bool wxGetHostName(char *buf, int maxSize)
 {
-#if defined(SVR4) && !defined(__hpux)
+#if defined(__SVR4__) && !defined(__HPUX__)
   return (sysinfo (SI_HOSTNAME, buf, maxSize) != -1);
 #else /* BSD Sockets */
   char name[255];
   return (sysinfo (SI_HOSTNAME, buf, maxSize) != -1);
 #else /* BSD Sockets */
   char name[255];
@@ -275,7 +279,7 @@ wxFlushResources (void)
   wxNode *node = wxResourceCache.First ();
   while (node)
     {
   wxNode *node = wxResourceCache.First ();
   while (node)
     {
-      char *file = node->key.string;
+      const char *file = node->GetKeyString();
       // If file doesn't exist, create it first.
       (void)GetResourcePath(nameBuffer, file, TRUE);
 
       // If file doesn't exist, create it first.
       (void)GetResourcePath(nameBuffer, file, TRUE);
 
@@ -487,7 +491,7 @@ void wxXMergeDatabases (wxApp * theApp, Display * display)
       size_t len;
       environment = GetIniFile (filename, NULL);
       len = strlen (environment);
       size_t len;
       environment = GetIniFile (filename, NULL);
       len = strlen (environment);
-#if defined(SVR4) && !defined(__hpux)
+#if defined(__SVR4__) && !defined(__HPUX__)
       (void) sysinfo (SI_HOSTNAME, environment + len, 1024 - len);
 #else
       (void) gethostname (environment + len, 1024 - len);
       (void) sysinfo (SI_HOSTNAME, environment + len, 1024 - len);
 #else
       (void) gethostname (environment + len, 1024 - len);
@@ -571,7 +575,7 @@ wxXSetBusyCursor (wxWindow * win, wxCursor * cursor)
 
   XFlush (display);
 
 
   XFlush (display);
 
-  for(wxNode *node = win->GetChildren()->First (); node; node = node->Next())
+  for(wxNode *node = win->GetChildren().First (); node; node = node->Next())
   {
         wxWindow *child = (wxWindow *) node->Data ();
            wxXSetBusyCursor (child, cursor);
   {
         wxWindow *child = (wxWindow *) node->Data ();
            wxXSetBusyCursor (child, cursor);
@@ -615,6 +619,13 @@ bool wxIsBusy()
   return (wxBusyCursorCount > 0);
 }    
 
   return (wxBusyCursorCount > 0);
 }    
 
+const char* wxGetHomeDir( wxString *home  )
+{
+  *home = wxGetUserHome( wxString() );
+  if (home->IsNull()) *home = "/";
+  return *home;
+};
+
 char *wxGetUserHome (const wxString& user)
 {
 #ifdef VMS
 char *wxGetUserHome (const wxString& user)
 {
 #ifdef VMS
@@ -1229,3 +1240,43 @@ void wxAllocColor(Display *d,Colormap cmp,XColor *xc)
    }
 
 
    }
 
 
+// These functions duplicate those in wxWindow, but are needed
+// for use outside of wxWindow (e.g. wxMenu, wxMenuBar).
+
+// Change a widget's foreground and background colours.
+
+void wxDoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour)
+{
+  // When should we specify the foreground, if it's calculated
+  // by wxComputeColours?
+  // Solution: say we start with the default (computed) foreground colour.
+  // If we call SetForegroundColour explicitly for a control or window,
+  // then the foreground is changed.
+  // Therefore SetBackgroundColour computes the foreground colour, and
+  // SetForegroundColour changes the foreground colour. The ordering is
+  // important.
+
+  XtVaSetValues ((Widget) widget,
+                  XmNforeground, foregroundColour.AllocColour(XtDisplay((Widget) widget)),
+                  NULL);
+}
+
+void wxDoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour)
+{
+  wxComputeColours (XtDisplay((Widget) widget), & backgroundColour,
+                           (wxColour*) NULL);
+
+  XtVaSetValues ((Widget) widget,
+                  XmNbackground, g_itemColors[wxBACK_INDEX].pixel,
+                  XmNtopShadowColor, g_itemColors[wxTOPS_INDEX].pixel,
+                  XmNbottomShadowColor, g_itemColors[wxBOTS_INDEX].pixel,
+                  XmNforeground, g_itemColors[wxFORE_INDEX].pixel,
+                  NULL);
+
+  if (changeArmColour)
+    XtVaSetValues ((Widget) widget,
+                  XmNarmColor, g_itemColors[wxSELE_INDEX].pixel,
+               NULL);
+}
+
+