Example #1
0
 public override void ClearFilter()
 {
     _uiLock = true;
     _PublicFilter.IsChecked = _PrivateFilter.IsChecked = false;
     _uiLock   = false;
     _Filters |= MemberFilterTypes.AllAccessibilities;
 }
Example #2
0
            protected override void UpdateFilterValue()
            {
                if (_uiLock)
                {
                    return;
                }
                var f = MemberFilterTypes.None;

                if (_PublicFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Public | MemberFilterTypes.Protected;
                }
                if (_PrivateFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Internal | MemberFilterTypes.Private;
                }
                if (f.HasAnyFlag(MemberFilterTypes.AllAccessibilities) == false)
                {
                    f |= MemberFilterTypes.AllAccessibilities;
                }
                if (_Filters != f)
                {
                    _Filters = f;
                    OnFilterChanged();
                }
            }
Example #3
0
            protected override void UpdateFilterValue()
            {
                if (_uiLock)
                {
                    return;
                }
                var f = MemberFilterTypes.None;

                if (_WriteFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Write;
                }
                if (_ReadFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Read;
                }
                if (_TypeCastFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.TypeCast;
                }
                if (_TypeReferenceFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.TypeReference;
                }
                if (f.HasAnyFlag(MemberFilterTypes.AllUsages) == false)
                {
                    f |= MemberFilterTypes.AllUsages;
                }
                if (_Filters != f)
                {
                    _Filters = f;
                    OnFilterChanged();
                }
            }
Example #4
0
 public override void ClearFilter()
 {
     _uiLock = true;
     _WriteFilter.IsChecked = _ReadFilter.IsChecked = _TypeCastFilter.IsChecked = _TypeReferenceFilter.IsChecked = false;
     _uiLock   = false;
     _Filters |= MemberFilterTypes.AllUsages;
 }
Example #5
0
        internal static bool FilterByUsage(MemberFilterTypes filterTypes, SymbolItem item)
        {
            var m = MemberFilterTypes.None;

            if (item.Usage.HasAnyFlag(SymbolUsageKind.Usage) == false)
            {
                return(false);
            }
            if (item.Usage.MatchFlags(SymbolUsageKind.Write))
            {
                m |= MemberFilterTypes.Write;
            }
            if (item.Usage.MatchFlags(SymbolUsageKind.TypeCast))
            {
                m |= MemberFilterTypes.TypeCast;
            }
            if (item.Usage.HasAnyFlag(SymbolUsageKind.TypeParameter | SymbolUsageKind.Catch))
            {
                m |= MemberFilterTypes.TypeReference;
            }
            if (item.Usage.HasAnyFlag(SymbolUsageKind.Delegate | SymbolUsageKind.Attach | SymbolUsageKind.Detach))
            {
                m |= MemberFilterTypes.Read;
            }
            return(filterTypes.HasAnyFlag(m));
        }
Example #6
0
            public MemberFilterButtonGroup()
            {
                _FieldFilter  = CreateButton(KnownImageIds.Field, "Fields, properties and events");
                _MethodFilter = CreateButton(KnownImageIds.Method, "Methods");
                _TypeFilter   = CreateButton(KnownImageIds.EntityContainer, "Types and delegates");

                _PublicFilter  = CreateButton(KnownImageIds.ModulePublic, "Public and protected members");
                _PrivateFilter = CreateButton(KnownImageIds.ModulePrivate, "Internal and private members");

                _Filters = MemberFilterTypes.All;
                Margin   = WpfHelper.SmallHorizontalMargin;
                Content  = new Border {
                    BorderThickness = WpfHelper.TinyMargin,
                    CornerRadius    = new CornerRadius(3),
                    Child           = new StackPanel {
                        Children =
                        {
                            _PublicFilter,                             _PrivateFilter,
                            new Border {
                                Width = 1,                             BorderThickness = WpfHelper.TinyMargin
                            }.ReferenceProperty(BorderBrushProperty,   CommonControlsColors.TextBoxBorderBrushKey),
                            _FieldFilter,                              _MethodFilter,                              _TypeFilter,
                            new Border {
                                Width = 1,                             BorderThickness = WpfHelper.TinyMargin
                            }.ReferenceProperty(BorderBrushProperty,   CommonControlsColors.TextBoxBorderBrushKey),
                            new ThemedButton(KnownImageIds.StopFilter, "Clear filter",                             ClearFilter).ClearBorder(),
                        },
                        Orientation = Orientation.Horizontal
                    }
                }.ReferenceProperty(BorderBrushProperty, CommonControlsColors.TextBoxBorderBrushKey);
            }
Example #7
0
 public override void ClearFilter()
 {
     _uiLock = true;
     _ClassFilter.IsChecked = _InterfaceFilter.IsChecked = _DelegateFilter.IsChecked
                                                               = _StructFilter.IsChecked = _EnumFilter.IsChecked = _NamespaceFilter.IsChecked = false;
     _uiLock   = false;
     _Filters |= MemberFilterTypes.AllTypes;
 }
Example #8
0
 void ClearFilter()
 {
     _uiLock = true;
     _FieldFilter.IsChecked = _MethodFilter.IsChecked = _TypeFilter.IsChecked
                                                            = _PublicFilter.IsChecked = _PrivateFilter.IsChecked = false;
     _uiLock = false;
     if (Filters != MemberFilterTypes.All)
     {
         Filters = MemberFilterTypes.All;
     }
     FilterCleared?.Invoke(this, EventArgs.Empty);
 }
Example #9
0
 public override void ClearFilter()
 {
     _uiLock = true;
     _FieldFilter.IsChecked = _MethodFilter.IsChecked = _EventFilter.IsChecked
                                                            = _TypeFilter.IsChecked = false;
     if (_PropertyFilter != null)
     {
         _PropertyFilter.IsChecked = false;
     }
     _uiLock   = false;
     _Filters |= MemberFilterTypes.AllMembers;
 }
Example #10
0
 public AccessibilityFilterButtonGroup()
 {
     _PublicFilter  = CreateButton(IconIds.PublicSymbols, R.T_PublicProtectedTypes);
     _PrivateFilter = CreateButton(IconIds.PrivateSymbols, R.T_InternalPrivateTypes);
     _Filters       = MemberFilterTypes.AllAccessibilities;
     Content        = new StackPanel {
         Children =
         {
             _PublicFilter, _PrivateFilter,
             (_Separator = CreateSeparator())
         },
         Orientation = Orientation.Horizontal
     }.ReferenceProperty(BorderBrushProperty, CommonControlsColors.TextBoxBorderBrushKey);
 }
Example #11
0
 public SymbolUsageFilterButtonGroup()
 {
     _WriteFilter         = CreateButton(IconIds.UseToWrite, R.T_Write);
     _ReadFilter          = CreateButton(IconIds.UseAsDelegate, R.T_DelegateEvent);
     _TypeCastFilter      = CreateButton(IconIds.UseToCast, R.T_TypeConversion);
     _TypeReferenceFilter = CreateButton(IconIds.UseAsTypeParameter, R.T_TypeReferenceOrArgument);
     _Filters             = MemberFilterTypes.AllUsages;
     Content = new StackPanel {
         Children =
         {
             _WriteFilter, _ReadFilter, _TypeCastFilter, _TypeReferenceFilter,
             (_Separator = CreateSeparator())
         },
         Orientation = Orientation.Horizontal
     };
 }
Example #12
0
 public override void ClearFilter()
 {
     _uiLock = true;
     _FieldFilter.IsChecked = _MethodFilter.IsChecked = _TypeFilter.IsChecked
                                                            = _PublicFilter.IsChecked = _PrivateFilter.IsChecked = false;
     if (_PropertyFilter != null)
     {
         _PropertyFilter.IsChecked = false;
     }
     _uiLock = false;
     if (_Filters != MemberFilterTypes.All)
     {
         _Filters = MemberFilterTypes.All;
     }
     OnFilterCleared();
 }
Example #13
0
            protected override void UpdateFilterValue()
            {
                if (_uiLock)
                {
                    return;
                }
                var f = MemberFilterTypes.None;

                if (_FieldFilter.IsChecked == true)
                {
                    f |= _PropertyFilter == null ? MemberFilterTypes.FieldAndProperty : MemberFilterTypes.Field;
                }
                if (_PropertyFilter?.IsChecked == true)
                {
                    f |= MemberFilterTypes.Property;
                }
                if (_MethodFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Method;
                }
                if (_TypeFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.TypeAndNamespace;
                }
                if (f.HasAnyFlag(MemberFilterTypes.AllMembers) == false)
                {
                    f |= MemberFilterTypes.AllMembers;
                }
                if (_PublicFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Public | MemberFilterTypes.Protected;
                }
                if (_PrivateFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Internal | MemberFilterTypes.Private;
                }
                if (f.HasAnyFlag(MemberFilterTypes.AllAccessibility) == false)
                {
                    f |= MemberFilterTypes.AllAccessibility;
                }
                if (_Filters != f)
                {
                    _Filters = f;
                    OnFilterChanged();
                }
            }
Example #14
0
            public MemberFilterButtonGroup()
            {
                _FieldFilter  = CreateButton(IconIds.Field, R.T_FieldsProperties);
                _MethodFilter = CreateButton(IconIds.Method, R.T_Methods);
                _EventFilter  = CreateButton(IconIds.Event, R.T_Events);
                _TypeFilter   = CreateButton(IconIds.TypeAndDelegate, R.T_TypesDelegates);

                _Filters = MemberFilterTypes.AllMembers;
                Content  = new StackPanel {
                    Children =
                    {
                        _FieldFilter, _MethodFilter, _EventFilter, _TypeFilter,
                        (_Separator = CreateSeparator())
                    },
                    Orientation = Orientation.Horizontal
                };
            }
Example #15
0
        internal static bool FilterBySymbolType(MemberFilterTypes filterTypes, ISymbol symbol)
        {
            MemberFilterTypes symbolFlags;

            if (symbol.Kind == SymbolKind.Alias)
            {
                symbol = ((IAliasSymbol)symbol).Target;
            }

            switch (symbol.DeclaredAccessibility)
            {
            case Accessibility.Private: symbolFlags = MemberFilterTypes.Private; break;

            case Accessibility.Protected: symbolFlags = MemberFilterTypes.Protected; break;

            case Accessibility.Internal: symbolFlags = MemberFilterTypes.Internal; break;

            case Accessibility.ProtectedAndInternal:
            case Accessibility.ProtectedOrInternal: symbolFlags = MemberFilterTypes.Internal | MemberFilterTypes.Protected; break;

            case Accessibility.Public: symbolFlags = MemberFilterTypes.Public; break;

            default: symbolFlags = MemberFilterTypes.None; break;
            }
            if (symbol.Kind == SymbolKind.NamedType)
            {
                switch (((INamedTypeSymbol)symbol).TypeKind)
                {
                case TypeKind.Class: symbolFlags |= MemberFilterTypes.Class; break;

                case TypeKind.Struct: symbolFlags |= MemberFilterTypes.Struct; break;

                case TypeKind.Interface: symbolFlags |= MemberFilterTypes.Interface; break;

                case TypeKind.Delegate: symbolFlags |= MemberFilterTypes.Delegate; break;

                case TypeKind.Enum: symbolFlags |= MemberFilterTypes.Enum; break;
                }
            }
            else if (symbol.Kind == SymbolKind.Namespace)
            {
                symbolFlags |= MemberFilterTypes.Namespace;
            }
            return(filterTypes.MatchFlags(symbolFlags));
        }
Example #16
0
            public TypeFilterButtonGroup()
            {
                _ClassFilter     = CreateButton(IconIds.Class, R.T_Classes);
                _InterfaceFilter = CreateButton(IconIds.Interface, R.T_Interfaces);
                _DelegateFilter  = CreateButton(IconIds.Delegate, R.T_Delegates);
                _StructFilter    = CreateButton(IconIds.Structure, R.T_Structures);
                _EnumFilter      = CreateButton(IconIds.Enum, R.T_Enumerations);
                _NamespaceFilter = CreateButton(IconIds.Namespace, R.T_Namespaces);

                _Filters = MemberFilterTypes.AllTypes;
                Content  = new StackPanel {
                    Children =
                    {
                        _ClassFilter, _InterfaceFilter, _DelegateFilter, _StructFilter, _EnumFilter, _NamespaceFilter,
                        (_Separator = CreateSeparator()),
                    },
                    Orientation = Orientation.Horizontal
                };
            }
Example #17
0
            void UpdateFilterValue(object sender, RoutedEventArgs eventArgs)
            {
                if (_uiLock)
                {
                    return;
                }
                var f = MemberFilterTypes.None;

                if (_FieldFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.FieldAndProperty;
                }
                if (_MethodFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Method;
                }
                if (_TypeFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.TypeAndNamespace;
                }
                if (f.HasAnyFlag(MemberFilterTypes.AllMembers) == false)
                {
                    f |= MemberFilterTypes.AllMembers;
                }
                if (_PublicFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Public | MemberFilterTypes.Protected;
                }
                if (_PrivateFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Internal | MemberFilterTypes.Private;
                }
                if (f.HasAnyFlag(MemberFilterTypes.AllAccessibility) == false)
                {
                    f |= MemberFilterTypes.AllAccessibility;
                }
                if (Filters != f)
                {
                    Filters = f;
                    FilterChanged?.Invoke(this, EventArgs.Empty);
                }
            }
Example #18
0
            protected override void UpdateFilterValue()
            {
                if (_uiLock)
                {
                    return;
                }
                var f = MemberFilterTypes.None;

                if (_ClassFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Class;
                }
                if (_StructFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Struct;
                }
                if (_EnumFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Enum;
                }
                if (_DelegateFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Delegate;
                }
                if (_InterfaceFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Interface;
                }
                if (_NamespaceFilter.IsChecked == true)
                {
                    f |= MemberFilterTypes.Namespace;
                }
                if (f.HasAnyFlag(MemberFilterTypes.AllTypes) == false)
                {
                    f |= MemberFilterTypes.AllTypes;
                }
                if (_Filters != f)
                {
                    _Filters = f;
                    OnFilterChanged();
                }
            }
Example #19
0
        internal static bool FilterBySymbol(MemberFilterTypes filterTypes, ISymbol symbol)
        {
            MemberFilterTypes symbolFlags;

            if (symbol.Kind == SymbolKind.Alias)
            {
                symbol = ((IAliasSymbol)symbol).Target;
            }
            switch (symbol.DeclaredAccessibility)
            {
            case Accessibility.Private: symbolFlags = MemberFilterTypes.Private; break;

            case Accessibility.Protected: symbolFlags = MemberFilterTypes.Protected; break;

            case Accessibility.Internal: symbolFlags = MemberFilterTypes.Internal; break;

            case Accessibility.ProtectedAndInternal:
            case Accessibility.ProtectedOrInternal: symbolFlags = MemberFilterTypes.Internal | MemberFilterTypes.Protected; break;

            case Accessibility.Public: symbolFlags = MemberFilterTypes.Public; break;

            default: symbolFlags = MemberFilterTypes.None; break;
            }
            switch (symbol.Kind)
            {
            case SymbolKind.Event: symbolFlags |= MemberFilterTypes.Event; break;

            case SymbolKind.Field: symbolFlags |= MemberFilterTypes.Field; break;

            case SymbolKind.Method: symbolFlags |= MemberFilterTypes.Method; break;

            case SymbolKind.NamedType:
            case SymbolKind.Namespace: symbolFlags |= MemberFilterTypes.TypeAndNamespace; break;

            case SymbolKind.Property: symbolFlags |= MemberFilterTypes.Property; break;
            }
            return(filterTypes.MatchFlags(symbolFlags));
        }
Example #20
0
 bool IMemberTypeFilter.Filter(MemberFilterTypes filterTypes)
 {
     return(MemberFilterBox.FilterByImageId(filterTypes, _ImageId));
 }
Example #21
0
        internal static bool FilterByImageId(MemberFilterTypes filterTypes, int imageId)
        {
            switch (imageId)
            {
            case KnownImageIds.ClassPublic:
            case KnownImageIds.InterfacePublic:
            case KnownImageIds.StructurePublic:
            case KnownImageIds.EnumerationPublic:
            case KnownImageIds.DelegatePublic:
            case KnownImageIds.Namespace:
                return(filterTypes.MatchFlags(MemberFilterTypes.Public | MemberFilterTypes.TypeAndNamespace));

            case KnownImageIds.ClassPrivate:
            case KnownImageIds.InterfacePrivate:
            case KnownImageIds.StructurePrivate:
            case KnownImageIds.EnumerationPrivate:
            case KnownImageIds.DelegatePrivate:
                return(filterTypes.MatchFlags(MemberFilterTypes.Private | MemberFilterTypes.TypeAndNamespace));

            case KnownImageIds.ClassProtected:
            case KnownImageIds.InterfaceProtected:
            case KnownImageIds.StructureProtected:
            case KnownImageIds.EnumerationProtected:
            case KnownImageIds.DelegateProtected:
                return(filterTypes.MatchFlags(MemberFilterTypes.Protected | MemberFilterTypes.TypeAndNamespace));

            case KnownImageIds.ClassInternal:
            case KnownImageIds.InterfaceInternal:
            case KnownImageIds.StructureInternal:
            case KnownImageIds.EnumerationInternal:
            case KnownImageIds.DelegateInternal:
                return(filterTypes.MatchFlags(MemberFilterTypes.Internal | MemberFilterTypes.TypeAndNamespace));

            case KnownImageIds.ClassShortcut:
            case KnownImageIds.InterfaceShortcut:
            case KnownImageIds.StructureShortcut:
                return(filterTypes.MatchFlags(MemberFilterTypes.TypeAndNamespace));

            case KnownImageIds.MethodPublic:
            case KnownImageIds.TypePublic:                     // constructor
            case KnownImageIds.OperatorPublic:
            case KnownImageIds.ConvertPartition:               // conversion
                return(filterTypes.MatchFlags(MemberFilterTypes.Public | MemberFilterTypes.Method));

            case KnownImageIds.MethodProtected:
            case KnownImageIds.TypeProtected:                     // constructor
            case KnownImageIds.OperatorProtected:
                return(filterTypes.MatchFlags(MemberFilterTypes.Protected | MemberFilterTypes.Method));

            case KnownImageIds.MethodInternal:
            case KnownImageIds.TypeInternal:                     // constructor
            case KnownImageIds.OperatorInternal:
                return(filterTypes.MatchFlags(MemberFilterTypes.Internal | MemberFilterTypes.Method));

            case KnownImageIds.MethodPrivate:
            case KnownImageIds.TypePrivate:                     // constructor
            case KnownImageIds.OperatorPrivate:
                return(filterTypes.MatchFlags(MemberFilterTypes.Private | MemberFilterTypes.Method));

            case KnownImageIds.DeleteListItem:                     // deconstructor
            case KnownImageIds.ExtensionMethod:
                return(filterTypes.MatchFlags(MemberFilterTypes.Method));

            case KnownImageIds.FieldPublic:
            case KnownImageIds.ConstantPublic:
            case KnownImageIds.PropertyPublic:
            case KnownImageIds.EventPublic:
                return(filterTypes.MatchFlags(MemberFilterTypes.Public | MemberFilterTypes.FieldAndProperty));

            case KnownImageIds.FieldProtected:
            case KnownImageIds.ConstantProtected:
            case KnownImageIds.PropertyProtected:
            case KnownImageIds.EventProtected:
                return(filterTypes.MatchFlags(MemberFilterTypes.Protected | MemberFilterTypes.FieldAndProperty));

            case KnownImageIds.FieldInternal:
            case KnownImageIds.ConstantInternal:
            case KnownImageIds.PropertyInternal:
            case KnownImageIds.EventInternal:
                return(filterTypes.MatchFlags(MemberFilterTypes.Internal | MemberFilterTypes.FieldAndProperty));

            case KnownImageIds.FieldPrivate:
            case KnownImageIds.ConstantPrivate:
            case KnownImageIds.PropertyPrivate:
            case KnownImageIds.EventPrivate:
                return(filterTypes.MatchFlags(MemberFilterTypes.Private | MemberFilterTypes.FieldAndProperty));

            case KnownImageIds.Numeric:                     // #region
                return(filterTypes == MemberFilterTypes.All);
            }
            return(false);
        }
Example #22
0
        public void Filter(string[] keywords, MemberFilterTypes filters)
        {
            bool useModifierFilter = filters != MemberFilterTypes.All;

            if (keywords.Length == 0)
            {
                foreach (UIElement item in _Items)
                {
                    item.Visibility = item is ThemedMenuItem.MenuItemPlaceHolder == false &&
                                      (useModifierFilter == false || item is IMemberTypeFilter menuItem && menuItem.Filter(filters))
                                                ? Visibility.Visible
                                                : Visibility.Collapsed;
                }
                return;
            }
            IMemberTypeFilter filterable;

            foreach (UIElement item in _Items)
            {
                var menuItem = item as MenuItem;
                if (useModifierFilter)
                {
                    filterable = item as IMemberTypeFilter;
                    if (filterable != null)
                    {
                        if (filterable.Filter(filters) == false && (menuItem == null || menuItem.HasItems == false))
                        {
                            item.Visibility = Visibility.Collapsed;
                            continue;
                        }
                        item.Visibility = Visibility.Visible;
                    }
                }
                if (menuItem == null)
                {
                    item.Visibility = Visibility.Collapsed;
                    continue;
                }
                var b = menuItem.Header as TextBlock;
                if (b == null)
                {
                    continue;
                }
                if (FilterSignature(b.GetText(), keywords))
                {
                    menuItem.Visibility = Visibility.Visible;
                    if (menuItem.HasItems)
                    {
                        foreach (MenuItem sub in menuItem.Items)
                        {
                            sub.Visibility = Visibility.Visible;
                        }
                    }
                    continue;
                }
                var matchedSubItem = false;
                if (menuItem.HasItems)
                {
                    foreach (MenuItem sub in menuItem.Items)
                    {
                        if (useModifierFilter)
                        {
                            filterable = sub as IMemberTypeFilter;
                            if (filterable != null)
                            {
                                if (filterable.Filter(filters) == false)
                                {
                                    sub.Visibility = Visibility.Collapsed;
                                    continue;
                                }
                                sub.Visibility = Visibility.Visible;
                            }
                        }
                        b = sub.Header as TextBlock;
                        if (b == null)
                        {
                            continue;
                        }
                        if (FilterSignature(b.GetText(), keywords))
                        {
                            matchedSubItem = true;
                            sub.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            sub.Visibility = Visibility.Collapsed;
                        }
                    }
                }
                menuItem.Visibility = matchedSubItem ? Visibility.Visible : Visibility.Collapsed;
            }

            bool FilterSignature(string text, string[] words)
            {
                return(words.All(p => text.IndexOf(p, StringComparison.OrdinalIgnoreCase) != -1));
            }
        }
Example #23
0
 bool IMemberFilterable.Filter(MemberFilterTypes filterTypes)
 {
     return(MemberFilterBox.FilterByImageId(filterTypes, CommandItem.ImageId));
 }
Example #24
0
        internal static bool FilterByImageId(MemberFilterTypes filterTypes, int imageId)
        {
            switch (imageId)
            {
            case KnownImageIds.ClassPublic:
            case KnownImageIds.InterfacePublic:
            case KnownImageIds.StructurePublic:
            case KnownImageIds.EnumerationPublic:
            case IconIds.EnumField:
            case KnownImageIds.DelegatePublic:
            case IconIds.Namespace:
                return(filterTypes.MatchFlags(MemberFilterTypes.Public | MemberFilterTypes.TypeAndNamespace));

            case KnownImageIds.ClassPrivate:
            case KnownImageIds.InterfacePrivate:
            case KnownImageIds.StructurePrivate:
            case KnownImageIds.EnumerationPrivate:
            case KnownImageIds.DelegatePrivate:
                return(filterTypes.MatchFlags(MemberFilterTypes.Private | MemberFilterTypes.TypeAndNamespace));

            case KnownImageIds.ClassProtected:
            case KnownImageIds.InterfaceProtected:
            case KnownImageIds.StructureProtected:
            case KnownImageIds.EnumerationProtected:
            case KnownImageIds.DelegateProtected:
                return(filterTypes.MatchFlags(MemberFilterTypes.Protected | MemberFilterTypes.TypeAndNamespace));

            case KnownImageIds.ClassInternal:
            case KnownImageIds.InterfaceInternal:
            case KnownImageIds.StructureInternal:
            case KnownImageIds.EnumerationInternal:
            case KnownImageIds.DelegateInternal:
                return(filterTypes.MatchFlags(MemberFilterTypes.Internal | MemberFilterTypes.TypeAndNamespace));

            case IconIds.PartialClass:
            case IconIds.PartialInterface:
            case IconIds.PartialStruct:
                return(filterTypes.MatchFlags(MemberFilterTypes.TypeAndNamespace));

            case KnownImageIds.MethodPublic:
            case IconIds.PublicConstructor:
            case KnownImageIds.OperatorPublic:
            case IconIds.ConvertOperator:
                return(filterTypes.MatchFlags(MemberFilterTypes.Public | MemberFilterTypes.Method));

            case KnownImageIds.MethodProtected:
            case IconIds.ProtectedConstructor:
            case KnownImageIds.OperatorProtected:
                return(filterTypes.MatchFlags(MemberFilterTypes.Protected | MemberFilterTypes.Method));

            case KnownImageIds.MethodInternal:
            case IconIds.InternalConstructor:
            case KnownImageIds.OperatorInternal:
                return(filterTypes.MatchFlags(MemberFilterTypes.Internal | MemberFilterTypes.Method));

            case KnownImageIds.MethodPrivate:
            case IconIds.PrivateConstructor:
            case KnownImageIds.OperatorPrivate:
                return(filterTypes.MatchFlags(MemberFilterTypes.Private | MemberFilterTypes.Method));

            case IconIds.Deconstructor:
            case IconIds.ExtensionMethod:
                return(filterTypes.MatchFlags(MemberFilterTypes.Method));

            case KnownImageIds.FieldPublic:
            case KnownImageIds.ConstantPublic:
            case KnownImageIds.PropertyPublic:
                return(filterTypes.MatchFlags(MemberFilterTypes.Public | MemberFilterTypes.FieldAndProperty));

            case KnownImageIds.FieldProtected:
            case KnownImageIds.ConstantProtected:
            case KnownImageIds.PropertyProtected:
                return(filterTypes.MatchFlags(MemberFilterTypes.Protected | MemberFilterTypes.FieldAndProperty));

            case KnownImageIds.FieldInternal:
            case KnownImageIds.ConstantInternal:
            case KnownImageIds.PropertyInternal:
                return(filterTypes.MatchFlags(MemberFilterTypes.Internal | MemberFilterTypes.FieldAndProperty));

            case KnownImageIds.FieldPrivate:
            case KnownImageIds.ConstantPrivate:
            case KnownImageIds.PropertyPrivate:
                return(filterTypes.MatchFlags(MemberFilterTypes.Private | MemberFilterTypes.FieldAndProperty));

            case KnownImageIds.EventPublic:
                return(filterTypes.MatchFlags(MemberFilterTypes.Public | MemberFilterTypes.Event));

            case KnownImageIds.EventProtected:
                return(filterTypes.MatchFlags(MemberFilterTypes.Protected | MemberFilterTypes.Event));

            case KnownImageIds.EventInternal:
                return(filterTypes.MatchFlags(MemberFilterTypes.Internal | MemberFilterTypes.Event));

            case KnownImageIds.EventPrivate:
                return(filterTypes.MatchFlags(MemberFilterTypes.Private | MemberFilterTypes.Event));

            case IconIds.Region:                     // #region
                return(filterTypes == MemberFilterTypes.All);
            }
            return(false);
        }