Esempio n. 1
0
void DraggableView::MoveRelative(int dx,int dy)
{
 int new_x = area.x + dx;

 if(new_x < 0)
 {
	 dx = -area.x;
 }
 else if(new_x + area.w > screen->get_width())
 {
	 dx = screen->get_width() - (area.x + area.w);
 }

 int new_y = area.y + dy;

 if(new_y < 0)
 {
	 dy = -area.y;
 }
 else if(new_y + area.h > screen->get_height())
 {
	 dy = screen->get_height() - (area.y + area.h);
 }

 force_full_redraw_if_needed(); // needs to happen before the move
 GUI_Widget::MoveRelative(dx, dy);

 return;
}
Esempio n. 2
0
void ContainerViewGump::left_arrow()
{
	sint8 party_mem_num = party->get_member_num(actor);
	if(party_mem_num >= 0)
	{
    if(party_mem_num > 0)
      party_mem_num--;
    else
      party_mem_num = party->get_party_size() - 1;

    set_actor(party->get_actor(party_mem_num));
    force_full_redraw_if_needed();
	}
}
Esempio n. 3
0
GUI_status ContainerViewGump::KeyDown(SDL_Keysym key)
{
	if(left_arrow_button && left_arrow_button->Status() == WIDGET_VISIBLE) // okay to change member number
	{
		KeyBinder *keybinder = Game::get_game()->get_keybinder();
		ActionType a = keybinder->get_ActionType(key);

		switch(keybinder->GetActionKeyType(a))
		{
			case NEXT_PARTY_MEMBER_KEY:
				right_arrow(); return GUI_YUM;
			case PREVIOUS_PARTY_MEMBER_KEY:
				left_arrow(); return GUI_YUM;
			case HOME_KEY:
				set_actor(party->get_actor(0));
				force_full_redraw_if_needed();
				return GUI_YUM;
			case END_KEY:
				set_actor(party->get_actor(party->get_party_size() - 1));
				force_full_redraw_if_needed();
				return GUI_YUM;
			default: break;
		}
	}
	/* moved into container widget
	switch(key.sym)
	    {
	        case SDLK_RETURN:
	        case SDLK_KP_ENTER:

	        	return GUI_YUM;
	        default:
	        	break;
	    }
	*/
	return container_widget->KeyDown(key);
}
Esempio n. 4
0
void ContainerViewGump::right_arrow()
{
	set_actor(party->get_actor((party->get_member_num(actor) + 1) % party->get_party_size()));
	force_full_redraw_if_needed();
}