1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
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()
60 Point
QUIFacade::cursorPosition()
62 return fromQPoint(tree_
->mapFromGlobal(QCursor::pos()));
65 QWidget
* QUIFacade::qwidget()
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_
); }