コード例 #1
0
        public AnimationDrawer()
        {
            InitializeComponent();

            _handler = new AnimatedListHandler(List);

            _zoomer              = new ZoomableListHandler(List);
            _zoomer.Opening      = _handler.UnloadVisibleItems;
            _zoomer.Closing      = _handler.ThrottleVisibleItems;
            _zoomer.DownloadFile = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);
            _zoomer.SessionId    = () => ViewModel.ProtoService.SessionId;

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            var header = DropShadowEx.Attach(Separator);

            header.Clip = header.Compositor.CreateInsetClip(0, 48, 0, -48);

            var debouncer = new EventDebouncer <TextChangedEventArgs>(Constants.TypingTimeout, handler => FieldAnimations.TextChanged += new TextChangedEventHandler(handler));

            debouncer.Invoked += (s, args) =>
            {
                ViewModel.Search(FieldAnimations.Text);
            };
        }
コード例 #2
0
ファイル: StickerDrawer.xaml.cs プロジェクト: sp1ke77/Unigram
        public StickerDrawer()
        {
            InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            _handler = new AnimatedListHandler <StickerViewModel>(Stickers);
            _handler.DownloadFile = (id, sticker) =>
            {
                DownloadFile(_stickers, id, sticker);
            };

            _zoomer              = new ZoomableListHandler(Stickers);
            _zoomer.Opening      = _handler.UnloadVisibleItems;
            _zoomer.Closing      = _handler.ThrottleVisibleItems;
            _zoomer.DownloadFile = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);

            //_toolbarHandler = new AnimatedStickerHandler<StickerSetViewModel>(Toolbar);

            var shadow = DropShadowEx.Attach(Separator, 20, 0.25f);

            shadow.RelativeSizeAdjustment = Vector2.One;

            var observable = Observable.FromEventPattern <TextChangedEventArgs>(FieldStickers, "TextChanged");
            var throttled  = observable.Throttle(TimeSpan.FromMilliseconds(Constants.TypingTimeout)).ObserveOnDispatcher().Subscribe(async x =>
            {
                var items = ViewModel.SearchStickers;
                if (items != null && string.Equals(FieldStickers.Text, items.Query))
                {
                    await items.LoadMoreItemsAsync(1);
                    await items.LoadMoreItemsAsync(2);
                }
            });
        }
コード例 #3
0
        public InlineBotResultsView()
        {
            InitializeComponent();

            _handler = new AnimatedListHandler(ScrollingHost);

            _zoomer              = new ZoomableListHandler(ScrollingHost);
            _zoomer.Opening      = _handler.UnloadVisibleItems;
            _zoomer.Closing      = _handler.ThrottleVisibleItems;
            _zoomer.DownloadFile = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);
            _zoomer.SessionId    = () => ViewModel.ProtoService.SessionId;
        }
コード例 #4
0
        public SettingsStickersPage()
        {
            InitializeComponent();
            DataContext = TLContainer.Current.Resolve <SettingsStickersViewModel>();

            _handler = new AnimatedListHandler <StickerSetInfo>(List);

            _typeToItemHashSetMapping.Add("AnimatedItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("ItemTemplate", new HashSet <SelectorItem>());

            _typeToTemplateMapping.Add("AnimatedItemTemplate", Resources["AnimatedItemTemplate"] as DataTemplate);
            _typeToTemplateMapping.Add("ItemTemplate", Resources["ItemTemplate"] as DataTemplate);
        }
コード例 #5
0
        public SettingsStickersPage()
        {
            InitializeComponent();

            _handler = new AnimatedListHandler(List);

            _typeToItemHashSetMapping.Add("AnimatedItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("VideoItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("ItemTemplate", new HashSet <SelectorItem>());

            _typeToTemplateMapping.Add("AnimatedItemTemplate", Resources["AnimatedItemTemplate"] as DataTemplate);
            _typeToTemplateMapping.Add("VideoItemTemplate", Resources["VideoItemTemplate"] as DataTemplate);
            _typeToTemplateMapping.Add("ItemTemplate", Resources["ItemTemplate"] as DataTemplate);
        }
コード例 #6
0
        private StickerSetPopup()
        {
            InitializeComponent();
            DataContext = TLContainer.Current.Resolve <StickerSetViewModel>();

            _handler = new AnimatedListHandler <Sticker>(List);
            _handler.DownloadFile = (id, sticker) =>
            {
                ViewModel.ProtoService.DownloadFile(id, 1);
            };

            _zoomer              = new ZoomableListHandler(List);
            _zoomer.Opening      = _handler.UnloadVisibleItems;
            _zoomer.Closing      = _handler.ThrottleVisibleItems;
            _zoomer.DownloadFile = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);

            SecondaryButtonText = Strings.Resources.Close;
        }
コード例 #7
0
        public StickerDrawer()
        {
            InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            _handler        = new AnimatedListHandler(List);
            _toolbarHandler = new AnimatedListHandler(Toolbar);

            _zoomer              = new ZoomableListHandler(List);
            _zoomer.Opening      = _handler.UnloadVisibleItems;
            _zoomer.Closing      = _handler.ThrottleVisibleItems;
            _zoomer.DownloadFile = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);
            _zoomer.SessionId    = () => ViewModel.ProtoService.SessionId;

            _typeToItemHashSetMapping.Add("AnimatedItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("VideoItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("ItemTemplate", new HashSet <SelectorItem>());

            _typeToTemplateMapping.Add("AnimatedItemTemplate", Resources["AnimatedItemTemplate"] as DataTemplate);
            _typeToTemplateMapping.Add("VideoItemTemplate", Resources["VideoItemTemplate"] as DataTemplate);
            _typeToTemplateMapping.Add("ItemTemplate", Resources["ItemTemplate"] as DataTemplate);

            //_toolbarHandler = new AnimatedStickerHandler<StickerSetViewModel>(Toolbar);

            var header = DropShadowEx.Attach(Separator);

            header.Clip = header.Compositor.CreateInsetClip(0, 48, 0, -48);

            var debouncer = new EventDebouncer <TextChangedEventArgs>(Constants.TypingTimeout, handler => FieldStickers.TextChanged += new TextChangedEventHandler(handler));

            debouncer.Invoked += async(s, args) =>
            {
                var items = ViewModel.SearchStickers;
                if (items != null && string.Equals(FieldStickers.Text, items.Query))
                {
                    await items.LoadMoreItemsAsync(1);

                    await items.LoadMoreItemsAsync(2);
                }
            };
        }
コード例 #8
0
        private StickerSetPopup()
        {
            InitializeComponent();
            DataContext = TLContainer.Current.Resolve <StickerSetViewModel>();

            _handler = new AnimatedListHandler <Sticker>(List);

            _zoomer              = new ZoomableListHandler(List);
            _zoomer.Opening      = _handler.UnloadVisibleItems;
            _zoomer.Closing      = _handler.ThrottleVisibleItems;
            _zoomer.DownloadFile = fileId => ViewModel.ProtoService.DownloadFile(fileId, 32);

            _typeToItemHashSetMapping.Add("AnimatedItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("ItemTemplate", new HashSet <SelectorItem>());

            _typeToTemplateMapping.Add("AnimatedItemTemplate", Resources["AnimatedItemTemplate"] as DataTemplate);
            _typeToTemplateMapping.Add("ItemTemplate", Resources["ItemTemplate"] as DataTemplate);

            SecondaryButtonText = Strings.Resources.Close;
        }
コード例 #9
0
        private StickerSetPopup()
        {
            InitializeComponent();
            DataContext = TLContainer.Current.Resolve <StickerSetViewModel>();

            _handler = new AnimatedListHandler <Sticker>(List);
            _handler.DownloadFile = (id, sticker) =>
            {
                ViewModel.ProtoService.DownloadFile(id, 1);
            };

            _throttler          = new DispatcherTimer();
            _throttler.Interval = TimeSpan.FromMilliseconds(Constants.AnimatedThrottle);
            _throttler.Tick    += (s, args) =>
            {
                _throttler.Stop();
                _handler.LoadVisibleItems(false);
            };

            SecondaryButtonText = Strings.Resources.Close;
        }
コード例 #10
0
        public StickerDrawer()
        {
            InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            _handler = new AnimatedListHandler <StickerViewModel>(Stickers);
            _handler.DownloadFile = (id, sticker) =>
            {
                DownloadFile(_stickers, id, sticker);
            };

            _throttler          = new DispatcherTimer();
            _throttler.Interval = TimeSpan.FromMilliseconds(Constants.AnimatedThrottle);
            _throttler.Tick    += (s, args) =>
            {
                _throttler.Stop();
                _handler.LoadVisibleItems(false);
            };

            //_toolbarHandler = new AnimatedStickerHandler<StickerSetViewModel>(Toolbar);

            var shadow = DropShadowEx.Attach(Separator, 20, 0.25f);

            Separator.SizeChanged += (s, args) =>
            {
                shadow.Size = args.NewSize.ToVector2();
            };

            var observable = Observable.FromEventPattern <TextChangedEventArgs>(FieldStickers, "TextChanged");
            var throttled  = observable.Throttle(TimeSpan.FromMilliseconds(Constants.TypingTimeout)).ObserveOnDispatcher().Subscribe(async x =>
            {
                var items = ViewModel.SearchStickers;
                if (items != null && string.Equals(FieldStickers.Text, items.Query))
                {
                    await items.LoadMoreItemsAsync(1);
                    await items.LoadMoreItemsAsync(2);
                }
            });
        }
コード例 #11
0
        public EmojiDrawer()
        {
            InitializeComponent();

            ElementCompositionPreview.GetElementVisual(this).Clip = Window.Current.Compositor.CreateInsetClip();

            var header = DropShadowEx.Attach(Separator);

            header.Clip = header.Compositor.CreateInsetClip(0, 48, 0, -48);

            _handler        = new AnimatedListHandler(List);
            _toolbarHandler = new AnimatedListHandler(Toolbar2);

            _typeToItemHashSetMapping["EmojiSkinTemplate"] = new HashSet <SelectorItem>();
            _typeToItemHashSetMapping["EmojiTemplate"]     = new HashSet <SelectorItem>();
            _typeToItemHashSetMapping.Add("AnimatedItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("VideoItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("ItemTemplate", new HashSet <SelectorItem>());
            _typeToItemHashSetMapping.Add("MoreTemplate", new HashSet <SelectorItem>());

            UpdateView();
        }