64 virtual void dispose()
override;
74 using Window::ShowFocus;
124 size_t nLevel,
size_t nEntry,
136 bool ItemHit(
const Point& rPos,
size_t& rnLevel,
size_t& rnEntry,
bool& rbButton )
const;
139 bool ButtonHit(
const Point& rPos,
size_t& rnLevel,
size_t& rnEntry )
const;
142 bool LineHit(
const Point& rPos,
size_t& rnLevel,
size_t& rnEntry )
const;
147 void DoFunction(
size_t nLevel,
size_t nEntry )
const;
149 void DoExpand(
size_t nLevel,
size_t nEntry )
const;
151 void DoCollapse(
size_t nLevel,
size_t nEntry )
const;
198 void DrawBorderRel(
size_t nLevel,
size_t nEntry,
bool bPressed);
211 virtual void Resize()
override;
The window left of or above the spreadsheet containing the outline groups and controls to expand/coll...
void DoExpand(size_t nLevel, size_t nEntry) const
Expands the specified entry (does nothing with header entries).
tools::Long mnHeaderSize
Line color for expanded groups.
tools::Long mnHeaderPos
Size of the header area in entry direction.
void HideFocus()
Erases the focus rectangle from the focused button.
void SetEntryAreaClipRegion()
Sets a clip region for the window area without header.
void ImplMoveFocusToVisible(bool bForward)
If the focused entry is invisible, tries to move to visible position.
size_t mnFocusLevel
Focus rectangle on screen.
size_t mnMTLevel
Last position of main area in entry direction.
size_t GetLevelFromPos(tools::Long nLevelPos) const
Returns the level of the passed pixel position.
tools::Long GetHeaderEntryPos() const
Returns the entry position of header images.
void SetHeaderSize(tools::Long nNewSize)
Sets the size of the header area (width/height dep.
tools::Long GetColRowPos(SCCOLROW nColRowIndex) const
Returns the start coordinate of the specified column/row in the window.
void MoveFocusByLevel(bool bForward)
Focuses button in next/previous level.
virtual void MouseMove(const MouseEvent &rMEvt) override
void DrawLineRel(tools::Long nLevelStart, tools::Long nEntryStart, tools::Long nLevelEnd, tools::Long nEntryEnd)
Converts coordinates to real window points and draws the line.
size_t GetLevelCount() const
Returns the count of levels of the outline array.
bool ImplMoveFocusByLevel(bool bForward)
Calculates position of focus button in next/previous level (no paint).
bool IsFirstVisible(SCCOLROW nColRowIndex) const
Returns true, if all columns/rows before nColRowIndex are hidden.
void ShowFocus()
Draws the focus rectangle into the focused button.
void DrawBorderRel(size_t nLevel, size_t nEntry, bool bPressed)
Draws a pressed or unpressed border.
virtual ~ScOutlineWindow() override
bool IsMouseTracking() const
Returns whether mouse tracking mode is active.
bool mbDontDrawFocus
Entry index of focused button.
bool IsHidden(SCCOLROW nColRowIndex) const
Returns true, if the column/row is hidden.
bool IsButtonVisible(size_t nLevel, size_t nEntry) const
Returns true, if the button of the specified entry is visible in the window.
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
bool ImplMoveFocusByTabOrder(bool bForward)
Calculates position of focus button in tab order.
Point GetPoint(tools::Long nLevelPos, tools::Long nEntryPos) const
Returns the point in the window of the specified position.
void ScrollRel(tools::Long nEntryDiff, tools::Long nEntryStart, tools::Long nEntryEnd)
Scrolls the specified range of the window in entry-relative direction.
virtual void GetFocus() override
bool mbMTActive
Mouse tracking: Entry index of active button.
tools::Long mnMainLastPos
First position of main area in entry direction.
virtual void LoseFocus() override
tools::Long GetDepthSize() const
Returns the width/height the window needs to show all levels.
tools::Long mnMainFirstPos
Position of the header area in entry direction.
bool GetEntryPos(size_t nLevel, size_t nEntry, tools::Long &rnStartPos, tools::Long &rnEndPos, tools::Long &rnImagePos) const
Calculates the coordinates the outline entry takes in the window.
void DrawRectRel(tools::Long nLevelStart, tools::Long nEntryStart, tools::Long nLevelEnd, tools::Long nEntryEnd)
Converts coordinates to real window points and draws the rectangle.
void DoFunction(size_t nLevel, size_t nEntry) const
Performs an action with the specified item.
bool mbMirrorEntries
true = Horizontal orientation.
bool mbMirrorLevels
true = mirror the order of entries (including header)
bool LineHit(const Point &rPos, size_t &rnLevel, size_t &rnEntry) const
Returns true, if rPos is over the line of an expanded group.
SCTAB GetTab() const
Returns the current sheet index.
tools::Long GetOutputSizeLevel() const
Returns the window size for the level coordinate.
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
bool ImplMoveFocusByEntry(bool bForward, bool bFindVisible)
Calculates index of next/previous focus button in the current level (no paint).
bool ButtonHit(const Point &rPos, size_t &rnLevel, size_t &rnEntry) const
Returns true, if rPos is inside of a button.
ScDocument & GetDoc() const
Returns the calc document.
bool IsFocusButtonVisible() const
Returns true, if the focused button is visible in the window.
bool GetImagePos(size_t nLevel, size_t nEntry, Point &rPos) const
Calculates the absolute position of the image of the specified outline entry.
tools::Rectangle maFocusRect
Mouse tracking: Button currently drawn pressed?
void InitSettings()
Initializes color and image settings.
void StartMouseTracking(size_t nLevel, size_t nEntry)
Starts mouse tracking after click on a button.
ScOutlineWindow(vcl::Window *pParent, ScOutlineMode eMode, ScViewData *pViewData, ScSplitPos eWhich)
Do not redraw focus in next Paint().
bool mbHoriz
Which area in split window.
void DrawImageRel(tools::Long nLevelPos, tools::Long nEntryPos, const OUString &rId)
Draws the specified image unpressed.
size_t mnFocusEntry
Level of focused button.
tools::Long GetOutputSizeEntry() const
Returns the window size for the entry coordinate.
void MoveFocusByTabOrder(bool bForward)
Focuses next/previous button in tab order.
const ScOutlineEntry * GetOutlineEntry(size_t nLevel, size_t nEntry) const
Returns the specified outline entry.
tools::Long GetLevelPos(size_t nLevel) const
Returns the pixel position of the specified level.
virtual void KeyInput(const KeyEvent &rKEvt) override
bool IsFiltered(SCCOLROW nColRowIndex) const
Returns true, if the column/row is filtered.
size_t mnMTEntry
Mouse tracking: Level of active button.
void ScrollPixel(tools::Long nDiff)
Scrolls the window content by the specified amount of pixels.
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
bool ItemHit(const Point &rPos, size_t &rnLevel, size_t &rnEntry, bool &rbButton) const
Returns true, if rPos is inside of a button or over the line of an expanded group.
void MoveFocusByEntry(bool bForward)
Focuses next/previous button in the current level.
virtual void dispose() override
ScSplitPos meWhich
View data containing the document.
void EndMouseTracking()
Ends mouse tracking.
bool mbMTPressed
Mouse tracking active?
void GetVisibleRange(SCCOLROW &rnColRowStart, SCCOLROW &rnColRowEnd) const
Returns the currently visible column/row range.
tools::Rectangle GetRectangle(tools::Long nLevelStart, tools::Long nEntryStart, tools::Long nLevelEnd, tools::Long nEntryEnd) const
Returns the rectangle in the window of the specified position.
Color maLineColor
true = mirror the order of levels, including the border
void DoCollapse(size_t nLevel, size_t nEntry) const
Collapses the specified entry (does nothing with header entries).
virtual void MouseButtonUp(const MouseEvent &rMEvt) override
const ScOutlineArray * GetOutlineArray() const
Returns the outline array of the corresponding document.
virtual void Resize() override
ScDocument & GetDocument() const
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW