56 if ( !
aText.isEmpty() )
93 _nWidth( nWidthPixel ),
94 _aTitle(
std::move( aTitle )),
97 double n =
static_cast<double>(
_nWidth);
120 double n =
static_cast<double>(
_nWidth);
135 "",
false ).
Draw( rDev );
148 Point( rPos.
X() + 2, rPos.
Y() + 2 ),
177 ,DragSourceHelper( this )
178 ,DropTargetHelper( this )
179 ,pHeaderBar( nullptr )
181 ,aMouseTimer(
"BrowserDataWin aMouseTimer")
189 ,bAutoSizeLastCol(false)
190 ,bResizeOnPaint( false )
191 ,bUpdateOnUnlock( false )
192 ,bInUpdateScrollbars( false )
193 ,bHadRecursion( false )
194 ,bCallingDropCallback( false )
197 ,m_nDragRowDividerLimit( 0 )
198 ,m_nDragRowDividerOffset( 0 )
215 DragSourceHelper::dispose();
216 DropTargetHelper::dispose();
254 if ( (rDCEvt.
GetType() == DataChangedEventType::SETTINGS) &&
255 (rDCEvt.
GetFlags() & AllSettingsFlags::STYLE) )
290 return static_cast<BrowseBox*
>(Window::GetParent());
298 sal_Int32 nRelRow = rPosPixel.
Y() < 0
301 sal_Int32 nRow = nRelRow < 0 ? -1 : nRelRow + pBox->
nTopRow;
312 nColX += pBox->
mvCols[ nCol ]->Width();
313 if ( nMouseX < nColX )
317 if ( nCol < pBox->mvCols.size() )
318 nColId = pBox->
mvCols[ nCol ]->GetId();
322 if ( nCol < pBox->mvCols.size() )
324 nColX -= pBox->
mvCols[ nCol ]->Width();
332 return BrowseEvent(
this, nRow, nCol, nColId, aFieldRect );
358 Point aEventPos( _rPosPixel );
369 if ( ( (rEvt.
GetCommand() == CommandEventId::Wheel) ||
370 (rEvt.
GetCommand() == CommandEventId::StartAutoScroll) ||
371 (rEvt.
GetCommand() == CommandEventId::AutoScroll) ) &&
400 if ( CommandEventId::StartDrag == rEvt.
GetCommand() )
409 if ( ! (
GetParent()->IsInteractiveRowHeightEnabled()
410 && ( _rEvent.
GetRow() >= 0 )
418 return ( nDividerDistance <= 4 );
452 ePointerStyle = PointerStyle::VSizeBar;
498 if ( ( nDragRowDividerCurrentPos % nDataRowHeight ) > nDataRowHeight / 2 )
499 nDragRowDividerCurrentPos += nDataRowHeight;
500 nDragRowDividerCurrentPos /= nDataRowHeight;
501 nDragRowDividerCurrentPos *= nDataRowHeight;
538 if ( nNewRowHeight <
GetParent()->QueryMinimumRowHeight() )
574 sal_Int32 nAbsRow, sal_uInt16 nColumn, sal_uInt16 nColumnId,
588 BrowseEvent( pWindow->CreateBrowseEvent( rEvt.GetPosPixel() ) )
594 sal_Int32 nAbsRow, sal_uInt16 nColumn, sal_uInt16 nColumnId,
597 BrowseEvent( pWindow, nAbsRow, nColumn, nColumnId, rRect )
604 ,
BrowseEvent( pWindow->CreateBrowseEvent( rEvt.maPosPixel ) )
611 ,
BrowseEvent( pWindow->CreateBrowseEvent( rEvt.maPosPixel ) )
649 Window::ImplInvalidate( pRegion, nFlags );
#define BROWSER_INVALIDID
const StyleSettings & GetStyleSettings() const
tools::Long GetDataRowHeight() const
virtual void Command(const CommandEvent &rEvt) override
virtual void MouseButtonDown(const MouseEvent &rEvt) override
BrowserDataWin & GetDataWindow() const
virtual tools::Long QueryMinimumRowHeight()
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt) override
VclPtr< ScrollAdaptor > pVScroll
virtual void ImplStartTracking()
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
sal_Int32 GetRowAtYPosPixel(tools::Long nY, bool bRelToBrowser=true) const
virtual void MouseButtonUp(const MouseEvent &rEvt) override
void DoPaintField(OutputDevice &rDev, const tools::Rectangle &rRect, sal_uInt16 nColumnId, BrowserColumnAccess) const
public version of PaintField, with selected access rights for the BrowserColumn
virtual void StartDrag(sal_Int8 _nAction, const Point &_rPosPixel) override
static const sal_uInt16 HandleColumnId
virtual void Resize() override
void SetDataRowHeight(tools::Long nPixel)
virtual void MouseMove(const MouseEvent &rEvt) override
void PaintData(vcl::Window const &rWin, vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
::std::vector< std::unique_ptr< BrowserColumn > > mvCols
virtual void ImplEndTracking()
virtual void RowHeightChanged()
called when the row height has been changed interactively
VclPtr< ScrollAdaptor > aHScroll
virtual bool IsRowSelected(sal_Int32 nRow) const override
BrowseEvent(vcl::Window *pWindow, sal_Int32 nAbsRow, sal_uInt16 nColumn, sal_uInt16 nColumnId, const tools::Rectangle &rRect)
sal_uInt16 GetColumnId() const
BrowserAcceptDropEvent(BrowserDataWin *pWin, const AcceptDropEvent &rEvt)
void SetWidth(sal_uLong nNewWidthPixel, const Fraction &rCurrentZoom)
BrowserColumn(sal_uInt16 nItemId, OUString aTitle, sal_uLong nWidthPixel, const Fraction &rCurrentZoom)
sal_uLong _nOriginalWidth
void ZoomChanged(const Fraction &rNewZoom)
void Draw(BrowseBox const &rBox, OutputDevice &rDev, const Point &rPos)
virtual void KeyInput(const KeyEvent &rEvt) override
void DoOutstandingInvalidations()
virtual ~BrowserDataWin() override
bool bCallingDropCallback
tools::Long m_nDragRowDividerLimit
BrowserDataWin(BrowseBox *pParent)
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
virtual void Tracking(const TrackingEvent &rTEvt) override
BrowseBox * GetParent() const
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
bool GetUpdateMode() const
virtual void RequestHelp(const HelpEvent &rHEvt) override
virtual void dispose() override
std::vector< tools::Rectangle > aInvalidRegion
virtual void MouseMove(const MouseEvent &rEvt) override
virtual void Command(const CommandEvent &rEvt) override
VclPtr< BrowserHeader > pHeaderBar
bool ImplRowDividerHitTest(const BrowserMouseEvent &_rEvent) const
virtual void StartDrag(sal_Int8 _nAction, const Point &_rPosPixel) override
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt) override
virtual void MouseButtonDown(const MouseEvent &rEvt) override
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
void StartRowDividerDrag(const Point &_rStartPos)
BrowseEvent CreateBrowseEvent(const Point &rPosPixel)
virtual void MouseButtonUp(const MouseEvent &rEvt) override
void SetUpdateMode(bool bMode)
tools::Long m_nDragRowDividerOffset
virtual void ImplInvalidate(const vcl::Region *pRegion, InvalidateFlags nFlags) override
BrowserExecuteDropEvent(BrowserDataWin *pWin, const ExecuteDropEvent &rEvt)
BrowserMouseEvent(BrowserDataWin *pWin, const MouseEvent &rEvt)
CommandEventId GetCommand() const
const Point & GetMousePosPixel() const
void * GetEventData() const
bool IsMouseEvent() const
virtual void dispose() override
DataChangedEventType GetType() const
AllSettingsFlags GetFlags() const
sal_Int32 GetNumerator() const
sal_Int32 GetDenominator() const
sal_uInt16 GetClicks() const
const Point & GetPosPixel() const
const vcl::Font & GetFont() const
void SetFont(const vcl::Font &rNewFont)
void DrawRect(const tools::Rectangle &rRect)
void DrawLine(const Point &rStartPt, const Point &rEndPt)
OUString GetEllipsisString(const OUString &rStr, tools::Long nMaxWidth, DrawTextFlags nStyle=DrawTextFlags::EndEllipsis) const
tools::Long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
void SetTextColor(const Color &rColor)
const Color & GetLineColor() const
const Color & GetTextColor() const
OutDevType GetOutDevType() const
void DrawText(const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
const AllSettings & GetSettings() const
const Color & GetFillColor() const
constexpr tools::Long Y() const
void setY(tools::Long nY)
tools::Long AdjustY(tools::Long nVertMove)
constexpr tools::Long X() const
constexpr tools::Long Width() const
const Color & GetWindowColor() const
const Color & GetShadowColor() const
const vcl::Font & GetFieldFont() const
const Color & GetWindowTextColor() const
const Color & GetLightColor() const
const Color & GetFaceColor() const
const Color & GetDisableColor() const
void SetTimeout(sal_uInt64 nTimeoutMs)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
virtual void Start(bool bStartTimer=true) override
bool IsTrackingEnded() const
bool IsTrackingCanceled() const
const MouseEvent & GetMouseEvent() const
reference_type * get() const
void SetTransparent(bool bTransparent)
bool IsTransparent() const
tools::Rectangle GetBoundRect() const
Point OutputToScreenPixel(const Point &rPos) const
void StartTracking(StartTrackingFlags nFlags=StartTrackingFlags::NONE)
virtual void RequestHelp(const HelpEvent &rHEvt)
bool HandleScrollCommand(const CommandEvent &rCmd, Scrollable *pHScrl, Scrollable *pVScrl)
void ApplyControlBackground(vcl::RenderContext &rRenderContext, const Color &rDefaultColor)
virtual void Command(const CommandEvent &rCEvt)
const AllSettings & GetSettings() const
virtual void KeyInput(const KeyEvent &rKEvt)
void ShowTracking(const tools::Rectangle &rRect, ShowTrackFlags nFlags=ShowTrackFlags::Small)
::OutputDevice const * GetOutDev() const
virtual Size GetSizePixel() const
Size GetOutputSizePixel() const
virtual void DataChanged(const DataChangedEvent &rDCEvt)
virtual void ImplInvalidate(const vcl::Region *pRegion, InvalidateFlags nFlags)
virtual void SetPointer(PointerStyle)
void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
void ApplyControlFont(vcl::RenderContext &rRenderContext, const vcl::Font &rDefaultFont)
void ApplyControlForeground(vcl::RenderContext &rRenderContext, const Color &rDefaultColor)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
void InitSettings_Impl(vcl::Window *pWin)
IMPL_LINK_NOARG(BrowserDataWin, RepeatedMouseMove, Timer *, void)
#define DBG_ASSERT(sCon, aError)
#define LINK(Instance, Class, Member)
access to selected methods, to be granted to the BrowserColumn
WinBits const WB_CLIPCHILDREN