Ejemplo n.º 1
0
Options::Options(CL_GUIManager &gui, CL_Rect gui_position) : CL_GUIComponent(&gui, CL_GUITopLevelDescription("Options", gui_position, false))
{
	// Note, when changing these, remember to change the popup menu defaults
	num_particles = 64;
	point_size = 64;

	int slider_xpos = 450;
	int slider_ypos = 100;
	int slider_gap = 24;
	slider_num_particles = create_slider(slider_xpos, slider_ypos); slider_ypos += slider_gap;
	slider_ypos += 8;
	slider_num_particles->set_max(1000);
	slider_num_particles->set_position(num_particles);
	slider_num_particles->func_value_changed().set(this, &Options::slider_num_particles_changed);
	slider_ypos += 8;
	label_num_particles = create_slider_label(slider_num_particles);

	slider_point_size = create_slider(slider_xpos, slider_ypos); slider_ypos += slider_gap;
	slider_ypos += 8;
	slider_point_size->set_max(256);
	slider_point_size->set_position(point_size);
	slider_point_size->func_value_changed().set(this, &Options::slider_point_size_changed);
	slider_ypos += 8;
	label_point_size = create_slider_label(slider_point_size);

	update_all_slider_text();

	func_render().set(this, &Options::on_render);
}
Ejemplo n.º 2
0
CL_ListView::CL_ListView(CL_GUIComponent *parent)
: CL_GUIComponent(parent), impl(new CL_ListView_Impl)
{
	set_type_name("listview");
	set_focus_policy(focus_local);
	impl->listview = this;

	impl->renderer = new CL_ListViewRenderer(this);
	impl->renderer->create_parts();
	impl->renderer->set_icon_list(impl->icon_list);

	impl->create_components();

	func_process_message().set(impl.get(), &CL_ListView_Impl::on_process_message);
	func_render().set(impl.get(), &CL_ListView_Impl::on_render);
	func_resized().set(impl.get(), &CL_ListView_Impl::on_resized);
	func_style_changed().set(impl.get(), &CL_ListView_Impl::on_style_changed);

	impl->document_item.impl->func_item_added.set(impl.get(), &CL_ListView_Impl::on_item_added);
	impl->document_item.impl->func_item_modified.set(impl.get(), &CL_ListView_Impl::on_item_modified);
	impl->document_item.impl->func_item_deleted.set(impl.get(), &CL_ListView_Impl::on_item_deleted);
	impl->create_parts();

	set_display_mode(listview_mode_details);

//	impl->update_part_positions();
}
Ejemplo n.º 3
0
TabPage::TabPage(GUIComponent *parent)
: GUIComponent(parent, CssStr::TabPage::type_name), impl(new TabPage_Impl)
{
	impl->component = this;
	func_process_message().set(impl.get(), &TabPage_Impl::on_process_message);
	func_render().set(impl.get(), &TabPage_Impl::on_render);
	func_resized().set(impl.get(), &TabPage_Impl::on_resized);
}
Ejemplo n.º 4
0
Options::Options(clan::GUIManager &gui, clan::Rect gui_position) : clan::GUIComponent(&gui, clan::GUITopLevelDescription("Options", gui_position, false))
{
	// Note, when changing these, remember to change the popup menu defaults
	compare_function = clan::compare_greater;
	stencil_pass = clan::stencil_keep;
	stencil_fail = clan::stencil_incr;

	num_balls = 9;
	is_moveballs_set = true;
	is_circle_set = true;
	compare_reference = 1;

	int slider_xpos = 400;
	int slider_ypos = 250;
	int slider_gap = 24;
	slider_numballs = create_slider(slider_xpos, slider_ypos); slider_ypos += slider_gap;
	slider_ypos += 8;
	slider_numballs->set_max(9);
	slider_numballs->set_position(num_balls);
	slider_numballs->func_value_changed() = bind_member(this, &Options::slider_numballs_changed);
	slider_ypos += 8;
	label_numballs = create_slider_label(slider_numballs);

	slider_ypos += 8;
	slider_compare_reference = create_slider(slider_xpos, slider_ypos); slider_ypos += slider_gap;
	slider_ypos += 8;
	slider_compare_reference->set_max(16);
	slider_compare_reference->set_position(compare_reference);
	slider_compare_reference->func_value_changed() = bind_member(this, &Options::slider_compare_reference_changed);
	slider_ypos += 8;
	label_compare_reference = create_slider_label(slider_compare_reference);

	int checkbox_xpos = slider_xpos;
	int checkbox_ypos = slider_ypos;
	int checkbox_gap = 24;
	checkbox_moveballs = create_checkbox(checkbox_xpos, checkbox_ypos, "Moving Balls", is_moveballs_set);
	checkbox_moveballs->func_state_changed() = bind_member(this, &Options::checkbox_moveballs_changed);
	checkbox_ypos += checkbox_gap + 8;
	checkbox_circle = create_checkbox(checkbox_xpos, checkbox_ypos, "Draw Stencil Circle (Without selected stencil options)", is_circle_set);
	checkbox_circle->func_state_changed() = bind_member(this, &Options::checkbox_circle_changed);
	checkbox_ypos += checkbox_gap + 8;

	make_compare_menu(combo_compare_menu);
	combo_comparefunc = create_compare_combo_box(600, 40, combo_compare_menu, 3);
	label_comparefunc = create_combobox_label(combo_comparefunc, "Compare Function");

	make_passfail_menu(combo_pass_menu);
	combo_pass = create_passfail_combo_box(600, 80, combo_pass_menu, 0);
	label_pass = create_combobox_label(combo_pass, "Pass Operation");

	make_passfail_menu(combo_fail_menu);
	combo_fail = create_passfail_combo_box(600, 120, combo_fail_menu, 3);
	label_fail = create_combobox_label(combo_fail, "Fail Operation");

	update_all_slider_text();

	func_render() = bind_member(this, &Options::on_render);
}
Ejemplo n.º 5
0
Workspace::Workspace(GUIComponent *main_window)
: GUIComponent(main_window, "workspace"), root_docking_group(0), next_dockinggroup_id(1)
{
	part_empty = GUIThemePart(this, "empty-center");
	_instance = this;
	func_render().set(this, &Workspace::on_render);

	root_docking_group = new DockingGroup(this);
}
Ejemplo n.º 6
0
 virtual void render( ::osiris::HtmlWriter & writer ) {
     ::osiris::PythonState __pystate(getPythonThreadState());
     if( ::osiris::PythonOverride func_render = this->get_override( "render" ) )
         func_render( boost::ref(writer) );
     else{
         __pystate.leave();
         this->::osiris::HtmlLinkTag::render( boost::ref(writer) );
     }
 }
Ejemplo n.º 7
0
ToolBar::ToolBar(GUIComponent *parent)
    : GUIComponent(parent, CssStr::ToolBar::type_name), impl(new ToolBar_Impl)
{
    set_class("horizontal", true);
    impl->toolbar = this;
    func_process_message().set(impl.get(), &ToolBar_Impl::on_process_message);
    func_render().set(impl.get(), &ToolBar_Impl::on_render);
    func_resized().set(impl.get(), &ToolBar_Impl::on_resized);
    impl->create_parts();
}
Ejemplo n.º 8
0
Toolbar::Toolbar(const CL_Rect &position, CL_GUIComponent* owner)
: CL_GUIComponent(owner, get_toplevel_description(position)), selected_index(-1), clicked_index(-1)
{
	set_type_name("toolbar");

	func_render().set(this, &Toolbar::on_render);
	func_style_changed().set(this, &Toolbar::on_style_changed);
	func_process_message().set(this, &Toolbar::on_process_message);

	create_parts();
}
Ejemplo n.º 9
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();
}
Ejemplo n.º 10
0
ToolTip::ToolTip(GUIManager manager)
: GUIComponent(&manager, ToolTip_Impl::create_description(), CssStr::ToolTip::type_name), impl(std::make_shared<ToolTip_Impl>())
{
	impl->tooltip = this;

	func_process_message() = bind_member(impl.get(), &ToolTip_Impl::on_process_message);
	func_render() = bind_member(impl.get(), &ToolTip_Impl::on_render);

	impl->timer_show_delayed.func_expired() = bind_member(impl.get(), &ToolTip_Impl::on_show_delayed);
	impl->sc.connect(get_gui_manager().sig_filter_message(), bind_member(impl.get(), &ToolTip_Impl::on_filter_message));
}
Ejemplo n.º 11
0
CL_ListViewHeader::CL_ListViewHeader(CL_GUIComponent *parent)
: CL_GUIComponent(parent), impl(new CL_ListViewHeader_Impl)
{
	set_type_name(CssStr::ListView::Header::type_name);
	impl->listview_header = this;
	func_process_message().set(impl.get(), &CL_ListViewHeader_Impl::on_process_message);
	func_render().set(impl.get(), &CL_ListViewHeader_Impl::on_render);
	// todo: resize (?)
	// todo: disabled
	impl->create_parts();
}
Ejemplo n.º 12
0
ToolTip::ToolTip(GUIManager manager)
: GUIComponent(&manager, ToolTip_Impl::create_description(), CssStr::ToolTip::type_name), impl(new ToolTip_Impl)
{
	impl->tooltip = this;

	func_process_message().set(impl.get(), &ToolTip_Impl::on_process_message);
	func_render().set(impl.get(), &ToolTip_Impl::on_render);

	impl->timer_show_delayed.func_expired().set(impl.get(), &ToolTip_Impl::on_show_delayed);
	impl->slot_filter_message = get_gui_manager().sig_filter_message().connect(impl.get(), &ToolTip_Impl::on_filter_message);
}
Ejemplo n.º 13
0
StatusBar::StatusBar(GUIComponent *parent)
: GUIComponent(parent, CssStr::StatusBar::type_name), impl(new StatusBar_Impl)
{
	impl->statusbar = this;

	func_resized().set(impl.get(), &StatusBar_Impl::on_resized);
	func_render().set(impl.get(), &StatusBar_Impl::on_render);
	func_input_doubleclick().set(impl.get(), &StatusBar_Impl::on_input_doubleclick);

	impl->create_parts();
}
Ejemplo n.º 14
0
GridObject::GridObject(GridComponent *grid_component, clan::GUIComponent *parent, int id, const clan::Vec2i &pos)
: clan::GUIComponent(parent), grid_component(grid_component), anchor_tl(clan::anchor_top_left), anchor_br(clan::anchor_top_left), component_type(0)
{
	set_tag_name("object");
	func_render().set(this, &GridObject::on_render);
	func_resized().set(this, &GridObject::on_resized);

	component_type = ComponentTypes::find_component(id);
	clan::GUIComponent *new_component = component_type->create_component(get_container());
	set_geometry(clan::Rect(pos, new_component->get_size()));
}
Ejemplo n.º 15
0
CL_MenuBar::CL_MenuBar( CL_GUIComponent *parent)
: CL_GUIComponent(parent), impl(new CL_MenuBar_Impl)
{
	set_type_name(CssStr::MenuBar::type_name);
	impl->menubar = this;
	func_process_message().set(impl.get(), &CL_MenuBar_Impl::on_process_message);
	func_render().set(impl.get(), &CL_MenuBar_Impl::on_render);
	func_resized().set(impl.get(), &CL_MenuBar_Impl::on_resized);
	func_style_changed().set(impl.get(), &CL_MenuBar_Impl::on_style_changed);

	impl->create_parts();
}
Ejemplo n.º 16
0
ProgressBar::ProgressBar(GUIComponent *parent)
: GUIComponent(parent, CssStr::ProgressBar::type_name), impl(std::make_shared<ProgressBar_Impl>())
{
	impl->progressbar = this;
	impl->part_progress = GUIThemePart(this, "progress");
	impl->part_chunk = GUIThemePart(this, "chunk");

	impl->progressbar->set_pseudo_class(CssStr::normal, true);

	func_process_message() = bind_member(impl.get(), &ProgressBar_Impl::on_process_message);
	func_render() = bind_member(impl.get(), &ProgressBar_Impl::on_render);
}
Ejemplo n.º 17
0
RadioButton::RadioButton(GUIComponent *parent)
: GUIComponent(parent, CssStr::RadioButton::type_name), impl(new RadioButton_Impl)
{
	set_focus_policy(focus_group);

	impl->radio = this;

	impl->create_parts();

	func_process_message().set(impl.get(), &RadioButton_Impl::on_process_message);
	func_render().set(impl.get(), &RadioButton_Impl::on_render);
	func_enablemode_changed().set(impl.get(), &RadioButton_Impl::on_enablemode_changed);
}
Ejemplo n.º 18
0
TabHeader::TabHeader(GUIComponent *parent)
: GUIComponent(parent, CssStr::Tab::Header::type_name), impl(new TabHeader_Impl)
{
	set_focus_policy(focus_local);
	impl->component = this;
	func_process_message().set(impl.get(), &TabHeader_Impl::on_process_message);
	func_render().set(impl.get(), &TabHeader_Impl::on_render);
	// todo: enablemode, resize

	impl->part_focus = GUIThemePart(this, CssStr::Tab::Header::part_focus);
	impl->first_tab_x_offset = get_property_int(CssStr::first_tab_x_offset, "0");

}
Ejemplo n.º 19
0
CL_TabHeader::CL_TabHeader(CL_GUIComponent *parent)
: CL_GUIComponent(parent), impl(new CL_TabHeader_Impl)
{
	set_type_name(CssStr::Tab::Header::type_name);
	set_focus_policy(focus_local);
	impl->component = this;
	func_process_message().set(impl.get(), &CL_TabHeader_Impl::on_process_message);
	func_render().set(impl.get(), &CL_TabHeader_Impl::on_render);
	func_style_changed().set(impl.get(), &CL_TabHeader_Impl::on_style_changed);
	// todo: enablemode, resize

	impl->on_style_changed();
}
Ejemplo n.º 20
0
CL_StatusBar::CL_StatusBar(CL_GUIComponent *parent)
: CL_GUIComponent(parent), impl(new CL_StatusBar_Impl)
{
	set_type_name("statusbar");
	impl->statusbar = this;

	func_resized().set(impl.get(), &CL_StatusBar_Impl::on_resized);
	func_render().set(impl.get(), &CL_StatusBar_Impl::on_render);
	func_style_changed().set(impl.get(), &CL_StatusBar_Impl::on_style_changed);
	func_input_doubleclick().set(impl.get(), &CL_StatusBar_Impl::on_input_doubleclick);

	impl->create_parts();
}
Ejemplo n.º 21
0
Tab::Tab(GUIComponent *parent)
: GUIComponent(parent, CssStr::Tab::type_name), impl(new Tab_Impl)
{
	impl->tab = this;
	func_process_message().set(impl.get(), &Tab_Impl::on_process_message);
	func_render().set(impl.get(), &Tab_Impl::on_render);
	func_resized().set(impl.get(), &Tab_Impl::on_resized);

	impl->tab_header = new TabHeader(this);

	impl->tab_header->func_page_selected().set(impl.get(), &Tab_Impl::on_header_page_selected);

}
Ejemplo n.º 22
0
RibbonMenu::RibbonMenu(GUIComponent *owner)
: GUIComponent(owner, RibbonMenu_Impl::create_toplevel_description(), "ribbon-menu"), impl(new RibbonMenu_Impl)
{
	impl->component = this;
	func_render().set(impl.get(), &RibbonMenu_Impl::on_render);
	func_resized().set(impl.get(), &RibbonMenu_Impl::on_resized);
	impl->part_menu_item = GUIThemePart(this, "menu-item");
	impl->part_menu_item_selected = GUIThemePart(this, "menu-item");
	impl->part_menu_item_selected.set_pseudo_class("selected", true);
	impl->part_menu_item_separator = GUIThemePart(this, "menu-item");
	impl->part_menu_item_separator.set_pseudo_class("separator", true);

	impl->slot_filter = owner->get_gui_manager().sig_filter_message().connect(impl.get(), &RibbonMenu_Impl::on_filter_message);
}
Ejemplo n.º 23
0
ScrollBar::ScrollBar(GUIComponent *parent)
: GUIComponent(parent, CssStr::ScrollBar::type_name), impl(new ScrollBar_Impl)
{
	impl->scrollbar = this;

	impl->create_parts();
	impl->update_part_positions();

	func_process_message().set(impl.get(), &ScrollBar_Impl::on_process_message);
	func_render().set(impl.get(), &ScrollBar_Impl::on_render);
	func_enablemode_changed().set(impl.get(), &ScrollBar_Impl::on_enablemode_changed);
	func_resized().set(impl.get(), &ScrollBar_Impl::on_resized);

	impl->mouse_down_timer.func_expired().set(impl.get(), &ScrollBar_Impl::on_timer_expired);
}
Ejemplo n.º 24
0
ViewWorkspace::ViewWorkspace(clan::GUIComponent *parent)
: clan::GUIComponent(parent, "workspace"), hot(false), current_page_index(0)
{
	func_render().set(this, &ViewWorkspace::on_render);
	func_resized().set(this, &ViewWorkspace::on_resized);
	func_process_message().set(this, &ViewWorkspace::on_process_message);

	clan::Canvas canvas = get_canvas();
	
	part_tab = clan::GUIThemePart(this, "workspacetab");
	font_tab = clan::Font(canvas, "Tahoma", -11);//part_background.get_font();
	image_cross = clan::Image(canvas, "Resources/cross-small.png");
	image_cross_hot = clan::Image(canvas, "Resources/cross-small-hot.png");
	image_cross_empty = clan::Image(canvas, "Resources/cross-small-empty.png");
	on_resized();
}
Ejemplo n.º 25
0
RadialMenu::RadialMenu(CL_GUIComponent *parent)
: CL_GUIComponent(parent)
{
	set_type_name("radialmenu");

	func_render().set(this, &RadialMenu::on_render);
	func_style_changed().set(this, &RadialMenu::on_style_changed);
	func_resized().set(this, &RadialMenu::on_resized);
	func_process_message().set(this, &RadialMenu::on_process_message);

	create_parts();
	
	clear_items();

	set_visible(false);
}
Ejemplo n.º 26
0
void PopupMenuWindow::create_parts()
{
	part_item_row = GUIThemePart(this, CssStr::PopupMenuWindow::part_item_row);
	part_item_icon = GUIThemePart(this, CssStr::PopupMenuWindow::part_item_icon);
	part_item_label = GUIThemePart(this, CssStr::PopupMenuWindow::part_item_label);
	part_item_check = GUIThemePart(this, CssStr::PopupMenuWindow::part_item_check);
	part_separator = GUIThemePart(this, CssStr::PopupMenuWindow::part_separator);
	part_submenu_arrow = GUIThemePart(this, CssStr::PopupMenuWindow::part_submenu_arrow);
	part_item_accel_label = GUIThemePart(this, CssStr::PopupMenuWindow::part_item_accel_label);
	part_menubar_joiner = GUIThemePart(this, CssStr::PopupMenuWindow::part_menubar_joiner);

	icon_column_width = get_property_int("icon-column-width", "30");
	icon_size = part_item_icon.get_css_size();
	check_size = part_item_check.get_css_size();

	func_render().set(this, &PopupMenuWindow::on_render);
}
Ejemplo n.º 27
0
GameComponent::GameComponent(const Rect &position, GUIManager* gui_manager)
: GUIComponent(gui_manager, GUITopLevelDescription(position, false), "game_component"),
  radial_menu(0)
{
	set_constant_repaint(true);

	func_render().set(this, &GameComponent::on_render);
	func_process_message().set(this, &GameComponent::on_message);

	Canvas canvas = get_canvas();
	background = Image(canvas, "Resources/Images/background.jpg");

	radial_menu = new RadialMenu(this);
	radial_menu->func_selected.set(this, &GameComponent::on_radial_menu_itemselected);

	font = clan::Font(canvas, "Tahoma", -30);
}
Ejemplo n.º 28
0
CL_ScrollBar::CL_ScrollBar(CL_GUIComponent *parent)
: CL_GUIComponent(parent), impl(new CL_ScrollBar_Impl)
{
	set_type_name(CssStr::ScrollBar::type_name);
	// set_state(CssStr::normal, true);

	impl->scrollbar = this;

	impl->create_parts();
	impl->update_part_positions();

	func_process_message().set(impl.get(), &CL_ScrollBar_Impl::on_process_message);
	func_render().set(impl.get(), &CL_ScrollBar_Impl::on_render);
	func_enablemode_changed().set(impl.get(), &CL_ScrollBar_Impl::on_enablemode_changed);
	func_resized().set(impl.get(), &CL_ScrollBar_Impl::on_resized);

	impl->mouse_down_timer.func_expired().set(impl.get(), &CL_ScrollBar_Impl::on_timer_expired);
}
Ejemplo n.º 29
0
GridComponent::GridComponent(clan::GUIComponent *parent, GuiEditorWindow *main_window)
: clan::GUIComponent(parent), main_window(main_window), component_container(0),
  component_overlay(0), boundary(320,200)
{
	set_tag_name("grid");
	func_input_pressed().set(this, &GridComponent::on_input_pressed);
	func_input_released().set(this, &GridComponent::on_input_released);
	func_input_doubleclick().set(this, &GridComponent::on_input_doubleclick);
	func_input_pointer_moved().set(this, &GridComponent::on_input_pointer_moved);
	func_render().set(this, &GridComponent::on_render);
	func_resized().set(this, &GridComponent::on_resized);
	part_windowframe = clan::GUIThemePart(this, "window-frame");

	edit_state.set_grid_component(this);

	component_container = new clan::GUIComponent(this);
	component_overlay = new clan::GUIComponent(this);
	component_overlay->func_render().set(this, &GridComponent::on_render_overlay);
}
Ejemplo n.º 30
0
Options::Options(clan::GUIManager &gui, clan::Rect gui_position) : clan::GUIComponent(&gui, clan::GUITopLevelDescription("Options", gui_position, false))
{
	// Note, when changing these, remember to change the popup menu defaults
	current_mapmode = clan::map_2d_upper_left;
	num_balls = 3;
	grid_angle = 0;
	is_moveballs_set = true;

	int slider_xpos = 450;
	int slider_ypos = 100;
	int slider_gap = 24;
	slider_numballs = create_slider(slider_xpos, slider_ypos); slider_ypos += slider_gap;
	slider_ypos += 8;
	slider_numballs->set_max(9);
	slider_numballs->set_position(num_balls);
	slider_numballs->func_value_changed().set(this, &Options::slider_numballs_changed);
	slider_ypos += 8;
	label_numballs = create_slider_label(slider_numballs);

	slider_grid_angle = create_slider(slider_xpos, slider_ypos); slider_ypos += slider_gap;
	slider_ypos += 8;
	slider_grid_angle->set_min(-45);
	slider_grid_angle->set_max(90);
	slider_grid_angle->set_position(grid_angle);
	slider_grid_angle->func_value_changed().set(this, &Options::slider_grid_angle_changed);
	slider_ypos += 8;
	label_grid_angle = create_slider_label(slider_grid_angle);

	int checkbox_xpos = slider_xpos;
	int checkbox_ypos = slider_ypos;
	int checkbox_gap = 24;
	checkbox_moveballs = create_checkbox(checkbox_xpos, checkbox_ypos, "Moving Balls", is_moveballs_set);
	checkbox_moveballs->func_state_changed().set(this, &Options::checkbox_moveballs_changed);

	make_mapmode_menu(combo_mapmode_menu);
	combo_mapmode = create_mapmode_combo_box(450, 40, combo_mapmode_menu, 0);
	label_mapmode = create_combobox_label(combo_mapmode, "Map Mode");

	update_all_slider_text();

	func_render().set(this, &Options::on_render);
}