diff options
Diffstat (limited to 'cui/source/dialogs/hangulhanjadlg.cxx')
-rw-r--r-- | cui/source/dialogs/hangulhanjadlg.cxx | 97 |
1 files changed, 57 insertions, 40 deletions
diff --git a/cui/source/dialogs/hangulhanjadlg.cxx b/cui/source/dialogs/hangulhanjadlg.cxx index e80f41854b6a..ff425f90c775 100644 --- a/cui/source/dialogs/hangulhanjadlg.cxx +++ b/cui/source/dialogs/hangulhanjadlg.cxx @@ -338,7 +338,13 @@ namespace svx SuggestionSet::~SuggestionSet() { + dispose(); + } + + void SuggestionSet::dispose() + { ClearSet(); + ValueSet::dispose(); } void SuggestionSet::UserDraw( const UserDrawEvent& rUDEvt ) @@ -366,29 +372,37 @@ namespace svx SuggestionDisplay::SuggestionDisplay( vcl::Window* pParent, WinBits nBits ) : Control( pParent, nBits ) , m_bDisplayListBox( true ) - , m_aValueSet( this ) - , m_aListBox( this,GetStyle() | WB_BORDER ) + , m_aValueSet( new SuggestionSet(this) ) + , m_aListBox( new ListBox(this,GetStyle() | WB_BORDER) ) , m_bInSelectionUpdate( false ) { - m_aValueSet.SetSelectHdl( LINK( this, SuggestionDisplay, SelectSuggestionHdl ) ); - m_aListBox.SetSelectHdl( LINK( this, SuggestionDisplay, SelectSuggestionHdl ) ); + m_aValueSet->SetSelectHdl( LINK( this, SuggestionDisplay, SelectSuggestionHdl ) ); + m_aListBox->SetSelectHdl( LINK( this, SuggestionDisplay, SelectSuggestionHdl ) ); - m_aValueSet.SetLineCount( LINE_CNT ); - m_aValueSet.SetStyle( m_aValueSet.GetStyle() | WB_ITEMBORDER | WB_FLATVALUESET | WB_VSCROLL ); - m_aValueSet.SetBorderStyle( WindowBorderStyle::MONO ); + m_aValueSet->SetLineCount( LINE_CNT ); + m_aValueSet->SetStyle( m_aValueSet->GetStyle() | WB_ITEMBORDER | WB_FLATVALUESET | WB_VSCROLL ); + m_aValueSet->SetBorderStyle( WindowBorderStyle::MONO ); OUString aOneCharacter("AU"); long nItemWidth = 2*GetTextWidth( aOneCharacter ); - m_aValueSet.SetItemWidth( nItemWidth ); + m_aValueSet->SetItemWidth( nItemWidth ); Size aSize( approximate_char_width() * 48, GetTextHeight() * 5 ); - m_aValueSet.SetSizePixel( aSize ); - m_aListBox.SetSizePixel( aSize ); + m_aValueSet->SetSizePixel( aSize ); + m_aListBox->SetSizePixel( aSize ); implUpdateDisplay(); } SuggestionDisplay::~SuggestionDisplay() { + dispose(); + } + + void SuggestionDisplay::dispose() + { + m_aValueSet.disposeAndClear(); + m_aListBox.disposeAndClear(); + Control::dispose(); } void SuggestionDisplay::implUpdateDisplay() @@ -396,8 +410,8 @@ namespace svx bool bShowBox = IsVisible() && m_bDisplayListBox; bool bShowSet = IsVisible() && !m_bDisplayListBox; - m_aListBox.Show( bShowBox ); - m_aValueSet.Show( bShowSet ); + m_aListBox->Show( bShowBox ); + m_aValueSet->Show( bShowSet ); } void SuggestionDisplay::StateChanged( StateChangedType nStateChange ) @@ -409,8 +423,8 @@ namespace svx Control& SuggestionDisplay::implGetCurrentControl() { if( m_bDisplayListBox ) - return m_aListBox; - return m_aValueSet; + return *m_aListBox.get(); + return *m_aValueSet.get(); } void SuggestionDisplay::KeyInput( const KeyEvent& rKEvt ) @@ -467,15 +481,15 @@ namespace svx return 0L; m_bInSelectionUpdate = true; - if( pControl == &m_aListBox ) + if( pControl == m_aListBox.get() ) { - sal_uInt16 nPos = m_aListBox.GetSelectEntryPos(); - m_aValueSet.SelectItem( nPos+1 ); //itemid == pos+1 (id 0 has special meaning) + sal_uInt16 nPos = m_aListBox->GetSelectEntryPos(); + m_aValueSet->SelectItem( nPos+1 ); //itemid == pos+1 (id 0 has special meaning) } else { - sal_uInt16 nPos = m_aValueSet.GetSelectItemId()-1; //itemid == pos+1 (id 0 has special meaning) - m_aListBox.SelectEntryPos( nPos ); + sal_uInt16 nPos = m_aValueSet->GetSelectItemId()-1; //itemid == pos+1 (id 0 has special meaning) + m_aListBox->SelectEntryPos( nPos ); } m_bInSelectionUpdate = false; m_aSelectLink.Call( this ); @@ -488,38 +502,38 @@ namespace svx } void SuggestionDisplay::Clear() { - m_aListBox.Clear(); - m_aValueSet.Clear(); + m_aListBox->Clear(); + m_aValueSet->Clear(); } void SuggestionDisplay::InsertEntry( const OUString& rStr ) { - sal_uInt16 nItemId = m_aListBox.InsertEntry( rStr ) + 1; //itemid == pos+1 (id 0 has special meaning) - m_aValueSet.InsertItem( nItemId ); + sal_uInt16 nItemId = m_aListBox->InsertEntry( rStr ) + 1; //itemid == pos+1 (id 0 has special meaning) + m_aValueSet->InsertItem( nItemId ); OUString* pItemData = new OUString( rStr ); - m_aValueSet.SetItemData( nItemId, pItemData ); + m_aValueSet->SetItemData( nItemId, pItemData ); } void SuggestionDisplay::SelectEntryPos( sal_uInt16 nPos ) { - m_aListBox.SelectEntryPos( nPos ); - m_aValueSet.SelectItem( nPos+1 ); //itemid == pos+1 (id 0 has special meaning) + m_aListBox->SelectEntryPos( nPos ); + m_aValueSet->SelectItem( nPos+1 ); //itemid == pos+1 (id 0 has special meaning) } sal_uInt16 SuggestionDisplay::GetEntryCount() const { - return m_aListBox.GetEntryCount(); + return m_aListBox->GetEntryCount(); } OUString SuggestionDisplay::GetEntry( sal_uInt16 nPos ) const { - return m_aListBox.GetEntry( nPos ); + return m_aListBox->GetEntry( nPos ); } OUString SuggestionDisplay::GetSelectEntry() const { - return m_aListBox.GetSelectEntry(); + return m_aListBox->GetSelectEntry(); } void SuggestionDisplay::SetHelpIds() { this->SetHelpId( HID_HANGULDLG_SUGGESTIONS ); - m_aValueSet.SetHelpId( HID_HANGULDLG_SUGGESTIONS_GRID ); - m_aListBox.SetHelpId( HID_HANGULDLG_SUGGESTIONS_LIST ); + m_aValueSet->SetHelpId( HID_HANGULDLG_SUGGESTIONS_GRID ); + m_aListBox->SetHelpId( HID_HANGULDLG_SUGGESTIONS_LIST ); } extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL makeSuggestionDisplay( vcl::Window *pParent, VclBuilder::stringmap & ) @@ -592,11 +606,6 @@ namespace svx } - HangulHanjaConversionDialog::~HangulHanjaConversionDialog( ) - { - } - - void HangulHanjaConversionDialog::FillSuggestions( const ::com::sun::star::uno::Sequence< OUString >& _rSuggestions ) { m_pSuggestions->Clear(); @@ -1125,6 +1134,11 @@ namespace svx HangulHanjaOptionsDialog::~HangulHanjaOptionsDialog() { + dispose(); + } + + void HangulHanjaOptionsDialog::dispose() + { SvTreeListEntry* pEntry = m_pDictsLB->First(); while( pEntry ) { @@ -1136,6 +1150,7 @@ namespace svx if( m_pCheckButtonData ) delete m_pCheckButtonData; + ModalDialog::dispose(); } void HangulHanjaOptionsDialog::AddDict( const OUString& _rName, bool _bChecked ) @@ -1357,10 +1372,6 @@ namespace svx { } - SuggestionEdit::~SuggestionEdit() - { - } - bool SuggestionEdit::PreNotify( NotifyEvent& rNEvt ) { bool nHandled = false; @@ -1769,8 +1780,14 @@ namespace svx HangulHanjaEditDictDialog::~HangulHanjaEditDictDialog() { + dispose(); + } + + void HangulHanjaEditDictDialog::dispose() + { if( m_pSuggestions ) delete m_pSuggestions; + ModalDialog::dispose(); } void HangulHanjaEditDictDialog::UpdateScrollbar( void ) |