<?xml version="1.0" encoding="UTF-8"?>
<fpdoc-descriptions>
  <package name="LazControls">
    <module name="ListViewFilterEdit">
      <short>Implements an edit control used to filter an associated TListView control.</short>
      <descr>
        <p>
          <file>ListViewFilterEdit</file> contains classes and types used to implement the <var>TListViewFilterEdit</var> control. It is used to filter the items displayed for an associated <var>TListView</var> control.
        </p>
        <p>
          This file is part of the <file>LazControls</file> package.
        </p>
      </descr>

      <!-- unresolved external references -->
      <element name="Classes"/>
      <element name="SysUtils"/>
      <element name="Math"/>
      <element name="Fgl"/>
      <element name="LCLType"/>
      <element name="Graphics"/>
      <element name="ComCtrls"/>
      <element name="EditBtn"/>
      <element name="LazUTF8"/>


      <element name="TListViewDataItem">
        <short>
          Record type with data and lines of text for an item in a list view control.
        </short>
        <descr>
          <p>
            TListViewDataItem is the typed maintained in TListViewDataList.
          </p>
        </descr>
        <seealso/>
      </element>

      <element name="TListViewDataItem.Data">
        <short>Pointer to the data for the list item.</short>
        <descr/>
        <seealso/>
      </element>

      <element name="TListViewDataItem.StringArray">
        <short>Array of String values with the text displayed for the list item.</short>
        <descr/>
        <seealso/>
      </element>

      <element name="TListViewDataItem.OperatorEqual">
        <short>
          Implements the Equal (=) comparison operator for TListViewDataItem instances.
        </short>
        <descr>
          <p>
            The return value is <b>True</b> when both the <var>Data</var> and the <var>StringArray</var> for the compared <var>TListViewDataItem</var> instances are the same.
          </p>
        </descr>
        <seealso/>
      </element>
      <element name="TListViewDataItem.OperatorEqual.Result">
        <short>True when the compared items have the same Data and StringArray values.</short>
      </element>
      <element name="TListViewDataItem.OperatorEqual.a">
        <short>TListViewDataItem instance for the comparison operator.</short>
      </element>
      <element name="TListViewDataItem.OperatorEqual.b">
        <short>TListViewDataItem instance for the comparison operator.</short>
      </element>

      <element name="TListViewDataList">
        <short>List container for TListViewDataItem instances.</short>
        <descr>
          <p>
            <var>TListViewDataList</var> is a specialization of TFPGList to use TListViewDataItem instances in the container. TListViewDataList is the type used to implement the <var>Items</var> property in <var>TListViewFilterEdit</var>.
          </p>
        </descr>
        <seealso>
          <link id="TListViewDataItem"/>
          <link id="TListViewFilterEdit.Items"/>
        </seealso>
      </element>

      <element name="TListViewFilterEdit">
        <short>Implements a control used to filter an associated TListView control.</short>
        <descr/>
        <seealso/>
      </element>

      <element name="TListViewFilterEdit.FFilteredListview">
        <short>TListView control showing the filtered data.</short>
      </element>

      <element name="TListViewFilterEdit.FByAllFields">
        <short>Stores the value for the ByAllFields property.</short>
      </element>

      <element name="TListViewFilterEdit.FSelectionList">
        <short>Stores / restores the previous selections in the associated control.</short>
      </element>

      <element name="TListViewFilterEdit.FOriginalData">
        <short>Data supplied by the caller through the Items property.</short>
      </element>

      <element name="TListViewFilterEdit.FFilteredData">
        <short>Data sorted for viewing.</short>
      </element>

      <element name="TListViewFilterEdit.MatchesFilter">
        <short>True when the list view item matches a filter condition for the control.</short>
      </element>
      <element name="TListViewFilterEdit.MatchesFilter.Result">
        <short>True when the list view item matches a filter condition for the control.</short>
      </element>
      <element name="TListViewFilterEdit.MatchesFilter.AData">
        <short/>
      </element>

      <element name="TListViewFilterEdit.SetFilteredListview">
        <short>Sets the value for the FilteredListview property.</short>
      </element>
      <element name="TListViewFilterEdit.SetFilteredListview.AValue">
        <short>New value for the FilteredListview property.</short>
      </element>

      <element name="TListViewFilterEdit.Notification">
        <short>
          Handles a notification message received when a component is added to or removed from the control.
        </short>
        <descr>
          <p>
            Overridden in <var>TListViewFilterEdit</var> to ensure that the <var>FilteredListview</var> property is set to <b>Nil</b> when the component is removed from the control.
          </p>
        </descr>
        <seealso>
          <link id="TListViewFilterEdit.FilteredListview"/>
          <link id="#lcl.controls.TControl.Notification">TControl.Notification</link>
        </seealso>
      </element>
      <element name="TListViewFilterEdit.Notification.AComponent">
        <short>Component for the notification message.</short>
      </element>
      <element name="TListViewFilterEdit.Notification.Operation">
        <short>Operation for the component.</short>
      </element>

      <element name="TListViewFilterEdit.GetLastSelectedIndex">
        <short>Gets the ordinal position for the last selected list view item.</short>
        <descr>
          <p>
            The return value is retrieved from the Index property in LastSelected (when assigned). The value is -1 if LastSelected has not been assigned.
          </p>
        </descr>
        <seealso>
          <link id="#lcl.comctrls.TCustomListView.LastSelected">TCustomListView.LastSelected</link>
        </seealso>
      </element>
      <element name="TListViewFilterEdit.GetLastSelectedIndex.Result">
        <short>
          Ordinal position for the last selected list view item, or -1 when LastSelected has not been assigned.
        </short>
      </element>

      <element name="TListViewFilterEdit.MoveTo">
        <short>
          Changes the selection for the associated list view control to the specified item position.
        </short>
        <descr/>
        <seealso/>
      </element>
      <element name="TListViewFilterEdit.MoveTo.AIndex">
        <short>Ordinal position for the list item to select, multi-select, or de-select.</short>
      </element>
      <element name="TListViewFilterEdit.MoveTo.ASelect">
        <short>True if the item is selected or included in a multi-selection.</short>
      </element>

      <element name="TListViewFilterEdit.MoveNext">
        <short>Moves the list view control to the next list item.</short>
        <descr>
          <p>
            <var>MoveNext</var> is an overridden method in <var>TListViewFilterEdit</var> used to position the associated list view control on the next list item which matches the filter condition. The value in LastSelected is used as the starting point for the navigation request.
          </p>
          <p>
            MoveNext calls the MoveTo method to reposition the list view and determine the existing selected state for the list item.
          </p>
          <p>
            ASelect indicates whether the list item is included in the Selection (multi-selection) for the list view control.
          </p>
          <p>
            No actions are performed in the method when FilteredListview has not been assigned, or does not contain any list items.
          </p>
        </descr>
        <seealso>
          <link id="#lcl.editbtn.TCustomControlFilterEdit.MoveNext">TCustomControlFilterEdit.MoveNext</link>
        </seealso>
      </element>
      <element name="TListViewFilterEdit.MoveNext.ASelect">
        <short>
          True if the new list item should become selected, or added to the multi-selection for the list view control.
        </short>
      </element>

      <element name="TListViewFilterEdit.MovePrev">
        <short>
          Moves the associated list view control to the previous list item.
        </short>
        <descr/>
        <seealso/>
      </element>
      <element name="TListViewFilterEdit.MovePrev.ASelect">
        <short>True if the list item should be become selected (or multi-selected).</short>
      </element>

      <element name="TListViewFilterEdit.MovePageUp">
        <short>
          Moves the associated list view control towards the start of its list items by the  number of visible rows for the control.
        </short>
        <descr/>
        <seealso/>
      </element>
      <element name="TListViewFilterEdit.MovePageUp.ASelect">
        <short>True if the list item should be become selected (or multi-selected).</short>
      </element>

      <element name="TListViewFilterEdit.MovePageDown">
        <short>
          Moves the associated list view control towards the end of its list items by the  number of visible rows for the control.
        </short>
        <descr/>
        <seealso/>
      </element>
      <element name="TListViewFilterEdit.MovePageDown.ASelect">
        <short>True if the list item should be become selected (or multi-selected).</short>
      </element>

      <element name="TListViewFilterEdit.MoveHome">
        <short>
          Move the associated list view control to the first list item.
        </short>
        <descr/>
        <seealso/>
      </element>
      <element name="TListViewFilterEdit.MoveHome.ASelect">
        <short>True if the list item should be become selected (or multi-selected).</short>
      </element>

      <element name="TListViewFilterEdit.MoveEnd">
        <short>
          Move the associated list view control to the last list item.
        </short>
        <descr/>
        <seealso/>
      </element>
      <element name="TListViewFilterEdit.MoveEnd.ASelect">
        <short>True if the list item should be become selected (or multi-selected).</short>
      </element>

      <element name="TListViewFilterEdit.ReturnKeyHandled">
        <short>
          Returns True if a Return or Enter key press was forwarded to the list view control.
        </short>
        <descr/>
        <seealso/>
      </element>
      <element name="TListViewFilterEdit.ReturnKeyHandled.Result">
        <short>
          True if a Return (Enter) key press was forwarded to the list view control.
        </short>
      </element>

      <element name="TListViewFilterEdit.SortAndFilter">
        <short>
          Sorts the data in the associated control and applies the filter.
        </short>
        <descr>
          <p>
            <var>SortAndFilter</var> is an overridden method in <var>TListViewFilterEdit</var> which implements the abstract virtual method from the ancestor class. It discards previous filtering results and re-evaluates the filter condition(s) for each of the list items in <var>FilteredListview</var>.
          </p>
        </descr>
        <seealso>
          <link id="TListViewFilterEdit.FilteredListview"/>
          <link id="#lcl.editbtn.TCustomControlFilterEdit.SortAndFilter">TCustomControlFilterEdit.SortAndFilter</link>
          <link id="#lcl.editbtn.TCustomControlFilterEdit.DoFilterItem">TCustomControlFilterEdit.DoFilterItem</link>
          <link id="#lcl.editbtn.TCustomControlFilterEdit.OnFilterItem">TCustomControlFilterEdit.OnFilterItem</link>
          <link id="#lcl.editbtn.TCustomControlFilterEdit.OnFilterItemEx">TCustomControlFilterEdit.OnFilterItemEx</link>
        </seealso>
      </element>

      <element name="TListViewFilterEdit.ApplyFilterCore">
        <short>
          Implements the method used to apply filter data to the associated control.
        </short>
        <descr>
          <p>
            Called when the ApplyFilter method in the ancestor class is executed.
          </p>
        </descr>
        <seealso/>
      </element>

      <element name="TListViewFilterEdit.GetDefaultGlyphName">
        <short>Gets the default resource name for the button glyph on the control.</short>
        <descr/>
        <seealso/>
      </element>
      <element name="TListViewFilterEdit.GetDefaultGlyphName.Result">
        <short>Resource name for the button glyph.</short>
      </element>

      <element name="TListViewFilterEdit.Create">
        <short>Constructor for the class instance.</short>
        <descr>
          <p>
            <var>Create</var> is the overridden constructor for the class instance, and calls the inherited method on entry. It allocates resources for the <var>SelectionList</var> and <var>Items</var> properties. It creates an internal <var>TListViewDataList</var> instance used to store the filtered data for the list view control.
          </p>
        </descr>
        <seealso/>
      </element>
      <element name="TListViewFilterEdit.Create.AOwner">
        <short>Owner of the class instance.</short>
      </element>

      <element name="TListViewFilterEdit.Destroy">
        <short>Destructor for the class instance.</short>
        <descr>
          <p>
            <var>Destroy</var> is the overridden destructor for the class instance. It frees resources allocated to <var>SelectionList</var>, <var>Items</var>, and the internal filtered data list. It calls the inherited method prior to exit.
          </p>
        </descr>
        <seealso/>
      </element>

      <element name="TListViewFilterEdit.StoreSelection">
        <short>
          Clears the selection list for the control and stores any list items from FilteredListview with their Selected property set to True.
        </short>
        <descr/>
        <seealso/>
      </element>

      <element name="TListViewFilterEdit.RestoreSelection">
        <short>
          Restores the Selected property for list items in FilteredListview to the values captured in StoreSelection.
        </short>
        <descr/>
        <seealso/>
      </element>

      <element name="TListViewFilterEdit.SelectionList">
        <short>Selected items restored after filtering.</short>
        <descr>
          <p>
            The list of selected items in the list view control. They are restored after filtering is applied.
          </p>
        </descr>
        <seealso/>
      </element>

      <element name="TListViewFilterEdit.Items">
        <short>Maintains the data which is filtered and shown in the ListView.</short>
        <descr/>
        <seealso/>
      </element>

      <element name="TListViewFilterEdit.FilteredListview">
        <short>The associated TListView for the filter edit control.</short>
        <descr/>
        <seealso/>
      </element>

      <element name="TListViewFilterEdit.ByAllFields">
        <short>Indicates if all fields are compared using the filter.</short>
        <descr>
          <p>
            When set to <b>True</b>, all fields in the list view data areused when searching for a value that matches the filter. Otherwise, only the first field is used. The default value for the property is <b>False</b>.
          </p>
          <p>
            <var>ByAllFields</var> is used when <var>SortAndFilter</var> is called to select and order the filtered data for the control.
          </p>
        </descr>
        <seealso/>
      </element>
    </module>
  </package>
</fpdoc-descriptions>
