]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/richmsgdlgg.cpp
Add wxRichMessageDialog class.
[wxWidgets.git] / src / generic / richmsgdlgg.cpp
diff --git a/src/generic/richmsgdlgg.cpp b/src/generic/richmsgdlgg.cpp
new file mode 100644 (file)
index 0000000..9f2efd9
--- /dev/null
@@ -0,0 +1,87 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/generic/richmsgdlgg.cpp
+// Purpose:     wxGenericRichMessageDialog
+// Author:      Rickard Westerlund
+// Created:     2010-07-04
+// RCS-ID:      $Id$
+// Copyright:   (c) 2010 wxWidgets team
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#if wxUSE_RICHMSGDLG
+
+#ifndef WX_PRECOMP
+    #include "wx/stattext.h"
+    #include "wx/sizer.h"
+#endif
+
+#include "wx/collpane.h"
+#include "wx/richmsgdlg.h"
+
+wxIMPLEMENT_CLASS(wxRichMessageDialog, wxDialog)
+
+// ----------------------------------------------------------------------------
+// Events and handlers
+// ----------------------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(wxGenericRichMessageDialog, wxRichMessageDialogBase)
+    EVT_COLLAPSIBLEPANE_CHANGED(wxID_ANY,
+                                wxGenericRichMessageDialog::OnPaneChanged)
+END_EVENT_TABLE()
+
+void wxGenericRichMessageDialog::OnPaneChanged(wxCollapsiblePaneEvent& event)
+{
+    if ( event.GetCollapsed() )
+        m_detailsPane->SetLabel( m_detailsExpanderCollapsedLabel );
+    else
+        m_detailsPane->SetLabel( m_detailsExpanderExpandedLabel );
+}
+
+// ----------------------------------------------------------------------------
+// wxGenericRichMessageDialog
+// ----------------------------------------------------------------------------
+
+void wxGenericRichMessageDialog::AddMessageDialogCheckBox(wxSizer *sizer)
+{
+    if ( !m_checkBoxText.empty() )
+    {
+        wxSizer *sizerCheckBox = new wxBoxSizer( wxHORIZONTAL );
+
+        m_checkBox = new wxCheckBox( this,
+                                     wxID_ANY,
+                                     m_checkBoxText );
+        m_checkBox->SetValue( m_checkBoxValue );
+        sizerCheckBox->Add( m_checkBox, 0, wxBOTTOM | wxALIGN_LEFT );
+
+        sizer->Add( sizerCheckBox, 0, wxTOP|wxLEFT|wxRIGHT | wxALIGN_LEFT, 10 );
+    }
+}
+
+void wxGenericRichMessageDialog::AddMessageDialogDetails(wxSizer *sizer)
+{
+    if ( !m_detailedText.empty() )
+    {
+        wxSizer *sizerDetails = new wxBoxSizer( wxHORIZONTAL );
+
+        m_detailsPane =
+            new wxCollapsiblePane( this, -1, m_detailsExpanderCollapsedLabel );
+
+        // add the detailed text
+        wxWindow *windowPane = m_detailsPane->GetPane();
+        wxSizer *sizerPane = new wxBoxSizer( wxHORIZONTAL );
+        sizerPane->Add( new wxStaticText( windowPane, -1, m_detailedText ) );
+        windowPane->SetSizer( sizerPane );
+
+        sizerDetails->Add( m_detailsPane, wxSizerFlags().Right().Expand() );
+        sizer->Add( sizerDetails, 0, wxTOP|wxLEFT|wxRIGHT | wxALIGN_LEFT, 10 );
+    }
+}
+
+#endif // wxUSE_RICHMSGDLG