message: Add template method to select ListBox item by predicate
diff: @@ -55,6 +55,16 @@ public:
  void setSelectedByName(const std::string& item);
  void clearSelected() { mSelectedIndex = constants::NO_SELECTION; }
  + template <typename UnaryPredicate>
  + void selectIf(UnaryPredicate predicate) {
  + for (std::size_t i = 0; i < mItems.size(); ++i) {
  + if (predicate(mItems[i])) {
  + mSelectedIndex = i;
  + return;
  + }
  + }
  + }
  +
  std::size_t currentHighlight() const { return mHighlightIndex; }
  unsigned int lineHeight() const { return mLineHeight; }
  