diff options
Diffstat (limited to 'dbaccess/source/ui/tabledesign/TableDesignView.cxx')
-rw-r--r-- | dbaccess/source/ui/tabledesign/TableDesignView.cxx | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/dbaccess/source/ui/tabledesign/TableDesignView.cxx b/dbaccess/source/ui/tabledesign/TableDesignView.cxx index 996a84c0e162..9cf37d80df9e 100644 --- a/dbaccess/source/ui/tabledesign/TableDesignView.cxx +++ b/dbaccess/source/ui/tabledesign/TableDesignView.cxx @@ -42,7 +42,7 @@ using namespace ::com::sun::star::beans; // class OTableBorderWindow OTableBorderWindow::OTableBorderWindow(vcl::Window* pParent) : Window(pParent,WB_BORDER) - ,m_aHorzSplitter( this ) + ,m_aHorzSplitter( new Splitter(this) ) { ImplInitSettings( true, true, true ); @@ -56,12 +56,17 @@ OTableBorderWindow::OTableBorderWindow(vcl::Window* pParent) : Window(pParent,WB m_pEditorCtrl->SetDescrWin(m_pFieldDescWin); // Splitter einrichten - m_aHorzSplitter.SetSplitHdl( LINK(this, OTableBorderWindow, SplitHdl) ); - m_aHorzSplitter.Show(); + m_aHorzSplitter->SetSplitHdl( LINK(this, OTableBorderWindow, SplitHdl) ); + m_aHorzSplitter->Show(); } OTableBorderWindow::~OTableBorderWindow() { + dispose(); +} + +void OTableBorderWindow::dispose() +{ // Children zerstoeren // ::dbaui::notifySystemWindow(this,m_pFieldDescWin,::comphelper::mem_fun(&TaskPaneList::RemoveWindow)); m_pEditorCtrl->Hide(); @@ -75,7 +80,8 @@ OTableBorderWindow::~OTableBorderWindow() boost::scoped_ptr<vcl::Window> aTemp(m_pFieldDescWin); m_pFieldDescWin = NULL; } - + m_aHorzSplitter.disposeAndClear(); + vcl::Window::dispose(); } void OTableBorderWindow::Resize() @@ -86,18 +92,18 @@ void OTableBorderWindow::Resize() Size aOutputSize( GetOutputSize() ); long nOutputWidth = aOutputSize.Width(); long nOutputHeight = aOutputSize.Height(); - long nSplitPos = m_aHorzSplitter.GetSplitPosPixel(); + long nSplitPos = m_aHorzSplitter->GetSplitPosPixel(); // Verschiebebereich Splitter mittleres Drittel des Outputs long nDragPosY = nOutputHeight/3; long nDragSizeHeight = nOutputHeight/3; - m_aHorzSplitter.SetDragRectPixel( Rectangle(Point(0,nDragPosY), Size(nOutputWidth,nDragSizeHeight) ), this ); + m_aHorzSplitter->SetDragRectPixel( Rectangle(Point(0,nDragPosY), Size(nOutputWidth,nDragSizeHeight) ), this ); if( (nSplitPos < nDragPosY) || (nSplitPos > (nDragPosY+nDragSizeHeight)) ) nSplitPos = nDragPosY+nDragSizeHeight-5; // Splitter setzen - m_aHorzSplitter.SetPosSizePixel( Point( 0, nSplitPos ), Size(nOutputWidth, nSplitterHeight)); - m_aHorzSplitter.SetSplitPosPixel( nSplitPos ); + m_aHorzSplitter->SetPosSizePixel( Point( 0, nSplitPos ), Size(nOutputWidth, nSplitterHeight)); + m_aHorzSplitter->SetSplitPosPixel( nSplitPos ); // Fenster setzen m_pEditorCtrl->SetPosSizePixel( Point(0, 0), Size(nOutputWidth , nSplitPos) ); @@ -108,9 +114,9 @@ void OTableBorderWindow::Resize() IMPL_LINK( OTableBorderWindow, SplitHdl, Splitter*, pSplit ) { - if(pSplit == &m_aHorzSplitter) + if(pSplit == m_aHorzSplitter.get()) { - m_aHorzSplitter.SetPosPixel( Point( m_aHorzSplitter.GetPosPixel().X(),m_aHorzSplitter.GetSplitPosPixel() ) ); + m_aHorzSplitter->SetPosPixel( Point( m_aHorzSplitter->GetPosPixel().X(),m_aHorzSplitter->GetSplitPosPixel() ) ); Resize(); } return 0; @@ -190,12 +196,18 @@ OTableDesignView::OTableDesignView( vcl::Window* pParent, OTableDesignView::~OTableDesignView() { + dispose(); +} + +void OTableDesignView::dispose() +{ m_pWin->Hide(); { boost::scoped_ptr<vcl::Window> aTemp(m_pWin); m_pWin = NULL; } + ODataView::dispose(); } void OTableDesignView::initialize() |