!XT (BREAK-16) (Sandbox) Remove double-newlines at the end of files.
[CRYENGINE.git] / Code / Sandbox / Plugins / EditorCommon / Serialization / QPropertyTree / QUIFacade.cpp
blob27fbae87b6ae5626f3306eb5ce1ffdf41f4745f1
1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
3 #include "StdAfx.h"
4 #include "QUIFacade.h"
5 #include <QFont>
6 #include <QFontMetrics>
7 #include <QStyleOption>
8 #include <QDesktopWidget>
9 #include <QApplication>
10 #include "QPropertyTree.h"
11 #include "QDrawContext.h"
13 #include "InplaceWidgetComboBox.h"
14 #include "InplaceWidgetNumber.h"
15 #include "InplaceWidgetString.h"
17 QCursor translateCursor(property_tree::Cursor cursor);
19 namespace property_tree {
21 // ---------------------------------------------------------------------------
23 int QUIFacade::textWidth(const char* text, Font font)
25 const QFont* qfont = font == FONT_BOLD ? &tree_->boldFont() : &tree_->font();
27 QFontMetrics fm(*qfont);
28 return fm.width(text);
31 int QUIFacade::textHeight(int width, const char* text, Font font)
33 const QFont* qfont = font == FONT_BOLD ? &tree_->boldFont() : &tree_->font();
34 QFontMetrics fm(*qfont);
35 return fm.boundingRect(0, 0, width, 0, Qt::TextWordWrap|Qt::AlignTop, QString::fromUtf8(text)).height();
38 Point QUIFacade::screenSize()
40 QSize s = QApplication::desktop()->screenGeometry(tree_).size();
41 return Point(s.width(), s.height());
44 IMenu* QUIFacade::createMenu()
46 return new QtMenu(new QPropertyTreeMenu(nullptr), tree_, "");
49 void QUIFacade::setCursor(Cursor cursor)
52 tree_->setCursor(translateCursor(cursor));
55 void QUIFacade::unsetCursor()
57 tree_->unsetCursor();
60 Point QUIFacade::cursorPosition()
62 return fromQPoint(tree_->mapFromGlobal(QCursor::pos()));
65 QWidget* QUIFacade::qwidget()
67 return tree_;
70 HWND QUIFacade::hwnd()
72 return (HWND)tree_->winId();
75 InplaceWidget* QUIFacade::createComboBox(ComboBoxClientRow* client) { return new InplaceWidgetComboBox(client, tree_); }
76 InplaceWidget* QUIFacade::createNumberWidget(PropertyRowNumberField* row) { return new InplaceWidgetNumber(row, tree_); }
77 InplaceWidget* QUIFacade::createStringWidget(PropertyRowString* row) { return new InplaceWidgetString(row, tree_); }