20#ifndef INCLUDED_SVX_SOURCE_INC_FRMSELIMPL_HXX
21#define INCLUDED_SVX_SOURCE_INC_FRMSELIMPL_HXX
33 class AccFrameSelector;
34 class AccFrameSelectorChild;
143 std::vector<rtl::Reference<a11y::AccFrameSelectorChild>>
237template<
typename Cont,
typename Iter,
typename Pred >
Template class for all types of frame border iterators.
Cont::value_type value_type
value_type operator*() const
FrameBorderIterBase(container_type &rCont)
FrameBorderIterBase< Cont, Iter, Pred > this_type
tools::Rectangle GetClickBoundRect() const
void MergeFocusToPolyPolygon(tools::PolyPolygon &rPPoly) const
const frame::Style & GetUIStyle() const
void AddFocusPolygon(const tools::Polygon &rFocus)
FrameBorderType meKeyLeft
Internal style to draw lines.
bool ContainsClickPoint(const Point &rPos) const
bool mbSelected
true = Border enabled in control.
FrameBorderType GetType() const
void AddClickRect(const tools::Rectangle &rRect)
void SetCoreStyle(const editeng::SvxBorderLine *pStyle)
FrameBorderType meKeyRight
Left neighbor for keyboard control.
frame::Style maUIStyle
Core style from application.
void SetState(FrameBorderState eState)
bool mbEnabled
Mouse click areas.
FrameBorderType meKeyTop
Right neighbor for keyboard control.
void Select(bool bSelect)
tools::PolyPolygon maFocusArea
Lower neighbor for keyboard control.
editeng::SvxBorderLine maCoreStyle
Frame border state (on/off/don't care).
void SetUIColorPrim(const Color &rColor)
FrameBorderState meState
Frame border type (position in control).
void SetKeyboardNeighbors(FrameBorderType eLeft, FrameBorderType eRight, FrameBorderType eTop, FrameBorderType eBottom)
FrameBorderType GetKeyboardNeighbor(sal_uInt16 nKeyCode) const
void SetUIColorSecn(const Color &rColor)
FrameBorderType meKeyBottom
Upper neighbor for keyboard control.
FrameBorder(FrameBorderType eType)
FrameBorderState GetState() const
static double GetDefaultPatternScale()
const FrameBorderType meType
void Enable(FrameSelFlags nFlags)
tools::PolyPolygon maClickArea
Focus drawing areas.
const editeng::SvxBorderLine & GetCoreStyle() const
Stores frame styles of an array of cells, supports merged ranges.
Contains the widths of primary and secondary line of a frame style.
void SetColorSecn(const Color &rColor)
void SetColorPrim(const Color &rColor)
Sets a new color, does not modify other settings.
std::vector< FrameBorder * > FrameBorderPtrVec
FrameBorderIterBase< const FrameBorderPtrVec, FrameBorderPtrVec::const_iterator, FrameBorderDummy_Pred > FrameBorderCIter
Iterator for constant svx::FrameBorder containers, iterates over all borders.
FrameBorderIterBase< const FrameBorderPtrVec, FrameBorderPtrVec::const_iterator, FrameBorderVisible_Pred > VisFrameBorderCIter
Iterator for constant svx::FrameBorder containers, iterates over visible borders.
FrameBorderIterBase< FrameBorderPtrVec, FrameBorderPtrVec::iterator, FrameBorderSelected_Pred > SelFrameBorderIter
Iterator for mutable svx::FrameBorder containers, iterates over selected borders.
FrameBorderType
Enumerates all borders a frame selection control can contain.
FrameBorderState
All possible states of a frame border.
FrameBorderIterBase< const FrameBorderPtrVec, FrameBorderPtrVec::const_iterator, FrameBorderSelected_Pred > SelFrameBorderCIter
Iterator for constant svx::FrameBorder containers, iterates over selected borders.
FrameBorderIterBase< FrameBorderPtrVec, FrameBorderPtrVec::iterator, FrameBorderDummy_Pred > FrameBorderIter
Iterator for mutable svx::FrameBorder containers, iterates over all borders.
FrameBorderIterBase< FrameBorderPtrVec, FrameBorderPtrVec::iterator, FrameBorderVisible_Pred > VisFrameBorderIter
Iterator for mutable svx::FrameBorder containers, iterates over visible borders.
Dummy predicate for frame border iterators to use all borders in a container.
bool operator()(const FrameBorder *) const
Predicate for frame border iterators to use only selected borders in a container.
bool operator()(const FrameBorder *pBorder) const
Predicate for frame border iterators to use only visible borders in a container.
bool operator()(const FrameBorder *pBorder) const
frame::Array maArray
Current style and color for new borders.
FrameSelectorImpl(FrameSelector &rFrameSel)
Pointers to accessibility objects for frame borders.
Link< LinkParamNone *, void > maSelectHdl
Pointers to enables frame borders.
void InitBorderGeometry()
Initializes coordinates of all frame borders.
bool mbTLBR
true = Inner vertical frame border enabled.
void DrawBackground()
Draws the background of the entire control (the gray areas between borders).
void DrawAllFrameBorders()
Draws all frame borders.
bool SelectedBordersEqual() const
Returns true, if all selected frame borders are equal (or if nothing is selected).
bool mbFullRepaint
true = Bottom-left to top-right frame border enabled.
void DrawVirtualDevice()
Draws all contents of the control.
tools::Long mnLine2
Middle of left/top frame borders.
Color maBackCol
Arrows in current system colors.
void SetBorderCoreStyle(FrameBorder &rBorder, const editeng::SvxBorderLine *pStyle)
Sets the core style of the specified frame border, or hides the frame border, if pStyle is 0.
tools::Long mnCtrlSize
Selection handler.
tools::Long mnArrowSize
Size of the control (always square).
FrameBorder maBLTR
All data of top-left to bottom-right frame border.
void SelectBorder(FrameBorder &rBorder, bool bSelect)
Selects a frame border and schedules redraw.
void InitGlobalGeometry()
Initializes global coordinates.
void InitColors()
Fills all color members from current style settings.
void InitVirtualDevice()
Draws the entire control into the internal virtual device.
FrameBorder & GetBorderAccess(FrameBorderType eBorder)
Returns the object representing the specified frame border (write access).
void DrawAllTrackingRects(vcl::RenderContext &rRenderContext)
Draws tracking rectangles for all selected frame borders.
Point GetDevPosFromMousePos(const Point &rMousePos) const
Converts a mouse position to the virtual device position.
FrameBorderPtrVec maEnabBorders
Pointers to all frame borders.
bool mbHor
Offset from frame border middle to draw focus.
FrameBorder maLeft
Position of virtual device in the control.
Color maArrowCol
Background color.
FrameBorder maTLBR
All data of inner vertical frame border.
editeng::SvxBorderLine maCurrStyle
All data of bottom-left to top-right frame border.
Point maVirDevPos
High contrast line color.
tools::Long mnLine3
Middle of inner frame borders.
bool mbBLTR
true = Top-left to bottom-right frame border enabled.
std::vector< rtl::Reference< a11y::AccFrameSelectorChild > > maChildVec
true = High contrast mode.
Color maMarkCol
Selection arrow color.
void Initialize(FrameSelFlags nFlags)
Initializes the control, enables/disables frame borders according to flags.
Color maHCLineCol
Selection marker color.
void DrawArrows(const FrameBorder &rBorder)
Draws selection arrows for the specified frame border.
FrameBorderPtrVec maAllBorders
Flags for enabled frame borders.
bool mbVer
true = Inner horizontal frame border enabled.
bool mbHCMode
true = Auto select a frame border, if focus reaches control.
bool mbAutoSelect
Used for repainting (false = only copy virtual device).
Color GetDrawLineColor(const Color &rColor) const
Returns the color that has to be used to draw a frame border.
void InitArrowImageList()
Creates the image list with selection arrows regarding current style settings.
void SilentGrabFocus()
Grabs focus without auto-selection of a frame border, if no border selected.
std::vector< Image > maArrows
For all buffered drawing operations.
void DoInvalidate(bool bFullRepaint)
Invalidates the control.
void sizeChanged()
call this to recalculate based on parent size
void SetBorderState(FrameBorder &rBorder, FrameBorderState eState)
Sets the state of the specified frame border.
FrameBorder maVer
All data of inner horizontal frame border.
tools::Long mnLine1
Size of an arrow image.
FrameBorder maHor
All data of bottom frame border.
FrameSelFlags mnFlags
Frame link array to draw an array of frame borders.
FrameBorder maRight
All data of left frame border.
const FrameBorder & GetBorder(FrameBorderType eBorder) const
Returns the object representing the specified frame border.
FrameBorder maBottom
All data of top frame border.
tools::Long mnFocusOffs
Middle of right/bottom frame borders.
void CopyVirDevToControl(vcl::RenderContext &rRenderContext)
Copies contents of the virtual device to the control.
ScopedVclPtr< VirtualDevice > mpVirDev
The control itself.
void ToggleBorderState(FrameBorder &rBorder)
Changes the state of a frame border after a control event (mouse/keyboard).
FrameSelector & mrFrameSel
FrameBorder maTop
All data of right frame border.