コード例 #1
0
ファイル: MenuBase.cs プロジェクト: temur03/imBMW
        public MenuBase(MediaEmulator mediaEmulator)
        {
            homeScreen = HomeScreen.Instance;
            CurrentScreen = homeScreen;

            this.mediaEmulator = mediaEmulator;
            mediaEmulator.IsEnabledChanged += mediaEmulator_IsEnabledChanged;
            mediaEmulator.PlayerIsPlayingChanged += ShowPlayerStatus;
            mediaEmulator.PlayerStatusChanged += ShowPlayerStatus;
            mediaEmulator.PlayerChanged += mediaEmulator_PlayerChanged;
            mediaEmulator_PlayerChanged(mediaEmulator.Player);
        }
コード例 #2
0
ファイル: MenuBase.cs プロジェクト: temur03/imBMW
 public void Navigate(MenuScreen screen)
 {
     if (screen == null)
     {
         Logger.Error("Navigation to null screen");
         return;
     }
     if (CurrentScreen == screen)
     {
         return;
     }
     navigationStack.Push(CurrentScreen);
     CurrentScreen = screen;
 }
コード例 #3
0
ファイル: MenuBase.cs プロジェクト: temur03/imBMW
 void currentScreen_ItemClicked(MenuScreen screen, MenuItem item)
 {
     switch (item.Action)
     {
         case MenuItemAction.GoToScreen:
             Navigate(item.GoToScreen);
             break;
         case MenuItemAction.GoBackScreen:
             NavigateBack();
             break;
         case MenuItemAction.GoHomeScreen:
             NavigateHome();
             break;
     }
 }
コード例 #4
0
ファイル: MenuBase.cs プロジェクト: temur03/imBMW
 void currentScreen_Updated(MenuScreen screen, MenuScreenUpdateEventArgs args)
 {
     UpdateScreen(args);
 }
コード例 #5
0
ファイル: MenuBase.cs プロジェクト: temur03/imBMW
        protected virtual void ScreenNavigatedFrom(MenuScreen screen)
        {
            if (screen == null)
            {
                return;
            }

            screen.OnNavigatedFrom(this);

            screen.ItemClicked -= currentScreen_ItemClicked;
            screen.Updated -= currentScreen_Updated;
        }
コード例 #6
0
ファイル: MenuBase.cs プロジェクト: temur03/imBMW
        protected virtual void ScreenNavigatedTo(MenuScreen screen)
        {
            if (screen == null || !screen.OnNavigatedTo(this))
            {
                return;
            }

            screen.ItemClicked += currentScreen_ItemClicked;
            screen.Updated += currentScreen_Updated;
        }
コード例 #7
0
ファイル: MenuHelpers.cs プロジェクト: sink1/imBMW-1
 public static void AddBackButton(this MenuScreen screen, int index = -1)
 {
     screen.AddItem(new MenuItem(i => "« " + Localization.Current.Back, MenuItemType.Button, MenuItemAction.GoBackScreen), index);
 }
コード例 #8
0
        protected override void ScreenNavigatedTo(MenuScreen screen)
        {
            ShownItemIndex = 0;

            base.ScreenNavigatedTo(screen);
        }
コード例 #9
0
ファイル: MenuBase.cs プロジェクト: OlegPalchyk/imBMW
 void currentScreen_UpdateBody(MenuScreen screen)
 {
     UpdateBody();
 }
コード例 #10
0
ファイル: MenuBase.cs プロジェクト: OlegPalchyk/imBMW
 public void NavigateAfterHome(MenuScreen screen)
 {
     navigationStack.Clear();
     navigationStack.Push(homeScreen);
     CurrentScreen = screen;
 }
コード例 #11
0
ファイル: MenuBase.cs プロジェクト: OlegPalchyk/imBMW
 void currentScreen_UpdateHeader(MenuScreen screen)
 {
     UpdateHeader();
 }
コード例 #12
0
ファイル: RadioMenu.cs プロジェクト: toxsedyshev/imBMW
        protected override void ScreenNavigatedTo(MenuScreen screen)
        {
            ShownItemIndex = 0;

            base.ScreenNavigatedTo(screen);
        }
コード例 #13
0
ファイル: MenuBase.cs プロジェクト: tevfikoguz/imBMW
 void currentScreen_Updated(MenuScreen screen, MenuScreenUpdateEventArgs args)
 {
     UpdateScreen(args);
 }
コード例 #14
0
ファイル: BluetoothOVC3860.cs プロジェクト: temur03/imBMW
        protected MenuScreen CreateContactsScreen()
        {
            contactsPerPage = MenuScreen.MaxItemsCount - 3;

            contactsScreen = new MenuScreen(s => Localization.Current.Contacts);
            contactsScreen.AddItem(new MenuItem(i => "< " + Localization.Current.PrevItems, i => { offset -= contactsPerPage; SetContactsScreenItems(); }), 0); // TODO navigate
            contactsScreen.AddItem(new MenuItem(i => Localization.Current.NextItems + " >", i => { offset += contactsPerPage; SetContactsScreenItems(); }), 1); // TODO test, fix and make 1
            contactsScreen.AddBackButton(MenuScreen.MaxItemsCount - 1);

            contactsScreen.NavigatedTo += s =>
            {
                offset = 0; // TODO don't scroll on navigate back
                SetContactsScreenItems();
            };

            return contactsScreen;
        }
コード例 #15
0
ファイル: MenuBase.cs プロジェクト: temur03/imBMW
 public void NavigateAfterHome(MenuScreen screen)
 {
     navigationStack.Clear();
     navigationStack.Push(homeScreen);
     CurrentScreen = screen;
 }
コード例 #16
0
ファイル: BluetoothOVC3860.cs プロジェクト: temur03/imBMW
 protected MenuScreen CreatePhoneScreen()
 {
     var screen = new MenuScreen(Name);
     screen.AddItem(new MenuItem(i => Localization.Current.VoiceCall, i => SendCommand(CmdVoiceCall)));
     screen.AddItem(new MenuItem(i => Localization.Current.Contacts, MenuItemType.Button, MenuItemAction.GoToScreen) { GoToScreen = CreateContactsScreen() });
     screen.AddBackButton();
     return screen;
 }
コード例 #17
0
ファイル: BluetoothWT32.cs プロジェクト: temur03/imBMW
        void UpdateNowPlayingScreen(MenuScreen nowPlayingScreen, TrackInfo nowPlaying)
        {
            nowPlayingScreen.IsUpdateSuspended = true;

            nowPlayingScreen.Status = nowPlaying.GetTrackPlaylistPosition();

            nowPlayingScreen.ClearItems();
            if (NowPlayingTagsSeparatedRows)
            {
                if (!StringHelpers.IsNullOrEmpty(nowPlaying.Title))
                {
                    nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.Title));
                }
                if (!StringHelpers.IsNullOrEmpty(nowPlaying.Artist))
                {
                    nowPlayingScreen.AddItem(new MenuItem(i => CharIcons.BordmonitorBull + " " + Localization.Current.Artist + ":"));
                    nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.Artist));
                }
                if (!StringHelpers.IsNullOrEmpty(nowPlaying.Album))
                {
                    nowPlayingScreen.AddItem(new MenuItem(i => CharIcons.BordmonitorBull + " " + Localization.Current.Album + ":"));
                    nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.Album));
                }
                if (!StringHelpers.IsNullOrEmpty(nowPlaying.Genre))
                {
                    nowPlayingScreen.AddItem(new MenuItem(i => CharIcons.BordmonitorBull + " " + Localization.Current.Genre + ":"));
                    nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.Genre));
                }
            }
            else
            {
                if (!StringHelpers.IsNullOrEmpty(nowPlaying.Title))
                {
                    nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.GetTitleWithLabel()));
                }
                if (!StringHelpers.IsNullOrEmpty(nowPlaying.Artist))
                {
                    nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.GetArtistWithLabel()));
                }
                if (!StringHelpers.IsNullOrEmpty(nowPlaying.Album))
                {
                    nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.GetAlbumWithLabel()));
                }
                if (!StringHelpers.IsNullOrEmpty(nowPlaying.Genre))
                {
                    nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.GetGenreWithLabel()));
                }
            }
            nowPlayingScreen.AddBackButton();

            nowPlayingScreen.IsUpdateSuspended = false;
            nowPlayingScreen.Refresh();
        }