// -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2013 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: Marco Trevisan */ #ifndef UNITY_DECORATION_STYLE #define UNITY_DECORATION_STYLE #include #include #include struct _GtkStyleContext; namespace unity { namespace decoration { enum class Side : unsigned { TOP = 0, LEFT, RIGHT, BOTTOM, }; enum class Alignment { LEFT, CENTER, RIGHT, FLOATING }; enum class WidgetState : unsigned { NORMAL, PRELIGHT, PRESSED, DISABLED, BACKDROP, BACKDROP_PRELIGHT, BACKDROP_PRESSED, Size }; enum class WindowButtonType : unsigned { CLOSE, MINIMIZE, UNMAXIMIZE, MAXIMIZE, Size }; enum class WMEvent { DOUBLE_CLICK = 1, MIDDLE_CLICK = 2, RIGHT_CLICK = 3 }; enum class WMAction { TOGGLE_SHADE, TOGGLE_MAXIMIZE, TOGGLE_MAXIMIZE_HORIZONTALLY, TOGGLE_MAXIMIZE_VERTICALLY, MINIMIZE, SHADE, MENU, LOWER, NONE }; struct Border { Border(int top, int left, int right, int bottom) : top(top) , left(left) , right(right) , bottom(bottom) {} Border() : Border(0, 0, 0, 0) {} int top; int left; int right; int bottom; }; class Style { public: typedef std::shared_ptr