cleanup - reformat

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36738 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Surovell
2006-01-06 21:14:34 +00:00
parent 0d8c57c006
commit 5a7d70fe89
3 changed files with 250 additions and 234 deletions

View File

@@ -12,19 +12,14 @@
#include "wx/wxprec.h" #include "wx/wxprec.h"
#include "wx/icon.h" #include "wx/icon.h"
IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap)
#include "wx/image.h" #include "wx/image.h"
#include "wx/mac/private.h" #include "wx/mac/private.h"
IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap)
#define M_ICONDATA ((wxIconRefData *)m_refData) #define M_ICONDATA ((wxIconRefData *)m_refData)
/*
* Icons
*/
wxIcon::wxIcon() wxIcon::wxIcon()
{ {
} }
@@ -47,7 +42,8 @@ wxIcon::wxIcon( char **bits )
CopyFromBitmap( bmp ) ; CopyFromBitmap( bmp ) ;
} }
wxIcon::wxIcon(const wxString& icon_file, int flags, wxIcon::wxIcon(
const wxString& icon_file, int flags,
int desiredWidth, int desiredHeight ) int desiredWidth, int desiredHeight )
{ {
LoadFile( icon_file, (wxBitmapType) flags, desiredWidth, desiredHeight ); LoadFile( icon_file, (wxBitmapType) flags, desiredWidth, desiredHeight );
@@ -60,6 +56,7 @@ wxIcon::~wxIcon()
WXHICON wxIcon::GetHICON() const WXHICON wxIcon::GetHICON() const
{ {
wxASSERT( Ok() ) ; wxASSERT( Ok() ) ;
return (WXHICON) ((wxIconRefData*)m_refData)->GetHICON() ; return (WXHICON) ((wxIconRefData*)m_refData)->GetHICON() ;
} }
@@ -77,20 +74,21 @@ int wxIcon::GetHeight() const
return M_ICONDATA->GetHeight(); return M_ICONDATA->GetHeight();
} }
int wxIcon::GetDepth() const{ int wxIcon::GetDepth() const
{
return 32; return 32;
} }
void wxIcon::SetDepth(int depth){ void wxIcon::SetDepth( int depth )
{
} }
void wxIcon::SetWidth(int width){ void wxIcon::SetWidth( int width )
{
} }
void wxIcon::SetHeight(int height){ void wxIcon::SetHeight( int height )
{
} }
bool wxIcon::Ok() const bool wxIcon::Ok() const
@@ -98,7 +96,8 @@ bool wxIcon::Ok() const
return m_refData != NULL ; return m_refData != NULL ;
} }
bool wxIcon::LoadFile(const wxString& filename, wxBitmapType type, bool wxIcon::LoadFile(
const wxString& filename, wxBitmapType type,
int desiredWidth, int desiredHeight ) int desiredWidth, int desiredHeight )
{ {
UnRef(); UnRef();
@@ -106,6 +105,7 @@ bool wxIcon::LoadFile(const wxString& filename, wxBitmapType type,
if ( type == wxBITMAP_TYPE_ICON_RESOURCE ) if ( type == wxBITMAP_TYPE_ICON_RESOURCE )
{ {
OSType theId = 0 ; OSType theId = 0 ;
if ( filename == wxT("wxICON_INFORMATION") ) if ( filename == wxT("wxICON_INFORMATION") )
{ {
theId = kAlertNoteIcon ; theId = kAlertNoteIcon ;
@@ -123,7 +123,8 @@ bool wxIcon::LoadFile(const wxString& filename, wxBitmapType type,
theId = kAlertStopIcon ; theId = kAlertStopIcon ;
} }
else else
{/* {
#if 0
Str255 theName ; Str255 theName ;
OSType theType ; OSType theType ;
wxMacStringToPascal( name , theName ) ; wxMacStringToPascal( name , theName ) ;
@@ -134,8 +135,9 @@ bool wxIcon::LoadFile(const wxString& filename, wxBitmapType type,
GetResInfo( resHandle , &theId , &theType , theName ) ; GetResInfo( resHandle , &theId , &theType , theName ) ;
ReleaseResource( resHandle ) ; ReleaseResource( resHandle ) ;
} }
*/ #endif
} }
if ( theId != 0 ) if ( theId != 0 )
{ {
IconRef iconRef = NULL ; IconRef iconRef = NULL ;
@@ -143,10 +145,12 @@ bool wxIcon::LoadFile(const wxString& filename, wxBitmapType type,
if ( iconRef ) if ( iconRef )
{ {
m_refData = new wxIconRefData( (WXHICON) iconRef ) ; m_refData = new wxIconRefData( (WXHICON) iconRef ) ;
return TRUE ;
return true ;
} }
} }
return FALSE ;
return false ;
} }
else else
{ {
@@ -158,8 +162,10 @@ bool wxIcon::LoadFile(const wxString& filename, wxBitmapType type,
if ( handler->LoadFile( &bmp , filename, type, desiredWidth, desiredHeight )) if ( handler->LoadFile( &bmp , filename, type, desiredWidth, desiredHeight ))
{ {
CopyFromBitmap( bmp ) ; CopyFromBitmap( bmp ) ;
return true ; return true ;
} }
return false ; return false ;
} }
else else
@@ -174,8 +180,10 @@ bool wxIcon::LoadFile(const wxString& filename, wxBitmapType type,
desiredHeight = loadimage.GetHeight() ; desiredHeight = loadimage.GetHeight() ;
if ( desiredWidth != loadimage.GetWidth() || desiredHeight != loadimage.GetHeight() ) if ( desiredWidth != loadimage.GetWidth() || desiredHeight != loadimage.GetHeight() )
loadimage.Rescale( desiredWidth , desiredHeight ) ; loadimage.Rescale( desiredWidth , desiredHeight ) ;
wxBitmap bmp( loadimage ); wxBitmap bmp( loadimage );
CopyFromBitmap( bmp ) ; CopyFromBitmap( bmp ) ;
return true; return true;
} }
#endif #endif
@@ -191,6 +199,7 @@ void wxIcon::CopyFromBitmap(const wxBitmap& bmp)
// as the bitmap owns that ref, we have to acquire it as well // as the bitmap owns that ref, we have to acquire it as well
IconRef iconRef = bmp.GetBitmapData()->GetIconRef() ; IconRef iconRef = bmp.GetBitmapData()->GetIconRef() ;
AcquireIconRef( iconRef ) ; AcquireIconRef( iconRef ) ;
m_refData = new wxIconRefData( (WXHICON) iconRef ) ; m_refData = new wxIconRefData( (WXHICON) iconRef ) ;
M_ICONDATA->SetWidth( bmp.GetWidth() ) ; M_ICONDATA->SetWidth( bmp.GetWidth() ) ;
M_ICONDATA->SetHeight( bmp.GetHeight() ) ; M_ICONDATA->SetHeight( bmp.GetHeight() ) ;
@@ -199,7 +208,8 @@ void wxIcon::CopyFromBitmap(const wxBitmap& bmp)
wxIconRefData::wxIconRefData( WXHICON icon ) wxIconRefData::wxIconRefData( WXHICON icon )
{ {
m_iconRef = MAC_WXHICON( icon ) ; m_iconRef = MAC_WXHICON( icon ) ;
// Std sizes
// Standard sizes
SetWidth( 32 ) ; SetWidth( 32 ) ;
SetHeight( 32 ) ; SetHeight( 32 ) ;
} }
@@ -220,11 +230,14 @@ void wxIconRefData::Free()
IMPLEMENT_DYNAMIC_CLASS(wxICONResourceHandler, wxBitmapHandler) IMPLEMENT_DYNAMIC_CLASS(wxICONResourceHandler, wxBitmapHandler)
bool wxICONResourceHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags, bool wxICONResourceHandler::LoadFile(
wxBitmap *bitmap, const wxString& name, long flags,
int desiredWidth, int desiredHeight ) int desiredWidth, int desiredHeight )
{ {
wxIcon icon ; wxIcon icon ;
icon.LoadFile( name , wxBITMAP_TYPE_ICON_RESOURCE , desiredWidth , desiredHeight ) ; icon.LoadFile( name , wxBITMAP_TYPE_ICON_RESOURCE , desiredWidth , desiredHeight ) ;
bitmap->CopyFromIcon( icon ) ; bitmap->CopyFromIcon( icon ) ;
return bitmap->Ok() ; return bitmap->Ok() ;
} }

View File

@@ -107,13 +107,13 @@ bool wxMDIParentFrame::Create(wxWindow *parent,
wxMDIParentFrame::~wxMDIParentFrame() wxMDIParentFrame::~wxMDIParentFrame()
{ {
DestroyChildren(); DestroyChildren();
// already deleted by DestroyChildren() // already deleted by DestroyChildren()
m_clientWindow = NULL ; m_clientWindow = NULL ;
delete m_windowMenu; delete m_windowMenu;
} }
void wxMDIParentFrame::SetMenuBar(wxMenuBar *menu_bar) void wxMDIParentFrame::SetMenuBar(wxMenuBar *menu_bar)
{ {
wxFrame::SetMenuBar( menu_bar ) ; wxFrame::SetMenuBar( menu_bar ) ;
@@ -125,6 +125,7 @@ void wxMDIParentFrame::GetRectForTopLevelChildren(int *x, int *y, int *w, int *h
*x = 0; *x = 0;
if (y) if (y)
*y = 0; *y = 0;
wxDisplaySize(w, h); wxDisplaySize(w, h);
} }
@@ -186,18 +187,23 @@ void wxMDIParentFrame::RemoveChild(wxWindowBase *child)
void wxMDIParentFrame::MacActivate(long timestamp, bool activating) void wxMDIParentFrame::MacActivate(long timestamp, bool activating)
{ {
wxLogTrace(TRACE_MDI, wxT("MDI PARENT=%p MacActivate(0x%08lx,%s)"), this, timestamp, activating ? wxT("ACTIV") : wxT("deact")); wxLogTrace(TRACE_MDI, wxT("MDI PARENT=%p MacActivate(0x%08lx,%s)"), this, timestamp, activating ? wxT("ACTIV") : wxT("deact"));
if (activating) if (activating)
{ {
if (s_macDeactivateWindow && s_macDeactivateWindow->GetParent() == this) if (s_macDeactivateWindow && s_macDeactivateWindow->GetParent() == this)
{ {
wxLogTrace(TRACE_MDI, wxT("child had been scheduled for deactivation, rehighlighting")); wxLogTrace(TRACE_MDI, wxT("child had been scheduled for deactivation, rehighlighting"));
UMAHighlightAndActivateWindow((WindowRef)s_macDeactivateWindow->MacGetWindowRef(), true); UMAHighlightAndActivateWindow((WindowRef)s_macDeactivateWindow->MacGetWindowRef(), true);
wxLogTrace(TRACE_MDI, wxT("done highliting child"));
wxLogTrace(TRACE_MDI, wxT("finished highliting child"));
s_macDeactivateWindow = NULL; s_macDeactivateWindow = NULL;
} }
else if (s_macDeactivateWindow == this) else if (s_macDeactivateWindow == this)
{ {
wxLogTrace(TRACE_MDI, wxT("Avoided deactivation/activation of this=%p"), this); wxLogTrace(TRACE_MDI, wxT("Avoided deactivation/activation of this=%p"), this);
s_macDeactivateWindow = NULL; s_macDeactivateWindow = NULL;
} }
else // window to deactivate is NULL or is not us or one of our kids else // window to deactivate is NULL or is not us or one of our kids
@@ -224,6 +230,7 @@ void wxMDIParentFrame::MacActivate(long timestamp, bool activating)
if (s_macDeactivateWindow) if (s_macDeactivateWindow)
wxLogTrace(TRACE_MDI, wxT("window=%p SHOULD have been deactivated, oh well!"), s_macDeactivateWindow); wxLogTrace(TRACE_MDI, wxT("window=%p SHOULD have been deactivated, oh well!"), s_macDeactivateWindow);
wxLogTrace(TRACE_MDI, wxT("Scheduling delayed MDI Parent deactivation")); wxLogTrace(TRACE_MDI, wxT("Scheduling delayed MDI Parent deactivation"));
s_macDeactivateWindow = this; s_macDeactivateWindow = this;
} }
} }
@@ -245,6 +252,7 @@ wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const
wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() wxMDIClientWindow *wxMDIParentFrame::OnCreateClient()
{ {
m_clientWindow = new wxMDIClientWindow( this ); m_clientWindow = new wxMDIClientWindow( this );
return m_clientWindow; return m_clientWindow;
} }
@@ -295,7 +303,7 @@ bool wxMDIParentFrame::ShouldBeVisible() const
&& !wxDynamicCast(win, wxMDIChildFrame) && !wxDynamicCast(win, wxMDIChildFrame)
#if wxUSE_STATUSBAR #if wxUSE_STATUSBAR
&& win != GetStatusBar() && win != GetStatusBar()
#endif // wxUSE_STATUSBAR #endif
&& win != GetClientWindow() ) && win != GetClientWindow() )
{ {
// if we have a non-MDI child, do remain visible so that it could // if we have a non-MDI child, do remain visible so that it could
@@ -321,6 +329,7 @@ bool wxMDIParentFrame::Show( bool show )
// don't make the window visible now but remember that we should // don't make the window visible now but remember that we should
// have had done it // have had done it
m_shouldBeShown = true; m_shouldBeShown = true;
return false; return false;
} }
} }
@@ -355,9 +364,10 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent,
else else
m_windowId = (int)NewControlId(); m_windowId = (int)NewControlId();
if (parent) parent->AddChild(this); if (parent)
parent->AddChild(this);
MacCreateRealWindow( title, pos , size , MacRemoveBordersFromStyle(style) , name ) ;
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE)); SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE));

View File

@@ -9,13 +9,6 @@
// Licence: wxWindows licence // Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "wx/wxprec.h" #include "wx/wxprec.h"
#if wxUSE_NOTEBOOK #if wxUSE_NOTEBOOK
@@ -27,18 +20,12 @@
#include "wx/image.h" #include "wx/image.h"
#include "wx/notebook.h" #include "wx/notebook.h"
#include "wx/mac/uma.h" #include "wx/mac/uma.h"
// ----------------------------------------------------------------------------
// macros
// ----------------------------------------------------------------------------
// check that the page index is valid // check that the page index is valid
#define IS_VALID_PAGE(nPage) ((nPage) < GetPageCount()) #define IS_VALID_PAGE(nPage) ((nPage) < GetPageCount())
// ----------------------------------------------------------------------------
// event table
// ----------------------------------------------------------------------------
DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED) DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING) DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING)
@@ -53,13 +40,6 @@ END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl)
IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent) IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent)
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// wxNotebook construction
// ----------------------------------------------------------------------------
// common part of all ctors // common part of all ctors
void wxNotebook::Init() void wxNotebook::Init()
@@ -86,7 +66,6 @@ wxNotebook::wxNotebook(wxWindow *parent,
Create( parent, id, pos, size, style, name ); Create( parent, id, pos, size, style, name );
} }
// Create() function
bool wxNotebook::Create( wxWindow *parent, bool wxNotebook::Create( wxWindow *parent,
wxWindowID id, wxWindowID id,
const wxPoint& pos, const wxPoint& pos,
@@ -114,23 +93,33 @@ bool wxNotebook::Create(wxWindow *parent,
else if ( HasFlag( wxBK_BOTTOM ) ) else if ( HasFlag( wxBK_BOTTOM ) )
tabstyle = kControlTabDirectionSouth; tabstyle = kControlTabDirectionSouth;
ControlTabSize tabsize = kControlTabSizeLarge ; ControlTabSize tabsize;
if ( GetWindowVariant() == wxWINDOW_VARIANT_SMALL ) switch (GetWindowVariant())
tabsize = kControlTabSizeSmall ;
else if ( GetWindowVariant() == wxWINDOW_VARIANT_MINI )
{ {
case wxWINDOW_VARIANT_MINI:
if ( UMAGetSystemVersion() >= 0x1030 ) if ( UMAGetSystemVersion() >= 0x1030 )
tabsize = 3 ; tabsize = 3 ;
else else
tabsize = kControlSizeSmall; tabsize = kControlSizeSmall;
break;
case wxWINDOW_VARIANT_SMALL:
tabsize = kControlTabSizeSmall;
break;
default:
tabsize = kControlTabSizeLarge;
break;
} }
m_peer = new wxMacControl( this ); m_peer = new wxMacControl( this );
verify_noerr ( CreateTabsControl( MAC_WXHWND(parent->MacGetTopLevelWindowRef()) , &bounds , OSStatus err = CreateTabsControl(
tabsize , tabstyle, 0, NULL, m_peer->GetControlRefAddr() ) ); MAC_WXHWND(parent->MacGetTopLevelWindowRef()), &bounds,
tabsize, tabstyle, 0, NULL, m_peer->GetControlRefAddr() );
verify_noerr( err );
MacPostControlCreate( pos, size ); MacPostControlCreate( pos, size );
return true ; return true ;
} }
@@ -165,7 +154,7 @@ wxSize wxNotebook::CalcSizeFromPage(const wxSize& sizePage) const
int wxNotebook::SetSelection(size_t nPage) int wxNotebook::SetSelection(size_t nPage)
{ {
wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("notebook page out of range") ); wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("SetSelection: invalid notebook page") );
if ( int(nPage) != m_nSelection ) if ( int(nPage) != m_nSelection )
{ {
@@ -188,7 +177,7 @@ int wxNotebook::SetSelection(size_t nPage)
bool wxNotebook::SetPageText(size_t nPage, const wxString& strText) bool wxNotebook::SetPageText(size_t nPage, const wxString& strText)
{ {
wxASSERT( IS_VALID_PAGE(nPage) ); wxCHECK_MSG( IS_VALID_PAGE(nPage), false, wxT("SetPageText: invalid notebook page") );
wxNotebookPage *page = m_pages[nPage]; wxNotebookPage *page = m_pages[nPage];
page->SetLabel(strText); page->SetLabel(strText);
@@ -199,25 +188,26 @@ bool wxNotebook::SetPageText(size_t nPage, const wxString& strText)
wxString wxNotebook::GetPageText(size_t nPage) const wxString wxNotebook::GetPageText(size_t nPage) const
{ {
wxASSERT( IS_VALID_PAGE(nPage) ); wxCHECK_MSG( IS_VALID_PAGE(nPage), wxEmptyString, wxT("GetPageText: invalid notebook page") );
wxNotebookPage *page = m_pages[nPage]; wxNotebookPage *page = m_pages[nPage];
return page->GetLabel(); return page->GetLabel();
} }
int wxNotebook::GetPageImage(size_t nPage) const int wxNotebook::GetPageImage(size_t nPage) const
{ {
wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, _T("invalid notebook page") ); wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("GetPageImage: invalid notebook page") );
return m_images[nPage]; return m_images[nPage];
} }
bool wxNotebook::SetPageImage(size_t nPage, int nImage) bool wxNotebook::SetPageImage(size_t nPage, int nImage)
{ {
wxCHECK_MSG( IS_VALID_PAGE(nPage), false, _T("invalid notebook page") ); wxCHECK_MSG( IS_VALID_PAGE(nPage), false,
wxT("SetPageImage: invalid notebook page") );
wxCHECK_MSG( m_imageList && nImage < m_imageList->GetImageCount(), false, wxCHECK_MSG( m_imageList && nImage < m_imageList->GetImageCount(), false,
_T("invalid image index in SetPageImage()") ); wxT("SetPageImage: invalid image index") );
if ( nImage != m_images[nPage] ) if ( nImage != m_images[nPage] )
{ {
@@ -239,19 +229,22 @@ bool wxNotebook::SetPageImage(size_t nPage, int nImage)
// remove one page from the notebook, without deleting the window // remove one page from the notebook, without deleting the window
wxNotebookPage* wxNotebook::DoRemovePage(size_t nPage) wxNotebookPage* wxNotebook::DoRemovePage(size_t nPage)
{ {
wxCHECK( IS_VALID_PAGE(nPage), NULL ); wxCHECK_MSG( IS_VALID_PAGE(nPage), NULL,
wxT("DoRemovePage: invalid notebook page") );
wxNotebookPage* page = m_pages[nPage] ; wxNotebookPage* page = m_pages[nPage] ;
m_pages.RemoveAt(nPage); m_pages.RemoveAt(nPage);
MacSetupTabs(); MacSetupTabs();
if(m_nSelection >= (int)GetPageCount()) { if (m_nSelection >= (int)GetPageCount())
m_nSelection = GetPageCount() - 1; m_nSelection = GetPageCount() - 1;
}
if(m_nSelection >= 0) { if (m_nSelection >= 0)
m_pages[m_nSelection]->Show(true); m_pages[m_nSelection]->Show(true);
}
InvalidateBestSize(); InvalidateBestSize();
return page; return page;
} }
@@ -262,10 +255,10 @@ bool wxNotebook::DeleteAllPages()
MacSetupTabs(); MacSetupTabs();
m_nSelection = -1 ; m_nSelection = -1 ;
InvalidateBestSize(); InvalidateBestSize();
return true; return true;
} }
// same as AddPage() but does it at given position // same as AddPage() but does it at given position
bool wxNotebook::InsertPage(size_t nPage, bool wxNotebook::InsertPage(size_t nPage,
wxNotebookPage *pPage, wxNotebookPage *pPage,
@@ -276,8 +269,7 @@ bool wxNotebook::InsertPage(size_t nPage,
if ( !wxNotebookBase::InsertPage( nPage, pPage, strText, bSelect, imageId ) ) if ( !wxNotebookBase::InsertPage( nPage, pPage, strText, bSelect, imageId ) )
return false; return false;
wxASSERT_MSG( pPage->GetParent() == this, wxASSERT_MSG( pPage->GetParent() == this, wxT("notebook pages must have notebook as parent") );
_T("notebook pages must have notebook as parent") );
// don't show pages by default (we'll need to adjust their size first) // don't show pages by default (we'll need to adjust their size first)
pPage->Show( false ) ; pPage->Show( false ) ;
@@ -290,10 +282,8 @@ bool wxNotebook::InsertPage(size_t nPage,
wxRect rect = GetPageRect() ; wxRect rect = GetPageRect() ;
pPage->SetSize( rect ); pPage->SetSize( rect );
if ( pPage->GetAutoLayout() ) { if ( pPage->GetAutoLayout() )
pPage->Layout(); pPage->Layout();
}
// now deal with the selection // now deal with the selection
// --------------------------- // ---------------------------
@@ -304,6 +294,7 @@ bool wxNotebook::InsertPage(size_t nPage,
if ( int(nPage) <= m_nSelection ) if ( int(nPage) <= m_nSelection )
{ {
m_nSelection++; m_nSelection++;
// while this still is the same page showing, we need to update the tabs // while this still is the same page showing, we need to update the tabs
m_peer->SetValue( m_nSelection + 1 ) ; m_peer->SetValue( m_nSelection + 1 ) ;
} }
@@ -320,22 +311,20 @@ bool wxNotebook::InsertPage(size_t nPage,
SetSelection( selNew ); SetSelection( selNew );
InvalidateBestSize(); InvalidateBestSize();
return true; return true;
} }
int wxNotebook::HitTest(const wxPoint& pt, long * flags) const int wxNotebook::HitTest(const wxPoint& pt, long * flags) const
{ {
int resultV = wxNOT_FOUND; int resultV = wxNOT_FOUND;
#if TARGET_API_MAC_OSX #if TARGET_API_MAC_OSX
const int countPages = GetPageCount(); const int countPages = GetPageCount();
HIPoint hipoint = { pt.x , pt.y } ; HIPoint hipoint = { pt.x , pt.y } ;
HIViewPartCode outPart = 0 ; HIViewPartCode outPart = 0 ;
OSStatus err = HIViewGetPartHit ( OSStatus err = HIViewGetPartHit( m_peer->GetControlRef(), &hipoint, &outPart );
m_peer->GetControlRef() ,
&hipoint ,
&outPart
);
int max = m_peer->GetMaximum() ; int max = m_peer->GetMaximum() ;
if ( outPart == 0 && max > 0 ) if ( outPart == 0 && max > 0 )
@@ -356,23 +345,15 @@ int wxNotebook::HitTest(const wxPoint& pt, long * flags) const
else else
m_peer->SetValue( 1 ) ; m_peer->SetValue( 1 ) ;
err = HIViewGetPartHit ( err = HIViewGetPartHit( m_peer->GetControlRef(), &hipoint, &outPart );
m_peer->GetControlRef() ,
&hipoint ,
&outPart
);
m_peer->SetValue( val ) ; m_peer->SetValue( val ) ;
if ( max == 1 ) if ( max == 1 )
{
m_peer->SetMaximum( 1 ) ; m_peer->SetMaximum( 1 ) ;
} }
}
if ( outPart >= 1 && outPart <= countPages ) if ( outPart >= 1 && outPart <= countPages )
{
resultV = outPart ; resultV = outPart ;
}
#endif // TARGET_API_MAC_OSX #endif // TARGET_API_MAC_OSX
if (flags != NULL) if (flags != NULL)
@@ -385,14 +366,15 @@ int wxNotebook::HitTest(const wxPoint& pt, long * flags) const
else else
*flags |= wxNB_HITTEST_NOWHERE; *flags |= wxNB_HITTEST_NOWHERE;
} }
return resultV; return resultV;
} }
/* Added by Mark Newsam // Added by Mark Newsam
* When a page is added or deleted to the notebook this function updates // When a page is added or deleted to the notebook this function updates
* information held in the control so that it matches the order // information held in the control so that it matches the order
* the user would expect. // the user would expect.
*/ //
void wxNotebook::MacSetupTabs() void wxNotebook::MacSetupTabs()
{ {
m_peer->SetMaximum( GetPageCount() ) ; m_peer->SetMaximum( GetPageCount() ) ;
@@ -418,16 +400,17 @@ void wxNotebook::MacSetupTabs()
ControlButtonContentInfo info ; ControlButtonContentInfo info ;
wxMacCreateBitmapButton( &info, bmap ) ; wxMacCreateBitmapButton( &info, bmap ) ;
#ifdef __WXDEBUG__
OSStatus err = OSStatus err = m_peer->SetData<ControlButtonContentInfo>( ii + 1, kControlTabImageContentTag, &info );
#endif // __WXDEBUG__
m_peer->SetData<ControlButtonContentInfo>( ii+1,kControlTabImageContentTag, &info );
wxASSERT_MSG( err == noErr , wxT("Error when setting icon on tab") ) ; wxASSERT_MSG( err == noErr , wxT("Error when setting icon on tab") ) ;
wxMacReleaseBitmapButton( &info ) ; wxMacReleaseBitmapButton( &info ) ;
} }
} }
m_peer->SetTabEnabled( ii + 1, true ) ; m_peer->SetTabEnabled( ii + 1, true ) ;
} }
Rect bounds; Rect bounds;
m_peer->GetRectInWindowCoords( &bounds ) ; m_peer->GetRectInWindowCoords( &bounds ) ;
InvalWindowRect( (WindowRef)MacGetTopLevelWindowRef(), &bounds ); InvalWindowRect( (WindowRef)MacGetTopLevelWindowRef(), &bounds );
@@ -436,8 +419,10 @@ void wxNotebook::MacSetupTabs()
wxRect wxNotebook::GetPageRect() const wxRect wxNotebook::GetPageRect() const
{ {
wxSize size = GetClientSize() ; wxSize size = GetClientSize() ;
return wxRect( 0 , 0 , size.x , size.y ) ; return wxRect( 0 , 0 , size.x , size.y ) ;
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxNotebook callbacks // wxNotebook callbacks
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -446,16 +431,16 @@ wxRect wxNotebook::GetPageRect() const
// time because doing it in ::Create() doesn't work (for unknown reasons) // time because doing it in ::Create() doesn't work (for unknown reasons)
void wxNotebook::OnSize(wxSizeEvent& event) void wxNotebook::OnSize(wxSizeEvent& event)
{ {
unsigned int nCount = m_pages.Count(); unsigned int nCount = m_pages.Count();
wxRect rect = GetPageRect() ; wxRect rect = GetPageRect() ;
for ( unsigned int nPage = 0; nPage < nCount; nPage++ ) {
for ( unsigned int nPage = 0; nPage < nCount; nPage++ )
{
wxNotebookPage *pPage = m_pages[nPage]; wxNotebookPage *pPage = m_pages[nPage];
pPage->SetSize(rect); pPage->SetSize(rect);
if ( pPage->GetAutoLayout() ) { if ( pPage->GetAutoLayout() )
pPage->Layout(); pPage->Layout();
} }
}
// Processing continues to next OnSize // Processing continues to next OnSize
event.Skip(); event.Skip();
@@ -482,11 +467,13 @@ void wxNotebook::OnSetFocus(wxFocusEvent& event)
void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event)
{ {
if ( event.IsWindowChange() ) { if ( event.IsWindowChange() )
{
// change pages // change pages
AdvanceSelection( event.GetDirection() ); AdvanceSelection( event.GetDirection() );
} }
else { else
{
// we get this event in 2 cases // we get this event in 2 cases
// //
// a) one of our pages might have generated it because the user TABbed // a) one of our pages might have generated it because the user TABbed
@@ -501,7 +488,8 @@ void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event)
// from in this case and so can't choose between setting the focus to // from in this case and so can't choose between setting the focus to
// first or last panel child // first or last panel child
wxWindow *parent = GetParent(); wxWindow *parent = GetParent();
// the cast is here to fic a GCC ICE
// the cast is here to fix a GCC ICE
if ( ((wxWindow*)event.GetEventObject()) == parent ) if ( ((wxWindow*)event.GetEventObject()) == parent )
{ {
// no, it doesn't come from child, case (b): forward to a page // no, it doesn't come from child, case (b): forward to a page
@@ -527,7 +515,8 @@ void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event)
else else
{ {
// it comes from our child, case (a), pass to the parent // it comes from our child, case (a), pass to the parent
if ( parent ) { if ( parent )
{
event.SetCurrentFocus( this ); event.SetCurrentFocus( this );
parent->GetEventHandler()->ProcessEvent( event ); parent->GetEventHandler()->ProcessEvent( event );
} }
@@ -568,10 +557,11 @@ void wxNotebook::Command(wxCommandEvent& event)
// hide the currently active panel and show the new one // hide the currently active panel and show the new one
void wxNotebook::ChangePage(int nOldSel, int nSel) void wxNotebook::ChangePage(int nOldSel, int nSel)
{ {
if (nOldSel == nSel)
return;
if ( nOldSel != -1 ) if ( nOldSel != -1 )
{
m_pages[nOldSel]->Show( false ); m_pages[nOldSel]->Show( false );
}
if ( nSel != -1 ) if ( nSel != -1 )
{ {
@@ -591,26 +581,29 @@ wxInt32 wxNotebook::MacControlHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTR
SInt32 newSel = m_peer->GetValue() - 1 ; SInt32 newSel = m_peer->GetValue() - 1 ;
if ( newSel != m_nSelection ) if ( newSel != m_nSelection )
{ {
wxNotebookEvent changing(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId, wxNotebookEvent changing(
wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId,
newSel , m_nSelection ); newSel , m_nSelection );
changing.SetEventObject( this ); changing.SetEventObject( this );
GetEventHandler()->ProcessEvent( changing ); GetEventHandler()->ProcessEvent( changing );
if ( changing.IsAllowed() ) if ( changing.IsAllowed() )
{ {
wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_windowId, wxNotebookEvent event(
wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_windowId,
newSel, m_nSelection ); newSel, m_nSelection );
event.SetEventObject( this ); event.SetEventObject( this );
GetEventHandler()->ProcessEvent( event ); GetEventHandler()->ProcessEvent( event );
} }
else else
{ {
m_peer->SetValue( m_nSelection + 1 ) ; m_peer->SetValue( m_nSelection + 1 ) ;
} }
status = noErr ; status = noErr ;
} }
return status ;
return (wxInt32)status ;
} }
#endif #endif