]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dialog.h
compilation fixes
[wxWidgets.git] / include / wx / dialog.h
index 78c9a79d886cf52f08c6699548dc83444e79e5f2..709d6f5f0bdc47a933ae3539a590434b2f5ba227 100644 (file)
@@ -1,13 +1,83 @@
-#ifndef __DIALOGH_BASE__
-#define __DIALOGH_BASE__
-
-#if defined(__WINDOWS__)
-#include "wx/msw/dialog.h"
-#elif defined(__MOTIF__)
-#include "wx/xt/dialog.h"
-#elif defined(__GTK__)
-#include "wx/gtk/dialog.h"
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/dialog.h
+// Purpose:     wxDialogBase class
+// Author:      Vadim Zeitlin
+// Modified by:
+// Created:     29.06.99
+// RCS-ID:      $Id$
+// Copyright:   (c) Vadim Zeitlin
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_DIALOG_H_BASE_
+#define _WX_DIALOG_H_BASE_
+
+#include "wx/defs.h"
+#include "wx/panel.h"
+
+class WXDLLEXPORT wxDialogBase : public wxPanel
+{
+public:
+    // the modal dialogs have a return code - usually the id of the last
+    // pressed button
+    void SetReturnCode(int returnCode) { m_returnCode = returnCode; }
+    int GetReturnCode() const { return m_returnCode; }
+
+protected:
+    // functions to help with dialog layout
+    // ------------------------------------
+
+    // constants used in dialog layout
+    static const long LAYOUT_X_MARGIN;
+    static const long LAYOUT_Y_MARGIN;
+    static const long MARGIN_BETWEEN_BUTTONS;
+
+    // Split the message in lines putting them into the array and calculating
+    // the maximum line width/height which is returned as wxSize.
+    wxSize SplitTextMessage(const wxString& message, wxArrayString *lines);
+
+    // Creates the (possibly multiline) message, assuming each line has the
+    // size sizeText (which can be retrieved from SplitTextMessage). Returns
+    // the bottom border of the multiline text zone.
+    long CreateTextMessage(const wxArrayString& lines,
+                           const wxPoint& posText,
+                           const wxSize& sizeText);
+
+    // Returns the preferred size for the buttons in the dialog
+    wxSize GetStandardButtonSize(bool hasCancel = TRUE);
+
+    // Create the standard [Ok] and [Cancel] (if hasCancel) buttons centering
+    // them with respect to the dialog width wDialog at vertical position y.
+    // wButton and hButton is the size of the button (which can be retrieved
+    // from GetStandardButtonSize)
+    void CreateStandardButtons(long wDialog,
+                               long y,
+                               long wButton,
+                               long hButton,
+                               bool hasCancel = TRUE);
+
+    // Returns the standard height of single line text ctrl (it's not the same
+    // as the height of just text which may be retrieved from
+    // wxGetCharHeight())
+    long GetStandardTextHeight();
+
+    // the return code from modal dialog
+    int m_returnCode;
+};
+
+#if defined(__WXMSW__)
+    #include "wx/msw/dialog.h"
+#elif defined(__WXMOTIF__)
+    #include "wx/motif/dialog.h"
+#elif defined(__WXGTK__)
+    #include "wx/gtk/dialog.h"
+#elif defined(__WXQT__)
+    #include "wx/qt/dialog.h"
+#elif defined(__WXMAC__)
+    #include "wx/mac/dialog.h"
+#elif defined(__WXSTUBS__)
+    #include "wx/stubs/dialog.h"
 #endif
 
 #endif
-    // __DIALOGH_BASE__
+    // _WX_DIALOG_H_BASE_