Пример #1
0
 void InfoMenu::on_action (gui::Widget *w) {
     if (w == but_ok) {
         Menu::quit();
     } else if (w == pgup) {
         if (curPage > 0) {
             curPage--;
             invalidate_all();
         }
     } else if (w == pgdown) {
         if (curPage < numPages - 1) {
             curPage++;
             invalidate_all();
         }
     }
 }
Пример #2
0
void game_display::new_turn()
{
	const time_of_day& tod = tod_manager_.get_time_of_day();

	if( !first_turn_) {
		const time_of_day& old_tod = tod_manager_.get_previous_time_of_day();

		if(old_tod.image_mask != tod.image_mask) {
			const surface old_mask(image::get_image(old_tod.image_mask,image::SCALED_TO_HEX));
			const surface new_mask(image::get_image(tod.image_mask,image::SCALED_TO_HEX));

			const int niterations = static_cast<int>(10/turbo_speed());
			const int frame_time = 30;
			const int starting_ticks = SDL_GetTicks();
			for(int i = 0; i != niterations; ++i) {

				if(old_mask != NULL) {
					const fixed_t proportion = ftofxp(1.0) - fxpdiv(i,niterations);
					tod_hex_mask1.assign(adjust_surface_alpha(old_mask,proportion));
				}

				if(new_mask != NULL) {
					const fixed_t proportion = fxpdiv(i,niterations);
					tod_hex_mask2.assign(adjust_surface_alpha(new_mask,proportion));
				}

				invalidate_all();
				draw();

				const int cur_ticks = SDL_GetTicks();
				const int wanted_ticks = starting_ticks + i*frame_time;
				if(cur_ticks < wanted_ticks) {
					SDL_Delay(wanted_ticks - cur_ticks);
				}
			}
		}

		tod_hex_mask1.assign(NULL);
		tod_hex_mask2.assign(NULL);
	}

	first_turn_ = false;

	display::update_tod();

	invalidate_all();
	draw();
}
Пример #3
0
void game_display::set_game_mode(const tgame_mode game_mode)
{
	if(game_mode != game_mode_) {
		game_mode_ = game_mode;
		invalidate_all();
	}
}
Пример #4
0
void game_display::set_game_mode(const game_mode mode)
{
	if(mode != mode_) {
		mode_ = mode;
		invalidate_all();
	}
}
Пример #5
0
bool game_display::maybe_rebuild() {
	if (needs_rebuild_) {
		needs_rebuild_ = false;
		recalculate_minimap();
		invalidate_all();
		rebuild_all();
		return true;
	}
	return false;
}
Пример #6
0
LRESULT t_list_view::on_inline_edit_message(HWND wnd,UINT msg,WPARAM wp,LPARAM lp)
{
	switch(msg)
	{
	case WM_KILLFOCUS:
		if (!m_inline_edit_prevent_kill)
		{
			save_inline_edit();
			PostMessage (get_wnd(), MSG_KILL_INLINE_EDIT, 0, 0);
		}
		invalidate_all();
		break;
	case WM_SETFOCUS:
		break;
	case WM_GETDLGCODE:
		return CallWindowProc(m_proc_inline_edit,wnd,msg,wp,lp)|DLGC_WANTALLKEYS;
	case WM_KEYDOWN:
		switch (wp)
		{
		case VK_TAB:
			{
				unsigned count = m_columns.get_count();
				t_size indices_count = m_inline_edit_indices.get_count();
				assert(indices_count);
				if (count && indices_count)
				{
					bool back = (GetKeyState(VK_SHIFT) & KF_UP) != 0;
					if (back)
					{
						unsigned column = m_inline_edit_column;
						unsigned playlist_index = m_inline_edit_indices[0];
						t_size playlist_count = m_items.get_count();
						pfc::string8_fast_aggressive temp;
						bool found = false;
						do
						{
							while (column > 0 && !(found = notify_before_create_inline_edit(indices_count>1 ? static_cast<pfc::list_base_const_t<t_size>&>(pfc::list_t<t_size>(m_inline_edit_indices)) : static_cast<pfc::list_base_const_t<t_size>&>(pfc::list_single_ref_t<t_size>(playlist_index)),--column, false)))
							{
							}
						}
						while(!found && indices_count == 1 && playlist_index > 0 && (column = count) && (playlist_index-- >= 0));

						if (found)
						{
							create_inline_edit( indices_count>1 ? static_cast<pfc::list_base_const_t<t_size>&>(pfc::list_t<t_size>(m_inline_edit_indices)) : static_cast<pfc::list_base_const_t<t_size>&>(pfc::list_single_ref_t<t_size>(playlist_index)), column);
						}
					}
					else
					{
						unsigned column = m_inline_edit_column+1;
						unsigned playlist_index = m_inline_edit_indices[0];
						t_size playlist_count = m_items.get_count();
						pfc::string8_fast_aggressive temp;
						bool found = false;
						do
						{
							while (column < count && !(found = notify_before_create_inline_edit(indices_count>1 ? static_cast<pfc::list_base_const_t<t_size>&>(pfc::list_t<t_size>(m_inline_edit_indices)) : static_cast<pfc::list_base_const_t<t_size>&>(pfc::list_single_ref_t<t_size>(playlist_index)), column, false)))
							{
								column++;
							}
						}
						while(!found && indices_count == 1 && ++playlist_index < playlist_count && !(column = 0));

						if (found)
						{
							create_inline_edit( indices_count>1 ? static_cast<pfc::list_base_const_t<t_size>&>(pfc::list_t<t_size>(m_inline_edit_indices)) : static_cast<pfc::list_base_const_t<t_size>&>(pfc::list_single_ref_t<t_size>(playlist_index)), column);
						}
					}
				}
			}
			return 0;
		case VK_ESCAPE:
			m_inline_edit_save = false;
			exit_inline_edit();
			return 0;
		case VK_RETURN:
			if ((GetKeyState(VK_CONTROL) & KF_UP) == 0)
				exit_inline_edit();
			//else
			//	return CallWindowProc(m_proc_original_inline_edit,wnd,msg,wp,lp); //cheat
			return 0;
		}
		break;
	}
	return CallWindowProc(m_proc_inline_edit,wnd,msg,wp,lp);
}
Пример #7
0
void game_display::begin_game()
{
	in_game_ = true;
	create_buttons();
	invalidate_all();
}