private void ActionPerformed(GenericListPageContext.ContextMenuItem selectedAction) { if (currentMenu != null) { currentMenu.IsOpen = false; } PageContext.OnListItemSelected(currentItem, selectedAction); }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { // Start with calling the base implementation base.OnNavigatedTo(e); this.SupportedOrientations = GamePage.get().SupportedOrientations; // Set the page's state according to the context if (e.NavigationMode != System.Windows.Navigation.NavigationMode.Back) { this.PageContext = NavigationContext.GetData<GenericListPageContext>(); this.DataContext = this; // Check which grid to display this.ContentPanel.Visibility = (this.PageContext.ListItems.Any()) ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed; this.NoItemsGrid.Visibility = (this.PageContext.ListItems.Any()) ? System.Windows.Visibility.Collapsed : System.Windows.Visibility.Visible; // And translate the page LanguageResources.Instance.UpdateControl(this); } }
public static void NOPH_GenericListDialogs_showDialogNoItems(int i_title, int i_empty_list_message) { // Convert the tilte and message string title = CRunTime.charPtrToString(i_title); string emptyListMessage = CRunTime.charPtrToString(i_empty_list_message); // And wrap it all up System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => { GenericListPageContext pageContext = new GenericListPageContext { ListTitle = title, EmptyListMessage = emptyListMessage, ListItems = new ObservableCollection<GenericListItem>() }; var currentPage = ((App)Application.Current).RootFrame.Content as PhoneApplicationPage; currentPage.NavigationService.Navigate<GenericListPage>(pageContext); }); }
public static void NOPH_GenericListDialogs_showDialog(int i_title, int in_action_callback, int count, int labels_addr, int values_addr, int icons_addr, int menu_count, int menu_labels_addr, int menu_values_addr, int context_addr) { // Offset the array points labels_addr /= 4; icons_addr /= 4; menu_labels_addr /= 4; // Start with the context menu items ObservableCollection<GenericListContextMenuItem> menuItems = new ObservableCollection<GenericListContextMenuItem>(); for (int i = 0; i < menu_count; ++i) { if (CRunTime.memory[menu_labels_addr + i] != 0) { string header = CRunTime.charPtrToString(CRunTime.memory[menu_labels_addr + i]); menuItems.Add(new GenericListContextMenuItem( header, i)); } } // And now handle the list items ObservableCollection<GenericListItem> listItems = new ObservableCollection<GenericListItem>(); for (int i = 0; i < count; ++i) { string label = CRunTime.charPtrToString(CRunTime.memory[labels_addr + i]); string icon = FormatIconResource(CRunTime.charPtrToString(CRunTime.memory[icons_addr + i])); listItems.Add( new GenericListItem( label, icon, i)); } // And don't forget the tilte string title = CRunTime.charPtrToString(i_title); // Revert of offseting labels_addr *= 4; icons_addr *= 4; menu_labels_addr *= 4; // And wrap it all up System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => { GenericListPageContext pageContext = new GenericListPageContext { ListTitle = title, EmptyListMessage = "", ListItems = listItems, ContextMenuItems = menuItems }; pageContext.OnListItemSelected += (listItem, menuItem) => { int offset = listItem.ReferenceIndex * 4; int menuOffset = menuItem.ReferenceIndex * 4; UIWorker.addUIEvent(in_action_callback, labels_addr + offset, values_addr + offset, menu_values_addr + menuOffset, context_addr, true); }; var currentPage = ((App)Application.Current).RootFrame.Content as PhoneApplicationPage; currentPage.NavigationService.Navigate<GenericListPage>(pageContext); }); }