Skip to content

Commit a1b82a3

Browse files
Everything makes far more sense after this refactor!
1 parent 8902116 commit a1b82a3

17 files changed

+997
-386
lines changed

include/nbl/system/ISystem.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ class NBL_API2 ISystem : public core::IReferenceCounted
224224
struct SRequestParams_NOOP
225225
{
226226
using retval_t = void;
227-
inline void operator()(core::StorageTrivializer<retval_t>* retval, ICaller* _caller) {}
227+
inline void operator()(core::StorageTrivializer<retval_t>* retval, ICaller* _caller) {assert(false);}
228228
};
229229
struct SRequestParams_CREATE_FILE
230230
{

include/nbl/ui/ICursorControl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
namespace nbl::ui
1010
{
1111

12-
class ICursorControl : public core::IReferenceCounted
12+
class ICursorControl : public virtual core::IReferenceCounted
1313
{
1414
public:
1515
struct SPosition

include/nbl/ui/IGraphicalApplicationFramework.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#ifndef _NBL_UI_I_GRAPHICAL_APPLICATION_FRAMEWORK_H_INCLUDED_
22
#define _NBL_UI_I_GRAPHICAL_APPLICATION_FRAMEWORK_H_INCLUDED_
33

4+
#include "nbl/ui/IWindow.h"
5+
46
#include <vector>
57
#include <string>
68

include/nbl/ui/IWindowManager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
namespace nbl::ui
77
{
88

9-
class NBL_API2 IWindowManager : public core::IReferenceCounted
9+
class NBL_API2 IWindowManager : public virtual core::IReferenceCounted
1010
{
1111
public:
1212
virtual core::smart_refctd_ptr<IWindow> createWindow(IWindow::SCreationParams&& creationParams) = 0;

include/nbl/ui/declarations.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
// Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O.
22
// This file is part of the "Nabla Engine".
33
// For conditions of distribution and use, see copyright notice in nabla.h
4-
5-
#ifndef __NBL_UI_DECLARATIONS_H_INCLUDED__
6-
#define __NBL_UI_DECLARATIONS_H_INCLUDED__
4+
#ifndef _NBL_UI_DECLARATIONS_H_INCLUDED_
5+
#define _NBL_UI_DECLARATIONS_H_INCLUDED_
76

87
// dependencies
98
#include "nbl/system/declarations.h"
109

1110
// windows
1211
#if defined(_NBL_PLATFORM_WINDOWS_)
13-
# include "nbl/ui/CWindowManagerWin32.h"
12+
# include "nbl/ui/IWindowManagerWin32.h"
1413
#elif defined(_NBL_BUILD_WITH_WAYLAND) && defined(_NBL_TEST_WAYLAND)
1514
# include "nbl/ui/CWindowManagerWayland.h"
1615
#elif defined(_NBL_PLATFORM_LINUX_)

include/nbl/ui/definitions.h

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
11
// Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O.
22
// This file is part of the "Nabla Engine".
33
// For conditions of distribution and use, see copyright notice in nabla.h
4-
5-
#ifndef __NBL_UI_DEFINITIONS_H_INCLUDED__
6-
#define __NBL_UI_DEFINITIONS_H_INCLUDED__
4+
#ifndef _NBL_UI_DEFINITIONS_H_INCLUDED_
5+
#define _NBL_UI_DEFINITIONS_H_INCLUDED_
76

87
// dependencies
98
#include "nbl/system/definitions.h"
109

11-
// windows
12-
#include "nbl/ui/CWindowManagerWin32.h"
13-
//#include "nbl/ui/CWindowManagerX11.h"
14-
#include "nbl/ui/CWindowWin32.h"
15-
// TODO
16-
//#include "nbl/ui/CWindowAndroid.h"
17-
//#include "nbl/ui/CWindowX11.h"
18-
//#include "nbl/ui/CWindowWayland.h"
19-
2010
#endif

src/nbl/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,7 @@ set(NBL_SYSTEM_SOURCES
185185
)
186186
set(NBL_UI_SOURCES
187187
${NBL_ROOT_PATH}/src/nbl/ui/CWindowWin32.cpp
188-
${NBL_ROOT_PATH}/src/nbl/ui/CCursorControlWin32.cpp
189-
${NBL_ROOT_PATH}/src/nbl/ui/CClipboardManagerWin32.cpp
188+
${NBL_ROOT_PATH}/src/nbl/ui/CWindowManagerWin32.cpp
190189
${NBL_ROOT_PATH}/src/nbl/ui/CWindowManagerAndroid.cpp
191190
${NBL_ROOT_PATH}/src/nbl/ui/CGraphicalApplicationAndroid.cpp
192191
)

src/nbl/ui/CClipboardManagerWin32.cpp

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/nbl/ui/CClipboardManagerWin32.h

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#ifndef _NBL_UI_C_CLIPBOARD_MANAGER_WIN32_INCLUDED_
2+
#define _NBL_UI_C_CLIPBOARD_MANAGER_WIN32_INCLUDED_
3+
4+
#include "nbl/ui/IClipboardManager.h"
5+
6+
#ifdef _NBL_PLATFORM_WINDOWS_
7+
#include <Windows.h>
8+
namespace nbl::ui
9+
{
10+
11+
class NBL_API2 CClipboardManagerWin32 final : public IClipboardManager
12+
{
13+
using base_t = IClipboardManager;
14+
public:
15+
inline CClipboardManagerWin32() = default;
16+
17+
inline std::string getClipboardText() override
18+
{
19+
int32_t res = OpenClipboard(0);
20+
assert(res != 0);
21+
22+
std::string data = (const char*)GetClipboardData(CF_TEXT);
23+
24+
CloseClipboard();
25+
26+
return data;
27+
}
28+
virtual bool setClipboardText(const std::string_view& str) override
29+
{
30+
int32_t res = OpenClipboard(0);
31+
if (res == 0)
32+
return false;
33+
34+
EmptyClipboard();
35+
const char* data = str.data();
36+
const size_t data_size = strlen(data) + 1;
37+
HGLOBAL h = GlobalAlloc(GMEM_MOVEABLE, data_size);
38+
strcpy((char*)GlobalLock(h), LPCSTR(data));
39+
GlobalUnlock(h);
40+
SetClipboardData(CF_TEXT, h);
41+
42+
CloseClipboard();
43+
44+
return true;
45+
}
46+
47+
//virtual core::smart_refctd_ptr<asset::ICPUImage> getClipboardImage() override;
48+
//virtual bool setClipboardImage(asset::ICPUImage* image, asset::ICPUImage::SImageCopy data) override;
49+
private:
50+
//HGLOBAL* CPUImageToClipboardImage(asset::ICPUImage* image);
51+
};
52+
53+
}
54+
55+
56+
#endif
57+
#endif

src/nbl/ui/CCursorControlWin32.cpp

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)