/// <inheritDoc/> protected override void OnDetachingFrom(MultiPage <T> bindable) { bindable.CurrentPageChanged -= CurrentPageChangedHandler; bindable.Appearing -= RootPageAppearingHandler; bindable.Disappearing -= RootPageDisappearingHandler; base.OnDetachingFrom(bindable); }
public MultiPageFragmentStateAdapter( MultiPage <T> page, FragmentManager fragmentManager, IMauiContext context) : base(fragmentManager, context.GetActivity().Lifecycle) { _page = page; _context = context; }
void OnInnerLayoutUpdate() { if (!_isInitialized) { return; } int baseX = _innerBox.Geometry.X; ERect bound = _scroller.Geometry; int index = 0; foreach (var page in Element.Children) { var nativeView = Platform.GetRenderer(page).NativeView; bound.X = baseX + index * bound.Width; nativeView.Geometry = bound; index++; } _innerBox.MinimumWidth = Element.Children.Count * bound.Width; if (_toolbar.SelectedItem == null) { return; } int currentPage = MultiPage <Page> .GetIndex(_itemToItemPage[_toolbar.SelectedItem]); _scroller.ScrollTo(currentPage, 0, false); }
protected override void OnAttachedTo(MultiPage <TPage> bindableObject) { base.OnAttachedTo(bindableObject); PreviousPage = AssociatedObject.CurrentPage; AssociatedObject.CurrentPageChanged += OnCurrentPageChanged; AssociatedObject.PagesChanged += OnPagesChanged; }
protected override void Dispose(bool disposing) { if (_disposed) { return; } if (disposing) { _disposed = true; _page = null; if (!_fragmentManager.IsDestroyed) { FragmentTransaction transaction = _fragmentManager.BeginTransactionEx(); foreach (Fragment fragment in _fragments) { transaction.RemoveEx(fragment); transaction.SetTransitionEx((int)FragmentTransit.None); } transaction.CommitAllowingStateLossEx(); _fragmentManager.ExecutePendingTransactionsEx(); _fragments = null; _fragmentManager = null; } } base.Dispose(disposing); }
public static void FixControlDims(Control control) { foreach (Control c in control.Controls) { if (c is WebControl) { WebControl wc = c as WebControl; if (wc.Width.Value > 0) { wc.Style["WIDTH"] = wc.Width.ToString(); } if (wc.Height.Value > 0) { wc.Style["HEIGHT"] = wc.Height.ToString(); } } if (c.ID != null && c.ID.StartsWith("div")) { FixControlDims(c); } else if (c is MultiPage) { MultiPage mc = c as MultiPage; foreach (Control pv in mc.Controls) { foreach (Control cv in pv.Controls) { FixControlDims(cv); } } } } }
void OnCurrentPageChanged() { // To update TabIndex order CustomFocusManager.StartReorderTabIndex(); if (_isUpdateByScroller || _isUpdateByToolbar || !_isInitialized) { return; } _isUpdateByCurrentPage = true; Page oldPage = null; if (_toolbar.SelectedItem != null && _itemToItemPage.ContainsKey(_toolbar.SelectedItem)) { oldPage = _itemToItemPage[_toolbar.SelectedItem]; } oldPage?.SendDisappearing(); Element.CurrentPage?.SendAppearing(); int index = MultiPage <Page> .GetIndex(Element.CurrentPage); _toolbarItemList[index].IsSelected = true; _scroller.ScrollTo(index, 0, true); Element.UpdateFocusTreePolicy(); _isUpdateByCurrentPage = false; }
/// <summary> /// Retrieves the HTML to display in the designer. /// </summary> /// <returns>HTML for the designer.</returns> public override string GetDesignTimeHtml() { string html; MultiPage multiPage = (MultiPage)Component; int realIndex = 0; if (multiPage.Controls.Count == 0) { // Add a message if the MultiPage is empty return(CreatePlaceHolderDesignTimeHtml(DesignUtil.GetStringResource("MultiPageNoItems"))); } realIndex = multiPage.SelectedIndex; if (_SelectedIndex < 0) { _SelectedIndex = realIndex; } multiPage.SelectedIndex = _SelectedIndex; try { html = base.GetDesignTimeHtml(); } finally { // Restore the component multiPage.SelectedIndex = realIndex; } return(html); }
void OnToolbarItemSelected(object sender, EToolbarItemEventArgs e) { if (_toolbar.SelectedItem == null || _isResettingToolbarItems) { return; } if (_isUpdateByCurrentPage || _isUpdateByScroller) { return; } _isUpdateByToolbar = true; var oldPage = Element.CurrentPage; var newPage = _itemToItemPage[_toolbar.SelectedItem]; if (oldPage != newPage) { oldPage?.SendDisappearing(); Element.CurrentPage = newPage; newPage?.SendAppearing(); int index = MultiPage <Page> .GetIndex(newPage); _scroller.ScrollTo(index, 0, true); Element.UpdateFocusTreePolicy(); } _isUpdateByToolbar = false; }
public FormsFragmentPagerAdapter(MultiPage <T> page, FragmentManager fragmentManager) : base(fragmentManager) #endif { _page = page; _fragmentManager = fragmentManager; _fragments = new List <Fragment>(); }
/// <inheritDoc/> protected override void OnAttachedTo(MultiPage <T> bindable) { bindable.CurrentPageChanged += CurrentPageChangedHandler; bindable.Appearing += RootPageAppearingHandler; bindable.Disappearing += RootPageDisappearingHandler; base.OnAttachedTo(bindable); }
public MultiBuildingsDialog(mode dialogMode, MultiPage page, int fieldID = -1) : this() { CurMode = dialogMode; ID = fieldID; CurPage = page; FillFields(); }
protected override void Dispose(bool disposing) { if (disposing) { _page = null; } base.Dispose(disposing); }
/// <summary> /// Called when switching to the next page. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event arguments</param> public virtual void OnNextPage(object sender, EventArgs e) { MultiPage multiPage = (MultiPage)Component; if (SelectedIndex < (multiPage.Controls.Count - 1)) { SelectedIndex++; } }
public MasterSamplePageWindows(MasterSample sample, MultiPage <ContentPage> mainPage, ContentPage rootPage) { propertyStackLayout = new StackLayout { Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.FillAndExpand, BackgroundColor = Color.FromHex("#FFEDEDEB"), Padding = new Thickness(10, 0, 10, 10) }; var headerStackLayout = new StackLayout { Orientation = StackOrientation.Horizontal, HeightRequest = 50, HorizontalOptions = LayoutOptions.FillAndExpand, }; var optionsLabel = new Label { TextColor = Color.FromHex("#1196CD"), Text = "Options", FontSize = 20, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center }; headerStackLayout.Children.Add(optionsLabel); //AbsoluteLayout.SetLayoutBounds(optionsLabel,); var optionsHeaderImage = new Image { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.EndAndExpand, Aspect = Aspect.AspectFit, Source = ImageSource.FromFile("Icons/back.png") }; var tapGesture = new TapGestureRecognizer(); tapGesture.Tapped += tapGesture_Tapped; optionsHeaderImage.GestureRecognizers.Add(tapGesture); headerStackLayout.Children.Add(optionsHeaderImage); propertyStackLayout.Children.Add(headerStackLayout); var mainContent = new StackLayout { Spacing = 0 }; headerView = GetHeaderLayout(sample, mainPage, rootPage); mainContent.Children.Add(headerView); mainContent.Children.Add(GetControlLayout(sample)); Content = mainContent; }
/// <summary> /// Called when switching to the previous page. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event arguments</param> public virtual void OnPrevPage(object sender, EventArgs e) { MultiPage multiPage = (MultiPage)Component; if ((SelectedIndex > 0) && (multiPage.Controls.Count > 0)) { SelectedIndex--; } }
private View GetHeaderLayout(MasterSample sample, MultiPage <ContentPage> mainPage, ContentPage rootPage) { var stackLayout = new StackLayout { Orientation = StackOrientation.Horizontal, HeightRequest = 100, HorizontalOptions = LayoutOptions.FillAndExpand, BackgroundColor = Color.FromHex("#FF1196CD"), }; var controlIcon = new Image { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, //Aspect = Aspect.AspectFit, Source = ImageSource.FromFile("Icons/back.png") }; stackLayout.Children.Add(controlIcon); var tapGesture = new TapGestureRecognizer(); tapGesture.Tapped += (sender, args) => { mainPage.Children.Clear(); mainPage.Children.Add(rootPage); if (listView != null) { listView.SelectedItem = sample.Samples[0]; } }; controlIcon.GestureRecognizers.Add(tapGesture); stackLayout.Children.Add(new Label { TextColor = Color.White, Text = sample.Title, FontSize = 40, VerticalOptions = LayoutOptions.Center }); optionsImage = new Image { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.EndAndExpand, Aspect = Aspect.AspectFit, Source = ImageSource.FromFile("Icons/options.png") }; tapGesture = new TapGestureRecognizer(); tapGesture.Tapped += tapGesture_Tapped; optionsImage.GestureRecognizers.Add(tapGesture); return(stackLayout); }
/* * public override void WillRotate (UIInterfaceOrientation toInterfaceOrientation, double duration) * { * this.ignoreNativeScrolling = true; * } * * public override void DidRotate (UIInterfaceOrientation fromInterfaceOrientation) * { * this.ignoreNativeScrolling = false; * } */ private void UpdateCurrentPage(bool animated = true) { ContentPage currentPage = this.Carousel.CurrentPage; if (currentPage == null) { return; } this.ScrollToPage(MultiPage <ContentPage> .GetIndex(currentPage), animated); }
private void UpdateChildrenOrderIndex(UIViewController[] viewControllers) { for (int index = 0; index < viewControllers.Length; ++index) { int result = -1; if (int.TryParse(viewControllers [index].TabBarItem.Tag.ToString(), out result)) { MultiPage <Page> .SetIndex((Page)this.Tabbed.get_InternalChildren() [result], index); } } }
public static void AttachTabs(this MultiPage <Page> page) { page.BindingContextChanged += (sender, e) => { if (page.BindingContext != null && page.BindingContext is IProvideTabs) { foreach (var tab in ((IProvideTabs)page.BindingContext).Tabs) { page.Children.Add(tab); } } }; }
private static void TabbedPageOnCurrentPageChanged(object sender, EventArgs e) { if (sender is SJTabbedPage sJTabbedPage && sJTabbedPage.IsEnabled) { var currentIndex = MultiPage <Page> .GetIndex(sJTabbedPage.CurrentPage); sJTabbedPage.SelectedIndex = currentIndex; var command = GetCurrentPageChangedCommand(sJTabbedPage); if (command != null && command.CanExecute(currentIndex)) { command.Execute(currentIndex); } } }
public static void UpdateFocusTreePolicy <T>(this MultiPage <T> multiPage) where T : Page { foreach (var pageItem in multiPage.Children) { if (Platform.GetRenderer(pageItem)?.NativeView is ElmSharp.Widget nativeWidget) { if (pageItem == multiPage.CurrentPage) { nativeWidget.AllowTreeFocus = true; continue; } nativeWidget.AllowTreeFocus = false; } } }
void SelectedNextTab(int direction) { int nextIndex = MultiPage <Page> .GetIndex(Tabbed.CurrentPage) + direction; if (nextIndex < 0 || nextIndex >= Tabbed.Children.Count) { return; } var nextPage = Tabbed.Children[nextIndex]; UIView.Transition( Platform.GetRenderer(Tabbed.CurrentPage).NativeView, Platform.GetRenderer(nextPage).NativeView, 0.05, UIViewAnimationOptions.TransitionCrossDissolve, null); Tabbed.CurrentPage = nextPage; }
private void OnPagesChanged(object sender, NotifyCollectionChangedEventArgs e) { this.ignoreNativeScrolling = true; int num1 = (int)NotifyCollectionChangedEventArgsExtensions.Apply(e, (Action <object, int, bool>)((o, i, c) => this.InsertPage((ContentPage)o, i)), (Action <object, int>)((o, i) => this.RemovePage((ContentPage)o, i)), new Action(this.Reset)); this.PositionChildren(); this.ignoreNativeScrolling = false; int num2 = 4; if (num1 != num2) { return; } int index = this.Carousel.CurrentPage != null ? MultiPage <ContentPage> .GetIndex(this.Carousel.CurrentPage) : 0; if (index < 0) { index = 0; } this.ScrollToPage(index, true); }
private void HandleParent(Element parent) { if (parent is MultiPage <Page> ) { if (_multiPageParent != null) { _multiPageParent.CurrentPageChanged -= MultiPageParent_CurrentPageChanged; } _multiPageParent = parent as MultiPage <Page>; if (_multiPageParent != null) { _multiPageParent.CurrentPageChanged += MultiPageParent_CurrentPageChanged; } } else if (_multiPageParent != null) { _multiPageParent.CurrentPageChanged -= MultiPageParent_CurrentPageChanged; _multiPageParent = null; } }
void OnToolbarItemSelected(object sender, EToolbarItemEventArgs e) { if (_toolbar.SelectedItem == null || _isResettingToolbarItems) { return; } var oldPage = Element.CurrentPage; var newPage = _itemToItemPage[_toolbar.SelectedItem]; if (oldPage == newPage) { return; } oldPage?.SendDisappearing(); Element.CurrentPage = newPage; newPage?.SendAppearing(); int index = MultiPage <Page> .GetIndex(newPage); _scroller.ScrollTo(index, 0, true); }
protected override void OnDetachingFrom(MultiPage <Page> bindable) { base.OnDetachingFrom(bindable); bindable.CurrentPageChanged -= CurrentPageChangedHandler; }
protected override void OnAttachedTo(MultiPage <Page> bindable) { base.OnAttachedTo(bindable); bindable.CurrentPageChanged += CurrentPageChangedHandler; }
protected override void OnDetachingFrom(MultiPage <Page> bindable) { _associatedObject.CurrentPageChanged -= CurrentPageChangedHandler; }
protected override void OnAttachedTo(MultiPage <Page> bindable) { _associatedObject = bindable; _associatedObject.CurrentPageChanged += CurrentPageChangedHandler; }