]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/panelcmn.cpp
Add some version checks to help compiling on OSX.
[wxWidgets.git] / src / common / panelcmn.cpp
index 60192f151d76d2641a91f18da945e4d97a9ecf7e..cdc191a7aff82fcc018ba1c1208feaf13599c6d2 100644 (file)
-/////////////////////////////////////////////////////////////////////////////\r
-// Name:        src/common/panelcmn.cpp\r
-// Purpose:     wxPanel common code\r
-// Author:      Julian Smart, Robert Roebling, Vadim Zeitlin\r
-// Modified by:\r
-// Created:     04/01/98\r
-// RCS-ID:      $Id: panelg.cpp 45056 2007-03-25 22:41:11Z VZ $\r
-// Copyright:   (c) Julian Smart\r
-// Licence:     wxWindows licence\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-// ============================================================================\r
-// declarations\r
-// ============================================================================\r
-\r
-// ----------------------------------------------------------------------------\r
-// headers\r
-// ----------------------------------------------------------------------------\r
-\r
-// For compilers that support precompilation, includes "wx.h".\r
-#include "wx/wxprec.h"\r
-\r
-#ifdef __BORLANDC__\r
-    #pragma hdrstop\r
-#endif\r
-\r
-#ifndef WX_PRECOMP\r
-    #include "wx/object.h"\r
-    #include "wx/font.h"\r
-    #include "wx/colour.h"\r
-    #include "wx/settings.h"\r
-    #include "wx/log.h"\r
-    #include "wx/panel.h"\r
-    #include "wx/containr.h"\r
-#endif\r
-\r
-// ----------------------------------------------------------------------------\r
-// XTI\r
-// ----------------------------------------------------------------------------\r
-\r
-wxDEFINE_FLAGS( wxPanelStyle )\r
-wxBEGIN_FLAGS( wxPanelStyle )\r
-    // new style border flags, we put them first to\r
-    // use them for streaming out\r
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)\r
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)\r
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)\r
-    wxFLAGS_MEMBER(wxBORDER_RAISED)\r
-    wxFLAGS_MEMBER(wxBORDER_STATIC)\r
-    wxFLAGS_MEMBER(wxBORDER_NONE)\r
-\r
-    // old style border flags\r
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)\r
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)\r
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)\r
-    wxFLAGS_MEMBER(wxRAISED_BORDER)\r
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)\r
-    wxFLAGS_MEMBER(wxBORDER)\r
-\r
-    // standard window styles\r
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)\r
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)\r
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)\r
-    wxFLAGS_MEMBER(wxWANTS_CHARS)\r
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)\r
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB)\r
-    wxFLAGS_MEMBER(wxVSCROLL)\r
-    wxFLAGS_MEMBER(wxHSCROLL)\r
-wxEND_FLAGS( wxPanelStyle )\r
-\r
-wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxPanel, wxWindow, "wx/panel.h")\r
-\r
-wxBEGIN_PROPERTIES_TABLE(wxPanel)\r
-    wxPROPERTY_FLAGS( WindowStyle, wxPanelStyle, long, \\r
-                      SetWindowStyleFlag, GetWindowStyleFlag, \\r
-                      wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \\r
-                      wxT("Helpstring"), wxT("group")) // style\r
-    // style wxTAB_TRAVERSAL\r
-wxEND_PROPERTIES_TABLE()\r
-\r
-wxEMPTY_HANDLERS_TABLE(wxPanel)\r
-\r
-wxCONSTRUCTOR_6( wxPanel, wxWindow*, Parent, wxWindowID, Id, \\r
-                 wxPoint, Position, wxSize, Size, long, WindowStyle, \\r
-                 wxString, Name)\r
-\r
-\r
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/panelcmn.cpp
+// Purpose:     wxPanel common code
+// Author:      Julian Smart, Robert Roebling, Vadim Zeitlin
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+    #include "wx/object.h"
+    #include "wx/font.h"
+    #include "wx/colour.h"
+    #include "wx/settings.h"
+    #include "wx/log.h"
+    #include "wx/panel.h"
+    #include "wx/containr.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// XTI
+// ----------------------------------------------------------------------------
+
+wxDEFINE_FLAGS( wxPanelStyle )
+wxBEGIN_FLAGS( wxPanelStyle )
+    // new style border flags, we put them first to
+    // use them for streaming out
+    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+    wxFLAGS_MEMBER(wxBORDER_RAISED)
+    wxFLAGS_MEMBER(wxBORDER_STATIC)
+    wxFLAGS_MEMBER(wxBORDER_NONE)
+
+    // old style border flags
+    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+    wxFLAGS_MEMBER(wxRAISED_BORDER)
+    wxFLAGS_MEMBER(wxSTATIC_BORDER)
+    wxFLAGS_MEMBER(wxBORDER)
+
+    // standard window styles
+    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+    wxFLAGS_MEMBER(wxWANTS_CHARS)
+    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB)
+    wxFLAGS_MEMBER(wxVSCROLL)
+    wxFLAGS_MEMBER(wxHSCROLL)
+wxEND_FLAGS( wxPanelStyle )
+
+wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxPanel, wxWindow, "wx/panel.h")
+
+wxBEGIN_PROPERTIES_TABLE(wxPanel)
+    wxPROPERTY_FLAGS( WindowStyle, wxPanelStyle, long, \
+                      SetWindowStyleFlag, GetWindowStyleFlag, \
+                      wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \
+                      wxT("Helpstring"), wxT("group")) // style
+    // style wxTAB_TRAVERSAL
+wxEND_PROPERTIES_TABLE()
+
+wxEMPTY_HANDLERS_TABLE(wxPanel)
+
+wxCONSTRUCTOR_6( wxPanel, wxWindow*, Parent, wxWindowID, Id, \
+                 wxPoint, Position, wxSize, Size, long, WindowStyle, \
+                 wxString, Name)
+
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxPanelBase creation
+// ----------------------------------------------------------------------------
+
+bool wxPanelBase::Create(wxWindow *parent, wxWindowID id,
+                         const wxPoint& pos,
+                         const wxSize& size,
+                         long style,
+                         const wxString& name)
+{
+    if ( !wxWindow::Create(parent, id, pos, size, style, name) )
+        return false;
+
+    // so that non-solid background renders correctly under GTK+:
+    SetThemeEnabled(true);
+
+#if defined(__WXWINCE__) && (defined(__POCKETPC__) || defined(__SMARTPHONE__))
+    // Required to get solid control backgrounds under WinCE
+    SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
+#endif
+
+    return true;
+}
+
+void wxPanelBase::InitDialog()
+{
+    wxInitDialogEvent event(GetId());
+    event.SetEventObject(this);
+    GetEventHandler()->ProcessEvent(event);
+}