dbaccess/source/ui/app/AppDetailView.cxx | 6 ++- dbaccess/source/ui/app/AppTitleWindow.cxx | 40 +++++++++++++++----- dbaccess/source/ui/app/AppTitleWindow.hxx | 2 + svtools/source/contnr/imivctl1.cxx | 58 +++++++++++++++++++----------- svtools/source/contnr/treelistbox.cxx | 12 ++++-- vcl/source/control/edit.cxx | 2 - vcl/source/control/lstbox.cxx | 2 - vcl/source/window/paint.cxx | 7 +-- 8 files changed, 86 insertions(+), 43 deletions(-)
New commits: commit 1afa39b1e9a4ce1cdab866a29a637283ed6792a9 Author: Tomaž Vajngerl <[email protected]> Date: Thu May 28 18:53:13 2015 +0900 fix calls to RenderContext Change-Id: I5ef4b740a9c62d5cc7a2126686df4fd86a4b3492 diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx index 15cf93d..6ff15da 100644 --- a/vcl/source/control/edit.cxx +++ b/vcl/source/control/edit.cxx @@ -551,7 +551,7 @@ void Edit::ImplRepaint(vcl::RenderContext& rRenderContext, bool bLayout) rRenderContext.DrawRect(Rectangle(aPos, Size(GetOutputSizePixel().Width() - 2 * mnXOffset, GetOutputSizePixel().Height()))); rRenderContext.Pop(); - SetTextFillColor(GetControlBackground()); + rRenderContext.SetTextFillColor(GetControlBackground()); } else if (IsPaintTransparent() || ImplUseNativeBorder(rRenderContext, GetStyle())) rRenderContext.SetTextFillColor(); diff --git a/vcl/source/control/lstbox.cxx b/vcl/source/control/lstbox.cxx index a1ad0eb..6944518 100644 --- a/vcl/source/control/lstbox.cxx +++ b/vcl/source/control/lstbox.cxx @@ -555,7 +555,7 @@ void ListBox::DataChanged( const DataChangedEvent& rDCEvt ) if ( mpImplWin ) { mpImplWin->SetSettings( GetSettings() ); // If not yet set... - mpImplWin->ApplySettings(*this); + mpImplWin->ApplySettings(*mpImplWin); mpBtn->SetSettings( GetSettings() ); ImplInitDropDownButton( mpBtn ); commit 737a0de6fd06070d5eb11c6dd43bb51f9cc272da Author: Tomaž Vajngerl <[email protected]> Date: Thu May 28 18:47:29 2015 +0900 tdf#91649 call ApplySettings at a more correct place Change-Id: I84a620a845b9338cd830c8929346204e3d88003f diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx index a68d6bc..fd50a20 100644 --- a/vcl/source/window/paint.cxx +++ b/vcl/source/window/paint.cxx @@ -217,6 +217,7 @@ void PaintHelper::DoPaint(const vcl::Region* pRegion) { // double-buffering SetupBuffer(); + m_pWindow->ApplySettings(*m_pBuffer.get()); // temporarily decrease the mnOutOffX/Y of the buffer for the // subwidgets (because the m_pBuffer is our base here) @@ -237,6 +238,7 @@ void PaintHelper::DoPaint(const vcl::Region* pRegion) else { // direct painting + m_pWindow->ApplySettings(*m_pWindow); m_pWindow->PushPaintHelper(this, *m_pWindow); m_pWindow->Paint(*m_pWindow, m_aPaintRect); } @@ -505,11 +507,6 @@ namespace vcl { void Window::ImplCallPaint(const VclPtr<VirtualDevice>& rBuffer, const vcl::Region* pRegion, sal_uInt16 nPaintFlags) { - if (rBuffer) - ApplySettings(*rBuffer.get()); - else - ApplySettings(*this); - // call PrePaint. PrePaint may add to the invalidate region as well as // other parameters used below. PrePaint(*this); commit 8400e87a41b5613f2fcf27525b97b40f653a3178 Author: Tomaž Vajngerl <[email protected]> Date: Thu May 28 18:43:55 2015 +0900 fix highlight rendering for iconview with more effective clipping Change-Id: I9d8f2341477b9b9c0acd71a7d33cd5a9a55757d2 diff --git a/svtools/source/contnr/imivctl1.cxx b/svtools/source/contnr/imivctl1.cxx index 51ba7a4..07221d5 100644 --- a/svtools/source/contnr/imivctl1.cxx +++ b/svtools/source/contnr/imivctl1.cxx @@ -663,13 +663,8 @@ void SvxIconChoiceCtrl_Impl::Paint(vcl::RenderContext& rRenderContext, const Rec if (!nCount) return; - bool bResetClipRegion = false; - if (!rRenderContext.IsClipRegion()) - { - vcl::Region const aOutputArea(GetOutputRect()); - bResetClipRegion = true; - rRenderContext.SetClipRegion(aOutputArea); - } + rRenderContext.Push(PushFlags::CLIPREGION); + rRenderContext.SetClipRegion(vcl::Region(rRect)); SvxIconChoiceCtrlEntryList_impl* pNewZOrderList = new SvxIconChoiceCtrlEntryList_impl(); boost::scoped_ptr<SvxIconChoiceCtrlEntryList_impl> pPaintedEntries(new SvxIconChoiceCtrlEntryList_impl()); @@ -701,15 +696,27 @@ void SvxIconChoiceCtrl_Impl::Paint(vcl::RenderContext& rRenderContext, const Rec } pPaintedEntries.reset(); - if (bResetClipRegion) - rRenderContext.SetClipRegion(); + rRenderContext.Pop(); } -void SvxIconChoiceCtrl_Impl::RepaintEntries(SvxIconViewFlags /*nEntryFlagsMask*/) +void SvxIconChoiceCtrl_Impl::RepaintEntries(SvxIconViewFlags nEntryFlagsMask) { - pView->Invalidate(); -} + const size_t nCount = pZOrderList->size(); + if (!nCount) + return; + Rectangle aOutRect(GetOutputRect()); + for (size_t nCur = 0; nCur < nCount; nCur++) + { + SvxIconChoiceCtrlEntry* pEntry = (*pZOrderList)[nCur]; + if (pEntry->GetFlags() & nEntryFlagsMask) + { + const Rectangle& rBoundRect = GetEntryBoundRect(pEntry); + if (aOutRect.IsOver(rBoundRect)) + pView->Invalidate(rBoundRect); + } + } +} void SvxIconChoiceCtrl_Impl::InitScrollBarBox() { @@ -1691,7 +1698,9 @@ void SvxIconChoiceCtrl_Impl::PaintEntry(SvxIconChoiceCtrlEntry* pEntry, const Po PaintEmphasis(aTextRect, aBmpRect, bSelected, bDropTarget, bCursored, rRenderContext, bIsBackgroundPainted); if ( bShowSelection ) - pView->DrawSelectionBackground(CalcFocusRect(pEntry), bActiveSelection ? 1 : 2, false, true, false); + vcl::RenderTools::DrawSelectionBackground(rRenderContext, *pView.get(), CalcFocusRect(pEntry), + bActiveSelection ? 1 : 2, false, true, false); + PaintItem(aBmpRect, IcnViewFieldTypeImage, pEntry, nBmpPaintFlags, rRenderContext); @@ -3575,12 +3584,20 @@ void SvxIconChoiceCtrl_Impl::SetEntryHighlightFrame( SvxIconChoiceCtrlEntry* pEn if( !bKeepHighlightFlags ) bHighlightFramePressed = false; - HideEntryHighlightFrame(); + if (pCurHighlightFrame) + { + Rectangle aInvalidationRect(GetEntryBoundRect(pCurHighlightFrame)); + aInvalidationRect.expand(5); + pCurHighlightFrame = nullptr; + pView->Invalidate(aInvalidationRect); + } + pCurHighlightFrame = pEntry; - if( pEntry ) + if (pEntry) { - Rectangle aBmpRect(CalcFocusRect(pEntry)); - pView->Invalidate(aBmpRect); + Rectangle aInvalidationRect(GetEntryBoundRect(pEntry)); + aInvalidationRect.expand(5); + pView->Invalidate(aInvalidationRect); } } @@ -3590,9 +3607,10 @@ void SvxIconChoiceCtrl_Impl::HideEntryHighlightFrame() return; SvxIconChoiceCtrlEntry* pEntry = pCurHighlightFrame; - pCurHighlightFrame = 0; - Rectangle aBmpRect(CalcFocusRect(pEntry)); - pView->Invalidate(aBmpRect); + pCurHighlightFrame = nullptr; + Rectangle aInvalidationRect(GetEntryBoundRect(pEntry)); + aInvalidationRect.expand(5); + pView->Invalidate(aInvalidationRect); } void SvxIconChoiceCtrl_Impl::CallSelectHandler( SvxIconChoiceCtrlEntry* ) commit 02482eef0189e6c9f6ea233d495c9fd8a0d2a877 Author: Tomaž Vajngerl <[email protected]> Date: Thu May 28 18:42:39 2015 +0900 fix drawing treelistbox with redefined background in dbaccess Change-Id: Ia55797e3e42309f9d37d5335088f7657d99954de diff --git a/dbaccess/source/ui/app/AppDetailView.cxx b/dbaccess/source/ui/app/AppDetailView.cxx index 0ae17bf..7329b0b 100644 --- a/dbaccess/source/ui/app/AppDetailView.cxx +++ b/dbaccess/source/ui/app/AppDetailView.cxx @@ -87,6 +87,8 @@ OCreationList::OCreationList( OTasksWindow& _rParent ) void OCreationList::Paint(vcl::RenderContext& rRenderContext, const Rectangle& _rRect ) { + SetBackground(); + if (m_pMouseDownEntry) m_aOriginalFont = rRenderContext.GetFont(); @@ -119,11 +121,13 @@ void OCreationList::PreparePaint(vcl::RenderContext& rRenderContext, SvTreeListE // and temporary set a transparent background, for all the other // paint operations the SvTreeListBox is going to do - aEntryBackground = Wallpaper(Color(COL_TRANSPARENT)); + aEntryBackground = Wallpaper(); + _pEntry->SetBackColor(Color(COL_TRANSPARENT)); } } rRenderContext.SetBackground(aEntryBackground); + _pEntry->SetBackColor(aEntryBackground.GetColor()); } void OCreationList::SelectSearchEntry( const void* _pEntry ) diff --git a/svtools/source/contnr/treelistbox.cxx b/svtools/source/contnr/treelistbox.cxx index abe9ad3..1ae2517 100644 --- a/svtools/source/contnr/treelistbox.cxx +++ b/svtools/source/contnr/treelistbox.cxx @@ -3043,10 +3043,14 @@ long SvTreeListBox::PaintEntry1(SvTreeListEntry* pEntry, long nLine, vcl::Render // realize tab listboxes with lines. if (!(nCurTab == 0 && (nTreeFlags & SvTreeFlags::USESEL) && nFirstSelTab)) { - rRenderContext.SetFillColor(aWallpaper.GetColor()); - // this case may occur for smaller horizontal resizes - if (aRect.Left() < aRect.Right()) - rRenderContext.DrawRect(aRect); + Color aBackgroundColor = aWallpaper.GetColor(); + if (aBackgroundColor != Color(COL_TRANSPARENT)) + { + rRenderContext.SetFillColor(aBackgroundColor); + // this case may occur for smaller horizontal resizes + if (aRect.Left() < aRect.Right()) + rRenderContext.DrawRect(aRect); + } } // draw item // center vertically commit ee25bc3cad9f31a253c2a0b0297516c7f0989222 Author: Tomaž Vajngerl <[email protected]> Date: Wed May 27 19:14:44 2015 +0900 fix Base's titlewindow font, font color and background Change-Id: Ide9c30385d15d0b8303f25d1a9eef132a32ec7d2 diff --git a/dbaccess/source/ui/app/AppTitleWindow.cxx b/dbaccess/source/ui/app/AppTitleWindow.cxx index 1a28fb7..19da267 100644 --- a/dbaccess/source/ui/app/AppTitleWindow.cxx +++ b/dbaccess/source/ui/app/AppTitleWindow.cxx @@ -40,9 +40,17 @@ OTitleWindow::OTitleWindow(vcl::Window* _pParent,sal_uInt16 _nTitleId,WinBits _n SetBorderStyle(WindowBorderStyle::MONO); ImplInitSettings( true, true, true ); - vcl::Window* pWindows [] = { m_aSpace1.get(), m_aSpace2.get(), m_aTitle.get() }; + const StyleSettings& rStyle = Application::GetSettings().GetStyleSettings(); + vcl::Window* pWindows[] = { m_aSpace1.get(), m_aSpace2.get(), m_aTitle.get() }; for (size_t i=0; i < sizeof(pWindows)/sizeof(pWindows[0]); ++i) + { + vcl::Font aFont = pWindows[i]->GetControlFont(); + aFont.SetWeight(WEIGHT_BOLD); + pWindows[i]->SetControlFont(aFont); + pWindows[i]->SetControlForeground(rStyle.GetLightColor()); + pWindows[i]->SetControlBackground(rStyle.GetShadowColor()); pWindows[i]->Show(); + } } OTitleWindow::~OTitleWindow() @@ -158,18 +166,28 @@ void OTitleWindow::ImplInitSettings( bool bFont, bool bForeground, bool bBackgro if( bBackground ) SetBackground( rStyleSettings.GetFieldColor() ); +} - vcl::Window* pWindows [] = { m_aSpace1.get(), m_aSpace2.get(), m_aTitle.get()}; - for (size_t i=0; i < sizeof(pWindows)/sizeof(pWindows[0]); ++i) - { - vcl::Font aFont = pWindows[i]->GetFont(); - aFont.SetWeight(WEIGHT_BOLD); - pWindows[i]->SetFont(aFont); - pWindows[i]->SetTextColor( aStyle.GetLightColor() ); - pWindows[i]->SetBackground( Wallpaper( aStyle.GetShadowColor() ) ); - } +void OTitleWindow::ApplySettings(vcl::RenderContext& rRenderContext) +{ + // FIXME RenderContext + AllSettings aAllSettings = rRenderContext.GetSettings(); + StyleSettings aStyle = aAllSettings.GetStyleSettings(); + aStyle.SetMonoColor(aStyle.GetActiveBorderColor());//GetMenuBorderColor()); + aAllSettings.SetStyleSettings(aStyle); + rRenderContext.SetSettings(aAllSettings); + + const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings(); + vcl::Font aFont; + aFont = rStyleSettings.GetFieldFont(); + aFont.SetColor(rStyleSettings.GetWindowTextColor()); + SetPointFont(*this, aFont); + + rRenderContext.SetTextColor(rStyleSettings.GetFieldTextColor()); + rRenderContext.SetTextFillColor(); + + rRenderContext.SetBackground(rStyleSettings.GetFieldColor()); } } // namespace dbaui - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/app/AppTitleWindow.hxx b/dbaccess/source/ui/app/AppTitleWindow.hxx index 875f693..888ec32 100644 --- a/dbaccess/source/ui/app/AppTitleWindow.hxx +++ b/dbaccess/source/ui/app/AppTitleWindow.hxx @@ -42,6 +42,8 @@ namespace dbaui virtual void Resize() SAL_OVERRIDE; virtual void GetFocus() SAL_OVERRIDE; + virtual void ApplySettings(vcl::RenderContext& rRenderContext) SAL_OVERRIDE; + /** sets the child window which should be displayed below the title. It will be destroyed at the end. @param _pChild The child window.
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
