]> git.saurik.com Git - wxWidgets.git/commitdiff
Made icons configurable via a wxMApp virtual function. Tested on wxGTK only,
authorKarsten Ballüder <ballueder@usa.net>
Mon, 5 Jul 1999 11:22:45 +0000 (11:22 +0000)
committerKarsten Ballüder <ballueder@usa.net>
Mon, 5 Jul 1999 11:22:45 +0000 (11:22 +0000)
added it for all ports, though.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

22 files changed:
docs/latex/wx/app.tex
include/wx/defs.h
include/wx/generic/error.xpm
include/wx/generic/info.xpm
include/wx/generic/question.xpm
include/wx/generic/warning.xpm
include/wx/gtk/app.h
include/wx/gtk1/app.h
include/wx/mac/app.h
include/wx/motif/app.h
include/wx/msw/app.h
include/wx/qt/app.h
include/wx/stubs/app.h
src/generic/msgdlgg.cpp
src/generic/progdlgg.cpp
src/gtk/app.cpp
src/gtk/button.cpp
src/gtk/msgdlg.cpp
src/gtk1/app.cpp
src/gtk1/button.cpp
src/gtk1/msgdlg.cpp
src/msw/app.cpp

index b8833be0e6c6171a1538bfd621ad21a32698fc24..12e553cd56b35f074f4a463ef51350b64c003a89 100644 (file)
@@ -441,3 +441,15 @@ needs to use the top window.
 
 \helpref{wxApp::GetTopWindow}{wxappgettopwindow}, \helpref{wxApp::OnInit}{wxapponinit}
 
+\membersection{wxApp::GetStdIcon}\label{wxappgetstdicon}
+
+\func{virtual wxIcon}{GetStdIcon}{\param{int }{which}} const
+
+Returns the icons used by wxWindows internally, e.g. the ones used for 
+message boxes.  This function is used internally and 
+can be overridden by the user to change the default icons.
+
+\wxheading{Parameters}
+
+\docparam{which}{One of the wxICON_XXX defines and chooses which icon to return.}
+
index 679247afa28dab6260a1cec561881ca70c11ccbc..565f80c520d3816fda4872fbd952bafb2e8b7fbd 100644 (file)
@@ -402,7 +402,7 @@ enum
   wxMGL_UNIX,               // MGL with direct hardware access
   wxMGL_X,                  // MGL on X 
   wxMGL_WIN32,              // MGL on Win32
-  wxMGL_OS2,                // MGL on OS/2
+  wxMGL_OS2                 // MGL on OS/2
 };
 
 // ----------------------------------------------------------------------------
@@ -862,6 +862,8 @@ typedef  wxUint16        wxWord;
 
 #define wxICON_EXCLAMATION      0x00000040
 #define wxICON_HAND             0x00000080
+#define wxICON_WARNING          wxICON_EXCLAMATION
+#define wxICON_ERROR            wxICON_HAND
 #define wxICON_QUESTION         0x00000100
 #define wxICON_INFORMATION      0x00000200
 #define wxICON_STOP             wxICON_HAND
index 2d40c4f95bdf12d20cd7b217795e8e5a0b7ac526..4e9f8b0c229d909ab8ec3d06bebd4385111b2f29 100644 (file)
@@ -1,5 +1,5 @@
 /* XPM */
-static char * error[] = {
+static char * error_xpm[] = {
 "48 48 78 1",
 "      c None",
 ".     c #000000",
index 54fc246dfbf815e3189de799943972819ad9f80d..8fb53a9db8cbdfd767d04b39817a61bacbe419a3 100644 (file)
@@ -1,5 +1,5 @@
 /* XPM */
-static char * info[] = {
+static char * info_xpm[] = {
 "48 48 159 2",
 "      c None",
 ".     c #12165C",
index 4e835602bdf2f5b94a43bf65fb99ed3c0cc0e345..da3708112385ff1f4214aefc8bf4830c33ce10a0 100644 (file)
@@ -1,5 +1,5 @@
 /* XPM */
-static char * question[] = {
+static char * question_xpm[] = {
 "48 48 165 2",
 "      c None",
 ".     c #000000",
index f1b4d9162d1f2c037dfb5b807ef046ee31f9cc3c..f030fa3313a5216f60e40d2d2bb26d093953b425 100644 (file)
@@ -1,5 +1,5 @@
 /* XPM */
-static char * warning[] = {
+static char * warning_xpm[] = {
 "48 48 151 2",
 "      c None",
 ".     c #C70707",
index dbf52b110cb1344660f553d7ab83000bdfa59e32..fc88199936dbff3522c08fdff1a72fe579d30445 100644 (file)
@@ -17,6 +17,7 @@
 #include "wx/defs.h"
 #include "wx/window.h"
 #include "wx/frame.h"
+#include "wx/icon.h"
 
 //-----------------------------------------------------------------------------
 // classes
@@ -81,6 +82,9 @@ class wxApp: public wxEvtHandler
     virtual bool Pending();
     virtual void Dispatch();
 
+    /** Returns the standard icons for the msg dialogs, implemented in 
+        src/generic/msgdlgg.cpp and src/gtk/app.cpp. */
+    virtual wxIcon GetStdIcon(int which) const;
     inline void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
     inline bool GetWantDebugOutput() { return m_wantDebugOutput; }
 
index dbf52b110cb1344660f553d7ab83000bdfa59e32..fc88199936dbff3522c08fdff1a72fe579d30445 100644 (file)
@@ -17,6 +17,7 @@
 #include "wx/defs.h"
 #include "wx/window.h"
 #include "wx/frame.h"
+#include "wx/icon.h"
 
 //-----------------------------------------------------------------------------
 // classes
@@ -81,6 +82,9 @@ class wxApp: public wxEvtHandler
     virtual bool Pending();
     virtual void Dispatch();
 
+    /** Returns the standard icons for the msg dialogs, implemented in 
+        src/generic/msgdlgg.cpp and src/gtk/app.cpp. */
+    virtual wxIcon GetStdIcon(int which) const;
     inline void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
     inline bool GetWantDebugOutput() { return m_wantDebugOutput; }
 
index 02ed040e88e98d6c5419ba6de110b58ecd9a8425..7cab45cffaf21682e922de8bc82ae77dbbcfa63e 100644 (file)
@@ -67,6 +67,11 @@ class WXDLLEXPORT wxApp: public wxEvtHandler
   virtual int OnRun() { return MainLoop(); };
   virtual int OnExit() { return 0; }
 
+
+  /** Returns the standard icons for the msg dialogs, implemented in 
+      src/generic/msgdlgg.cpp and src/gtk/app.cpp. */
+  virtual wxIcon GetStdIcon(int which) const;
+
   inline void SetPrintMode(int mode) { m_printMode = mode; }
   inline int GetPrintMode() const { return m_printMode; }
 
index 2b24418913582f4604fcae6ad52e5b0b3cc14aa1..d70e0d98be691c9dfbca490903141f9ecda9604b 100644 (file)
@@ -67,6 +67,10 @@ class WXDLLEXPORT wxApp: public wxEvtHandler
   virtual int OnRun() { return MainLoop(); };
   virtual int OnExit() { return 0; }
 
+  /** Returns the standard icons for the msg dialogs, implemented in 
+      src/generic/msgdlgg.cpp and src/gtk/app.cpp. */
+  virtual wxIcon GetStdIcon(int which) const;
+
   inline void SetPrintMode(int mode) { m_printMode = mode; }
   inline int GetPrintMode() const { return m_printMode; }
 
index 0b79229f8b55cf256e54512a2c525df2851af238..b6b47fc9fbd2ebe9c2cf402a32eb2fe4ba64478d 100644 (file)
@@ -19,6 +19,7 @@
 #include "wx/defs.h"
 #include "wx/object.h"
 #include "wx/event.h"
+#include "wx/icon.h"
 
 class WXDLLEXPORT wxFrame;
 class WXDLLEXPORT wxWindow;
@@ -67,6 +68,9 @@ class WXDLLEXPORT wxApp: public wxEvtHandler
   // Called to set off the main loop
   virtual int OnRun() { return MainLoop(); };
   virtual int OnExit() { return 0; }
+  /** Returns the standard icons for the msg dialogs, implemented in 
+      src/generic/msgdlgg.cpp and src/gtk/app.cpp. */
+  virtual wxIcon GetStdIcon(int which) const;
 
   // called when a fatal exception occurs, this function should take care not
   // to do anything which might provoke a nested exception!
index cb50ba9c9e5318745cbcf0a72ff4df8bcf259ea4..85358825205e986398d286ac3b7b97722d6deac9 100644 (file)
@@ -68,6 +68,9 @@ class WXDLLEXPORT wxApp: public wxEvtHandler
   // Called to set off the main loop
   virtual int OnRun() { return MainLoop(); };
   virtual int OnExit() { return 0; }
+  /** Returns the standard icons for the msg dialogs, implemented in 
+      src/generic/msgdlgg.cpp and src/gtk/app.cpp. */
+  virtual wxIcon GetStdIcon(int which) const;
 
   inline void SetPrintMode(int mode) { m_printMode = mode; }
   inline int GetPrintMode() const { return m_printMode; }
index 67bceb9169bb7746f38ec307e6958b4da034597d..fba1c3f2416568306bf94aaad9ab8fbd07c62311 100644 (file)
@@ -67,6 +67,10 @@ class WXDLLEXPORT wxApp: public wxEvtHandler
   virtual int OnRun() { return MainLoop(); };
   virtual int OnExit() { return 0; }
 
+  /** Returns the standard icons for the msg dialogs, implemented in 
+      src/generic/msgdlgg.cpp and src/gtk/app.cpp. */
+  virtual wxIcon GetStdIcon(int which) const;
+
   inline void SetPrintMode(int mode) { m_printMode = mode; }
   inline int GetPrintMode() const { return m_printMode; }
 
index 54882a12937c11ddad5273f344d018b31c68d0e0..3bb87d73d4a48aa90d24e829cb51e8dfbc35e8b2 100644 (file)
@@ -29,6 +29,7 @@
     #include "wx/layout.h"
     #include "wx/intl.h"
     #include "wx/icon.h"
+#   include "wx/app.h"
 #endif
 
 #include <stdio.h>
 // icons
 // ----------------------------------------------------------------------------
 
-// MSW icons are in the ressources, for all other platforms - in XPM files
-#ifndef __WXMSW__
-    #include "wx/generic/info.xpm"
-    #include "wx/generic/question.xpm"
-    #include "wx/generic/warning.xpm"
-    #include "wx/generic/error.xpm"
-#endif // __WXMSW__
 
 
 #if !USE_SHARED_LIBRARY
@@ -63,6 +57,46 @@ END_EVENT_TABLE()
 IMPLEMENT_CLASS(wxGenericMessageDialog, wxDialog)
 #endif
 
+#ifdef _WXGTK__
+#   include "wx/gtk/info.xpm"
+#   include "wx/gtk/error.xpm"
+#   include "wx/gtk/question.xpm"
+#   include "wx/gtk/warning.xpm"
+#else
+   // MSW icons are in the ressources, for all other platforms - in XPM files
+#   ifndef __WXMSW__
+#      include "wx/generic/info.xpm"
+#      include "wx/generic/question.xpm"
+#      include "wx/generic/warning.xpm"
+#      include "wx/generic/error.xpm"
+#   endif // __WXMSW__
+#endif
+   
+wxIcon
+wxApp::GetStdIcon(int which) const
+{
+   switch(which)
+   {
+   case wxICON_INFORMATION:
+      return wxIcon(info_xpm);
+      break;
+   case wxICON_HAND:
+      return wxIcon(error_xpm);
+      break;
+   case wxICON_QUESTION:
+      return wxIcon(question_xpm);
+      break;
+   case wxICON_EXCLAMATION:
+      return wxIcon(warning_xpm);
+      break;
+   default:
+      wxFAIL_MSG("requested non existent standard icon");
+      return wxIcon(error_xpm);
+      break;
+   }
+}
+
+   
 wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent,
                                                 const wxString& message,
                                                 const wxString& caption,
@@ -77,43 +111,8 @@ wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent,
     wxLayoutConstraints *c;
     SetAutoLayout(TRUE);
 
-    // create an icon
-    enum
-    {
-        Icon_Information,
-        Icon_Question,
-        Icon_Warning,
-        Icon_Error
-    } which;
-
-#ifdef __WXMSW__
-    static char *icons[] =
-    {
-        "wxICON_INFO",
-        "wxICON_QUESTION",
-        "wxICON_WARNING",
-        "wxICON_ERROR",
-    };
-#else // XPM icons
-    static char **icons[] =
-    {
-        info,
-        question,
-        warning,
-        error,
-    };
-#endif // !XPM/XPM
-
-    if ( style & wxICON_EXCLAMATION )
-        which = Icon_Warning;
-    else if ( style & wxICON_HAND )
-        which = Icon_Error;
-    else if ( style & wxICON_QUESTION )
-        which = Icon_Question;
-    else
-        which = Icon_Information;
-
-    wxStaticBitmap *icon = new wxStaticBitmap(this, -1, wxIcon(icons[which]));
+    wxStaticBitmap *icon = new wxStaticBitmap(this, -1,
+                                              wxTheApp->GetStdIcon(style & wxICON_MASK));
     const int iconSize = icon->GetBitmap().GetWidth();
 
     // split the message in lines
index f987808944002996ab054abece5762b78186ac23..0bd46a5ca9694ca8e7aa2755ddce4e63cf86b6e3 100644 (file)
@@ -81,8 +81,8 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
 
    m_msg = new wxStaticText(this, -1, message);
    c = new wxLayoutConstraints;
-   c->left.SameAs(this, wxLeft, 10);
-   c->top.SameAs(this, wxTop, 10);
+   c->left.SameAs(this, wxLeft, 2*LAYOUT_X_MARGIN);
+   c->top.SameAs(this, wxTop, 2*LAYOUT_Y_MARGIN);
    c->width.AsIs();
    c->height.AsIs();
    m_msg->SetConstraints(c);
@@ -254,12 +254,16 @@ wxProgressDialog::Update(int value, const wxString& newmsg)
            m_btnAbort->SetLabel(_("Close"));
        }
 
-       if ( !newmsg )
+/*I think the default should be the other way round. If the
+  application wants to set a "Done." message at the end, it should
+  supply it. Any serious objections to this change? Makes the
+  application programmers' work a little easier.
+  if ( !newmsg )
        {
            // also provide the finishing message if the application didn't
            m_msg->SetLabel(_("Done."));
        }
-
+*/
        m_state = Finished;
 
        // so that we return TRUE below
index e7ef18726865ce23f54daa3edd3e328e7500aea2..0aee0d7761bb1835db888c3fdd279427bdfc3cdc 100644 (file)
@@ -779,3 +779,31 @@ int wxEntry( int argc, char *argv[] )
     return retValue;
 }
 
+#   include "wx/gtk/info.xpm"
+#   include "wx/gtk/error.xpm"
+#   include "wx/gtk/question.xpm"
+#   include "wx/gtk/warning.xpm"
+   
+wxIcon
+wxApp::GetStdIcon(int which) const
+{
+   switch(which)
+   {
+   case wxICON_INFORMATION:
+      return wxIcon(info_xpm);
+      break;
+   case wxICON_HAND:
+      return wxIcon(error_xpm);
+      break;
+   case wxICON_QUESTION:
+      return wxIcon(question_xpm);
+      break;
+   case wxICON_EXCLAMATION:
+      return wxIcon(warning_xpm);
+      break;
+   default:
+      wxFAIL_MSG("requested non existent standard icon");
+      return wxIcon(error_xpm);
+      break;
+   }
+}
index cca8c9ebd31e37a414d010cb08ba46b067d8104b..ad9b36f8daa54dab65c79a1256feaccd51e9b156 100644 (file)
@@ -120,7 +120,8 @@ void wxButton::SetDefault(void)
     SetSize( m_x, m_y, m_width, m_height );
 }
 
-static wxSize wxButton::GetDefaultSize()
+/* static */
+wxSize wxButton::GetDefaultSize()
 {
     return wxSize(80,26);
 }
index 5e57beef40470d79a4b01e1314407e1a49d372c1..c1d4f486e9c4c4072c7ef7f212ce93c83eedb1f6 100644 (file)
@@ -30,6 +30,7 @@
 #include "wx/layout.h"
 #include "wx/intl.h"
 #include "wx/bitmap.h"
+#include "wx/app.h"
 #endif
 
 #include <stdio.h>
 #include "wx/gtk/msgdlg.h"
 #include "wx/statline.h"
 
-#include "wx/gtk/info.xpm"
-#include "wx/gtk/error.xpm"
-#include "wx/gtk/question.xpm"
-#include "wx/gtk/warning.xpm"
-
 ///////////////////////////////////////////////////////////////////
 // New dialog box implementations
 
@@ -107,19 +103,13 @@ wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent, const wxString
     wxSize message_size( wxSplitMessage2( message, this, text_pos_x ) );
 
     if (m_dialogStyle & wxICON_MASK)
-        if (message_size.y < 50) message_size.y = 50;
-    
-    if (m_dialogStyle & wxICON_INFORMATION)
-        (void) new wxStaticBitmap( this, -1, wxBitmap( info_xpm ), wxPoint(15,message_size.y/2-16) );
-    else
-    if (m_dialogStyle & wxICON_HAND)
-        (void) new wxStaticBitmap( this, -1, wxBitmap( error_xpm ), wxPoint(15,message_size.y/2-16) );
-    else
-    if (m_dialogStyle & wxICON_QUESTION)
-        (void) new wxStaticBitmap( this, -1, wxBitmap( question_xpm ), wxPoint(15,message_size.y/2-16) );
-    else
-    if (m_dialogStyle & wxICON_EXCLAMATION)
-        (void) new wxStaticBitmap( this, -1, wxBitmap( warning_xpm ), wxPoint(15,message_size.y/2-16) );
+    {
+       if (message_size.y < 50) message_size.y = 50;
+        (void) new wxStaticBitmap( this, -1,
+                                   wxTheApp->GetStdIcon(m_dialogStyle
+                                                        & wxICON_MASK),
+                                   wxPoint(15,message_size.y/2-16) ); 
+    }
 
     wxButton *ok = (wxButton *) NULL;
     wxButton *cancel = (wxButton *) NULL;
index e7ef18726865ce23f54daa3edd3e328e7500aea2..0aee0d7761bb1835db888c3fdd279427bdfc3cdc 100644 (file)
@@ -779,3 +779,31 @@ int wxEntry( int argc, char *argv[] )
     return retValue;
 }
 
+#   include "wx/gtk/info.xpm"
+#   include "wx/gtk/error.xpm"
+#   include "wx/gtk/question.xpm"
+#   include "wx/gtk/warning.xpm"
+   
+wxIcon
+wxApp::GetStdIcon(int which) const
+{
+   switch(which)
+   {
+   case wxICON_INFORMATION:
+      return wxIcon(info_xpm);
+      break;
+   case wxICON_HAND:
+      return wxIcon(error_xpm);
+      break;
+   case wxICON_QUESTION:
+      return wxIcon(question_xpm);
+      break;
+   case wxICON_EXCLAMATION:
+      return wxIcon(warning_xpm);
+      break;
+   default:
+      wxFAIL_MSG("requested non existent standard icon");
+      return wxIcon(error_xpm);
+      break;
+   }
+}
index cca8c9ebd31e37a414d010cb08ba46b067d8104b..ad9b36f8daa54dab65c79a1256feaccd51e9b156 100644 (file)
@@ -120,7 +120,8 @@ void wxButton::SetDefault(void)
     SetSize( m_x, m_y, m_width, m_height );
 }
 
-static wxSize wxButton::GetDefaultSize()
+/* static */
+wxSize wxButton::GetDefaultSize()
 {
     return wxSize(80,26);
 }
index 5e57beef40470d79a4b01e1314407e1a49d372c1..c1d4f486e9c4c4072c7ef7f212ce93c83eedb1f6 100644 (file)
@@ -30,6 +30,7 @@
 #include "wx/layout.h"
 #include "wx/intl.h"
 #include "wx/bitmap.h"
+#include "wx/app.h"
 #endif
 
 #include <stdio.h>
 #include "wx/gtk/msgdlg.h"
 #include "wx/statline.h"
 
-#include "wx/gtk/info.xpm"
-#include "wx/gtk/error.xpm"
-#include "wx/gtk/question.xpm"
-#include "wx/gtk/warning.xpm"
-
 ///////////////////////////////////////////////////////////////////
 // New dialog box implementations
 
@@ -107,19 +103,13 @@ wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent, const wxString
     wxSize message_size( wxSplitMessage2( message, this, text_pos_x ) );
 
     if (m_dialogStyle & wxICON_MASK)
-        if (message_size.y < 50) message_size.y = 50;
-    
-    if (m_dialogStyle & wxICON_INFORMATION)
-        (void) new wxStaticBitmap( this, -1, wxBitmap( info_xpm ), wxPoint(15,message_size.y/2-16) );
-    else
-    if (m_dialogStyle & wxICON_HAND)
-        (void) new wxStaticBitmap( this, -1, wxBitmap( error_xpm ), wxPoint(15,message_size.y/2-16) );
-    else
-    if (m_dialogStyle & wxICON_QUESTION)
-        (void) new wxStaticBitmap( this, -1, wxBitmap( question_xpm ), wxPoint(15,message_size.y/2-16) );
-    else
-    if (m_dialogStyle & wxICON_EXCLAMATION)
-        (void) new wxStaticBitmap( this, -1, wxBitmap( warning_xpm ), wxPoint(15,message_size.y/2-16) );
+    {
+       if (message_size.y < 50) message_size.y = 50;
+        (void) new wxStaticBitmap( this, -1,
+                                   wxTheApp->GetStdIcon(m_dialogStyle
+                                                        & wxICON_MASK),
+                                   wxPoint(15,message_size.y/2-16) ); 
+    }
 
     wxButton *ok = (wxButton *) NULL;
     wxButton *cancel = (wxButton *) NULL;
index 13b18068061c866d5e725fbf0948df7501e258f9..8b1b21727f3c5947d9ac942876896dcc197433b6 100644 (file)
@@ -43,7 +43,8 @@
     #include "wx/msgdlg.h"
     #include "wx/intl.h"
     #include "wx/dynarray.h"
-    #include "wx/wxchar.h"
+#   include "wx/wxchar.h"
+#   include "wx/icon.h"
 #endif
 
 #include "wx/log.h"
@@ -1148,6 +1149,30 @@ bool wxYield()
 
     return TRUE;
 }
+wxIcon
+wxApp::GetStdIcon(int which) const
+{
+   switch(which)
+   {
+   case wxICON_INFORMATION:
+      return wxIcon("wxICON_INFO");
+      break;
+   case wxICON_HAND:
+      return wxIcon("wxICON_ERROR");
+      break;
+   case wxICON_QUESTION:
+      return wxIcon("wxICON_QUESTION");
+      break;
+   case wxICON_EXCLAMATION:
+      return wxIcon("wxICON_WARNING");
+      break;
+   default:
+      wxFAIL_MSG("requested non existent standard icon");
+      return wxIcon("wxICON_ERROR");
+      break;
+   }
+}
+
 
 HINSTANCE wxGetInstance()
 {