From febcc4411f1b91194892ef202b140cefcb5bc191 Mon Sep 17 00:00:00 2001 From: auria Date: Thu, 22 Dec 2011 21:14:57 +0000 Subject: [PATCH] Add dialog to customize graphics settings in addition to slider git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@10482 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- CMakeLists.txt | 2 +- data/gui/options_video.stkgui | 21 ++- .../Xcode/STK_XCode.xcodeproj/project.pbxproj | 6 + .../dialogs/custom_video_settings.cpp | 122 ++++++++++++++++++ .../dialogs/custom_video_settings.hpp | 44 +++++++ src/states_screens/options_screen_video.cpp | 51 ++++++-- src/states_screens/options_screen_video.hpp | 2 + 7 files changed, 226 insertions(+), 22 deletions(-) create mode 100644 src/states_screens/dialogs/custom_video_settings.cpp create mode 100644 src/states_screens/dialogs/custom_video_settings.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index eb6bc46da..23158ffa9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,7 +180,7 @@ else() message("-- Font tool deactivated, the font tool won't be built (only useful for developers)") endif() -set( SRCS ${SRCS} src/addons/addon.cpp src/addons/addon.hpp src/addons/addons_manager.cpp src/addons/addons_manager.hpp src/addons/dummy_network_http.hpp src/addons/inetwork_http.hpp src/addons/network_http.cpp src/addons/network_http.hpp src/addons/news_manager.cpp src/addons/news_manager.hpp src/addons/request.cpp src/addons/request.hpp src/addons/zip.cpp src/addons/zip.hpp src/animations/animation_base.cpp src/animations/animation_base.hpp src/animations/billboard_animation.cpp src/animations/billboard_animation.hpp src/animations/ipo.cpp src/animations/ipo.hpp src/animations/three_d_animation.cpp src/animations/three_d_animation.hpp src/audio/dummy_sfx.hpp src/audio/music.hpp src/audio/music_dummy.hpp src/audio/music_information.cpp src/audio/music_information.hpp src/audio/music_manager.cpp src/audio/music_manager.hpp src/audio/music_ogg.cpp src/audio/music_ogg.hpp src/audio/sfx_base.hpp src/audio/sfx_buffer.cpp src/audio/sfx_buffer.hpp src/audio/sfx_manager.cpp src/audio/sfx_manager.hpp src/audio/sfx_openal.cpp src/audio/sfx_openal.hpp src/challenges/challenge.cpp src/challenges/challenge.hpp src/challenges/challenge_data.cpp src/challenges/challenge_data.hpp src/challenges/game_slot.cpp src/challenges/game_slot.hpp src/challenges/unlock_manager.cpp src/challenges/unlock_manager.hpp src/config/device_config.cpp src/config/device_config.hpp src/config/player.hpp src/config/stk_config.cpp src/config/stk_config.hpp src/config/user_config.cpp src/config/user_config.hpp src/enet/callbacks.c src/enet/compress.c src/enet/host.c src/enet/include/enet/callbacks.h src/enet/include/enet/enet.h src/enet/include/enet/list.h src/enet/include/enet/protocol.h src/enet/include/enet/time.h src/enet/include/enet/types.h src/enet/include/enet/unix.h src/enet/include/enet/utility.h src/enet/include/enet/win32.h src/enet/list.c src/enet/packet.c src/enet/peer.c src/enet/protocol.c src/enet/unix.c src/enet/win32.c src/graphics/camera.cpp src/graphics/camera.hpp src/graphics/CBatchingMesh.cpp src/graphics/CBatchingMesh.hpp src/graphics/explosion.cpp src/graphics/explosion.hpp src/graphics/hardware_skinning.cpp src/graphics/hardware_skinning.hpp src/graphics/hit_effect.hpp src/graphics/hit_sfx.cpp src/graphics/hit_sfx.hpp src/graphics/irr_driver.cpp src/graphics/irr_driver.hpp src/graphics/lod_node.cpp src/graphics/lod_node.hpp src/graphics/material.cpp src/graphics/material.hpp src/graphics/material_manager.cpp src/graphics/material_manager.hpp src/graphics/mesh_tools.cpp src/graphics/mesh_tools.hpp src/graphics/moving_texture.cpp src/graphics/moving_texture.hpp src/graphics/particle_emitter.cpp src/graphics/particle_emitter.hpp src/graphics/particle_kind.cpp src/graphics/particle_kind.hpp src/graphics/particle_kind_manager.cpp src/graphics/particle_kind_manager.hpp src/graphics/per_camera_node.cpp src/graphics/per_camera_node.hpp src/graphics/post_processing.cpp src/graphics/post_processing.hpp src/graphics/rain.cpp src/graphics/rain.hpp src/graphics/referee.cpp src/graphics/referee.hpp src/graphics/shadow.cpp src/graphics/shadow.hpp src/graphics/skid_marks.cpp src/graphics/skid_marks.hpp src/graphics/slip_stream.cpp src/graphics/slip_stream.hpp src/graphics/stars.cpp src/graphics/stars.hpp src/guiengine/abstract_state_manager.cpp src/guiengine/abstract_state_manager.hpp src/guiengine/abstract_top_level_container.cpp src/guiengine/abstract_top_level_container.hpp src/guiengine/CGUISpriteBank.cpp src/guiengine/CGUISpriteBank.h src/guiengine/engine.cpp src/guiengine/engine.hpp src/guiengine/event_handler.cpp src/guiengine/event_handler.hpp src/guiengine/layout_manager.cpp src/guiengine/layout_manager.hpp src/guiengine/modaldialog.cpp src/guiengine/modaldialog.hpp src/guiengine/scalable_font.cpp src/guiengine/scalable_font.hpp src/guiengine/screen.cpp src/guiengine/screen.hpp src/guiengine/screen_loader.cpp src/guiengine/skin.cpp src/guiengine/skin.hpp src/guiengine/widget.cpp src/guiengine/widget.hpp src/guiengine/widgets/bubble_widget.cpp src/guiengine/widgets/bubble_widget.hpp src/guiengine/widgets/button_widget.cpp src/guiengine/widgets/button_widget.hpp src/guiengine/widgets/CGUIEditBox.cpp src/guiengine/widgets/CGUIEditBox.h src/guiengine/widgets/check_box_widget.cpp src/guiengine/widgets/check_box_widget.hpp src/guiengine/widgets/dynamic_ribbon_widget.cpp src/guiengine/widgets/dynamic_ribbon_widget.hpp src/guiengine/widgets/icon_button_widget.cpp src/guiengine/widgets/icon_button_widget.hpp src/guiengine/widgets/label_widget.cpp src/guiengine/widgets/label_widget.hpp src/guiengine/widgets/list_widget.cpp src/guiengine/widgets/list_widget.hpp src/guiengine/widgets/model_view_widget.cpp src/guiengine/widgets/model_view_widget.hpp src/guiengine/widgets/progress_bar_widget.cpp src/guiengine/widgets/progress_bar_widget.hpp src/guiengine/widgets/ribbon_widget.cpp src/guiengine/widgets/ribbon_widget.hpp src/guiengine/widgets/spinner_widget.cpp src/guiengine/widgets/spinner_widget.hpp src/guiengine/widgets/text_box_widget.cpp src/guiengine/widgets/text_box_widget.hpp src/guiengine/widgets.hpp src/input/binding.cpp src/input/binding.hpp src/input/device_manager.cpp src/input/device_manager.hpp src/input/input.hpp src/input/input_device.cpp src/input/input_device.hpp src/input/input_manager.cpp src/input/input_manager.hpp src/io/file_manager.cpp src/io/file_manager.hpp src/io/xml_node.cpp src/io/xml_node.hpp src/io/xml_writer.cpp src/io/xml_writer.hpp src/items/attachment.cpp src/items/attachment.hpp src/items/attachment_manager.cpp src/items/attachment_manager.hpp src/items/attachment_plugin.hpp src/items/bowling.cpp src/items/bowling.hpp src/items/cake.cpp src/items/cake.hpp src/items/flyable.cpp src/items/flyable.hpp src/items/item.cpp src/items/item.hpp src/items/item_manager.cpp src/items/item_manager.hpp src/items/plunger.cpp src/items/plunger.hpp src/items/powerup.cpp src/items/powerup.hpp src/items/powerup_manager.cpp src/items/powerup_manager.hpp src/items/projectile_manager.cpp src/items/projectile_manager.hpp src/items/rubber_ball.cpp src/items/rubber_ball.hpp src/items/rubber_band.cpp src/items/rubber_band.hpp src/items/swatter.cpp src/items/swatter.hpp src/karts/controller/ai_base_controller.cpp src/karts/controller/ai_base_controller.hpp src/karts/controller/controller.cpp src/karts/controller/controller.hpp src/karts/controller/default_ai_controller.cpp src/karts/controller/default_ai_controller.hpp src/karts/controller/end_controller.cpp src/karts/controller/end_controller.hpp src/karts/controller/kart_control.hpp src/karts/controller/new_ai_controller.cpp src/karts/controller/new_ai_controller.hpp src/karts/controller/player_controller.cpp src/karts/controller/player_controller.hpp src/karts/emergency_animation.cpp src/karts/emergency_animation.hpp src/karts/kart.cpp src/karts/kart.hpp src/karts/kart_model.cpp src/karts/kart_model.hpp src/karts/kart_properties.cpp src/karts/kart_properties.hpp src/karts/kart_properties_manager.cpp src/karts/kart_properties_manager.hpp src/karts/kart_with_stats.cpp src/karts/kart_with_stats.hpp src/karts/max_speed.cpp src/karts/max_speed.hpp src/karts/moveable.cpp src/karts/moveable.hpp src/main.cpp src/main_loop.cpp src/main_loop.hpp src/modes/follow_the_leader.cpp src/modes/follow_the_leader.hpp src/modes/game_tutorial.cpp src/modes/game_tutorial.hpp src/modes/linear_world.cpp src/modes/linear_world.hpp src/modes/overworld.cpp src/modes/overworld.hpp src/modes/profile_world.cpp src/modes/profile_world.hpp src/modes/standard_race.cpp src/modes/standard_race.hpp src/modes/three_strikes_battle.cpp src/modes/three_strikes_battle.hpp src/modes/tutorial_race.cpp src/modes/tutorial_race.hpp src/modes/world.cpp src/modes/world.hpp src/modes/world_status.cpp src/modes/world_status.hpp src/modes/world_with_rank.cpp src/modes/world_with_rank.hpp src/network/character_confirm_message.hpp src/network/character_info_message.hpp src/network/character_selected_message.hpp src/network/connect_message.cpp src/network/connect_message.hpp src/network/flyable_info.hpp src/network/item_info.hpp src/network/kart_control_message.cpp src/network/kart_control_message.hpp src/network/kart_update_message.cpp src/network/kart_update_message.hpp src/network/message.cpp src/network/message.hpp src/network/network_kart.cpp src/network/network_kart.hpp src/network/network_manager.cpp src/network/network_manager.hpp src/network/num_players_message.hpp src/network/race_info_message.cpp src/network/race_info_message.hpp src/network/race_result_ack_message.hpp src/network/race_result_message.cpp src/network/race_result_message.hpp src/network/race_start_message.hpp src/network/race_state.cpp src/network/race_state.hpp src/network/remote_kart_info.hpp src/network/world_loaded_message.hpp src/physics/btKart.cpp src/physics/btKart.hpp src/physics/btKartRaycast.cpp src/physics/btKartRaycast.hpp src/physics/btUprightConstraint.cpp src/physics/btUprightConstraint.hpp src/physics/irr_debug_drawer.cpp src/physics/irr_debug_drawer.hpp src/physics/kart_motion_state.hpp src/physics/physical_object.cpp src/physics/physical_object.hpp src/physics/physics.cpp src/physics/physics.hpp src/physics/stk_dynamics_world.hpp src/physics/triangle_mesh.cpp src/physics/triangle_mesh.hpp src/physics/user_pointer.hpp src/race/grand_prix_data.cpp src/race/grand_prix_data.hpp src/race/grand_prix_manager.cpp src/race/grand_prix_manager.hpp src/race/highscore_manager.cpp src/race/highscore_manager.hpp src/race/highscores.cpp src/race/highscores.hpp src/race/history.cpp src/race/history.hpp src/race/race_manager.cpp src/race/race_manager.hpp src/replay/replay_base.cpp src/replay/replay_base.hpp src/replay/replay_buffer_tpl.hpp src/replay/replay_buffers.cpp src/replay/replay_buffers.hpp src/replay/replay_player.cpp src/replay/replay_player.hpp src/replay/replay_recorder.cpp src/replay/replay_recorder.hpp src/states_screens/addons_screen.cpp src/states_screens/addons_screen.hpp src/states_screens/arenas_screen.cpp src/states_screens/arenas_screen.hpp src/states_screens/challenges.cpp src/states_screens/challenges.hpp src/states_screens/credits.cpp src/states_screens/credits.hpp src/states_screens/dialogs/add_device_dialog.cpp src/states_screens/dialogs/add_device_dialog.hpp src/states_screens/dialogs/addons_loading.cpp src/states_screens/dialogs/addons_loading.hpp src/states_screens/dialogs/confirm_resolution_dialog.cpp src/states_screens/dialogs/confirm_resolution_dialog.hpp src/states_screens/dialogs/enter_player_name_dialog.cpp src/states_screens/dialogs/enter_player_name_dialog.hpp src/states_screens/dialogs/gp_info_dialog.cpp src/states_screens/dialogs/gp_info_dialog.hpp src/states_screens/dialogs/message_dialog.cpp src/states_screens/dialogs/message_dialog.hpp src/states_screens/dialogs/player_info_dialog.cpp src/states_screens/dialogs/player_info_dialog.hpp src/states_screens/dialogs/press_a_key_dialog.cpp src/states_screens/dialogs/press_a_key_dialog.hpp src/states_screens/dialogs/race_over_dialog.cpp src/states_screens/dialogs/race_over_dialog.hpp src/states_screens/dialogs/race_paused_dialog.cpp src/states_screens/dialogs/race_paused_dialog.hpp src/states_screens/dialogs/story_mode_new.cpp src/states_screens/dialogs/story_mode_new.hpp src/states_screens/dialogs/track_info_dialog.cpp src/states_screens/dialogs/track_info_dialog.hpp src/states_screens/feature_unlocked.cpp src/states_screens/feature_unlocked.hpp src/states_screens/grand_prix_lose.cpp src/states_screens/grand_prix_lose.hpp src/states_screens/grand_prix_win.cpp src/states_screens/grand_prix_win.hpp src/states_screens/help_screen_1.cpp src/states_screens/help_screen_1.hpp src/states_screens/help_screen_2.cpp src/states_screens/help_screen_2.hpp src/states_screens/help_screen_3.cpp src/states_screens/help_screen_3.hpp src/states_screens/help_screen_4.cpp src/states_screens/help_screen_4.hpp src/states_screens/kart_selection.cpp src/states_screens/kart_selection.hpp src/states_screens/main_menu_screen.cpp src/states_screens/main_menu_screen.hpp src/states_screens/minimal_race_gui.cpp src/states_screens/minimal_race_gui.hpp src/states_screens/options_screen_audio.cpp src/states_screens/options_screen_audio.hpp src/states_screens/options_screen_input.cpp src/states_screens/options_screen_input.hpp src/states_screens/options_screen_input2.cpp src/states_screens/options_screen_input2.hpp src/states_screens/options_screen_players.cpp src/states_screens/options_screen_players.hpp src/states_screens/options_screen_ui.cpp src/states_screens/options_screen_ui.hpp src/states_screens/options_screen_video.cpp src/states_screens/options_screen_video.hpp src/states_screens/race_gui.cpp src/states_screens/race_gui.hpp src/states_screens/race_gui_base.cpp src/states_screens/race_gui_base.hpp src/states_screens/race_result_gui.cpp src/states_screens/race_result_gui.hpp src/states_screens/race_setup_screen.cpp src/states_screens/race_setup_screen.hpp src/states_screens/state_manager.cpp src/states_screens/state_manager.hpp src/states_screens/story_mode_lobby.cpp src/states_screens/story_mode_lobby.hpp src/states_screens/tracks_screen.cpp src/states_screens/tracks_screen.hpp src/states_screens/tutorial_screen.cpp src/states_screens/tutorial_screen.hpp src/tinygettext/dictionary.cpp src/tinygettext/dictionary.hpp src/tinygettext/dictionary_manager.cpp src/tinygettext/dictionary_manager.hpp src/tinygettext/file_system.hpp src/tinygettext/iconv.cpp src/tinygettext/iconv.hpp src/tinygettext/language.cpp src/tinygettext/language.hpp src/tinygettext/log.cpp src/tinygettext/log.hpp src/tinygettext/log_stream.hpp src/tinygettext/plural_forms.cpp src/tinygettext/plural_forms.hpp src/tinygettext/po_parser.cpp src/tinygettext/po_parser.hpp src/tinygettext/stk_file_system.cpp src/tinygettext/stk_file_system.hpp src/tinygettext/tinygettext.cpp src/tinygettext/tinygettext.hpp src/tracks/ambient_light_sphere.cpp src/tracks/ambient_light_sphere.hpp src/tracks/bezier_curve.cpp src/tracks/bezier_curve.hpp src/tracks/check_lap.cpp src/tracks/check_lap.hpp src/tracks/check_line.cpp src/tracks/check_line.hpp src/tracks/check_manager.cpp src/tracks/check_manager.hpp src/tracks/check_sphere.cpp src/tracks/check_sphere.hpp src/tracks/check_structure.cpp src/tracks/check_structure.hpp src/tracks/graph_node.cpp src/tracks/graph_node.hpp src/tracks/lod_node_loader.cpp src/tracks/lod_node_loader.hpp src/tracks/quad.cpp src/tracks/quad.hpp src/tracks/quad_graph.cpp src/tracks/quad_graph.hpp src/tracks/quad_set.cpp src/tracks/quad_set.hpp src/tracks/terrain_info.cpp src/tracks/terrain_info.hpp src/tracks/track.cpp src/tracks/track.hpp src/tracks/track_manager.cpp src/tracks/track_manager.hpp src/tracks/track_object.cpp src/tracks/track_object.hpp src/tracks/track_object_manager.cpp src/tracks/track_object_manager.hpp src/tracks/track_sector.cpp src/tracks/track_sector.hpp src/tutorial/tutorial.cpp src/tutorial/tutorial.hpp src/tutorial/tutorial_data.cpp src/tutorial/tutorial_data.hpp src/tutorial/tutorial_manager.cpp src/tutorial/tutorial_manager.hpp src/utils/aligned_array.hpp src/utils/constants.cpp src/utils/constants.hpp src/utils/leak_check.cpp src/utils/leak_check.hpp src/utils/no_copy.hpp src/utils/profiler.cpp src/utils/profiler.hpp src/utils/ptr_vector.hpp src/utils/random_generator.cpp src/utils/random_generator.hpp src/utils/string_utils.cpp src/utils/string_utils.hpp src/utils/synchronised.hpp src/utils/time.hpp src/utils/translation.cpp src/utils/translation.hpp src/utils/utf8/checked.h src/utils/utf8/core.h src/utils/utf8/unchecked.h src/utils/utf8.h src/utils/vec3.cpp src/utils/vec3.hpp) +set( SRCS ${SRCS} src/addons/addon.cpp src/addons/addon.hpp src/addons/addons_manager.cpp src/addons/addons_manager.hpp src/addons/dummy_network_http.hpp src/addons/inetwork_http.hpp src/addons/network_http.cpp src/addons/network_http.hpp src/addons/news_manager.cpp src/addons/news_manager.hpp src/addons/request.cpp src/addons/request.hpp src/addons/zip.cpp src/addons/zip.hpp src/animations/animation_base.cpp src/animations/animation_base.hpp src/animations/billboard_animation.cpp src/animations/billboard_animation.hpp src/animations/ipo.cpp src/animations/ipo.hpp src/animations/three_d_animation.cpp src/animations/three_d_animation.hpp src/audio/dummy_sfx.hpp src/audio/music.hpp src/audio/music_dummy.hpp src/audio/music_information.cpp src/audio/music_information.hpp src/audio/music_manager.cpp src/audio/music_manager.hpp src/audio/music_ogg.cpp src/audio/music_ogg.hpp src/audio/sfx_base.hpp src/audio/sfx_buffer.cpp src/audio/sfx_buffer.hpp src/audio/sfx_manager.cpp src/audio/sfx_manager.hpp src/audio/sfx_openal.cpp src/audio/sfx_openal.hpp src/challenges/challenge.cpp src/challenges/challenge.hpp src/challenges/challenge_data.cpp src/challenges/challenge_data.hpp src/challenges/game_slot.cpp src/challenges/game_slot.hpp src/challenges/unlock_manager.cpp src/challenges/unlock_manager.hpp src/config/device_config.cpp src/config/device_config.hpp src/config/player.hpp src/config/stk_config.cpp src/config/stk_config.hpp src/config/user_config.cpp src/config/user_config.hpp src/enet/callbacks.c src/enet/compress.c src/enet/host.c src/enet/include/enet/callbacks.h src/enet/include/enet/enet.h src/enet/include/enet/list.h src/enet/include/enet/protocol.h src/enet/include/enet/time.h src/enet/include/enet/types.h src/enet/include/enet/unix.h src/enet/include/enet/utility.h src/enet/include/enet/win32.h src/enet/list.c src/enet/packet.c src/enet/peer.c src/enet/protocol.c src/enet/unix.c src/enet/win32.c src/graphics/camera.cpp src/graphics/camera.hpp src/graphics/CBatchingMesh.cpp src/graphics/CBatchingMesh.hpp src/graphics/explosion.cpp src/graphics/explosion.hpp src/graphics/hardware_skinning.cpp src/graphics/hardware_skinning.hpp src/graphics/hit_effect.hpp src/graphics/hit_sfx.cpp src/graphics/hit_sfx.hpp src/graphics/irr_driver.cpp src/graphics/irr_driver.hpp src/graphics/lod_node.cpp src/graphics/lod_node.hpp src/graphics/material.cpp src/graphics/material.hpp src/graphics/material_manager.cpp src/graphics/material_manager.hpp src/graphics/mesh_tools.cpp src/graphics/mesh_tools.hpp src/graphics/moving_texture.cpp src/graphics/moving_texture.hpp src/graphics/particle_emitter.cpp src/graphics/particle_emitter.hpp src/graphics/particle_kind.cpp src/graphics/particle_kind.hpp src/graphics/particle_kind_manager.cpp src/graphics/particle_kind_manager.hpp src/graphics/per_camera_node.cpp src/graphics/per_camera_node.hpp src/graphics/post_processing.cpp src/graphics/post_processing.hpp src/graphics/rain.cpp src/graphics/rain.hpp src/graphics/referee.cpp src/graphics/referee.hpp src/graphics/shadow.cpp src/graphics/shadow.hpp src/graphics/skid_marks.cpp src/graphics/skid_marks.hpp src/graphics/slip_stream.cpp src/graphics/slip_stream.hpp src/graphics/stars.cpp src/graphics/stars.hpp src/guiengine/abstract_state_manager.cpp src/guiengine/abstract_state_manager.hpp src/guiengine/abstract_top_level_container.cpp src/guiengine/abstract_top_level_container.hpp src/guiengine/CGUISpriteBank.cpp src/guiengine/CGUISpriteBank.h src/guiengine/engine.cpp src/guiengine/engine.hpp src/guiengine/event_handler.cpp src/guiengine/event_handler.hpp src/guiengine/layout_manager.cpp src/guiengine/layout_manager.hpp src/guiengine/modaldialog.cpp src/guiengine/modaldialog.hpp src/guiengine/scalable_font.cpp src/guiengine/scalable_font.hpp src/guiengine/screen.cpp src/guiengine/screen.hpp src/guiengine/screen_loader.cpp src/guiengine/skin.cpp src/guiengine/skin.hpp src/guiengine/widget.cpp src/guiengine/widget.hpp src/guiengine/widgets/bubble_widget.cpp src/guiengine/widgets/bubble_widget.hpp src/guiengine/widgets/button_widget.cpp src/guiengine/widgets/button_widget.hpp src/guiengine/widgets/CGUIEditBox.cpp src/guiengine/widgets/CGUIEditBox.h src/guiengine/widgets/check_box_widget.cpp src/guiengine/widgets/check_box_widget.hpp src/guiengine/widgets/dynamic_ribbon_widget.cpp src/guiengine/widgets/dynamic_ribbon_widget.hpp src/guiengine/widgets/icon_button_widget.cpp src/guiengine/widgets/icon_button_widget.hpp src/guiengine/widgets/label_widget.cpp src/guiengine/widgets/label_widget.hpp src/guiengine/widgets/list_widget.cpp src/guiengine/widgets/list_widget.hpp src/guiengine/widgets/model_view_widget.cpp src/guiengine/widgets/model_view_widget.hpp src/guiengine/widgets/progress_bar_widget.cpp src/guiengine/widgets/progress_bar_widget.hpp src/guiengine/widgets/ribbon_widget.cpp src/guiengine/widgets/ribbon_widget.hpp src/guiengine/widgets/spinner_widget.cpp src/guiengine/widgets/spinner_widget.hpp src/guiengine/widgets/text_box_widget.cpp src/guiengine/widgets/text_box_widget.hpp src/guiengine/widgets.hpp src/input/binding.cpp src/input/binding.hpp src/input/device_manager.cpp src/input/device_manager.hpp src/input/input.hpp src/input/input_device.cpp src/input/input_device.hpp src/input/input_manager.cpp src/input/input_manager.hpp src/io/file_manager.cpp src/io/file_manager.hpp src/io/xml_node.cpp src/io/xml_node.hpp src/io/xml_writer.cpp src/io/xml_writer.hpp src/items/attachment.cpp src/items/attachment.hpp src/items/attachment_manager.cpp src/items/attachment_manager.hpp src/items/attachment_plugin.hpp src/items/bowling.cpp src/items/bowling.hpp src/items/cake.cpp src/items/cake.hpp src/items/flyable.cpp src/items/flyable.hpp src/items/item.cpp src/items/item.hpp src/items/item_manager.cpp src/items/item_manager.hpp src/items/plunger.cpp src/items/plunger.hpp src/items/powerup.cpp src/items/powerup.hpp src/items/powerup_manager.cpp src/items/powerup_manager.hpp src/items/projectile_manager.cpp src/items/projectile_manager.hpp src/items/rubber_ball.cpp src/items/rubber_ball.hpp src/items/rubber_band.cpp src/items/rubber_band.hpp src/items/swatter.cpp src/items/swatter.hpp src/karts/controller/ai_base_controller.cpp src/karts/controller/ai_base_controller.hpp src/karts/controller/controller.cpp src/karts/controller/controller.hpp src/karts/controller/default_ai_controller.cpp src/karts/controller/default_ai_controller.hpp src/karts/controller/end_controller.cpp src/karts/controller/end_controller.hpp src/karts/controller/kart_control.hpp src/karts/controller/new_ai_controller.cpp src/karts/controller/new_ai_controller.hpp src/karts/controller/player_controller.cpp src/karts/controller/player_controller.hpp src/karts/emergency_animation.cpp src/karts/emergency_animation.hpp src/karts/kart.cpp src/karts/kart.hpp src/karts/kart_model.cpp src/karts/kart_model.hpp src/karts/kart_properties.cpp src/karts/kart_properties.hpp src/karts/kart_properties_manager.cpp src/karts/kart_properties_manager.hpp src/karts/kart_with_stats.cpp src/karts/kart_with_stats.hpp src/karts/max_speed.cpp src/karts/max_speed.hpp src/karts/moveable.cpp src/karts/moveable.hpp src/main.cpp src/main_loop.cpp src/main_loop.hpp src/modes/follow_the_leader.cpp src/modes/follow_the_leader.hpp src/modes/game_tutorial.cpp src/modes/game_tutorial.hpp src/modes/linear_world.cpp src/modes/linear_world.hpp src/modes/overworld.cpp src/modes/overworld.hpp src/modes/profile_world.cpp src/modes/profile_world.hpp src/modes/standard_race.cpp src/modes/standard_race.hpp src/modes/three_strikes_battle.cpp src/modes/three_strikes_battle.hpp src/modes/tutorial_race.cpp src/modes/tutorial_race.hpp src/modes/world.cpp src/modes/world.hpp src/modes/world_status.cpp src/modes/world_status.hpp src/modes/world_with_rank.cpp src/modes/world_with_rank.hpp src/network/character_confirm_message.hpp src/network/character_info_message.hpp src/network/character_selected_message.hpp src/network/connect_message.cpp src/network/connect_message.hpp src/network/flyable_info.hpp src/network/item_info.hpp src/network/kart_control_message.cpp src/network/kart_control_message.hpp src/network/kart_update_message.cpp src/network/kart_update_message.hpp src/network/message.cpp src/network/message.hpp src/network/network_kart.cpp src/network/network_kart.hpp src/network/network_manager.cpp src/network/network_manager.hpp src/network/num_players_message.hpp src/network/race_info_message.cpp src/network/race_info_message.hpp src/network/race_result_ack_message.hpp src/network/race_result_message.cpp src/network/race_result_message.hpp src/network/race_start_message.hpp src/network/race_state.cpp src/network/race_state.hpp src/network/remote_kart_info.hpp src/network/world_loaded_message.hpp src/physics/btKart.cpp src/physics/btKart.hpp src/physics/btKartRaycast.cpp src/physics/btKartRaycast.hpp src/physics/btUprightConstraint.cpp src/physics/btUprightConstraint.hpp src/physics/irr_debug_drawer.cpp src/physics/irr_debug_drawer.hpp src/physics/kart_motion_state.hpp src/physics/physical_object.cpp src/physics/physical_object.hpp src/physics/physics.cpp src/physics/physics.hpp src/physics/stk_dynamics_world.hpp src/physics/triangle_mesh.cpp src/physics/triangle_mesh.hpp src/physics/user_pointer.hpp src/race/grand_prix_data.cpp src/race/grand_prix_data.hpp src/race/grand_prix_manager.cpp src/race/grand_prix_manager.hpp src/race/highscore_manager.cpp src/race/highscore_manager.hpp src/race/highscores.cpp src/race/highscores.hpp src/race/history.cpp src/race/history.hpp src/race/race_manager.cpp src/race/race_manager.hpp src/replay/replay_base.cpp src/replay/replay_base.hpp src/replay/replay_buffer_tpl.hpp src/replay/replay_buffers.cpp src/replay/replay_buffers.hpp src/replay/replay_player.cpp src/replay/replay_player.hpp src/replay/replay_recorder.cpp src/replay/replay_recorder.hpp src/states_screens/addons_screen.cpp src/states_screens/addons_screen.hpp src/states_screens/arenas_screen.cpp src/states_screens/arenas_screen.hpp src/states_screens/challenges.cpp src/states_screens/challenges.hpp src/states_screens/credits.cpp src/states_screens/credits.hpp src/states_screens/dialogs/add_device_dialog.cpp src/states_screens/dialogs/add_device_dialog.hpp src/states_screens/dialogs/addons_loading.cpp src/states_screens/dialogs/addons_loading.hpp src/states_screens/dialogs/confirm_resolution_dialog.cpp src/states_screens/dialogs/confirm_resolution_dialog.hpp src/states_screens/dialogs/custom_video_settings.cpp src/states_screens/dialogs/custom_video_settings.hpp src/states_screens/dialogs/enter_player_name_dialog.cpp src/states_screens/dialogs/enter_player_name_dialog.hpp src/states_screens/dialogs/gp_info_dialog.cpp src/states_screens/dialogs/gp_info_dialog.hpp src/states_screens/dialogs/message_dialog.cpp src/states_screens/dialogs/message_dialog.hpp src/states_screens/dialogs/player_info_dialog.cpp src/states_screens/dialogs/player_info_dialog.hpp src/states_screens/dialogs/press_a_key_dialog.cpp src/states_screens/dialogs/press_a_key_dialog.hpp src/states_screens/dialogs/race_over_dialog.cpp src/states_screens/dialogs/race_over_dialog.hpp src/states_screens/dialogs/race_paused_dialog.cpp src/states_screens/dialogs/race_paused_dialog.hpp src/states_screens/dialogs/story_mode_new.cpp src/states_screens/dialogs/story_mode_new.hpp src/states_screens/dialogs/track_info_dialog.cpp src/states_screens/dialogs/track_info_dialog.hpp src/states_screens/feature_unlocked.cpp src/states_screens/feature_unlocked.hpp src/states_screens/grand_prix_lose.cpp src/states_screens/grand_prix_lose.hpp src/states_screens/grand_prix_win.cpp src/states_screens/grand_prix_win.hpp src/states_screens/help_screen_1.cpp src/states_screens/help_screen_1.hpp src/states_screens/help_screen_2.cpp src/states_screens/help_screen_2.hpp src/states_screens/help_screen_3.cpp src/states_screens/help_screen_3.hpp src/states_screens/help_screen_4.cpp src/states_screens/help_screen_4.hpp src/states_screens/kart_selection.cpp src/states_screens/kart_selection.hpp src/states_screens/main_menu_screen.cpp src/states_screens/main_menu_screen.hpp src/states_screens/minimal_race_gui.cpp src/states_screens/minimal_race_gui.hpp src/states_screens/options_screen_audio.cpp src/states_screens/options_screen_audio.hpp src/states_screens/options_screen_input.cpp src/states_screens/options_screen_input.hpp src/states_screens/options_screen_input2.cpp src/states_screens/options_screen_input2.hpp src/states_screens/options_screen_players.cpp src/states_screens/options_screen_players.hpp src/states_screens/options_screen_ui.cpp src/states_screens/options_screen_ui.hpp src/states_screens/options_screen_video.cpp src/states_screens/options_screen_video.hpp src/states_screens/race_gui.cpp src/states_screens/race_gui.hpp src/states_screens/race_gui_base.cpp src/states_screens/race_gui_base.hpp src/states_screens/race_result_gui.cpp src/states_screens/race_result_gui.hpp src/states_screens/race_setup_screen.cpp src/states_screens/race_setup_screen.hpp src/states_screens/state_manager.cpp src/states_screens/state_manager.hpp src/states_screens/story_mode_lobby.cpp src/states_screens/story_mode_lobby.hpp src/states_screens/tracks_screen.cpp src/states_screens/tracks_screen.hpp src/states_screens/tutorial_screen.cpp src/states_screens/tutorial_screen.hpp src/tinygettext/dictionary.cpp src/tinygettext/dictionary.hpp src/tinygettext/dictionary_manager.cpp src/tinygettext/dictionary_manager.hpp src/tinygettext/file_system.hpp src/tinygettext/iconv.cpp src/tinygettext/iconv.hpp src/tinygettext/language.cpp src/tinygettext/language.hpp src/tinygettext/log.cpp src/tinygettext/log.hpp src/tinygettext/log_stream.hpp src/tinygettext/plural_forms.cpp src/tinygettext/plural_forms.hpp src/tinygettext/po_parser.cpp src/tinygettext/po_parser.hpp src/tinygettext/stk_file_system.cpp src/tinygettext/stk_file_system.hpp src/tinygettext/tinygettext.cpp src/tinygettext/tinygettext.hpp src/tracks/ambient_light_sphere.cpp src/tracks/ambient_light_sphere.hpp src/tracks/bezier_curve.cpp src/tracks/bezier_curve.hpp src/tracks/check_lap.cpp src/tracks/check_lap.hpp src/tracks/check_line.cpp src/tracks/check_line.hpp src/tracks/check_manager.cpp src/tracks/check_manager.hpp src/tracks/check_sphere.cpp src/tracks/check_sphere.hpp src/tracks/check_structure.cpp src/tracks/check_structure.hpp src/tracks/graph_node.cpp src/tracks/graph_node.hpp src/tracks/lod_node_loader.cpp src/tracks/lod_node_loader.hpp src/tracks/quad.cpp src/tracks/quad.hpp src/tracks/quad_graph.cpp src/tracks/quad_graph.hpp src/tracks/quad_set.cpp src/tracks/quad_set.hpp src/tracks/terrain_info.cpp src/tracks/terrain_info.hpp src/tracks/track.cpp src/tracks/track.hpp src/tracks/track_manager.cpp src/tracks/track_manager.hpp src/tracks/track_object.cpp src/tracks/track_object.hpp src/tracks/track_object_manager.cpp src/tracks/track_object_manager.hpp src/tracks/track_sector.cpp src/tracks/track_sector.hpp src/tutorial/tutorial.cpp src/tutorial/tutorial.hpp src/tutorial/tutorial_data.cpp src/tutorial/tutorial_data.hpp src/tutorial/tutorial_manager.cpp src/tutorial/tutorial_manager.hpp src/utils/aligned_array.hpp src/utils/constants.cpp src/utils/constants.hpp src/utils/leak_check.cpp src/utils/leak_check.hpp src/utils/no_copy.hpp src/utils/profiler.cpp src/utils/profiler.hpp src/utils/ptr_vector.hpp src/utils/random_generator.cpp src/utils/random_generator.hpp src/utils/string_utils.cpp src/utils/string_utils.hpp src/utils/synchronised.hpp src/utils/time.hpp src/utils/translation.cpp src/utils/translation.hpp src/utils/utf8/checked.h src/utils/utf8/core.h src/utils/utf8/unchecked.h src/utils/utf8.h src/utils/vec3.cpp src/utils/vec3.hpp) if (APPLE) # icon files to copy in the bundle diff --git a/data/gui/options_video.stkgui b/data/gui/options_video.stkgui index d003ee9ee..3be05d892 100644 --- a/data/gui/options_video.stkgui +++ b/data/gui/options_video.stkgui @@ -16,21 +16,27 @@ - + -
+
+ - +
@@ -38,8 +44,9 @@
+ - +
@@ -49,7 +56,7 @@
- +
diff --git a/src/ide/Xcode/STK_XCode.xcodeproj/project.pbxproj b/src/ide/Xcode/STK_XCode.xcodeproj/project.pbxproj index ab5c911b2..32b2239f1 100644 --- a/src/ide/Xcode/STK_XCode.xcodeproj/project.pbxproj +++ b/src/ide/Xcode/STK_XCode.xcodeproj/project.pbxproj @@ -299,6 +299,7 @@ 9576460812BAD1CF00DB80C7 /* tutorial_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9576460512BAD1CF00DB80C7 /* tutorial_manager.cpp */; }; 957817DC142142C500AD07B2 /* referee.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 957817DA142142C500AD07B2 /* referee.cpp */; }; 957899B813C8E05F007AA5A3 /* profiler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 957899B613C8E05F007AA5A3 /* profiler.cpp */; }; + 957957A214A3CA3900E72497 /* custom_video_settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 957957A014A3CA3900E72497 /* custom_video_settings.cpp */; }; 957A2D291405E21D00F45B22 /* hit_sfx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 957A2D271405E21D00F45B22 /* hit_sfx.cpp */; }; 957ED4801163FF18002AB42C /* ai_base_controller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 957ED47E1163FF18002AB42C /* ai_base_controller.cpp */; }; 958330CC10122B4A00C5137E /* engine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 958330B210122B4A00C5137E /* engine.cpp */; }; @@ -1059,6 +1060,8 @@ 957817DB142142C500AD07B2 /* referee.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = referee.hpp; path = ../../graphics/referee.hpp; sourceTree = SOURCE_ROOT; }; 957899B613C8E05F007AA5A3 /* profiler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = profiler.cpp; path = ../../utils/profiler.cpp; sourceTree = SOURCE_ROOT; }; 957899B713C8E05F007AA5A3 /* profiler.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = profiler.hpp; path = ../../utils/profiler.hpp; sourceTree = SOURCE_ROOT; }; + 957957A014A3CA3900E72497 /* custom_video_settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = custom_video_settings.cpp; path = ../../states_screens/dialogs/custom_video_settings.cpp; sourceTree = SOURCE_ROOT; }; + 957957A114A3CA3900E72497 /* custom_video_settings.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = custom_video_settings.hpp; path = ../../states_screens/dialogs/custom_video_settings.hpp; sourceTree = SOURCE_ROOT; }; 957A2D261405E21D00F45B22 /* hit_effect.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = hit_effect.hpp; path = ../../graphics/hit_effect.hpp; sourceTree = SOURCE_ROOT; }; 957A2D271405E21D00F45B22 /* hit_sfx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hit_sfx.cpp; path = ../../graphics/hit_sfx.cpp; sourceTree = SOURCE_ROOT; }; 957A2D281405E21D00F45B22 /* hit_sfx.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = hit_sfx.hpp; path = ../../graphics/hit_sfx.hpp; sourceTree = SOURCE_ROOT; }; @@ -2289,6 +2292,8 @@ 95E6A0BF11DCF37800AE088A /* addons_loading.hpp */, 95E246BC111A2959000C965D /* confirm_resolution_dialog.cpp */, 95E246BD111A2959000C965D /* confirm_resolution_dialog.hpp */, + 957957A014A3CA3900E72497 /* custom_video_settings.cpp */, + 957957A114A3CA3900E72497 /* custom_video_settings.hpp */, 95833237101243ED00C5137E /* enter_player_name_dialog.cpp */, 95833238101243ED00C5137E /* enter_player_name_dialog.hpp */, 95634EF01126272C009C145D /* gp_info_dialog.cpp */, @@ -3207,6 +3212,7 @@ 95E5C335148C19F500AD3FCC /* story_mode_new.cpp in Sources */, 95E5C3C2148C418100AD3FCC /* game_slot.cpp in Sources */, 9593366B149EC9B10031FD41 /* overworld.cpp in Sources */, + 957957A214A3CA3900E72497 /* custom_video_settings.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/src/states_screens/dialogs/custom_video_settings.cpp b/src/states_screens/dialogs/custom_video_settings.cpp new file mode 100644 index 000000000..9924aa239 --- /dev/null +++ b/src/states_screens/dialogs/custom_video_settings.cpp @@ -0,0 +1,122 @@ +// SuperTuxKart - a fun racing game with go-kart +// Copyright (C) 2009 Marianne Gagnon +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +#include "states_screens/dialogs/custom_video_settings.hpp" + +#include "config/user_config.hpp" +#include "guiengine/widgets/check_box_widget.hpp" +#include "guiengine/widgets/spinner_widget.hpp" +#include "states_screens/options_screen_video.hpp" +#include "utils/translation.hpp" + +#include + + +using namespace GUIEngine; +using namespace irr; +using namespace irr::core; +using namespace irr::gui; + +// ----------------------------------------------------------------------------- + +CustomVideoSettingsialog::CustomVideoSettingsialog(const float w, const float h) : + ModalDialog(w, h) +{ + loadFromFile("custom_video_settings.stkgui"); +} + +// ----------------------------------------------------------------------------- + +CustomVideoSettingsialog::~CustomVideoSettingsialog() +{ +} + +// ----------------------------------------------------------------------------- + +void CustomVideoSettingsialog::beforeAddingWidgets() +{ + getWidget("anim_gfx")->setState( UserConfigParams::m_graphical_effects ); + getWidget("weather_gfx")->setState( UserConfigParams::m_weather_effects ); + + SpinnerWidget* kart_anim = getWidget("steering_animations"); + kart_anim->addLabel( _("Disabled") ); // 0 + //I18N: animations setting (only karts with human players are animated) + kart_anim->addLabel( _("Human players only") ); // 1 + //I18N: animations setting (all karts are animated) + kart_anim->addLabel( _("Enabled for all") ); // 2 + kart_anim->setValue( UserConfigParams::m_show_steering_animations ); + + SpinnerWidget* filtering = getWidget("filtering"); + int value = 0; + if (UserConfigParams::m_anisotropic) value = 2; + else if (UserConfigParams::m_trilinear) value = 1; + filtering->addLabel( L"Bilinear" ); // 0 + filtering->addLabel( L"Trilinear" ); // 1 + filtering->addLabel( L"Anisotropic" ); // 2 + printf("filtering : %i\n", value); + filtering->setValue( value ); + + getWidget("antialiasing")->setState( UserConfigParams::m_fullscreen_antialiasing ); + getWidget("postprocessing")->setState( UserConfigParams::m_postprocess_enabled ); +} + +// ----------------------------------------------------------------------------- + +GUIEngine::EventPropagation CustomVideoSettingsialog::processEvent(const std::string& eventSource) +{ + if (eventSource == "close") + { + UserConfigParams::m_graphical_effects = + getWidget("anim_gfx")->getState(); + UserConfigParams::m_weather_effects = + getWidget("weather_gfx")->getState(); + UserConfigParams::m_fullscreen_antialiasing = + getWidget("antialiasing")->getState(); + UserConfigParams::m_postprocess_enabled = + getWidget("postprocessing")->getState(); + UserConfigParams::m_show_steering_animations = + getWidget("steering_animations")->getValue(); + + switch (getWidget("filtering")->getValue()) + { + case 0: + UserConfigParams::m_anisotropic = false; + UserConfigParams::m_trilinear = false; + break; + case 1: + UserConfigParams::m_anisotropic = false; + UserConfigParams::m_trilinear = true; + break; + case 2: + UserConfigParams::m_anisotropic = true; + UserConfigParams::m_trilinear = true; + break; + } + + user_config->saveConfig(); + + ModalDialog::dismiss(); + OptionsScreenVideo::getInstance()->updateGfxSlider(); + return GUIEngine::EVENT_BLOCK; + } + + return GUIEngine::EVENT_LET; +} + +// ----------------------------------------------------------------------------- + + diff --git a/src/states_screens/dialogs/custom_video_settings.hpp b/src/states_screens/dialogs/custom_video_settings.hpp new file mode 100644 index 000000000..617c1d1b9 --- /dev/null +++ b/src/states_screens/dialogs/custom_video_settings.hpp @@ -0,0 +1,44 @@ +// SuperTuxKart - a fun racing game with go-kart +// Copyright (C) 2009 Marianne Gagnon +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifndef HEADER_CUSTOM_VIDEO_SETTINGS_HPP +#define HEADER_CUSTOM_VIDEO_SETTINGS_HPP + +#include "guiengine/modaldialog.hpp" + +/** + * \brief Dialog that allows the player to select custom video settings + * \ingroup states_screens + */ +class CustomVideoSettingsialog : public GUIEngine::ModalDialog +{ + +public: + /** + * Creates a modal dialog with given percentage of screen width and height + */ + CustomVideoSettingsialog(const float percentWidth, const float percentHeight); + ~CustomVideoSettingsialog(); + + virtual void beforeAddingWidgets(); + + GUIEngine::EventPropagation processEvent(const std::string& eventSource); + +}; + +#endif diff --git a/src/states_screens/options_screen_video.cpp b/src/states_screens/options_screen_video.cpp index 1d249fc8e..b2b06a4ba 100644 --- a/src/states_screens/options_screen_video.cpp +++ b/src/states_screens/options_screen_video.cpp @@ -28,6 +28,7 @@ #include "guiengine/widgets/spinner_widget.hpp" #include "guiengine/widget.hpp" #include "io/file_manager.hpp" +#include "states_screens/dialogs/custom_video_settings.hpp" #include "states_screens/options_screen_audio.hpp" #include "states_screens/options_screen_input.hpp" #include "states_screens/options_screen_players.hpp" @@ -275,19 +276,7 @@ void OptionsScreenVideo::init() // --- set gfx settings values - for (int l=0; lsetValue(l+1); - break; - } - } - + updateGfxSlider(); // ---- forbid changing resolution or animation settings from in-game // (we need to disable them last because some items can't be edited when @@ -300,12 +289,42 @@ void OptionsScreenVideo::init() gfx->setDeactivated(); } - updateTooltip(); } // init // ---------------------------------------------------------------------------- +void OptionsScreenVideo::updateGfxSlider() +{ + GUIEngine::SpinnerWidget* gfx = + getWidget("gfx_level"); + assert( gfx != NULL ); + + bool found = false; + for (int l=0; lsetValue(l+1); + found = true; + break; + } + } + + if (!found) + { + //I18N: custom video settings + gfx->setCustomText( _("Custom") ); + } + +} + +// ---------------------------------------------------------------------------- + void OptionsScreenVideo::updateTooltip() { GUIEngine::SpinnerWidget* gfx = @@ -376,6 +395,10 @@ void OptionsScreenVideo::eventCallback(Widget* widget, const std::string& name, { StateManager::get()->escapePressed(); } + else if(name == "custom") + { + new CustomVideoSettingsialog(0.8f, 0.8f); + } else if(name == "apply_resolution") { using namespace GUIEngine; diff --git a/src/states_screens/options_screen_video.hpp b/src/states_screens/options_screen_video.hpp index a8005315e..b6dffa5ef 100644 --- a/src/states_screens/options_screen_video.hpp +++ b/src/states_screens/options_screen_video.hpp @@ -57,6 +57,8 @@ public: /** \brief implement optional callback from parent class GUIEngine::Screen */ virtual void unloaded(); + + void updateGfxSlider(); }; #endif