]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/utilsres.cpp
Menu/toolbar event handling now tries the window with the focus first.
[wxWidgets.git] / src / gtk / utilsres.cpp
index db55e4f964498e5272902aa2aeb1c48a9906d90e..52e3199178c3e31ff251b6e9f3571a45aedbfb63 100644 (file)
@@ -2,8 +2,7 @@
 // Name:        utils.cpp
 // Purpose:
 // Author:      Robert Roebling
-// Created:     01/02/97
-// Id:
+// Id:          $Id$
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
 // Licence:           wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -58,19 +57,22 @@ extern XrmDatabase wxResourceDatabase;
 
 static char *GetResourcePath(char *buf, char *name, bool create)
 {
-    if (create && FileExists(name)) {
+    if (create && FileExists(name)) 
+    {
         strcpy(buf, name);
         return buf; // Exists so ...
     }
     if (*name == '/')
         strcpy(buf, name);
-    else {
+    else 
+    {
         // Put in standard place for resource files if not absolute
         strcpy(buf, DEFAULT_XRESOURCE_DIR);
         strcat(buf, "/");
         strcat(buf, FileNameFromPath(name));
     }
-    if (create) {
+    if (create) 
+    {
         // Touch the file to create it
         FILE *fd = fopen(buf, "w");
         if (fd) fclose(fd);
@@ -83,7 +85,7 @@ static char *GetResourcePath(char *buf, char *name, bool create)
 // the Real User, then determine the Real home dir.
 static char *GetIniFile(char *dest, const char *filename)
 {
-    char *home = NULL;
+    char *home = (char *) NULL;
     if (filename && wxIsAbsolutePath(filename))
     {
       strcpy(dest, filename);
@@ -110,7 +112,7 @@ static char *GetIniFile(char *dest, const char *filename)
     return dest;
 }
 
-static void wxXMergeDatabases(void)
+static void wxXMergeDatabases()
 {
     XrmDatabase homeDB, serverDB, applicationDB;
     char filenamebuf[1024];
@@ -130,10 +132,13 @@ static void wxXMergeDatabases(void)
     // window when the server initializes and loaded into the display
     // structure on XOpenDisplay;
     // if not defined, use .Xdefaults
-    if (XResourceManagerString(GDK_DISPLAY()) != NULL) {
+    if (XResourceManagerString(GDK_DISPLAY()) != NULL) 
+    {
         serverDB = XrmGetStringDatabase(XResourceManagerString(GDK_DISPLAY()));
-    } else {
-        (void)GetIniFile(filename, NULL);
+    } 
+    else 
+    {
+        (void)GetIniFile(filename, (char *) NULL);
         serverDB = XrmGetFileDatabase(filename);
     }
     if (serverDB)
@@ -142,9 +147,10 @@ static void wxXMergeDatabases(void)
     // Open XENVIRONMENT file, or if not defined, the .Xdefaults,
     // and merge into existing database
 
-    if ((environment = getenv("XENVIRONMENT")) == NULL) {
+    if ((environment = getenv("XENVIRONMENT")) == NULL) 
+    {
         size_t len;
-        environment = GetIniFile(filename, NULL);
+        environment = GetIniFile(filename, (const char *) NULL);
         len = strlen(environment);
 #if !defined(SVR4) || defined(__sgi)
         (void)gethostname(environment + len, 1024 - len);
@@ -160,13 +166,14 @@ static void wxXMergeDatabases(void)
 // called on application exit
 //-----------------------------------------------------------------------------
 
-void wxFlushResources(void)
+void wxFlushResources()
 {
     char nameBuffer[512];
 
     wxNode *node = wxTheResourceCache->First();
     while (node) {
-        char *file = node->key.string;
+        wxString str = node->GetKeyString();
+        char *file = WXSTRINGCAST str;
         // If file doesn't exist, create it first.
         (void)GetResourcePath(nameBuffer, file, TRUE);
 
@@ -249,16 +256,21 @@ bool wxGetResource(const wxString& section, const wxString& entry, char **value,
         wxXMergeDatabases();
 
     XrmDatabase database;
-    if (file) {
+    if (!file.IsEmpty()) 
+    {
         char buffer[500];
         // Is this right? Trying to get it to look in the user's
         // home directory instead of current directory -- JACS
         (void)GetIniFile(buffer, file);
 
-        wxNode *node = wxTheResourceCache->Find(buffer);
+        wxNode *node = (wxNode*) NULL;  /* suppress egcs warning */
+        node = wxTheResourceCache->Find(buffer);
         if (node)
+        {
             database = (XrmDatabase)node->Data();
-        else {
+        }
+        else
+        {
             database = XrmGetFileDatabase(buffer);
             wxLogTrace(wxTraceResAlloc, "Get: Number = %d", wxTheResourceCache->Number());
             wxTheResourceCache->Append(buffer, (wxObject *)database);
@@ -275,11 +287,13 @@ bool wxGetResource(const wxString& section, const wxString& entry, char **value,
 
     bool success = XrmGetResource(database, buf, "*", str_type, &xvalue);
     // Try different combinations of upper/lower case, just in case...
-    if (!success) {
+    if (!success) 
+    {
         buf[0] = (isupper(buf[0]) ? tolower(buf[0]) : toupper(buf[0]));
         success = XrmGetResource(database, buf, "*", str_type,        &xvalue);
     }
-    if (success) {
+    if (success) 
+    {
         if (*value)
             delete[] *value;
         *value = new char[xvalue.size + 1];
@@ -291,10 +305,11 @@ bool wxGetResource(const wxString& section, const wxString& entry, char **value,
 
 bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file )
 {
-    char *s = NULL;
+    char *s = (char *) NULL;
     bool succ = wxGetResource(section, entry, &s, file);
-    if (succ) {
-        *value = (float)strtod(s, NULL);
+    if (succ) 
+    {
+        *value = (float)strtod(s, (char **) NULL);
         delete[]s;
         return TRUE;
     } else
@@ -303,10 +318,11 @@ bool wxGetResource(const wxString& section, const wxString& entry, float *value,
 
 bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file )
 {
-    char *s = NULL;
+    char *s = (char *) NULL;
     bool succ = wxGetResource(section, entry, &s, file);
-    if (succ) {
-        *value = strtol(s, NULL, 10);
+    if (succ) 
+    {
+        *value = strtol(s, (char **) NULL, 10);
         delete[]s;
         return TRUE;
     } else
@@ -315,9 +331,10 @@ bool wxGetResource(const wxString& section, const wxString& entry, long *value,
 
 bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file )
 {
-    char *s = NULL;
+    char *s = (char *) NULL;
     bool succ = wxGetResource(section, entry, &s, file);
-    if (succ) {
+    if (succ) 
+    {
         // Handle True, False here
         // True, Yes, Enables, Set or  Activated
         if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A')
@@ -327,7 +344,7 @@ bool wxGetResource(const wxString& section, const wxString& entry, int *value, c
             *value = FALSE;
         // Handle as Integer
         else
-            *value = (int)strtol(s, NULL, 10);
+            *value = (int)strtol(s, (char **) NULL, 10);
         delete[]s;
         return TRUE;
     } else