1#include <gtk/gtk.h>
2
3static void
4activate_cb (GtkApplication *app,
5 gpointer user_data)
6{
7 GtkWidget *window;
8 GtkWidget *search_bar;
9 GtkWidget *box;
10 GtkWidget *entry;
11 GtkWidget *menu_button;
12
13 window = gtk_application_window_new (application: app);
14 gtk_widget_show (widget: window);
15
16 search_bar = gtk_search_bar_new ();
17 gtk_widget_set_valign (widget: search_bar, align: GTK_ALIGN_START);
18 gtk_window_set_child (GTK_WINDOW (window), child: search_bar);
19 gtk_widget_show (widget: search_bar);
20
21 box = gtk_box_new (orientation: GTK_ORIENTATION_HORIZONTAL, spacing: 6);
22 gtk_search_bar_set_child (GTK_SEARCH_BAR (search_bar), child: box);
23
24 entry = gtk_search_entry_new ();
25 gtk_widget_set_hexpand (widget: entry, TRUE);
26 gtk_box_append (GTK_BOX (box), child: entry);
27
28 menu_button = gtk_menu_button_new ();
29 gtk_box_append (GTK_BOX (box), child: menu_button);
30
31 gtk_search_bar_connect_entry (GTK_SEARCH_BAR (search_bar), GTK_EDITABLE (entry));
32 gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (search_bar), widget: window);
33}
34
35int
36main (int argc,
37 char *argv[])
38{
39 GtkApplication *app;
40
41 app = gtk_application_new (application_id: "org.gtk.Example.GtkSearchBar",
42 flags: G_APPLICATION_FLAGS_NONE);
43 g_signal_connect (app, "activate",
44 G_CALLBACK (activate_cb), NULL);
45
46 return g_application_run (G_APPLICATION (app), argc, argv);
47}
48

source code of gtk/examples/search-bar.c