Skip to content

Commit 5ab2760

Browse files
author
Roberto De Ioris
committed
added editor viewport
1 parent 2f7f26f commit 5ab2760

23 files changed

Lines changed: 538 additions & 46 deletions

‎Source/UnrealEnginePython/Private/Slate/UEPySBorder.cpp‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88

9-
#define GET_s_border TSharedRef<SBorder> s_border = StaticCastSharedRef<SBorder>(self->s_compound_widget.s_widget.s_widget)
9+
#define GET_s_border SBorder *s_border = (SBorder *)self->s_compound_widget.s_widget.s_widget
1010

1111
static PyObject *py_ue_sborder_clear_content(ue_PySBorder *self, PyObject * args) {
1212
GET_s_border;
@@ -32,16 +32,16 @@ static PyObject *py_ue_sborder_set_content(ue_PySBorder *self, PyObject * args)
3232

3333
GET_s_border;
3434

35-
s_border->SetContent(py_swidget->s_widget);
35+
s_border->SetContent(py_swidget->s_widget->AsShared());
3636

3737
Py_INCREF(self);
3838
return (PyObject *)self;
3939
}
4040

4141
static PyObject *ue_PySBorder_str(ue_PySBorder *self)
4242
{
43-
return PyUnicode_FromFormat("<unreal_engine.SWindow '%p'>",
44-
&self->s_compound_widget.s_widget.s_widget.Get());
43+
return PyUnicode_FromFormat("<unreal_engine.SBorder '%p'>",
44+
self->s_compound_widget.s_widget.s_widget);
4545
}
4646

4747
static PyMethodDef ue_PySBorder_methods[] = {
@@ -81,8 +81,8 @@ PyTypeObject ue_PySBorderType = {
8181
ue_PySBorder_methods, /* tp_methods */
8282
};
8383

84-
static int ue_py_sborder_init(ue_PySWindow *self, PyObject *args, PyObject *kwargs) {
85-
self->s_compound_widget.s_widget.s_widget = TSharedRef<SBorder>(SNew(SBorder));
84+
static int ue_py_sborder_init(ue_PySBorder *self, PyObject *args, PyObject *kwargs) {
85+
ue_py_snew(SBorder, s_compound_widget.s_widget);
8686
return 0;
8787
}
8888

‎Source/UnrealEnginePython/Private/Slate/UEPySBoxPanel.cpp‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "UEPySBoxPanel.h"
66

77

8-
#define GET_s_box_panel TSharedRef<SBoxPanel> s_box_panel = StaticCastSharedRef<SBoxPanel>(self->s_panel.s_widget.s_widget)
8+
#define GET_s_box_panel SBoxPanel *s_box_panel = (SBoxPanel*)self->s_panel.s_widget.s_widget;
99

1010
static PyObject *py_ue_sbox_panel_clear_children(ue_PySGridPanel *self, PyObject * args) {
1111
GET_s_box_panel;
@@ -19,7 +19,7 @@ static PyObject *py_ue_sbox_panel_clear_children(ue_PySGridPanel *self, PyObject
1919
static PyObject *ue_PySBoxPanel_str(ue_PySBoxPanel *self)
2020
{
2121
return PyUnicode_FromFormat("<unreal_engine.SBoxPanel '%p'>",
22-
&self->s_panel.s_widget.s_widget.Get());
22+
self->s_panel.s_widget.s_widget);
2323
}
2424

2525
static PyMethodDef ue_PySBoxPanel_methods[] = {

‎Source/UnrealEnginePython/Private/Slate/UEPySButton.cpp‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88

9-
#define GET_s_button TSharedRef<SButton> s_button = StaticCastSharedRef<SButton>(self->s_border.s_compound_widget.s_widget.s_widget)
9+
#define GET_s_button SButton *s_button =(SButton *)self->s_border.s_compound_widget.s_widget.s_widget
1010

1111
static PyObject *py_ue_sbutton_is_pressed(ue_PySButton *self, PyObject * args) {
1212
GET_s_button;
@@ -24,7 +24,7 @@ static PyObject *py_ue_sbutton_is_pressed(ue_PySButton *self, PyObject * args) {
2424
static PyObject *ue_PySButton_str(ue_PySButton *self)
2525
{
2626
return PyUnicode_FromFormat("<unreal_engine.SButton '%p'>",
27-
&self->s_border.s_compound_widget.s_widget.s_widget.Get());
27+
self->s_border.s_compound_widget.s_widget.s_widget);
2828
}
2929

3030
static PyObject *py_ue_sbutton_bind_on_clicked(ue_PySButton *self, PyObject * args) {
@@ -89,7 +89,7 @@ PyTypeObject ue_PySButtonType = {
8989
};
9090

9191
static int ue_py_sbutton_init(ue_PySButton *self, PyObject *args, PyObject *kwargs) {
92-
self->s_border.s_compound_widget.s_widget.s_widget = TSharedRef<SButton>(SNew(SButton));
92+
ue_py_snew(SButton, s_border.s_compound_widget.s_widget);
9393
return 0;
9494
}
9595

‎Source/UnrealEnginePython/Private/Slate/UEPySCompoundWidget.cpp‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44

55
#include "UEPySCompoundWidget.h"
66

7-
#define GET_s_compound_widget TSharedRef<SCompoundWidget> s_compound_widget = StaticCastSharedRef<SCompoundWidget>(self->s_widget.s_widget)
7+
#define GET_s_compound_widget SCompoundWidget *s_compound_widget = (SCompoundWidget*)self->s_widget.s_widget
88

99
static PyObject *ue_PySCompoundWidget_str(ue_PySCompoundWidget *self)
1010
{
1111
return PyUnicode_FromFormat("<unreal_engine.SCompoundWidget '%p'>",
12-
&self->s_widget.s_widget.Get());
12+
self->s_widget.s_widget);
1313
}
1414

1515
static PyObject *py_ue_scompound_widget_get_color_and_opacity(ue_PySCompoundWidget *self, PyObject * args) {

‎Source/UnrealEnginePython/Private/Slate/UEPySEditableTextBox.cpp‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88

9-
#define GET_s_editable_text_box TSharedRef<SEditableTextBox> s_editable_text_box = StaticCastSharedRef<SEditableTextBox>(self->s_border.s_compound_widget.s_widget.s_widget)
9+
#define GET_s_editable_text_box SEditableTextBox *s_editable_text_box = (SEditableTextBox *)self->s_border.s_compound_widget.s_widget.s_widget
1010

1111
static PyObject *py_ue_seditable_text_box_select_all_text(ue_PySEditableTextBox *self, PyObject * args) {
1212
GET_s_editable_text_box;
@@ -59,7 +59,7 @@ static PyObject *py_ue_seditable_text_box_set_text(ue_PySEditableTextBox *self,
5959
static PyObject *ue_PySEditableTextBox_str(ue_PySEditableTextBox *self)
6060
{
6161
return PyUnicode_FromFormat("<unreal_engine.SEditableTextBox '%p'>",
62-
&self->s_border.s_compound_widget.s_widget.s_widget.Get());
62+
self->s_border.s_compound_widget.s_widget.s_widget);
6363
}
6464

6565
static PyMethodDef ue_PySEditableTextBox_methods[] = {
@@ -103,7 +103,7 @@ PyTypeObject ue_PySEditableTextBoxType = {
103103
};
104104

105105
static int ue_py_seditable_text_box_init(ue_PySEditableTextBox *self, PyObject *args, PyObject *kwargs) {
106-
self->s_border.s_compound_widget.s_widget.s_widget = TSharedRef<SEditableTextBox>(SNew(SEditableTextBox));
106+
ue_py_snew(SEditableTextBox, s_border.s_compound_widget.s_widget);
107107
return 0;
108108
}
109109

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
#if WITH_EDITOR
2+
3+
#include "UnrealEnginePythonPrivatePCH.h"
4+
5+
#include "UEPySViewport.h"
6+
7+
8+
9+
#define GET_s_editor_viewport SEditorViewport *s_editor_viewport = (SEditorViewport *)self->s_compound_widget.s_widget.s_widget
10+
11+
static PyObject *py_ue_seditor_viewport_enable_stereo_rendering(ue_PySEditorViewport *self, PyObject * args) {
12+
PyObject *py_bool;
13+
if (!PyArg_ParseTuple(args, "O:enable_stereo_rendering", &py_bool)) {
14+
return NULL;
15+
}
16+
17+
GET_s_editor_viewport;
18+
19+
s_editor_viewport->EnableStereoRendering(PyObject_IsTrue(py_bool) ? true : false);
20+
21+
Py_INCREF(self);
22+
return (PyObject *)self;
23+
}
24+
25+
static PyObject *ue_PySEditorViewport_str(ue_PySEditorViewport *self)
26+
{
27+
return PyUnicode_FromFormat("<unreal_engine.SEditorViewport '%p'>",
28+
self->s_compound_widget.s_widget.s_widget);
29+
}
30+
31+
static PyMethodDef ue_PySEditorViewport_methods[] = {
32+
{ "enable_stereo_rendering", (PyCFunction)py_ue_seditor_viewport_enable_stereo_rendering, METH_VARARGS, "" },
33+
{ NULL } /* Sentinel */
34+
};
35+
36+
PyTypeObject ue_PySEditorViewportType = {
37+
PyVarObject_HEAD_INIT(NULL, 0)
38+
"unreal_engine.SEditorViewport", /* tp_name */
39+
sizeof(ue_PySEditorViewport), /* tp_basicsize */
40+
0, /* tp_itemsize */
41+
0, /* tp_dealloc */
42+
0, /* tp_print */
43+
0, /* tp_getattr */
44+
0, /* tp_setattr */
45+
0, /* tp_reserved */
46+
0, /* tp_repr */
47+
0, /* tp_as_number */
48+
0, /* tp_as_sequence */
49+
0, /* tp_as_mapping */
50+
0, /* tp_hash */
51+
0, /* tp_call */
52+
(reprfunc)ue_PySEditorViewport_str, /* tp_str */
53+
0, /* tp_getattro */
54+
0, /* tp_setattro */
55+
0, /* tp_as_buffer */
56+
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
57+
"Unreal Engine SEditorViewport", /* tp_doc */
58+
0, /* tp_traverse */
59+
0, /* tp_clear */
60+
0, /* tp_richcompare */
61+
0, /* tp_weaklistoffset */
62+
0, /* tp_iter */
63+
0, /* tp_iternext */
64+
ue_PySEditorViewport_methods, /* tp_methods */
65+
};
66+
67+
void ue_python_init_seditor_viewport(PyObject *ue_module) {
68+
ue_PySEditorViewportType.tp_new = PyType_GenericNew;
69+
70+
ue_PySEditorViewportType.tp_base = &ue_PySCompoundWidgetType;
71+
72+
if (PyType_Ready(&ue_PySEditorViewportType) < 0)
73+
return;
74+
75+
Py_INCREF(&ue_PySEditorViewportType);
76+
PyModule_AddObject(ue_module, "SEditorViewport", (PyObject *)&ue_PySEditorViewportType);
77+
}
78+
79+
80+
#endif
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#pragma once
2+
3+
#include "UnrealEnginePython.h"
4+
5+
#if WITH_EDITOR
6+
7+
#include "UEPySCompoundWidget.h"
8+
9+
#include "Editor/UnrealEd/Public/SEditorViewport.h"
10+
11+
extern PyTypeObject ue_PySEditorViewportType;
12+
13+
typedef struct {
14+
ue_PySCompoundWidget s_compound_widget;
15+
/* Type-specific fields go here. */
16+
} ue_PySEditorViewport;
17+
18+
void ue_python_init_seditor_viewport(PyObject *);
19+
20+
#endif

‎Source/UnrealEnginePython/Private/Slate/UEPySGridPanel.cpp‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "UEPySGridPanel.h"
66

77

8-
#define GET_s_grid_panel TSharedRef<SGridPanel> s_grid_panel = StaticCastSharedRef<SGridPanel>(self->s_panel.s_widget.s_widget)
8+
#define GET_s_grid_panel SGridPanel *s_grid_panel = (SGridPanel *)self->s_panel.s_widget.s_widget
99

1010
static PyObject *py_ue_sgrid_panel_clear_children(ue_PySGridPanel *self, PyObject * args) {
1111
GET_s_grid_panel;
@@ -35,7 +35,7 @@ static PyObject *py_ue_sgrid_panel_add_slot(ue_PySGridPanel *self, PyObject * ar
3535
GET_s_grid_panel;
3636

3737
SGridPanel::FSlot &fslot = s_grid_panel->AddSlot(col, row, SGridPanel::Layer(layer));
38-
fslot.AttachWidget(py_swidget->s_widget);
38+
fslot.AttachWidget(py_swidget->s_widget->AsShared());
3939

4040
Py_INCREF(self);
4141
return (PyObject *)self;
@@ -44,7 +44,7 @@ static PyObject *py_ue_sgrid_panel_add_slot(ue_PySGridPanel *self, PyObject * ar
4444
static PyObject *ue_PySGridPanel_str(ue_PySGridPanel *self)
4545
{
4646
return PyUnicode_FromFormat("<unreal_engine.SGridPanel '%p'>",
47-
&self->s_panel.s_widget.s_widget.Get());
47+
self->s_panel.s_widget.s_widget);
4848
}
4949

5050
static PyMethodDef ue_PySGridPanel_methods[] = {
@@ -85,7 +85,7 @@ PyTypeObject ue_PySGridPanelType = {
8585
};
8686

8787
static int ue_py_sgrid_panel_init(ue_PySGridPanel *self, PyObject *args, PyObject *kwargs) {
88-
self->s_panel.s_widget.s_widget = TSharedRef<SGridPanel>(SNew(SGridPanel));
88+
ue_py_snew(SGridPanel, s_panel.s_widget);
8989
return 0;
9090
}
9191

‎Source/UnrealEnginePython/Private/Slate/UEPySHorizontalBox.cpp‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
#include "UEPySHorizontalBox.h"
66

77

8-
#define GET_s_horizontal_box TSharedRef<SHorizontalBox> s_horizontal_box = StaticCastSharedRef<SHorizontalBox>(self->s_box_panel.s_panel.s_widget.s_widget)
8+
#define GET_s_horizontal_box SHorizontalBox *s_horizontal_box = (SHorizontalBox *)self->s_box_panel.s_panel.s_widget.s_widget
99

1010

1111
static PyObject *ue_PySHorizontalBox_str(ue_PySHorizontalBox *self)
1212
{
1313
return PyUnicode_FromFormat("<unreal_engine.SHorizontalBox '%p'>",
14-
&self->s_box_panel.s_panel.s_widget.s_widget.Get());
14+
self->s_box_panel.s_panel.s_widget.s_widget);
1515
}
1616

1717
static PyObject *py_ue_shorizontal_box_add_slot(ue_PySHorizontalBox *self, PyObject * args, PyObject *kwargs) {
@@ -42,7 +42,7 @@ static PyObject *py_ue_shorizontal_box_add_slot(ue_PySHorizontalBox *self, PyObj
4242
GET_s_horizontal_box;
4343

4444
SHorizontalBox::FSlot &fslot = s_horizontal_box->AddSlot();
45-
fslot.AttachWidget(py_swidget->s_widget);
45+
fslot.AttachWidget(py_swidget->s_widget->AsShared());
4646
fslot.HAlign((EHorizontalAlignment)h_align);
4747
if (max_width != 0)
4848
fslot.MaxWidth(max_width);
@@ -97,7 +97,7 @@ PyTypeObject ue_PySHorizontalBoxType = {
9797
};
9898

9999
static int ue_py_shorizontal_box_init(ue_PySHorizontalBox *self, PyObject *args, PyObject *kwargs) {
100-
self->s_box_panel.s_panel.s_widget.s_widget = TSharedRef<SHorizontalBox>(SNew(SHorizontalBox));
100+
ue_py_snew(SHorizontalBox, s_box_panel.s_panel.s_widget);
101101
return 0;
102102
}
103103

‎Source/UnrealEnginePython/Private/Slate/UEPySLeafWidget.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
static PyObject *ue_PySLeafWidget_str(ue_PySLeafWidget *self)
99
{
1010
return PyUnicode_FromFormat("<unreal_engine.SLeafWidget '%p'>",
11-
&self->s_widget.s_widget.Get());
11+
self->s_widget.s_widget);
1212
}
1313

1414
static PyMethodDef ue_PySLeafWidget_methods[] = {

0 commit comments

Comments
 (0)