42 #include <com/sun/star/accessibility/AccessibleRelation.hpp>
43 #include <com/sun/star/accessibility/AccessibleRole.hpp>
51 if( mpWindowImpl->mbInShowFocus )
53 mpWindowImpl->mbInShowFocus =
true;
58 if( ! ( mpWindowImpl->mbUseNativeFocus &&
59 IsNativeWidgetEnabled() ) )
61 if ( !mpWindowImpl->mbInPaint )
63 if ( mpWindowImpl->mbFocusVisible )
67 mpWindowImpl->mbInShowFocus =
false;
74 ImplInvertFocus( rRect );
77 mpWindowImpl->mbFocusVisible =
true;
81 if( ! mpWindowImpl->mbNativeFocusVisible )
83 mpWindowImpl->mbNativeFocusVisible =
true;
84 if ( !mpWindowImpl->mbInPaint )
88 mpWindowImpl->mbInShowFocus =
false;
91 void Window::HideFocus()
94 if( mpWindowImpl->mbInHideFocus )
96 mpWindowImpl->mbInHideFocus =
true;
99 if( ! ( mpWindowImpl->mbUseNativeFocus &&
100 IsNativeWidgetEnabled() ) )
102 if ( !mpWindowImpl->mbFocusVisible )
104 mpWindowImpl->mbInHideFocus =
false;
108 if ( !mpWindowImpl->mbInPaint )
109 ImplInvertFocus( *ImplGetWinData()->mpFocusRect );
110 mpWindowImpl->mbFocusVisible =
false;
114 if( mpWindowImpl->mbNativeFocusVisible )
116 mpWindowImpl->mbNativeFocusVisible =
false;
117 if ( !mpWindowImpl->mbInPaint )
121 mpWindowImpl->mbInHideFocus =
false;
130 if ( mpWindowImpl->mbTrackVisible )
139 InvertTracking( rRect, nFlags );
144 mpWindowImpl->mbTrackVisible =
true;
147 void Window::HideTracking()
149 if ( mpWindowImpl->mbTrackVisible )
154 mpWindowImpl->mbTrackVisible =
false;
163 if ( aRect.IsEmpty() )
171 if ( !IsDeviceOutputNecessary() )
182 if ( mbInitClipRegion )
185 if ( mbOutputClipped )
192 pGraphics = ImplGetFrameGraphics();
197 ImplClipBoundaries( aRegion,
false,
false );
206 pGraphics->
Invert( aRect.Left(), aRect.Top(), aRect.GetWidth(), aRect.GetHeight(),
SalInvert::N50, *this );
212 pGraphics->
Invert( aRect.Left(), aRect.Top(), aRect.GetWidth(), nBorder,
SalInvert::N50, *this );
213 pGraphics->
Invert( aRect.Left(), aRect.Bottom()-nBorder+1, aRect.GetWidth(), nBorder,
SalInvert::N50, *this );
214 pGraphics->
Invert( aRect.Left(), aRect.Top()+nBorder, nBorder, aRect.GetHeight()-(nBorder*2), SalInvert::N50, *
this );
215 pGraphics->
Invert( aRect.Right()-nBorder+1, aRect.Top()+nBorder, nBorder, aRect.GetHeight()-(nBorder*2), SalInvert::N50, *
this );
225 pTimer->SetTimeout( GetSettings().GetMouseSettings().GetButtonRepeat() );
228 Point aMousePos( mpWindowImpl->mpFrameData->mnLastMouseX, mpWindowImpl->mpFrameData->mnLastMouseY );
229 if( ImplIsAntiparallel() )
235 MouseEvent aMEvt( ImplFrameToOutput( aMousePos ),
237 mpWindowImpl->mpFrameData->mnMouseCode,
238 mpWindowImpl->mpFrameData->mnMouseCode );
290 Point aMousePos( mpWindowImpl->mpFrameData->mnLastMouseX, mpWindowImpl->mpFrameData->mnLastMouseY );
291 if( ImplIsAntiparallel() )
298 MouseEvent aMEvt( ImplFrameToOutput( aMousePos ),
300 mpWindowImpl->mpFrameData->mnMouseCode,
301 mpWindowImpl->mpFrameData->mnMouseCode );
304 if (!mpWindowImpl || mpWindowImpl->mbInDispose)
305 return Window::Tracking( aTEvt );
307 return Tracking( aTEvt );
311 bool Window::IsTracking()
const
331 void Window::EndAutoScroll()
366 if ( mpWindowImpl && mpWindowImpl->maZoom != rZoom )
368 mpWindowImpl->maZoom = rZoom;
375 return( fVal > 0.0 ? static_cast<tools::Long>( fVal + 0.5 ) : -static_cast<tools::Long>( -fVal + 0.5 ) );
402 double n = double(nCalc * rZoom);
408 void Window::SetControlFont()
410 if (mpWindowImpl && mpWindowImpl->mpControlFont)
412 mpWindowImpl->mpControlFont.reset();
425 if (mpWindowImpl->mpControlFont)
427 if (*mpWindowImpl->mpControlFont == rFont)
429 *mpWindowImpl->mpControlFont = rFont;
432 mpWindowImpl->mpControlFont.reset(
new vcl::Font(rFont) );
439 if (mpWindowImpl->mpControlFont)
440 return *mpWindowImpl->mpControlFont;
452 aFont.
Merge(GetControlFont());
453 SetZoomedPointFont(rRenderContext, aFont);
456 void Window::SetControlForeground()
458 if (mpWindowImpl->mbControlForeground)
461 mpWindowImpl->mbControlForeground =
false;
466 void Window::SetControlForeground(
const Color& rColor)
470 if (mpWindowImpl->mbControlForeground)
473 mpWindowImpl->mbControlForeground =
false;
479 if (mpWindowImpl->maControlForeground != rColor)
481 mpWindowImpl->maControlForeground = rColor;
482 mpWindowImpl->mbControlForeground =
true;
490 Color aTextColor(rDefaultColor);
491 if (IsControlForeground())
492 aTextColor = GetControlForeground();
496 void Window::SetControlBackground()
498 if (mpWindowImpl->mbControlBackground)
501 mpWindowImpl->mbControlBackground =
false;
506 void Window::SetControlBackground(
const Color& rColor)
510 if (mpWindowImpl->mbControlBackground)
513 mpWindowImpl->mbControlBackground =
false;
519 if (mpWindowImpl->maControlBackground != rColor)
521 mpWindowImpl->maControlBackground = rColor;
522 mpWindowImpl->mbControlBackground =
true;
530 Color aColor(rDefaultColor);
531 if (IsControlBackground())
532 aColor = GetControlBackground();
536 Size Window::CalcWindowSize(
const Size& rOutSz )
const
539 aSz.
AdjustWidth(mpWindowImpl->mnLeftBorder+mpWindowImpl->mnRightBorder );
540 aSz.
AdjustHeight(mpWindowImpl->mnTopBorder+mpWindowImpl->mnBottomBorder );
544 Size Window::CalcOutputSize(
const Size& rWinSz )
const
547 aSz.
AdjustWidth( -(mpWindowImpl->mnLeftBorder+mpWindowImpl->mnRightBorder) );
548 aSz.
AdjustHeight( -(mpWindowImpl->mnTopBorder+mpWindowImpl->mnBottomBorder) );
554 vcl::Font aFont = GetPointFont(*const_cast<Window*>(
this));
556 MapMode aPtMapMode(MapUnit::MapPoint);
557 aFontSize = pDev->
LogicToPixel( aFontSize, aPtMapMode );
569 aSz = PixelToLogic( aSz, aMap );
590 if(isMultiplyByLineSize){
594 const double fVal = nNewPos - nN;
613 if ( pHScrl || pVScrl )
662 ImplHandleScroll(
nullptr,
664 pData->
IsHorz() ? pHScrl : pVScrl,
674 double deltaXInPixels = double(deltaPoint.X());
675 double deltaYInPixels = double(deltaPoint.Y());
676 Size winSize = GetOutputSizePixel();
681 double ratioX = deltaXInPixels / double(winSize.getWidth());
691 deltaXInLogic /= lineSizeX;
701 bool const isMultiplyByLineSize =
true;
703 bool const isMultiplyByLineSize =
false;
712 double ratioY = deltaYInPixels / double(winSize.getHeight());
722 deltaYInLogic /= lineSizeY;
732 bool const isMultiplyByLineSize =
true;
734 bool const isMultiplyByLineSize =
false;
753 mpWindowImpl->mpFrameData->mnTouchPanPosition = pVScrl->
GetThumbPos();
757 tools::Long nOriginalPosition = mpWindowImpl->mpFrameData->mnTouchPanPosition;
762 mpWindowImpl->mpFrameData->mnTouchPanPosition = -1;
774 ImplHandleScroll( pHScrl, pData->
GetDeltaX(),
795 void Window::ImplHandleScroll(
ScrollBar* pHScrl,
double nX,
807 void Window::EnableDocking(
bool bEnable )
817 ::std::vector<VclPtr<vcl::Window> >& Window::ImplGetOwnerDrawList()
819 return ImplGetTopmostFrameWindow()->mpWindowImpl->mpFrameData->maOwnerDrawList;
822 void Window::SetHelpId(
const OString& rHelpId )
824 mpWindowImpl->maHelpId = rHelpId;
827 const OString& Window::GetHelpId()
const
829 return mpWindowImpl->maHelpId;
836 if ( mpWindowImpl->mpClientWindow )
837 return mpWindowImpl->mpClientWindow;
844 return mpWindowImpl ? mpWindowImpl->mpFrameData :
nullptr;
849 return mpWindowImpl ? mpWindowImpl->mpFrame :
nullptr;
861 return pFrame ? pFrame->
GetWindow() :
nullptr;
866 return mpWindowImpl ? mpWindowImpl->mpParent.get() :
nullptr;
871 return mpWindowImpl ? mpWindowImpl->mpClientWindow.get() :
nullptr;
876 return mpWindowImpl ? mpWindowImpl->mpBorderWindow.get() :
nullptr;
886 if ( mpWindowImpl->mbOverlapWin )
889 return mpWindowImpl->mpOverlapWindow;
894 if ( mpWindowImpl->mbOverlapWin )
897 return mpWindowImpl->mpOverlapWindow;
902 return mpWindowImpl ? mpWindowImpl->mpFrameWindow.get() :
nullptr;
905 bool Window::IsDockingWindow()
const
907 return mpWindowImpl && mpWindowImpl->mbDockWin;
910 bool Window::ImplIsFloatingWindow()
const
912 return mpWindowImpl && mpWindowImpl->mbFloatWin;
915 bool Window::ImplIsSplitter()
const
917 return mpWindowImpl && mpWindowImpl->mbSplitter;
920 bool Window::ImplIsPushButton()
const
922 return mpWindowImpl && mpWindowImpl->mbPushButton;
925 bool Window::ImplIsOverlapWindow()
const
927 return mpWindowImpl && mpWindowImpl->mbOverlapWin;
930 void Window::ImplSetMouseTransparent(
bool bTransparent )
933 mpWindowImpl->mbMouseTransparent = bTransparent;
936 Point Window::ImplOutputToFrame(
const Point& rPos )
938 return Point( rPos.X()+mnOutOffX, rPos.Y()+mnOutOffY );
941 Point Window::ImplFrameToOutput(
const Point& rPos )
943 return Point( rPos.X()-mnOutOffX, rPos.Y()-mnOutOffY );
946 void Window::SetCompoundControl(
bool bCompound )
949 mpWindowImpl->mbCompoundControl = bCompound;
954 return mpWindowImpl ? mpWindowImpl->mnStyle : 0;
959 return mpWindowImpl ? mpWindowImpl->mnPrevStyle : 0;
970 mpWindowImpl->mnType = nType;
976 return mpWindowImpl->mnType;
978 return WindowType::NONE;
993 return const_cast<Dialog *
>(
dynamic_cast<const Dialog*
>(pWindow));
996 bool Window::IsSystemWindow()
const
998 return mpWindowImpl && mpWindowImpl->mbSysWin;
1001 bool Window::IsDialog()
const
1003 return mpWindowImpl && mpWindowImpl->mbDialog;
1006 bool Window::IsMenuFloatingWindow()
const
1008 return mpWindowImpl && mpWindowImpl->mbMenuFloatingWindow;
1011 bool Window::IsToolbarFloatingWindow()
const
1013 return mpWindowImpl && mpWindowImpl->mbToolbarFloatingWindow;
1016 void Window::EnableAllResize()
1018 mpWindowImpl->mbAllResize =
true;
1021 void Window::EnableChildTransparentMode(
bool bEnable )
1023 mpWindowImpl->mbChildTransparent = bEnable;
1026 bool Window::IsChildTransparentModeEnabled()
const
1028 return mpWindowImpl && mpWindowImpl->mbChildTransparent;
1031 bool Window::IsMouseTransparent()
const
1033 return mpWindowImpl && mpWindowImpl->mbMouseTransparent;
1036 bool Window::IsPaintTransparent()
const
1038 return mpWindowImpl && mpWindowImpl->mbPaintTransparent;
1041 void Window::SetDialogControlStart(
bool bStart )
1043 mpWindowImpl->mbDlgCtrlStart = bStart;
1046 bool Window::IsDialogControlStart()
const
1048 return mpWindowImpl && mpWindowImpl->mbDlgCtrlStart;
1053 mpWindowImpl->mnDlgCtrlFlags = nFlags;
1058 return mpWindowImpl->mnDlgCtrlFlags;
1063 return mpWindowImpl->maInputContext;
1066 bool Window::IsControlFont()
const
1068 return bool(mpWindowImpl->mpControlFont);
1071 const Color& Window::GetControlForeground()
const
1073 return mpWindowImpl->maControlForeground;
1076 bool Window::IsControlForeground()
const
1078 return mpWindowImpl->mbControlForeground;
1081 const Color& Window::GetControlBackground()
const
1083 return mpWindowImpl->maControlBackground;
1086 bool Window::IsControlBackground()
const
1088 return mpWindowImpl->mbControlBackground;
1091 bool Window::IsInPaint()
const
1093 return mpWindowImpl && mpWindowImpl->mbInPaint;
1098 return mpWindowImpl ? mpWindowImpl->mpRealParent.get() :
nullptr;
1101 bool Window::IsVisible()
const
1103 return mpWindowImpl && mpWindowImpl->mbVisible;
1106 bool Window::IsReallyVisible()
const
1108 return mpWindowImpl && mpWindowImpl->mbReallyVisible;
1111 bool Window::IsReallyShown()
const
1113 return mpWindowImpl && mpWindowImpl->mbReallyShown;
1116 bool Window::IsInInitShow()
const
1118 return mpWindowImpl->mbInInitShow;
1121 bool Window::IsEnabled()
const
1123 return mpWindowImpl && !mpWindowImpl->mbDisabled;
1126 bool Window::IsInputEnabled()
const
1128 return mpWindowImpl && !mpWindowImpl->mbInputDisabled;
1131 bool Window::IsAlwaysEnableInput()
const
1138 return mpWindowImpl->mnActivateMode;
1142 bool Window::IsAlwaysOnTopEnabled()
const
1144 return mpWindowImpl->mbAlwaysOnTop;
1147 bool Window::IsDefaultPos()
const
1149 return mpWindowImpl->mbDefPos;
1152 bool Window::IsDefaultSize()
const
1154 return mpWindowImpl->mbDefSize;
1162 void Window::EnablePaint(
bool bEnable )
1164 mpWindowImpl->mbPaintDisabled = !bEnable;
1167 bool Window::IsPaintEnabled()
const
1169 return !mpWindowImpl->mbPaintDisabled;
1172 bool Window::IsUpdateMode()
const
1174 return !mpWindowImpl->mbNoUpdate;
1177 void Window::SetParentUpdateMode(
bool bUpdate )
1179 mpWindowImpl->mbNoParentUpdate = !bUpdate;
1182 bool Window::IsActive()
const
1184 return mpWindowImpl->mbActive;
1189 return mpWindowImpl->mnGetFocusFlags;
1192 bool Window::IsCompoundControl()
const
1194 return mpWindowImpl->mbCompoundControl;
1197 bool Window::IsWait()
const
1199 return (mpWindowImpl->mnWaitCount != 0);
1206 return mpWindowImpl->mpCursor;
1211 return mpWindowImpl->maZoom;
1214 bool Window::IsZoom()
const
1216 return mpWindowImpl->maZoom.
GetNumerator() != mpWindowImpl->maZoom.GetDenominator();
1219 void Window::SetHelpText(
const OUString& rHelpText )
1221 mpWindowImpl->maHelpText = rHelpText;
1222 mpWindowImpl->mbHelpTextDynamic =
true;
1225 void Window::SetQuickHelpText(
const OUString& rHelpText )
1228 mpWindowImpl->maQuickHelpText = rHelpText;
1231 const OUString& Window::GetQuickHelpText()
const
1233 return mpWindowImpl->maQuickHelpText;
1236 bool Window::IsCreatedWithToolkit()
const
1238 return mpWindowImpl->mbCreatedWithToolkit;
1241 void Window::SetCreatedWithToolkit(
bool b )
1243 mpWindowImpl->mbCreatedWithToolkit = b;
1248 return mpWindowImpl->maPointer;
1253 return mpWindowImpl ? mpWindowImpl->mpVCLXWindow :
nullptr;
1256 void Window::SetPosPixel(
const Point& rNewPos )
1261 void Window::SetSizePixel(
const Size& rNewSize )
1263 setPosSizePixel( 0, 0, rNewSize.
Width(), rNewSize.
Height(),
1267 void Window::SetPosSizePixel(
const Point& rNewPos,
const Size& rNewSize )
1269 setPosSizePixel( rNewPos.X(), rNewPos.Y(),
1273 void Window::SetOutputSizePixel(
const Size& rNewSize )
1275 SetSizePixel(
Size( rNewSize.
Width()+mpWindowImpl->mnLeftBorder+mpWindowImpl->mnRightBorder,
1276 rNewSize.
Height()+mpWindowImpl->mnTopBorder+mpWindowImpl->mnBottomBorder ) );
1284 bool queue_ungrouped_resize(
vcl::Window const *pOrigWindow)
1286 bool bSomeoneCares =
false;
1293 bSomeoneCares =
true;
1295 else if (pWindow->
GetType() == WindowType::TABCONTROL)
1297 bSomeoneCares =
true;
1302 return bSomeoneCares;
1306 void Window::InvalidateSizeCache()
1331 bool bSomeoneCares = queue_ungrouped_resize(
this);
1335 InvalidateSizeCache();
1341 std::set<VclPtr<vcl::Window> > &rWindows = pWindowImpl->
m_xSizeGroup->get_widgets();
1346 queue_ungrouped_resize(pOther);
1350 if (bSomeoneCares && !mpWindowImpl->mbInDispose)
1354 vcl::Window* pBorderWindow = ImplGetBorderWindow();
1360 Size aSize = GetSizePixel();
1361 if (!aSize.
IsEmpty() && !pParent->IsInInitShow()
1363 LogicInvalidate(
nullptr);
1369 VclAlign toAlign(std::u16string_view rValue)
1373 if (rValue == u
"fill")
1375 else if (rValue == u
"start")
1377 else if (rValue == u
"end")
1379 else if (rValue == u
"center")
1385 bool Window::set_font_attribute(
const OString &rKey,
const OUString &rValue)
1387 if (rKey ==
"weight")
1390 if (rValue ==
"thin")
1392 else if (rValue ==
"ultralight")
1394 else if (rValue ==
"light")
1396 else if (rValue ==
"book")
1398 else if (rValue ==
"normal")
1400 else if (rValue ==
"medium")
1402 else if (rValue ==
"semibold")
1404 else if (rValue ==
"bold")
1406 else if (rValue ==
"ultrabold")
1410 SetControlFont(aFont);
1412 else if (rKey ==
"style")
1415 if (rValue ==
"normal")
1417 else if (rValue ==
"oblique")
1419 else if (rValue ==
"italic")
1421 SetControlFont(aFont);
1423 else if (rKey ==
"underline")
1427 SetControlFont(aFont);
1429 else if (rKey ==
"size")
1432 sal_Int32 nHeight = rValue.toInt32() / 1000;
1434 SetControlFont(aFont);
1438 SAL_INFO(
"vcl.layout",
"unhandled font attribute: " << rKey);
1444 bool Window::set_property(
const OString &rKey,
const OUString &rValue)
1446 if ((rKey ==
"label") || (rKey ==
"title") || (rKey ==
"text") )
1450 else if (rKey ==
"visible")
1452 else if (rKey ==
"sensitive")
1454 else if (rKey ==
"resizable")
1462 else if (rKey ==
"xalign")
1467 float f = rValue.toFloat();
1468 assert(f == 0.0 || f == 1.0 || f == 0.5);
1478 else if (rKey ==
"justification")
1483 if (rValue ==
"left")
1485 else if (rValue ==
"right")
1487 else if (rValue ==
"center")
1492 else if (rKey ==
"yalign")
1497 float f = rValue.toFloat();
1498 assert(f == 0.0 || f == 1.0 || f == 0.5);
1508 else if (rKey ==
"wrap")
1516 else if (rKey ==
"height-request")
1517 set_height_request(rValue.toInt32());
1518 else if (rKey ==
"width-request")
1519 set_width_request(rValue.toInt32());
1520 else if (rKey ==
"hexpand")
1521 set_hexpand(
toBool(rValue));
1522 else if (rKey ==
"vexpand")
1523 set_vexpand(
toBool(rValue));
1524 else if (rKey ==
"halign")
1525 set_halign(toAlign(rValue));
1526 else if (rKey ==
"valign")
1527 set_valign(toAlign(rValue));
1528 else if (rKey ==
"tooltip-markup")
1529 SetQuickHelpText(rValue);
1530 else if (rKey ==
"tooltip-text")
1531 SetQuickHelpText(rValue);
1532 else if (rKey ==
"border-width")
1533 set_border_width(rValue.toInt32());
1534 else if (rKey ==
"margin-start" || rKey ==
"margin-left")
1536 assert(rKey ==
"margin-start" &&
"margin-left deprecated in favor of margin-start");
1537 set_margin_start(rValue.toInt32());
1539 else if (rKey ==
"margin-end" || rKey ==
"margin-right")
1541 assert(rKey ==
"margin-end" &&
"margin-right deprecated in favor of margin-end");
1542 set_margin_end(rValue.toInt32());
1544 else if (rKey ==
"margin-top")
1545 set_margin_top(rValue.toInt32());
1546 else if (rKey ==
"margin-bottom")
1547 set_margin_bottom(rValue.toInt32());
1548 else if (rKey ==
"hscrollbar-policy")
1552 if (rValue ==
"always")
1554 else if (rValue ==
"automatic")
1558 else if (rKey ==
"vscrollbar-policy")
1562 if (rValue ==
"always")
1564 else if (rValue ==
"automatic")
1568 else if (rKey ==
"accessible-name")
1570 SetAccessibleName(rValue);
1572 else if (rKey ==
"accessible-description")
1574 SetAccessibleDescription(rValue);
1576 else if (rKey ==
"accessible-role")
1579 if (role != com::sun::star::accessibility::AccessibleRole::UNKNOWN)
1580 SetAccessibleRole(role);
1582 else if (rKey ==
"use-markup")
1585 SAL_WARN_IF(
toBool(rValue),
"vcl.layout",
"Use pango attributes instead of mark-up");
1587 else if (rKey ==
"has-focus")
1592 else if (rKey ==
"can-focus")
1604 SAL_INFO(
"vcl.layout",
"unhandled property: " << rKey);
1610 void Window::set_height_request(sal_Int32 nHeightRequest)
1624 void Window::set_width_request(sal_Int32 nWidthRequest)
1638 Size Window::get_ungrouped_preferred_size()
const
1640 Size aRet(get_width_request(), get_height_request());
1647 Size aOptimal(GetOptimalSize());
1652 if (aRet.
Width() == -1)
1660 Size Window::get_preferred_size()
const
1662 Size aRet(get_ungrouped_preferred_size());
1670 const bool bIgnoreInHidden = pWindowImpl->
m_xSizeGroup->get_ignore_hidden();
1671 const std::set<VclPtr<vcl::Window> > &rWindows = pWindowImpl->
m_xSizeGroup->get_widgets();
1672 for (
auto const& window : rWindows)
1677 if (bIgnoreInHidden && !pOther->
IsVisible())
1715 bool Window::get_hexpand()
const
1721 void Window::set_hexpand(
bool bExpand)
1727 bool Window::get_vexpand()
const
1733 void Window::set_vexpand(
bool bExpand)
1739 bool Window::get_expand()
const
1745 void Window::set_expand(
bool bExpand)
1763 sal_Int32 Window::get_padding()
const
1769 void Window::set_padding(sal_Int32 nPadding)
1775 bool Window::get_fill()
const
1778 return pWindowImpl->
mbFill;
1781 void Window::set_fill(
bool bFill)
1784 pWindowImpl->
mbFill = bFill;
1787 sal_Int32 Window::get_grid_width()
const
1793 void Window::set_grid_width(sal_Int32 nCols)
1799 sal_Int32 Window::get_grid_left_attach()
const
1805 void Window::set_grid_left_attach(sal_Int32 nAttach)
1811 sal_Int32 Window::get_grid_height()
const
1817 void Window::set_grid_height(sal_Int32 nRows)
1823 sal_Int32 Window::get_grid_top_attach()
const
1829 void Window::set_grid_top_attach(sal_Int32 nAttach)
1835 void Window::set_border_width(sal_Int32 nBorderWidth)
1841 sal_Int32 Window::get_border_width()
const
1847 void Window::set_margin_start(sal_Int32 nWidth)
1857 sal_Int32 Window::get_margin_start()
const
1863 void Window::set_margin_end(sal_Int32 nWidth)
1873 sal_Int32 Window::get_margin_end()
const
1879 void Window::set_margin_top(sal_Int32 nWidth)
1889 sal_Int32 Window::get_margin_top()
const
1895 void Window::set_margin_bottom(sal_Int32 nWidth)
1905 sal_Int32 Window::get_margin_bottom()
const
1911 sal_Int32 Window::get_height_request()
const
1917 sal_Int32 Window::get_width_request()
const
1923 bool Window::get_secondary()
const
1929 void Window::set_secondary(
bool bSecondary)
1935 bool Window::get_non_homogeneous()
const
1941 void Window::set_non_homogeneous(
bool bNonHomogeneous)
1947 void Window::add_to_size_group(
const std::shared_ptr<VclSizeGroup>& xGroup)
1957 void Window::remove_from_all_size_groups()
1972 std::vector<VclPtr<FixedText> >&
v = mpWindowImpl->m_aMnemonicLabels;
1975 v.emplace_back(pLabel);
1981 std::vector<VclPtr<FixedText> >&
v = mpWindowImpl->m_aMnemonicLabels;
1983 if (aFind == v.end())
1989 const std::vector<VclPtr<FixedText> >& Window::list_mnemonic_labels()
const
1991 return mpWindowImpl->m_aMnemonicLabels;
static bool toBool(std::string_view rValue)
#define LINK(Instance, Class, Member)
OutDevType GetOutDevType() const
bool IsInputEnabled() const
void set_mnemonic_widget(vcl::Window *pWindow)
static bool HasParentDockingWindow(const vcl::Window *pWindow)
void SetFontSize(const Size &)
VclPtr< vcl::Window > mpFocusWin
void setWidth(tools::Long nWidth)
void Invert(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags, const OutputDevice &rOutDev)
std::unique_ptr< ContentProperties > pData
bool IsTransparent() const
sal_Int32 mnOptimalHeightCache
constexpr::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
tools::Long GetOutOffXPixel() const
sal_Int32 mnHeightRequest
void SetWeight(FontWeight)
WinBits const WB_AUTOVSCROLL
const CommandWheelData * GetWheelData() const
const CommandScrollData * GetAutoScrollData() const
GestureEventType const meEventType
bool SelectClipRegion(const vcl::Region &, SalGraphics *pGraphics=nullptr)
std::shared_ptr< VclSizeGroup > m_xSizeGroup
constexpr tools::Long Width() const
HashMap_OWString_Interface aMap
void Invert(const tools::Rectangle &rRect, InvertFlags nFlags=InvertFlags::NONE)
SAL_DLLPRIVATE void ReMirror(Point &rPoint) const
void DrawFocusRect(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
void EndTracking(TrackingEventFlags nFlags=TrackingEventFlags::NONE)
virtual weld::Window * GetFrameWeld() const
virtual void queue_resize(StateChangedType eReason=StateChangedType::Layout)
void SetUnderline(FontLineStyle)
bool IsDeltaPixel() const
bool isContainerWindow(const vcl::Window &rWindow)
void SetDebugName(const char *pDebugName)
VclPtr< ImplWheelWindow > mpWheelWindow
bool IsDockingWindow() const
double GetScrollLines() const
std::optional< tools::Rectangle > mpTrackRect
static void lcl_HandleScrollHelper(ScrollBar *pScrl, double nN, bool isMultiplyByLineSize)
ImplSVData * ImplGetSVData()
An auto-timer is a multi-shot timer re-emitting itself at interval until destroyed or stopped...
GraphicsSharedPtr mpGraphics
StartAutoScrollFlags mnAutoScrollFlags
Size get_ungrouped_preferred_size() const
sal_Int32 mnOptimalWidthCache
virtual bool AcquireGraphics() const =0
Acquire a graphics device that the output device uses to draw on.
tools::Long GetNotchDelta() const
CommandWheelMode GetMode() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
CommandEventId GetCommand() const
void SetTextColor(const Color &rColor)
std::unique_ptr< WindowImpl > mpWindowImpl
bool IsInModalMode() const
A window is in modal mode if one of its children or subchildren is a running modal window (a modal di...
virtual void Start() override
Activates the timer task.
void AddWindow(const vcl::Window *pWin)
IMPL_LINK(Window, ImplTrackTimerHdl, Timer *, pTimer, void)
void Merge(const Font &rFont)
const Size & GetFontSize() const
std::enable_if_t< std::is_floating_point_v< F > &&std::is_integral_v< I >, bool > convertsToAtMost(F value, I max)
const CommandGestureData * GetGestureData() const
void SetTimeout(sal_uInt64 nTimeoutMs)
#define COMMAND_WHEEL_PAGESCROLL
vcl::Window * GetParent() const
VclPtr< vcl::Window > mpTrackWin
VclPtr< vcl::Window > mpBorderWindow
void SetParentToDefaultWindow()
tools::Long GetOutOffYPixel() const
OUString convertMnemonicMarkup(const OUString &rIn)
const Point & GetMousePosPixel() const
Point LogicToPixel(const Point &rLogicPt) const
tools::Long const nBorder
WinBits const WB_SIZEABLE
A SalFrame is a system window (e.g. an X11 window).
sal_Int32 mnGridLeftAttach
void RemoveWindow(const vcl::Window *pWin)
sal_Int32 GetDenominator() const
DockingManager * ImplGetDockingManager()
#define SAL_WARN_IF(condition, area, stream)
constexpr tools::Long Height() const
VclPtr< vcl::Window > mpAutoScrollWin
#define SAL_INFO(area, stream)
tools::Long AdjustWidth(tools::Long n)
static VclPtr< reference_type > Create(Arg &&...arg)
A construction helper for VclPtr.
void SetPointFont(OutputDevice &rDevice, const vcl::Font &rFont)
std::enable_if_t< std::is_floating_point_v< F > &&std::is_integral_v< I >, bool > convertsToAtLeast(F value, I min)
sal_Int32 GetNumerator() const
void SetInvokeHandler(const Link< Timer *, void > &rLink)
std::optional< tools::Rectangle > mpFocusRect
WinBits const WB_AUTOHSCROLL
tools::Long AdjustHeight(tools::Long n)
ShowTrackFlags mnTrackFlags
void SetFontHeight(tools::Long nHeight)
void SetItalic(FontItalic)
SAL_DLLPRIVATE tools::Rectangle ImplLogicToDevicePixel(const tools::Rectangle &rLogicRect) const
Convert a logical rectangle to a rectangle in physical device pixel units.
sal_Int16 getRoleFromName(const OString &roleName)
void setHeight(tools::Long nHeight)
sal_Int32 mnGridTopAttach
WindowType GetType() const
tools::Long GetDelta() const
reference_type * get() const
Get the body.
void(* f)(TrueTypeTable *)
StartTrackingFlags mnTrackFlags
static sal_uLong GetScrollRepeat()
WinBits const WB_WORDBREAK
static tools::Long WinFloatRound(double fVal)
WinBits const WB_NOTABSTOP
vcl::Window * GetWindow() const
ImplSVWinData * mpWinData
static sal_uLong GetButtonStartRepeat()