Acc. HIG, "text fields should have placeholder text or a label". https://developer.gnome.org/hig/patterns/controls/text-fields.html
216 lines
8.3 KiB
XML
216 lines
8.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<interface>
|
|
<template class="GcalSearchButton" parent="AdwBin">
|
|
|
|
<child>
|
|
<object class="GtkEventControllerFocus">
|
|
<signal name="leave" handler="on_focus_controller_leave_cb" object="GcalSearchButton" swapped="no" />
|
|
</object>
|
|
</child>
|
|
|
|
<child>
|
|
<object class="GtkStack" id="stack">
|
|
<property name="hhomogeneous">False</property>
|
|
<property name="vhomogeneous">True</property>
|
|
<property name="interpolate-size">True</property>
|
|
<property name="transition-type">crossfade</property>
|
|
<property name="transition-duration">200</property>
|
|
<style>
|
|
<class name="suggestionbutton" />
|
|
</style>
|
|
|
|
<child>
|
|
<object class="GtkStackPage">
|
|
<property name="name">button</property>
|
|
<property name="child">
|
|
<object class="GtkButton" id="button">
|
|
<property name="halign">start</property>
|
|
<property name="icon-name">edit-find-symbolic</property>
|
|
<signal name="clicked" handler="on_button_clicked_cb" object="GcalSearchButton" swapped="no" />
|
|
|
|
<child>
|
|
<object class='GtkShortcutController'>
|
|
<property name='scope'>global</property>
|
|
<child>
|
|
<object class='GtkShortcut'>
|
|
<property name='trigger'><Control>f</property>
|
|
<property name='action'>activate</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
|
|
<child>
|
|
<object class="GtkStackPage">
|
|
<property name="name">entry</property>
|
|
<property name="child">
|
|
<object class="GtkSearchEntry" id="entry">
|
|
<property name="placeholder-text" translatable="yes">Search events</property>
|
|
<property name="max-width-chars">0</property>
|
|
<property name="width-chars">0</property>
|
|
<signal name="activate" handler="on_entry_activate_cb" object="GcalSearchButton" swapped="no" />
|
|
<signal name="next-match" handler="on_entry_next_match_cb" object="GcalSearchButton" swapped="no" />
|
|
<signal name="previous-match" handler="on_entry_previous_match_cb" object="GcalSearchButton" swapped="no" />
|
|
<signal name="search-changed" handler="on_entry_search_changed_cb" object="GcalSearchButton" swapped="no" />
|
|
<signal name="stop-search" handler="on_entry_stop_search_cb" object="GcalSearchButton" swapped="no" />
|
|
|
|
<child>
|
|
<object class="GtkShortcutController">
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name='trigger'>Up</property>
|
|
<property name='action'>signal(previous-match)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name='trigger'>Down</property>
|
|
<property name='action'>signal(next-match)</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</template>
|
|
|
|
<object class="GtkPopover" id="popover">
|
|
<property name="position">bottom</property>
|
|
<property name="autohide">False</property>
|
|
<property name="default-widget">results_listview</property>
|
|
<style>
|
|
<class name="menu" />
|
|
</style>
|
|
<child>
|
|
<object class="GtkRevealer" id="results_revealer">
|
|
<property name="transition-type">slide-down</property>
|
|
<signal name="notify::reveal-child" handler="on_results_revealer_child_reveal_state_changed_cb" object="GcalSearchButton" swapped="no" />
|
|
<signal name="notify::child-revealed" handler="on_results_revealer_child_reveal_state_changed_cb" object="GcalSearchButton" swapped="no" />
|
|
|
|
<child>
|
|
<object class="GtkScrolledWindow">
|
|
<property name="max-content-width">450</property>
|
|
<property name="max-content-height">400</property>
|
|
<property name="propagate-natural-width">True</property>
|
|
<property name="propagate-natural-height">True</property>
|
|
<property name="hscrollbar-policy">never</property>
|
|
|
|
<child>
|
|
<object class="GtkListView" id="results_listview">
|
|
<property name="hscroll-policy">natural</property>
|
|
<property name="vscroll-policy">natural</property>
|
|
<property name="single-click-activate">True</property>
|
|
<property name="model">
|
|
<object class="GtkSingleSelection" id="results_selection_model">
|
|
<property name="autoselect">True</property>
|
|
<property name="can-unselect">False</property>
|
|
</object>
|
|
</property>
|
|
<property name="factory">
|
|
<object class="GtkBuilderListItemFactory">
|
|
<property name="bytes"><![CDATA[
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<interface>
|
|
<template class="GtkListItem">
|
|
<property name="activatable">True</property>
|
|
<property name="selectable">True</property>
|
|
<property name="child">
|
|
<object class="GtkBox">
|
|
|
|
<child>
|
|
<object class="GtkImage" id="image">
|
|
<property name="valign">center</property>
|
|
<property name="hexpand">False</property>
|
|
<property name="icon-size">normal</property>
|
|
<binding name="paintable">
|
|
<lookup name="primary-icon" type="GcalSearchHit">
|
|
<lookup name="item">GtkListItem</lookup>
|
|
</lookup>
|
|
</binding>
|
|
<style>
|
|
<class name="title"/>
|
|
</style>
|
|
</object>
|
|
</child>
|
|
|
|
<child>
|
|
<object class="GtkLabel" id="title">
|
|
<property name="use-markup">True</property>
|
|
<property name="ellipsize">end</property>
|
|
<property name="xalign">0.0</property>
|
|
<property name="max-width-chars">40</property>
|
|
<binding name="label">
|
|
<closure type="gchararray" function="escape_markup_cb">
|
|
<lookup name="title" type="GcalSearchHit">
|
|
<lookup name="item">GtkListItem</lookup>
|
|
</lookup>
|
|
</closure>
|
|
</binding>
|
|
</object>
|
|
</child>
|
|
|
|
<child>
|
|
<object class="GtkLabel" id="separator">
|
|
<property name="label">—</property>
|
|
<binding name="visible">
|
|
<closure type="gboolean" function="string_is_not_empty_cb">
|
|
<lookup name="subtitle" type="GcalSearchHit">
|
|
<lookup name="item">GtkListItem</lookup>
|
|
</lookup>
|
|
</closure>
|
|
</binding>
|
|
<style>
|
|
<class name="dim-label"/>
|
|
</style>
|
|
</object>
|
|
</child>
|
|
|
|
<child>
|
|
<object class="GtkLabel" id="subtitle">
|
|
<property name="hexpand">True</property>
|
|
<property name="use-markup">True</property>
|
|
<property name="ellipsize">end</property>
|
|
<property name="xalign">0.0</property>
|
|
<binding name="label">
|
|
<closure type="gchararray" function="escape_markup_cb">
|
|
<lookup name="subtitle" type="GcalSearchHit">
|
|
<lookup name="item">GtkListItem</lookup>
|
|
</lookup>
|
|
</closure>
|
|
</binding>
|
|
<style>
|
|
<class name="subtitle"/>
|
|
</style>
|
|
</object>
|
|
</child>
|
|
|
|
</object>
|
|
</property>
|
|
</template>
|
|
</interface>
|
|
]]></property>
|
|
</object>
|
|
</property>
|
|
<signal name="activate" handler="on_results_listview_activated_cb" object="GcalSearchButton" swapped="no" />
|
|
</object>
|
|
</child>
|
|
|
|
</object>
|
|
</child>
|
|
|
|
</object>
|
|
</child>
|
|
</object>
|
|
|
|
</interface>
|