widget_type.h File Reference

Definitions about widgets. More...

#include "core/alloc_type.hpp"
#include "core/bitmath_func.hpp"
#include "strings_type.h"
#include "gfx_type.h"
#include "window_type.h"

Go to the source code of this file.

Data Structures

class  NWidgetBase
 Baseclass for nested widgets. More...
class  NWidgetResizeBase
 Base class for a resizable nested widget. More...
class  NWidgetCore
 Base class for a 'real' widget. More...
class  NWidgetContainer
 Baseclass for container widgets. More...
class  NWidgetStacked
 Stacked widgets, widgets all occupying the same space in the window. More...
class  NWidgetPIPContainer
 Container with pre/inter/post child space. More...
class  NWidgetHorizontal
 Horizontal container. More...
class  NWidgetHorizontalLTR
 Horizontal container that doesn't change the direction of the widgets for RTL languages. More...
class  NWidgetVertical
 Vertical container. More...
class  NWidgetSpacer
 Spacer widget. More...
class  NWidgetBackground
 Nested widget with a child. More...
class  NWidgetViewport
 Nested widget to display a viewport in a window. More...
class  NWidgetLeaf
 Leaf widget. More...
struct  NWidgetPartDataTip
 Widget part for storing data and tooltip information. More...
struct  NWidgetPartWidget
 Widget part for storing basic widget information. More...
struct  NWidgetPartPaddings
 Widget part for storing padding. More...
struct  NWidgetPartPIP
 Widget part for storing pre/inter/post spaces. More...
struct  NWidgetPartTextLines
 Widget part for storing minimal text line data. More...
struct  NWidgetPart
 Partial widget specification to allow NWidgets to be written nested. More...

Typedefs

typedef NWidgetBaseNWidgetFunctionType (int *biggest_index)
 Pointer to function returning a nested widget.

Enumerations

enum  { WIDGET_LIST_END = -1 }
enum  MatrixWidgetValues { MAT_COL_START = 0, MAT_COL_BITS = 8, MAT_ROW_START = 8, MAT_ROW_BITS = 8 }
 Bits of the WWT_MATRIX widget data. More...
enum  ArrowWidgetValues { AWV_DECREASE, AWV_INCREASE, AWV_LEFT, AWV_RIGHT }
 Values for an arrow widget. More...
enum  WidgetType {
  WWT_EMPTY, WWT_PANEL, WWT_INSET, WWT_IMGBTN,
  WWT_IMGBTN_2, WWT_TEXTBTN, WWT_TEXTBTN_2, WWT_LABEL,
  WWT_TEXT, WWT_MATRIX, WWT_SCROLLBAR, WWT_FRAME,
  WWT_CAPTION, WWT_HSCROLLBAR, WWT_SHADEBOX, WWT_STICKYBOX,
  WWT_SCROLL2BAR, WWT_RESIZEBOX, WWT_CLOSEBOX, WWT_DROPDOWN,
  WWT_EDITBOX, WWT_LAST, NWID_HORIZONTAL, NWID_HORIZONTAL_LTR,
  NWID_VERTICAL, NWID_SPACER, NWID_SELECTION, NWID_VIEWPORT,
  NWID_BUTTON_DROPDOWN, NWID_BUTTON_ARROW, WPT_RESIZE, WPT_MINSIZE,
  WPT_MINTEXTLINES, WPT_FILL, WPT_DATATIP, WPT_PADDING,
  WPT_PIPSPACE, WPT_ENDCONTAINER, WPT_FUNCTION, WWT_MASK = 0x7F,
  WWB_PUSHBUTTON = 1 << 7, WWT_PUSHBTN = WWT_PANEL | WWB_PUSHBUTTON, WWT_PUSHTXTBTN = WWT_TEXTBTN | WWB_PUSHBUTTON, WWT_PUSHIMGBTN = WWT_IMGBTN | WWB_PUSHBUTTON
}
 Window widget types, nested widget types, and nested widget part types. More...
enum  SizingType { ST_SMALLEST, ST_RESIZE }
 Different forms of sizing nested widgets, using NWidgetBase::AssignSizePosition(). More...
enum  NWidgetDisplay {
  NDB_LOWERED = 0, NDB_DISABLED = 1, NDB_NO_TRANSPARENCY = 2, NDB_SHADE_GREY = 3,
  NDB_SHADE_DIMMED = 4, NDB_DROPDOWN_ACTIVE = 5, ND_LOWERED = 1 << NDB_LOWERED, ND_DISABLED = 1 << NDB_DISABLED,
  ND_NO_TRANSPARENCY = 1 << NDB_NO_TRANSPARENCY, ND_SHADE_GREY = 1 << NDB_SHADE_GREY, ND_SHADE_DIMMED = 1 << NDB_SHADE_DIMMED, ND_DROPDOWN_ACTIVE = 1 << NDB_DROPDOWN_ACTIVE
}
 Nested widget flags that affect display and interaction withe 'real' widgets. More...
enum  StackedZeroSizePlanes { SZSP_VERTICAL = INT_MAX / 2, SZSP_HORIZONTAL, SZSP_NONE, SZSP_BEGIN = SZSP_VERTICAL }
 Display planes with zero size for NWidgetStacked. More...
enum  NWidContainerFlags { NCB_EQUALSIZE = 0, NC_NONE = 0, NC_EQUALSIZE = 1 << NCB_EQUALSIZE }
 Nested widget container flags,. More...

Functions

 DECLARE_ENUM_AS_BIT_SET (NWidgetDisplay)
 DECLARE_ENUM_AS_BIT_SET (NWidContainerFlags)
static NWidgetPart SetResize (int16 dx, int16 dy)
 Widget part function for setting the resize step.
static NWidgetPart SetMinimalSize (int16 x, int16 y)
 Widget part function for setting the minimal size.
static NWidgetPart SetMinimalTextLines (uint8 lines, uint8 spacing, FontSize size=FS_NORMAL)
 Widget part function for setting the minimal text lines.
static NWidgetPart SetFill (uint fill_x, uint fill_y)
 Widget part function for setting filling.
static NWidgetPart EndContainer ()
 Widget part function for denoting the end of a container (horizontal, vertical, WWT_FRAME, WWT_INSET, or WWT_PANEL).
static NWidgetPart SetDataTip (uint16 data, StringID tip)
 Widget part function for setting the data and tooltip.
static NWidgetPart SetPadding (uint8 top, uint8 right, uint8 bottom, uint8 left)
 Widget part function for setting additional space around a widget.
static NWidgetPart SetPadding (uint8 padding)
 Widget part function for setting a padding.
static NWidgetPart SetPIP (uint8 pre, uint8 inter, uint8 post)
 Widget part function for setting a pre/inter/post spaces.
static NWidgetPart NWidget (WidgetType tp, Colours col, int16 idx=-1)
 Widget part function for starting a new 'real' widget.
static NWidgetPart NWidget (WidgetType tp, NWidContainerFlags cont_flags=NC_NONE)
 Widget part function for starting a new horizontal container, vertical container, or spacer widget.
static NWidgetPart NWidgetFunction (NWidgetFunctionType *func_ptr)
 Obtain a nested widget (sub)tree from an external source.
NWidgetContainerMakeNWidgets (const NWidgetPart *parts, int count, int *biggest_index, NWidgetContainer *container)
 Construct a nested widget tree from an array of parts.
NWidgetContainerMakeWindowNWidgetTree (const NWidgetPart *parts, int count, int *biggest_index, NWidgetStacked **shade_select)
 Make a nested widget tree for a window from a parts array.


Detailed Description

Definitions about widgets.

Definition in file widget_type.h.


Typedef Documentation

typedef NWidgetBase* NWidgetFunctionType(int *biggest_index)

Pointer to function returning a nested widget.

Parameters:
biggest_index Pointer to storage for collecting the biggest index used in the nested widget.
Returns:
Nested widget (tree).
Postcondition:
*biggest_index must contain the value of the biggest index in the returned tree.

Definition at line 574 of file widget_type.h.


Enumeration Type Documentation

anonymous enum

Enumerator:
WIDGET_LIST_END  indicate the end of widgets' list for vararg functions

Definition at line 21 of file widget_type.h.

Values for an arrow widget.

Enumerator:
AWV_DECREASE  Arrow to the left or in case of RTL to the right.
AWV_INCREASE  Arrow to the right or in case of RTL to the left.
AWV_LEFT  Force the arrow to the left.
AWV_RIGHT  Force the arrow to the right.

Definition at line 37 of file widget_type.h.

Bits of the WWT_MATRIX widget data.

Enumerator:
MAT_COL_START  Lowest bit of the number of columns.
MAT_COL_BITS  Number of bits for the number of columns in the matrix.
MAT_ROW_START  Lowest bit of the number of rows.
MAT_ROW_BITS  Number of bits for the number of rows in the matrix.

Definition at line 26 of file widget_type.h.

Nested widget container flags,.

Enumerator:
NCB_EQUALSIZE  Containers should keep all their (resizing) children equally large.
NC_NONE  All flags cleared.
NC_EQUALSIZE  Value of the NCB_EQUALSIZE flag.

Definition at line 355 of file widget_type.h.

Nested widget flags that affect display and interaction withe 'real' widgets.

Enumerator:
NDB_LOWERED  Widget is lowered (pressed down) bit.
NDB_DISABLED  Widget is disabled (greyed out) bit.
NDB_NO_TRANSPARENCY  Viewport is never transparent.
NDB_SHADE_GREY  Shade viewport to grey-scale.
NDB_SHADE_DIMMED  Display dimmed colours in the viewport.
NDB_DROPDOWN_ACTIVE  Dropdown menu of the button dropdown widget is active.

See also:
NWID_BUTTON_DRPDOWN
ND_LOWERED  Bit value of the lowered flag.
ND_DISABLED  Bit value of the disabled flag.
ND_NO_TRANSPARENCY  Bit value of the 'no transparency' flag.
ND_SHADE_GREY  Bit value of the 'shade to grey' flag.
ND_SHADE_DIMMED  Bit value of the 'dimmed colours' flag.
ND_DROPDOWN_ACTIVE  Bit value of the 'dropdown active' flag.

Definition at line 220 of file widget_type.h.

enum SizingType

Different forms of sizing nested widgets, using NWidgetBase::AssignSizePosition().

Enumerator:
ST_SMALLEST  Initialize nested widget tree to smallest size. Also updates current_x and current_y.
ST_RESIZE  Resize the nested widget tree.

Definition at line 107 of file widget_type.h.

Display planes with zero size for NWidgetStacked.

Enumerator:
SZSP_VERTICAL  Display plane with zero size horizontally, and filling and resizing vertically.
SZSP_HORIZONTAL  Display plane with zero size vertically, and filling and resizing horizontally.
SZSP_NONE  Display plane with zero size in both directions (none filling and resizing).
SZSP_BEGIN  First zero-size plane.

Definition at line 318 of file widget_type.h.

enum WidgetType

Window widget types, nested widget types, and nested widget part types.

Enumerator:
WWT_EMPTY  Empty widget, place holder to reserve space in widget array.
WWT_PANEL  Simple depressed panel.
WWT_INSET  Pressed (inset) panel, most commonly used as combo box _text_ area.
WWT_IMGBTN  Button with image.
WWT_IMGBTN_2  Button with diff image when clicked.
WWT_TEXTBTN  Button with text.
WWT_TEXTBTN_2  Button with diff text when clicked.
WWT_LABEL  Centered label.
WWT_TEXT  Pure simple text.
WWT_MATRIX  Grid of rows and columns.

See also:
MatrixWidgetValues
WWT_SCROLLBAR  Vertical scrollbar.
WWT_FRAME  Frame.
WWT_CAPTION  Window caption (window title between closebox and stickybox).
WWT_HSCROLLBAR  Horizontal scrollbar.
WWT_SHADEBOX  Shade box (at top-right of a window, between caption and stickybox).
WWT_STICKYBOX  Sticky box (normally at top-right of a window).
WWT_SCROLL2BAR  2nd vertical scrollbar
WWT_RESIZEBOX  Resize box (normally at bottom-right of a window).
WWT_CLOSEBOX  Close box (at top-left of a window).
WWT_DROPDOWN  Drop down list.
WWT_EDITBOX  a textbox for typing
WWT_LAST  Last Item. use WIDGETS_END to fill up padding!!
NWID_HORIZONTAL  Horizontal container.
NWID_HORIZONTAL_LTR  Horizontal container that doesn't change the order of the widgets for RTL languages.
NWID_VERTICAL  Vertical container.
NWID_SPACER  Invisible widget that takes some space.
NWID_SELECTION  Stacked widgets, only one visible at a time (eg in a panel with tabs).
NWID_VIEWPORT  Nested widget containing a viewport.
NWID_BUTTON_DROPDOWN  Button with a drop-down.
NWID_BUTTON_ARROW  Button with an arrow.
WPT_RESIZE  Widget part for specifying resizing.
WPT_MINSIZE  Widget part for specifying minimal size.
WPT_MINTEXTLINES  Widget part for specifying minimal number of lines of text.
WPT_FILL  Widget part for specifying fill.
WPT_DATATIP  Widget part for specifying data and tooltip.
WPT_PADDING  Widget part for specifying a padding.
WPT_PIPSPACE  Widget part for specifying pre/inter/post space for containers.
WPT_ENDCONTAINER  Widget part to denote end of a container.
WPT_FUNCTION  Widget part for calling a user function.

Definition at line 47 of file widget_type.h.


Generated on Thu Feb 4 17:20:48 2010 for OpenTTD by  doxygen 1.5.6