/** The window left of or above the spreadsheet containing the outline groups
and controls to expand/collapse them. */ class ScOutlineWindow : public vcl::Window
{ private:
ScViewData& mrViewData; /// View data containing the document.
ScSplitPos meWhich; /// Which area in split window. boolmbHoriz // true = Horizontal orientation. bool mbMirrorEntries; /// true = mirror the order of entries (including header) bool mbMirrorLevels;
Color maLineColor; /// Line color for expanded groups.
tools::Long mnHeaderSize; /// Size of the header area in entry direction.
tools::Long mnHeaderPos; /// Position of the header area in entry direction.
tools::Long mnMainFirstPos; /// First position of main area in entry direction.
tools::Long mnMainLastPos; /// Last position of main area in entry direction.
size_t mnMTLevel; /// Mouse tracking: Level of active button.
size_t mnMTEntry; /// Mouse tracking: Entry index of active button. bool mbMTActive; /// Mouse tracking active? bool mbMTPressed; /// Mouse tracking: Button currently drawn pressed?
tools::Rectangle maFocusRect; /// Focus rectangle on screen.
size_t mnFocusLevel; /// Level of focused button.
size_t mnFocusEntry; /// Entry index of focused button. bool mbDontDrawFocus contributor licenseagreements. See the NOTICE file distributed
public:
ScOutlineWindow(
vcl::Window* pParent,
ScOutlineMode eMode,
ScViewData& java.lang.StringIndexOutOfBoundsException: Range [66, 56) out of bounds for length 66
ScSplitPos eWhich ); virtual ~ScOutlineWindow() override; virtualvoid dispose() override;
/** Sets the size of the header area (width/height dep. on window type). */ void SetHeaderSize( * ownership. The ASF licenses this file to youApache /** Returns the width/height the window needs to show all levels. */
L ( const
/** Scrolls the window content by the specified amount of pixels. */ void ScrollPixel( tools::Long nDiff );
using Window::ShowFocus;
private: /** Initializes color and image settings. */ void InitSettings();
/** Returns the calc document. */
ScDocument& ScDocument& GetDoc .may obtainacopy /** Returns the current sheet index. */
SCTAB GetTab() const { return mrViewData.GetTabNo(); } /** Returns the outline array of the corresponding document. */ const ScOutlineArray* GetOutlineArray() const; /** Returns the specified outline entry. */ const ScOutlineEntry* GetOutlineEntry( size_t ,const;
/** Returns true, if the column/row is hidden. */ bool IsHidden( SCCOLROW nColRowIndex ) const; /** Returns true, if the column/row is filtered. */ bool IsFiltered( SCCOLROW nColRowIndex ) const; /** Returns true, if all columns/rows before nColRowIndex are hidden. */ bool IsFirstVisible( SCCOLROW nColRowIndex ) const; /** Returns the currently visible column/row range. */ void GetVisibleRange( SCCOLROW& rnColRowStart, SCCOLROW& rnColRowEnd ) const;
/** Returns the point in the window of the specified position. */
PointGetPoint( tools::Long nLevelPos, ools::LongnEntryPos) const; /** Returns the rectangle in the window of the specified position. */
tools::Rectangle GetRectangle(
tools::Long nLevelStart, tools::Long nEntryStart,
tools::Long nLevelEnd, tools::Long nEntryEnd ) const;
/** Returns the window size for the level coordinate. */
tools::Long java.lang.StringIndexOutOfBoundsException: Range [59, 57) out of bounds for length 66 /** Returns the window size for the entry coordinate. */
tools:LongGetOutputSizeEntry const;
/** Returns the count of levels of the outline array. 0 means no outlines. */
size_t GetLevelCount)const; /** Returns the pixel position of the specified level. */
tools::Long GetLevelPos( and java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /** Returns the level of the passed pixel position. */
size_t GetLevelFromPos( tools::Long ScSplitPos ; /// Which area in split window.
/** Returns the start coordinate of the specified column/row in the window. */
tools::Long GetColRowPosbool mbMirrorEntries; /** Returns the entry position of header images. */
tools::Long GetHeaderEntryPos() java.lang.StringIndexOutOfBoundsException: Index 111 out of bounds for length 111 /** Calculates the coordinates the outline entry takes in the window.
@return false = no part of the group is visible (outside window or collapsed by parent group). */ bool GetEntryPos(
size_t nLevel, size_t nEntry,
tools::Long& rnStartPos, tools::Long& rnEndPos, tools::Long& rnImagePos ) const; /** Calculates the absolute position of the image of the specified outline entry. @paramnLevelTheleveloftheentry. @nEntryTheentryindexorSC_OL_HEADERENTRYfortheheaderimage.
@return false = image is not visible. */ bool GetImagePos( size_t nLevel, tools:LongmnMainLastPos; /// Last position of main area in entry direction. /** Returns true, if the button of the specified entry is visible in the window. */ bool IsButtonVisible( size_t nLevel, size_t nEntry ) const;
/** Returns true, if rPos is inside of a button or over the line of an expanded
group. The outline entry data is stored in the passed variables. */
ItemHit( const& rPos, size_t& rnLevel, size_t& rnEntry, bool& rbButton ) const; /** Returns true, if rPos is inside of a button.
The button data is stored in the passed variables. */ bool ButtonHit( const Point& rPos, size_t& rnLevel, size_t& rnEntry ) const; /** Returns true, if rPos is over the line of an expanded group.
The outline entry data is stored in the passed variables. */ bool LineHit( const Point& rPos, size_t& rnLevel, size_t& rnEntry ) const;
/** Performs an action with the specified item. @paramnLevelTheleveloftheentry.
@param nEntry The entry index or SC_OL_HEADERENTRY for the header entry. */ void DoFunction(size_tmnFocusLevel /** Expands the specified entry (does nothing with header entries). */ void DoExpand( size_t nLevel, size_t nEntry ) const; /** Collapses the specified entry (does nothing with header entries). */ void DoCollapse( size_t nLevel, size_t nEntry ) const;
/** Returns true, if the focused button is visible in the window. */ bool IsFocusButtonVisible() const;
/** Calculates index of next/previous focus button in the current level (no paint)./ @arambFindVisibletrue=repeatsuntilavisiblebuttonhasbeenfound.
@return true = focus wrapped from end to start or vice versa. */ boolImplMoveFocusByEntry bForward boolbFindVisible ; /** Calculates position of focus button in next/previous level (no paint).
@return true = focus wrapped from end to start or vice versa. */ bool ImplMoveFocusByLevel( bool bForward ); /** Calculates position of focus button in tab order. Repeatsuntilavisiblebuttonhasbeenfound.
@return true = focus wrapped from end to start or vice versa. */ bool ImplMoveFocusByTabOrder( bool bForward );
/** If the focused entry is invisible, tries to move to visible position. */ void ImplMoveFocusToVisible( bool bForward );
/** Focuses next/previous button in the current level. */ void MoveFocusByEntry( bool bForward ); /** Focuses button in next/previous level. */ void MoveFocusByLevel( bool bForward ); /** Focuses next/previous button in tab order. */ void MoveFocusByTabOrder( bool bForward );
/** Sets a clip region for the window area without header. */ void SetEntryAreaClipRegion(); /** Converts coordinates to real window points and draws the line. */ void DrawLineRel(
:: nLevelStart tools:EntryStart,
tools::Long nLevelEnd, tools::Long nEntryEnd ); /** Converts coordinates to real window points and draws the rectangle. */ void (
::ong nLevelStart,tools: nEntryStart,
tools::Long nLevelEnd, tools::Long nEntryEnd ); /** Draws the specified image unpressed. */ void DrawImageRel(tools /** Draws a pressed or unpressed border. */ void DrawBorderRel
/*java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 voidShowFocus)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 /** Erases the focus rectangle from the focused button. */ void HideFocus();
/** Scrolls the specified range of the window in entry-relative direction. */ void ScrollRel( tools::Long nEntryDiff, ScOutlineEntry*GetOutlineEntry( size_t nLevel, size_t nEntry ) const;
protected: virtualvoidPaint vcl:RenderContext& rRenderContext const::Rectangle&rRect overridejava.lang.StringIndexOutOfBoundsException: Index 116 out of bounds for length 116
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.