FeImage *FeMonitor::add_artwork(const char *l, int x, int y, int w, int h ) { FePresent *fep = FePresent::script_get_fep(); if ( fep ) return fep->add_image( true, l, x, y, w, h, elements ); return NULL; }
FeImage *FeMonitor::add_surface(int w, int h) { FePresent *fep = FePresent::script_get_fep(); if ( fep ) return fep->add_surface( w, h, elements ); return NULL; }
FeImage *FeMonitor::add_image(const char *n, int x, int y, int w, int h) { FePresent *fep = FePresent::script_get_fep(); if ( fep ) return fep->add_image( false, n, x, y, w, h, elements ); return NULL; }
FeText *FeMonitor::add_text(const char *t, int x, int y, int w, int h) { FePresent *fep = FePresent::script_get_fep(); if ( fep ) return fep->add_text( t, x, y, w, h, elements ); return NULL; }
FeListBox *FeMonitor::add_listbox(int x, int y, int w, int h) { FePresent *fep = FePresent::script_get_fep(); if ( fep ) return fep->add_listbox( x, y, w, h, elements ); return NULL; }
FeImage *FeMonitor::add_clone(FeImage *i ) { FePresent *fep = FePresent::script_get_fep(); if ( fep ) return fep->add_clone( i, elements ); return NULL; }
void FePresent::script_do_update( FeBaseTextureContainer *tc ) { FePresent *fep = script_get_fep(); if ( fep ) { tc->on_new_list( fep->m_feSettings, false ); tc->on_new_selection( fep->m_feSettings ); fep->flag_redraw(); } }
void FePresent::script_do_update( FeBasePresentable *bp ) { FePresent *fep = script_get_fep(); if ( fep ) { bp->on_new_list( fep->m_feSettings ); bp->on_new_selection( fep->m_feSettings ); fep->flag_redraw(); } }
void FeListBox::set_font( const char *f ) { FePresent *fep = FePresent::script_get_fep(); if ( !fep ) return; const FeFontContainer *fc = fep->get_pooled_font( f ); if ( !fc ) return; const sf::Font *font=&(fc->get_font()); if ( font ) { setFont( *font ); m_font_name = f; FePresent::script_flag_redraw(); } }
std::string FePresent::script_get_base_path() { std::string path; FePresent *fep = script_get_fep(); if ( fep ) { FeSettings *fes = fep->get_fes(); if ( fes ) { int script_id = fep->get_script_id(); if ( script_id < 0 ) fes->get_path( FeSettings::Current, path ); else fes->get_plugin_full_path( script_id, path ); } } return path; }
bool FeScriptConfigMenu::on_option_select( FeConfigContext &ctx, FeBaseConfigMenu *& submenu ) { FeMenuOpt &o = ctx.curr_opt(); if ( o.opaque == 1 ) { std::string res; FeInputMap::Command conflict( FeInputMap::LAST_COMMAND ); ctx.input_map_dialog( "Press Input", res, conflict ); if (( conflict == FeInputMap::ExitMenu ) || ( conflict == FeInputMap::ExitNoMenu )) { // Clear the mapping if the user pushed an exit button res.clear(); } o.set_value( res ); ctx.save_req = true; } else if (( o.opaque == 2 ) && ( m_configurable )) { save( ctx ); ctx.fe_settings.set_present_state( m_state ); FePresent *fep = FePresent::script_get_fep(); if ( fep ) fep->set_script_id( m_script_id ); FeVM::script_run_config_function( *m_configurable, m_file_path, m_file_name, o.opaque_str, ctx.help_msg ); } return true; }
void FeTextureContainer::set_video_flags( FeVideoFlags f ) { m_video_flags = f; #ifndef NO_MOVIE if ( m_movie ) { m_movie->setLoop( !(m_video_flags & VF_NoLoop) ); if (m_video_flags & VF_NoAudio) m_movie->setVolume( 0.f ); else { float volume( 100.f ); FePresent *fep = FePresent::script_get_fep(); if ( fep ) volume = fep->get_fes()->get_play_volume( FeSoundInfo::Movie ); m_movie->setVolume( volume ); } } #endif }
bool FeEmulatorEditMenu::on_option_select( FeConfigContext &ctx, FeBaseConfigMenu *& submenu ) { FeMenuOpt &o = ctx.curr_opt(); if ( !m_emulator ) return true; switch ( o.opaque ) { case 1: // Edit artwork m_art_menu.set_art( m_emulator, o.setting ); submenu = &m_art_menu; break; case 2: // Add new artwork m_art_menu.set_art( m_emulator, "" ); submenu = &m_art_menu; break; case 3: // Generate Romlist { // Make sure m_emulator is set with all the configured info // for ( int i=0; i < FeEmulatorInfo::LAST_INDEX; i++ ) m_emulator->set_info( (FeEmulatorInfo::Index)i, ctx.opt_list[i].get_value() ); // Do some checks and confirmation before launching the Generator // std::vector<std::string> paths = m_emulator->get_paths(); for ( std::vector<std::string>::const_iterator itr = paths.begin(); itr != paths.end(); ++itr ) { std::string rom_path = clean_path( *itr ); if ( !directory_exists( rom_path ) ) { if ( ctx.confirm_dialog( "Rom path '$1' not found, proceed anyways?", rom_path ) == false ) return false; else break; // only bug the user once if there are multiple paths configured } } std::string emu_name = m_emulator->get_info( FeEmulatorInfo::Name ); if ( m_romlist_exists ) { if ( ctx.confirm_dialog( "Overwrite existing '$1' list?", emu_name ) == false ) return false; } FePresent *fep = FePresent::script_get_fep(); if ( fep ) fep->set_video_play_state( false ); ctx.fe_settings.build_romlist( emu_name, gen_ui_update, &ctx, ctx.help_msg ); if ( fep ) fep->set_video_play_state( fep->get_video_toggle() ); // // If we don't have a display configured for this romlist, // configure one now // if ( !ctx.fe_settings.check_romlist_configured( emu_name ) ) { FeDisplayInfo *new_disp = ctx.fe_settings.create_display( emu_name ); new_disp->set_info( FeDisplayInfo::Romlist, emu_name ); } ctx.save_req = true; m_parent_save = true; } break; case 4: // Scrape Artwork { FePresent *fep = FePresent::script_get_fep(); if ( fep ) fep->set_video_play_state( false ); std::string emu_name = m_emulator->get_info( FeEmulatorInfo::Name ); ctx.fe_settings.scrape_artwork( emu_name, scrape_ui_update, &ctx, ctx.help_msg ); if ( fep ) fep->set_video_play_state( fep->get_video_toggle() ); } break; case 5: // Delete this Emulator { std::string name = m_emulator->get_info(FeEmulatorInfo::Name); if ( ctx.confirm_dialog( "Delete emulator '$1'?", name ) == false ) return false; ctx.fe_settings.delete_emulator( m_emulator->get_info(FeEmulatorInfo::Name) ); } break; case 100: // Hotkey input { std::string res; FeInputMap::Command conflict( FeInputMap::LAST_COMMAND ); ctx.input_map_dialog( "Press Exit Hotkey", res, conflict ); bool save=false; if ( o.get_value().compare( res ) != 0 ) save = true; else { if ( ctx.confirm_dialog( "Clear Exit Hotkey?", res )) { res.clear(); save = true; } } if ( save ) { o.set_value( res ); ctx.save_req = true; } } break; default: break; } return true; }
void FePresent::script_flag_redraw() { FePresent *fep = script_get_fep(); if ( fep ) fep->flag_redraw(); }