1 ///////////////////////////////////////////////////////////////////////////////
2 // Name:        src/common/nbkbase.cpp
3 // Purpose:     common wxNotebook methods
4 // Author:      Vadim Zeitlin
5 // Modified by:
6 // Created:     02.07.01
7 // RCS-ID:      $Id: nbkbase.cpp 41764 2006-10-08 23:41:52Z VZ $
8 // Copyright:   (c) 2001 Vadim Zeitlin
9 // Licence:     wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
11 
12 // ============================================================================
13 // declarations
14 // ============================================================================
15 
16 // ----------------------------------------------------------------------------
17 // headers
18 // ----------------------------------------------------------------------------
19 
20 // For compilers that support precompilation, includes "wx.h".
21 #include "wx/wxprec.h"
22 
23 #ifdef __BORLANDC__
24     #pragma hdrstop
25 #endif
26 
27 #if wxUSE_NOTEBOOK
28 
29 #ifndef WX_PRECOMP
30 #endif //WX_PRECOMP
31 
32 #include "wx/notebook.h"
33 
34 // ============================================================================
35 // implementation
36 // ============================================================================
37 
38 // ----------------------------------------------------------------------------
39 // geometry
40 // ----------------------------------------------------------------------------
41 
CalcSizeFromPage(const wxSize & sizePage) const42 wxSize wxNotebookBase::CalcSizeFromPage(const wxSize& sizePage) const
43 {
44     // this is, of course, totally bogus -- but we must do something by
45     // default because not all ports implement this
46     wxSize sizeTotal = sizePage;
47 
48     if ( HasFlag(wxBK_LEFT) || HasFlag(wxBK_RIGHT) )
49     {
50         sizeTotal.x += 90;
51         sizeTotal.y += 10;
52     }
53     else // tabs on top/bottom side
54     {
55         sizeTotal.x += 10;
56         sizeTotal.y += 40;
57     }
58 
59     return sizeTotal;
60 }
61 
62 // ----------------------------------------------------------------------------
63 // events
64 // ----------------------------------------------------------------------------
65 
SendPageChangingEvent(int nPage)66 bool wxNotebookBase::SendPageChangingEvent(int nPage)
67 {
68     wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, GetId());
69     event.SetSelection(nPage);
70     event.SetOldSelection(GetSelection());
71     event.SetEventObject(this);
72     return !GetEventHandler()->ProcessEvent(event) || event.IsAllowed();
73 }
74 
SendPageChangedEvent(int nPageOld,int nPageNew)75 void wxNotebookBase::SendPageChangedEvent(int nPageOld, int nPageNew)
76 {
77     wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, GetId());
78     event.SetSelection(nPageNew == -1 ? GetSelection() : nPageNew);
79     event.SetOldSelection(nPageOld);
80     event.SetEventObject(this);
81     GetEventHandler()->ProcessEvent(event);
82 }
83 
84 #endif // wxUSE_NOTEBOOK
85