FDOSTUI
FreeDOS Text User Interface
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
group Class Reference

container to hold a collection of widgets More...

#include <group.hpp>

Inheritance diagram for group:
Inheritance graph
[legend]

Public Member Functions

 group (int const i_pos_x, int const i_pos_y, unsigned int const i_len_x, unsigned int const i_len_y)
 constructor More...
 
virtual ~group ()
 destructor More...
 
virtual void set_damage (unsigned int const i_damage=DAMAGE_NONE)
 sets damage mask More...
 
virtual int add (widget *const i_widget)
 add child widget More...
 
virtual void draw () const
 draws it's child widgets More...
 
virtual enum event_response event_key_default (enum scancodes const i_scan)
 default scan code event handler More...
 
virtual enum event_response event_key (struct event_key const &i_event)
 handle key event More...
 
virtual enum event_response event_mouse (struct event_mouse const &i_event)
 handle mouse event More...
 
virtual void focus_enter ()
 handle entering focus More...
 
virtual void focus_leave ()
 handle leaving focus More...
 
void set_focus (widget &i_widget)
 set widget focus More...
 
- Public Member Functions inherited from widget
 widget (int const i_pos_x, int const i_pos_y, unsigned int const i_len_x, unsigned int const i_len_y)
 constructor More...
 
virtual ~widget ()
 destructor More...
 
virtual bool close (bool const i_shutting_down)
 called when widget is about to be destroyed More...
 
bool contains (int const i_pos_x, int const i_pos_y) const
 test if point is contained within the widget More...
 
bool contains (struct box const &i_box) const
 test if rectangular region is contained within the widget More...
 
void get_box (struct box &o_box) const
 gets the rectangular region this widget occupies More...
 
bool get_can_focus () const
 gets whether or not the widget can receive focus More...
 
bool get_enabled () const
 gets whether or not the widget is enabled More...
 
bool get_has_focus () const
 gets whether or not the widget has focus More...
 
group *const get_parent () const
 gets the parent widget More...
 
void * get_user_data () const
 gets user defined data pointer More...
 
bool get_visible () const
 gets whether or not the widget is visible More...
 
int get_pos_x () const
 gets the relative x position of the widget More...
 
int get_pos_y () const
 gets the relative y position of the widget More...
 
unsigned int get_len_x () const
 gets the horizontal length of the widget More...
 
unsigned int get_len_y () const
 gets the vertical length of the widget More...
 
virtual void move (int const i_pos_x, int const i_pos_y)
 move the widget to a new position More...
 
virtual void resize (unsigned int const i_len_x, unsigned int const i_len_y)
 resize the widget More...
 
void set_can_close (bool const i_can_close)
 set internal indicator if widget can be closed More...
 
void set_disabled ()
 disable the widget More...
 
void set_enabled ()
 enable the widget
 
void set_hidden ()
 hide the widget More...
 
virtual void set_parent (group *const i_parent)
 sets the parent group of the widget More...
 
void set_user_data (void *io_user_data)
 sets the user defined data pointer More...
 
void set_visible ()
 sets the widget as visible More...
 
void translate_screen (int *const o_pos_x, int *const o_pos_y) const
 translate a widgets relative coordinates to screen coordinates More...
 

Protected Attributes

widgetm_focused
 widget that has focus
 
size_t m_slot
 focused widget slot (index into array)
 
struct array m_array
 widget container
 
- Protected Attributes inherited from widget
unsigned int m_damage
 
unsigned int m_flags
 
struct box m_box
 
groupm_parent
 
void * m_user_data
 

Private Member Functions

 group (const group &)
 
groupoperator= (group const &)
 
void focus_next ()
 focuses next widget More...
 
void focus_previous ()
 focuses previous widget More...
 

Additional Inherited Members

- Public Types inherited from widget
enum  damage {
  DAMAGE_NONE = 0, DAMAGE_ALL = (1<<0), DAMAGE_LABEL = (1<<1), DAMAGE_VALUE = (1<<2),
  DAMAGE_SCROLL = (1<<3), DAMAGE_MOVED = (1<<4), DAMAGE_RESERVED1 = (1<<5), DAMAGE_RESERVED2 = (1<<6),
  DAMAGE_RESERVED3 = (1<<7)
}
 bit mask indicating what needs to be redrawn More...
 
- Protected Types inherited from widget
enum  flags {
  VISIBLE = (1 << 0), ENABLED = (1 << 1), CAN_FOCUS = (1 << 2), HAS_FOCUS = (1 << 3),
  CAN_CLOSE = (1 << 4)
}
 

Detailed Description

container to hold a collection of widgets

Constructor & Destructor Documentation

◆ group()

group::group ( int const  i_pos_x,
int const  i_pos_y,
unsigned int const  i_len_x,
unsigned int const  i_len_y 
)

constructor

Parameters
[in]i_pos_xx position to place widget
[in]i_pos_yy position to place widget
[in]i_len_xx length of widget
[in]i_len_yy length of widget
Returns
none

◆ ~group()

group::~group ( )
virtual

destructor

Returns
none

Member Function Documentation

◆ add()

int group::add ( widget *const  i_widget)
virtual

add child widget

Parameters
[in]i_widgetwidget to add
Returns
0 success
!0 failure

A widget can only belong to one group at a time. It is assumed, the widget has not been added to another group. The group takes ownership of the widget. It must have been allocated on the heap. Static widgets will not work. When the group destructs it will delete all child widgets.

Reimplemented in scroller.

◆ draw()

void group::draw ( ) const
virtual

draws it's child widgets

This method should not be called directly.

See also
widget::draw for details.

Implements widget.

Reimplemented in window, menu, and scroller.

◆ event_key()

enum event_response group::event_key ( struct event_key const &  i_event)
virtual

handle key event

Parameters
[in]i_eventkey event to handle
Returns
response how event was handled

Reimplemented from widget.

Reimplemented in menu, and scroller.

◆ event_key_default()

enum event_response group::event_key_default ( enum scancodes const  i_scan)
virtual

default scan code event handler

Parameters
[in]i_scanscan code to handle
Returns
response how event was handled

Reimplemented from widget.

◆ event_mouse()

enum event_response group::event_mouse ( struct event_mouse const &  i_event)
virtual

handle mouse event

Parameters
[in]i_eventmouse event to handle
Returns
response how event was handled

Reimplemented from widget.

Reimplemented in menu, and scroller.

◆ focus_enter()

void group::focus_enter ( )
virtual

handle entering focus

Returns
none

Reimplemented from widget.

Reimplemented in menu.

◆ focus_leave()

void group::focus_leave ( )
virtual

handle leaving focus

Returns
none

Reimplemented from widget.

◆ focus_next()

void group::focus_next ( )
private

focuses next widget

Returns
none

◆ focus_previous()

void group::focus_previous ( )
private

focuses previous widget

Returns
none

◆ set_damage()

void group::set_damage ( unsigned int const  i_damage = DAMAGE_NONE)
virtual

sets damage mask

Parameters
[in]i_damagedamage mask
Returns
none

Propogates the damage flags to child widgets

Reimplemented from widget.

◆ set_focus()

void group::set_focus ( widget i_widget)

set widget focus

Parameters
[in,out]widgetto set focus
Returns
none

i_widget should belong to group. Otherwise, nothing happens.


The documentation for this class was generated from the following files: