OpenTTD Source  20241108-master-g80f628063a
widget.cpp File Reference

Handling of the default/simple widgets. More...

#include "stdafx.h"
#include "core/backup_type.hpp"
#include "company_func.h"
#include "window_gui.h"
#include "viewport_func.h"
#include "zoom_func.h"
#include "strings_func.h"
#include "transparency.h"
#include "core/geometry_func.hpp"
#include "settings_type.h"
#include "querystring_gui.h"
#include "table/sprites.h"
#include "table/strings.h"
#include "table/string_colours.h"
#include "safeguards.h"

Go to the source code of this file.

Functions

static RectPadding ScaleGUITrad (const RectPadding &r)
 Scale a RectPadding to GUI zoom level. More...
 
static Dimension ScaleGUITrad (const Dimension &dim)
 Scale a Dimension to GUI zoom level. More...
 
Dimension GetScaledSpriteSize (SpriteID sprid)
 Scale sprite size for GUI. More...
 
void SetupWidgetDimensions ()
 Set up pre-scaled versions of Widget Dimensions.
 
static Point GetAlignedPosition (const Rect &r, const Dimension &d, StringAlignment align)
 Calculate x and y coordinates for an aligned object within a window. More...
 
static Point HandleScrollbarHittest (const Scrollbar *sb, int top, int bottom, bool horizontal)
 Compute the vertical position of the draggable part of scrollbar. More...
 
static void ScrollbarClickPositioning (Window *w, NWidgetScrollbar *sb, int x, int y, int mi, int ma)
 Compute new position of the scrollbar after a click and updates the window flags. More...
 
void ScrollbarClickHandler (Window *w, NWidgetCore *nw, int x, int y)
 Special handling for the scrollbar widget type. More...
 
WidgetID GetWidgetFromPos (const Window *w, int x, int y)
 Returns the index for the widget located at the given position relative to the window. More...
 
void DrawFrameRect (int left, int top, int right, int bottom, Colours colour, FrameFlags flags)
 Draw frame rectangle. More...
 
void DrawSpriteIgnorePadding (SpriteID img, PaletteID pal, const Rect &r, StringAlignment align)
 
static void DrawImageButtons (const Rect &r, WidgetType type, Colours colour, bool clicked, SpriteID img, StringAlignment align)
 Draw an image button. More...
 
static void DrawLabel (const Rect &r, WidgetType type, bool clicked, TextColour colour, StringID str, StringAlignment align, FontSize fs)
 Draw the label-part of a widget. More...
 
static void DrawText (const Rect &r, TextColour colour, StringID str, StringAlignment align, FontSize fs)
 Draw text. More...
 
static void DrawInset (const Rect &r, Colours colour, TextColour text_colour, StringID str, StringAlignment align, FontSize fs)
 Draw an inset widget. More...
 
static void DrawMatrix (const Rect &r, Colours colour, bool clicked, uint16_t data, uint resize_x, uint resize_y)
 Draw a matrix widget. More...
 
static void DrawVerticalScrollbar (const Rect &r, Colours colour, bool up_clicked, bool bar_dragged, bool down_clicked, const Scrollbar *scrollbar)
 Draw a vertical scrollbar. More...
 
static void DrawHorizontalScrollbar (const Rect &r, Colours colour, bool left_clicked, bool bar_dragged, bool right_clicked, const Scrollbar *scrollbar)
 Draw a horizontal scrollbar. More...
 
static void DrawFrame (const Rect &r, Colours colour, TextColour text_colour, StringID str, StringAlignment align, FontSize fs)
 Draw a frame widget. More...
 
static void DrawShadeBox (const Rect &r, Colours colour, bool clicked)
 Draw a shade box. More...
 
static void DrawStickyBox (const Rect &r, Colours colour, bool clicked)
 Draw a sticky box. More...
 
static void DrawDefSizeBox (const Rect &r, Colours colour, bool clicked)
 Draw a defsize box. More...
 
static void DrawDebugBox (const Rect &r, Colours colour, bool clicked)
 Draw a NewGRF debug box. More...
 
static void DrawResizeBox (const Rect &r, Colours colour, bool at_left, bool clicked, bool bevel)
 Draw a resize box. More...
 
static void DrawCloseBox (const Rect &r, Colours colour)
 Draw a close box. More...
 
void DrawCaption (const Rect &r, Colours colour, Owner owner, TextColour text_colour, StringID str, StringAlignment align, FontSize fs)
 Draw a caption bar. More...
 
static void DrawButtonDropdown (const Rect &r, Colours colour, bool clicked_button, bool clicked_dropdown, StringID str, StringAlignment align)
 Draw a button with a dropdown (WWT_DROPDOWN and NWID_BUTTON_DROPDOWN). More...
 
static void DrawOutline (const Window *, const NWidgetBase *wid)
 
Rect ScrollRect (Rect r, const Scrollbar &sb, int resize_step)
 Apply 'scroll' to a rect to be drawn in. More...
 
static bool IsAttributeWidgetPartType (WidgetType tp)
 Test if (an NWidgetPart) WidgetType is an attribute widget part type. More...
 
static void ApplyNWidgetPartAttribute (const NWidgetPart &nwid, NWidgetBase *dest)
 Apply an attribute NWidgetPart to an NWidget. More...
 
static std::unique_ptr< NWidgetBaseMakeNWidget (const NWidgetPart &nwid)
 Make NWidget from an NWidgetPart. More...
 
static std::span< const NWidgetPart >::iterator MakeNWidget (std::span< const NWidgetPart >::iterator nwid_begin, std::span< const NWidgetPart >::iterator nwid_end, std::unique_ptr< NWidgetBase > &dest, bool &fill_dest)
 Construct a single nested widget in *dest from its parts. More...
 
bool IsContainerWidgetType (WidgetType tp)
 Test if WidgetType is a container widget. More...
 
static std::span< const NWidgetPart >::iterator MakeWidgetTree (std::span< const NWidgetPart >::iterator nwid_begin, std::span< const NWidgetPart >::iterator nwid_end, std::unique_ptr< NWidgetBase > &parent)
 Build a nested widget tree by recursively filling containers with nested widgets read from their parts. More...
 
std::unique_ptr< NWidgetBaseMakeNWidgets (std::span< const NWidgetPart > nwid_parts, std::unique_ptr< NWidgetBase > &&container)
 Construct a nested widget tree from an array of parts. More...
 
std::unique_ptr< NWidgetBaseMakeWindowNWidgetTree (std::span< const NWidgetPart > nwid_parts, NWidgetStacked **shade_select)
 Make a nested widget tree for a window from a parts array. More...
 
std::unique_ptr< NWidgetBaseMakeCompanyButtonRows (WidgetID widget_first, WidgetID widget_last, Colours button_colour, int max_length, StringID button_tooltip, bool resizable)
 Make a number of rows with button-like graphics, for enabling/disabling each company. More...
 

Variables

bool _draw_widget_outlines
 

Detailed Description

Handling of the default/simple widgets.

Definition in file widget.cpp.

Function Documentation

◆ ApplyNWidgetPartAttribute()

static void ApplyNWidgetPartAttribute ( const NWidgetPart nwid,
NWidgetBase dest 
)
static

Apply an attribute NWidgetPart to an NWidget.

Parameters
nwidAttribute NWidgetPart
destNWidget to apply attribute to.
Precondition
NWidgetPart must be an attribute NWidgetPart.

Definition at line 3004 of file widget.cpp.

References FS_BEGIN, NWidgetResizeBase::SetMinimalSize(), NWidgetResizeBase::SetResize(), NWidgetPartTextLines::size, NWidgetPart::NWidgetPartUnion::text_lines, NWidgetPart::type, WPT_MINSIZE, WPT_MINTEXTLINES, WPT_RESIZE, and NWidgetPart::NWidgetPartUnion::xy.

Referenced by MakeNWidget().

◆ DrawButtonDropdown()

static void DrawButtonDropdown ( const Rect r,
Colours  colour,
bool  clicked_button,
bool  clicked_dropdown,
StringID  str,
StringAlignment  align 
)
inlinestatic

Draw a button with a dropdown (WWT_DROPDOWN and NWID_BUTTON_DROPDOWN).

Parameters
rRectangle containing the widget.
colourBackground colour of the widget.
clicked_buttonThe button-part is clicked.
clicked_dropdownThe drop-down part is clicked.
strText of the button.
alignAlignment of the text within the dropdown.
Note
Magic constants are also used in NWidgetLeaf::ButtonHit.

Definition at line 709 of file widget.cpp.

References _current_text_dir, DrawFrameRect(), NWidgetLeaf::dropdown_dimension, FR_LOWERED, and TD_LTR.

◆ DrawCaption()

void DrawCaption ( const Rect r,
Colours  colour,
Owner  owner,
TextColour  text_colour,
StringID  str,
StringAlignment  align,
FontSize  fs 
)

Draw a caption bar.

Parameters
rRectangle of the bar.
colourColour of the window.
owner'Owner' of the window.
text_colourColour of the text.
strText to draw in the bar.
alignAlignment of the text.
fsFont size of the text.

Definition at line 679 of file widget.cpp.

References _company_colours, WidgetDimensions::bevel, DrawFrameRect(), FR_BORDERONLY, FR_DARKENED, FR_LOWERED, GetColourGradient(), GfxFillRect(), MAX_COMPANIES, WidgetDimensions::scaled, and Rect::Shrink().

◆ DrawCloseBox()

static void DrawCloseBox ( const Rect r,
Colours  colour 
)
inlinestatic

Draw a close box.

Parameters
rRectangle of the box.`
colourColour of the close box.

Definition at line 658 of file widget.cpp.

◆ DrawDebugBox()

static void DrawDebugBox ( const Rect r,
Colours  colour,
bool  clicked 
)
inlinestatic

Draw a NewGRF debug box.

Parameters
rRectangle of the box.
colourColour of the debug box.
clickedBox is lowered.

Definition at line 630 of file widget.cpp.

References DrawImageButtons(), and WWT_DEBUGBOX.

◆ DrawDefSizeBox()

static void DrawDefSizeBox ( const Rect r,
Colours  colour,
bool  clicked 
)
inlinestatic

Draw a defsize box.

Parameters
rRectangle of the box.
colourColour of the defsize box.
clickedBox is lowered.

Definition at line 619 of file widget.cpp.

References DrawImageButtons(), and WWT_DEFSIZEBOX.

◆ DrawFrame()

static void DrawFrame ( const Rect r,
Colours  colour,
TextColour  text_colour,
StringID  str,
StringAlignment  align,
FontSize  fs 
)
inlinestatic

Draw a frame widget.

Parameters
rRectangle of the frame.
colourColour of the frame.
text_colourColour of the text.
strText of the frame.
alignAlignment of the text in the frame.
fsFont size of the text.

Definition at line 544 of file widget.cpp.

References DrawString(), WidgetDimensions::frametext, GetColourGradient(), and WidgetDimensions::scaled.

◆ DrawFrameRect()

void DrawFrameRect ( int  left,
int  top,
int  right,
int  bottom,
Colours  colour,
FrameFlags  flags 
)

Draw frame rectangle.

Parameters
leftLeft edge of the frame
topTop edge of the frame
rightRight edge of the frame
bottomBottom edge of the frame
colourColour table to use.
See also
Colours
Parameters
flagsFlags controlling how to draw the frame.
See also
FrameFlags

Definition at line 281 of file widget.cpp.

Referenced by DrawButtonDropdown(), DrawCaption(), DrawImageButtons(), DrawInset(), DrawResizeBox(), and Window::DrawWidgets().

◆ DrawHorizontalScrollbar()

static void DrawHorizontalScrollbar ( const Rect r,
Colours  colour,
bool  left_clicked,
bool  bar_dragged,
bool  right_clicked,
const Scrollbar scrollbar 
)
inlinestatic

Draw a horizontal scrollbar.

Parameters
rRectangle of the scrollbar widget.
colourColour of the scrollbar widget.
left_clickedLeft-arrow is clicked.
bar_draggedBar is dragged.
right_clickedRight-arrow is clicked.
scrollbarScrollbar size, offset, and capacity information.

Definition at line 504 of file widget.cpp.

References DrawImageButtons(), NWID_HSCROLLBAR, and Rect::WithWidth().

◆ DrawImageButtons()

static void DrawImageButtons ( const Rect r,
WidgetType  type,
Colours  colour,
bool  clicked,
SpriteID  img,
StringAlignment  align 
)
inlinestatic

Draw an image button.

Parameters
rRectangle of the button.
typeWidget type (WWT_IMGBTN or WWT_IMGBTN_2).
colourColour of the button.
clickedButton is clicked.
imgSprite to draw.
alignAlignment of the sprite.

Definition at line 337 of file widget.cpp.

References DrawFrameRect(), and FR_LOWERED.

Referenced by DrawDebugBox(), DrawDefSizeBox(), DrawHorizontalScrollbar(), DrawShadeBox(), DrawStickyBox(), and DrawVerticalScrollbar().

◆ DrawInset()

static void DrawInset ( const Rect r,
Colours  colour,
TextColour  text_colour,
StringID  str,
StringAlignment  align,
FontSize  fs 
)
inlinestatic

Draw an inset widget.

Parameters
rRectangle of the background.
colourColour of the inset.
text_colourColour of the text.
strText to draw.
alignAlignment of the text.
fsFont size of the text.

Definition at line 389 of file widget.cpp.

References DrawFrameRect(), DrawString(), FR_DARKENED, FR_LOWERED, WidgetDimensions::inset, WidgetDimensions::scaled, and Rect::Shrink().

◆ DrawLabel()

static void DrawLabel ( const Rect r,
WidgetType  type,
bool  clicked,
TextColour  colour,
StringID  str,
StringAlignment  align,
FontSize  fs 
)
inlinestatic

Draw the label-part of a widget.

Parameters
rRectangle of the label background.
typeWidget type (WWT_TEXTBTN, WWT_TEXTBTN_2, or WWT_LABEL).
clickedLabel is clicked.
colourColour of the text.
strText to draw.
alignAlignment of the text.
fsFont size of the text.

Definition at line 356 of file widget.cpp.

◆ DrawMatrix()

static void DrawMatrix ( const Rect r,
Colours  colour,
bool  clicked,
uint16_t  data,
uint  resize_x,
uint  resize_y 
)
inlinestatic

Draw a matrix widget.

Parameters
rRectangle of the matrix background.
colourColour of the background.
clickedMatrix is rendered lowered.
dataData of the widget, number of rows and columns of the widget.
resize_xMatrix resize unit size.
resize_yMatrix resize unit size.

Definition at line 404 of file widget.cpp.

◆ DrawResizeBox()

static void DrawResizeBox ( const Rect r,
Colours  colour,
bool  at_left,
bool  clicked,
bool  bevel 
)
inlinestatic

Draw a resize box.

Parameters
rRectangle of the box.
colourColour of the resize box.
at_leftResize box is at left-side of the window,
clickedBox is lowered.
bevelDraw bevel iff set.

Definition at line 643 of file widget.cpp.

References DrawFrameRect(), and FR_LOWERED.

◆ DrawShadeBox()

static void DrawShadeBox ( const Rect r,
Colours  colour,
bool  clicked 
)
inlinestatic

Draw a shade box.

Parameters
rRectangle of the box.
colourColour of the shade box.
clickedBox is lowered.

Definition at line 597 of file widget.cpp.

References DrawImageButtons(), and WWT_SHADEBOX.

◆ DrawStickyBox()

static void DrawStickyBox ( const Rect r,
Colours  colour,
bool  clicked 
)
inlinestatic

Draw a sticky box.

Parameters
rRectangle of the box.
colourColour of the sticky box.
clickedBox is lowered.

Definition at line 608 of file widget.cpp.

References DrawImageButtons(), and WWT_STICKYBOX.

◆ DrawText()

static void DrawText ( const Rect r,
TextColour  colour,
StringID  str,
StringAlignment  align,
FontSize  fs 
)
inlinestatic

Draw text.

Parameters
rRectangle of the background.
colourColour of the text.
strText to draw.
alignAlignment of the text.
fsFont size of the text.

Definition at line 373 of file widget.cpp.

References DrawString(), GetAlignedPosition(), and GetStringBoundingBox().

◆ DrawVerticalScrollbar()

static void DrawVerticalScrollbar ( const Rect r,
Colours  colour,
bool  up_clicked,
bool  bar_dragged,
bool  down_clicked,
const Scrollbar scrollbar 
)
inlinestatic

Draw a vertical scrollbar.

Parameters
rRectangle of the scrollbar widget.
colourColour of the scrollbar widget.
up_clickedUp-arrow is clicked.
bar_draggedBar is dragged.
down_clickedDown-arrow is clicked.
scrollbarScrollbar size, offset, and capacity information.

Definition at line 464 of file widget.cpp.

References DrawImageButtons(), NWID_VSCROLLBAR, and Rect::WithHeight().

◆ GetAlignedPosition()

static Point GetAlignedPosition ( const Rect r,
const Dimension d,
StringAlignment  align 
)
inlinestatic

Calculate x and y coordinates for an aligned object within a window.

Parameters
rRectangle of the widget to be drawn in.
dDimension of the object to be drawn.
alignAlignment of the object.
Returns
A point containing the position at which to draw.

Definition at line 106 of file widget.cpp.

References _current_text_dir, CenterBounds(), SA_FORCE, SA_HOR_CENTER, SA_HOR_MASK, SA_LEFT, SA_RIGHT, and TD_RTL.

Referenced by DrawText().

◆ GetScaledSpriteSize()

Dimension GetScaledSpriteSize ( SpriteID  sprid)

Scale sprite size for GUI.

Offset is ignored.

Definition at line 54 of file widget.cpp.

References GetSpriteSize(), ScaleGUITrad(), and ZOOM_LVL_NORMAL.

Referenced by DrawEngineList(), DepotWindow::OnInit(), NetworkContentListWindow::OnInit(), NetworkGameWindow::OnInit(), and NWidgetLeaf::SetupSmallestSize().

◆ GetWidgetFromPos()

WidgetID GetWidgetFromPos ( const Window w,
int  x,
int  y 
)

Returns the index for the widget located at the given position relative to the window.

It includes all widget-corner pixels as well.

Parameters
*wWindow to look inside
xThe Window client X coordinate
yThe Window client y coordinate
Returns
A widget index, or -1 if no widget was found.

Definition at line 266 of file widget.cpp.

Referenced by DropdownWindow::GetDropDownItem(), and Window::OnDropdownClose().

◆ HandleScrollbarHittest()

static Point HandleScrollbarHittest ( const Scrollbar sb,
int  top,
int  bottom,
bool  horizontal 
)
static

Compute the vertical position of the draggable part of scrollbar.

Parameters
sbScrollbar list data
topTop position of the scrollbar (top position of the up-button)
bottomBottom position of the scrollbar (bottom position of the down-button)
horizontalWhether the scrollbar is horizontal or not
Returns
A Point, with x containing the top coordinate of the draggable part, and y containing the bottom coordinate of the draggable part

Definition at line 135 of file widget.cpp.

References _current_text_dir, Scrollbar::GetCapacity(), Scrollbar::GetCount(), Scrollbar::GetPosition(), and TD_RTL.

◆ IsAttributeWidgetPartType()

static bool IsAttributeWidgetPartType ( WidgetType  tp)
static

Test if (an NWidgetPart) WidgetType is an attribute widget part type.

Parameters
tpWidgetType to test.
Returns
True iff WidgetType is an attribute widget.

Definition at line 2993 of file widget.cpp.

References WPT_ATTRIBUTE_BEGIN, and WPT_ATTRIBUTE_END.

Referenced by MakeNWidget().

◆ IsContainerWidgetType()

bool IsContainerWidgetType ( WidgetType  tp)

Test if WidgetType is a container widget.

Parameters
tpWidgetType to test.
Returns
True iff WidgetType is a container widget.

Definition at line 3182 of file widget.cpp.

References NWID_HORIZONTAL, NWID_HORIZONTAL_LTR, NWID_MATRIX, NWID_SELECTION, NWID_VERTICAL, WWT_FRAME, WWT_INSET, and WWT_PANEL.

Referenced by IsNWidgetTreeClosed(), MakeNWidget(), and MakeWidgetTree().

◆ MakeCompanyButtonRows()

std::unique_ptr<NWidgetBase> MakeCompanyButtonRows ( WidgetID  widget_first,
WidgetID  widget_last,
Colours  button_colour,
int  max_length,
StringID  button_tooltip,
bool  resizable 
)

Make a number of rows with button-like graphics, for enabling/disabling each company.

Parameters
widget_firstThe first widget index to use.
widget_lastThe last widget index to use.
colourThe colour in which to draw the button.
max_lengthMaximal number of company buttons in one row.
button_tooltipThe tooltip-string of every button.
resizableWhether the rows are resizable.
Returns
Panel with rows of company buttons.

Definition at line 3300 of file widget.cpp.

References GetSpriteSize().

Referenced by MakeCompanyButtonRowsGraphGUI(), MakeCompanyButtonRowsLinkGraphGUI(), and MakeCompanyButtonRowsScriptDebug().

◆ MakeNWidget() [1/2]

◆ MakeNWidget() [2/2]

static std::span<const NWidgetPart>::iterator MakeNWidget ( std::span< const NWidgetPart >::iterator  nwid_begin,
std::span< const NWidgetPart >::iterator  nwid_end,
std::unique_ptr< NWidgetBase > &  dest,
bool &  fill_dest 
)
static

Construct a single nested widget in *dest from its parts.

Construct a NWidgetBase object from a NWidget function, and apply all attributes that follow it, until encountering a EndContainer, another NWidget, or the end of the parts array.

Parameters
nwid_beginIterator to beginning of nested widget parts.
nwid_endIterator to ending of nested widget parts.
[out]destAddress of pointer to use for returning the composed widget.
[out]fill_destFill the composed widget with child widgets.
Returns
Iterator to remaining nested widget parts.

Definition at line 3155 of file widget.cpp.

References ApplyNWidgetPartAttribute(), IsAttributeWidgetPartType(), IsContainerWidgetType(), MakeNWidget(), and WPT_ENDCONTAINER.

◆ MakeWidgetTree()

static std::span<const NWidgetPart>::iterator MakeWidgetTree ( std::span< const NWidgetPart >::iterator  nwid_begin,
std::span< const NWidgetPart >::iterator  nwid_end,
std::unique_ptr< NWidgetBase > &  parent 
)
static

Build a nested widget tree by recursively filling containers with nested widgets read from their parts.

Parameters
nwid_beginIterator to beginning of nested widget parts.
nwid_endIterator to ending of nested widget parts.
parentPointer or container to use for storing the child widgets (*parent == nullptr or *parent == container or background widget).
Returns
Iterator to remaining nested widget parts.

Definition at line 3195 of file widget.cpp.

References NWidgetBackground::Add(), NWidgetContainer::Add(), IsContainerWidgetType(), MakeNWidget(), and WPT_ENDCONTAINER.

Referenced by MakeNWidgets(), and MakeWindowNWidgetTree().

◆ ScaleGUITrad() [1/2]

static Dimension ScaleGUITrad ( const Dimension dim)
inlinestatic

Scale a Dimension to GUI zoom level.

Parameters
dDimension at ZOOM_BASE (traditional "normal" interface size).
Returns
Dimension at #ZOOM_LVL_GUI (current interface size).

Definition at line 45 of file widget.cpp.

◆ ScaleGUITrad() [2/2]

static RectPadding ScaleGUITrad ( const RectPadding r)
inlinestatic

Scale a RectPadding to GUI zoom level.

Parameters
rRectPadding at ZOOM_BASE (traditional "normal" interface size).
Returns
RectPadding at #ZOOM_LVL_GUI (current interface size).

Definition at line 35 of file widget.cpp.

Referenced by NWidgetLeaf::Draw(), GetScaledSpriteSize(), NWidgetResizeBase::SetMinimalSize(), NWidgetResizeBase::SetMinimalTextLines(), NWidgetPIPContainer::SetPIP(), and SetupWidgetDimensions().

◆ ScrollbarClickHandler()

void ScrollbarClickHandler ( Window w,
NWidgetCore nw,
int  x,
int  y 
)

Special handling for the scrollbar widget type.

Handles the special scrolling buttons and other scrolling.

Parameters
wWindow on which a scroll was performed.
nwPointer to the scrollbar widget.
xThe X coordinate of the mouse click.
yThe Y coordinate of the mouse click.

Definition at line 242 of file widget.cpp.

◆ ScrollbarClickPositioning()

static void ScrollbarClickPositioning ( Window w,
NWidgetScrollbar sb,
int  x,
int  y,
int  mi,
int  ma 
)
static

Compute new position of the scrollbar after a click and updates the window flags.

Parameters
wWindow on which a scroll was performed.
sbScrollbar
miMinimum coordinate of the scroll bar.
maMaximum coordinate of the scroll bar.
xThe X coordinate of the mouse click.
yThe Y coordinate of the mouse click.

Definition at line 178 of file widget.cpp.

◆ ScrollRect()

Rect ScrollRect ( Rect  r,
const Scrollbar sb,
int  resize_step 
)

Apply 'scroll' to a rect to be drawn in.

Parameters
rRect to be 'scrolled'.
sbThe scrollbar affecting the scroll.
resize_stepResize step of the widget/scrollbar (1 if the scrollbar is pixel-based.)
Returns
Scrolled rect.

Definition at line 2411 of file widget.cpp.

References _current_text_dir, Scrollbar::GetCount(), Scrollbar::GetPosition(), Scrollbar::IsVertical(), and TD_RTL.