1fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch// found in the LICENSE file.
4fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch
5fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch#ifndef UI_VIEWS_CONTROLS_PREFIX_DELEGATE_H_
6fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch#define UI_VIEWS_CONTROLS_PREFIX_DELEGATE_H_
7fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch
8fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch#include "ui/views/view.h"
9fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch
10fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdochnamespace views {
11fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch
12fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch// An interface used to expose lists of items for selection by text input.
13fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdochclass VIEWS_EXPORT PrefixDelegate : public View {
14fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch public:
15fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  // Returns the total number of selectable items.
16fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  virtual int GetRowCount() = 0;
17fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch
18fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  // Returns the row of the currently selected item, or -1 if no item is
19fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  // selected.
20fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  virtual int GetSelectedRow() = 0;
21fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch
22fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  // Sets the selection to the specified row.
23fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  virtual void SetSelectedRow(int row) = 0;
24fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch
25fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  // Returns the item at the specified row.
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual base::string16 GetTextForRow(int row) = 0;
27fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch
28fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch protected:
29fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch  virtual ~PrefixDelegate() {}
30fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch};
31fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch
32fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch} // namespace views
33fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch
34fb250657ef40d7500f20882d5c9909c1013367d3Ben Murdoch#endif // UI_VIEWS_CONTROLS_PREFIX_DELEGATE_H_
35