36#define SPLITWIN_SPLITSIZEEX 4
37#define SPLITWIN_SPLITSIZEAUTOHIDE 72
38#define SPLITWIN_SPLITSIZEFADE 72
40#define SPLIT_HORZ (sal_uInt16(0x0001))
41#define SPLIT_VERT (sal_uInt16(0x0002))
42#define SPLIT_WINDOW (sal_uInt16(0x0004))
43#define SPLIT_NOSPLIT (sal_uInt16(0x8000))
64 std::unique_ptr<ImplSplitSet> mpSet;
91ImplSplitItem::ImplSplitItem()
131 if (rItem.mnMinSize>=0 && nSize<rItem.mnMinSize)
132 return rItem.mnMinSize;
133 else if (rItem.mnMaxSize>0 && nSize>rItem.mnMaxSize)
134 return rItem.mnMaxSize;
236 std::vector< ImplSplitItem >& rItems = pSet->
mvItems;
238 for (
const auto& rItem : rItems )
240 if ( rItem.mnId ==
nId )
241 return rItem.mpSet.get();
244 for (
auto& rItem : rItems )
259 size_t nItems = pSet->
mvItems.size();
260 std::vector< ImplSplitItem >& rItems = pSet->
mvItems;
262 for (
size_t i = 0;
i < nItems;
i++ )
271 for (
auto& rItem : rItems )
286 std::vector< ImplSplitItem >& rItems = pSet->
mvItems;
288 for (
auto& rItem : rItems )
290 if ( rItem.mpWindow == pWindow )
307 bool bRows,
bool bDown =
true )
309 std::vector< ImplSplitItem >& rItems = pSet->
mvItems;
311 for (
auto& rItem : rItems )
313 if ( rItem.mnWidth && rItem.mnHeight )
315 Point aPoint( rItem.mnLeft, rItem.mnTop );
316 Size aSize( rItem.mnWidth, rItem.mnHeight );
335 if ( rItem.mpSet && !rItem.mpSet->mvItems.empty() )
352 bool bRows,
bool bDown =
true )
358 sal_uInt16 nCalcItems;
359 size_t nItems = pSet->
mvItems.size();
360 sal_uInt16 nAbsItems;
364 std::vector< ImplSplitItem >& rItems = pSet->
mvItems;
369 nCalcSize = nSetHeight;
371 nCalcSize = nSetWidth;
381 for (
const auto& rItem : rItems )
384 nRelCount += rItem.mnSize;
386 nPercent += rItem.mnSize;
388 nAbsSize += rItem.mnSize;
391 nPercent *= nPercentFactor;
395 while ( (nRelCount > nRelPercentBase) && (nPercentFactor < 100000) )
397 nRelPercentBase *= 10;
398 nPercentFactor *= 10;
400 if ( nPercent < nRelPercentBase )
402 nRelPercent = (nRelPercentBase-nPercent)/nRelCount;
403 nPercent += nRelPercent*nRelCount;
411 for (
auto& rItem : rItems )
415 if ( nSizeDelta <= 0 )
418 rItem.mnPixSize = (nSizeDelta*rItem.mnSize*nRelPercent)/nPercent;
422 if ( nSizeDelta <= 0 )
425 rItem.mnPixSize = (nSizeDelta*rItem.mnSize*nPercentFactor)/nPercent;
428 rItem.mnPixSize = rItem.mnSize;
429 nCurSize += rItem.mnPixSize;
436 nSizeDelta = nCalcSize-nCurSize;
443 for (
const auto& rItem : rItems )
448 nSizeWinSize += rItem.mnPixSize;
456 for (
auto& rItem : rItems )
460 rItem.mnPixSize += (nSizeDelta*rItem.mnPixSize)/nSizeWinSize;
461 nNewSizeWinSize += rItem.mnPixSize;
465 nSizeDelta -= nNewSizeWinSize-nSizeWinSize;
471 while ( nSizeDelta && (nItems != nMins) )
475 while ( !nCalcItems )
477 for (
auto& rItem : rItems )
479 rItem.mbSubSize =
false;
482 rItem.mbSubSize =
true;
485 if ( (nSizeDelta > 0) || rItem.mnPixSize )
488 rItem.mbSubSize =
true;
492 rItem.mbSubSize =
true;
497 if ( rItem.mbSubSize )
506 tools::Long nCurSizeDelta = nSizeDelta / nCalcItems;
508 for (
auto& rItem : rItems )
510 if ( rItem.mbSubSize )
525 if ( (*pSize+nCurSizeDelta+nTempErr) <= 0 )
537 *pSize += nCurSizeDelta;
538 nSizeDelta -= nCurSizeDelta;
539 if ( nTempErr && (*pSize || (nTempErr > 0)) )
542 nSizeDelta -= nTempErr;
543 nErrorSum -= nTempErr;
557 nMaxPos = nSetTop-nSetHeight;
559 nMaxPos = nSetTop+nSetHeight;
565 nMaxPos = nSetLeft-nSetWidth;
567 nMaxPos = nSetLeft+nSetWidth;
571 for (
size_t i = 0;
i < nItems;
i++ )
573 rItems[
i].mnOldSplitPos = rItems[
i].mnSplitPos;
574 rItems[
i].mnOldSplitSize = rItems[
i].mnSplitSize;
575 rItems[
i].mnOldWidth = rItems[
i].mnWidth;
576 rItems[
i].mnOldHeight = rItems[
i].mnHeight;
581 if (
nPos+rItems[
i].mnPixSize > nMaxPos )
586 nPos -= rItems[
i].mnPixSize;
587 if (
nPos < nMaxPos )
593 rItems[
i].mnWidth = 0;
594 rItems[
i].mnHeight = 0;
595 rItems[
i].mnSplitSize = 0;
601 rItems[
i].mnLeft = nSetLeft;
602 rItems[
i].mnTop =
nPos;
603 rItems[
i].mnWidth = nSetWidth;
604 rItems[
i].mnHeight = rItems[
i].mnPixSize;
608 rItems[
i].mnLeft =
nPos;
609 rItems[
i].mnTop = nSetTop;
610 rItems[
i].mnWidth = rItems[
i].mnPixSize;
611 rItems[
i].mnHeight = nSetHeight;
615 rItems[
i].mnSplitSize = 0;
621 rItems[
i].mnSplitPos =
nPos+rItems[
i].mnPixSize;
622 if ( rItems[
i].mnSplitPos+rItems[
i].mnSplitSize > nMaxPos )
623 rItems[
i].mnSplitSize = nMaxPos-rItems[
i].mnSplitPos;
628 if ( rItems[
i].mnSplitPos < nMaxPos )
629 rItems[
i].mnSplitSize = rItems[
i].mnSplitPos+pSet->
mnSplitSize-nMaxPos;
641 for (
auto& rItem : rItems )
643 if ( rItem.mpSet && rItem.mnWidth && rItem.mnHeight )
646 rItem.mnLeft, rItem.mnTop,
647 rItem.mnWidth, rItem.mnHeight,
653 for (
auto& rItem : rItems )
655 rItem.mbFixed =
false;
657 rItem.mbFixed =
true;
664 for (
auto const & j: rItem.mpSet->mvItems )
668 rItem.mbFixed =
true;
680 std::vector< ImplSplitItem >& rItems = pSet->
mvItems;
684 for (
const auto& rItem : rItems )
686 if ( rItem.mnSplitSize )
689 if ( (rItem.mnOldSplitPos != rItem.mnSplitPos) ||
690 (rItem.mnOldSplitSize != rItem.mnSplitSize) ||
691 (rItem.mnOldWidth != rItem.mnWidth) ||
692 (rItem.mnOldHeight != rItem.mnHeight) )
700 aRect.
SetRight( rItem.mnLeft+rItem.mnOldWidth-1 );
701 aRect.
SetTop( rItem.mnOldSplitPos );
706 aRect.
SetTop( rItem.mnTop );
707 aRect.
SetBottom( rItem.mnTop+rItem.mnOldHeight-1 );
708 aRect.
SetLeft( rItem.mnOldSplitPos );
716 aRect.
SetRight( rItem.mnLeft+rItem.mnWidth-1 );
717 aRect.
SetTop( rItem.mnSplitPos );
722 aRect.
SetTop( rItem.mnTop );
723 aRect.
SetBottom( rItem.mnTop+rItem.mnHeight-1 );
724 aRect.
SetLeft( rItem.mnSplitPos );
731 if ( rItem.mpSet && rItem.mpSet->mvItems.empty() )
734 aRect.
SetTop( rItem.mnTop );
735 aRect.
SetRight( rItem.mnLeft+rItem.mnWidth-1 );
736 aRect.
SetBottom( rItem.mnTop+rItem.mnHeight-1 );
745 for (
auto& rItem : rItems )
749 bool bTempHide = bHide;
750 if ( !rItem.mnWidth || !rItem.mnHeight )
757 if ( rItem.mnWidth && rItem.mnHeight && !bHide )
759 Point aPos( rItem.mnLeft, rItem.mnTop );
760 Size aSize( rItem.mnWidth, rItem.mnHeight );
761 rItem.mpWindow->SetPosSizePixel( aPos, aSize );
764 rItem.mpWindow->Hide();
769 for (
auto& rItem : rItems )
771 if ( rItem.mpWindow && rItem.mnWidth && rItem.mnHeight && !bHide )
772 rItem.mpWindow->Show();
783 for (
i = 0;
i < nItems;
i++ )
786 nRelSize += rItems[
i].mnPixSize;
788 nPerSize += rItems[
i].mnPixSize;
790 nPerSize += nRelSize;
791 for (
i = 0;
i < nItems;
i++ )
796 rItems[
i].mnSize = (rItems[
i].mnPixSize+(nRelSize/2))/nRelSize;
798 rItems[
i].mnSize = 1;
803 rItems[
i].mnSize = (rItems[
i].mnPixSize*100)/nPerSize;
805 rItems[
i].mnSize = 1;
808 rItems[
i].mnSize = rItems[
i].mnPixSize;
817 size_t nItems = pSet->
mvItems.size();
821 std::vector< ImplSplitItem >& rItems = pSet->
mvItems;
824 for (
size_t i = 0;
i < nItems-1;
i++)
826 if (rItems[
i].mnSplitSize)
828 nPos = rItems[
i].mnSplitPos;
834 nTop = rItems[
i].mnLeft;
835 nBottom = rItems[
i].mnLeft+rItems[
i].mnWidth-1;
837 if (bDown || (nItemSplitSize >= nSplitSize))
842 nPos += nSplitSize-2;
843 if ((!bDown && (nItemSplitSize >= 2)) ||
844 (bDown && (nItemSplitSize >= nSplitSize - 1)))
850 if (!bDown || (nItemSplitSize >= nSplitSize))
858 nTop = rItems[
i].mnTop;
859 nBottom = rItems[
i].mnTop+pSet->
mvItems[
i].mnHeight-1;
861 if (bDown || (nItemSplitSize >= nSplitSize))
867 if ((!bDown && (nItemSplitSize >= 2)) ||
868 (bDown && (nItemSplitSize >= nSplitSize - 1)))
874 if (!bDown || (nItemSplitSize >= nSplitSize))
883 for (
auto& rItem : rItems )
885 if (rItem.mpSet && rItem.mnWidth && rItem.mnHeight)
899 sal_uInt16 nSplitTest;
900 size_t nItems = pSet->
mvItems.size();
906 std::vector< ImplSplitItem >& rItems = pSet->
mvItems;
919 for (
size_t i = 0;
i < nItems-1;
i++ )
921 if ( rItems[
i].mnSplitSize )
925 nTop = rItems[
i].mnLeft;
926 nBottom = rItems[
i].mnLeft+rItems[
i].mnWidth-1;
930 nTop = rItems[
i].mnTop;
931 nBottom = rItems[
i].mnTop+rItems[
i].mnHeight-1;
933 nPos = rItems[
i].mnSplitPos;
935 if ( (nMPos1 >= nTop) && (nMPos1 <= nBottom) &&
936 (nMPos2 >=
nPos) && (nMPos2 <=
nPos+rItems[
i].mnSplitSize) )
938 if ( !rItems[
i].mbFixed && !rItems[
i+1].mbFixed )
940 rMouseOff = nMPos2-
nPos;
954 for (
auto& rItem : rItems )
959 rMouseOff, ppFoundSet, rFoundPos,
1014 rMouseOff = nTPos-
nPos;
1016 if ( !pWindow->
mpMainSet->mvItems.empty() )
1017 rFoundPos = pWindow->
mpMainSet->mvItems.size() - 1;
1132 else if ( Window::GetStyle() &
WB_3DLOOK )
1199 Size aSize( aNewSize );
1210 std::vector< ImplSplitItem* >::size_type
i;
1229 nCurSize -= nSplitSize;
1232 nDelta = nCalcSize-nCurSize;
1272 std::vector<ImplSplitItem *>::size_type
i;
1289 nCurSize -= nSplitSize;
1392 if ( nCenterEx > 0 )
1512 aPoly.
SetPoint(
Point(nCenter - nHeightHalf, nBottom - nMargin), 1);
1513 aPoly.
SetPoint(
Point(nCenter - nHeightHalf, nBottom - nMargin), 2);
1518 aPoly.
SetPoint(
Point(nCenter - nHeightHalf, nTop + nMargin), 1);
1519 aPoly.
SetPoint(
Point(nCenter + nHeightHalf, nTop + nMargin), 2);
1530 aPoly.
SetPoint(
Point(nRight - nMargin, nCenter - nWidthHalf), 1);
1531 aPoly.
SetPoint(
Point(nRight - nMargin, nCenter + nWidthHalf), 2);
1536 aPoly.
SetPoint(
Point(nLeft + nMargin, nCenter - nWidthHalf), 1);
1537 aPoly.
SetPoint(
Point(nLeft + nMargin, nCenter + nWidthHalf), 2);
1603 ImplSplitItem* pSplitItem;
1619 nCurMaxSize = aSize.
Height();
1621 nCurMaxSize = aSize.
Width();
1657 if ( pSplitItem->mbFixed )
1699 std::vector<ImplSplitItem *>::size_type nTemp =
mnSplitPos+1;
1700 while ( nTemp < mpSplitSet->mvItems.size() )
1703 if ( pSplitItem->mbFixed )
1763 for ( sal_uInt16
i = 0;
i < nItems;
i++ )
1815 if ( aTestRect.
Contains( aMousePosPixel ) )
1824 if ( aTestRect.
Contains( aMousePosPixel ) )
1852 sal_uInt16 nTempSplitPos;
1853 sal_uInt16 nSplitTest =
ImplTestSplit(
this, aPos, nTemp, &pTempSplitSet, nTempSplitPos );
1860 if ( !aFadeInRect.
Contains( aPos ) &&
1897 bool bNewPressed = aTestRect.
Contains( aMousePosPixel );
1923 bool bNewPressed = aTestRect.
Contains( aMousePosPixel );
1952 size_t nItems = rItems.size();
1953 for (
size_t i = 0;
i < nItems;
i++ )
1998 bPropSmaller, bPropGreater );
2049 return Window::PreNotify( rNEvt );
2088 if ( aHelpRect.
Contains( aMousePosPixel ) )
2089 pHelpResId = SV_HELPTEXT_FADEIN;
2093 if ( aHelpRect.
Contains( aMousePosPixel ) )
2094 pHelpResId = SV_HELPTEXT_FADEOUT;
2155 sal_uInt16 nPos, sal_uInt16 nIntoSetId,
2159 sal_uInt16 nDbgDummy;
2169 SAL_WARN_IF( !pSet,
"vcl",
"SplitWindow::InsertItem() - Set not exists" );
2185 aItem.mnSize = nSize;
2186 aItem.mnPixSize = 0;
2188 aItem.mnBits = nBits;
2195 aItem.mpWindow = pWindow;
2196 aItem.mpOrgParent = pWindow->
GetParent();
2208 aItem.mpSet.reset(pNewSet);
2217 sal_uInt16 nPos, sal_uInt16 nIntoSetId,
2226 sal_uInt16 nDbgDummy;
2243 pItem->mpSet.reset();
2265 bool bPropSmall,
bool bPropGreat )
2273 size_t nItems = pSet->
mvItems.size();
2274 std::vector< ImplSplitItem >& rItems = pSet->
mvItems;
2278 nNewSize = ValidateSize(nNewSize, rItems[
nPos]);
2282 rItems[
nPos].mnSize = nNewSize;
2291 sal_uInt16 nMin = 0;
2292 sal_uInt16 nMax = nItems;
2293 for (
size_t i = 0;
i < nItems; ++
i)
2295 if ( rItems[
i].mbFixed )
2309 if ( nPos < pSet->mvItems.size()-1 )
2311 if ( !((bPropSmall && bPropGreat) ||
2312 ((nDelta > 0) && bPropSmall) ||
2313 ((nDelta < 0) && bPropGreat)) )
2329 else if (
nPos >= nMax )
2338 std::swap( bPropSmall, bPropGreat );
2357 rItems[
n].mnPixSize++;
2364 while ( nTempDelta );
2367 rItems[
nPos+1].mnPixSize -= nDelta;
2379 if ( nDelta && rItems[
n-1].mnPixSize )
2381 rItems[
n-1].mnPixSize--;
2396 if ( rItems[
n-1].mnPixSize+nDelta < 0 )
2398 nDelta += rItems[
n-1].mnPixSize;
2399 rItems[
n-1].mnPixSize = 0;
2403 rItems[
n-1].mnPixSize += nDelta;
2426 rItems[
n-1].mnPixSize++;
2433 while ( nTempDelta );
2436 rItems[
nPos].mnPixSize += nDelta;
2448 if ( nDelta && rItems[
n].mnPixSize )
2450 rItems[
n].mnPixSize--;
2465 if ( rItems[
n].mnPixSize-nDelta < 0 )
2467 nDelta -= rItems[
n].mnPixSize;
2468 rItems[
n].mnPixSize = 0;
2472 rItems[
n].mnPixSize -= nDelta;
2492 ImplSplitItem* pItem;
2499 if ( pItem->mnSize != nNewSize )
2502 pItem->mnSize = nNewSize;
2536 nItems = pSet->
mvItems.size();
2537 std::vector< ImplSplitItem >& rItems = pSet->
mvItems;
2538 for (
size_t i = 0;
i < nItems;
i++ )
2543 nTempBits = rItems[
i].mnBits;
2545 nRelSize += rItems[
i].mnPixSize;
2547 nPerSize += rItems[
i].mnPixSize;
2549 nPerSize += nRelSize;
2553 return (rItems[
nPos].mnPixSize+(nRelSize/2))/nRelSize;
2560 return (rItems[
nPos].mnPixSize*100)/nPerSize;
2565 return rItems[
nPos].mnPixSize;
2577 if (pSet !=
nullptr)
2600 return pSet !=
nullptr;
2620 for (
size_t i = 0;
i < pSet->
mvItems.size();
i++ )
2636 if ( pSet && (nPos < pSet->mvItems.size()) )
const StyleSettings & GetStyleSettings() const
DataChangedEventType GetType() const
AllSettingsFlags GetFlags() const
Point GetPosPixel() const override
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
virtual void StateChanged(StateChangedType nType) override
SAL_DLLPRIVATE void ImplInit(vcl::Window *pParent, WinBits nStyle)
Size GetSizePixel() const override
Size GetOutputSizePixel() const
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects.
HelpEventMode GetMode() const
bool KeyboardActivated() const
const Point & GetMousePosPixel() const
static void ShowQuickHelp(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rHelpText, QuickHelpFlags nStyle=QuickHelpFlags::NONE)
static void ShowBalloon(vcl::Window *pParent, const Point &rScreenPos, const tools::Rectangle &, const OUString &rHelpText)
std::vector< ImplSplitItem > mvItems
bool IsEnterWindow() const
MouseEventModifiers GetMode() const
bool IsLeaveWindow() const
sal_uInt16 GetModifier() const
sal_uInt16 GetClicks() const
sal_uInt16 GetButtons() const
const Point & GetPosPixel() const
bool IsModifierChanged() const
const MouseEvent * GetMouseEvent() const
NotifyEventType GetType() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
void SetAntialiasing(AntialiasingFlags nMode)
void DrawRect(const tools::Rectangle &rRect)
void DrawLine(const Point &rStartPt, const Point &rEndPt)
void DrawPolygon(const tools::Polygon &rPoly)
Render the given polygon.
AntialiasingFlags GetAntialiasing() const
const AllSettings & GetSettings() const
constexpr tools::Long Y() const
void setX(tools::Long nX)
void setY(tools::Long nY)
tools::Long AdjustY(tools::Long nVertMove)
tools::Long AdjustX(tools::Long nHorzMove)
constexpr tools::Long X() const
constexpr tools::Long Height() const
tools::Long AdjustHeight(tools::Long n)
tools::Long AdjustWidth(tools::Long n)
constexpr tools::Long Width() const
SAL_DLLPRIVATE void ImplInit(vcl::Window *pParent, WinBits nStyle)
SAL_DLLPRIVATE void ImplDrawBorderLine(vcl::RenderContext &rRenderContext)
sal_uInt16 GetItemPos(sal_uInt16 nId, sal_uInt16 nSetId=0) const
SAL_DLLPRIVATE void ImplDrawGrip(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect, bool bHorz, bool bLeft)
sal_uInt16 GetItemId(vcl::Window *pWindow) const
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
SAL_DLLPRIVATE void ImplUpdate()
virtual ~SplitWindow() override
void SetAlign(WindowAlign eNewAlign)
tools::Long mnBottomBorder
tools::Rectangle maDragRect
virtual void MouseMove(const MouseEvent &rMEvt) override
void SetItemSizeRange(sal_uInt16 nId, const Range &rRange)
Set a range that limits the (variable part of the) size with an upper and a lower bound (both are val...
void ShowFadeInHideButton()
SAL_DLLPRIVATE void ImplGetFadeInRect(tools::Rectangle &rRect, bool bTest=false) const
tools::Long GetItemSize(sal_uInt16 nId) const
SAL_DLLPRIVATE void ImplCalcLayout()
SAL_DLLPRIVATE void ImplDrawFadeIn(vcl::RenderContext &rRenderContext)
virtual void StateChanged(StateChangedType nType) override
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
static SAL_DLLPRIVATE sal_uInt16 ImplTestSplit(ImplSplitSet *pSet, const Point &rPos, tools::Long &rMouseOff, ImplSplitSet **ppFoundSet, sal_uInt16 &rFoundPos, bool bRows)
SAL_DLLPRIVATE void ImplGetButtonRect(tools::Rectangle &rRect, bool bTest) const
SAL_DLLPRIVATE void ImplSetWindowSize(tools::Long nDelta)
ImplSplitSet * mpSplitSet
tools::Long mnRightBorder
virtual void SplitResize()
SAL_DLLPRIVATE void ImplDrawBorder(vcl::RenderContext &rRenderContext)
std::unique_ptr< ImplSplitSet > mpMainSet
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
SAL_DLLPRIVATE void ImplStartSplit(const MouseEvent &rMEvt)
virtual void StartSplit()
tools::Long GetFadeInSize() const
SAL_DLLPRIVATE void ImplInitSettings()
sal_uInt16 mnMouseModifier
virtual void Resize() override
void SplitItem(sal_uInt16 nId, tools::Long nNewSize, bool bPropSmall, bool bPropGreat)
static SAL_DLLPRIVATE void ImplCalcSet2(SplitWindow *pWindow, ImplSplitSet *pSet, bool bHide, bool bRows)
SAL_DLLPRIVATE void ImplDrawFadeOut(vcl::RenderContext &rRenderContext)
bool IsItemValid(sal_uInt16 nId) const
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects.
virtual void RequestHelp(const HelpEvent &rHEvt) override
virtual bool PreNotify(NotifyEvent &rNEvt) override
SAL_DLLPRIVATE void ImplDrawSplitTracking(const Point &rPos)
SAL_DLLPRIVATE void ImplGetFadeOutRect(tools::Rectangle &rRect) const
sal_uInt16 GetItemCount(sal_uInt16 nSetId=0) const
SAL_DLLPRIVATE void ImplNewAlign()
sal_uInt16 GetSet(sal_uInt16 nId) const
void InsertItem(sal_uInt16 nId, vcl::Window *pWindow, tools::Long nSize, sal_uInt16 nPos, sal_uInt16 nIntoSetId, SplitWindowItemFlags nBits)
Link< SplitWindow *, void > maSplitHdl
Size CalcLayoutSizePixel(const Size &aNewSize)
void RemoveItem(sal_uInt16 nId)
virtual void Tracking(const TrackingEvent &rTEvt) override
std::unique_ptr< tools::Long[]> mpLastSizes
SplitWindow(const SplitWindow &)=delete
void SetItemSize(sal_uInt16 nId, tools::Long nNewSize)
SAL_DLLPRIVATE void ImplSplitMousePos(Point &rMousePos)
const Color & GetDarkShadowColor() const
const Color & GetWindowColor() const
const Color & GetShadowColor() const
const Color & GetLightColor() const
const Color & GetFaceColor() const
bool IsTrackingEnded() const
bool IsTrackingCanceled() const
const MouseEvent & GetMouseEvent() const
Point OutputToScreenPixel(const Point &rPos) const
bool IsReallyVisible() const
void StartTracking(StartTrackingFlags nFlags=StartTrackingFlags::NONE)
vcl::Window * GetParent() const
virtual void RequestHelp(const HelpEvent &rHEvt)
virtual void SetSizePixel(const Size &rNewSize)
bool IsUpdateMode() const
virtual void MouseButtonDown(const MouseEvent &rMEvt)
Point GetLastPointerPosPixel()
void SetParent(vcl::Window *pNewParent)
const AllSettings & GetSettings() const
bool IsReallyShown() const
void ShowTracking(const tools::Rectangle &rRect, ShowTrackFlags nFlags=ShowTrackFlags::Small)
Size GetOutputSizePixel() const
bool IsControlBackground() const
Point GetPointerPosPixel()
const Color & GetControlBackground() const
virtual void SetPointer(PointerStyle)
void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
Point ScreenToOutputPixel(const Point &rPos) const
virtual void SetPosSizePixel(const Point &rNewPos, const Size &rNewSize)
constexpr sal_uInt16 KEY_MOD1
constexpr sal_uInt16 KEY_SHIFT
#define SAL_WARN_IF(condition, area, stream)
if(aStr !=aBuf) UpdateName_Impl(m_xFollowLb.get()
tools::Long const nBorder
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
static void ImplCalcLogSize(std::vector< ImplSplitItem > &rItems, size_t nItems)
static void ImplDrawSplit(vcl::RenderContext &rRenderContext, ImplSplitSet *pSet, bool bRows, bool bDown)
static ImplSplitSet * ImplFindItem(ImplSplitSet *pSet, sal_uInt16 nId, sal_uInt16 &rPos)
static void ImplCalcSet(ImplSplitSet *pSet, tools::Long nSetLeft, tools::Long nSetTop, tools::Long nSetWidth, tools::Long nSetHeight, bool bRows, bool bDown=true)
#define SPLITWIN_SPLITSIZEFADE
static ImplSplitSet * ImplFindSet(ImplSplitSet *pSet, sal_uInt16 nId)
#define SPLITWIN_SPLITSIZEEX
static void ImplCalcBorder(WindowAlign eAlign, tools::Long &rLeft, tools::Long &rTop, tools::Long &rRight, tools::Long &rBottom)
#define SPLITWIN_SPLITSIZEAUTOHIDE
#define SPLITWINDOW_ITEM_NOTFOUND
#define SPLITWIN_SPLITSIZE
#define SPLITWIN_SPLITSIZEEXLN
OUString VclResId(TranslateId aId)
WinBits const WB_SIZEABLE
WinBits const WB_NOSPLITDRAW
WinBits const WB_CLIPCHILDREN
VclPtr< vcl::Window > mpWindow