librime 1.2
Rime Input Method Engine, the core library
menu.h
Go to the documentation of this file.
1//
2// Copyright RIME Developers
3// Distributed under the BSD License
4//
5// 2011-05-29 GONG Chen <chen.sst@gmail.com>
6//
7#ifndef RIME_MENU_H_
8#define RIME_MENU_H_
9
10#include <rime_api.h>
11#include <rime/candidate.h>
12#include <rime/common.h>
13
14namespace rime {
15
16struct Page {
17 int page_size = 0;
18 int page_no = 0;
19 bool is_last_page = false;
21};
22
23class Filter;
25class Translation;
26
27class Menu {
28 public:
29 RIME_DLL Menu();
30
31 RIME_DLL void AddTranslation(an<Translation> translation);
32 void AddFilter(Filter* filter);
33
34 RIME_DLL size_t Prepare(size_t candidate_count);
35 RIME_DLL Page* CreatePage(size_t page_size, size_t page_no);
36 an<Candidate> GetCandidateAt(size_t index);
37
38 // CAVEAT: returns the number of candidates currently obtained,
39 // rather than the total number of available candidates.
40 size_t candidate_count() const { return candidates_.size(); }
41
42 bool empty() const;
43
44 private:
46 an<Translation> result_;
47 CandidateList candidates_;
48};
49
50} // namespace rime
51
52#endif // RIME_MENU_H_
#define RIME_DLL
Definition rime_api.h:33
Definition algebra.cc:12
std::shared_ptr< T > an
Definition common.h:60
vector< of< Candidate > > CandidateList
Definition candidate.h:52
Definition filter.h:22
Definition menu.h:16
int page_no
Definition menu.h:18
int page_size
Definition menu.h:17
bool is_last_page
Definition menu.h:19
CandidateList candidates
Definition menu.h:20
RIME_DLL Menu()
Definition menu.cc:15
RIME_DLL size_t Prepare(size_t candidate_count)
Definition menu.cc:26
size_t candidate_count() const
Definition menu.h:40
bool empty() const
Definition menu.cc:67
RIME_DLL Page * CreatePage(size_t page_size, size_t page_no)
Definition menu.cc:37
void AddFilter(Filter *filter)
Definition menu.cc:22
an< Candidate > GetCandidateAt(size_t index)
Definition menu.cc:60
RIME_DLL void AddTranslation(an< Translation > translation)
Definition menu.cc:17
Definition translation.h:17
Definition translation.h:85