📄 interfacewindow.cpp
字号:
if ( fSettings->FindInt32( "playlist display mode", (int32*)&displayMode ) == B_OK ) fPlaylistWindow->SetDisplayMode( displayMode ); }}/***************************************************************************** * InterfaceWindow::_StoreSettings *****************************************************************************/voidInterfaceWindow::_StoreSettings(){ /* Save the volume */ config_PutInt( p_intf, "volume", p_mediaControl->GetVolume() ); config_SaveConfigFile( p_intf, "main" ); /* Save the windows positions */ if ( fSettings->ReplaceRect( "main frame", Frame() ) != B_OK ) fSettings->AddRect( "main frame", Frame() ); if ( fPlaylistWindow->Lock() ) { if (fSettings->ReplaceRect( "playlist frame", fPlaylistWindow->Frame() ) != B_OK) fSettings->AddRect( "playlist frame", fPlaylistWindow->Frame() ); if (fSettings->ReplaceBool( "playlist showing", !fPlaylistWindow->IsHidden() ) != B_OK) fSettings->AddBool( "playlist showing", !fPlaylistWindow->IsHidden() ); fPlaylistWindow->Unlock(); } if ( fMessagesWindow->Lock() ) { if (fSettings->ReplaceRect( "messages frame", fMessagesWindow->Frame() ) != B_OK) fSettings->AddRect( "messages frame", fMessagesWindow->Frame() ); if (fSettings->ReplaceBool( "messages showing", !fMessagesWindow->IsHidden() ) != B_OK) fSettings->AddBool( "messages showing", !fMessagesWindow->IsHidden() ); fMessagesWindow->Unlock(); } if ( fPreferencesWindow->Lock() ) { if (fSettings->ReplaceRect( "settings frame", fPreferencesWindow->Frame() ) != B_OK) fSettings->AddRect( "settings frame", fPreferencesWindow->Frame() ); if (fSettings->ReplaceBool( "settings showing", !fPreferencesWindow->IsHidden() ) != B_OK) fSettings->AddBool( "settings showing", !fPreferencesWindow->IsHidden() ); fPreferencesWindow->Unlock(); } uint32 displayMode = fPlaylistWindow->DisplayMode(); if (fSettings->ReplaceInt32( "playlist display mode", displayMode ) != B_OK ) fSettings->AddInt32( "playlist display mode", displayMode ); save_settings( fSettings, "interface_settings", "VideoLAN Client" );}/***************************************************************************** * CDMenu::CDMenu *****************************************************************************/CDMenu::CDMenu(const char *name) : BMenu(name){}/***************************************************************************** * CDMenu::~CDMenu *****************************************************************************/CDMenu::~CDMenu(){}/***************************************************************************** * CDMenu::AttachedToWindow *****************************************************************************/void CDMenu::AttachedToWindow(void){ // remove all items while ( BMenuItem* item = RemoveItem( 0L ) ) delete item; GetCD( "/dev/disk" ); BMenu::AttachedToWindow();}/***************************************************************************** * CDMenu::GetCD *****************************************************************************/int CDMenu::GetCD( const char *directory ){ BVolumeRoster volRoster; BVolume vol; BDirectory dir; status_t status = volRoster.GetNextVolume( &vol ); while ( status == B_NO_ERROR ) { BString deviceName; BString volumeName; bool isCDROM; if ( get_volume_info( vol, volumeName, isCDROM, deviceName ) && isCDROM ) { BMessage* msg = new BMessage( OPEN_DVD ); msg->AddString( "device", deviceName.String() ); BMenuItem* item = new BMenuItem( volumeName.String(), msg ); AddItem( item ); } vol.Unset(); status = volRoster.GetNextVolume( &vol ); } return 0;}/***************************************************************************** * LanguageMenu::LanguageMenu *****************************************************************************/LanguageMenu::LanguageMenu( intf_thread_t * _p_intf, const char * psz_name, char * _psz_variable ) : BMenu( psz_name ){ p_intf = _p_intf; psz_variable = strdup( _psz_variable );}/***************************************************************************** * LanguageMenu::~LanguageMenu *****************************************************************************/LanguageMenu::~LanguageMenu(){ free( psz_variable );}/***************************************************************************** * LanguageMenu::AttachedToWindow *****************************************************************************/void LanguageMenu::AttachedToWindow(){ BMenuItem * item; // remove all items while( ( item = RemoveItem( 0L ) ) ) { delete item; } SetRadioMode( true ); input_thread_t * p_input = (input_thread_t *) vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE ); if( !p_input ) { return; } vlc_value_t val_list, text_list; BMessage * message; int i_current; i_current = var_GetInteger( p_input, psz_variable ); var_Change( p_input, psz_variable, VLC_VAR_GETLIST, &val_list, &text_list ); for( int i = 0; i < val_list.p_list->i_count; i++ ) { message = new BMessage( SELECT_CHANNEL ); message->AddInt32( psz_variable, val_list.p_list->p_values[i].i_int ); item = new BMenuItem( text_list.p_list->p_values[i].psz_string, message ); if( val_list.p_list->p_values[i].i_int == i_current ) { item->SetMarked( true ); } AddItem( item ); } var_Change( p_input, psz_variable, VLC_VAR_FREELIST, &val_list, &text_list ); vlc_object_release( p_input ); BMenu::AttachedToWindow();}/***************************************************************************** * TitleMenu::TitleMenu *****************************************************************************/TitleMenu::TitleMenu( const char *name, intf_thread_t *p_interface ) : BMenu(name), p_intf( p_interface ){}/***************************************************************************** * TitleMenu::~TitleMenu *****************************************************************************/TitleMenu::~TitleMenu(){}/***************************************************************************** * TitleMenu::AttachedToWindow *****************************************************************************/void TitleMenu::AttachedToWindow(){ BMenuItem * item; while( ( item = RemoveItem( 0L ) ) ) { delete item; } input_thread_t * p_input; p_input = (input_thread_t *) vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE ); if( !p_input ) { return; } vlc_value_t val; BMessage * message; if( !var_Get( p_input, "title", &val ) ) { vlc_value_t val_list, text_list; var_Change( p_input, "title", VLC_VAR_GETCHOICES, &val_list, &text_list ); for( int i = 0; i < val_list.p_list->i_count; i++ ) { message = new BMessage( TOGGLE_TITLE ); message->AddInt32( "index", val_list.p_list->p_values[i].i_int ); item = new BMenuItem( text_list.p_list->p_values[i].psz_string, message ); if( val_list.p_list->p_values[i].i_int == val.i_int ) { item->SetMarked( true ); } AddItem( item ); } var_Change( p_input, "title", VLC_VAR_FREELIST, &val_list, &text_list ); } vlc_object_release( p_input ); BMenu::AttachedToWindow();}/***************************************************************************** * ChapterMenu::ChapterMenu *****************************************************************************/ChapterMenu::ChapterMenu( const char *name, intf_thread_t *p_interface ) : BMenu(name), p_intf( p_interface ){}/***************************************************************************** * ChapterMenu::~ChapterMenu *****************************************************************************/ChapterMenu::~ChapterMenu(){}/***************************************************************************** * ChapterMenu::AttachedToWindow *****************************************************************************/void ChapterMenu::AttachedToWindow(){ BMenuItem * item; while( ( item = RemoveItem( 0L ) ) ) { delete item; } input_thread_t * p_input; p_input = (input_thread_t *) vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE ); if( !p_input ) { return; } vlc_value_t val; BMessage * message; if( !var_Get( p_input, "chapter", &val ) ) { vlc_value_t val_list, text_list; var_Change( p_input, "chapter", VLC_VAR_GETCHOICES, &val_list, &text_list ); for( int i = 0; i < val_list.p_list->i_count; i++ ) { message = new BMessage( TOGGLE_CHAPTER ); message->AddInt32( "index", val_list.p_list->p_values[i].i_int ); item = new BMenuItem( text_list.p_list->p_values[i].psz_string, message ); if( val_list.p_list->p_values[i].i_int == val.i_int ) { item->SetMarked( true ); } AddItem( item ); } var_Change( p_input, "chapter", VLC_VAR_FREELIST, &val_list, &text_list ); } vlc_object_release( p_input ); BMenu::AttachedToWindow();}/***************************************************************************** * load_settings *****************************************************************************/status_tload_settings( BMessage* message, const char* fileName, const char* folder ){ status_t ret = B_BAD_VALUE; if ( message ) { BPath path; if ( ( ret = find_directory( B_USER_SETTINGS_DIRECTORY, &path ) ) == B_OK ) { // passing folder is optional if ( folder ) ret = path.Append( folder ); if ( ret == B_OK && ( ret = path.Append( fileName ) ) == B_OK ) { BFile file( path.Path(), B_READ_ONLY ); if ( ( ret = file.InitCheck() ) == B_OK ) { ret = message->Unflatten( &file ); file.Unset(); } } } } return ret;}/***************************************************************************** * save_settings *****************************************************************************/status_tsave_settings( BMessage* message, const char* fileName, const char* folder ){ status_t ret = B_BAD_VALUE; if ( message ) { BPath path; if ( ( ret = find_directory( B_USER_SETTINGS_DIRECTORY, &path ) ) == B_OK ) { // passing folder is optional if ( folder && ( ret = path.Append( folder ) ) == B_OK ) ret = create_directory( path.Path(), 0777 ); if ( ret == B_OK && ( ret = path.Append( fileName ) ) == B_OK ) { BFile file( path.Path(), B_WRITE_ONLY | B_CREATE_FILE | B_ERASE_FILE ); if ( ( ret = file.InitCheck() ) == B_OK ) { ret = message->Flatten( &file ); file.Unset(); } } } } return ret;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -