/////////////////////////////////////////////////////////////////////////////
-// Name: tabg.cpp
+// Name: src/generic/tabg.cpp
// Purpose: Generic tabbed dialogs
// Author: Julian Smart
// Modified by:
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "tabg.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
#if wxUSE_TAB_DIALOG
#include "wx/settings.h"
#include "wx/intl.h"
#include "wx/dcclient.h"
+ #include "wx/math.h"
#endif
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
-#include "wx/math.h"
#include "wx/tab.h"
#include "wx/listimpl.cpp"
-WX_DEFINE_LIST(wxTabLayerList);
+WX_DEFINE_LIST(wxTabLayerList)
// not defined: use old, square tab implementation (fills in tabs)
// defined: use new, rounded tab implementation (doesn't colour in tabs)
m_backgroundBrush = wxTheBrushList->FindOrCreateBrush(col, wxSOLID);
}
+// this may be called with sel = zero (which doesn't match any page)
+// when wxMotif deletes a page
+// so return the first tab...
+
void wxTabView::SetTabSelection(int sel, bool activateTool)
{
if ( sel==m_tabSelection )
int oldSel = m_tabSelection;
wxTabControl *control = FindTabControlForId(sel);
+ if (sel == 0) sel=control->GetId();
wxTabControl *oldControl = FindTabControlForId(m_tabSelection);
if (!OnTabPreActivate(sel, oldSel))
}
// Find tab control for id
+// this may be called with zero (which doesn't match any page)
+// so return the first control...
wxTabControl *wxTabView::FindTabControlForId(int id) const
{
wxTabLayerList::compatibility_iterator node1 = m_layers.GetFirst();
while (node2)
{
wxTabControl *control = (wxTabControl *)node2->GetData();
- if (control->GetId() == id)
+ if (control->GetId() == id || id == 0)
return control;
node2 = node2->GetNext();
}