#ifndef JUCI_SELECTIONDIALOG_H_ #define JUCI_SELECTIONDIALOG_H_ #include "gtkmm.h" #include "logging.h" class SelectionDialog { public: SelectionDialog(Gtk::TextView& text_view); void show(); void hide(); bool close(GdkEventFocus*); void select(bool hide_window=true); void move(); bool on_key_release(GdkEventKey* key); bool on_key_press(GdkEventKey* key); std::map rows; bool shown=false; Gtk::Entry search_entry; Glib::RefPtr start_mark; int start_offset; private: void resize(); Gtk::TextView& text_view; std::unique_ptr window; std::unique_ptr scrolled_window; std::unique_ptr list_view_text; }; #endif // JUCI_SELECTIONDIALOG_H_