widget.cpp File Reference

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

#include "stdafx.h"
#include "company_func.h"
#include "gfx_func.h"
#include "window_gui.h"
#include "table/sprites.h"
#include "table/strings.h"

Go to the source code of this file.

Functions

static Point HandleScrollbarHittest (const Scrollbar *sb, int top, int bottom)
 Compute the vertical position of the draggable part of scrollbar.
void ScrollbarClickHandler (Window *w, const Widget *wi, int x, int y)
 Special handling for the scrollbar widget type.
int GetWidgetFromPos (const Window *w, int x, int y)
 Returns the index for the widget located at the given position relative to the window.
void DrawFrameRect (int left, int top, int right, int bottom, Colours colour, FrameFlags flags)
 Draw frame rectangle.
static void ResizeWidgets (Window *w, byte a, byte b)
static void ResizeWidgets (Window *w, byte a, byte b, byte c)
void ResizeButtons (Window *w, byte left, byte right)
 Evenly distribute some widgets when resizing horizontally (often a button row) When only two arguments are given, the widgets are presumed to be on a line and only the ends are given.
void ResizeWindowForWidget (Window *w, uint widget, int delta_x, int delta_y)
 Resize a widget and shuffle other widgets around to fit.

Variables

static const char * UPARROW = "\xEE\x8A\xA0"
static const char * DOWNARROW = "\xEE\x8A\xAA"


Detailed Description

Handling of the default/simple widgets.

Definition in file widget.cpp.


Function Documentation

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

Draw frame rectangle.

Parameters:
left Left edge of the frame
top Top edge of the frame
right Right edge of the frame
bottom Bottom edge of the frame
colour Colour table to use.
See also:
_colour_gradient
Parameters:
flags Flags controlling how to draw the frame.
See also:
FrameFlags

Definition at line 169 of file widget.cpp.

References _colour_gradient, FILLRECT_RECOLOUR, FR_BORDERONLY, FR_DARKENED, FR_LOWERED, FR_TRANSPARENT, and GfxFillRect().

Referenced by DrawArrowButtons(), SettingEntry::DrawSetting(), Window::DrawWidgets(), and AISettingsWindow::OnPaint().

int 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:
*w Window to look inside
x The Window client X coordinate
y The Window client y coordinate
Returns:
A widget index, or -1 if no widget was found.

Definition at line 140 of file widget.cpp.

References Window::IsWidgetHidden(), Widget::left, Widget::top, Widget::type, Window::widget, Window::widget_count, WWT_EMPTY, and WWT_FRAME.

Referenced by DispatchLeftClickEvent(), and DispatchRightClickEvent().

static Point HandleScrollbarHittest ( const Scrollbar sb,
int  top,
int  bottom 
) [static]

Compute the vertical position of the draggable part of scrollbar.

Parameters:
sb Scrollbar list data
top Top position of the scrollbar (top position of the up-button)
bottom Bottom position of the scrollbar (bottom position of the down-button)
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 24 of file widget.cpp.

References Scrollbar::cap, Scrollbar::count, Scrollbar::pos, Point::x, and Point::y.

Referenced by Window::DrawWidgets(), and ScrollbarClickHandler().

void ResizeButtons ( Window w,
byte  left,
byte  right 
)

Evenly distribute some widgets when resizing horizontally (often a button row) When only two arguments are given, the widgets are presumed to be on a line and only the ends are given.

Parameters:
w Window to modify
left The leftmost widget to resize
right The rightmost widget to resize. Since right side of it is used, remember to set it to RESIZE_RIGHT

Definition at line 547 of file widget.cpp.

References Widget::left, ResizeButtons(), Widget::right, and Window::widget.

Referenced by StationViewWindow::OnResize(), NewGRFWindow::OnResize(), ReplaceVehicleWindow::OnResize(), AISettingsWindow::OnResize(), AIListWindow::OnResize(), and ResizeButtons().

void ResizeWindowForWidget ( Window w,
uint  widget,
int  delta_x,
int  delta_y 
)

void ScrollbarClickHandler ( Window w,
const Widget wi,
int  x,
int  y 
)

Special handling for the scrollbar widget type.

Handles the special scrolling buttons and other scrolling.

Parameters:
w Window on which a scroll was performed.
wi Pointer to the scrollbar widget.
x The X coordinate of the mouse click.
y The Y coordinate of the mouse click.

Definition at line 55 of file widget.cpp.

References _left_button_clicked, Widget::bottom, Scrollbar::cap, Scrollbar::count, Window::flags4, HandleScrollbarHittest(), Window::hscroll, Widget::left, max(), min(), CursorVars::pos, Scrollbar::pos, Widget::right, Window::SetDirty(), Widget::top, Widget::type, Window::vscroll, Window::vscroll2, WF_SCROLL_DOWN, WF_SCROLL_MIDDLE, WF_SCROLL_UP, WWT_HSCROLLBAR, WWT_SCROLL2BAR, WWT_SCROLLBAR, Point::x, and Point::y.

Referenced by DispatchLeftClickEvent().


Generated on Sun Sep 13 08:19:39 2009 for OpenTTD by  doxygen 1.5.6