summaryrefslogtreecommitdiff
path: root/vcl/source/control
diff options
context:
space:
mode:
authorMichael Weghorn <m.weghorn@posteo.de>2024-05-10 16:55:49 +0200
committerMichael Weghorn <m.weghorn@posteo.de>2024-05-13 06:31:55 +0200
commit737a07897e7414228d727fd3d16b3bd47ff226fa (patch)
tree6784490efab0167726dc5b059c998ed1b3e2ea48 /vcl/source/control
parent2ca93eb5df7ddb8641ff7d884a109261c9700aca (diff)
vcl: Merge ComboBox and ComboBox::Impl
This removes one level of indirection. `ComboBox::Impl` had originally been introduced in commit ece8699f8f22f6bae137c601bc29b83b75dc3bf3 Author: Michael Stahl <mstahl@redhat.com> Date: Fri Jul 10 12:05:48 2015 +0200 vcl: pImplify ComboBox The boost::signal stuff is quite heavy (33 kloc), so try to hide it from the header. Change-Id: I87826ccfd2a151aff274ffa6b7159a988f751808 , but all of the boost usage in here has been replaced since then. Change-Id: Ia8fb5cb895800edae104857c7713fa65e509a3c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167485 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Diffstat (limited to 'vcl/source/control')
-rw-r--r--vcl/source/control/combobox.cxx576
1 files changed, 267 insertions, 309 deletions
diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx
index 89a53c537d91..f4327ac77024 100644
--- a/vcl/source/control/combobox.cxx
+++ b/vcl/source/control/combobox.cxx
@@ -36,7 +36,6 @@
#include <tools/json_writer.hxx>
#include <o3tl/string_view.hxx>
-namespace {
struct ComboBoxBounds
{
@@ -47,54 +46,6 @@ struct ComboBoxBounds
Size aButtonSize;
};
-}
-
-struct ComboBox::Impl
-{
- ComboBox & m_rThis;
- VclPtr<Edit> m_pSubEdit;
- VclPtr<ImplListBox> m_pImplLB;
- VclPtr<ImplBtn> m_pBtn;
- VclPtr<ImplListBoxFloatingWindow> m_pFloatWin;
- sal_uInt16 m_nDDHeight;
- sal_Unicode m_cMultiSep;
- bool m_isDDAutoSize : 1;
- bool m_isSyntheticModify : 1;
- bool m_isKeyBoardModify : 1;
- bool m_isMatchCase : 1;
- sal_Int32 m_nMaxWidthChars;
- sal_Int32 m_nWidthInChars;
- Link<ComboBox&,void> m_SelectHdl;
-
- explicit Impl(ComboBox & rThis)
- : m_rThis(rThis)
- , m_nDDHeight(0)
- , m_cMultiSep(0)
- , m_isDDAutoSize(false)
- , m_isSyntheticModify(false)
- , m_isKeyBoardModify(false)
- , m_isMatchCase(false)
- , m_nMaxWidthChars(0)
- , m_nWidthInChars(-1)
- {
- }
-
- void ImplInitComboBoxData();
- void ImplUpdateFloatSelection();
- ComboBoxBounds calcComboBoxDropDownComponentBounds(
- const Size &rOutSize, const Size &rBorderOutSize) const;
-
- DECL_LINK( ImplSelectHdl, LinkParamNone*, void );
- DECL_LINK( ImplCancelHdl, LinkParamNone*, void );
- DECL_LINK( ImplDoubleClickHdl, ImplListBoxWindow*, void );
- DECL_LINK( ImplClickBtnHdl, void*, void );
- DECL_LINK( ImplPopupModeEndHdl, FloatingWindow*, void );
- DECL_LINK( ImplSelectionChangedHdl, sal_Int32, void );
- DECL_LINK( ImplAutocompleteHdl, Edit&, void );
- DECL_LINK( ImplListItemSelectHdl , LinkParamNone*, void );
-};
-
-
static void lcl_GetSelectedEntries( ::std::set< sal_Int32 >& rSelectedPos, std::u16string_view rText, sal_Unicode cTokenSep, const ImplEntryList& rEntryList )
{
if (rText.empty())
@@ -110,9 +61,16 @@ static void lcl_GetSelectedEntries( ::std::set< sal_Int32 >& rSelectedPos, std::
ComboBox::ComboBox(vcl::Window *const pParent, WinBits const nStyle)
: Edit( WindowType::COMBOBOX )
- , m_pImpl(new Impl(*this))
-{
- m_pImpl->ImplInitComboBoxData();
+ , m_nDDHeight(0)
+ , m_cMultiSep(0)
+ , m_isDDAutoSize(false)
+ , m_isSyntheticModify(false)
+ , m_isKeyBoardModify(false)
+ , m_isMatchCase(false)
+ , m_nMaxWidthChars(0)
+ , m_nWidthInChars(-1)
+{
+ ImplInitComboBoxData();
ImplInit( pParent, nStyle );
SetWidthInChars(-1);
}
@@ -124,18 +82,18 @@ ComboBox::~ComboBox()
void ComboBox::dispose()
{
- m_pImpl->m_pSubEdit.disposeAndClear();
+ m_pSubEdit.disposeAndClear();
- VclPtr< ImplListBox > pImplLB = m_pImpl->m_pImplLB;
- m_pImpl->m_pImplLB.clear();
+ VclPtr< ImplListBox > pImplLB = m_pImplLB;
+ m_pImplLB.clear();
pImplLB.disposeAndClear();
- m_pImpl->m_pFloatWin.disposeAndClear();
- m_pImpl->m_pBtn.disposeAndClear();
+ m_pFloatWin.disposeAndClear();
+ m_pBtn.disposeAndClear();
Edit::dispose();
}
-void ComboBox::Impl::ImplInitComboBoxData()
+void ComboBox::ImplInitComboBoxData()
{
m_pSubEdit.disposeAndClear();
m_pBtn = nullptr;
@@ -156,9 +114,9 @@ void ComboBox::ImplCalcEditHeight()
{
sal_Int32 nLeft, nTop, nRight, nBottom;
GetBorder( nLeft, nTop, nRight, nBottom );
- m_pImpl->m_nDDHeight = static_cast<sal_uInt16>(m_pImpl->m_pSubEdit->GetTextHeight() + nTop + nBottom + 4);
+ m_nDDHeight = static_cast<sal_uInt16>(m_pSubEdit->GetTextHeight() + nTop + nBottom + 4);
if ( !IsDropDownBox() )
- m_pImpl->m_nDDHeight += 4;
+ m_nDDHeight += 4;
tools::Rectangle aCtrlRegion( Point( 0, 0 ), Size( 10, 10 ) );
tools::Rectangle aBoundRegion, aContentRegion;
@@ -171,8 +129,8 @@ void ComboBox::ImplCalcEditHeight()
aBoundRegion, aContentRegion ) )
{
const tools::Long nNCHeight = aBoundRegion.GetHeight();
- if (m_pImpl->m_nDDHeight < nNCHeight)
- m_pImpl->m_nDDHeight = sal::static_int_cast<sal_uInt16>(nNCHeight);
+ if (m_nDDHeight < nNCHeight)
+ m_nDDHeight = sal::static_int_cast<sal_uInt16>(nNCHeight);
}
}
@@ -198,16 +156,16 @@ void ComboBox::ImplInit( vcl::Window* pParent, WinBits nStyle )
WinBits nListStyle = nStyle;
if( nStyle & WB_DROPDOWN )
{
- m_pImpl->m_pFloatWin = VclPtr<ImplListBoxFloatingWindow>::Create( this );
+ m_pFloatWin = VclPtr<ImplListBoxFloatingWindow>::Create( this );
if (!IsNativeControlSupported(ControlType::Pushbutton, ControlPart::Focus))
- m_pImpl->m_pFloatWin->RequestDoubleBuffering(true);
- m_pImpl->m_pFloatWin->SetAutoWidth( true );
- m_pImpl->m_pFloatWin->SetPopupModeEndHdl( LINK(m_pImpl.get(), ComboBox::Impl, ImplPopupModeEndHdl) );
+ m_pFloatWin->RequestDoubleBuffering(true);
+ m_pFloatWin->SetAutoWidth( true );
+ m_pFloatWin->SetPopupModeEndHdl(LINK(this, ComboBox, ImplPopupModeEndHdl));
- m_pImpl->m_pBtn = VclPtr<ImplBtn>::Create( this, WB_NOLIGHTBORDER | WB_RECTSTYLE );
- ImplInitDropDownButton( m_pImpl->m_pBtn );
- m_pImpl->m_pBtn->SetMBDownHdl( LINK( m_pImpl.get(), ComboBox::Impl, ImplClickBtnHdl ) );
- m_pImpl->m_pBtn->Show();
+ m_pBtn = VclPtr<ImplBtn>::Create( this, WB_NOLIGHTBORDER | WB_RECTSTYLE );
+ ImplInitDropDownButton( m_pBtn );
+ m_pBtn->SetMBDownHdl(LINK(this, ComboBox, ImplClickBtnHdl));
+ m_pBtn->Show();
nEditStyle |= WB_NOBORDER;
nListStyle &= ~WB_BORDER;
@@ -223,27 +181,27 @@ void ComboBox::ImplInit( vcl::Window* pParent, WinBits nStyle )
}
}
- m_pImpl->m_pSubEdit.set( VclPtr<Edit>::Create( this, nEditStyle ) );
- m_pImpl->m_pSubEdit->EnableRTL( false );
- SetSubEdit( m_pImpl->m_pSubEdit );
- m_pImpl->m_pSubEdit->SetPosPixel( Point() );
+ m_pSubEdit.set( VclPtr<Edit>::Create( this, nEditStyle ) );
+ m_pSubEdit->EnableRTL( false );
+ SetSubEdit( m_pSubEdit );
+ m_pSubEdit->SetPosPixel( Point() );
EnableAutocomplete( true );
- m_pImpl->m_pSubEdit->Show();
+ m_pSubEdit->Show();
vcl::Window* pLBParent = this;
- if (m_pImpl->m_pFloatWin)
- pLBParent = m_pImpl->m_pFloatWin;
- m_pImpl->m_pImplLB = VclPtr<ImplListBox>::Create( pLBParent, nListStyle|WB_SIMPLEMODE|WB_AUTOHSCROLL );
- m_pImpl->m_pImplLB->SetPosPixel( Point() );
- m_pImpl->m_pImplLB->SetSelectHdl( LINK(m_pImpl.get(), ComboBox::Impl, ImplSelectHdl) );
- m_pImpl->m_pImplLB->SetCancelHdl( LINK(m_pImpl.get(), ComboBox::Impl, ImplCancelHdl) );
- m_pImpl->m_pImplLB->SetDoubleClickHdl( LINK(m_pImpl.get(), ComboBox::Impl, ImplDoubleClickHdl) );
- m_pImpl->m_pImplLB->SetSelectionChangedHdl( LINK(m_pImpl.get(), ComboBox::Impl, ImplSelectionChangedHdl) );
- m_pImpl->m_pImplLB->SetListItemSelectHdl( LINK(m_pImpl.get(), ComboBox::Impl, ImplListItemSelectHdl) );
- m_pImpl->m_pImplLB->Show();
-
- if (m_pImpl->m_pFloatWin)
- m_pImpl->m_pFloatWin->SetImplListBox( m_pImpl->m_pImplLB );
+ if (m_pFloatWin)
+ pLBParent = m_pFloatWin;
+ m_pImplLB = VclPtr<ImplListBox>::Create( pLBParent, nListStyle|WB_SIMPLEMODE|WB_AUTOHSCROLL );
+ m_pImplLB->SetPosPixel( Point() );
+ m_pImplLB->SetSelectHdl(LINK(this, ComboBox, ImplSelectHdl));
+ m_pImplLB->SetCancelHdl( LINK(this, ComboBox, ImplCancelHdl));
+ m_pImplLB->SetDoubleClickHdl(LINK(this, ComboBox, ImplDoubleClickHdl));
+ m_pImplLB->SetSelectionChangedHdl(LINK(this, ComboBox, ImplSelectionChangedHdl));
+ m_pImplLB->SetListItemSelectHdl(LINK(this, ComboBox, ImplListItemSelectHdl));
+ m_pImplLB->Show();
+
+ if (m_pFloatWin)
+ m_pFloatWin->SetImplListBox(m_pImplLB);
else
GetMainWindow()->AllowGrabFocus( true );
@@ -263,38 +221,38 @@ WinBits ComboBox::ImplInitStyle( WinBits nStyle )
void ComboBox::EnableAutocomplete( bool bEnable, bool bMatchCase )
{
- m_pImpl->m_isMatchCase = bMatchCase;
+ m_isMatchCase = bMatchCase;
if ( bEnable )
- m_pImpl->m_pSubEdit->SetAutocompleteHdl( LINK(m_pImpl.get(), ComboBox::Impl, ImplAutocompleteHdl) );
+ m_pSubEdit->SetAutocompleteHdl(LINK(this, ComboBox, ImplAutocompleteHdl));
else
- m_pImpl->m_pSubEdit->SetAutocompleteHdl( Link<Edit&,void>() );
+ m_pSubEdit->SetAutocompleteHdl( Link<Edit&,void>() );
}
bool ComboBox::IsAutocompleteEnabled() const
{
- return m_pImpl->m_pSubEdit->GetAutocompleteHdl().IsSet();
+ return m_pSubEdit->GetAutocompleteHdl().IsSet();
}
-IMPL_LINK_NOARG(ComboBox::Impl, ImplClickBtnHdl, void*, void)
+IMPL_LINK_NOARG(ComboBox, ImplClickBtnHdl, void*, void)
{
- m_rThis.CallEventListeners( VclEventId::DropdownPreOpen );
+ CallEventListeners( VclEventId::DropdownPreOpen );
m_pSubEdit->GrabFocus();
if (!m_pImplLB->GetEntryList().GetMRUCount())
ImplUpdateFloatSelection();
else
m_pImplLB->SelectEntry( 0 , true );
m_pBtn->SetPressed( true );
- m_rThis.SetSelection( Selection( 0, SELECTION_MAX ) );
+ SetSelection( Selection( 0, SELECTION_MAX ) );
m_pFloatWin->StartFloat( true );
- m_rThis.CallEventListeners( VclEventId::DropdownOpen );
+ CallEventListeners( VclEventId::DropdownOpen );
- m_rThis.ImplClearLayoutData();
+ ImplClearLayoutData();
if (m_pImplLB)
m_pImplLB->GetMainWindow()->ImplClearLayoutData();
}
-IMPL_LINK_NOARG(ComboBox::Impl, ImplPopupModeEndHdl, FloatingWindow*, void)
+IMPL_LINK_NOARG(ComboBox, ImplPopupModeEndHdl, FloatingWindow*, void)
{
if (m_pFloatWin->IsPopupModeCanceled())
{
@@ -304,20 +262,20 @@ IMPL_LINK_NOARG(ComboBox::Impl, ImplPopupModeEndHdl, FloatingWindow*, void)
m_pImplLB->SelectEntry(m_pFloatWin->GetPopupModeStartSaveSelection(), true);
bool bTravelSelect = m_pImplLB->IsTravelSelect();
m_pImplLB->SetTravelSelect( true );
- m_rThis.Select();
+ Select();
m_pImplLB->SetTravelSelect( bTravelSelect );
}
}
- m_rThis.ImplClearLayoutData();
+ ImplClearLayoutData();
if (m_pImplLB)
m_pImplLB->GetMainWindow()->ImplClearLayoutData();
m_pBtn->SetPressed( false );
- m_rThis.CallEventListeners( VclEventId::DropdownClose );
+ CallEventListeners( VclEventId::DropdownClose );
}
-IMPL_LINK(ComboBox::Impl, ImplAutocompleteHdl, Edit&, rEdit, void)
+IMPL_LINK(ComboBox, ImplAutocompleteHdl, Edit&, rEdit, void)
{
Selection aSel = rEdit.GetSelection();
@@ -355,14 +313,14 @@ IMPL_LINK(ComboBox::Impl, ImplAutocompleteHdl, Edit&, rEdit, void)
}
}
-IMPL_LINK_NOARG(ComboBox::Impl, ImplSelectHdl, LinkParamNone*, void)
+IMPL_LINK_NOARG(ComboBox, ImplSelectHdl, LinkParamNone*, void)
{
- bool bPopup = m_rThis.IsInDropDown();
+ bool bPopup = IsInDropDown();
bool bCallSelect = false;
if (m_pImplLB->IsSelectionChanged() || bPopup)
{
OUString aText;
- if (m_rThis.IsMultiSelectionEnabled())
+ if (IsMultiSelectionEnabled())
{
aText = m_pSubEdit->GetText();
@@ -417,7 +375,7 @@ IMPL_LINK_NOARG(ComboBox::Impl, ImplSelectHdl, LinkParamNone*, void)
m_pSubEdit->SetText( aText );
Selection aNewSelection( 0, aText.getLength() );
- if (m_rThis.IsMultiSelectionEnabled())
+ if (IsMultiSelectionEnabled())
aNewSelection.Min() = aText.getLength();
m_pSubEdit->SetSelection( aNewSelection );
@@ -425,11 +383,11 @@ IMPL_LINK_NOARG(ComboBox::Impl, ImplSelectHdl, LinkParamNone*, void)
}
// #84652# Call GrabFocus and EndPopupMode before calling Select/Modify, but after changing the text
- bool bMenuSelect = bPopup && !m_pImplLB->IsTravelSelect() && (!m_rThis.IsMultiSelectionEnabled() || !m_pImplLB->GetSelectModifier());
+ bool bMenuSelect = bPopup && !m_pImplLB->IsTravelSelect() && (!IsMultiSelectionEnabled() || !m_pImplLB->GetSelectModifier());
if (bMenuSelect)
{
m_pFloatWin->EndPopupMode();
- m_rThis.GrabFocus();
+ GrabFocus();
}
if ( bCallSelect )
@@ -437,35 +395,35 @@ IMPL_LINK_NOARG(ComboBox::Impl, ImplSelectHdl, LinkParamNone*, void)
m_isKeyBoardModify = !bMenuSelect;
m_pSubEdit->SetModifyFlag();
m_isSyntheticModify = true;
- m_rThis.Modify();
+ Modify();
m_isSyntheticModify = false;
- m_rThis.Select();
+ Select();
m_isKeyBoardModify = false;
}
}
bool ComboBox::IsSyntheticModify() const
{
- return m_pImpl->m_isSyntheticModify;
+ return m_isSyntheticModify;
}
bool ComboBox::IsModifyByKeyboard() const
{
- return m_pImpl->m_isKeyBoardModify;
+ return m_isKeyBoardModify;
}
-IMPL_LINK_NOARG( ComboBox::Impl, ImplListItemSelectHdl, LinkParamNone*, void )
+IMPL_LINK_NOARG(ComboBox, ImplListItemSelectHdl, LinkParamNone*, void)
{
- m_rThis.CallEventListeners( VclEventId::DropdownSelect );
+ CallEventListeners(VclEventId::DropdownSelect);
}
-IMPL_LINK_NOARG(ComboBox::Impl, ImplCancelHdl, LinkParamNone*, void)
+IMPL_LINK_NOARG(ComboBox, ImplCancelHdl, LinkParamNone*, void)
{
- if (m_rThis.IsInDropDown())
+ if (IsInDropDown())
m_pFloatWin->EndPopupMode();
}
-IMPL_LINK( ComboBox::Impl, ImplSelectionChangedHdl, sal_Int32, nChanged, void )
+IMPL_LINK( ComboBox, ImplSelectionChangedHdl, sal_Int32, nChanged, void)
{
if (!m_pImplLB->IsTrackingSelect())
{
@@ -474,9 +432,9 @@ IMPL_LINK( ComboBox::Impl, ImplSelectionChangedHdl, sal_Int32, nChanged, void )
}
}
-IMPL_LINK_NOARG(ComboBox::Impl, ImplDoubleClickHdl, ImplListBoxWindow*, void)
+IMPL_LINK_NOARG(ComboBox, ImplDoubleClickHdl, ImplListBoxWindow*, void)
{
- m_rThis.DoubleClick();
+ DoubleClick();
}
void ComboBox::ToggleDropDown()
@@ -484,26 +442,26 @@ void ComboBox::ToggleDropDown()
if( !IsDropDownBox() )
return;
- if (m_pImpl->m_pFloatWin->IsInPopupMode())
- m_pImpl->m_pFloatWin->EndPopupMode();
+ if (m_pFloatWin->IsInPopupMode())
+ m_pFloatWin->EndPopupMode();
else
{
- m_pImpl->m_pSubEdit->GrabFocus();
- if (!m_pImpl->m_pImplLB->GetEntryList().GetMRUCount())
- m_pImpl->ImplUpdateFloatSelection();
+ m_pSubEdit->GrabFocus();
+ if (!m_pImplLB->GetEntryList().GetMRUCount())
+ ImplUpdateFloatSelection();
else
- m_pImpl->m_pImplLB->SelectEntry( 0 , true );
+ m_pImplLB->SelectEntry( 0 , true );
CallEventListeners( VclEventId::DropdownPreOpen );
- m_pImpl->m_pBtn->SetPressed( true );
+ m_pBtn->SetPressed( true );
SetSelection( Selection( 0, SELECTION_MAX ) );
- m_pImpl->m_pFloatWin->StartFloat( true );
+ m_pFloatWin->StartFloat(true);
CallEventListeners( VclEventId::DropdownOpen );
}
}
void ComboBox::Select()
{
- ImplCallEventListenersAndHandler( VclEventId::ComboboxSelect, [this] () { m_pImpl->m_SelectHdl.Call(*this); } );
+ ImplCallEventListenersAndHandler( VclEventId::ComboboxSelect, [this] () { m_SelectHdl.Call(*this); } );
}
void ComboBox::DoubleClick()
@@ -511,29 +469,29 @@ void ComboBox::DoubleClick()
ImplCallEventListenersAndHandler( VclEventId::ComboboxDoubleClick, [] () {} );
}
-bool ComboBox::IsAutoSizeEnabled() const { return m_pImpl->m_isDDAutoSize; }
+bool ComboBox::IsAutoSizeEnabled() const { return m_isDDAutoSize; }
void ComboBox::EnableAutoSize( bool bAuto )
{
- m_pImpl->m_isDDAutoSize = bAuto;
- if (m_pImpl->m_pFloatWin)
+ m_isDDAutoSize = bAuto;
+ if (m_pFloatWin)
{
- if (bAuto && !m_pImpl->m_pFloatWin->GetDropDownLineCount())
+ if (bAuto && !m_pFloatWin->GetDropDownLineCount())
{
// Adapt to GetListBoxMaximumLineCount here; was on fixed number of five before
AdaptDropDownLineCountToMaximum();
}
else if ( !bAuto )
{
- m_pImpl->m_pFloatWin->SetDropDownLineCount( 0 );
+ m_pFloatWin->SetDropDownLineCount(0);
}
}
}
void ComboBox::SetDropDownLineCount( sal_uInt16 nLines )
{
- if (m_pImpl->m_pFloatWin)
- m_pImpl->m_pFloatWin->SetDropDownLineCount( nLines );
+ if (m_pFloatWin)
+ m_pFloatWin->SetDropDownLineCount(nLines);
}
void ComboBox::AdaptDropDownLineCountToMaximum()
@@ -549,8 +507,8 @@ void ComboBox::AdaptDropDownLineCountToMaximum()
sal_uInt16 ComboBox::GetDropDownLineCount() const
{
sal_uInt16 nLines = 0;
- if (m_pImpl->m_pFloatWin)
- nLines = m_pImpl->m_pFloatWin->GetDropDownLineCount();
+ if (m_pFloatWin)
+ nLines = m_pFloatWin->GetDropDownLineCount();
return nLines;
}
@@ -559,15 +517,15 @@ void ComboBox::setPosSizePixel( tools::Long nX, tools::Long nY, tools::Long nWid
{
if( IsDropDownBox() && ( nFlags & PosSizeFlags::Size ) )
{
- Size aPrefSz = m_pImpl->m_pFloatWin->GetPrefSize();
- if ((nFlags & PosSizeFlags::Height) && (nHeight >= 2*m_pImpl->m_nDDHeight))
- aPrefSz.setHeight( nHeight-m_pImpl->m_nDDHeight );
+ Size aPrefSz = m_pFloatWin->GetPrefSize();
+ if ((nFlags & PosSizeFlags::Height) && (nHeight >= 2*m_nDDHeight))
+ aPrefSz.setHeight( nHeight-m_nDDHeight );
if ( nFlags & PosSizeFlags::Width )
aPrefSz.setWidth( nWidth );
- m_pImpl->m_pFloatWin->SetPrefSize( aPrefSz );
+ m_pFloatWin->SetPrefSize(aPrefSz);
if (IsAutoSizeEnabled())
- nHeight = m_pImpl->m_nDDHeight;
+ nHeight = m_nDDHeight;
}
Edit::setPosSizePixel( nX, nY, nWidth, nHeight, nFlags );
@@ -577,44 +535,44 @@ void ComboBox::Resize()
{
Control::Resize();
- if (m_pImpl->m_pSubEdit)
+ if (m_pSubEdit)
{
Size aOutSz = GetOutputSizePixel();
if( IsDropDownBox() )
{
- ComboBoxBounds aBounds(m_pImpl->calcComboBoxDropDownComponentBounds(aOutSz,
+ ComboBoxBounds aBounds(calcComboBoxDropDownComponentBounds(aOutSz,
GetWindow(GetWindowType::Border)->GetOutputSizePixel()));
- m_pImpl->m_pSubEdit->SetPosSizePixel(aBounds.aSubEditPos, aBounds.aSubEditSize);
- m_pImpl->m_pBtn->SetPosSizePixel(aBounds.aButtonPos, aBounds.aButtonSize);
+ m_pSubEdit->SetPosSizePixel(aBounds.aSubEditPos, aBounds.aSubEditSize);
+ m_pBtn->SetPosSizePixel(aBounds.aButtonPos, aBounds.aButtonSize);
}
else
{
- m_pImpl->m_pSubEdit->SetSizePixel(Size(aOutSz.Width(), m_pImpl->m_nDDHeight));
- m_pImpl->m_pImplLB->setPosSizePixel(0, m_pImpl->m_nDDHeight,
- aOutSz.Width(), aOutSz.Height() - m_pImpl->m_nDDHeight);
+ m_pSubEdit->SetSizePixel(Size(aOutSz.Width(), m_nDDHeight));
+ m_pImplLB->setPosSizePixel(0, m_nDDHeight,
+ aOutSz.Width(), aOutSz.Height() - m_nDDHeight);
if ( !GetText().isEmpty() )
- m_pImpl->ImplUpdateFloatSelection();
+ ImplUpdateFloatSelection();
}
}
// adjust the size of the FloatingWindow even when invisible
// as KEY_PGUP/DOWN is being processed...
- if (m_pImpl->m_pFloatWin)
- m_pImpl->m_pFloatWin->SetSizePixel(m_pImpl->m_pFloatWin->CalcFloatSize());
+ if (m_pFloatWin)
+ m_pFloatWin->SetSizePixel(m_pFloatWin->CalcFloatSize());
}
-bool ComboBox::IsDropDownBox() const { return m_pImpl->m_pFloatWin != nullptr; }
+bool ComboBox::IsDropDownBox() const { return m_pFloatWin != nullptr; }
void ComboBox::FillLayoutData() const
{
mxLayoutData.emplace();
- AppendLayoutData( *m_pImpl->m_pSubEdit );
- m_pImpl->m_pSubEdit->SetLayoutDataParent( this );
+ AppendLayoutData( *m_pSubEdit );
+ m_pSubEdit->SetLayoutDataParent( this );
ImplListBoxWindow* rMainWindow = GetMainWindow();
- if (m_pImpl->m_pFloatWin)
+ if (m_pFloatWin)
{
// dropdown mode
- if (m_pImpl->m_pFloatWin->IsReallyVisible())
+ if (m_pFloatWin->IsReallyVisible())
{
AppendLayoutData( *rMainWindow );
rMainWindow->SetLayoutDataParent( this );
@@ -633,45 +591,45 @@ void ComboBox::StateChanged( StateChangedType nType )
if ( nType == StateChangedType::ReadOnly )
{
- m_pImpl->m_pImplLB->SetReadOnly( IsReadOnly() );
- if (m_pImpl->m_pBtn)
- m_pImpl->m_pBtn->Enable( IsEnabled() && !IsReadOnly() );
+ m_pImplLB->SetReadOnly( IsReadOnly() );
+ if (m_pBtn)
+ m_pBtn->Enable( IsEnabled() && !IsReadOnly() );
}
else if ( nType == StateChangedType::Enable )
{
- m_pImpl->m_pSubEdit->Enable( IsEnabled() );
- m_pImpl->m_pImplLB->Enable( IsEnabled() && !IsReadOnly() );
- if (m_pImpl->m_pBtn)
- m_pImpl->m_pBtn->Enable( IsEnabled() && !IsReadOnly() );
+ m_pSubEdit->Enable( IsEnabled() );
+ m_pImplLB->Enable( IsEnabled() && !IsReadOnly() );
+ if (m_pBtn)
+ m_pBtn->Enable( IsEnabled() && !IsReadOnly() );
Invalidate();
}
else if( nType == StateChangedType::UpdateMode )
{
- m_pImpl->m_pImplLB->SetUpdateMode( IsUpdateMode() );
+ m_pImplLB->SetUpdateMode( IsUpdateMode() );
}
else if ( nType == StateChangedType::Zoom )
{
- m_pImpl->m_pImplLB->SetZoom( GetZoom() );
- m_pImpl->m_pSubEdit->SetZoom( GetZoom() );
+ m_pImplLB->SetZoom( GetZoom() );
+ m_pSubEdit->SetZoom( GetZoom() );
ImplCalcEditHeight();
Resize();
}
else if ( nType == StateChangedType::ControlFont )
{
- m_pImpl->m_pImplLB->SetControlFont( GetControlFont() );
- m_pImpl->m_pSubEdit->SetControlFont( GetControlFont() );
+ m_pImplLB->SetControlFont( GetControlFont() );
+ m_pSubEdit->SetControlFont( GetControlFont() );
ImplCalcEditHeight();
Resize();
}
else if ( nType == StateChangedType::ControlForeground )
{
- m_pImpl->m_pImplLB->SetControlForeground( GetControlForeground() );
- m_pImpl->m_pSubEdit->SetControlForeground( GetControlForeground() );
+ m_pImplLB->SetControlForeground( GetControlForeground() );
+ m_pSubEdit->SetControlForeground( GetControlForeground() );
}
else if ( nType == StateChangedType::ControlBackground )
{
- m_pImpl->m_pImplLB->SetControlBackground( GetControlBackground() );
- m_pImpl->m_pSubEdit->SetControlBackground( GetControlBackground() );
+ m_pImplLB->SetControlBackground( GetControlBackground() );
+ m_pSubEdit->SetControlBackground( GetControlBackground() );
}
else if ( nType == StateChangedType::Style )
{
@@ -680,13 +638,13 @@ void ComboBox::StateChanged( StateChangedType nType )
}
else if( nType == StateChangedType::Mirroring )
{
- if (m_pImpl->m_pBtn)
+ if (m_pBtn)
{
- m_pImpl->m_pBtn->EnableRTL( IsRTLEnabled() );
- ImplInitDropDownButton( m_pImpl->m_pBtn );
+ m_pBtn->EnableRTL( IsRTLEnabled() );
+ ImplInitDropDownButton( m_pBtn );
}
- m_pImpl->m_pSubEdit->CompatStateChanged( StateChangedType::Mirroring );
- m_pImpl->m_pImplLB->EnableRTL( IsRTLEnabled() );
+ m_pSubEdit->CompatStateChanged( StateChangedType::Mirroring );
+ m_pImplLB->EnableRTL( IsRTLEnabled() );
Resize();
}
}
@@ -701,13 +659,13 @@ void ComboBox::DataChanged( const DataChangedEvent& rDCEvt )
(rDCEvt.GetFlags() & AllSettingsFlags::STYLE))) )
return;
- if (m_pImpl->m_pBtn)
+ if (m_pBtn)
{
- m_pImpl->m_pBtn->GetOutDev()->SetSettings( GetSettings() );
- ImplInitDropDownButton( m_pImpl->m_pBtn );
+ m_pBtn->GetOutDev()->SetSettings( GetSettings() );
+ ImplInitDropDownButton( m_pBtn );
}
Resize();
- m_pImpl->m_pImplLB->Resize(); // not called by ComboBox::Resize() if ImplLB is unchanged
+ m_pImplLB->Resize(); // not called by ComboBox::Resize() if ImplLB is unchanged
SetBackground(); // due to a hack in Window::UpdateSettings the background must be reset
// otherwise it will overpaint NWF drawn comboboxes
@@ -717,7 +675,7 @@ bool ComboBox::EventNotify( NotifyEvent& rNEvt )
{
bool bDone = false;
if ((rNEvt.GetType() == NotifyEventType::KEYINPUT)
- && (rNEvt.GetWindow() == m_pImpl->m_pSubEdit)
+ && (rNEvt.GetWindow() == m_pSubEdit)
&& !IsReadOnly())
{
KeyEvent aKeyEvt = *rNEvt.GetKeyEvent();
@@ -729,55 +687,55 @@ bool ComboBox::EventNotify( NotifyEvent& rNEvt )
case KEY_PAGEUP:
case KEY_PAGEDOWN:
{
- m_pImpl->ImplUpdateFloatSelection();
- if ((nKeyCode == KEY_DOWN) && m_pImpl->m_pFloatWin
- && !m_pImpl->m_pFloatWin->IsInPopupMode()
+ ImplUpdateFloatSelection();
+ if ((nKeyCode == KEY_DOWN) && m_pFloatWin
+ && !m_pFloatWin->IsInPopupMode()
&& aKeyEvt.GetKeyCode().IsMod2())
{
CallEventListeners( VclEventId::DropdownPreOpen );
- m_pImpl->m_pBtn->SetPressed( true );
- if (m_pImpl->m_pImplLB->GetEntryList().GetMRUCount())
- m_pImpl->m_pImplLB->SelectEntry( 0 , true );
+ m_pBtn->SetPressed( true );
+ if (m_pImplLB->GetEntryList().GetMRUCount())
+ m_pImplLB->SelectEntry( 0 , true );
SetSelection( Selection( 0, SELECTION_MAX ) );
- m_pImpl->m_pFloatWin->StartFloat( false );
+ m_pFloatWin->StartFloat(false);
CallEventListeners( VclEventId::DropdownOpen );
bDone = true;
}
- else if ((nKeyCode == KEY_UP) && m_pImpl->m_pFloatWin
- && m_pImpl->m_pFloatWin->IsInPopupMode()
+ else if ((nKeyCode == KEY_UP) && m_pFloatWin
+ && m_pFloatWin->IsInPopupMode()
&& aKeyEvt.GetKeyCode().IsMod2())
{
- m_pImpl->m_pFloatWin->EndPopupMode();
+ m_pFloatWin->EndPopupMode();
bDone = true;
}
else
{
- bDone = m_pImpl->m_pImplLB->ProcessKeyInput( aKeyEvt );
+ bDone = m_pImplLB->ProcessKeyInput( aKeyEvt );
}
}
break;
case KEY_RETURN:
{
- if ((rNEvt.GetWindow() == m_pImpl->m_pSubEdit) && IsInDropDown())
+ if ((rNEvt.GetWindow() == m_pSubEdit) && IsInDropDown())
{
- m_pImpl->m_pImplLB->ProcessKeyInput( aKeyEvt );
+ m_pImplLB->ProcessKeyInput( aKeyEvt );
bDone = true;
}
}
break;
}
}
- else if ((rNEvt.GetType() == NotifyEventType::LOSEFOCUS) && m_pImpl->m_pFloatWin)
+ else if ((rNEvt.GetType() == NotifyEventType::LOSEFOCUS) && m_pFloatWin)
{
- if (m_pImpl->m_pFloatWin->HasChildPathFocus())
- m_pImpl->m_pSubEdit->GrabFocus();
- else if (m_pImpl->m_pFloatWin->IsInPopupMode() && !HasChildPathFocus(true))
- m_pImpl->m_pFloatWin->EndPopupMode();
+ if (m_pFloatWin->HasChildPathFocus())
+ m_pSubEdit->GrabFocus();
+ else if (m_pFloatWin->IsInPopupMode() && !HasChildPathFocus(true))
+ m_pFloatWin->EndPopupMode();
}
else if( (rNEvt.GetType() == NotifyEventType::COMMAND) &&
(rNEvt.GetCommandEvent()->GetCommand() == CommandEventId::Wheel) &&
- (rNEvt.GetWindow() == m_pImpl->m_pSubEdit) )
+ (rNEvt.GetWindow() == m_pSubEdit) )
{
MouseWheelBehaviour nWheelBehavior( GetSettings().GetMouseSettings().GetWheelBehavior() );
if ( ( nWheelBehavior == MouseWheelBehaviour::ALWAYS )
@@ -786,7 +744,7 @@ bool ComboBox::EventNotify( NotifyEvent& rNEvt )
)
)
{
- bDone = m_pImpl->m_pImplLB->HandleWheelAsCursorTravel(*rNEvt.GetCommandEvent(), *this);
+ bDone = m_pImplLB->HandleWheelAsCursorTravel(*rNEvt.GetCommandEvent(), *this);
}
else
{
@@ -796,7 +754,7 @@ bool ComboBox::EventNotify( NotifyEvent& rNEvt )
else if ((rNEvt.GetType() == NotifyEventType::MOUSEBUTTONDOWN)
&& (rNEvt.GetWindow() == GetMainWindow()))
{
- m_pImpl->m_pSubEdit->GrabFocus();
+ m_pSubEdit->GrabFocus();
}
return bDone || Edit::EventNotify( rNEvt );
@@ -807,7 +765,7 @@ void ComboBox::SetText( const OUString& rStr )
CallEventListeners( VclEventId::ComboboxSetText );
Edit::SetText( rStr );
- m_pImpl->ImplUpdateFloatSelection();
+ ImplUpdateFloatSelection();
}
void ComboBox::SetText( const OUString& rStr, const Selection& rNewSelection )
@@ -815,25 +773,25 @@ void ComboBox::SetText( const OUString& rStr, const Selection& rNewSelection )
CallEventListeners( VclEventId::ComboboxSetText );
Edit::SetText( rStr, rNewSelection );
- m_pImpl->ImplUpdateFloatSelection();
+ ImplUpdateFloatSelection();
}
void ComboBox::Modify()
{
- if (!m_pImpl->m_isSyntheticModify)
- m_pImpl->ImplUpdateFloatSelection();
+ if (!m_isSyntheticModify)
+ ImplUpdateFloatSelection();
Edit::Modify();
}
-void ComboBox::Impl::ImplUpdateFloatSelection()
+void ComboBox::ImplUpdateFloatSelection()
{
if (!m_pImplLB || !m_pSubEdit)
return;
// move text in the ListBox into the visible region
m_pImplLB->SetCallSelectionChangedHdl( false );
- if (!m_rThis.IsMultiSelectionEnabled())
+ if (!IsMultiSelectionEnabled())
{
OUString aSearchStr( m_pSubEdit->GetText() );
sal_Int32 nSelect = LISTBOX_ENTRY_NOTFOUND;
@@ -881,20 +839,20 @@ void ComboBox::Impl::ImplUpdateFloatSelection()
sal_Int32 ComboBox::InsertEntry(const OUString& rStr, sal_Int32 const nPos)
{
- assert(nPos >= 0 && COMBOBOX_MAX_ENTRIES > m_pImpl->m_pImplLB->GetEntryList().GetEntryCount());
+ assert(nPos >= 0 && COMBOBOX_MAX_ENTRIES > m_pImplLB->GetEntryList().GetEntryCount());
sal_Int32 nRealPos;
if (nPos == COMBOBOX_APPEND)
nRealPos = nPos;
else
{
- const sal_Int32 nMRUCount = m_pImpl->m_pImplLB->GetEntryList().GetMRUCount();
+ const sal_Int32 nMRUCount = m_pImplLB->GetEntryList().GetMRUCount();
assert(nPos <= COMBOBOX_MAX_ENTRIES - nMRUCount);
nRealPos = nPos + nMRUCount;
}
- nRealPos = m_pImpl->m_pImplLB->InsertEntry( nRealPos, rStr );
- nRealPos -= m_pImpl->m_pImplLB->GetEntryList().GetMRUCount();
+ nRealPos = m_pImplLB->InsertEntry( nRealPos, rStr );
+ nRealPos -= m_pImplLB->GetEntryList().GetMRUCount();
CallEventListeners( VclEventId::ComboboxItemAdded, reinterpret_cast<void*>(static_cast<sal_IntPtr>(nRealPos)) );
return nRealPos;
}
@@ -902,95 +860,95 @@ sal_Int32 ComboBox::InsertEntry(const OUString& rStr, sal_Int32 const nPos)
sal_Int32 ComboBox::InsertEntryWithImage(
const OUString& rStr, const Image& rImage, sal_Int32 const nPos)
{
- assert(nPos >= 0 && COMBOBOX_MAX_ENTRIES > m_pImpl->m_pImplLB->GetEntryList().GetEntryCount());
+ assert(nPos >= 0 && COMBOBOX_MAX_ENTRIES > m_pImplLB->GetEntryList().GetEntryCount());
sal_Int32 nRealPos;
if (nPos == COMBOBOX_APPEND)
nRealPos = nPos;
else
{
- const sal_Int32 nMRUCount = m_pImpl->m_pImplLB->GetEntryList().GetMRUCount();
+ const sal_Int32 nMRUCount = m_pImplLB->GetEntryList().GetMRUCount();
assert(nPos <= COMBOBOX_MAX_ENTRIES - nMRUCount);
nRealPos = nPos + nMRUCount;
}
- nRealPos = m_pImpl->m_pImplLB->InsertEntry( nRealPos, rStr, rImage );
- nRealPos -= m_pImpl->m_pImplLB->GetEntryList().GetMRUCount();
+ nRealPos = m_pImplLB->InsertEntry( nRealPos, rStr, rImage );
+ nRealPos -= m_pImplLB->GetEntryList().GetMRUCount();
CallEventListeners( VclEventId::ComboboxItemAdded, reinterpret_cast<void*>(static_cast<sal_IntPtr>(nRealPos)) );
return nRealPos;
}
void ComboBox::RemoveEntryAt(sal_Int32 const nPos)
{
- const sal_Int32 nMRUCount = m_pImpl->m_pImplLB->GetEntryList().GetMRUCount();
+ const sal_Int32 nMRUCount = m_pImplLB->GetEntryList().GetMRUCount();
assert(nPos >= 0 && nPos <= COMBOBOX_MAX_ENTRIES - nMRUCount);
- m_pImpl->m_pImplLB->RemoveEntry( nPos + nMRUCount );
+ m_pImplLB->RemoveEntry( nPos + nMRUCount );
CallEventListeners( VclEventId::ComboboxItemRemoved, reinterpret_cast<void*>(static_cast<sal_IntPtr>(nPos)) );
}
void ComboBox::Clear()
{
- if (!m_pImpl->m_pImplLB)
+ if (!m_pImplLB)
return;
- m_pImpl->m_pImplLB->Clear();
+ m_pImplLB->Clear();
CallEventListeners( VclEventId::ComboboxItemRemoved, reinterpret_cast<void*>(sal_IntPtr(-1)) );
}
Image ComboBox::GetEntryImage( sal_Int32 nPos ) const
{
- if (m_pImpl->m_pImplLB->GetEntryList().HasEntryImage(nPos))
- return m_pImpl->m_pImplLB->GetEntryList().GetEntryImage( nPos );
+ if (m_pImplLB->GetEntryList().HasEntryImage(nPos))
+ return m_pImplLB->GetEntryList().GetEntryImage( nPos );
return Image();
}
sal_Int32 ComboBox::GetEntryPos( std::u16string_view rStr ) const
{
- sal_Int32 nPos = m_pImpl->m_pImplLB->GetEntryList().FindEntry( rStr );
+ sal_Int32 nPos = m_pImplLB->GetEntryList().FindEntry( rStr );
if ( nPos != LISTBOX_ENTRY_NOTFOUND )
- nPos -= m_pImpl->m_pImplLB->GetEntryList().GetMRUCount();
+ nPos -= m_pImplLB->GetEntryList().GetMRUCount();
return nPos;
}
OUString ComboBox::GetEntry( sal_Int32 nPos ) const
{
- const sal_Int32 nMRUCount = m_pImpl->m_pImplLB->GetEntryList().GetMRUCount();
+ const sal_Int32 nMRUCount = m_pImplLB->GetEntryList().GetMRUCount();
if (nPos < 0 || nPos > COMBOBOX_MAX_ENTRIES - nMRUCount)
return OUString();
- return m_pImpl->m_pImplLB->GetEntryList().GetEntryText( nPos + nMRUCount );
+ return m_pImplLB->GetEntryList().GetEntryText( nPos + nMRUCount );
}
sal_Int32 ComboBox::GetEntryCount() const
{
- if (!m_pImpl->m_pImplLB)
+ if (!m_pImplLB)
return 0;
- return m_pImpl->m_pImplLB->GetEntryList().GetEntryCount() - m_pImpl->m_pImplLB->GetEntryList().GetMRUCount();
+ return m_pImplLB->GetEntryList().GetEntryCount() - m_pImplLB->GetEntryList().GetMRUCount();
}
bool ComboBox::IsTravelSelect() const
{
- return m_pImpl->m_pImplLB->IsTravelSelect();
+ return m_pImplLB->IsTravelSelect();
}
bool ComboBox::IsInDropDown() const
{
// when the dropdown is dismissed, first mbInPopupMode is set to false, and on the next event iteration then
// mbPopupMode is set to false
- return m_pImpl->m_pFloatWin && m_pImpl->m_pFloatWin->IsInPopupMode() && m_pImpl->m_pFloatWin->ImplIsInPrivatePopupMode();
+ return m_pFloatWin && m_pFloatWin->IsInPopupMode() && m_pFloatWin->ImplIsInPrivatePopupMode();
}
bool ComboBox::IsMultiSelectionEnabled() const
{
- return m_pImpl->m_pImplLB->IsMultiSelectionEnabled();
+ return m_pImplLB->IsMultiSelectionEnabled();
}
-void ComboBox::SetSelectHdl(const Link<ComboBox&,void>& rLink) { m_pImpl->m_SelectHdl = rLink; }
+void ComboBox::SetSelectHdl(const Link<ComboBox&,void>& rLink) { m_SelectHdl = rLink; }
void ComboBox::SetEntryActivateHdl(const Link<Edit&,bool>& rLink)
{
- if (!m_pImpl->m_pSubEdit)
+ if (!m_pSubEdit)
return;
- m_pImpl->m_pSubEdit->SetActivateHdl(rLink);
+ m_pSubEdit->SetActivateHdl(rLink);
}
Size ComboBox::GetOptimalSize() const
@@ -1024,34 +982,34 @@ Size ComboBox::CalcMinimumSize() const
{
Size aSz;
- if (!m_pImpl->m_pImplLB)
+ if (!m_pImplLB)
return aSz;
if (!IsDropDownBox())
{
- aSz = m_pImpl->m_pImplLB->CalcSize( m_pImpl->m_pImplLB->GetEntryList().GetEntryCount() );
- aSz.AdjustHeight(m_pImpl->m_nDDHeight );
+ aSz = m_pImplLB->CalcSize( m_pImplLB->GetEntryList().GetEntryCount() );
+ aSz.AdjustHeight(m_nDDHeight );
}
else
{
aSz.setHeight( Edit::CalcMinimumSizeForText(GetText()).Height() );
- if (m_pImpl->m_nWidthInChars!= -1)
- aSz.setWidth(m_pImpl->m_nWidthInChars * approximate_digit_width());
+ if (m_nWidthInChars!= -1)
+ aSz.setWidth(m_nWidthInChars * approximate_digit_width());
else
- aSz.setWidth(m_pImpl->m_pImplLB->GetMaxEntryWidth());
+ aSz.setWidth(m_pImplLB->GetMaxEntryWidth());
}
- if (m_pImpl->m_nMaxWidthChars != -1)
+ if (m_nMaxWidthChars != -1)
{
- tools::Long nMaxWidth = m_pImpl->m_nMaxWidthChars * approximate_char_width();
+ tools::Long nMaxWidth = m_nMaxWidthChars * approximate_char_width();
aSz.setWidth( std::min(aSz.Width(), nMaxWidth) );
}
if (IsDropDownBox())
aSz.AdjustWidth(getMaxWidthScrollBarAndDownButton() );
- ComboBoxBounds aBounds(m_pImpl->calcComboBoxDropDownComponentBounds(
+ ComboBoxBounds aBounds(calcComboBoxDropDownComponentBounds(
Size(0xFFFF, 0xFFFF), Size(0xFFFF, 0xFFFF)));
aSz.AdjustWidth(aBounds.aSubEditPos.X()*2 );
@@ -1074,11 +1032,11 @@ Size ComboBox::CalcAdjustedSize( const Size& rPrefSize ) const
if ( nLines < 1 )
nLines = 1;
aSz.setHeight( nLines * nEntryHeight );
- aSz.AdjustHeight(m_pImpl->m_nDDHeight );
+ aSz.AdjustHeight(m_nDDHeight );
}
else
{
- aSz.setHeight( m_pImpl->m_nDDHeight );
+ aSz.setHeight( m_nDDHeight );
}
aSz.AdjustHeight(nTop+nBottom );
@@ -1096,9 +1054,9 @@ Size ComboBox::CalcBlockSize( sal_uInt16 nColumns, sal_uInt16 nLines ) const
if ( nLines )
{
if ( !IsDropDownBox() )
- aSz.setHeight( m_pImpl->m_pImplLB->CalcSize( nLines ).Height() + m_pImpl->m_nDDHeight );
+ aSz.setHeight( m_pImplLB->CalcSize( nLines ).Height() + m_nDDHeight );
else
- aSz.setHeight( m_pImpl->m_nDDHeight );
+ aSz.setHeight( m_nDDHeight );
}
else
aSz.setHeight( aMinSz.Height() );
@@ -1128,7 +1086,7 @@ Size ComboBox::CalcBlockSize( sal_uInt16 nColumns, sal_uInt16 nLines ) const
tools::Long ComboBox::GetDropDownEntryHeight() const
{
- return m_pImpl->m_pImplLB->GetEntryHeight();
+ return m_pImplLB->GetEntryHeight();
}
void ComboBox::GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines ) const
@@ -1142,7 +1100,7 @@ void ComboBox::GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines
}
else
{
- Size aOutSz = m_pImpl->m_pSubEdit->GetOutputSizePixel();
+ Size aOutSz = m_pSubEdit->GetOutputSizePixel();
rnCols = (nCharWidth > 0) ? static_cast<sal_uInt16>(aOutSz.Width()/nCharWidth) : 1;
rnLines = 1;
}
@@ -1190,10 +1148,10 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, SystemTextColorFlags
DrawTextFlags nTextStyle = DrawTextFlags::VCenter;
// First, draw the edit part
- Size aOrigSize(m_pImpl->m_pSubEdit->GetSizePixel());
- m_pImpl->m_pSubEdit->SetSizePixel(Size(aSize.Width(), nEditHeight));
- m_pImpl->m_pSubEdit->Draw( pDev, aPos, nFlags );
- m_pImpl->m_pSubEdit->SetSizePixel(aOrigSize);
+ Size aOrigSize(m_pSubEdit->GetSizePixel());
+ m_pSubEdit->SetSizePixel(Size(aSize.Width(), nEditHeight));
+ m_pSubEdit->Draw( pDev, aPos, nFlags );
+ m_pSubEdit->SetSizePixel(aOrigSize);
// Second, draw the listbox
if ( GetStyle() & WB_CENTER )
@@ -1225,7 +1183,7 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, SystemTextColorFlags
sal_Int32 nLines = static_cast<sal_Int32>( nTextHeight > 0 ? (aSize.Height()-nEditHeight)/nTextHeight : 1 );
if ( !nLines )
nLines = 1;
- const sal_Int32 nTEntry = IsReallyVisible() ? m_pImpl->m_pImplLB->GetTopEntry() : 0;
+ const sal_Int32 nTEntry = IsReallyVisible() ? m_pImplLB->GetTopEntry() : 0;
tools::Rectangle aTextRect( aPos, aSize );
@@ -1237,7 +1195,7 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, SystemTextColorFlags
// the drawing starts here
for ( sal_Int32 n = 0; n < nLines; ++n )
{
- pDev->DrawText( aTextRect, m_pImpl->m_pImplLB->GetEntryList().GetEntryText( n+nTEntry ), nTextStyle );
+ pDev->DrawText( aTextRect, m_pImplLB->GetEntryList().GetEntryText( n+nTEntry ), nTextStyle );
aTextRect.AdjustTop(nTextHeight );
aTextRect.AdjustBottom(nTextHeight );
}
@@ -1248,17 +1206,17 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, SystemTextColorFlags
// Call Edit::Draw after restoring the MapMode...
if ( IsDropDownBox() )
{
- Size aOrigSize(m_pImpl->m_pSubEdit->GetSizePixel());
- m_pImpl->m_pSubEdit->SetSizePixel(GetSizePixel());
- m_pImpl->m_pSubEdit->Draw( pDev, rPos, nFlags );
- m_pImpl->m_pSubEdit->SetSizePixel(aOrigSize);
+ Size aOrigSize(m_pSubEdit->GetSizePixel());
+ m_pSubEdit->SetSizePixel(GetSizePixel());
+ m_pSubEdit->Draw( pDev, rPos, nFlags );
+ m_pSubEdit->SetSizePixel(aOrigSize);
// DD-Button ?
}
}
void ComboBox::SetUserDrawHdl(const Link<UserDrawEvent*, void>& rLink)
{
- m_pImpl->m_pImplLB->SetUserDrawHdl(rLink);
+ m_pImplLB->SetUserDrawHdl(rLink);
}
void ComboBox::SetUserItemSize( const Size& rSz )
@@ -1283,66 +1241,66 @@ void ComboBox::DrawEntry(const UserDrawEvent& rEvt)
void ComboBox::AddSeparator( sal_Int32 n )
{
- m_pImpl->m_pImplLB->AddSeparator( n );
+ m_pImplLB->AddSeparator( n );
}
void ComboBox::SetMRUEntries( std::u16string_view rEntries )
{
- m_pImpl->m_pImplLB->SetMRUEntries( rEntries, ';' );
+ m_pImplLB->SetMRUEntries( rEntries, ';' );
}
OUString ComboBox::GetMRUEntries() const
{
- return m_pImpl->m_pImplLB ? m_pImpl->m_pImplLB->GetMRUEntries( ';' ) : OUString();
+ return m_pImplLB ? m_pImplLB->GetMRUEntries( ';' ) : OUString();
}
void ComboBox::SetMaxMRUCount( sal_Int32 n )
{
- m_pImpl->m_pImplLB->SetMaxMRUCount( n );
+ m_pImplLB->SetMaxMRUCount( n );
}
sal_Int32 ComboBox::GetMaxMRUCount() const
{
- return m_pImpl->m_pImplLB ? m_pImpl->m_pImplLB->GetMaxMRUCount() : 0;
+ return m_pImplLB ? m_pImplLB->GetMaxMRUCount() : 0;
}
sal_uInt16 ComboBox::GetDisplayLineCount() const
{
- return m_pImpl->m_pImplLB ? m_pImpl->m_pImplLB->GetDisplayLineCount() : 0;
+ return m_pImplLB ? m_pImplLB->GetDisplayLineCount() : 0;
}
void ComboBox::SetEntryData( sal_Int32 nPos, void* pNewData )
{
- m_pImpl->m_pImplLB->SetEntryData( nPos + m_pImpl->m_pImplLB->GetEntryList().GetMRUCount(), pNewData );
+ m_pImplLB->SetEntryData( nPos + m_pImplLB->GetEntryList().GetMRUCount(), pNewData );
}
void* ComboBox::GetEntryData( sal_Int32 nPos ) const
{
- return m_pImpl->m_pImplLB->GetEntryList().GetEntryData(
- nPos + m_pImpl->m_pImplLB->GetEntryList().GetMRUCount() );
+ return m_pImplLB->GetEntryList().GetEntryData(
+ nPos + m_pImplLB->GetEntryList().GetMRUCount() );
}
sal_Int32 ComboBox::GetTopEntry() const
{
- sal_Int32 nPos = GetEntryCount() ? m_pImpl->m_pImplLB->GetTopEntry() : LISTBOX_ENTRY_NOTFOUND;
- if (nPos < m_pImpl->m_pImplLB->GetEntryList().GetMRUCount())
+ sal_Int32 nPos = GetEntryCount() ? m_pImplLB->GetTopEntry() : LISTBOX_ENTRY_NOTFOUND;
+ if (nPos < m_pImplLB->GetEntryList().GetMRUCount())
nPos = 0;
return nPos;
}
tools::Rectangle ComboBox::GetDropDownPosSizePixel() const
{
- return m_pImpl->m_pFloatWin
- ? m_pImpl->m_pFloatWin->GetWindowExtentsRelative(*this)
+ return m_pFloatWin
+ ? m_pFloatWin->GetWindowExtentsRelative(*this)
: tools::Rectangle();
}
const Wallpaper& ComboBox::GetDisplayBackground() const
{
- if (!m_pImpl->m_pSubEdit->IsBackground())
+ if (!m_pSubEdit->IsBackground())
return Control::GetDisplayBackground();
- const Wallpaper& rBack = m_pImpl->m_pSubEdit->GetBackground();
+ const Wallpaper& rBack = m_pSubEdit->GetBackground();
if( ! rBack.IsBitmap() &&
! rBack.IsGradient() &&
rBack == Wallpaper(COL_TRANSPARENT)
@@ -1353,38 +1311,38 @@ const Wallpaper& ComboBox::GetDisplayBackground() const
sal_Int32 ComboBox::GetSelectedEntryCount() const
{
- return m_pImpl->m_pImplLB->GetEntryList().GetSelectedEntryCount();
+ return m_pImplLB->GetEntryList().GetSelectedEntryCount();
}
sal_Int32 ComboBox::GetSelectedEntryPos( sal_Int32 nIndex ) const
{
- sal_Int32 nPos = m_pImpl->m_pImplLB->GetEntryList().GetSelectedEntryPos( nIndex );
+ sal_Int32 nPos = m_pImplLB->GetEntryList().GetSelectedEntryPos( nIndex );
if ( nPos != LISTBOX_ENTRY_NOTFOUND )
{
- if (nPos < m_pImpl->m_pImplLB->GetEntryList().GetMRUCount())
- nPos = m_pImpl->m_pImplLB->GetEntryList().FindEntry(m_pImpl->m_pImplLB->GetEntryList().GetEntryText(nPos));
- nPos = sal::static_int_cast<sal_Int32>(nPos - m_pImpl->m_pImplLB->GetEntryList().GetMRUCount());
+ if (nPos < m_pImplLB->GetEntryList().GetMRUCount())
+ nPos = m_pImplLB->GetEntryList().FindEntry(m_pImplLB->GetEntryList().GetEntryText(nPos));
+ nPos = sal::static_int_cast<sal_Int32>(nPos - m_pImplLB->GetEntryList().GetMRUCount());
}
return nPos;
}
bool ComboBox::IsEntryPosSelected( sal_Int32 nPos ) const
{
- return m_pImpl->m_pImplLB->GetEntryList().IsEntryPosSelected(
- nPos + m_pImpl->m_pImplLB->GetEntryList().GetMRUCount() );
+ return m_pImplLB->GetEntryList().IsEntryPosSelected(
+ nPos + m_pImplLB->GetEntryList().GetMRUCount() );
}
void ComboBox::SelectEntryPos( sal_Int32 nPos, bool bSelect)
{
- if (nPos < m_pImpl->m_pImplLB->GetEntryList().GetEntryCount())
- m_pImpl->m_pImplLB->SelectEntry(
- nPos + m_pImpl->m_pImplLB->GetEntryList().GetMRUCount(), bSelect);
+ if (nPos < m_pImplLB->GetEntryList().GetEntryCount())
+ m_pImplLB->SelectEntry(
+ nPos + m_pImplLB->GetEntryList().GetMRUCount(), bSelect);
}
void ComboBox::SetNoSelection()
{
- m_pImpl->m_pImplLB->SetNoSelection();
- m_pImpl->m_pSubEdit->SetText( OUString() );
+ m_pImplLB->SetNoSelection();
+ m_pSubEdit->SetText(OUString());
}
tools::Rectangle ComboBox::GetBoundingRectangle( sal_Int32 nItem ) const
@@ -1400,8 +1358,8 @@ void ComboBox::SetBorderStyle( WindowBorderStyle nBorderStyle )
Window::SetBorderStyle( nBorderStyle );
if ( !IsDropDownBox() )
{
- m_pImpl->m_pSubEdit->SetBorderStyle( nBorderStyle );
- m_pImpl->m_pImplLB->SetBorderStyle( nBorderStyle );
+ m_pSubEdit->SetBorderStyle(nBorderStyle);
+ m_pImplLB->SetBorderStyle( nBorderStyle );
}
}
@@ -1413,13 +1371,13 @@ void ComboBox::SetHighlightColor( const Color& rColor )
aSettings.SetStyleSettings(aStyle);
SetSettings(aSettings);
- AllSettings aSettingsSubEdit(m_pImpl->m_pSubEdit->GetSettings());
+ AllSettings aSettingsSubEdit(m_pSubEdit->GetSettings());
StyleSettings aStyleSubEdit(aSettingsSubEdit.GetStyleSettings());
aStyleSubEdit.SetHighlightColor(rColor);
aSettingsSubEdit.SetStyleSettings(aStyleSubEdit);
- m_pImpl->m_pSubEdit->SetSettings(aSettings);
+ m_pSubEdit->SetSettings(aSettings);
- m_pImpl->m_pImplLB->SetHighlightColor(rColor);
+ m_pImplLB->SetHighlightColor(rColor);
}
void ComboBox::SetHighlightTextColor( const Color& rColor )
@@ -1430,18 +1388,18 @@ void ComboBox::SetHighlightTextColor( const Color& rColor )
aSettings.SetStyleSettings(aStyle);
SetSettings(aSettings);
- AllSettings aSettingsSubEdit(m_pImpl->m_pSubEdit->GetSettings());
+ AllSettings aSettingsSubEdit(m_pSubEdit->GetSettings());
StyleSettings aStyleSubEdit(aSettingsSubEdit.GetStyleSettings());
aStyleSubEdit.SetHighlightTextColor(rColor);
aSettingsSubEdit.SetStyleSettings(aStyleSubEdit);
- m_pImpl->m_pSubEdit->SetSettings(aSettings);
+ m_pSubEdit->SetSettings(aSettings);
- m_pImpl->m_pImplLB->SetHighlightTextColor(rColor);
+ m_pImplLB->SetHighlightTextColor(rColor);
}
ImplListBoxWindow* ComboBox::GetMainWindow() const
{
- return m_pImpl->m_pImplLB->GetMainWindow();
+ return m_pImplLB->GetMainWindow();
}
tools::Long ComboBox::GetIndexForPoint( const Point& rPoint, sal_Int32& rPos ) const
@@ -1478,7 +1436,7 @@ tools::Long ComboBox::GetIndexForPoint( const Point& rPoint, sal_Int32& rPos ) c
return nIndex;
}
-ComboBoxBounds ComboBox::Impl::calcComboBoxDropDownComponentBounds(
+ComboBoxBounds ComboBox::calcComboBoxDropDownComponentBounds(
const Size &rOutSz, const Size &rBorderOutSz) const
{
ComboBoxBounds aBounds;
@@ -1486,7 +1444,7 @@ ComboBoxBounds ComboBox::Impl::calcComboBoxDropDownComponentBounds(
tools::Long nTop = 0;
tools::Long nBottom = rOutSz.Height();
- vcl::Window *pBorder = m_rThis.GetWindow( GetWindowType::Border );
+ vcl::Window *pBorder = GetWindow(GetWindowType::Border);
ImplControlValue aControlValue;
Point aPoint;
tools::Rectangle aContent, aBound;
@@ -1494,18 +1452,18 @@ ComboBoxBounds ComboBox::Impl::calcComboBoxDropDownComponentBounds(
// use the full extent of the control
tools::Rectangle aArea( aPoint, rBorderOutSz );
- if (m_rThis.GetNativeControlRegion(ControlType::Combobox, ControlPart::ButtonDown,
+ if (GetNativeControlRegion(ControlType::Combobox, ControlPart::ButtonDown,
aArea, ControlState::NONE, aControlValue, aBound, aContent) )
{
// convert back from border space to local coordinates
- aPoint = pBorder->ScreenToOutputPixel(m_rThis.OutputToScreenPixel(aPoint));
+ aPoint = pBorder->ScreenToOutputPixel(OutputToScreenPixel(aPoint));
aContent.Move(-aPoint.X(), -aPoint.Y());
aBounds.aButtonPos = Point(aContent.Left(), nTop);
aBounds.aButtonSize = Size(aContent.getOpenWidth(), (nBottom-nTop));
// adjust the size of the edit field
- if (m_rThis.GetNativeControlRegion(ControlType::Combobox, ControlPart::SubEdit,
+ if (GetNativeControlRegion(ControlType::Combobox, ControlPart::SubEdit,
aArea, ControlState::NONE, aControlValue, aBound, aContent) )
{
// convert back from border space to local coordinates
@@ -1523,8 +1481,8 @@ ComboBoxBounds ComboBox::Impl::calcComboBoxDropDownComponentBounds(
}
else
{
- tools::Long nSBWidth = m_rThis.GetSettings().GetStyleSettings().GetScrollBarSize();
- nSBWidth = m_rThis.CalcZoom( nSBWidth );
+ tools::Long nSBWidth = GetSettings().GetStyleSettings().GetScrollBarSize();
+ nSBWidth = CalcZoom( nSBWidth );
aBounds.aSubEditSize = Size(rOutSz.Width() - nSBWidth, rOutSz.Height());
aBounds.aButtonPos = Point(rOutSz.Width() - nSBWidth, nTop);
aBounds.aButtonSize = Size(nSBWidth, (nBottom-nTop));
@@ -1534,18 +1492,18 @@ ComboBoxBounds ComboBox::Impl::calcComboBoxDropDownComponentBounds(
void ComboBox::SetWidthInChars(sal_Int32 nWidthInChars)
{
- if (nWidthInChars != m_pImpl->m_nWidthInChars)
+ if (nWidthInChars != m_nWidthInChars)
{
- m_pImpl->m_nWidthInChars = nWidthInChars;
+ m_nWidthInChars = nWidthInChars;
queue_resize();
}
}
void ComboBox::setMaxWidthChars(sal_Int32 nWidth)
{
- if (nWidth != m_pImpl->m_nMaxWidthChars)
+ if (nWidth != m_nMaxWidthChars)
{
- m_pImpl->m_nMaxWidthChars = nWidth;
+ m_nMaxWidthChars = nWidth;
queue_resize();
}
}