예제 #1
0
        public EditorListViewInfo GetCurrentListViewInfo()
        {
            var viewInfo = new EditorListViewInfo {
                FirstVisibleIndex = mWordEditorList.FirstVisibleIndex
            };
            int selectedEditorIndex = mWordEditorList.ActiveEditorIndex;

            if (selectedEditorIndex >= 0)
            {
                viewInfo.SelectedIndex = viewInfo.FirstVisibleIndex + selectedEditorIndex;
                viewInfo.FocusedField  = mWordEditorList[selectedEditorIndex].FocusedField;
            }

            return(viewInfo);
        }
예제 #2
0
        void MFirstAddressTextBox_ValueChanged(LongValueTextBox source, LongValueTextBox.ValueChangedEventArgs args)
        {
            var oldViewInfo = new EditorListViewInfo {
                FirstVisibleIndex = mWordEditorList.FirstVisibleIndex
            };
            int selectedEditorIndex = mWordEditorList.ActiveEditorIndex;

            if (selectedEditorIndex >= 0)
            {
                oldViewInfo.SelectedIndex = oldViewInfo.FirstVisibleIndex + selectedEditorIndex;
                oldViewInfo.FocusedField  = mWordEditorList[selectedEditorIndex].FocusedField;
            }

            mWordEditorList.FirstVisibleIndex = (int)args.NewValue;

            mAddressHistorySelector.AddItem(oldViewInfo, new EditorListViewInfo {
                FirstVisibleIndex = mWordEditorList.FirstVisibleIndex
            });
        }
예제 #3
0
        void MAddressHistorySelector_ItemSelected(object sender, ItemSelectedEventArgs <EditorListViewInfo> e)
        {
            EditorListViewInfo viewInfo = e.SelectedItem;

            if (viewInfo.SelectedIndex.HasValue)
            {
                int selectedIndex = viewInfo.SelectedIndex.Value;

                if (selectedIndex < viewInfo.FirstVisibleIndex + mWordEditorList.VisibleEditorCount)
                {
                    mWordEditorList.FirstVisibleIndex = viewInfo.FirstVisibleIndex;
                    mWordEditorList[viewInfo.SelectedIndex.Value - viewInfo.FirstVisibleIndex].Focus(viewInfo.FocusedField, null);
                }
                else
                {
                    mWordEditorList.MakeIndexVisible(selectedIndex);
                }
            }
            else
            {
                mWordEditorList.FirstVisibleIndex = viewInfo.FirstVisibleIndex;
            }
        }
예제 #4
0
        public void MakeAddressVisible(int address, bool trackChange)
        {
            if (trackChange)
            {
                var oldViewInfo = GetCurrentListViewInfo();

                mWordEditorList.MakeIndexVisible(address);

                var newViewInfo = new EditorListViewInfo {
                    FirstVisibleIndex = mWordEditorList.FirstVisibleIndex, SelectedIndex = address
                };
                int selectedEditorIndex = mWordEditorList.ActiveEditorIndex;
                if (selectedEditorIndex >= 0)
                {
                    newViewInfo.FocusedField = mWordEditorList[selectedEditorIndex].FocusedField;
                }

                mAddressHistorySelector.AddItem(oldViewInfo, newViewInfo);
            }
            else
            {
                mWordEditorList.MakeIndexVisible(address);
            }
        }