11using System ;
22using System . Collections . Generic ;
3- using System . Diagnostics ;
43using System . Drawing ;
54using System . Linq ;
65using System . Windows . Forms ;
98using ASCompletion . Model ;
109using JetBrains . Annotations ;
1110using PluginCore ;
11+ using QuickNavigate . Helpers ;
1212
1313namespace QuickNavigate . Forms
1414{
15- public sealed partial class QuickOutlineForm : Form
15+ public sealed partial class QuickOutlineForm : QuickForm
1616 {
1717 [ NotNull ] readonly Settings settings ;
1818 readonly ContextMenuStrip contextMenu = new ContextMenuStrip { Renderer = new DockPanelStripRenderer ( false ) } ;
@@ -34,17 +34,13 @@ public QuickOutlineForm([NotNull] FileModel inFile, [CanBeNull] ClassModel inCla
3434 InFile = inFile ;
3535 InClass = inClass ?? ClassModel . VoidClass ;
3636 this . settings = settings ;
37- Font = PluginBase . Settings . DefaultFont ;
3837 InitializeComponent ( ) ;
3938 if ( settings . QuickOutlineSize . Width > MinimumSize . Width ) Size = settings . QuickOutlineSize ;
40- InitializeContextMenu ( ) ;
4139 InitializeTree ( ) ;
4240 InitializeTheme ( ) ;
4341 RefreshTree ( ) ;
4442 }
4543
46- [ CanBeNull ] public event ShowInHandler ShowInClassHierarchy ;
47-
4844 [ CanBeNull ] ToolTip filterToolTip ;
4945
5046 [ NotNull ]
@@ -53,8 +49,7 @@ public QuickOutlineForm([NotNull] FileModel inFile, [CanBeNull] ClassModel inCla
5349 [ NotNull ]
5450 public ClassModel InClass { get ; }
5551
56- [ CanBeNull ]
57- public TreeNode SelectedNode => tree . SelectedNode ;
52+ public override TreeNode SelectedNode => tree . SelectedNode ;
5853
5954 [ CanBeNull ]
6055 Button currentFilter ;
@@ -86,8 +81,6 @@ Button CurrentFilter
8681 }
8782 }
8883
89- void InitializeContextMenu ( ) => contextMenu . Items . Add ( "Show in &Class Hierarchy" , PluginBase . MainForm . FindImage ( "99|16|0|0" ) , OnShowInClassHierarchy ) ;
90-
9184 void InitializeTree ( )
9285 {
9386 tree . ImageList = ASContext . Panel . TreeIcons ;
@@ -174,22 +167,27 @@ void AddMembers(TreeNodeCollection nodes, MemberList members, bool isHaxe, bool
174167 tree . SelectedNode = nodes [ 0 ] ;
175168 }
176169
177- void Navigate ( )
170+ protected override void Navigate ( )
178171 {
179172 if ( SelectedNode != null ) DialogResult = DialogResult . OK ;
180173 }
181174
182- void ShowContextMenu ( )
175+ protected override void ShowContextMenu ( )
183176 {
184177 if ( ! ( SelectedNode is TypeNode ) ) return ;
185178 ShowContextMenu ( new Point ( SelectedNode . Bounds . X , SelectedNode . Bounds . Bottom ) ) ;
186179 }
187180
188- void ShowContextMenu ( Point position )
181+ protected override void ShowContextMenu ( Point position )
189182 {
190- if ( SelectedNode is TypeNode ) contextMenu . Show ( tree , position ) ;
183+ if ( ! ( SelectedNode is TypeNode ) ) return ;
184+ contextMenu . Items . Clear ( ) ;
185+ contextMenu . Items . Add ( QuickContextMenuItem . ShowInClassHierarchyMenuItem ) ;
186+ contextMenu . Show ( tree , position ) ;
191187 }
192188
189+ internal void AddFilter ( QuickFilter filter ) => AddFilter ( filter . ImageIndex , filter . Flag , filter . Shortcut , filter . EnabledTip , filter . DisabledTip ) ;
190+
193191 public void AddFilter ( int imageIndex , FlagType flag , Keys shortcut , string enabledTip , string disabledTip )
194192 {
195193 if ( flagToFilter . ContainsKey ( flag ) ) return ;
@@ -336,7 +334,7 @@ void OnInputKeyDown(object sender, KeyEventArgs e)
336334 e . Handled = true ;
337335 }
338336
339- void OnTreeNodeMouseClick ( object sender , TreeNodeMouseClickEventArgs e )
337+ protected override void OnTreeNodeMouseClick ( object sender , TreeNodeMouseClickEventArgs e )
340338 {
341339 if ( e . Button != MouseButtons . Right ) return ;
342340 TreeNode node = e . Node as TypeNode ;
@@ -379,12 +377,6 @@ void OnTreeDrawNode(object sender, DrawTreeNodeEventArgs e)
379377 graphics . DrawString ( "(private)" , font , moduleBrush , x , bounds . Y , StringFormat . GenericTypographic ) ;
380378 }
381379
382- void OnShowInClassHierarchy ( object sender , EventArgs e )
383- {
384- Debug . Assert ( ShowInClassHierarchy != null , "ShowInClassHierarchy != null" ) ;
385- ShowInClassHierarchy ( this , ( ( TypeNode ) SelectedNode ) . Model ) ;
386- }
387-
388380 void OnFilterMouseHover ( object sender , EventArgs e ) => RefreshFilterTip ( ( Button ) sender ) ;
389381
390382 void OnFilterMouseLeave ( object sender , EventArgs e )
0 commit comments