LibreOffice Module vcl (master)  1
quickselectionengine.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_VCL_QUICKSELECTIONENGINE_HXX
21 #define INCLUDED_VCL_QUICKSELECTIONENGINE_HXX
22 
23 #include <rtl/ustring.hxx>
24 #include <vcl/dllapi.h>
25 #include <memory>
26 
27 class KeyEvent;
28 
29 
30 namespace vcl
31 {
32 
33 
34  typedef const void* StringEntryIdentifier;
35 
36 
37  //= ISearchableStringList
38 
39  // TODO: consolidate this with vcl::IMnemonicEntryList
41  {
42  public:
47  virtual StringEntryIdentifier CurrentEntry( OUString& _out_entryText ) const = 0;
48 
54  virtual StringEntryIdentifier NextEntry( StringEntryIdentifier _currentEntry, OUString& _out_entryText ) const = 0;
55 
58  virtual void SelectEntry( StringEntryIdentifier _entry ) = 0;
59 
60  protected:
62  };
63 
64 
65  //= QuickSelectionEngine
66 
67  struct QuickSelectionEngine_Data;
69  {
70  public:
73 
74  bool HandleKeyEvent( const KeyEvent& _rKEvt );
75  void Reset();
76  void SetEnabled( bool b );
77 
78  private:
79  ::std::unique_ptr< QuickSelectionEngine_Data > m_pData;
80  bool bEnabled;
81 
82  private:
83  QuickSelectionEngine( const QuickSelectionEngine& ) = delete;
84  QuickSelectionEngine& operator=( const QuickSelectionEngine& ) = delete;
85  };
86 
87 
88 } // namespace vcl
89 
90 
91 #endif // INCLUDED_VCL_QUICKSELECTIONENGINE_HXX
92 
93 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
#define VCL_DLLPUBLIC
Definition: dllapi.h:29
::std::unique_ptr< QuickSelectionEngine_Data > m_pData
const void * StringEntryIdentifier
#define SAL_NO_VTABLE