summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sfx2/dinfdlg.hxx6
-rw-r--r--sfx2/source/dialog/dinfdlg.cxx59
2 files changed, 38 insertions, 27 deletions
diff --git a/include/sfx2/dinfdlg.hxx b/include/sfx2/dinfdlg.hxx
index 9fe15533ce7a..5cd2c50b11db 100644
--- a/include/sfx2/dinfdlg.hxx
+++ b/include/sfx2/dinfdlg.hxx
@@ -557,7 +557,6 @@ struct CmisPropertyLine : public VclBuilderContainer
std::vector< CmisValue* > m_aValues;
std::vector< CmisDateTime* > m_aDateTimes;
std::vector< CmisYesNo* > m_aYesNos;
- sal_Int32 m_nNumValue;
long getItemHeight() const;
CmisPropertyLine( vcl::Window* pParent );
virtual ~CmisPropertyLine();
@@ -576,8 +575,8 @@ public:
CmisPropertiesWindow(SfxTabPage* pParent);
~CmisPropertiesWindow();
- sal_uInt16 GetLineCount() const;
inline sal_Int32 GetItemHeight() const { return m_nItemHeight; }
+ inline long getBoxHeight() const { return VclContainer::getLayoutRequisition(*m_pBox).Height(); };
void AddLine( const OUString& sId, const OUString& sName,
const OUString& sType, const bool bUpdatable,
const bool bRequired, const bool bMultiValued,
@@ -639,6 +638,9 @@ public:
virtual void dispose() override;
static VclPtr<SfxTabPage> Create( vcl::Window* pParent, const SfxItemSet* );
+ virtual void SetPosSizePixel(const Point& rAllocPos, const Size& rAllocation) override;
+ virtual void SetSizePixel(const Size& rAllocation) override;
+ virtual void SetPosPixel(const Point& rAllocPos) override;
};
#endif // #ifndef _ INCLUDED_SFX2_DINFDLG_HXX
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index 792f831d2b84..a2bf84e0dee5 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -2314,7 +2314,6 @@ CmisPropertyLine::CmisPropertyLine(vcl::Window* pParent)
, m_bRequired(false)
, m_bMultiValued(false)
, m_bOpenChoice(false)
- , m_nNumValue(1)
{
m_pUIBuilder = new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui");
get( m_pFrame, "CmisFrame" );
@@ -2364,7 +2363,6 @@ long CmisPropertyLine::getItemHeight() const
CmisPropertiesWindow::CmisPropertiesWindow(SfxTabPage* pParent):
m_aNumberFormatter( ::comphelper::getProcessComponentContext(),
Application::GetSettings().GetLanguageTag().getLanguageType() )
-
{
pParent->get(m_pBox, "CmisWindow");
CmisPropertyLine aTemp( m_pBox );
@@ -2388,16 +2386,6 @@ void CmisPropertiesWindow::ClearAllLines()
m_aCmisPropertiesLines.clear();
}
-sal_uInt16 CmisPropertiesWindow::GetLineCount() const
-{
- sal_uInt16 nCount = 0;
- std::vector< CmisPropertyLine* >::const_iterator pIter;
- for ( pIter = m_aCmisPropertiesLines.begin();
- pIter != m_aCmisPropertiesLines.end(); ++pIter )
- nCount += ( (*pIter)->m_nNumValue + 1 );
- return nCount;
-}
-
void CmisPropertiesWindow::AddLine( const OUString& sId, const OUString& sName,
const OUString& sType, const bool bUpdatable,
const bool bRequired, const bool bMultiValued,
@@ -2417,8 +2405,8 @@ void CmisPropertiesWindow::AddLine( const OUString& sId, const OUString& sName,
Sequence< sal_Int64 > seqValue;
rAny >>= seqValue;
sal_uInt32 nIndex = m_aNumberFormatter.GetFormatIndex( NF_NUMBER_SYSTEM );
- sal_Int32 m_nNumValue = seqValue.getLength( );
- for ( sal_Int32 i = 0; i < m_nNumValue; ++i )
+ sal_Int32 nNumValue = seqValue.getLength( );
+ for ( sal_Int32 i = 0; i < nNumValue; ++i )
{
OUString sValue;
m_aNumberFormatter.GetInputLineString( seqValue[i], nIndex, sValue );
@@ -2432,8 +2420,8 @@ void CmisPropertiesWindow::AddLine( const OUString& sId, const OUString& sName,
Sequence< double > seqValue;
rAny >>= seqValue;
sal_uInt32 nIndex = m_aNumberFormatter.GetFormatIndex( NF_NUMBER_SYSTEM );
- sal_Int32 m_nNumValue = seqValue.getLength( );
- for ( sal_Int32 i = 0; i < m_nNumValue; ++i )
+ sal_Int32 nNumValue = seqValue.getLength( );
+ for ( sal_Int32 i = 0; i < nNumValue; ++i )
{
OUString sValue;
m_aNumberFormatter.GetInputLineString( seqValue[i], nIndex, sValue );
@@ -2447,8 +2435,8 @@ void CmisPropertiesWindow::AddLine( const OUString& sId, const OUString& sName,
{
Sequence<sal_Bool> seqValue;
rAny >>= seqValue;
- sal_Int32 m_nNumValue = seqValue.getLength( );
- for ( sal_Int32 i = 0; i < m_nNumValue; ++i )
+ sal_Int32 nNumValue = seqValue.getLength( );
+ for ( sal_Int32 i = 0; i < nNumValue; ++i )
{
CmisYesNo* pYesNo = new CmisYesNo( m_pBox, seqValue[i] );
pYesNo->m_aYesButton->Enable( bUpdatable );
@@ -2460,8 +2448,8 @@ void CmisPropertiesWindow::AddLine( const OUString& sId, const OUString& sName,
{
Sequence< OUString > seqValue;
rAny >>= seqValue;
- sal_Int32 m_nNumValue = seqValue.getLength( );
- for ( sal_Int32 i = 0; i < m_nNumValue; ++i )
+ sal_Int32 nNumValue = seqValue.getLength( );
+ for ( sal_Int32 i = 0; i < nNumValue; ++i )
{
CmisValue* pValue = new CmisValue( m_pBox, seqValue[i] );
pValue->m_aValueEdit->SetReadOnly( !bUpdatable );
@@ -2472,15 +2460,14 @@ void CmisPropertiesWindow::AddLine( const OUString& sId, const OUString& sName,
{
Sequence< util::DateTime > seqValue;
rAny >>= seqValue;
- sal_Int32 m_nNumValue = seqValue.getLength( );
- for ( sal_Int32 i = 0; i < m_nNumValue; ++i )
+ sal_Int32 nNumValue = seqValue.getLength( );
+ for ( sal_Int32 i = 0; i < nNumValue; ++i )
{
CmisDateTime* pDateTime = new CmisDateTime( m_pBox, seqValue[i]);
pDateTime->m_aDateField->SetReadOnly( !bUpdatable );
pDateTime->m_aTimeField->SetReadOnly( !bUpdatable );
pNewLine->m_aDateTimes.push_back( pDateTime );
}
-
}
pNewLine->m_aName->SetText( sName );
pNewLine->m_aName->Show();
@@ -2657,10 +2644,13 @@ void CmisPropertiesControl::AddLine( const OUString& sId, const OUString& sName,
const bool bOpenChoice, Any& aChoices, Any& rAny
)
{
- m_rVertScroll.SetRangeMax( m_pPropertiesWin.GetLineCount() + 1 );
- m_rVertScroll.DoScroll( m_pPropertiesWin.GetLineCount() + 1 );
m_pPropertiesWin.AddLine( sId, sName, sType, bUpdatable, bRequired, bMultiValued,
bOpenChoice, aChoices, rAny );
+ //compute logical elements
+ sal_Int32 nLogicElements = ( m_pPropertiesWin.getBoxHeight()
+ + m_pPropertiesWin.GetItemHeight() ) / m_pPropertiesWin.GetItemHeight();
+ m_rVertScroll.SetRangeMax( nLogicElements );
+ m_rVertScroll.DoScroll( nLogicElements );
checkAutoVScroll();
}
@@ -2781,4 +2771,23 @@ VclPtr<SfxTabPage> SfxCmisPropertiesPage::Create( vcl::Window* pParent, const Sf
return VclPtr<SfxCmisPropertiesPage>::Create( pParent, *rItemSet );
}
+void SfxCmisPropertiesPage::SetPosSizePixel(const Point& rAllocPos, const Size& rAllocation)
+{
+ SfxTabPage::SetPosSizePixel(rAllocPos, rAllocation);
+ m_pPropertiesCtrl.setScrollRange();
+}
+
+void SfxCmisPropertiesPage::SetSizePixel(const Size& rAllocation)
+{
+ SfxTabPage::SetSizePixel(rAllocation);
+ m_pPropertiesCtrl.setScrollRange();
+}
+
+void SfxCmisPropertiesPage::SetPosPixel(const Point& rAllocPos)
+{
+ SfxTabPage::SetPosPixel(rAllocPos);
+ m_pPropertiesCtrl.setScrollRange();
+}
+
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */