\wxheading{Parameters}
\docparam{direction}{Specifies the direction for the centering. May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL}\rtfsp
-or {\tt wxBOTH}. It may also include {\tt wxCENTER\_FRAME} flag if you want to center the window
-on its parent and not on the screen (actually, this flag is added automatically for all controls
-because it makes no sense to center them on the screen)}
+or {\tt wxBOTH}. It may also include {\tt wxCENTRE\_ON\_SCREEN} flag if you
+want to center the window on the entire screen and not on its parent window.
+
+The flag {\tt wxCENTRE\_FRAME} is obsolete and should not be used any longer.
\wxheading{Remarks}
-The actual behaviour depends on the derived window. For a frame or dialog box,
-centring is relative to the whole display. For a panel item, centring is
-relative to the panel.
+If the window is a top level one (i.e. doesn't have a parent), it will be
+centered relative to the screen anyhow.
\wxheading{See also}
#define _WX_DEFS_H_
#ifdef __GNUG__
-#pragma interface "defs.h"
+ #pragma interface "defs.h"
#endif
-#include <stddef.h>
-
-#include "wx/setup.h"
-
-#ifdef PACKAGE
- #undef PACKAGE
-#endif
-#ifdef VERSION
- #undef VERSION
-#endif
-
-#include "wx/version.h"
-
// ----------------------------------------------------------------------------
// compiler and OS identification
// ----------------------------------------------------------------------------
#error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXPM__|__WXSTUBS__]"
#endif
+// ----------------------------------------------------------------------------
+// wxWindows options
+// ----------------------------------------------------------------------------
+
+#include <stddef.h>
+
+#include "wx/setup.h"
+
+// just in case they were defined in setup.h
+#undef PACKAGE
+#undef VERSION
+
+#include "wx/version.h"
+
// ============================================================================
// non portable C++ features
// ============================================================================
// get the haqndle of the window for the underlying window system: this
// is only used for wxWin itself or for user code which wants to call
// platform-specific APIs
- virtual WXWidget GetHandle() const;
+ virtual WXWidget GetHandle() const = 0;
protected:
// the window id - a number which uniquely identifies a window among
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#include "wx/setup.h" // always include this file (under Unix it's generated by configure)
-#include "wx/defs.h" // compiler definitions
+// compiler detection; includes setup.h
+#include "wx/defs.h"
-// check if to use precompiled headers
+// check if to use precompiled headers: do it for most Windows compilers unless
+// explicitly disabled by defining NOPCH
#if ((defined(__BORLANDC__) || defined(__VISUALC__) || defined(__WATCOMC__)) && defined(__WXMSW__)) || defined(__WXPM__)
#if !defined(NOPCH)
#define WX_PRECOMP
// For some reason, this must be defined for common dialogs to work.
#ifdef __WATCOMC__
-#define INCLUDE_COMMDLG_H 1
+ #define INCLUDE_COMMDLG_H 1
#endif
-// include the wx definitions
#ifdef WX_PRECOMP
+// include standard Windows headers
#ifdef __WXMSW__
-#include <windows.h>
-#include "wx/msw/winundef.h"
+ #include <windows.h>
+ #include "wx/msw/winundef.h"
#endif
+// include the most common wx headers
#include "wx/wx.h"
-
-#endif // WX_PRECOMP
-
+#endif // WX_PRECOMP
\ No newline at end of file
// define this to 1 to use HTML help even under Windows (by default, Windows
// version will HLP-based help)
-//#define USE_HTML_HELP 1
+#define USE_HTML_HELP 1
#if USE_HTML_HELP
# include "wx/helpbase.h"
#else
#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
#ifndef WX_PRECOMP
-#include "wx/wx.h"
+ #include "wx/wx.h"
#endif
#include "test.h"
// If 1, use a dialog. Otherwise use a frame.
#define USE_TABBED_DIALOG 0
-
+#if USE_TABBED_DIALOG
MyDialog* dialog = (MyDialog *) NULL;
+#else // !USE_TABBED_DIALOG
MyFrame* frame = (MyFrame *) NULL;
+#endif // USE_TABBED_DIALOG
IMPLEMENT_APP(MyApp)
#endif
}
-void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window)
+void MyApp::InitTabView(wxNotebook* notebook, wxPanel* window)
{
m_okButton = new wxButton(window, wxID_OK, "Close", wxPoint(-1, -1), wxSize(80, 25));
m_cancelButton = new wxButton(window, ID_DELETE_PAGE, "Delete page", wxPoint(-1, -1), wxSize(80, 25));
notebook->SetSelection(2);
}
+#if USE_TABBED_DIALOG
+
BEGIN_EVENT_TABLE(MyDialog, wxDialog)
EVT_BUTTON(wxID_OK, MyDialog::OnOK)
EVT_BUTTON(wxID_CANCEL, MyDialog::OnOK)
Centre(wxBOTH);
}
+#else // USE_TABBED_DIALOG
+
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_BUTTON(wxID_OK, MyFrame::OnOK)
EVT_BUTTON(ID_DELETE_PAGE, MyFrame::OnDeletePage)
EVT_BUTTON(ID_ADD_PAGE, MyFrame::OnAddPage)
- EVT_SIZE(MyFrame::OnSize)
EVT_IDLE(MyFrame::OnIdle)
END_EVENT_TABLE()
{
m_panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxCLIP_CHILDREN);
+ wxLayoutConstraints* c = new wxLayoutConstraints;
+ c->left.SameAs(this, wxLeft);
+ c->right.SameAs(this, wxRight);
+ c->top.SameAs(this, wxTop);
+ c->bottom.SameAs(this, wxBottom);
+ m_panel->SetConstraints(c);
+
// Note, omit the wxTAB_STYLE_COLOUR_INTERIOR, so we will guarantee a match
// with the panel background, and save a bit of time.
m_notebook = new wxNotebook(m_panel, ID_NOTEBOOK);
- wxLayoutConstraints* c = new wxLayoutConstraints;
+ c = new wxLayoutConstraints;
c->left.SameAs(m_panel, wxLeft, 4);
c->right.SameAs(m_panel, wxRight, 4);
c->top.SameAs(m_panel, wxTop, 4);
wxGetApp().InitTabView(m_notebook, m_panel);
m_panel->SetAutoLayout(TRUE);
+ SetAutoLayout(TRUE);
- m_panel->Layout();
-
- this->Centre(wxBOTH);
+ Centre(wxBOTH);
Show(TRUE);
}
-void MyFrame::OnSize(wxSizeEvent& event)
-{
- wxFrame::OnSize(event);
- m_panel->Layout();
-}
-
void MyFrame::OnIdle(wxIdleEvent& WXUNUSED(event))
{
static int s_nPages = -1;
SetTitle(title);
}
}
+
+#endif // USE_TABBED_DIALOG
// Created: 25/10/98
// RCS-ID: $Id$
// Copyright: (c)
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include <wx/notebook.h>
{
public:
bool OnInit(void);
- void InitTabView(wxNotebook* notebook, wxWindow* window);
+ void InitTabView(wxNotebook* notebook, wxPanel* window);
wxButton* m_okButton;
wxButton* m_cancelButton;
DECLARE_APP(MyApp)
+#if USE_TABBED_DIALOG
+
class MyDialog: public wxDialog
{
public:
protected:
wxNotebook* m_notebook;
-DECLARE_EVENT_TABLE()
+ DECLARE_EVENT_TABLE()
};
+#else // USE_TABBED_DIALOG
+
class MyFrame: public wxFrame
{
public:
void OnCloseWindow(wxCloseEvent& event);
void OnAddPage(wxCommandEvent& event);
void OnDeletePage(wxCommandEvent& event);
- void OnSize(wxSizeEvent& event);
void OnIdle(wxIdleEvent& event);
void Init();
wxNotebook* m_notebook;
wxPanel* m_panel; // Panel containing notebook and OK/Cancel/Help
-DECLARE_EVENT_TABLE()
+ DECLARE_EVENT_TABLE()
};
+#endif // USE_TABBED_DIALOG
+
// File ids
#define TEST_ABOUT 2
#pragma implementation "string.h"
#endif
-#ifdef __WXPM__
-#define LINKAGECPP _Optlink
-#else
-#define LINKAGECPP
-#endif
-
/*
* About ref counting:
* 1) all empty strings use g_strEmpty, nRefs = -1 (set in Init())