Components are each associated with a native widget which represents the component in the interface.
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 Size | client_to_absolute (const Size &client) const |
virtual Rect | client_to_absolute (const Rect &client) const |
Point | client_to_screen (const Point &client) |
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 ComponentList & | get_children () const |
virtual Rect | get_client_rect () const |
Color | get_color (int part) const |
virtual Size | get_desired_size () const |
virtual Component * | get_dock_target () |
Font | get_font (int id) const |
virtual layout::Component * | get_layout () const =0 |
InterfaceManager & | get_manager () const |
virtual Dimensions | get_margins () const |
virtual Size | get_max_size () const |
virtual Size | get_min_size () const |
virtual std::string | get_name () const |
WidgetAdapter | get_native_widget () const |
Container * | get_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. | |
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) |
virtual 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 () |
virtual void | update () |
virtual | ~Component () |
Static Public Member Functions | |
static bool | child_of (Component *parent, Component *child) |
Protected Member Functions | |
Component (InterfaceManager &manager, component_type type, const WidgetPtr &widget) | |
Component (InterfaceManager &manager, const layout::Component &data, component_type type) | |
void | create_widget () |
Protected Attributes | |
bool | m_active |
Whether we or one of our children currently has focus. | |
Dimensions | m_borders |
The border widths. | |
ColorMap | m_colors |
Our color database. | |
InterfaceManager & | m_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. | |
Container * | m_parent |
Out parent Container. | |
const component_type | m_type |
The type of component. Used by the layout save/load feature. | |
Private Member Functions | |
void | deref () |
void | ref () |
friend | void::intrusive_ptr_add_ref (ifm::Component *component) |
friend | void::intrusive_ptr_release (ifm::Component *component) |
Private Attributes | |
int | m_ref |
Tracks reference count. |
ifm::Component::Component | ( | InterfaceManager & | manager, | |
const layout::Component & | data, | |||
component_type | type | |||
) | [protected] |
Constructs the component and creates the native widget. The native widget's parent will initially be the managed window.
ifm::Component::~Component | ( | ) | [virtual] |
ifm::Component::Component | ( | InterfaceManager & | manager, | |
component_type | type, | |||
const WidgetPtr & | widget | |||
) | [protected] |
Construct the component using an already created native widget.
Converts the given rect from absolute coordinates to client coordinates. Decreases the rect by the size of the margins and borders.
asbolute | The asbolute coordinates to convert |
void ifm::Component::capture_mouse | ( | ) |
Captures the mouse so that all mouse inputs are sent to this Widget.
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.
Converts the given rect from client coordinates to absolute coordinates. Increases the rect by the size of the margins and borders.
client | The client coordinates to convert |
Converts the given client coordinates to screen coordinates.
screen | The client coordinates to convert |
void ifm::Component::create_widget | ( | ) | [protected] |
Creates the native widget for the component.
void ifm::Component::deref | ( | ) | [private] |
Releases a reference. When the reference count is 0, this Component will be deleted.
bool ifm::Component::drag_drop_sensitive | ( | const Point & | position, | |
Component *& | dragged_component | |||
) | const [virtual] |
Determines if the given point is sensitive to drag and drop operations.
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. |
Reimplemented in ifm::TabbedContainer.
Rect ifm::Component::get_background_rect | ( | ) | const [virtual] |
Dimensions ifm::Component::get_borders | ( | ) | const [virtual] |
const ComponentList & ifm::Component::get_children | ( | ) | const [virtual] |
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.
Reimplemented in ifm::Container.
Rect ifm::Component::get_client_rect | ( | ) | const [virtual] |
Color ifm::Component::get_color | ( | int | part | ) | const |
The components local color database will be searched first, and if no color is found InterfaceManager::get_color is used.
Size ifm::Component::get_desired_size | ( | ) | const [virtual] |
Component * ifm::Component::get_dock_target | ( | ) | [virtual] |
When the user moves the mouse during a drag operation and hovers over a Component, this function is used to determine what component to display the DockTargets for. Docking will be performed relative to that component.
Reimplemented in ifm::Panel.
Font ifm::Component::get_font | ( | int | id | ) | const |
virtual layout::Component* ifm::Component::get_layout | ( | ) | const [pure virtual] |
Implemented in ifm::Container, ifm::Panel, and ifm::TabbedContainer.
InterfaceManager & ifm::Component::get_manager | ( | ) | const |
Dimensions ifm::Component::get_margins | ( | ) | const [virtual] |
Size ifm::Component::get_max_size | ( | ) | const [virtual] |
A value of 0 in a given direction means no maximum size.
Size ifm::Component::get_min_size | ( | ) | const [virtual] |
std::string ifm::Component::get_name | ( | ) | const [virtual] |
WidgetAdapter ifm::Component::get_native_widget | ( | ) | const |
int ifm::Component::get_type | ( | ) | const |
void ifm::Component::hide | ( | ) |
bool ifm::Component::is_active | ( | ) | const |
bool ifm::Component::on_left_down | ( | const MouseEventData & | data | ) | [virtual] |
Called when the user has pressed the left mouse button over this Component.
data | Data about this event |
Reimplemented in ifm::TabbedContainer.
bool ifm::Component::on_left_up | ( | const MouseEventData & | data | ) | [virtual] |
Called when the user has released the left mouse button over this Component.
data | Data about this event |
Reimplemented in ifm::TabbedContainer.
bool ifm::Component::on_menu_select | ( | int | id | ) | [virtual] |
Called when an item from a menu opened by this component is selected.
id | The identifier of the menu item that was selected. |
Reimplemented in ifm::TabbedContainer.
bool ifm::Component::on_mouse_leave | ( | const MouseEventData & | data | ) | [virtual] |
Called when the user has moved the mouse out of this Component.
data | Data about this event |
Reimplemented in ifm::TabbedContainer.
bool ifm::Component::on_mouse_move | ( | const MouseEventData & | data | ) | [virtual] |
Called when the user has moved the mouse over this Component.
data | Data about this event |
Reimplemented in ifm::TabbedContainer.
void ifm::Component::ref | ( | ) | [private] |
Adds a reference.
void ifm::Component::refresh | ( | const Rect & | rect | ) |
Refreshes an area of this component by rendering it.
void ifm::Component::refresh | ( | ) |
Refreshes the component by rerendering it. Does not refresh children.
void ifm::Component::release_mouse | ( | ) |
Releases the mouse capture.
void ifm::Component::remove_color | ( | int | part | ) |
Removes a color for the given part from this components local color database.
void ifm::Component::render | ( | DeviceContext & | dc | ) | [virtual] |
Render this component onto the given device context
Reimplemented in ifm::TabbedContainer.
Converts the given screen coordinates to client coordinates.
screen | The screen coordinates to convert |
void ifm::Component::set_active | ( | bool | active | ) | [virtual] |
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::Component::set_color | ( | int | part, | |
const Color & | color | |||
) |
Sets a color for the given part in this components local color database.
void ifm::Component::set_focus | ( | ) | [virtual] |
Sets the focus to this Component's native widget.
Reimplemented in ifm::Panel, and ifm::TabbedContainer.
void ifm::Component::set_min_size | ( | const Size & | size | ) | [virtual] |
Sets the minimum size.
void ifm::Component::set_name | ( | const std::string & | name | ) |
Sets the name of this component.
void ifm::Component::set_parent | ( | Container * | parent | ) | [virtual] |
void ifm::Component::set_rect | ( | const Rect & | rect | ) |
void ifm::Component::show | ( | bool | show = true |
) | [virtual] |
Shows or Hides this component. When showing a component, all parents will also be shown to ensure that the component is visible.
Reimplemented in ifm::Panel.
void ifm::Component::show_menu | ( | Menu * | menu | ) |
Shows the given menu at the current mouse position.
bool ifm::Component::shown | ( | ) | const [virtual] |
void ifm::Component::undock | ( | ) | [virtual] |
Undock this component from its curent parent.
Reimplemented in ifm::Container.
void ifm::Component::update | ( | ) | [virtual] |
Updates the component, recalculating the positions of child components and performing other required tasks.
Reimplemented in ifm::Container, ifm::Panel, and ifm::TabbedContainer.
ifm::Component::void::intrusive_ptr_add_ref | ( | ifm::Component * | component | ) | [private] |
ifm::Component::void::intrusive_ptr_release | ( | ifm::Component * | component | ) | [private] |
bool ifm::Component::m_active [protected] |
Whether we or one of our children currently has focus.
Dimensions ifm::Component::m_borders [protected] |
The border widths.
ColorMap ifm::Component::m_colors [protected] |
Our color database.
InterfaceManager& ifm::Component::m_manager [protected] |
The InterfaceManager managing this component.
Dimensions ifm::Component::m_margins [protected] |
The margin widths.
std::string ifm::Component::m_name [protected] |
The name of the component.
WidgetAdapter ifm::Component::m_native_widget [protected] |
The native widget representing this component in the GUI.
Container* ifm::Component::m_parent [protected] |
Out parent Container.
int ifm::Component::m_ref [private] |
Tracks reference count.
const component_type ifm::Component::m_type [protected] |
The type of component. Used by the layout save/load feature.