]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/utils.h
add comparison operators for wxPen/BrushStyle and wxSOLID/... constants to avoid...
[wxWidgets.git] / include / wx / utils.h
index 77bfe8550c286147b7208317eff5b10be26950e0..95cf1a6ada8cc27ce91f02fb1340ca93505044a2 100644 (file)
@@ -9,8 +9,8 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef _WX_UTILSH__
-#define _WX_UTILSH__
+#ifndef _WX_UTILS_H_
+#define _WX_UTILS_H_
 
 // ----------------------------------------------------------------------------
 // headers
@@ -46,7 +46,7 @@ class WXDLLIMPEXP_FWD_BASE wxArrayInt;
 // Forward declaration
 // ----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_FWD_CORE wxProcess;
+class WXDLLIMPEXP_FWD_BASE wxProcess;
 class WXDLLIMPEXP_FWD_CORE wxFrame;
 class WXDLLIMPEXP_FWD_CORE wxWindow;
 class WXDLLIMPEXP_FWD_CORE wxWindowList;
@@ -87,6 +87,11 @@ WXDLLIMPEXP_CORE void wxBell();
 WXDLLIMPEXP_BASE void wxBell();
 #endif
 
+#if wxUSE_MSGDLG
+// Show wxWidgets information
+WXDLLIMPEXP_CORE void wxInfoMessageBox(wxWindow* parent);
+#endif // wxUSE_MSGDLG
+
 // Get OS description as a user-readable string
 WXDLLIMPEXP_BASE wxString wxGetOsDescription();
 
@@ -131,7 +136,7 @@ class WXDLLIMPEXP_BASE wxPlatform
 public:
     wxPlatform() { Init(); }
     wxPlatform(const wxPlatform& platform) { Copy(platform); }
-    void operator = (const wxPlatform& platform) { Copy(platform); }
+    void operator = (const wxPlatform& platform) { if (&platform != this) Copy(platform); }
     void Copy(const wxPlatform& platform);
 
     // Specify an optional default value
@@ -212,6 +217,7 @@ public:
     wxMouseState()
         : m_x(0), m_y(0),
           m_leftDown(false), m_middleDown(false), m_rightDown(false),
+          m_aux1Down(false), m_aux2Down(false),
           m_controlDown(false), m_shiftDown(false), m_altDown(false),
           m_metaDown(false)
     {}
@@ -222,6 +228,8 @@ public:
     bool        LeftDown()    { return m_leftDown; }
     bool        MiddleDown()  { return m_middleDown; }
     bool        RightDown()   { return m_rightDown; }
+    bool        Aux1Down()    { return m_aux1Down; }
+    bool        Aux2Down()    { return m_aux2Down; }
 
     bool        ControlDown() { return m_controlDown; }
     bool        ShiftDown()   { return m_shiftDown; }
@@ -242,6 +250,8 @@ public:
     void        SetLeftDown(bool down)   { m_leftDown = down; }
     void        SetMiddleDown(bool down) { m_middleDown = down; }
     void        SetRightDown(bool down)  { m_rightDown = down; }
+    void        SetAux1Down(bool down)   { m_aux1Down = down; }
+    void        SetAux2Down(bool down)   { m_aux2Down = down; }
 
     void        SetControlDown(bool down) { m_controlDown = down; }
     void        SetShiftDown(bool down)   { m_shiftDown = down; }
@@ -255,6 +265,8 @@ private:
     bool        m_leftDown : 1;
     bool        m_middleDown : 1;
     bool        m_rightDown : 1;
+    bool        m_aux1Down : 1;
+    bool        m_aux2Down : 1;
 
     bool        m_controlDown : 1;
     bool        m_shiftDown : 1;
@@ -478,6 +490,9 @@ wxDEPRECATED( inline bool wxSetEnv(const wxString& var, int value) );
 inline bool wxSetEnv(const wxString& var, int value)
 {
     wxASSERT_MSG( value == 0, "using non-NULL integer as string?" );
+
+    wxUnusedVar(value); // fix unused parameter warning in release build
+
     return wxUnsetEnv(var);
 }
 #endif // WXWIN_COMPATIBILITY_2_8
@@ -512,13 +527,10 @@ WXDLLIMPEXP_BASE wxString wxGetUserName();
 WXDLLIMPEXP_BASE wxString wxGetHomeDir();
 WXDLLIMPEXP_BASE const wxChar* wxGetHomeDir(wxString *pstr);
 
-// Get the user's home dir (caller must copy --- volatile)
-// returns NULL is no HOME dir is known
-#if defined(__UNIX__) && wxUSE_UNICODE && !defined(__WINE__)
-WXDLLIMPEXP_BASE const wxMB2WXbuf wxGetUserHome(const wxString& user = wxEmptyString);
-#else
-WXDLLIMPEXP_BASE wxChar* wxGetUserHome(const wxString& user = wxEmptyString);
-#endif
+// Get the user's (by default use the current user name) home dir,
+// return empty string on error
+WXDLLIMPEXP_BASE wxString wxGetUserHome(const wxString& user = wxEmptyString);
+
 
 #if wxUSE_LONGLONG
     typedef wxLongLong wxDiskspaceSize_t;
@@ -531,6 +543,18 @@ WXDLLIMPEXP_BASE bool wxGetDiskSpace(const wxString& path,
                                      wxDiskspaceSize_t *pTotal = NULL,
                                      wxDiskspaceSize_t *pFree = NULL);
 
+
+
+extern "C"
+{
+typedef int (wxCMPFUNC_CONV *CMPFUNCDATA)(const void* pItem1, const void* pItem2, const void* user_data);
+}
+
+
+WXDLLIMPEXP_BASE void wxQsort(void *const pbase, size_t total_elems,
+                              size_t size, CMPFUNCDATA cmp, const void* user_data);
+
+
 #if wxUSE_GUI // GUI only things from now on
 
 // ----------------------------------------------------------------------------
@@ -625,16 +649,28 @@ WXDLLEXPORT bool wxCheckForInterrupt(wxWindow *wnd);
 // Consume all events until no more left
 WXDLLEXPORT void wxFlushEvents();
 
-// a class which disables all windows (except, may be, thegiven one) in its
+// a class which disables all windows (except, may be, the given one) in its
 // ctor and enables them back in its dtor
 class WXDLLEXPORT wxWindowDisabler
 {
 public:
-    wxWindowDisabler(wxWindow *winToSkip = (wxWindow *)NULL);
+    // this ctor conditionally disables all windows: if the argument is false,
+    // it doesn't do anything
+    wxWindowDisabler(bool disable = true);
+
+    // ctor disables all windows except winToSkip
+    wxWindowDisabler(wxWindow *winToSkip);
+
+    // dtor enables back all windows disabled by the ctor
     ~wxWindowDisabler();
 
 private:
+    // disable all windows except the given one (used by both ctors)
+    void DoDisable(wxWindow *winToSkip = NULL);
+
+
     wxWindowList *m_winDisabled;
+    bool m_disabled;
 
     DECLARE_NO_COPY_CLASS(wxWindowDisabler)
 };
@@ -709,9 +745,16 @@ inline struct _XDisplay *wxGetX11Display()
 // wxYield(): these functions are obsolete, please use wxApp methods instead!
 // ----------------------------------------------------------------------------
 
+// avoid redeclaring this function here if it had been already declated by
+// wx/app.h, this results in warnings from g++ with -Wredundant-decls
+#ifndef wx_YIELD_DECLARED
+#define wx_YIELD_DECLARED
+
 // Yield to other apps/messages
 WXDLLIMPEXP_BASE bool wxYield();
 
+#endif // wx_YIELD_DECLARED
+
 // Like wxYield, but fails silently if the yield is recursive.
 WXDLLIMPEXP_BASE bool wxYieldIfNeeded();