LibreOffice Module sc (master) 1
hdrcont.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <vcl/window.hxx>
23#include <vcl/timer.hxx>
24#include <types.hxx>
25
26#define HDR_SIZE_OPTIMUM 0xFFFF
27
28// Size of the sliders
29#define HDR_SLIDERSIZE 2
30
31class ScTabView;
32class SelectionEngine;
33
35{
36private:
44
45 bool bVertical; // Vertical = Row header
46
50
52
56
57 bool bDragging; // Resizing
63
65
67
68 tools::Long GetScrPos( SCCOLROW nEntryNo ) const;
69 SCCOLROW GetMousePos(const Point& rPos, bool& rBorder) const;
70 bool IsSelectionAllowed(SCCOLROW nPos) const;
71 void ShowDragHelp();
72 void HideDragHelp();
73
74 void DoPaint( SCCOLROW nStart, SCCOLROW nEnd );
75
76 DECL_LINK(ShowDragHelpHdl, Timer*, void);
77
78protected:
80
81 // Window overrides
82
83 virtual void Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect ) override;
84
85 virtual void MouseMove( const MouseEvent& rMEvt ) override;
86 virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
87 virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
88 virtual void Tracking( const TrackingEvent& rTEvt ) override;
89
90 virtual void RequestHelp( const HelpEvent& rHEvt ) override;
91
92 // new methods
93
94 virtual SCCOLROW GetPos() const = 0; // current position (Scrolling)
95 virtual sal_uInt16 GetEntrySize( SCCOLROW nEntryNo ) const = 0; // width / height (Pixel)
96 virtual OUString GetEntryText( SCCOLROW nEntryNo ) const = 0;
97
98 virtual SCCOLROW GetHiddenCount( SCCOLROW nEntryNo ) const;
99 virtual bool IsLayoutRTL() const;
100 virtual bool IsMirrored() const;
101
102 virtual void SetEntrySize( SCCOLROW nPos, sal_uInt16 nNewWidth ) = 0;
103 virtual void HideEntries( SCCOLROW nStart, SCCOLROW nEnd ) = 0;
104
105 virtual void SetMarking( bool bSet );
106 virtual void SelectWindow();
107 virtual bool IsDisabled() const;
108 virtual bool ResizeAllowed() const;
109 virtual OUString GetDragHelp( tools::Long nVal );
110
111 virtual void DrawInvert( tools::Long nDragPos );
112 virtual void Command( const CommandEvent& rCEvt ) override;
113 virtual void dispose() override;
114
115public:
116 ScHeaderControl( vcl::Window* pParent, SelectionEngine* pSelectionEngine,
117 SCCOLROW nNewSize, bool bNewVertical, ScTabView* pTab );
118 virtual ~ScHeaderControl() override;
119
120 void SetIgnoreMove(bool bSet) { bIgnoreMove = bSet; }
121
122 void StopMarking();
123
124 void SetMark( bool bNewSet, SCCOLROW nNewStart, SCCOLROW nNewEnd );
125
126 tools::Long GetWidth() const { return nWidth; }
129 void SetWidth( tools::Long nNew );
130 void GetMarkRange(SCCOLROW& rStart, SCCOLROW& rEnd) const;
131};
132
133/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual SCCOLROW GetHiddenCount(SCCOLROW nEntryNo) const
Definition: hdrcont.cxx:1069
virtual bool IsLayoutRTL() const
Definition: hdrcont.cxx:1080
void SetIgnoreMove(bool bSet)
Definition: hdrcont.hxx:120
void GetMarkRange(SCCOLROW &rStart, SCCOLROW &rEnd) const
Definition: hdrcont.cxx:1117
bool bIgnoreMove
Definition: hdrcont.hxx:64
vcl::Font aAutoFilterFont
Definition: hdrcont.hxx:41
virtual void RequestHelp(const HelpEvent &rHEvt) override
Definition: hdrcont.cxx:1058
virtual bool IsDisabled() const
Definition: hdrcont.cxx:1090
tools::Long GetBigWidth() const
Definition: hdrcont.hxx:128
ScTabView * pTabView
Definition: hdrcont.hxx:79
virtual SCCOLROW GetPos() const =0
void DoPaint(SCCOLROW nStart, SCCOLROW nEnd)
Definition: hdrcont.cxx:127
SCCOLROW nMarkEnd
Definition: hdrcont.hxx:54
tools::Long nDragStart
Definition: hdrcont.hxx:59
void ShowDragHelp()
Definition: hdrcont.cxx:1006
tools::Long GetSmallWidth() const
Definition: hdrcont.hxx:127
SelectionEngine * pSelEngine
Definition: hdrcont.hxx:37
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
Definition: hdrcont.cxx:704
virtual void Tracking(const TrackingEvent &rTEvt) override
Definition: hdrcont.cxx:914
void SetMark(bool bNewSet, SCCOLROW nNewStart, SCCOLROW nNewEnd)
Definition: hdrcont.cxx:146
tools::Long nBigWidth
Definition: hdrcont.hxx:49
vcl::Font aBoldFont
Definition: hdrcont.hxx:40
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
Definition: hdrcont.cxx:219
virtual void DrawInvert(tools::Long nDragPos)
Definition: hdrcont.cxx:1104
tools::Long GetWidth() const
Definition: hdrcont.hxx:126
virtual void SelectWindow()
Definition: hdrcont.cxx:1100
tools::Long nSmallWidth
Definition: hdrcont.hxx:48
tools::Long nDragPos
Definition: hdrcont.hxx:60
Timer aShowHelpTimer
Definition: hdrcont.hxx:38
ScHeaderControl(vcl::Window *pParent, SelectionEngine *pSelectionEngine, SCCOLROW nNewSize, bool bNewVertical, ScTabView *pTab)
Definition: hdrcont.cxx:50
void * nTipVisible
Definition: hdrcont.hxx:61
SCCOLROW nDragNo
Definition: hdrcont.hxx:58
bool IsSelectionAllowed(SCCOLROW nPos) const
Definition: hdrcont.cxx:665
SCCOLROW nMarkStart
Definition: hdrcont.hxx:53
DECL_LINK(ShowDragHelpHdl, Timer *, void)
void HideDragHelp()
Definition: hdrcont.cxx:1048
void SetWidth(tools::Long nNew)
Definition: hdrcont.cxx:109
virtual void MouseMove(const MouseEvent &rMEvt) override
Definition: hdrcont.cxx:860
virtual void HideEntries(SCCOLROW nStart, SCCOLROW nEnd)=0
virtual OUString GetDragHelp(tools::Long nVal)
Definition: hdrcont.cxx:1108
virtual void Command(const CommandEvent &rCEvt) override
Definition: hdrcont.cxx:927
bool bAutoFilterSet
Definition: hdrcont.hxx:43
virtual void dispose() override
Definition: hdrcont.cxx:103
virtual void MouseButtonUp(const MouseEvent &rMEvt) override
Definition: hdrcont.cxx:802
tools::Long nWidth
Definition: hdrcont.hxx:47
virtual bool IsMirrored() const
Definition: hdrcont.cxx:1085
virtual void SetEntrySize(SCCOLROW nPos, sal_uInt16 nNewWidth)=0
SCCOLROW nSize
Definition: hdrcont.hxx:51
virtual ~ScHeaderControl() override
Definition: hdrcont.cxx:123
virtual sal_uInt16 GetEntrySize(SCCOLROW nEntryNo) const =0
virtual bool ResizeAllowed() const
Definition: hdrcont.cxx:1095
virtual OUString GetEntryText(SCCOLROW nEntryNo) const =0
vcl::Font aNormFont
Definition: hdrcont.hxx:39
void StopMarking()
Definition: hdrcont.cxx:983
tools::Long GetScrPos(SCCOLROW nEntryNo) const
Definition: hdrcont.cxx:189
SCCOLROW GetMousePos(const Point &rPos, bool &rBorder) const
Definition: hdrcont.cxx:625
virtual void SetMarking(bool bSet)
Definition: hdrcont.cxx:1113
long Long
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
Definition: types.hxx:23