sw/source/core/frmedt/fews.cxx | 10 ++++- sw/source/ui/frmdlg/frmpage.cxx | 22 ++++++++++++ sw/source/ui/inc/frmpage.hxx | 1 sw/uiconfig/swriter/ui/frmtypepage.ui | 60 +++++++++++++++++++++++----------- 4 files changed, 73 insertions(+), 20 deletions(-)
New commits: commit ae394876e7e49505efd1be514ec3893ed53d0e08 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Feb 4 11:18:12 2014 +0100 swpagerelsize ui: implement remaining height support Change-Id: Ia603c4ac6c8e9e049473904203d2c471f03ce8a5 diff --git a/sw/source/ui/frmdlg/frmpage.cxx b/sw/source/ui/frmdlg/frmpage.cxx index 3942d5d..8670fb0 100644 --- a/sw/source/ui/frmdlg/frmpage.cxx +++ b/sw/source/ui/frmdlg/frmpage.cxx @@ -649,6 +649,7 @@ SwFrmPage::SwFrmPage(Window *pParent, const SfxItemSet &rSet) get(m_pHeightAutoFT, "autoheightft"); m_aHeightED.set(get<MetricField>("height")); get(m_pRelHeightCB, "relheight"); + get(m_pRelHeightRelationLB, "relheightrelation"); get(m_pAutoHeightCB, "autoheight"); get(m_pFixedRatioCB, "ratio"); @@ -823,6 +824,7 @@ void SwFrmPage::setOptimalRelWidth() m_pHoriRelationLB->set_width_request(aBiggest.Width()); m_pVertRelationLB->set_width_request(aBiggest.Width()); m_pRelWidthRelationLB->set_width_request(aBiggest.Width()); + m_pRelHeightRelationLB->set_width_request(aBiggest.Width()); m_pHoriRelationLB->Clear(); } @@ -954,12 +956,18 @@ void SwFrmPage::Reset( const SfxItemSet &rSet ) else m_pRelWidthRelationLB->Disable(); + m_pRelHeightRelationLB->InsertEntry(aFramePosString.GetString(SwFPos::FRAME)); + m_pRelHeightRelationLB->InsertEntry(aFramePosString.GetString(SwFPos::REL_PG_FRAME)); if (rFrmSize.GetHeightPercent() != 0xff && rFrmSize.GetHeightPercent() != 0) { //calculate the rerference value from the with and relative width values sal_Int32 nSpace = rFrmSize.GetHeight() * 100 / rFrmSize.GetHeightPercent(); m_aHeightED.SetRefValue( nSpace ); + + m_pRelHeightRelationLB->Enable(); } + else + m_pRelHeightRelationLB->Disable(); // general initialisation part switch(rAnchor.GetAnchorId()) @@ -1152,6 +1160,14 @@ sal_Bool SwFrmPage::FillItemSet(SfxItemSet &rSet) else if (nRelWidthRelation == 1) aSz.SetWidthPercentRelation(text::RelOrientation::PAGE_FRAME); } + sal_uInt16 nRelHeightRelation = m_pRelHeightRelationLB->GetSelectEntryPos(); + if (nRelHeightRelation != LISTBOX_ENTRY_NOTFOUND) + { + if (nRelHeightRelation == 0) + aSz.SetHeightPercentRelation(text::RelOrientation::FRAME); + else if (nRelHeightRelation == 1) + aSz.SetHeightPercentRelation(text::RelOrientation::PAGE_FRAME); + } bool bValueModified = (m_aWidthED.IsValueModified() || m_aHeightED.IsValueModified()); bool bCheckChanged = (m_pRelWidthCB->GetSavedValue() != m_pRelWidthCB->IsChecked() @@ -1743,6 +1759,7 @@ IMPL_LINK( SwFrmPage, RelSizeClickHdl, CheckBox *, pBtn ) else // pBtn == m_pRelHeightCB { m_aHeightED.ShowPercent(pBtn->IsChecked()); + m_pRelHeightRelationLB->Enable(pBtn->IsChecked()); if(pBtn->IsChecked()) m_aHeightED.get()->SetMax(MAX_PERCENT_HEIGHT); } @@ -2331,6 +2348,11 @@ void SwFrmPage::Init(const SfxItemSet& rSet, sal_Bool bReset) m_pRelWidthRelationLB->SelectEntryPos(1); else m_pRelWidthRelationLB->SelectEntryPos(0); + + if (rSize.GetHeightPercentRelation() == text::RelOrientation::PAGE_FRAME) + m_pRelHeightRelationLB->SelectEntryPos(1); + else + m_pRelHeightRelationLB->SelectEntryPos(0); } sal_uInt16* SwFrmPage::GetRanges() diff --git a/sw/source/ui/inc/frmpage.hxx b/sw/source/ui/inc/frmpage.hxx index 515a0be..b033f51 100644 --- a/sw/source/ui/inc/frmpage.hxx +++ b/sw/source/ui/inc/frmpage.hxx @@ -55,6 +55,7 @@ class SwFrmPage: public SfxTabPage FixedText* m_pHeightAutoFT; PercentField m_aHeightED; CheckBox* m_pRelHeightCB; + ListBox* m_pRelHeightRelationLB; CheckBox* m_pAutoHeightCB; CheckBox* m_pFixedRatioCB; diff --git a/sw/uiconfig/swriter/ui/frmtypepage.ui b/sw/uiconfig/swriter/ui/frmtypepage.ui index 144ab36..f6fad3d 100644 --- a/sw/uiconfig/swriter/ui/frmtypepage.ui +++ b/sw/uiconfig/swriter/ui/frmtypepage.ui @@ -206,24 +206,6 @@ </packing> </child> <child> - <object class="GtkCheckButton" id="relheight"> - <property name="label" translatable="yes">Re_lative</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="margin_left">12</property> - <property name="use_underline">True</property> - <property name="xalign">0</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - <property name="width">2</property> - <property name="height">1</property> - </packing> - </child> - <child> <object class="GtkCheckButton" id="autoheight"> <property name="label" translatable="yes">AutoSize</property> <property name="visible">True</property> @@ -286,6 +268,48 @@ <property name="height">1</property> </packing> </child> + <child> + <object class="GtkBox" id="box2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="relheight"> + <property name="label" translatable="yes">Re_lative from</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="margin_left">12</property> + <property name="use_underline">True</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="relheightrelation"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">1</property> + <property name="width">2</property> + <property name="height">1</property> + </packing> + </child> </object> <packing> <property name="left_attach">0</property> commit a90374fc81d8fb6f41600d6901c68aaaa3052550 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Feb 4 11:13:38 2014 +0100 swpagerelsize ui: fix height percent value The problem was that SwFEShell::CalcBoundRect() expected that the same relation is used for width/height, don't assume this. Change-Id: I6c7a968874513299757401341ca9b54206116203 diff --git a/sw/source/core/frmedt/fews.cxx b/sw/source/core/frmedt/fews.cxx index 5853f41..58e7ee4 100644 --- a/sw/source/core/frmedt/fews.cxx +++ b/sw/source/core/frmedt/fews.cxx @@ -873,11 +873,17 @@ void SwFEShell::CalcBoundRect( SwRect& _orRect, SWRECTFN( pUpper ); if ( _opPercent ) { + // If the size is relative from page, then full size should be counted from the page frame. if (pFmtFrmSize && pFmtFrmSize->GetWidthPercentRelation() == text::RelOrientation::PAGE_FRAME) + _opPercent->setWidth(pPage->Frm().Width()); + else + _opPercent->setWidth(pUpper->Prt().Width()); + + if (pFmtFrmSize && pFmtFrmSize->GetHeightPercentRelation() == text::RelOrientation::PAGE_FRAME) // If the size is relative from page, then full size should be counted from the page frame. - *_opPercent = pPage->Frm().SSize(); + _opPercent->setHeight(pPage->Frm().Height()); else - *_opPercent = pUpper->Prt().SSize(); + _opPercent->setHeight(pUpper->Prt().Height()); } bRTL = pFrm->IsRightToLeft(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits