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(); } } }
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(); }
void game_display::set_game_mode(const tgame_mode game_mode) { if(game_mode != game_mode_) { game_mode_ = game_mode; invalidate_all(); } }
void game_display::set_game_mode(const game_mode mode) { if(mode != mode_) { mode_ = mode; invalidate_all(); } }
bool game_display::maybe_rebuild() { if (needs_rebuild_) { needs_rebuild_ = false; recalculate_minimap(); invalidate_all(); rebuild_all(); return true; } return false; }
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); }
void game_display::begin_game() { in_game_ = true; create_buttons(); invalidate_all(); }