CL_Label *Options::create_combobox_label(CL_ComboBox *combo, const char *text) { CL_Label *component = new CL_Label(this); CL_Rect combo_geometry = combo->get_geometry(); component->set_geometry(CL_Rect(combo_geometry.left, combo_geometry.top - 20, CL_Size(256, 17))); component->set_text(text); return component; }
CL_Label *Options::create_slider_label(CL_Slider *slider) { CL_Label *component = new CL_Label(this); CL_Rect slider_geometry = slider->get_geometry(); component->set_geometry(CL_Rect(slider_geometry.right + 4, slider_geometry.top - 2, CL_Size(256, 17))); component->set_text("##################"); return component; }
void MessageBoxImpl::createLabel() { static const int MARGIN = 5; CL_Rect clientArea = m_window->get_client_area(); m_label = new CL_Label(m_window); m_label->set_geometry( CL_Rect( clientArea.left + MARGIN, clientArea.top + MARGIN, clientArea.right - MARGIN, clientArea.bottom - MARGIN ) ); m_label->set_alignment(CL_Label::align_center); m_label->set_text("no message set"); }
void on_button_clicked(CL_PushButton *button) { label->set_text("You clicked " + button->get_text()); }
void CL_GUIXMLLoaderVersion_1_0::load(CL_DomElement &element, CL_GUIComponent *parent) { CL_DomElement e = element.get_first_child().to_element(); dialog_width = 0; dialog_height = 0; while (e.is_element()) { CL_String tag = e.get_tag_name(); CL_GUIComponent *new_comp = 0; if (tag == "button") { CL_PushButton *co = new CL_PushButton(parent); if (e.has_attribute("text")) co->set_text(e.get_attribute("text")); new_comp = co; } else if (tag == "checkbox") { CL_CheckBox *co = new CL_CheckBox(parent); if (e.has_attribute("text")) co->set_text(e.get_attribute("text")); new_comp = co; } else if (tag == "radiobutton") { CL_RadioButton *co = new CL_RadioButton(parent); if (e.has_attribute("text")) co->set_text(e.get_attribute("text")); if (e.has_attribute("group")) co->set_group_name(e.get_attribute("group")); new_comp = co; } else if (tag == "label") { CL_Label *co = new CL_Label(parent); if (e.has_attribute("text")) co->set_text(e.get_attribute("text")); new_comp = co; } else if (tag == "toolbar") { CL_ToolBar *co = new CL_ToolBar(parent); new_comp = co; } else if (tag == "progressbar") { CL_ProgressBar *co = new CL_ProgressBar(parent); new_comp = co; } else if (tag == "lineedit") { CL_LineEdit *co = new CL_LineEdit(parent); if (e.has_attribute("text")) co->set_text(e.get_attribute("text")); new_comp = co; } else if (tag == "slider") { CL_Slider *co = new CL_Slider(parent); co->set_min(CL_StringHelp::text_to_int(e.get_attribute("min"))); co->set_max(CL_StringHelp::text_to_int(e.get_attribute("max"))); co->set_tick_count(CL_StringHelp::text_to_int(e.get_attribute("ticks"))); co->set_page_step(CL_StringHelp::text_to_int(e.get_attribute("page_step"))); new_comp = co; } else if (tag == "listview") { CL_ListView *co = new CL_ListView(parent); CL_ListViewHeader *header = co->get_header(); std::vector<CL_DomNode> columns_nodes = e.select_nodes("listview_header/listview_column"); for(size_t i = 0; i < columns_nodes.size(); ++i) { CL_DomElement column_element = columns_nodes[i].to_element(); CL_String id = column_element.get_attribute("col_id"); CL_String caption = column_element.get_attribute("caption"); int width = column_element.get_attribute_int("width"); CL_ListViewColumnHeader column = header->create_column(id, caption); column.set_width(width); header->append(column); } new_comp = co; } else if (tag == "tab") { CL_Tab *co = new CL_Tab(parent); new_comp = co; CL_DomElement tab_child = e.get_first_child().to_element(); while (tab_child.is_element()) { if (tab_child.get_tag_name() == "tabpage") { CL_String label = tab_child.get_attribute("label", "Error: NO LABEL!"); int id = CL_StringHelp::text_to_int(tab_child.get_attribute("id", "0")); CL_TabPage *tab_page = co->add_page(label, id); CL_GUILayoutCorners tabpage_layout; tab_page->set_layout(tabpage_layout); load(tab_child, tab_page); } tab_child = tab_child.get_next_sibling().to_element(); } } else if (tag == "statusbar") { CL_StatusBar *co = new CL_StatusBar(parent); new_comp = co; } else if (tag == "menubar") { CL_MenuBar *co = new CL_MenuBar(parent); new_comp = co; } else if (tag == "combobox") { CL_ComboBox *co = new CL_ComboBox(parent); new_comp = co; } else if (tag == "scrollbar") { CL_ScrollBar *co = new CL_ScrollBar(parent); new_comp = co; } else if (tag == "spin") { CL_Spin *co = new CL_Spin(parent); new_comp = co; } else if (tag == "imageview") { CL_ImageView *co = new CL_ImageView(parent); new_comp = co; } else if (tag == "frame") { CL_Frame *co = new CL_Frame(parent); if (e.has_attribute("text")) co->set_header_text(e.get_attribute("text")); new_comp = co; CL_GUILayoutCorners layout_corners; co->set_layout(layout_corners); load(e, co); } else if (tag == "dialog") { dialog_width = CL_StringHelp::text_to_int(e.get_attribute("width")); dialog_height = CL_StringHelp::text_to_int(e.get_attribute("height")); } else // unknown tag... try create a custom_component { CL_GUIComponent *co = 0; if (create_custom_callback && !create_custom_callback->is_null()) { co = create_custom_callback->invoke(parent, tag); } new_comp = co; } if (new_comp) { new_comp->set_id_name(e.get_attribute("id")); new_comp->set_class_name(e.get_attribute("class")); new_comp->set_enabled(e.get_attribute_bool("enabled", true)); CL_String str = e.get_attribute("geom"); std::vector<CL_String> split = CL_StringHelp::split_text(str, ","); CL_Rect g; g.left = CL_StringHelp::text_to_int(split[0]); g.top = CL_StringHelp::text_to_int(split[1]); g.right = CL_StringHelp::text_to_int(split[2]); g.bottom = CL_StringHelp::text_to_int(split[3]); new_comp->set_geometry(g); CL_GUILayout parent_layout = parent->get_layout(); if (!parent_layout.is_null()) { parent_layout.get_provider(); CL_GUILayoutProvider_Corners *corner_provider_layout = dynamic_cast<CL_GUILayoutProvider_Corners*>(parent_layout.get_provider()); if (corner_provider_layout) { int dist_tl_x = CL_StringHelp::text_to_int(e.get_attribute("dist_tl_x")); int dist_tl_y = CL_StringHelp::text_to_int(e.get_attribute("dist_tl_y")); int dist_rb_x = CL_StringHelp::text_to_int(e.get_attribute("dist_br_x")); int dist_rb_y = CL_StringHelp::text_to_int(e.get_attribute("dist_br_y")); CL_ComponentAnchorPoint ap_tl = (CL_ComponentAnchorPoint)CL_StringHelp::text_to_int(e.get_attribute("anchor_tl")); CL_ComponentAnchorPoint ap_br = (CL_ComponentAnchorPoint)CL_StringHelp::text_to_int(e.get_attribute("anchor_br")); corner_provider_layout->add_component(new_comp, ap_tl, dist_tl_x, dist_tl_y, ap_br, dist_rb_x, dist_rb_y); } } } e = e.get_next_sibling().to_element(); } CL_GUILayout parent_layout = parent->get_layout(); if (!parent_layout.is_null()) { parent_layout.set_geometry(parent->get_size()); } }