<!-- clanlib header begin --> <HTML> <HEAD> <TITLE>CL_Component - ClanLib Game SDK</TITLE> <STYLE TYPE="text/css"><!-- HTML BODY { font-family: verdana, helvetica, sans-serif; font-size: 12px; } H1 { font-size: 22px; } H2 { font-size: 18px; } H3 { font-size: 16px; } H4 { font-size: 14px; } P { font-size: 12px; } LI { font-size: 12px; } --></STYLE> </HEAD> <body bgcolor=white text=black link=blue vlink=#800080> <center> <img src="http://clanlib.org/gfx/clanlib.png"> </center> <!-- clanlib header end --> <center> <p> <a href="http://clanlib.org/docs.html">Home</a> | <a href="classes.html">All Classes</a> | <a href="modules.html">Grouped Classes</a> | <a href="index.html">Index</a> | <a href="search.html">Search</a> </p> </center> <h1>Class CL_Component</h1> <p> Component base class. <a href="#description">More...</a></p> <p>Derived from: <i>none</i> <br> Derived by: <a href="CL_Button.html">CL_Button</a> <a href="CL_ComponentMoveHandler.html">CL_ComponentMoveHandler</a> <a href="CL_ComponentResizeHandler.html">CL_ComponentResizeHandler</a> <a href="CL_Frame.html">CL_Frame</a> <a href="CL_GUIManager.html">CL_GUIManager</a> <a href="CL_Image.html">CL_Image</a> <a href="CL_InputBox.html">CL_InputBox</a> <a href="CL_Label.html">CL_Label</a> <a href="CL_ListBox.html">CL_ListBox</a> <a href="CL_Menu.html">CL_Menu</a> <a href="CL_MenuItem.html">CL_MenuItem</a> <a href="CL_MenuNode.html">CL_MenuNode</a> <a href="CL_ProgressBar.html">CL_ProgressBar</a> <a href="CL_RichEdit.html">CL_RichEdit</a> <a href="CL_ScrollBar.html">CL_ScrollBar</a> <a href="CL_TreeItem.html">CL_TreeItem</a> <a href="CL_TreeView.html">CL_TreeView</a> <a href="CL_Window.html">CL_Window</a> <br>Group: GUI (Framework)</p> <p> #include <ClanLib/gui.h> <p> <table border=0 width=100%> </table> <p><b>Construction:</b></p> <table border=0 width=100%> <tr><td width=30% valign=top><p><a href="CL_Component__CL_Component.html">CL_Component</a></p></td><td valign=top><p> Component Constructor</p></td></tr></table> <p><b>Attributes:</b></p> <table border=0 width=100%> <tr><td width=30% valign=top><p><a href="CL_Component__get_client_area.html">get_client_area</a></p></td><td valign=top><p> Returns the client area of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_parent.html">get_parent</a></p></td><td valign=top><p> Returns the parent component, or NULL if none.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_root_parent.html">get_root_parent</a></p></td><td valign=top><p> Returns the root parent.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_gui_manager.html">get_gui_manager</a></p></td><td valign=top><p> Returns the GUI manager that this component is attached to, or NULL if none.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_style_manager.html">get_style_manager</a></p></td><td valign=top><p> Returns the style manager used by this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_width.html">get_width</a></p></td><td valign=top><p> Returns the width of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_height.html">get_height</a></p></td><td valign=top><p> Returns the height of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_screen_x.html">get_screen_x</a></p></td><td valign=top><p> Returns the components x position in screen coordinates.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_screen_y.html">get_screen_y</a></p></td><td valign=top><p> Returns the components y position in screen coordinates.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_client_x.html">get_client_x</a></p></td><td valign=top><p> Returns the components x position in client coordinates.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_client_y.html">get_client_y</a></p></td><td valign=top><p> Returns the components y position in client coordinates.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_screen_rect.html">get_screen_rect</a></p></td><td valign=top><p> Returns the components position in screen coordinates.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__client_to_screen.html">client_to_screen</a></p></td><td valign=top><p> Returns the rect with coordinates converted from client to screen</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__screen_to_client.html">screen_to_client</a></p></td><td valign=top><p> Returns the rect with coordinates converted from screen to client</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_position.html">get_position</a></p></td><td valign=top><p> Returns the position of this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_position_with_children.html">get_position_with_children</a></p></td><td valign=top><p> Returns the position of this component after extending the rect to fit all children as well</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_minimum_size.html">get_minimum_size</a></p></td><td valign=top><p> Get the minimum size of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_maximum_size.html">get_maximum_size</a></p></td><td valign=top><p> Get the maximum size of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_preferred_size.html">get_preferred_size</a></p></td><td valign=top><p> Get the preferred size of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_vertical_policy.html">get_vertical_policy</a></p></td><td valign=top><p> Returns the vertical size policy of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_horizontal_policy.html">get_horizontal_policy</a></p></td><td valign=top><p> Returns the horizontal size policy of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_layout.html">get_layout</a></p></td><td valign=top><p> returns the layout for this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_event_passing.html">get_event_passing</a></p></td><td valign=top><p> Returns true if event passing is enabled.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__has_child.html">has_child</a></p></td><td valign=top><p> Returns true if the passed component is a child of this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_children.html">get_children</a></p></td><td valign=top><p> Returns the list of child components.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_children_rect.html">get_children_rect</a></p></td><td valign=top><p> Returns the bounding rectangle of the component's children.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_component_at.html">get_component_at</a></p></td><td valign=top><p> Returns the component at (pos_x, pos_y).</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_focus.html">get_focus</a></p></td><td valign=top><p> Returns the component that currently has the focus.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__has_focus.html">has_focus</a></p></td><td valign=top><p> Returns true if component has the focus.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__is_focusable.html">is_focusable</a></p></td><td valign=top><p> Returns true if the component can be focused.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__has_mouse_over.html">has_mouse_over</a></p></td><td valign=top><p> Returns true if the mouse is currently highlighting the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__is_visible.html">is_visible</a></p></td><td valign=top><p> Returns true if component is visible.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__is_enabled.html">is_enabled</a></p></td><td valign=top><p> Returns true if component accepts user input.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__is_mouse_captured.html">is_mouse_captured</a></p></td><td valign=top><p> Returns true if component has mouse captured.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_tab_id.html">get_tab_id</a></p></td><td valign=top><p> Returns the tab id of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__get_style.html">get_style</a></p></td><td valign=top><p> Returns the component style.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__is_modal.html">is_modal</a></p></td><td valign=top><p> Returns true if component is in modal state.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__has_modal_parent.html">has_modal_parent</a></p></td><td valign=top><p> Returns true if component have parents which on top of gui_manager modal stack.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__is_topmost.html">is_topmost</a></p></td><td valign=top><p> Returns true if the topmost flag is set.</p></td></tr></table> <p><b>Operations:</b></p> <table border=0 width=100%> <tr><td width=30% valign=top><p><a href="CL_Component__set_tab_id.html">set_tab_id</a></p></td><td valign=top><p> Set the tab id of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_position.html">set_position</a></p></td><td valign=top><p> Sets the position (relative to its parent) and size of this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_size.html">set_size</a></p></td><td valign=top><p> Sets the size of this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_width.html">set_width</a></p></td><td valign=top><p> Changes the width of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_height.html">set_height</a></p></td><td valign=top><p> Changes the height of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_minimum_size.html">set_minimum_size</a></p></td><td valign=top><p> Set the minimum size of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_maximum_size.html">set_maximum_size</a></p></td><td valign=top><p> Set the maximum size of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_preferred_size.html">set_preferred_size</a></p></td><td valign=top><p> Set the preferred size of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_vertical_policy.html">set_vertical_policy</a></p></td><td valign=top><p> Set the vertical size policy of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_horizontal_policy.html">set_horizontal_policy</a></p></td><td valign=top><p> Set the horizontal size policy of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_layout.html">set_layout</a></p></td><td valign=top><p> Set the layout for this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_event_passing.html">set_event_passing</a></p></td><td valign=top><p> Enables/disables the event passing to parent.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_parent.html">set_parent</a></p></td><td valign=top><p> Sets the parent of this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_gui_manager.html">set_gui_manager</a></p></td><td valign=top><p> Sets the GUI manager this component is attached to.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__show.html">show</a></p></td><td valign=top><p> Changes the visibility flag.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__enable.html">enable</a></p></td><td valign=top><p> Enable/disable user input.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_focusable.html">set_focusable</a></p></td><td valign=top><p> Enable/disable the ability to focus component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_focus.html">set_focus</a></p></td><td valign=top><p> Give focus to this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__raise.html">raise</a></p></td><td valign=top><p> Raises this component to the top of the parent component's stack. </p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__lower.html">lower</a></p></td><td valign=top><p> Lowers this component to the bottom of the parent component's stack.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__capture_mouse.html">capture_mouse</a></p></td><td valign=top><p> Capture the mouse on the currently attached GUI manager. All mouse input will be directed to this component until release_mouse() is called.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__release_mouse.html">release_mouse</a></p></td><td valign=top><p> Releases the mouse capture.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__update.html">update</a></p></td><td valign=top><p> Asks the GUI to repaint itself.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__paint.html">paint</a></p></td><td valign=top><p> Calls sig_begin_paint(), then sig_paint(), and finally sig_end_paint().</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__run.html">run</a></p></td><td valign=top><p> Run the component as a modal component until quit() is called.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__quit.html">quit</a></p></td><td valign=top><p> Quit the modal loop of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__close.html">close</a></p></td><td valign=top><p> "Closes" this component. Hides and detaches component from parent.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__add_child.html">add_child</a></p></td><td valign=top><p> Adds the specified component as a children to this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__remove_child.html">remove_child</a></p></td><td valign=top><p> Removes the specified child from the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_style.html">set_style</a></p></td><td valign=top><p> Sets a component style to the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__find_preferred_size.html">find_preferred_size</a></p></td><td valign=top><p> Calculate a default size.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__find_tab_id.html">find_tab_id</a></p></td><td valign=top><p> Returns the component with the specified tab ID.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_client_area.html">set_client_area</a></p></td><td valign=top><p> Set the client area of the component. Not used by user - only by other components.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_topmost_flag.html">set_topmost_flag</a></p></td><td valign=top><p> Sets or clears the topmost flag.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__set_clipping.html">set_clipping</a></p></td><td valign=top><p> Enables automatic clipping when drawing component.</p></td></tr></table> <p><b>Signals:</b></p> <table border=0 width=100%> <tr><td width=30% valign=top><p><a href="CL_Component__sig_set_options.html">sig_set_options</a></p></td><td valign=top><p> Update component with a new set of component options.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_paint.html">sig_paint</a></p></td><td valign=top><p> Draws the component. Must be called in a begin_paint() / end_paint() session.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_begin_paint.html">sig_begin_paint</a></p></td><td valign=top><p> Called prior to component drawing. Sets up a cliprect and translocates coordinates accordingly to this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_paint_children.html">sig_paint_children</a></p></td><td valign=top><p> Called after component drawing, and draws all the children.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_end_paint.html">sig_end_paint</a></p></td><td valign=top><p> Cleans up when component drawing is finished (cleans up cliprects and translocation stuff).</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_input_down.html">sig_input_down</a></p></td><td valign=top><p> Called when any inputdevice button is pressed (keyboard, mouse, joystick, etc).</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_input_up.html">sig_input_up</a></p></td><td valign=top><p> Called when any inputdevice button is released (keyboard, mouse, joystick, etc)</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_key_down.html">sig_key_down</a></p></td><td valign=top><p> Called when a key is pressed on keyboard.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_key_up.html">sig_key_up</a></p></td><td valign=top><p> Called when a key is released on keyboard.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_mouse_down.html">sig_mouse_down</a></p></td><td valign=top><p> Called when a mousebutton is clicked. The CL_InputEvent contains the coordinates and which button was pressed</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_mouse_up.html">sig_mouse_up</a></p></td><td valign=top><p> Called when a mousebutton is released.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_mouse_dblclk.html">sig_mouse_dblclk</a></p></td><td valign=top><p> Called when a mousebutton is doubleclicked.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_mouse_move.html">sig_mouse_move</a></p></td><td valign=top><p> Called when the mouse is moved.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_mouse_enter.html">sig_mouse_enter</a></p></td><td valign=top><p> Called when mouse enters the component area.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_mouse_leave.html">sig_mouse_leave</a></p></td><td valign=top><p> Called when mouse leaves the component area.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_got_focus.html">sig_got_focus</a></p></td><td valign=top><p> Called when component gains focus.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_lost_focus.html">sig_lost_focus</a></p></td><td valign=top><p> Called when component lose focus.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_close.html">sig_close</a></p></td><td valign=top><p> Called when component is closed.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_resize.html">sig_resize</a></p></td><td valign=top><p> Called when component is resized. The two parameters are the OLD width and height of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_move.html">sig_move</a></p></td><td valign=top><p> Called when component is moved. The two parameters are the OLD positions of the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_child_before_add.html">sig_child_before_add</a></p></td><td valign=top><p> Called when a child component is about to be added to the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_child_add.html">sig_child_add</a></p></td><td valign=top><p> Called when a child component is added to the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_child_before_remove.html">sig_child_before_remove</a></p></td><td valign=top><p> Called when a child component is about to be removed from the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_child_remove.html">sig_child_remove</a></p></td><td valign=top><p> Called when a child component is removed from the component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_transform_coords.html">sig_transform_coords</a></p></td><td valign=top><p> Called when needing to convert parent coordinates into coordinates used by this component.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_get_minimum_size.html">sig_get_minimum_size</a></p></td><td valign=top><p> Called when needing to find the minimum size of the component. Normally used by the styles.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_get_maximum_size.html">sig_get_maximum_size</a></p></td><td valign=top><p> Called when needing to find the maximum size of the component. Normally used by the styles.</p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__sig_get_preferred_size.html">sig_get_preferred_size</a></p></td><td valign=top><p> Called when needing to find the preferred size of the component. Normally used by the styles.</p></td></tr></table> <p><b>Implementation:</b></p> <table border=0 width=100%> <tr><td width=30% valign=top><p><a href="CL_Component__impl.html">impl</a></p></td><td valign=top><p></p></td></tr><tr><td width=30% valign=top><p><a href="CL_Component__.html"></a></p></td><td valign=top><p></p></td></tr></table> <a name="#description"><p><b>Detailed description:</b></p> !group=GUI/Framework! !header=gui.h! <p>The component class is the base class for any component/widget/control (or whatever you call it :)) in the GUI system. It is responsible for painting the component, painting of any child components of it, and it receives the input for a component.</p> <!-- clanlib footer begin --> <center><br><br><font color="#a0a0a0"> Questions or comments, write to the <a href="http://clanlib.org/contact.html">ClanLib mailing list</a>. </font></center> </body> </html> <!-- clanlib footer end -->