Example #1
0
CL_GUITopLevelDescription LoginView::get_toplevel_description()
{
	CL_GUITopLevelDescription desc;
	desc.set_title("Connect to Server");
	desc.set_position(CL_RectPS(312, 100, 400, 260), false);
	return desc;
}
void CL_GUIComponent::render(CL_GraphicContext &gc, const CL_Rect &clip_rect, bool include_children)
{
	if (!impl->visible)
		return;

	if (!impl->css_layout.is_null())
	{
		impl->css_layout.layout(gc, get_size());
		impl->css_layout.render(gc, this);
	}

	if (impl->func_render.is_null() == false)
	{
		impl->func_render.invoke(gc, clip_rect);
	}
	else
	{
		CL_GUIThemePart part(this);
		CL_Rect geometry = get_size();
		part.render_box(gc, CL_RectPS(0, 0, geometry.get_width(), geometry.get_height()), clip_rect);
	}

	if (include_children)
	{
		if (impl->clip_children)
		{
			push_cliprect(gc, impl->clip_children_rect);
		}

		CL_GUIComponent *cur = impl->first_child;
		while (cur)
		{
			CL_Rect cur_geometry = cur->get_geometry();

			CL_Rect update_rect = component_to_window_coords(clip_rect);
			update_rect.overlap(component_to_window_coords(cur_geometry));
			if (update_rect.get_width() > 0 && update_rect.get_height() > 0)
			{
				CL_Rect child_dirty_rect = cur->window_to_component_coords(update_rect);

				gc.push_translate((float)cur_geometry.left, (float)cur_geometry.top);
				cur->render(gc, child_dirty_rect, true);
				gc.pop_modelview();
			}
			cur = cur->impl->next_sibling;
		}

		if (impl->clip_children)
		{
			pop_cliprect(gc);
		}
	}
}
Example #3
0
LoginView::LoginView(CL_GUIManager *gui_manager)
: CL_GUIComponent(gui_manager, get_toplevel_description())
{
	set_class_name("login");

	label_info = new CL_Label(this);
	label_info->set_geometry(CL_RectPS(15, 10, 370, 27));
	label_info->set_class_name("header");
	label_info->set_text("Enter connection information");

	label_player_nick = new CL_Label(this);
	label_player_nick->set_geometry(CL_RectPS(15, 50, 370, 27));
	label_player_nick->set_text("Player nick:");

	edit_player_nick = new CL_LineEdit(this);
	edit_player_nick->set_geometry(CL_RectPS(15, 77, 370, 23));
	edit_player_nick->func_after_edit_changed().set(this, &LoginView::on_edit_player_nick_changed);
	#ifdef _DEBUG
	edit_player_nick->set_text("Player");
	#endif

	label_server = new CL_Label(this);
	label_server->set_geometry(CL_RectPS(15, 120, 370, 27));
	label_server->set_text("Server information:");

	edit_server = new CL_LineEdit(this);
	edit_server->set_geometry(CL_RectPS(15, 147, 300, 23));
	edit_server->set_text("localhost");

	edit_port = new CL_LineEdit(this);
	edit_port->set_geometry(CL_RectPS(320, 147, 65, 23));
	edit_port->set_text("4558");

	button_ok = new CL_PushButton(this);
	button_ok->set_geometry(CL_RectPS(15, 205, 75, 23));
	button_ok->set_text("OK");
	button_ok->func_clicked().set(this, &LoginView::on_button_ok_clicked);
	update_button_states();

	button_cancel = new CL_PushButton(this);
	button_cancel->set_geometry(CL_RectPS(245, 205, 75, 23));
	button_cancel->set_text("Cancel");
	button_cancel->func_clicked().set(this, &LoginView::on_button_cancel_clicked);
}
Example #4
0
	int main(const std::vector<CL_String> &args)
	{
		try
		{
			CL_GUIManager gui;

			CL_ResourceManager resources("../../../Resources/GUIThemeLuna/resources.xml");

			CL_GUIWindowManagerSystem wm;
			gui.set_window_manager(wm);

			CL_GUIThemeDefault theme;
			theme.set_resources(resources);
			gui.set_theme(theme); 
			//gui.set_css_document("theme.css");
			gui.set_css_document("../../../Resources/GUIThemeLuna/theme.css");

			CL_DisplayWindowDescription win_desc;
			win_desc.set_allow_resize(true);
			win_desc.set_title("Button WM System Test Application");
			win_desc.set_position(CL_RectPS(200, 200, 320, 240), false);
			CL_Window window(&gui, win_desc);
			window.func_close().set(this, &App::on_close, &window);
	
			CL_PushButton button(&window);
			button.set_geometry(CL_RectPS(10, 10, 160, 40));
			button.set_text("Button 1");

			CL_PushButton button2(&window);
			button2.set_geometry(CL_RectPS(10, 50, 160, 40));
			button2.set_text("Button 2");
			button2.set_enabled(false);

			CL_PushButton button3(&window);
			button3.set_geometry(CL_RectPS(10, 90, 160, 40));
			button3.set_text("Button 3");
 
			CL_CheckBox check1(&window);
			check1.set_geometry(CL_RectPS(10, 130, 160, 21));
			check1.set_text("Check Box 1");

			CL_CheckBox check2(&window);
			check2.set_geometry(CL_RectPS(10, 160, 160, 21));
			check2.set_text("Check Box 2");
			check2.set_enabled(false);

			CL_CheckBox check3(&window);
			check3.set_geometry(CL_RectPS(10, 190, 160, 21));
			check3.set_text("Check Box 3");

			gui.exec();
		}
		catch (CL_Exception e)
		{
			CL_ConsoleWindow console("Console");
			CL_Console::write_line(e.message);
			console.display_close_message();
		}

		return 0;
	}