20#ifndef INCLUDED_VCL_WINDOW_HXX
21#define INCLUDED_VCL_WINDOW_HXX
32#include <rtl/ustring.hxx>
33#include <com/sun/star/uno/Reference.hxx>
71 struct AccessibleRelation;
84 namespace datatransfer::clipboard {
87 namespace datatransfer::dnd {
88 class XDragGestureRecognizer;
95 struct ControlLayoutData;
98namespace svt {
class PopupWindowControllerImpl; }
102template<
class T>
class VclPtr;
103namespace tools {
class JsonWriter; }
355#define IMPL_MINSIZE_BUTTON_WIDTH 70
356#define IMPL_MINSIZE_BUTTON_HEIGHT 22
357#define IMPL_EXTRA_BUTTON_WIDTH 18
358#define IMPL_EXTRA_BUTTON_HEIGHT 10
359#define IMPL_SEP_BUTTON_X 5
360#define IMPL_SEP_BUTTON_Y 5
361#define IMPL_MINSIZE_MSGBOX_WIDTH 150
362#define IMPL_DIALOG_OFFSET 5
363#define IMPL_DIALOG_BAR_OFFSET 3
364#define IMPL_MSGBOX_OFFSET_EXTRA_X 0
365#define IMPL_MSGBOX_OFFSET_EXTRA_Y 2
366#define IMPL_SEP_MSGBOX_IMAGE 8
381namespace vcl {
class WindowOutputDevice; }
437 bool bChecked,
bool bDrawBorder,
bool bDrawExtBorderOnly,
439 Color const * pPaintColor =
nullptr);
444 friend class ::vcl::Cursor;
445 friend class ::vcl::WindowOutputDevice;
446 friend class ::OutputDevice;
447 friend class ::Application;
448 friend class ::SystemWindow;
449 friend class ::WorkWindow;
450 friend class ::Dialog;
452 friend class ::MessBox;
453 friend class ::MessageDialog;
454 friend class ::DockingWindow;
455 friend class ::FloatingWindow;
456 friend class ::GroupBox;
457 friend class ::PushButton;
458 friend class ::RadioButton;
459 friend class ::SalInstanceWidget;
460 friend class ::SystemChildWindow;
461 friend class ::ImplBorderWindow;
462 friend class ::PaintHelper;
463 friend class ::LifecycleTest;
464 friend class ::VclEventListeners;
468 friend class ::ImplDockingWindowWrapper;
469 friend class ::ImplPopupFloatWin;
470 friend class ::MenuFloatingWindow;
472 friend class ::svt::PopupWindowControllerImpl;
499 SAL_DLLPRIVATE
static void ImplInitAppFontData(
vcl::Window const * pWindow );
501 SAL_DLLPRIVATE
vcl::Window* ImplGetFrameWindow()
const;
508 SAL_DLLPRIVATE
ImplWinData* ImplGetWinData()
const;
509 SAL_DLLPRIVATE
vcl::Window* ImplGetClientWindow()
const;
510 SAL_DLLPRIVATE
vcl::Window* ImplGetDlgWindow( sal_uInt16 n,
GetDlgWindowType nType, sal_uInt16 nStart = 0, sal_uInt16 nEnd = 0xFFFF, sal_uInt16* pIndex =
nullptr );
512 SAL_DLLPRIVATE
vcl::Window* ImplFindWindow(
const Point& rFramePos );
515 SAL_DLLPRIVATE
void ImplInvalidateOverlapFrameRegion(
const vcl::Region& rRegion );
517 SAL_DLLPRIVATE
bool ImplSetClipFlag(
bool bSysObjOnlySmaller =
false );
519 SAL_DLLPRIVATE
bool ImplIsWindowOrChild(
const vcl::Window* pWindow,
bool bSystemWindow =
false )
const;
520 SAL_DLLPRIVATE
bool ImplIsChild(
const vcl::Window* pWindow,
bool bSystemWindow =
false )
const;
521 SAL_DLLPRIVATE
bool ImplIsFloatingWindow()
const;
522 SAL_DLLPRIVATE
bool ImplIsPushButton()
const;
523 SAL_DLLPRIVATE
bool ImplIsSplitter()
const;
524 SAL_DLLPRIVATE
bool ImplIsOverlapWindow()
const;
526 SAL_DLLPRIVATE
void ImplIsInTaskPaneList(
bool mbIsInTaskList );
530 SAL_DLLPRIVATE
Point ImplFrameToOutput(
const Point& rPos );
533 SAL_DLLPRIVATE
void ImplGrabFocusToDocument(
GetFocusFlags nFlags );
536 SAL_DLLPRIVATE
PointerStyle ImplGetMousePointer()
const;
537 SAL_DLLPRIVATE
void ImplCallMouseMove( sal_uInt16 nMouseCode,
bool bModChanged =
false );
538 SAL_DLLPRIVATE
void ImplGenerateMouseMove();
540 SAL_DLLPRIVATE
void ImplNotifyKeyMouseCommandEventListeners(
NotifyEvent& rNEvt );
541 SAL_DLLPRIVATE
void ImplNotifyIconifiedState(
bool bIconified );
543 SAL_DLLPRIVATE
void ImplUpdateAll();
547 SAL_DLLPRIVATE
void ImplMirrorFramePos( Point &pt )
const;
551 SAL_DLLPRIVATE
void ImplCallResize();
552 SAL_DLLPRIVATE
void ImplCallMove();
555 SAL_DLLPRIVATE
void CompatGetFocus();
556 SAL_DLLPRIVATE
void CompatLoseFocus();
559 SAL_DLLPRIVATE
bool CompatPreNotify(
NotifyEvent& rNEvt );
560 SAL_DLLPRIVATE
bool CompatNotify(
NotifyEvent& rNEvt );
562 void IncModalCount();
563 void DecModalCount();
570 virtual void dispose()
override;
574 SAL_DLLPRIVATE
Point ImplOutputToFrame(
const Point& rPos );
576 SAL_DLLPRIVATE
void ImplInvalidateParentFrameRegion(
const vcl::Region& rRegion );
578 SAL_DLLPRIVATE
void ImplValidate();
582 SAL_DLLPRIVATE
vcl::Window* ImplGetBorderWindow()
const;
588 SAL_DLLPRIVATE
void ImplSetMouseTransparent(
bool bTransparent );
592 SAL_DLLPRIVATE
bool ImplSetClipFlagChildren(
bool bSysObjOnlySmaller );
593 SAL_DLLPRIVATE
bool ImplSetClipFlagOverlapWindows(
bool bSysObjOnlySmaller =
false );
596 SAL_DLLPRIVATE
void PopPaintHelper(
PaintHelper const * pHelper);
600 SAL_DLLPRIVATE
void ImplSetFrameParent(
const vcl::Window* pParent );
602 SAL_DLLPRIVATE
void ImplInsertWindow(
vcl::Window* pParent );
603 SAL_DLLPRIVATE
void ImplRemoveWindow(
bool bRemoveFrameData );
605 SAL_DLLPRIVATE
SalGraphics* ImplGetFrameGraphics()
const;
607 SAL_DLLPRIVATE
static void ImplCallFocusChangeActivate(
vcl::Window* pNewOverlapWindow,
vcl::Window* pOldOverlapWindow );
608 SAL_DLLPRIVATE
vcl::Window* ImplGetFirstOverlapWindow();
609 SAL_DLLPRIVATE
const vcl::Window* ImplGetFirstOverlapWindow()
const;
611 SAL_DLLPRIVATE
bool ImplIsRealParentPath(
const vcl::Window* pWindow )
const;
613 SAL_DLLPRIVATE
bool ImplTestMousePointerSet();
615 SAL_DLLPRIVATE
void ImplResetReallyVisible();
616 SAL_DLLPRIVATE
void ImplSetReallyVisible();
618 SAL_DLLPRIVATE
void ImplCallInitShow();
620 SAL_DLLPRIVATE
void ImplInitResolutionSettings();
625 SAL_DLLPRIVATE
bool ImplSysObjClip(
const vcl::Region* pOldRegion );
626 SAL_DLLPRIVATE
void ImplUpdateSysObjChildrenClip();
627 SAL_DLLPRIVATE
void ImplUpdateSysObjOverlapsClip();
628 SAL_DLLPRIVATE
void ImplUpdateSysObjClip();
630 SAL_DLLPRIVATE
void ImplIntersectWindowClipRegion(
vcl::Region& rRegion );
631 SAL_DLLPRIVATE
void ImplIntersectWindowRegion(
vcl::Region& rRegion );
632 SAL_DLLPRIVATE
void ImplExcludeWindowRegion(
vcl::Region& rRegion );
633 SAL_DLLPRIVATE
void ImplExcludeOverlapWindows(
vcl::Region& rRegion )
const;
634 SAL_DLLPRIVATE
void ImplExcludeOverlapWindows2(
vcl::Region& rRegion );
636 SAL_DLLPRIVATE
void ImplClipBoundaries(
vcl::Region& rRegion,
bool bThis,
bool bOverlaps );
637 SAL_DLLPRIVATE
bool ImplClipChildren(
vcl::Region& rRegion )
const;
638 SAL_DLLPRIVATE
void ImplClipAllChildren(
vcl::Region& rRegion )
const;
639 SAL_DLLPRIVATE
void ImplClipSiblings(
vcl::Region& rRegion )
const;
641 SAL_DLLPRIVATE
void ImplInitWinClipRegion();
642 SAL_DLLPRIVATE
void ImplInitWinChildClipRegion();
643 SAL_DLLPRIVATE
vcl::Region& ImplGetWinChildClipRegion();
645 SAL_DLLPRIVATE
void ImplIntersectAndUnionOverlapWindows(
const vcl::Region& rInterRegion,
vcl::Region& rRegion )
const;
646 SAL_DLLPRIVATE
void ImplIntersectAndUnionOverlapWindows2(
const vcl::Region& rInterRegion,
vcl::Region& rRegion );
647 SAL_DLLPRIVATE
void ImplCalcOverlapRegionOverlaps(
const vcl::Region& rInterRegion,
vcl::Region& rRegion )
const;
649 bool bChildren,
bool bSiblings );
659 SAL_DLLPRIVATE
void ImplCallOverlapPaint();
661 SAL_DLLPRIVATE
void ImplUpdateWindowPtr(
vcl::Window* pWindow );
662 SAL_DLLPRIVATE
void ImplUpdateWindowPtr();
663 SAL_DLLPRIVATE
void ImplUpdateOverlapWindowPtr(
bool bNewFrame );
665 SAL_DLLPRIVATE
bool ImplUpdatePos();
666 SAL_DLLPRIVATE
void ImplUpdateSysObjPos();
668 SAL_DLLPRIVATE
void ImplUpdateGlobalSettings(
AllSettings& rSettings,
bool bCallHdl =
true )
const;
670 SAL_DLLPRIVATE
void ImplToBottomChild();
673 SAL_DLLPRIVATE
void ImplToTop(
ToTopFlags nFlags );
674 SAL_DLLPRIVATE
void ImplStartToTop(
ToTopFlags nFlags );
675 SAL_DLLPRIVATE
void ImplFocusToTop(
ToTopFlags nFlags,
bool bReallyVisible );
677 SAL_DLLPRIVATE
void ImplShowAllOverlaps();
678 SAL_DLLPRIVATE
void ImplHideAllOverlaps();
680 SAL_DLLPRIVATE
bool ImplDlgCtrl(
const KeyEvent& rKEvt,
bool bKeyInput );
681 SAL_DLLPRIVATE
bool ImplHasDlgCtrl()
const;
682 SAL_DLLPRIVATE
void ImplDlgCtrlNextWindow();
683 SAL_DLLPRIVATE
void ImplDlgCtrlFocusChanged(
vcl::Window* pWindow,
bool bGetFocus );
686 SAL_DLLPRIVATE
static void ImplNewInputContext();
688 SAL_DLLPRIVATE
void ImplCallActivateListeners(
vcl::Window*);
689 SAL_DLLPRIVATE
void ImplCallDeactivateListeners(
vcl::Window*);
691 SAL_DLLPRIVATE
static void ImplHandleScroll(
Scrollable* pHScrl,
double nX,
Scrollable* pVScrl,
double nY);
695 SAL_DLLPRIVATE
tools::Long ImplGetUnmirroredOutOffX();
698 SAL_DLLPRIVATE ::std::vector<VclPtr<vcl::Window> >& ImplGetOwnerDrawList();
700 SAL_DLLPRIVATE
vcl::Window* ImplGetTopmostFrameWindow();
704 SAL_DLLPRIVATE
bool ImplStopDnd();
705 SAL_DLLPRIVATE
void ImplStartDnd();
707 virtual void ImplPaintToDevice(
::OutputDevice* pTargetOutDev,
const Point& rPos );
713 void SetCompoundControl(
bool bCompound );
715 void CallEventListeners(
VclEventId nEvent,
void* pData =
nullptr );
718 virtual void ImplAdjustNWFSizes();
731 Color GetBackgroundColor()
const;
733 bool IsBackground()
const;
734 const MapMode& GetMapMode()
const;
735 void SetBackground();
736 void SetBackground(
const Wallpaper& rBackground );
752 virtual void Activate();
753 virtual void Deactivate();
756 virtual void RequestHelp(
const HelpEvent& rHEvt );
776 void SetStyle(
WinBits nStyle );
783 bool IsSystemWindow()
const;
784 bool IsDockingWindow()
const;
785 bool IsDialog()
const;
786 bool IsMenuFloatingWindow()
const;
787 bool IsToolbarFloatingWindow()
const;
788 bool IsTopWindow()
const;
792 bool SupportsDoubleBuffering()
const;
794 void RequestDoubleBuffering(
bool bRequest);
796 void EnableAllResize();
800 void GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder,
801 sal_Int32& rRightBorder, sal_Int32& rBottomBorder )
const;
802 Size CalcWindowSize(
const Size& rOutSz )
const;
803 Size CalcOutputSize(
const Size& rWinSz )
const;
806 void EnableClipSiblings(
bool bClipSiblings =
true );
808 void EnableChildTransparentMode(
bool bEnable =
true );
809 bool IsChildTransparentModeEnabled()
const;
811 void SetMouseTransparent(
bool bTransparent );
812 bool IsMouseTransparent()
const;
813 void SetPaintTransparent(
bool bTransparent );
814 bool IsPaintTransparent()
const;
815 void SetDialogControlStart(
bool bStart );
816 bool IsDialogControlStart()
const;
826 bool IsMouseOver()
const;
828 void SetInputContext(
const InputContext& rInputContext );
830 void PostExtTextInputEvent(
VclEventId nType,
const OUString& rText);
838 void UpdateSettings(
const AllSettings& rSettings,
bool bChild =
false );
847 void SetControlFont();
848 void SetControlFont(
const vcl::Font& rFont );
850 bool IsControlFont()
const;
853 void SetControlForeground();
854 void SetControlForeground(
const Color& rColor);
855 const Color& GetControlForeground()
const;
856 bool IsControlForeground()
const;
859 void SetControlBackground();
860 void SetControlBackground(
const Color& rColor );
861 const Color& GetControlBackground()
const;
862 bool IsControlBackground()
const;
868 void SetWindowRegionPixel();
869 void SetWindowRegionPixel(
const vcl::Region& rRegion );
872 bool IsInPaint()
const;
876 void ExpandPaintClipRegion(
const vcl::Region& rRegion );
881 Dialog* GetParentDialog()
const;
882 bool IsAncestorOf(
const vcl::Window& rWindow )
const;
886 bool IsVisible()
const;
887 bool IsReallyVisible()
const;
888 bool IsReallyShown()
const;
889 bool IsInInitShow()
const;
891 void Enable(
bool bEnable =
true,
bool bChild =
true );
893 bool IsEnabled()
const;
895 void EnableInput(
bool bEnable =
true,
bool bChild =
true );
896 void EnableInput(
bool bEnable,
const vcl::Window* pExcludeWindow );
897 bool IsInputEnabled()
const;
908 void AlwaysEnableInput(
bool bAlways,
bool bChild =
true );
914 bool IsAlwaysEnableInput()
const;
921 bool IsInModalMode()
const;
928 void EnableAlwaysOnTop(
bool bEnable =
true );
929 bool IsAlwaysOnTopEnabled()
const;
934 virtual void SetPosPixel(
const Point& rNewPos );
935 virtual Point GetPosPixel()
const;
936 virtual void SetSizePixel(
const Size& rNewSize );
937 virtual Size GetSizePixel()
const;
938 virtual void SetPosSizePixel(
const Point& rNewPos,
939 const Size& rNewSize );
940 virtual void SetOutputSizePixel(
const Size& rNewSize );
941 bool IsDefaultPos()
const;
942 bool IsDefaultSize()
const;
946 Point OutputToScreenPixel(
const Point& rPos )
const;
947 Point ScreenToOutputPixel(
const Point& rPos )
const;
949 Point OutputToNormalizedScreenPixel(
const Point& rPos )
const;
950 Point NormalizedScreenToOutputPixel(
const Point& rPos )
const;
951 Point OutputToAbsoluteScreenPixel(
const Point& rPos )
const;
952 Point AbsoluteScreenToOutputPixel(
const Point& rPos )
const;
957 bool IsScrollable()
const;
981 bool HasPaintEvent()
const;
982 void PaintImmediately();
985 void EnableDocking(
bool bEnable =
true );
989 void EnablePaint(
bool bEnable );
990 bool IsPaintEnabled()
const;
991 void SetUpdateMode(
bool bUpdate );
992 bool IsUpdateMode()
const;
993 void SetParentUpdateMode(
bool bUpdate );
996 bool HasFocus()
const;
997 bool HasChildPathFocus(
bool bSystemWindow =
false )
const;
998 bool IsActive()
const;
999 bool HasActiveChildFrame()
const;
1001 void GrabFocusToDocument();
1009 void SetFakeFocus(
bool bFocus );
1011 bool IsCompoundControl()
const;
1016 void LocalStartDrag();
1017 void CaptureMouse();
1018 void ReleaseMouse();
1019 bool IsMouseCaptured()
const;
1023 void EnableChildPointerOverwrite(
bool bOverwrite );
1024 void SetPointerPosPixel(
const Point& rPos );
1025 Point GetPointerPosPixel();
1026 Point GetLastPointerPosPixel();
1028 void SetLastMousePos(
const Point& rPos);
1029 void ShowPointer(
bool bVisible );
1032 bool IsWait()
const;
1037 void SetZoom(
const Fraction& rZoom );
1039 bool IsZoom()
const;
1042 virtual void SetText(
const OUString& rStr );
1043 virtual OUString GetText()
const;
1047 virtual OUString GetDisplayText()
const;
1051 virtual const Wallpaper& GetDisplayBackground()
const;
1053 void SetHelpText(
const OUString& rHelpText );
1054 const OUString& GetHelpText()
const;
1056 void SetQuickHelpText(
const OUString& rHelpText );
1057 const OUString& GetQuickHelpText()
const;
1060 const OString& GetHelpId()
const;
1062 sal_uInt16 GetChildCount()
const;
1066 bool IsWindowOrChild(
const vcl::Window* pWindow,
bool bSystemWindow =
false )
const;
1069 SAL_DLLPRIVATE
void CollectChildren(::std::vector<vcl::Window *>& rAllChildren );
1075 void DrawSelectionBackground(
const tools::Rectangle& rRect, sal_uInt16 highlight,
bool bChecked,
bool bDrawBorder );
1079 void HideTracking();
1084 bool IsTracking()
const;
1087 void EndAutoScroll();
1096 virtual css::uno::Reference< css::awt::XWindowPeer >
1097 GetComponentInterface(
bool bCreate =
true );
1099 void SetComponentInterface( css::uno::Reference< css::awt::XWindowPeer >
const & xIFace );
1101 void SetUseFrameData(
bool bUseFrameData);
1112 void ReleaseLOKNotifier();
1118 static bool IsLOKWindowsEmpty();
1128 css::uno::Reference< css::accessibility::XAccessible >
1129 GetAccessible(
bool bCreate =
true );
1131 virtual css::uno::Reference< css::accessibility::XAccessible >
1134 void SetAccessible(
const css::uno::Reference< css::accessibility::XAccessible >& );
1137 sal_uInt16 GetAccessibleChildWindowCount();
1138 vcl::Window* GetAccessibleChildWindow( sal_uInt16 n );
1140 void SetAccessibleRole( sal_uInt16 nRole );
1141 sal_uInt16 GetAccessibleRole()
const;
1143 void SetAccessibleName(
const OUString& rName );
1144 OUString GetAccessibleName()
const;
1146 void SetAccessibleDescription(
const OUString& rDescr );
1147 OUString GetAccessibleDescription()
const;
1149 void SetAccessibleRelationLabeledBy(
vcl::Window* pLabeledBy );
1150 vcl::Window* GetAccessibleRelationLabeledBy()
const;
1152 void SetAccessibleRelationLabelFor(
vcl::Window* pLabelFor );
1153 vcl::Window* GetAccessibleRelationLabelFor()
const;
1155 vcl::Window* GetAccessibleRelationMemberOf()
const;
1159 bool IsAccessibilityEventsSuppressed(
bool bTraverseParentPath =
true );
1160 void SetAccessibilityEventsSuppressed(
bool bSuppressed);
1167 SAL_DLLPRIVATE
vcl::Window* getLegacyNonLayoutAccessibleRelationMemberOf()
const;
1168 SAL_DLLPRIVATE
vcl::Window* getLegacyNonLayoutAccessibleRelationLabeledBy()
const;
1169 SAL_DLLPRIVATE
vcl::Window* getLegacyNonLayoutAccessibleRelationLabelFor()
const;
1172 virtual vcl::Window* getAccessibleRelationLabelFor()
const;
1173 virtual sal_uInt16 getDefaultAccessibleRole()
const;
1174 virtual OUString getDefaultAccessibleName()
const;
1188 virtual Size GetOptimalSize()
const;
1190 void InvalidateSizeCache();
1193 SAL_DLLPRIVATE
bool ImplIsAccessibleCandidate()
const;
1194 SAL_DLLPRIVATE
bool ImplIsAccessibleNativeFrame()
const;
1210 Size get_ungrouped_preferred_size()
const;
1219 void SetWindowPeer( css::uno::Reference< css::awt::XWindowPeer >
const & xPeer,
VCLXWindow* pVCLXWindow );
1222 bool IsCreatedWithToolkit()
const;
1223 void SetCreatedWithToolkit(
bool b );
1226 css::uno::Reference< css::datatransfer::dnd::XDropTarget > GetDropTarget();
1227 css::uno::Reference< css::datatransfer::dnd::XDragSource > GetDragSource();
1228 css::uno::Reference< css::datatransfer::dnd::XDragGestureRecognizer > GetDragGestureRecognizer();
1231 css::uno::Reference< css::datatransfer::clipboard::XClipboard > GetClipboard();
1233 void SetClipboard(css::uno::Reference<css::datatransfer::clipboard::XClipboard>
const & xClipboard);
1252 void set_height_request(sal_Int32 nHeightRequest);
1253 sal_Int32 get_height_request()
const;
1263 void set_width_request(sal_Int32 nWidthRequest);
1264 sal_Int32 get_width_request()
const;
1277 Size get_preferred_size()
const;
1295 bool get_hexpand()
const;
1296 void set_hexpand(
bool bExpand);
1302 bool get_vexpand()
const;
1303 void set_vexpand(
bool bExpand);
1308 bool get_expand()
const;
1309 void set_expand(
bool bExpand);
1314 bool get_fill()
const;
1315 void set_fill(
bool bFill);
1317 void set_border_width(sal_Int32 nBorderWidth);
1318 sal_Int32 get_border_width()
const;
1320 void set_margin_start(sal_Int32 nWidth);
1321 sal_Int32 get_margin_start()
const;
1323 void set_margin_end(sal_Int32 nWidth);
1324 sal_Int32 get_margin_end()
const;
1326 void set_margin_top(sal_Int32 nWidth);
1327 sal_Int32 get_margin_top()
const;
1329 void set_margin_bottom(sal_Int32 nWidth);
1330 sal_Int32 get_margin_bottom()
const;
1341 sal_Int32 get_padding()
const;
1342 void set_padding(sal_Int32 nPadding);
1347 sal_Int32 get_grid_width()
const;
1348 void set_grid_width(sal_Int32 nCols);
1353 sal_Int32 get_grid_left_attach()
const;
1354 void set_grid_left_attach(sal_Int32 nAttach);
1359 sal_Int32 get_grid_height()
const;
1360 void set_grid_height(sal_Int32 nRows);
1365 sal_Int32 get_grid_top_attach()
const;
1366 void set_grid_top_attach(sal_Int32 nAttach);
1372 bool get_secondary()
const;
1373 void set_secondary(
bool bSecondary);
1379 bool get_non_homogeneous()
const;
1380 void set_non_homogeneous(
bool bNonHomogeneous);
1387 virtual bool set_property(
const OString &rKey,
const OUString &rValue);
1394 bool set_font_attribute(
const OString &rKey, std::u16string_view rValue);
1400 void add_to_size_group(
const std::shared_ptr<VclSizeGroup>& xGroup);
1401 void remove_from_all_size_groups();
1406 void add_mnemonic_label(
FixedText *pLabel);
1407 void remove_mnemonic_label(
FixedText *pLabel);
1408 const std::vector<VclPtr<FixedText> >& list_mnemonic_labels()
const;
1418 void set_id(
const OUString& rID);
1423 const OUString& get_id()
const;
1430 void EnableNativeWidget(
bool bEnable =
true );
1431 bool IsNativeWidgetEnabled()
const;
1434 void PaintToDevice(
::OutputDevice* pDevice,
const Point& rPos );
1448 void SimulateKeyPress( sal_uInt16 nKeyCode )
const;
1450 virtual OUString GetSurroundingText()
const;
1451 virtual Selection GetSurroundingTextSelection()
const;
1452 virtual bool DeleteSurroundingText(
const Selection& rSelection);
1464 Size GetOutputSizePixel()
const;
1467 Point LogicToPixel(
const Point& rLogicPt )
const;
1468 Size LogicToPixel(
const Size& rLogicSize )
const;
1471 Point LogicToPixel(
const Point& rLogicPt,
1472 const MapMode& rMapMode )
const;
1473 Size LogicToPixel(
const Size& rLogicSize,
1474 const MapMode& rMapMode )
const;
1476 const MapMode& rMapMode )
const;
1478 Point PixelToLogic(
const Point& rDevicePt )
const;
1479 Size PixelToLogic(
const Size& rDeviceSize )
const;
1483 Point PixelToLogic(
const Point& rDevicePt,
1484 const MapMode& rMapMode )
const;
1485 Size PixelToLogic(
const Size& rDeviceSize,
1486 const MapMode& rMapMode )
const;
1488 const MapMode& rMapMode )
const;
1490 Size LogicToLogic(
const Size& rSzSource,
1491 const MapMode* pMapModeSource,
1492 const MapMode* pMapModeDest )
const;
1496 void SetSettings(
const AllSettings& rSettings,
bool bChild );
1502 float GetDPIScaleFactor()
const;
1506 void EnableMapMode(
bool bEnable =
true );
1507 bool IsMapModeEnabled()
const;
1509 void SetMapMode(
const MapMode& rNewMapMode );
1512 virtual void EnableRTL(
bool bEnable =
true);
1513 bool IsRTLEnabled()
const;
1515 void SetFont(
const vcl::Font& rNewFont );
1522 tools::Long GetTextWidth(
const OUString& rStr, sal_Int32 nIndex = 0, sal_Int32 nLen = -1,
1531 float approximate_digit_width()
const;
1533 void SetTextColor(
const Color& rColor );
1536 void SetTextFillColor();
1537 void SetTextFillColor(
const Color& rColor );
1538 Color GetTextFillColor()
const;
1539 bool IsTextFillColor()
const;
1541 void SetTextLineColor();
1542 void SetTextLineColor(
const Color& rColor );
1543 const Color& GetTextLineColor()
const;
1544 bool IsTextLineColor()
const;
1546 void SetOverlineColor();
1547 void SetOverlineColor(
const Color& rColor );
1548 const Color& GetOverlineColor()
const;
1549 bool IsOverlineColor()
const;
1560 bool GetNativeControlRegion(
1569 SAL_DLLPRIVATE
float approximate_char_width()
const;
1571 SAL_DLLPRIVATE
void ImplEnableRTL(
bool bEnable);
Base class used mainly for the LibreOffice Desktop class.
ImplDockingWindowWrapper.
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
A SalFrame is a system window (e.g. an X11 window).
A thin wrapper around rtl::Reference to implement the acquire and dispose semantics we want for refer...
DECL_DLLPRIVATE_LINK(ImplAsyncFocusHdl, void *, void)
void Disable(bool bChild=true)
virtual bool IsChart() const
SAL_DLLPRIVATE WindowImpl * ImplGetWindowImpl() const
std::unique_ptr< WindowImpl > mpWindowImpl
virtual bool IsStarMath() const
DECL_DLLPRIVATE_LINK(ImplGenerateMouseMoveHdl, void *, void)
DECL_DLLPRIVATE_LINK(ImplHandleResizeTimerHdl, Timer *, void)
DECL_DLLPRIVATE_LINK(ImplHandlePaintHdl, Timer *, void)
DECL_DLLPRIVATE_LINK(ImplTrackTimerHdl, Timer *, void)
weld::Window * GetFrameWeld(const SfxFrame *pFrame)
vcl::Window * ImplFindDlgCtrlWindow(vcl::Window *pParent, vcl::Window *pWindow, sal_uInt16 &rIndex, sal_uInt16 &rFormStart, sal_uInt16 &rFormEnd)
virtual void SetHelpId(const OString &) override
virtual void SetText(const OUString &rStr) override
std::function< std::unique_ptr< UIObject >(vcl::Window *)> FactoryFunction
void reorderWithinParent(vcl::Window &rWindow, sal_uInt16 nNewPosition)
Color GetTextColor(Color const &rColor, DrawModeFlags nDrawMode, StyleSettings const &rStyleSettings)
vcl::Font GetFont(vcl::Font const &rFont, DrawModeFlags nDrawMode, StyleSettings const &rStyleSettings)
void SetPointFont(OutputDevice &rDevice, const vcl::Font &rFont)
@ FloatWinPopupModeEndCancel
const char * ImplDbgCheckWindow(const void *pObj)
@ NoErase
The invalidated area is painted with the background color/pattern.
@ Children
The child windows are invalidated, too.
@ NoClipChildren
The area is invalidated regardless of overlapping child windows.
@ NoTransparent
The parent window is not invalidated.
@ NoChildren
The child windows are not invalidated.
@ DocHidden
This is a frame window that is requested to be hidden (not just "not yet shown").