예제 #1
0
        public void SetSearchSection(string category, string[] searchResults)
        {
            var groups           = new List <string>(searchResults.Length);
            var groupsExpandable = new List <bool>(searchResults.Length);
            var groupToChildren  = new Dictionary <string, List <string> >();

            var itemsSource = new List <SearchMenuListItem>();

            foreach (var str in searchResults)
            {
                var jObject = JObject.Parse(str);
                var item    = new SearchMenuListItem();
                item.Name    = jObject["name"].Value <string>();
                item.Details = jObject["details"].Value <string>();

                JToken iconStringToken;
                var    iconString = jObject.TryGetValue("icon", out iconStringToken) ? iconStringToken.Value <string>() : "misc";
                item.Icon = new System.Windows.Media.Imaging.BitmapImage(ViewHelpers.MakeUriForImage(string.Format("icon1_{0}.png", iconString)));
                itemsSource.Add(item);

                groups.Add(str);
                groupsExpandable.Add(false);
                groupToChildren.Add(str, new List <string>());
            }


            m_resultListAdapter.SetData(itemsSource, groups, groupsExpandable, groupToChildren);

            m_resultsSpinner.Visibility     = Visibility.Hidden;
            m_resultsClearButton.Visibility = Visibility.Visible;
            m_searchArrow.Visibility        = Visibility.Visible;
            m_resultsSeparator.Visibility   = Visibility.Visible;

            m_searchInFlight = false;
        }
        protected override void DisplayCustomPoiInfo(Object modelObject)
        {
            ExampleApp.SearchResultModelCLI model = modelObject as ExampleApp.SearchResultModelCLI;

            YelpResultModel yelpResultModel = YelpResultModel.FromResultModel(model);
            var             mainGrid        = (Application.Current.MainWindow as MainWindow).MainGrid;
            var             screenWidth     = mainGrid.ActualWidth;

            m_closing = false;

            TitleText             = model.Title;
            AddressText           = model.Subtitle.Replace(", ", "," + Environment.NewLine);
            PhoneText             = yelpResultModel.Phone;
            HumanReadableTagsText = string.Join(", ", model.HumanReadableTags);
            ReviewText            = string.Join(Environment.NewLine, yelpResultModel.Reviews);
            TagIcon = SearchResultPoiViewIconProvider.GetIconForTag(model.IconKey);
            PoiViewRatingCountText = yelpResultModel.ReviewCount > 0 ? yelpResultModel.ReviewCount.ToString() : string.Empty;
            RatingsImage.Source    = null;

            m_contentContainer.ScrollToTop();

            if (yelpResultModel.ReviewCount > 0 && !string.IsNullOrEmpty(yelpResultModel.RatingsImageUrl))
            {
                RatingsImage.Source = new BitmapImage(ViewHelpers.MakeUriForImage(string.Format("{0}.png", yelpResultModel.RatingsImageUrl)));
            }

            if (string.IsNullOrEmpty(yelpResultModel.ImageUrl))
            {
                m_previewImageSpinner.Visibility          = Visibility.Hidden;
                m_imageGradient.Visibility                = Visibility.Collapsed;
                m_poiImageAndGradientContainer.Visibility = Visibility.Collapsed;
                m_detailsContainer.Height = Double.NaN;
            }
            else
            {
                m_previewImageSpinner.Visibility          = Visibility.Visible;
                m_imageGradient.Visibility                = Visibility.Visible;
                m_poiImageAndGradientContainer.Visibility = Visibility.Visible;
                m_detailsContainer.Height = 250;
            }

            RatingCountVisibility = !string.IsNullOrEmpty(yelpResultModel.RatingsImageUrl) && yelpResultModel.ReviewCount > 0 ? Visibility.Visible : Visibility.Collapsed;
            Url = yelpResultModel.WebUrl;

            if (string.IsNullOrEmpty(ReviewText))
            {
                m_reviewsIcon.Visibility = Visibility.Hidden;
            }
            else
            {
                m_reviewsIcon.Visibility = Visibility.Visible;
            }

            m_poiImageContainer.Visibility = Visibility.Visible;

            m_poiImage.Visibility = Visibility.Hidden;

            ShowAll();
        }
 public WatermarkViewDialogViewModel(string title, string message, string acceptButton, string cancelButton, ImageSource watermarkLogo, string watermarkUrl, int maxQRCodeSize)
 {
     TitleText                  = title;
     MessageText                = message;
     AcceptButtonText           = acceptButton;
     CancelButtonText           = cancelButton;
     WatermarkLogoImageSource   = watermarkLogo;
     WatermarkQRCodeImageSource = ViewHelpers.GetQRCodeBitmapSourceFromURL(watermarkUrl, maxQRCodeSize);
 }
 private void OnLoadedAddVirtualKeyboardFocusHandlers()
 {
     foreach (var child in ViewHelpers.FindChildrenOfType <TextBox>(m_currentWindow.MainGrid.Children))
     {
         child.PreviewMouseDown += (o, e) => ShowVirtualKeyboard();
         child.GotFocus         += (o, e) => ShowVirtualKeyboard();
         child.LostFocus        += (o, e) => HideVirtualKeyboard();
         InputMethod.SetIsInputMethodEnabled(child, false);
     }
 }
예제 #5
0
        public SubMenuListItem(string json, int zIndex)
            : base(json, false, zIndex)
        {
            JObject parsed = JObject.Parse(json);
            JToken  iconField;

            if (parsed.TryGetValue("icon", out iconField))
            {
                m_iconString = iconField.Value <string>();
                m_icon       = new BitmapImage(ViewHelpers.MakeUriForImage(string.Format("icon1_{0}.png", m_iconString)));
            }
        }
예제 #6
0
 void AddButtonClickHandlers()
 {
     foreach (var button in ViewHelpers.FindChildrenOfType <Button>(this))
     {
         button.Loaded += (sender, ev) =>
         {
             string digit = button.Content?.ToString();
             if (IsPasswordButtonLabel(digit))
             {
                 button.Click += (o, e) => OnKeyClicked(digit);
             }
         };
     }
 }
예제 #7
0
        public InteriorsExplorerView(IntPtr nativeCallerPointer)
        {
            MainWindow mainWindow = (MainWindow)Application.Current.MainWindow;

            mainWindow.MainGrid.Children.Add(this);
            m_nativeCallerPointer = nativeCallerPointer;

            mainWindow.ContentRendered += (o, e) =>
            {
                SearchMenuView searchMenuView = ViewHelpers.FindChildrenOfType <SearchMenuView>(mainWindow.MainGrid.Children).Single();
                CompassView    compassView    = ViewHelpers.FindChildrenOfType <CompassView>(mainWindow.MainGrid.Children).Single();
                m_tutorialView.SetTooltipControls(mainWindow,
                                                  searchMenuView.GetSearchButton(),
                                                  compassView.GetCompassElement(),
                                                  m_sliderThumb,
                                                  m_dismissButton);
            };
        }
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            TutorialTooltipView mapModeDialog = (TutorialTooltipView)GetTemplateChild(MapModeDialogName);

            m_positionedMapModeDialog = new PositionedDialog(mapModeDialog, (x, y, w, h) =>
            {
                ((TranslateTransform)mapModeDialog.RenderTransform).X = x - mapModeDialog.GetTooltipWidth() - DialogGap;
                ((TranslateTransform)mapModeDialog.RenderTransform).Y = y + 2;
            });

            FlattenButtonView flattenButtonView = ViewHelpers.FindChildrenOfType <FlattenButtonView>(m_mainWindow.MainGrid.Children).Single();

            m_mapModePositionTracker = new TutorialTooltipPositionTracker(m_mainWindow, flattenButtonView);
            m_mapModePositionTracker.OnUpdateTransform += m_positionedMapModeDialog.DialogPosition;
            mapModeDialog.RenderTransformOrigin         = new Point(0.0, 0.0);
            mapModeDialog.RenderTransform = new TranslateTransform();

            TutorialTooltipView dropPinDialog = (TutorialTooltipView)GetTemplateChild(DropPinDialogName);

            m_positionedDropPinDialog = new PositionedDialog(dropPinDialog, (x, y, w, h) =>
            {
                ((TranslateTransform)dropPinDialog.RenderTransform).X = x + w + dropPinDialog.ArrowPointHeight + DialogGap;
                ((TranslateTransform)dropPinDialog.RenderTransform).Y = y - (dropPinDialog.GetTooltipHeight() - h) - 2;
            });

            MyPinCreationButtonView myPinCreationButtonView = ViewHelpers.FindChildrenOfType <MyPinCreationButtonView>(m_mainWindow.MainGrid.Children).Single();

            m_dropPinPositionTracker = new TutorialTooltipPositionTracker(m_mainWindow, myPinCreationButtonView);
            m_dropPinPositionTracker.OnUpdateTransform += m_positionedDropPinDialog.DialogPosition;
            dropPinDialog.RenderTransformOrigin         = new Point(0.0, 0.0);
            dropPinDialog.RenderTransform = new TranslateTransform();

            m_showAnimation            = (Storyboard)FindResource("ShowAnimation");
            m_hideAnimation            = ((Storyboard)FindResource("HideAnimation")).Clone();
            m_hideAnimation.Completed += (o, e) =>
            {
                m_hideAnimationRunning = false;
                Visibility             = Visibility.Hidden;
            };
        }
예제 #9
0
        public override void DisplayPoiInfo(Object modelObject, bool isPinned)
        {
            ExampleApp.SearchResultModelCLI model = modelObject as ExampleApp.SearchResultModelCLI;

            YelpResultModel yelpResultModel = YelpResultModel.FromResultModel(model);

            m_closing = false;

            TitleText   = model.Title;
            AddressText = model.Subtitle.Replace(", ", Environment.NewLine);
            PhoneText   = yelpResultModel.Phone;
            HumanReadableCategoriesText = string.Join(Environment.NewLine, model.HumanReadableCategories);
            ReviewText             = string.Join(Environment.NewLine, yelpResultModel.Reviews);
            CategoryIcon           = StartupResourceLoader.GetBitmap(SearchResultCategoryMapper.GetIconImageName(model.Category));
            PoiViewRatingCountText = yelpResultModel.ReviewCount.ToString();
            RatingsImage           = null;

            if (yelpResultModel.ReviewCount > 0 && !string.IsNullOrEmpty(yelpResultModel.RatingsImageUrl))
            {
                RatingsImage = new BitmapImage(ViewHelpers.MakeUriForImage(string.Format("{0}.png", yelpResultModel.RatingsImageUrl)));
            }

            RatingCountVisibility = string.IsNullOrEmpty(yelpResultModel.ImageUrl) && !string.IsNullOrEmpty(yelpResultModel.RatingsImageUrl) && yelpResultModel.ReviewCount > 0 ? Visibility.Visible : Visibility.Collapsed;
            Url = yelpResultModel.WebUrl;

            if (string.IsNullOrEmpty(ReviewText))
            {
                m_reviewsIcon.Visibility = Visibility.Hidden;
            }
            else
            {
                m_reviewsIcon.Visibility = Visibility.Visible;
            }

            m_poiImage.Source = new BitmapImage(new Uri("/ExampleAppWPF;component/Assets/poi_placeholder.png", UriKind.Relative));

            m_isPinned = isPinned;
            OnPropertyChanged("IsPinned");

            ShowAll();
        }
        public void ProcessCustomKeyboardKeys()
        {
            foreach (var customKeyLayout in this.customKeyboardLayout)
            {
                string row       = customKeyLayout[0];
                int    index     = int.Parse(customKeyLayout[1]);
                string lowercase = customKeyLayout[2];
                string uppercase = customKeyLayout[3];

                StackPanel keyboardRow = ViewHelpers.FindChildByName <StackPanel>(this, row);

                VirtualKeyboard.VirtualKeyboardInputButton keyToChange = keyboardRow.Children[index] as VirtualKeyboard.VirtualKeyboardInputButton;

                VirtualKeyboard.VirtualKeyboardInputButton.SetKeyInputValue(keyToChange, lowercase);

                if (lowercase != "")
                {
                    VirtualKeyboard.VirtualKeyboardInputButton.SetKeyShiftInputValue(keyToChange, uppercase);
                }
                else if (VirtualKeyboard.VirtualKeyboardInputButton.GetKeyShiftInputValue(keyToChange) != null)
                {
                    uppercase = lowercase;
                    VirtualKeyboard.VirtualKeyboardInputButton.SetKeyShiftInputValue(keyToChange, uppercase);
                }

                if (keyToChange.GetAutoLabel())
                {
                    keyToChange.Content = keyToChange.GetKeyInputValue();
                }
                else
                {
                    StackPanel customKeyLabel = ViewHelpers.FindChildByName <StackPanel>(this, "Label" + customKeyLayout[1]);

                    TextBlock upperCaseLabel = customKeyLabel.Children[0] as TextBlock;
                    upperCaseLabel.Text = uppercase;

                    TextBlock lowerCaseLabel = customKeyLabel.Children[1] as TextBlock;
                    lowerCaseLabel.Text = lowercase;
                }
            }
        }
예제 #11
0
        protected override void DisplayCustomPoiInfo(Object modelObject)
        {
            ExampleApp.SearchResultModelCLI model = modelObject as ExampleApp.SearchResultModelCLI;

            YelpResultModel yelpResultModel = YelpResultModel.FromResultModel(model);
            var             mainGrid        = (Application.Current.MainWindow as MainWindow).MainGrid;
            var             screenWidth     = mainGrid.ActualWidth;

            m_closing = false;

            TitleText   = model.Title;
            AddressText = model.Subtitle.Replace(", ", "," + Environment.NewLine);
            PhoneText   = yelpResultModel.Phone;
            HumanReadableCategoriesText = string.Join(Environment.NewLine, model.HumanReadableCategories);
            ReviewText             = string.Join(Environment.NewLine, yelpResultModel.Reviews);
            CategoryIcon           = SearchResultPoiViewIconProvider.GetIconForCategory(model.Category);
            PoiViewRatingCountText = yelpResultModel.ReviewCount > 0 ? yelpResultModel.ReviewCount.ToString() : string.Empty;
            RatingsImage           = null;

            if (yelpResultModel.ReviewCount > 0 && !string.IsNullOrEmpty(yelpResultModel.RatingsImageUrl))
            {
                RatingsImage = new BitmapImage(ViewHelpers.MakeUriForImage(string.Format("{0}.png", yelpResultModel.RatingsImageUrl)));
            }

            RatingCountVisibility = !string.IsNullOrEmpty(yelpResultModel.RatingsImageUrl) && yelpResultModel.ReviewCount > 0 ? Visibility.Visible : Visibility.Collapsed;
            Url = yelpResultModel.WebUrl;

            if (string.IsNullOrEmpty(ReviewText))
            {
                m_reviewsIcon.Visibility = Visibility.Hidden;
            }
            else
            {
                m_reviewsIcon.Visibility = Visibility.Visible;
            }

            m_poiImage.Source = new BitmapImage(new Uri("/ExampleAppWPF;component/Assets/poi_placeholder.png", UriKind.Relative));

            ShowAll();
        }