Class: Handy::SearchBar

Inherits:
Gtk::Bin
  • Object
show all
Defined in:
(unknown)

Instance Method Summary collapse

Constructor Details

#initializeGtk::Widget

Creates a new `HdySearchBar.

You will need to tell it about which widget is going to be your text entry using [methodSearchBar.connect_entry].

Instance Method Details

#connect_entry(entry) ⇒ nil

Sets the entry widget passed as the one to be used in this search bar.

The entry should be a descendant of the search bar. This is only required if the entry isn’t the direct child of the search bar (as in our main example).

Parameters:

  • entry (Gtk::Entry)

    an entry

Returns:

  • (nil)

#handle_event(event) ⇒ Boolean

Handles key press events.

This function should be called when the top-level window which contains the search bar received a key event.

If the key event is handled by the search bar, the bar will be shown, the entry populated with the entered text and GDK_EVENT_STOP will be returned. The caller should ensure that events are not propagated further.

If no entry has been connected to the search bar, using [methodSearchBar.connect_entry], this function will return immediately with a warning.

Showing the search bar on key presses

static gboolean
on_key_press_event (GtkWidget *widget,
                    GdkEvent  *event,
                    gpointer   user_data)
{
  HdySearchBar *bar = HDY_SEARCH_BAR (user_data);
  return hdy_search_bar_handle_event (self, event);
}

static void
create_toplevel (void)
{
  GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  GtkWindow *search_bar = hdy_search_bar_new ();

  // Add more widgets to the window...

  g_signal_connect (window,
                   "key-press-event",
                    G_CALLBACK (on_key_press_event),
                    search_bar);
}

Parameters:

  • event (Gdk::Event)

    a [structGdk.Event] containing key press events

Returns:

  • (Boolean)

    GDK_EVENT_STOP if the key press event resulted in text being entered in the search entry (and revealing the search bar if necessary), GDK_EVENT_PROPAGATE otherwise.

#search_modeBoolean

Gets whether the search mode is on.

Returns:

  • (Boolean)

    whether search mode is toggled on

#search_mode=(search_mode) ⇒ nil

Switches the search mode on or off.

Parameters:

  • search_mode (Boolean)

    the new state of the search mode

Returns:

  • (nil)

#search_mode_enabled=(search_mode_enabled) ⇒ Boolean

Whether the search mode is on and the search bar shown.

Parameters:

  • search_mode_enabled (Boolean)

Returns:

  • (Boolean)

    search-mode-enabled

  • (Boolean)

    search-mode-enabled

#search_mode_enabled?Boolean

Whether the search mode is on and the search bar shown.

Returns:

  • (Boolean)

    search-mode-enabled

#show_close_buttonBoolean

Gets whether the close button is shown.

Returns:

  • (Boolean)

    whether the close button is shown

#show_close_button=(show_close_button) ⇒ Boolean

Whether to show the close button in the toolbar.

Parameters:

  • show_close_button (Boolean)

Returns:

  • (Boolean)

    show-close-button

  • (Boolean)

    show-close-button

#show_close_button?Boolean

Whether to show the close button in the toolbar.

Returns:

  • (Boolean)

    show-close-button