// -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2011 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Gordon Allott */ #ifndef UNITY_HUD_H #define UNITY_HUD_H #include #include #include #include #include #include "Variant.h" namespace unity { namespace hud { class Query { public: typedef std::shared_ptr Ptr; Query(std::string const& formatted_text_, std::string const& icon_name_, std::string const& item_icon_, std::string const& completion_text_, std::string const& shortcut_, GVariant* key_) : formatted_text(formatted_text_) , icon_name(icon_name_) , item_icon(item_icon_) , completion_text(completion_text_) , shortcut(shortcut_) , key(key_) {} Query(const Query &rhs); Query& operator=(Query); std::string formatted_text; // Pango formatted text std::string icon_name; // icon name using standard lookups std::string item_icon; // Future API std::string completion_text; // Non formatted text f or completion std::string shortcut; // Shortcut key glib::Variant key; }; class HudImpl; class Hud { public: typedef std::shared_ptr Ptr; typedef std::deque Queries; /* * Constructor for the hud * \param dbus_name string that specifies the name of the hud service * \param dbus_path string that specifies the path of the hud service */ Hud(std::string const& dbus_name, std::string const& dbus_path); ~Hud(); Hud(const Hud &rhs); Hud& operator=(Hud); nux::Property target; nux::Property connected; /* * Queries the service for new suggestions, will fire off the * suggestion_search_finished signal when the suggestions are returned */ void RequestQuery(std::string const& search_string); /* * Executes a Query */ void ExecuteQuery(Query::Ptr query, unsigned int timestamp); /* * Executes a query that returns from a search, * Implicitly calls CloseQuery(); */ void ExecuteQueryBySearch(std::string execute_string, unsigned int timestamp); /* * Closes the query connection, call when the hud closes */ void CloseQuery(); /* * Returns a deque of Query types when the service provides them */ sigc::signal queries_updated; private: HudImpl *pimpl_; }; } } #endif /* UNITY_HUD_H */