Unity Scopes API
Scope.h
1 /*
2  * Copyright (C) 2013 Canonical Ltd
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License version 3 as
6  * published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU Lesser General Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * Authored by: Michi Henning <michi.henning@canonical.com>
17  */
18 
19 #pragma once
20 
21 #include <unity/scopes/ActivationListenerBase.h>
22 #include <unity/scopes/ChildScope.h>
23 #include <unity/scopes/Object.h>
24 #include <unity/scopes/PreviewListenerBase.h>
25 #include <unity/scopes/QueryCtrlProxyFwd.h>
26 #include <unity/scopes/ScopeProxyFwd.h>
27 #include <unity/scopes/SearchListenerBase.h>
28 #include <unity/scopes/Variant.h>
29 
30 namespace unity
31 {
32 
33 namespace scopes
34 {
35 
36 class Result;
37 class FilterState;
38 class ActionMetadata;
39 class SearchMetadata;
40 
45 class Scope : public virtual Object
46 {
47 public:
62  virtual QueryCtrlProxy search(std::string const& query_string,
63  SearchMetadata const& metadata,
64  SearchListenerBase::SPtr const& reply) = 0;
65 
77  virtual QueryCtrlProxy search(std::string const& query_string,
78  FilterState const& filter_state,
79  SearchMetadata const& metadata,
80  SearchListenerBase::SPtr const& reply) = 0;
81 
94  virtual QueryCtrlProxy search(std::string const& query_string,
95  std::string const& department_id,
96  FilterState const& filter_state,
97  SearchMetadata const& metadata,
98  SearchListenerBase::SPtr const& reply) = 0;
99 
107  virtual QueryCtrlProxy activate(Result const& result,
108  ActionMetadata const& metadata,
109  ActivationListenerBase::SPtr const& reply) = 0;
110 
120  virtual QueryCtrlProxy perform_action(Result const& result,
121  ActionMetadata const& metadata,
122  std::string const& widget_id,
123  std::string const& action_id,
124  ActivationListenerBase::SPtr const& reply) = 0;
125 
133  virtual QueryCtrlProxy preview(Result const& result,
134  ActionMetadata const& metadata,
135  PreviewListenerBase::SPtr const& reply) = 0;
136 
142  virtual ~Scope();
143 
148  virtual ChildScopeList child_scopes() = 0;
149 
157  virtual bool set_child_scopes(ChildScopeList const& child_scopes) = 0;
158 
172  virtual QueryCtrlProxy search(std::string const& query_string,
173  std::string const& department_id,
174  FilterState const& filter_state,
175  Variant const& user_data,
176  SearchMetadata const& metadata,
177  SearchListenerBase::SPtr const& reply) = 0;
178 
187  virtual QueryCtrlProxy activate_result_action(Result const& result,
188  ActionMetadata const& metadata,
189  std::string const& action_id,
190  ActivationListenerBase::SPtr const& reply) = 0;
191 
192 protected:
194  Scope();
196 };
197 
198 } // namespace scopes
199 
200 } // namespace unity
virtual QueryCtrlProxy perform_action(Result const &result, ActionMetadata const &metadata, std::string const &widget_id, std::string const &action_id, ActivationListenerBase::SPtr const &reply)=0
Initiates activation of a preview action.
virtual QueryCtrlProxy preview(Result const &result, ActionMetadata const &metadata, PreviewListenerBase::SPtr const &reply)=0
Initiates preview request.
Simple variant class that can hold an integer, boolean, string, double, dictionary, array or null value.
Definition: Variant.h:57
Metadata passed with search requests.
Definition: SearchMetadata.h:45
Metadata passed to scopes for preview and activation.
Definition: ActionMetadata.h:41
The attributes of a result returned by a Scope.
Definition: Result.h:50
virtual ChildScopeList child_scopes()=0
Returns a list of child scopes aggregated by this scope.
Top-level namespace for all things Unity-related.
Definition: Version.h:49
virtual ~Scope()
Destroys a Scope.
virtual bool set_child_scopes(ChildScopeList const &child_scopes)=0
Sets the list of child scopes aggregated by this scope.
virtual QueryCtrlProxy activate_result_action(Result const &result, ActionMetadata const &metadata, std::string const &action_id, ActivationListenerBase::SPtr const &reply)=0
Initiates activation of a result (in-card) action.
Allows queries, preview requests, and activation requests to be sent to a scope.
Definition: Scope.h:45
Captures state of multiple filters.
Definition: FilterState.h:46
virtual QueryCtrlProxy activate(Result const &result, ActionMetadata const &metadata, ActivationListenerBase::SPtr const &reply)=0
Initiates activation of a search result.
std::shared_ptr< QueryCtrl > QueryCtrlProxy
Convenience type definition.
Definition: QueryCtrlProxyFwd.h:33
The root base class for all proxies.
Definition: Object.h:34
virtual QueryCtrlProxy search(std::string const &query_string, SearchMetadata const &metadata, SearchListenerBase::SPtr const &reply)=0
Initiates a search query.
std::vector< ChildScope > ChildScopeList
A list of child scopes.
Definition: ChildScope.h:33