ifm::Panel Class Reference

Inheritance diagram for ifm::Panel:

ifm::Component

List of all members.


Detailed Description

A Panel is a component which contains a child Widget.

Panels are constructed with the ID of the child widget. If the ID does not exist at the time of construction, the Panel will be hidden. When a widget with the given ID is created, the Panel will automatically be shown and will contain the Widget as its child. If that widget is later destroyed, the Panel will automatically be hidden again.

Public Member Functions

virtual Size absolute_to_client (const Size &absolute) const
virtual Rect absolute_to_client (const Rect &absolute) const
void capture_mouse ()
virtual void child_created (const WidgetPtr &child)
virtual void child_destroyed ()
virtual Size client_to_absolute (const Size &client) const
virtual Rect client_to_absolute (const Rect &client) const
Point client_to_screen (const Point &client)
bool closeable () const
virtual bool drag_drop_sensitive (const Point &position, Component *&dragged_component) const
 Determines if the given point is sensitive to drag and drop operations.
virtual Rect get_background_rect () const
virtual Dimensions get_borders () const
virtual const ComponentListget_children () const
virtual Rect get_client_rect () const
Color get_color (int part) const
virtual Size get_desired_size () const
virtual Componentget_dock_target ()
Font get_font (int id) const
BitmapPtr get_image () const
virtual layout::Panelget_layout () const
InterfaceManagerget_manager () const
virtual Dimensions get_margins () const
virtual Size get_max_size () const
Size get_min_size () const
virtual std::string get_name () const
WidgetAdapter get_native_widget () const
Containerget_parent () const
virtual Rect get_rect () const
int get_type () const
void hide ()
bool is_active () const
virtual bool on_left_down (const MouseEventData &data)
 Called when the user has pressed the left mouse button over this Component.
virtual bool on_left_up (const MouseEventData &data)
 Called when the user has released the left mouse button over this Component.
virtual bool on_menu_select (int id)
 Called when an item from a menu opened by this component is selected.
virtual bool on_mouse_leave (const MouseEventData &data)
 Called when the user has moved the mouse out of this Component.
virtual bool on_mouse_move (const MouseEventData &data)
 Called when the user has moved the mouse over this Component.
 Panel (InterfaceManager &manager, const layout::Panel &data)
void refresh (const Rect &rect)
void refresh ()
void release_mouse ()
void remove_color (int part)
virtual void render (DeviceContext &dc)
Point screen_to_client (const Point &screen)
virtual void set_active (bool active)
void set_color (int part, const Color &color)
virtual void set_focus ()
virtual void set_min_size (const Size &size)
void set_name (const std::string &name)
virtual void set_parent (Container *parent)
void set_rect (const Rect &rect)
void show (bool show=true)
void show_menu (Menu *menu)
 Shows the given menu at the current mouse position.
virtual bool shown () const
virtual void undock ()
void update ()
 ~Panel ()

Static Public Member Functions

static bool child_of (Component *parent, Component *child)

Protected Member Functions

void connect_child_events ()
void create_widget ()
WidgetPtr find_child_widget ()
virtual void set_child_widget (const WidgetPtr &child)

Protected Attributes

bool m_active
 Whether we or one of our children currently has focus.
BitmapPtr m_bitmap
std::string m_bitmapName
 The name of the image to be displayed on tabs for this Panel.
Dimensions m_borders
 The border widths.
const WidgetID m_child_id
 The ID of the child widget.
WidgetAdapter m_child_widget
 The child widget.
ColorMap m_colors
 Our color database.
int m_flags
 A set of flags controling appearance or behavior.
InterfaceManagerm_manager
 The InterfaceManager managing this component.
Dimensions m_margins
 The margin widths.
std::string m_name
 The name of the component.
WidgetAdapter m_native_widget
 The native widget representing this component in the GUI.
Containerm_parent
 Out parent Container.
const component_type m_type
 The type of component. Used by the layout save/load feature.


Constructor & Destructor Documentation

ifm::Panel::Panel ( InterfaceManager manager,
const layout::Panel data 
)

ifm::Panel::~Panel (  ) 


Member Function Documentation

Size ifm::Component::absolute_to_client ( const Size absolute  )  const [virtual, inherited]

Rect ifm::Component::absolute_to_client ( const Rect absolute  )  const [virtual, inherited]

Converts the given rect from absolute coordinates to client coordinates. Decreases the rect by the size of the margins and borders.

Parameters:
asbolute The asbolute coordinates to convert
Returns:
The client coordinates

void ifm::Component::capture_mouse (  )  [inherited]

Captures the mouse so that all mouse inputs are sent to this Widget.

void ifm::Panel::child_created ( const WidgetPtr child  )  [virtual]

Called when our Child Widget is created.

Parameters:
child A WidgetPtr to the Child Widget

void ifm::Panel::child_destroyed (  )  [virtual]

Called when our Child Widget is destroyed.

bool ifm::Component::child_of ( Component parent,
Component child 
) [static, inherited]

Because it is useful to know if one Component is a child of another Container but you will most likely only have a Component pointer to the Container, this method is provided as an easy way to determine this information. If the parent Component is not actually a Container, then clearly the child Component is not actually a child of it. If it is a Container, its child hierarchy will be searched for the child Component.

Returns:
Whether a Component is the child of another Component.

Size ifm::Component::client_to_absolute ( const Size client  )  const [virtual, inherited]

Rect ifm::Component::client_to_absolute ( const Rect client  )  const [virtual, inherited]

Converts the given rect from client coordinates to absolute coordinates. Increases the rect by the size of the margins and borders.

Parameters:
client The client coordinates to convert
Returns:
The absolute coordinates.

Point ifm::Component::client_to_screen ( const Point client  )  [inherited]

Converts the given client coordinates to screen coordinates.

Parameters:
screen The client coordinates to convert
Returns:
Screen coordinates

bool ifm::Panel::closeable (  )  const

Returns:
Whether the user is allowed to close this Panel

void ifm::Panel::connect_child_events (  )  [protected]

Connects any event handlers to the child window.

Note:
Implemented by the gui toolkit layer.

void ifm::Component::create_widget (  )  [protected, inherited]

Creates the native widget for the component.

bool ifm::Component::drag_drop_sensitive ( const Point position,
Component *&  dragged_component 
) const [virtual, inherited]

Determines if the given point is sensitive to drag and drop operations.

Parameters:
position The position to test given in client coordinates.
dragged_component If the position is sensitive to drag and drop operations, the component that would be dragged is returned through this parameter.
Returns:
Whether the given position is sensitive to drag and drop operations.

Reimplemented in ifm::TabbedContainer.

WidgetPtr ifm::Panel::find_child_widget (  )  [protected]

Attempts to retrieve a WidgetPtr for our child_id. If no Widget exists with that ID, an empty pointer is returned.

Note:
Implemented by the gui toolkit layer.

Rect ifm::Component::get_background_rect (  )  const [virtual, inherited]

The background area is the area of the Component excluding borders.

Returns:
A Rect representing the background area of the Component.

Dimensions ifm::Component::get_borders (  )  const [virtual, inherited]

Returns:
The current border sizes.

const ComponentList & ifm::Component::get_children (  )  const [virtual, inherited]

Only Container derivatives actually have children, but it is useful to be able to access the children of a Container even if you only hold a Component pointer to that container.

Note:
The default implementation returns an empty list since generic Components don't have children.
Returns:
The children of this Component.

Reimplemented in ifm::Container.

Rect ifm::Component::get_client_rect (  )  const [virtual, inherited]

The client area is the area of the Component excluding margins and borders.

Returns:
A Rect representing the client area of the Component.

Color ifm::Component::get_color ( int  part  )  const [inherited]

The components local color database will be searched first, and if no color is found InterfaceManager::get_color is used.

Returns:
The color value to use for the given part when rendering this component.

Size ifm::Component::get_desired_size (  )  const [virtual, inherited]

Returns:
The desired size

Reimplemented in ifm::Container, and ifm::TabbedContainer.

Component * ifm::Panel::get_dock_target (  )  [virtual]

Returns:
The parent component.

Reimplemented from ifm::Component.

Font ifm::Component::get_font ( int  id  )  const [inherited]

Returns:
The Font used to render the given font id for this component.

BitmapPtr ifm::Panel::get_image (  )  const

layout::Panel * ifm::Panel::get_layout (  )  const [virtual]

Returns the layout object representing the current state of this Panel.

Implements ifm::Component.

InterfaceManager & ifm::Component::get_manager (  )  const [inherited]

Returns:
The InterfaceManager managing this component.

Dimensions ifm::Component::get_margins (  )  const [virtual, inherited]

Returns:
The current margin sizes.

Reimplemented in ifm::TabbedContainer.

Size ifm::Component::get_max_size (  )  const [virtual, inherited]

A value of 0 in a given direction means no maximum size.

Returns:
The maximum size.

Size ifm::Panel::get_min_size (  )  const [virtual]

Returns:
The minimum size of the Child Widget plus any borders and margins

Reimplemented from ifm::Component.

std::string ifm::Component::get_name (  )  const [virtual, inherited]

Returns:
The name of this component.

Reimplemented in ifm::TabbedContainer.

WidgetAdapter ifm::Component::get_native_widget (  )  const [inherited]

Returns:
The native widget representing this component.

Container * ifm::Component::get_parent (  )  const [inherited]

Returns:
The parent Container.

Rect ifm::Component::get_rect (  )  const [virtual, inherited]

Returns:
The size and position of this Component.

int ifm::Component::get_type (  )  const [inherited]

Returns:
The type of this component.

void ifm::Component::hide (  )  [inherited]

bool ifm::Component::is_active (  )  const [inherited]

Returns:
Whether or not the keyboard focus exists within this component or one of its children.

bool ifm::Component::on_left_down ( const MouseEventData data  )  [virtual, inherited]

Called when the user has pressed the left mouse button over this Component.

Parameters:
data Data about this event
Returns:
True if the event was processed, false otherwise.

Reimplemented in ifm::TabbedContainer.

bool ifm::Component::on_left_up ( const MouseEventData data  )  [virtual, inherited]

Called when the user has released the left mouse button over this Component.

Parameters:
data Data about this event
Returns:
True if the event was processed, false otherwise.

Reimplemented in ifm::TabbedContainer.

bool ifm::Component::on_menu_select ( int  id  )  [virtual, inherited]

Called when an item from a menu opened by this component is selected.

Parameters:
id The identifier of the menu item that was selected.
Returns:
True if the event was processed, false otherwise.

Reimplemented in ifm::TabbedContainer.

bool ifm::Component::on_mouse_leave ( const MouseEventData data  )  [virtual, inherited]

Called when the user has moved the mouse out of this Component.

Parameters:
data Data about this event
Returns:
True if the event was processed, false otherwise.

Reimplemented in ifm::TabbedContainer.

bool ifm::Component::on_mouse_move ( const MouseEventData data  )  [virtual, inherited]

Called when the user has moved the mouse over this Component.

Parameters:
data Data about this event
Returns:
True if the event was processed, false otherwise.

Reimplemented in ifm::TabbedContainer.

void ifm::Component::refresh ( const Rect rect  )  [inherited]

Refreshes an area of this component by rendering it.

void ifm::Component::refresh (  )  [inherited]

Refreshes the component by rerendering it. Does not refresh children.

void ifm::Component::release_mouse (  )  [inherited]

Releases the mouse capture.

void ifm::Component::remove_color ( int  part  )  [inherited]

Removes a color for the given part from this components local color database.

void ifm::Component::render ( DeviceContext dc  )  [virtual, inherited]

Render this component onto the given device context

Reimplemented in ifm::TabbedContainer.

Point ifm::Component::screen_to_client ( const Point screen  )  [inherited]

Converts the given screen coordinates to client coordinates.

Parameters:
screen The screen coordinates to convert
Returns:
Client coordinates

void ifm::Component::set_active ( bool  active  )  [virtual, inherited]

Called when this component or one of its children gains or loses focus. This function will call set_active on the parent component.

void ifm::Panel::set_child_widget ( const WidgetPtr child  )  [protected, virtual]

Takes ownership of the WidgetPtr by making it a child of the Panel and then show()ing the Panel to ensure it is visible.

Parameters:
child The child widget to own

void ifm::Component::set_color ( int  part,
const Color color 
) [inherited]

Sets a color for the given part in this components local color database.

void ifm::Panel::set_focus (  )  [virtual]

Sets focus to the child widget.

Reimplemented from ifm::Component.

void ifm::Component::set_min_size ( const Size size  )  [virtual, inherited]

Sets the minimum size.

void ifm::Component::set_name ( const std::string &  name  )  [inherited]

Sets the name of this component.

void ifm::Component::set_parent ( Container parent  )  [virtual, inherited]

Sets the parent Component for this Component. The act of changing the parent component must also change the parent of the native widget.

void ifm::Component::set_rect ( const Rect rect  )  [inherited]

Sets the size of this Component. Any children will be repositioned.

This method is not virtual because calling it will invoke the update() method, which is where components should perform their own special processing that needs to be done with their size and position changed.

void ifm::Panel::show ( bool  show = true  )  [virtual]

Shows or hides our Child Wdget.

Reimplemented from ifm::Component.

void ifm::Component::show_menu ( Menu menu  )  [inherited]

Shows the given menu at the current mouse position.

bool ifm::Component::shown (  )  const [virtual, inherited]

Returns:
Whether this component is shown or hidden.

void ifm::Component::undock (  )  [virtual, inherited]

Undock this component from its curent parent.

Note:
This operation may delete the parent.

Reimplemented in ifm::Container.

void ifm::Panel::update (  )  [virtual]

Updates the position of our Child Widget.

Reimplemented from ifm::Component.


Member Data Documentation

bool ifm::Component::m_active [protected, inherited]

Whether we or one of our children currently has focus.

std::string ifm::Panel::m_bitmapName [protected]

The name of the image to be displayed on tabs for this Panel.

Dimensions ifm::Component::m_borders [protected, inherited]

The border widths.

const WidgetID ifm::Panel::m_child_id [protected]

The ID of the child widget.

The child widget.

ColorMap ifm::Component::m_colors [protected, inherited]

Our color database.

int ifm::Panel::m_flags [protected]

A set of flags controling appearance or behavior.

The InterfaceManager managing this component.

Dimensions ifm::Component::m_margins [protected, inherited]

The margin widths.

std::string ifm::Component::m_name [protected, inherited]

The name of the component.

The native widget representing this component in the GUI.

Container* ifm::Component::m_parent [protected, inherited]

Out parent Container.

const component_type ifm::Component::m_type [protected, inherited]

The type of component. Used by the layout save/load feature.


doxygen Get IFM - Interface Management System at SourceForge.net. Fast, secure and Free Open Source software downloads