示例#1
0
void ViewWorkspace::on_resized()
{
	clan::Rect workspace_area = get_workspace_area();
	for (std::vector<ViewPage>::iterator it = pages.begin(); it != pages.end(); ++it)
		(*it).view->set_geometry(workspace_area);
	request_repaint();
}
示例#2
0
void StatusBar::set_part_text(int id, const Image &icon, const std::string &text)
{
	unsigned int index = impl->find_part(id);
	impl->statusbar_parts[index].icon = icon;
	impl->statusbar_parts[index].text = text;
	request_repaint();
}
示例#3
0
void CL_StatusBar::set_part_text(int id, const CL_StringRef &text)
{
	unsigned int index = impl->find_part(id);
	impl->statusbar_parts[index].icon = CL_Image();
	impl->statusbar_parts[index].text = text;
	request_repaint();
}
示例#4
0
void CL_ListView::set_select_whole_row(bool value)
{
	impl->cancel_edit();

	impl->select_whole_row = value;
	request_repaint();
}
示例#5
0
TabPage *Tab::add_page(const std::string &label, int id)
{
	TabPage *tab_page = new TabPage(this);
	tab_page->impl->id = id;
	tab_page->impl->label = label;

	bool select_added_page = true;
	if (!impl->pages.empty())
	{
		tab_page->set_visible(false);
		select_added_page = false;
	}

	impl->pages.push_back(tab_page);
	impl->tab_header->add_page(tab_page, label);

	tab_page->set_geometry(impl->get_client_rect());

	request_repaint();

	if (select_added_page)
	{
		impl->tab_header->select_page(0);
	}

	return tab_page;
}
示例#6
0
void ProgressBar::step_position()
{
	impl->position += impl->step_size;

	impl->check_range();
	request_repaint();
}
示例#7
0
void CL_ScrollBar::set_vertical()
{
	impl->vertical = true;
	impl->create_parts();
	if(impl->update_part_positions())
		request_repaint();
}
示例#8
0
void RadialMenu::clear_items()
{
	selected_index = -1;
	max_angle = CL_Angle::from_degrees(0);
	items.clear();
	request_repaint();
}
示例#9
0
void ProgressBar::set_max(int progress_max)
{
	impl->progress_max = progress_max;

	impl->check_range();
	request_repaint();
}
示例#10
0
void CL_ListView::clear_selection()
{
	impl->cancel_edit();

	impl->selection.clear();
	request_repaint();
}
示例#11
0
void ProgressBar::set_min(int progress_min)
{
	impl->progress_min = progress_min;

	impl->check_range();
	request_repaint();
}
示例#12
0
void ProgressBar::set_position(int pos)
{
	impl->position = pos;

	impl->check_range();
	request_repaint();
}
示例#13
0
void GridComponent::set_boundary_size(const clan::Size &size)
{
	boundary.width = size.width;
	boundary.height = size.height;
	on_resized();
	request_repaint();
}
示例#14
0
void ProgressBar::advance_position(int pos)
{
	impl->position += pos;

	impl->check_range();
	request_repaint();
}
示例#15
0
void ScrollBar::set_horizontal()
{
	impl->vertical = false;
	impl->create_parts();
	if(impl->update_part_positions())
		request_repaint();
}
示例#16
0
void CL_ListView::clear()
{
	impl->cancel_edit();

	clear_selection();
	impl->document_item.remove_children();
	request_repaint();
}
示例#17
0
void RadialMenu::add_item(const CL_String &text)
{
	items.push_back(RadialMenuItem(text));

	max_angle = CL_Angle::from_degrees((items.size() - 1) * 45.0f + 22.5f);

	request_repaint();
}
示例#18
0
void GridComponent::set_netselect_box(clan::Rect new_netselect_box)
{
	if (netselect_box != new_netselect_box)
	{
		netselect_box = new_netselect_box;
		request_repaint();
	}
}
示例#19
0
void Toolbar::on_mouse_lbutton_up(CL_InputEvent &input_event)
{
	if(clicked_index != -1)
		if (!func_selected.is_null())
			func_selected.invoke(clicked_index);

	clicked_index = -1;
	request_repaint();
}
示例#20
0
void StatusBar::remove_part(int id)
{
	unsigned int index = impl->find_part(id);
	if (impl->statusbar_parts[index].component)
		impl->statusbar_parts[index].component->set_visible(false);
	impl->statusbar_parts.erase(impl->statusbar_parts.begin() + index);
	impl->position_parts();
	request_repaint();
}
示例#21
0
void StatusBar::show_part(int id, bool show)
{
	unsigned int index = impl->find_part(id);
	impl->statusbar_parts[index].visible = true;
	if (impl->statusbar_parts[index].component)
		impl->statusbar_parts[index].component->set_visible(show, false);
	impl->position_parts();
	request_repaint();
}
示例#22
0
void ViewWorkspace::set_view_color(View *view, clan::Colorf &color)
{
	int page_index = find_view_index(view);
	if (page_index != current_page_index)
	{
		pages[page_index].color = color;
		request_repaint();
	}
}
示例#23
0
文件: info.cpp 项目: Cassie90/ClanLib
void Info::set(int new_xpos, int new_ypos, const std::string &new_name)
{
	name = new_name;
	activated_time = 0;
	activated_flag = false;
	request_repaint();

	set_geometry(clan::Rect(new_xpos, new_ypos, clan::Size(120, 16)));
}
示例#24
0
void StatusBar::add_part(int id, int width, GUIComponent *component)
{
	impl->throw_if_part_exists(id);
	StatusBar_Part status_part(id, width, component);
	impl->statusbar_parts.push_back(status_part);
	impl->position_parts();
	request_repaint();
	if (component)
		component->set_visible(true, false);
}
示例#25
0
DockedFrame::DockedFrame(GUIComponent *parent, DockableComponent *dockable)
    : GUIComponent(parent, "docked-frame"), dockable(dockable)
{
    func_resized().set(this, &DockedFrame::on_resized);
    func_render().set(this, &DockedFrame::on_render);
    dockable->set_parent_component(this);
    dockable->set_visible(true, false);
    set_visible(false, false);
    on_resized();
    request_repaint();
}
示例#26
0
void ScrollBar::set_position(int pos)
{
	impl->position = pos;
	if (pos >= impl->scroll_max)
		impl->position = impl->scroll_max-1;
	if (pos < impl->scroll_min)
		impl->position = impl->scroll_min;

	if(impl->update_part_positions())
		request_repaint();
}
示例#27
0
CL_GUIComponent::CL_GUIComponent(CL_GUIComponent *owner, CL_GUITopLevelDescription description)
: impl(CL_GUIComponent_Impl::create_from_owner(owner))
{
	impl->component = this;
	impl->allow_resize = description.get_allow_resize();
	impl->visible = description.is_visible();
	impl->gui_manager.lock()->add_component(this, owner, description);
	impl->type_name = "component";
	impl->geometry = impl->gui_manager.lock()->window_manager.get_geometry(impl->gui_manager.lock()->get_toplevel_window(this), true);
	request_repaint();
}
示例#28
0
void ViewWorkspace::show_view(unsigned int index)
{
	current_page_index = index;
	if (!pages.empty())
	{
		for (size_t i = 0; i < pages.size(); i++)
			pages[i].view->set_visible(i == index);
		pages[index].color = clan::Colorf::black;
	}
	request_repaint();
}
示例#29
0
void GridComponent::load(const std::string &fullname)
{
	clan::DomDocument doc;
	clan::File file = clan::File(fullname, clan::File::open_existing, clan::File::access_read);
	doc.load(file);

	clan::DomElement element_components = doc.get_document_element();

	load(element_components, component_container);

	request_repaint();
}
示例#30
0
void Toolbar::on_mouse_move(CL_InputEvent &input_event)
{
	int pos_x = start_x;
	int pos_y = start_y;
	for(unsigned int i = 0; i < items.size(); ++i)
	{
		CL_Rect icon_rect(pos_x, pos_y, pos_x + items[i].icon.get_width(), pos_y + items[i].icon.get_height());
		if(icon_rect.contains(input_event.mouse_pos))
		{
			selected_index = i;
			request_repaint();
			return;
		}

		pos_x += offset_x;
	}

	clicked_index = -1;
	selected_index = -1;
	request_repaint();
}