@@ -42,7 +42,8 @@ public class BuildLoggingPad : PadContent
4242 ToolbarButtonItem startButton ;
4343 ToolbarButtonItem stopButton ;
4444 ToolbarButtonItem clearButton ;
45- ComboBox buildTypeFilterComboBox ;
45+ ToolbarPopUpButtonItem buildTypeFilterComboBox ;
46+ ContextMenu buildTypeFilterMenu ;
4647 ToolbarSearchItem searchEntry ;
4748 TimeSpan searchDelayTimeSpan = TimeSpan . FromMilliseconds ( 250 ) ;
4849 IDisposable searchTimer ;
@@ -72,9 +73,12 @@ public override void Dispose ()
7273 startButton . Clicked -= OnStartButtonClicked ;
7374 stopButton . Clicked -= OnStopButtonClicked ;
7475 clearButton . Clicked -= OnClearButtonClicked ;
75- buildTypeFilterComboBox . Changed -= BuildTypeFilterComboBoxChanged ;
7676 searchEntry . TextChanged -= SearchEntryChanged ;
7777
78+ foreach ( ContextMenuItem menuItem in buildTypeFilterMenu . Items ) {
79+ menuItem . Clicked -= BuildTypeFilterComboBoxChanged ;
80+ }
81+
7882 DisposeExistingTimer ( ) ;
7983
8084 widget . Dispose ( ) ;
@@ -106,13 +110,9 @@ protected override void Initialize (IPadWindow window)
106110 clearButton . Tooltip = GettextCatalog . GetString ( "Clear" ) ;
107111 toolbar . AddItem ( clearButton ) ;
108112
109- //string[] buildTypeItems = buildTypes
110- // .Select (buildType => GetDisplayText (buildType))
111- // .ToArray ();
112- //buildTypeFilterComboBox = new ComboBox (buildTypeItems);
113- //buildTypeFilterComboBox.Active = 0;
114- //buildTypeFilterComboBox.Changed += BuildTypeFilterComboBoxChanged;
115- //toolbar.Add (buildTypeFilterComboBox);
113+ buildTypeFilterComboBox = new ToolbarPopUpButtonItem ( toolbar . Properties , nameof ( buildTypeFilterComboBox ) ) ;
114+ buildTypeFilterComboBox . MenuCreator = ( ) => CreateBuildTypeFilterMenu ( ) ;
115+ toolbar . AddItem ( buildTypeFilterComboBox ) ;
116116
117117 searchEntry = new ToolbarSearchItem ( toolbar . Properties , nameof ( searchEntry ) ) ;
118118 searchEntry . Position = ToolbarItemPosition . Trailing ;
@@ -130,6 +130,26 @@ protected override void Initialize (IPadWindow window)
130130 ProjectSystemService . MSBuildTargetFinished += MSBuildTargetFinished ;
131131 }
132132
133+ ContextMenu CreateBuildTypeFilterMenu ( )
134+ {
135+ string [ ] buildTypeItems = buildTypes
136+ . Select ( buildType => GetDisplayText ( buildType ) )
137+ . ToArray ( ) ;
138+
139+ buildTypeFilterMenu = new ContextMenu ( ) ;
140+
141+ foreach ( BuildType buildType in buildTypes ) {
142+ var menuItem = new ContextMenuItem ( ) ;
143+ menuItem . Label = GetDisplayText ( buildType ) ;
144+ menuItem . Context = buildType ;
145+ menuItem . Clicked += BuildTypeFilterComboBoxChanged ;
146+
147+ buildTypeFilterMenu . Items . Add ( menuItem ) ;
148+ }
149+
150+ return buildTypeFilterMenu ;
151+ }
152+
133153 void OnStartButtonClicked ( object sender , EventArgs e )
134154 {
135155 ProjectSystemService . IsEnabled = true ;
@@ -177,9 +197,9 @@ static string GetDisplayText (BuildType buildType)
177197 }
178198 }
179199
180- void BuildTypeFilterComboBoxChanged ( object sender , EventArgs e )
200+ void BuildTypeFilterComboBoxChanged ( object sender , ContextMenuItemClickedEventArgs e )
181201 {
182- widget . BuildType = buildTypes [ buildTypeFilterComboBox . Active ] ;
202+ widget . BuildType = ( BuildType ) e . Context ;
183203 }
184204
185205 void SearchEntryChanged ( object sender , EventArgs e )
0 commit comments