Kaydet (Commit) 232eec87 authored tarafından Noel Grandin's avatar Noel Grandin Kaydeden (comit) Michael Meeks

vcl: VclPtr conversion in framework

Change-Id: I82df2d0ed6f40de40099537f982541480af16630
üst 28c2cf4f
......@@ -68,6 +68,7 @@ public:
const css::uno::Reference< css::awt::XContainerWindowProvider >& rProvider );
virtual ~FwkTabPage();
virtual void dispose() SAL_OVERRIDE;
virtual void ActivatePage() SAL_OVERRIDE;
virtual void DeactivatePage() SAL_OVERRIDE;
......@@ -95,8 +96,8 @@ typedef std::vector< TabEntry* > TabEntryList;
class FwkTabWindow : public vcl::Window
{
private:
FwkTabControl m_aTabCtrl;
TabEntryList m_TabList;
VclPtr<FwkTabControl> m_aTabCtrl;
TabEntryList m_TabList;
css::uno::Reference< css::awt::XContainerWindowProvider > m_xWinProvider;
......@@ -110,6 +111,7 @@ private:
public:
FwkTabWindow( vcl::Window* pParent );
virtual ~FwkTabWindow();
virtual void dispose() SAL_OVERRIDE;
void AddEventListener( const Link& rEventListener );
void RemoveEventListener( const Link& rEventListener );
......
......@@ -33,7 +33,6 @@ class FrameworkStatusBar : public StatusBar
FrameworkStatusBar( vcl::Window* pParent,
WinBits nWinBits );
virtual ~FrameworkStatusBar();
void SetStatusBarManager( StatusBarManager* pStatusBarManager );
......
......@@ -80,9 +80,15 @@ FwkTabPage::FwkTabPage(
}
FwkTabPage::~FwkTabPage()
{
dispose();
}
void FwkTabPage::dispose()
{
Hide();
DeactivatePage();
TabPage::dispose();
}
void FwkTabPage::CreateDialog()
......@@ -174,20 +180,27 @@ void FwkTabPage::Resize()
// class FwkTabWindow ---------------------------------------------
FwkTabWindow::FwkTabWindow( vcl::Window* pParent )
: Window(pParent)
, m_aTabCtrl(this)
, m_aTabCtrl(new FwkTabControl(this))
{
m_xWinProvider = awt::ContainerWindowProvider::create( ::comphelper::getProcessComponentContext() );
SetPaintTransparent(true);
m_aTabCtrl.SetActivatePageHdl( LINK( this, FwkTabWindow, ActivatePageHdl ) );
m_aTabCtrl.SetDeactivatePageHdl( LINK( this, FwkTabWindow, DeactivatePageHdl ) );
m_aTabCtrl.Show();
m_aTabCtrl->SetActivatePageHdl( LINK( this, FwkTabWindow, ActivatePageHdl ) );
m_aTabCtrl->SetDeactivatePageHdl( LINK( this, FwkTabWindow, DeactivatePageHdl ) );
m_aTabCtrl->Show();
}
FwkTabWindow::~FwkTabWindow()
{
dispose();
}
void FwkTabWindow::dispose()
{
ClearEntryList();
m_aTabCtrl.disposeAndClear();
vcl::Window::dispose();
}
void FwkTabWindow::ClearEntryList()
......@@ -245,40 +258,40 @@ TabEntry* FwkTabWindow::FindEntry( sal_Int32 nIndex ) const
IMPL_LINK_NOARG(FwkTabWindow, ActivatePageHdl)
{
const sal_uInt16 nId = m_aTabCtrl.GetCurPageId();
FwkTabPage* pTabPage = static_cast< FwkTabPage* >( m_aTabCtrl.GetTabPage( nId ) );
const sal_uInt16 nId = m_aTabCtrl->GetCurPageId();
FwkTabPage* pTabPage = static_cast< FwkTabPage* >( m_aTabCtrl->GetTabPage( nId ) );
if ( !pTabPage )
{
TabEntry* pEntry = FindEntry( nId );
if ( pEntry )
{
pTabPage = new FwkTabPage( &m_aTabCtrl, pEntry->m_sPageURL, pEntry->m_xEventHdl, m_xWinProvider );
pTabPage = new FwkTabPage( m_aTabCtrl.get(), pEntry->m_sPageURL, pEntry->m_xEventHdl, m_xWinProvider );
pEntry->m_pPage = pTabPage;
m_aTabCtrl.SetTabPage( nId, pTabPage );
m_aTabCtrl->SetTabPage( nId, pTabPage );
pTabPage->Show();
pTabPage->ActivatePage();
}
} else {
pTabPage->ActivatePage();
}
m_aTabCtrl.BroadcastEvent( VCLEVENT_TABPAGE_ACTIVATE );
m_aTabCtrl->BroadcastEvent( VCLEVENT_TABPAGE_ACTIVATE );
return 1;
}
IMPL_LINK_NOARG(FwkTabWindow, DeactivatePageHdl)
{
m_aTabCtrl.BroadcastEvent( VCLEVENT_TABPAGE_DEACTIVATE );
m_aTabCtrl->BroadcastEvent( VCLEVENT_TABPAGE_DEACTIVATE );
return 1;
}
void FwkTabWindow::AddEventListener( const Link& rEventListener )
{
m_aTabCtrl.AddEventListener( rEventListener );
m_aTabCtrl->AddEventListener( rEventListener );
}
void FwkTabWindow::RemoveEventListener( const Link& rEventListener )
{
m_aTabCtrl.RemoveEventListener( rEventListener );
m_aTabCtrl->RemoveEventListener( rEventListener );
}
FwkTabPage* FwkTabWindow::AddTabPage( sal_Int32 nIndex, const uno::Sequence< beans::NamedValue >& rProperties )
......@@ -311,20 +324,20 @@ FwkTabPage* FwkTabWindow::AddTabPage( sal_Int32 nIndex, const uno::Sequence< bea
TabEntry* pEntry = new TabEntry( nIndex, sPageURL, xEventHdl );
m_TabList.push_back( pEntry );
sal_uInt16 nIdx = static_cast< sal_uInt16 >( nIndex );
m_aTabCtrl.InsertPage( nIdx, sTitle );
m_aTabCtrl->InsertPage( nIdx, sTitle );
if ( !sToolTip.isEmpty() )
m_aTabCtrl.SetHelpText( nIdx, sToolTip );
m_aTabCtrl->SetHelpText( nIdx, sToolTip );
if ( xImage.is() )
m_aTabCtrl.SetPageImage( nIdx, Image( xImage ) );
m_aTabCtrl->SetPageImage( nIdx, Image( xImage ) );
if ( bDisabled )
m_aTabCtrl.EnablePage( nIdx, false );
m_aTabCtrl->EnablePage( nIdx, false );
return pEntry->m_pPage;
}
void FwkTabWindow::ActivatePage( sal_Int32 nIndex )
{
m_aTabCtrl.SetCurPageId( static_cast< sal_uInt16 >( nIndex ) );
m_aTabCtrl->SetCurPageId( static_cast< sal_uInt16 >( nIndex ) );
ActivatePageHdl( &m_aTabCtrl );
}
......@@ -333,7 +346,7 @@ void FwkTabWindow::RemovePage( sal_Int32 nIndex )
TabEntry* pEntry = FindEntry(nIndex);
if ( pEntry )
{
m_aTabCtrl.RemovePage( static_cast< sal_uInt16 >( nIndex ) );
m_aTabCtrl->RemovePage( static_cast< sal_uInt16 >( nIndex ) );
if (RemoveEntry(nIndex))
delete pEntry;
}
......@@ -342,7 +355,7 @@ void FwkTabWindow::RemovePage( sal_Int32 nIndex )
void FwkTabWindow::Resize()
{
Size aPageSize = GetSizePixel();
m_aTabCtrl.SetTabPageSizePixel( aPageSize );
m_aTabCtrl->SetTabPageSizePixel( aPageSize );
}
} // namespace framework
......
......@@ -55,6 +55,7 @@ class ComboBoxControl : public ComboBox
public:
ComboBoxControl( vcl::Window* pParent, WinBits nStyle, IComboBoxListener* pComboBoxListener );
virtual ~ComboBoxControl();
virtual void dispose() SAL_OVERRIDE;
virtual void Select() SAL_OVERRIDE;
virtual void DoubleClick() SAL_OVERRIDE;
......@@ -75,8 +76,14 @@ ComboBoxControl::ComboBoxControl( vcl::Window* pParent, WinBits nStyle, IComboBo
}
ComboBoxControl::~ComboBoxControl()
{
dispose();
}
void ComboBoxControl::dispose()
{
m_pComboBoxListener = 0;
ComboBox::dispose();
}
void ComboBoxControl::Select()
......
......@@ -54,6 +54,7 @@ class ListBoxControl : public ListBox
public:
ListBoxControl( vcl::Window* pParent, WinBits nStyle, IListBoxListener* pListBoxListener );
virtual ~ListBoxControl();
virtual void dispose() SAL_OVERRIDE;
virtual void Select() SAL_OVERRIDE;
virtual void DoubleClick() SAL_OVERRIDE;
......@@ -72,8 +73,14 @@ ListBoxControl::ListBoxControl( vcl::Window* pParent, WinBits nStyle, IListBoxLi
}
ListBoxControl::~ListBoxControl()
{
dispose();
}
void ListBoxControl::dispose()
{
m_pListBoxListener = 0;
ListBox::dispose();
}
void ListBoxControl::Select()
......
......@@ -53,6 +53,7 @@ class EditControl : public Edit
public:
EditControl( vcl::Window* pParent, WinBits nStyle, IEditListener* pEditListener );
virtual ~EditControl();
virtual void dispose() SAL_OVERRIDE;
virtual void Modify() SAL_OVERRIDE;
virtual void KeyInput( const ::KeyEvent& rKEvt ) SAL_OVERRIDE;
......@@ -71,8 +72,14 @@ EditControl::EditControl( vcl::Window* pParent, WinBits nStyle, IEditListener* p
}
EditControl::~EditControl()
{
dispose();
}
void EditControl::dispose()
{
m_pEditListener = 0;
Edit::dispose();
}
void EditControl::Modify()
......
......@@ -59,6 +59,7 @@ class SpinfieldControl : public SpinField
public:
SpinfieldControl( vcl::Window* pParent, WinBits nStyle, ISpinfieldListener* pSpinFieldListener );
virtual ~SpinfieldControl();
virtual void dispose() SAL_OVERRIDE;
virtual void Up() SAL_OVERRIDE;
virtual void Down() SAL_OVERRIDE;
......@@ -83,8 +84,14 @@ SpinfieldControl::SpinfieldControl( vcl::Window* pParent, WinBits nStyle, ISpinf
}
SpinfieldControl::~SpinfieldControl()
{
dispose();
}
void SpinfieldControl::dispose()
{
m_pSpinFieldListener = 0;
SpinField::dispose();
}
void SpinfieldControl::Up()
......
......@@ -34,10 +34,6 @@ FrameworkStatusBar::FrameworkStatusBar(
SetOutputSizePixel( CalcWindowSizePixel() );
}
FrameworkStatusBar::~FrameworkStatusBar()
{
}
void FrameworkStatusBar::SetStatusBarManager( StatusBarManager* pStatusBarManager )
{
SolarMutexGuard aSolarMutexGuard;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment