/* * 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_SCOPE_BAR_ICON_H_ #define UNITY_SCOPE_BAR_ICON_H_ #include #include #include #include #include #include "unity-shared/IconTexture.h" namespace unity { namespace dash { class ScopeBarIcon : public IconTexture { NUX_DECLARE_OBJECT_TYPE(ScopeBarIcon, IconTexture); public: ScopeBarIcon(std::string id, std::string icon_hint, std::string name); nux::Property id; nux::Property name; nux::Property active; nux::Property scale; private: void Draw(nux::GraphicsEngine& gfx_context, bool force_draw); void OnActiveChanged(bool is_active); void UpdateScale(double scale); // Introspectable std::string GetName() const; void AddProperties(debug::IntrospectionData&); private: typedef std::unique_ptr LayerPtr; const float inactive_opacity_; LayerPtr focus_layer_; }; } } #endif // UNITY_SCOPE_BAR_ICON_H_