예제 #1
0
 private void ActionPerformed(GenericListPageContext.ContextMenuItem selectedAction)
 {
     if (currentMenu != null)
     {
         currentMenu.IsOpen = false;
     }
     PageContext.OnListItemSelected(currentItem, selectedAction);
 }
예제 #2
0
        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);
            }
        }
예제 #3
0
파일: Syscalls.cs 프로젝트: ckeboss/WazeWP7
    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);
        });
    }
예제 #4
0
파일: Syscalls.cs 프로젝트: ckeboss/WazeWP7
    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);
        });
    }