-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
267 additions
and
83 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,98 @@ | ||
include "../../include/config.pxi" | ||
|
||
IF USE_WAYLAND: | ||
cdef extern from "wayland-client-protocol.h": | ||
cdef struct wl_display: | ||
pass | ||
cdef extern from *: | ||
""" | ||
#if __USE_WAYLAND | ||
#include <wayland-client-protocol.h> | ||
#else | ||
typedef struct { | ||
} wl_display; | ||
typedef struct { | ||
} wl_surface; | ||
typedef struct { | ||
} wl_shell_surface; | ||
#endif | ||
cdef struct wl_surface: | ||
pass | ||
#if __USE_X11 | ||
#include <X11/Xlib.h> | ||
#else | ||
typedef struct { | ||
} _XDisplay; | ||
typedef _XDisplay Display; | ||
typedef int XID; | ||
typedef XID Window; | ||
#endif | ||
cdef struct wl_shell_surface: | ||
pass | ||
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) | ||
#include <windows.h> | ||
#else | ||
typedef void *HANDLE; | ||
typedef HANDLE HWND; | ||
typedef HANDLE HDC; | ||
typedef HANDLE HINSTANCE; | ||
#endif | ||
IF USE_X11: | ||
cdef extern from "X11/Xlib.h": | ||
cdef struct _XDisplay: | ||
pass | ||
#if defined(__APPLE__) | ||
#include <TargetConditionals.h> | ||
ctypedef _XDisplay Display | ||
#if TARGET_OS_IPHONE && TARGET_IPHONE_SIMULATOR | ||
// iOS, tvOS, watchOS and iOS Simulator (UIKit) | ||
#include <UIKit/UIWindow.h> | ||
#else | ||
typedef void *UIWindow; | ||
#endif | ||
ctypedef int XID | ||
ctypedef XID Window | ||
#if TARGET_OS_MAC | ||
#include <AppKit/NSWindow.h> | ||
#else | ||
typedef void *NSWindow; | ||
#endif | ||
IF UNAME_SYSNAME == 'Windows': | ||
cdef extern from "windows.h": | ||
ctypedef void *HANDLE | ||
#else | ||
typedef void *UIWindow; | ||
typedef void *NSWindow; | ||
#endif | ||
ctypedef HANDLE HWND | ||
ctypedef HANDLE HDC | ||
ctypedef HANDLE HINSTANCE | ||
#if defined(__ANDROID__) | ||
// Android | ||
#endif | ||
UIWindow *_BridgedUIWindow(void* window){ | ||
return (__bridge UIWindow *)window; | ||
} | ||
NSWindow *_BridgedNSWindow(void* window){ | ||
return (__bridge NSWindow *)window; | ||
} | ||
""" | ||
|
||
# Wayland | ||
ctypedef struct wl_display: | ||
pass | ||
ctypedef struct wl_surface: | ||
pass | ||
ctypedef struct wl_shell_surface: | ||
pass | ||
|
||
# X11 | ||
ctypedef struct _XDisplay: | ||
pass | ||
ctypedef _XDisplay Display | ||
ctypedef int XID | ||
ctypedef XID Window | ||
|
||
# Windows | ||
ctypedef void *HANDLE | ||
ctypedef HANDLE HWND | ||
ctypedef HANDLE HDC | ||
ctypedef HANDLE HINSTANCE | ||
|
||
# Apple iOS, tvOS, watchOS and iOS Simulator (UIKit) | ||
ctypedef void *UIWindow | ||
|
||
# Apple macOS | ||
ctypedef void *NSWindow | ||
cdef NSWindow* _BridgedNSWindow(void* window) | ||
cdef UIWindow* _BridgedUIWindow(void* window) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,57 @@ | ||
include "../../include/config.pxi" | ||
|
||
IF USE_WAYLAND: | ||
cdef class WindowInfoWayland: | ||
@property | ||
def display(self): | ||
return <uintptr_t>self.display | ||
|
||
@property | ||
def surface(self): | ||
return <uintptr_t>self.surface | ||
|
||
@property | ||
def shell_surface(self): | ||
return <uintptr_t>self.shell_surface | ||
|
||
|
||
IF USE_X11: | ||
cdef class WindowInfoX11: | ||
@property | ||
def display(self): | ||
return <uintptr_t>self.display | ||
|
||
@property | ||
def window(self): | ||
return <uintptr_t>self.window | ||
|
||
IF UNAME_SYSNAME == 'Windows': | ||
cdef class WindowInfoWindows: | ||
@property | ||
def window(self): | ||
return <uintptr_t>self.window | ||
|
||
@property | ||
def hdc(self): | ||
return <uintptr_t>self.hdc | ||
cdef class WindowInfoWayland: | ||
@property | ||
def display(self): | ||
return <uintptr_t>self.display | ||
|
||
@property | ||
def surface(self): | ||
return <uintptr_t>self.surface | ||
|
||
@property | ||
def shell_surface(self): | ||
return <uintptr_t>self.shell_surface | ||
|
||
|
||
cdef class WindowInfoX11: | ||
@property | ||
def display(self): | ||
return <uintptr_t>self.display | ||
|
||
@property | ||
def window(self): | ||
return <uintptr_t>self.window | ||
|
||
|
||
cdef class WindowInfoWindows: | ||
@property | ||
def window(self): | ||
return <uintptr_t>self.window | ||
|
||
@property | ||
def hdc(self): | ||
return <uintptr_t>self.hdc | ||
|
||
cdef void set_hwnd(self, void* hwnd): | ||
self.window = hwnd | ||
|
||
cdef void set_hdc(self, void* hdc): | ||
self.hdc = hdc | ||
|
||
|
||
cdef class WindowInfomacOS: | ||
@property | ||
def window(self): | ||
return <uintptr_t>self.window | ||
|
||
cdef void set_window(self, void* window): | ||
self.window = _BridgedNSWindow(window) | ||
|
||
cdef class WindowInfoiOS: | ||
@property | ||
def window(self): | ||
return <uintptr_t>self.window | ||
|
||
cdef void set_window(self, void* window): | ||
self.window = _BridgedUIWindow(window) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.