/* * 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: Neil Jagdish Patel */ #ifndef UNITY_LENS_BAR_ICON_H_ #define UNITY_LENS_BAR_ICON_H_ #include #include #include #include #include #include "unity-shared/IconTexture.h" namespace unity { namespace dash { class LensBarIcon : public IconTexture { NUX_DECLARE_OBJECT_TYPE(LensBarIcon, IconTexture); public: LensBarIcon(std::string id, std::string icon_hint); ~LensBarIcon(); nux::Property id; nux::Property active; private: void Draw(nux::GraphicsEngine& gfx_context, bool force_draw); void OnActiveChanged(bool is_active); // Introspectable std::string GetName() const; void AddProperties(GVariantBuilder* builder); private: typedef std::unique_ptr LayerPtr; const float inactive_opacity_; LayerPtr focus_layer_; }; } } #endif