void palette_manager::draw_contents()
{
	//if (!dirty() && !force) {
	//	return;
	//}

	const SDL_Rect &loc = location();

	tooltips::clear_tooltips(loc);

	gui::button* upscroll_button = gui_.find_action_button("upscroll-button-editor");
	if (upscroll_button)
		upscroll_button->hide(false);
	gui::button* downscroll_button = gui_.find_action_button("downscroll-button-editor");
	if (downscroll_button)
		downscroll_button->hide(false);
	gui::button* palette_menu_button = gui_.find_action_button("menu-editor-terrain");
	if (palette_menu_button)
		palette_menu_button->hide(false);

//	bg_restore(loc);
	active_palette().set_dirty(true);
	active_palette().draw();
	//active_palette().hide(false);

//	set_dirty(false);
}
void palette_manager::scroll_bottom()
{
	unsigned int old_start   = active_palette().num_items();
	unsigned int items_start = active_palette().start_num();
	while (old_start != items_start) {
		old_start = items_start;
		scroll_down();
	}
}
void palette_manager::scroll_top()
{
	const SDL_Rect rect = gui_.palette_area();
	active_palette().set_start_item(0);
	bg_restore(rect);
	set_dirty();
}
sdl_handler_vector palette_manager::handler_members()
{
	//handler_vector h;
//	BOOST_FOREACH(gui::widget& b, active_palette().get_widgets()) {
//		h.push_back(&b);
//	}
	//return h;
	return active_palette().handler_members();
}
Exemple #5
0
void palette_manager::resrote_palete_bg(bool scroll_top)
{
	const SDL_Rect rect = gui_.palette_area();
	if (scroll_top) {
		active_palette().set_start_item(0);
	}
	bg_restore(rect);
	set_dirty();
}
void palette_manager::scroll_up()
{
	bool scrolled_up = active_palette().scroll_up();
	if(scrolled_up) {
//		const SDL_Rect rect = gui_.palette_area();
//		bg_restore(rect);
		set_dirty();
		draw();
	}
}
void palette_manager::adjust_size()
{
	scroll_top();
	const SDL_Rect& rect = gui_.palette_area();
	set_location(rect);
	palette_start_ = rect.y;
	bg_register(rect);
	active_palette().adjust_size(rect);
	set_dirty();
}
Exemple #8
0
void palette_manager::handle_event(const SDL_Event& event) {

	gui::widget::handle_event(event);

	if (event.type == SDL_MOUSEMOTION) {
		// If the mouse is inside the palette, give it focus.
		if (sdl::point_in_rect(event.button.x, event.button.y, location())) {
			if (!focus(&event)) set_focus(true);
		}
		// If the mouse is outside, remove focus.
		else if (focus(&event)) set_focus(false);
	}
	if (!focus(&event)) {
		return;
	}

	const SDL_MouseButtonEvent &mouse_button_event = event.button;


	if (event.type == SDL_MOUSEWHEEL) {
		if (event.wheel.y > 0) {
			scroll_up();
		} else if (event.wheel.y < 0) {
			scroll_down();
		}

		if (event.wheel.x < 0) {
			active_palette().prev_group();
			scroll_top();
		} else if (event.wheel.x > 0) {
			active_palette().next_group();
			scroll_top();
		}
	}

	if (mouse_button_event.type == SDL_MOUSEBUTTONUP) {
		//set_dirty(true);
//		draw(true);
//		set_dirty(active_palette().mouse_click());
//		gui_.invalidate_game_status();
	}
}
bool palette_manager::can_scroll_down()
{
	return active_palette().can_scroll_down();
}
void palette_manager::set_group(size_t index)
{
	active_palette().set_group(index);
	scroll_top();
}