sge::font::string sanguis::client::gui::perk::make_description( sanguis::client::perk::info const &_info ) { return SGE_FONT_LIT('(') + sge::font::from_fcppt_string( fcppt::insert_to_fcppt_string( _info.level() ) ) + SGE_FONT_LIT('/') + sge::font::from_fcppt_string( fcppt::insert_to_fcppt_string( _info.max_level() ) ) + SGE_FONT_LIT(") (requires player level ") + sge::font::from_fcppt_string( fcppt::insert_to_fcppt_string( _info.required_player_level() ) ) + SGE_FONT_LIT(", parent level ") + sge::font::from_fcppt_string( fcppt::insert_to_fcppt_string( _info.required_parent_level() ) ) + SGE_FONT_LIT(')') ; }
sanguis::server::console::console( sanguis::server::send_callback const &_send, sanguis::server::unicast_callback const &_unicast ) : object_( sge::console::prefix( SGE_FONT_LIT('/') ) ), send_( _send ), unicast_( _unicast ), known_commands_() { }
awl::main::exit_code const example_main( awl::main::function_context const &_main_function_context ) try { if( _main_function_context.argc() > 2 ) { fcppt::io::cerr() << FCPPT_TEXT("Pass exactly one argument to show a given text") FCPPT_TEXT(" or pass nothing to see the default text.\n"); return awl::main::exit_failure(); } sge::systems::instance< boost::mpl::vector4< sge::systems::with_renderer< sge::systems::renderer_caps::ffp >, sge::systems::with_window, sge::systems::with_input< boost::mpl::vector1< sge::systems::keyboard_collector > >, sge::systems::with_image2d > > const sys( sge::systems::make_list ( sge::systems::window( sge::systems::window_source( sge::systems::original_window( sge::window::title( FCPPT_TEXT("sge animtest") ) ) ) ) ) ( sge::systems::renderer( sge::renderer::pixel_format::object( sge::renderer::pixel_format::color::depth32, sge::renderer::pixel_format::depth_stencil::off, sge::renderer::pixel_format::optional_multi_samples(), sge::renderer::pixel_format::srgb::no ), sge::renderer::display_mode::parameters( sge::renderer::display_mode::vsync::on, sge::renderer::display_mode::optional_object() ), sge::viewport::optional_resize_callback{ sge::viewport::center_on_resize( sge::window::dim{ 1024u, 768u } ) } ) ) ( sge::systems::input( sge::systems::cursor_option_field::null() ) ) ( sge::systems::image2d( sge::media::optional_extension_set( sge::media::extension_set{ sge::media::extension( FCPPT_TEXT("png") ) } ) ) ) ); sge::font::object_unique_ptr const font_object( sge::font::bitmap::create( sys.log_context(), sge::config::media_path() / FCPPT_TEXT("fonts") / FCPPT_TEXT("bitmap") / FCPPT_TEXT("font.json"), sys.image_system() ) ); fcppt::signal::auto_connection const escape_connection( sge::systems::quit_on_escape( sys ) ); sge::font::string const string( _main_function_context.argc() == 2 ? sge::font::from_fcppt_string( fcppt::from_std_string( _main_function_context.argv()[1] ) ) : SGE_FONT_LIT("test abcd e 123456789 10 11") ); sge::font::draw::static_text static_text_left( sys.renderer_device_ffp(), *font_object, string, sge::font::text_parameters( sge::font::align_h::variant( sge::font::align_h::left( sge::font::align_h::max_width( 300 ) ) ) ), sge::font::vector( 100, 100 ), sge::image::color::predef::white(), sge::renderer::texture::emulate_srgb::yes ); sge::font::draw::static_text static_text_center( sys.renderer_device_ffp(), *font_object, string, sge::font::text_parameters( sge::font::align_h::variant( sge::font::align_h::center( sge::font::align_h::max_width( 300 ) ) ) ), sge::font::vector( 400, 100 ), sge::image::color::predef::white(), sge::renderer::texture::emulate_srgb::yes ); sge::font::draw::static_text static_text_right( sys.renderer_device_ffp(), *font_object, string, sge::font::text_parameters( sge::font::align_h::variant( sge::font::align_h::right( sge::font::align_h::max_width( 300 ) ) ) ), sge::font::vector( 700, 100 ), sge::image::color::predef::white(), sge::renderer::texture::emulate_srgb::yes ); while( sys.window_system().poll() ) { sge::renderer::context::scoped_ffp const scoped_block( sys.renderer_device_ffp(), sys.renderer_device_ffp().onscreen_target() ); scoped_block.get().clear( sge::renderer::clear::parameters() .back_buffer( sge::image::color::predef::black() ) ); static_text_left.draw( scoped_block.get() ); static_text_center.draw( scoped_block.get() ); static_text_right.draw( scoped_block.get() ); } return sys.window_system().exit_code(); } catch( fcppt::exception const &_exception ) { fcppt::io::cerr() << _exception.string() << FCPPT_TEXT('\n'); return awl::main::exit_failure(); } catch( std::exception const &_exception ) { std::cerr << _exception.what() << '\n'; return awl::main::exit_failure(); }
awl::main::exit_code const example_main( awl::main::function_context const & ) try { sge::systems::instance< boost::mpl::vector5< sge::systems::with_renderer< sge::systems::renderer_caps::ffp >, sge::systems::with_window, sge::systems::with_input< boost::mpl::vector2< sge::systems::focus_collector, sge::systems::keyboard_collector > >, sge::systems::with_image2d, sge::systems::with_font > > const sys( sge::systems::make_list ( sge::systems::window( sge::systems::window_source( sge::systems::original_window( sge::window::title( FCPPT_TEXT("sge console test") ) ) ) ) ) ( sge::systems::renderer( sge::renderer::pixel_format::object( sge::renderer::pixel_format::color::depth32, sge::renderer::pixel_format::depth_stencil::off, sge::renderer::pixel_format::optional_multi_samples(), sge::renderer::pixel_format::srgb::no ), sge::renderer::display_mode::parameters( sge::renderer::display_mode::vsync::on, sge::renderer::display_mode::optional_object() ), sge::viewport::optional_resize_callback{ sge::viewport::center_on_resize( sge::window::dim{ 1024u, 768u } ) } ) ) ( sge::systems::input( sge::systems::cursor_option_field::null() ) ) ( sge::systems::image2d( sge::media::optional_extension_set( sge::media::extension_set{ sge::media::extension( FCPPT_TEXT("png") ) } ) ) ) ); fcppt::signal::auto_connection const escape_connection( sge::systems::quit_on_escape( sys ) ); sge::console::object object( sge::console::prefix( SGE_FONT_LIT('/') ) ); fcppt::signal::auto_connection const c0( object.insert( sge::console::callback::convenience< void() >( [ &sys ]{ sys.window_system().quit( awl::main::exit_success() ); }, sge::console::callback::name( SGE_FONT_LIT("quit") ), sge::console::callback::short_description( SGE_FONT_LIT("Usage: /quit") ) ) ) ); fcppt::signal::auto_connection const c1( object.register_fallback( sge::console::fallback{ []( sge::font::string const &_arg ) { fcppt::io::cout() << FCPPT_TEXT("fallback called with argument:") << sge::font::to_fcppt_string( _arg ) << FCPPT_TEXT('\n'); } } ) ); fcppt::signal::auto_connection const c2( object.insert( sge::console::callback::convenience< void(float) >( [ &object ]( float const _value ) { object.emit_message( SGE_FONT_LIT("New value is ") + fcppt::insert_to_string< sge::font::string >( _value + 1.f ) ); }, sge::console::callback::name( SGE_FONT_LIT("increment") ), sge::console::callback::short_description( SGE_FONT_LIT("Usage: /increment <float-value>") ) ) .long_description( SGE_FONT_LIT("Increments the float value (extremely useful!)") ) ) ); sge::texture::part_raw_ptr const tex_bg( sge::renderer::texture::create_planar_from_path( sge::config::media_path() / FCPPT_TEXT("images") / FCPPT_TEXT("grass.png"), sys.renderer_device_ffp(), sys.image_system(), sge::renderer::texture::mipmap::off(), sge::renderer::resource_flags_field::null(), sge::renderer::texture::emulate_srgb_from_caps( sys.renderer_device_ffp().caps() ) ) ); sge::font::object_unique_ptr const font_object( sys.font_system().create_font( sge::font::parameters() ) ); sge::console::gfx::object gfx( object, sys.renderer_device_ffp(), sge::console::gfx::font_color( sge::image::color::predef::white() ), *font_object, sys.focus_collector(), sge::font::rect{ fcppt::math::vector::null< sge::font::rect::vector >(), sge::font::rect::dim{ 400, 300 } }, sge::console::gfx::output_line_limit( 100u ) ); sge::console::muxing_narrow_streambuf stdout_streambuf( std::cout, object, sge::console::muxing::enabled); std::cout << "Test for console muxer (cout).\n"; std::cout << "You should see this message in the console and in the terminal (if available)\n"; sge::console::muxing_narrow_streambuf stderr_streambuf( std::cerr, object, sge::console::muxing::disabled); std::cerr << "Test for console muxer (cerr).\n"; std::cerr << "You should see this message _only_ in the console and _not_ in the terminal (if available)\n"; gfx.active( true ); while( sys.window_system().poll() ) { sge::renderer::context::scoped_ffp const scoped_block( sys.renderer_device_ffp(), sys.renderer_device_ffp().onscreen_target() ); scoped_block.get().clear( sge::renderer::clear::parameters() .back_buffer( sge::image::color::predef::black() ) ); gfx.render( scoped_block.get() ); } return sys.window_system().exit_code(); } catch( fcppt::exception const &_error ) { fcppt::io::cerr() << _error.string() << FCPPT_TEXT('\n'); return awl::main::exit_failure(); } catch( std::exception const &_error ) { std::cerr << _error.what() << '\n'; return awl::main::exit_failure(); }
sge::gui::widget::choices::choices( sge::gui::context &_context, sge::gui::style::base const &_style, sge::renderer::device::ffp &_renderer, sge::font::object &_font, sge::gui::string_container const &_strings, sge::gui::optional_index const _opt_index ) : sge::gui::widget::box_container( _context, sge::gui::widget::reference_alignment_vector(), sge::rucksack::axis::x ), strings_( _strings ), left_button_( _style, _renderer, _font, SGE_FONT_LIT("<"), sge::gui::optional_needed_width() ), middle_text_( _style, _renderer, _font, fcppt::optional::maybe( _opt_index, []{ return sge::font::string(); }, [ &_strings ]( sge::gui::index const _index ) { return _strings[ _index.get() ]; } ), _style.text_color(), sge::gui::optional_needed_width( sge::gui::needed_width_from_strings( _font, _strings ) ) ), right_button_( _style, _renderer, _font, SGE_FONT_LIT(">"), sge::gui::optional_needed_width() ), index_{ _opt_index }, left_connection_{ left_button_.click( sge::gui::click_callback{ std::bind( &sge::gui::widget::choices::left_clicked, this ) } ) }, right_connection_{ right_button_.click( sge::gui::click_callback{ std::bind( &sge::gui::widget::choices::right_clicked, this ) } ) }, index_changed_() { this->push_back( sge::gui::widget::reference_alignment_pair( sge::gui::widget::reference( left_button_ ), sge::rucksack::alignment::center ) ); this->push_back( sge::gui::widget::reference_alignment_pair( sge::gui::widget::reference( middle_text_ ), sge::rucksack::alignment::center ) ); this->push_back( sge::gui::widget::reference_alignment_pair( sge::gui::widget::reference( right_button_ ), sge::rucksack::alignment::center ) ); }