#include <X11/Xlib.h>
}
+#include "client.hh"
#include "python.hh"
#include "otk/strut.hh"
#include "otk/rect.hh"
namespace ob {
-class Client;
-
//! Varius geometry settings in the frame decorations
struct FrameGeometry {
int width; // title and handle
int label_height() { return font_height; }
int handle_height; // static, from the style
int icon_x; // x-position of the window icon button
+ int title_x; // x-position of the window title
+ int iconify_x; // x-position of the window iconify button
+ int desktop_x; // x-position of the window all-desktops button
+ int max_x; // x-position of the window maximize button
+ int close_x; // x-position of the window close button
int handle_y;
int button_size; // static, from the style
int grip_width() { return button_size * 2; }
otk::Rect _area;
bool _visible;
+
+ //! The decorations that are being displayed in the frame.
+ Client::DecorationFlags _decorations;
// decoration windows
Window _frame; // sits under everything
otk::Surface *_icon_sur;
otk::Surface *_close_sur;
- std::string _layout; // layout of the titlebar
+ otk::ustring _layout; // layout of the titlebar
bool _max_press;
bool _desk_press;
void adjustState();
void adjustFocus();
void adjustTitle();
+ void adjustIcon();
//! Applies gravity to the client's position to find where the frame should
//! be positioned.