Add a signal handler for the 'activate' signal to spawn a process

This commit is contained in:
R. Tyler Croy 2017-01-07 14:20:42 -08:00
parent e34d21d874
commit 978ccecc7d
No known key found for this signature in database
GPG Key ID: 1426C7DC3F51E16F
4 changed files with 21 additions and 0 deletions

View File

@ -33,6 +33,7 @@
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
<property name="placeholder_text" translatable="yes">Enter a command to run</property>
<signal name="activate" handler="commandEntry_activate_cb" swapped="no"/>
<signal name="search-changed" handler="commandEntry_search_changed_cb" swapped="no"/>
</object>
<packing>

View File

@ -28,4 +28,15 @@ package body Arun.Handlers is
end Search_Changed;
procedure Execute_Command (Object : access Gtkada_Builder_Record'Class) is
use Ada.Text_IO;
use Gtk.Search_Entry;
use Gtkada.Builder;
Widget : Gtk_Search_Entry := Gtk_Search_Entry (Get_Object (Object, "commandEntry"));
begin
Put_Line ("Should Execute: " & Widget.Get_Text);
Gtk.Main.Main_Quit;
end Execute_Command;
end Arun.Handlers;

View File

@ -8,6 +8,11 @@ package Arun.Handlers is
procedure Quit (Object : access Gtkada_Builder_Record'Class);
-- Whenever the search entry changes call this handler for autocompletion
procedure Search_Changed (Object : access Gtkada_Builder_Record'Class);
-- On "activate" of the search entry call this handler (basically when the user
-- hits the enter key
procedure Execute_Command (Object : access Gtkada_Builder_Record'Class);
end Arun.Handlers;

View File

@ -44,10 +44,14 @@ package body Arun is
Register_Handler (Builder => Builder,
Handler_Name => "Main_Quit",
Handler => Arun.Handlers.Quit'Access);
Register_Handler (Builder => Builder,
Handler_Name => "commandEntry_search_changed_cb",
Handler => Arun.Handlers.Search_Changed'Access);
Register_Handler (Builder => Builder,
Handler_Name => "commandEntry_activate_cb",
Handler => Arun.Handlers.Execute_Command'Access);
-- Step 3: call Do_Connect. Once to connect all registered handlers
Do_Connect (Builder);