From 4faa65ee907a78649e118717574c96031dc9e79b Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Tue, 6 Sep 2011 02:56:07 +0200 Subject: NEWT/Window/Insets: Implement proper Inset usage ; Cleanup WindowImpl::reconfigureWindowImpl Implement proper Inset usage (window decoration size) - Insets are either polled (updateInsets()) or event driven (insetsChanged()) - Insets are used for size/pos calculations from Java side - Natural size/pos in NEWT is client-area, ie w/o Insets - Adding setTopLevelPosition()/setTopLevelSize() for top-level values, ie including insets WindowImpl::reconfigureWindowImpl - Use flags to pass down the requested action to the native implementation - Impl. all native actions: visible, decoration, reparent, resize, fullscreen - Always use size/pos in client-area space, impl. shall use Insets to tranform them - Remove double-setting of (reparent/fullscreen), which where introduced due to buggy impl. code - Fix return from fullscreen position: Was overwritten with FS position (0/0) - Fix decoration change: Remove visible toggle - not required, and actually disturbing X11Windows/WindowsWindow: Added/Fixed Insets impl. Tests (manual): - TestSharedContextVBOES2NEWT utilizies proper window layout using Insets - TestParenting03bAWT uses window layout for reparenting --- src/newt/native/Window.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/newt/native/Window.h (limited to 'src/newt/native/Window.h') diff --git a/src/newt/native/Window.h b/src/newt/native/Window.h new file mode 100644 index 000000000..f46d9fbe9 --- /dev/null +++ b/src/newt/native/Window.h @@ -0,0 +1,24 @@ + +#ifndef _WINDOW_H_ +#define _WINDOW_H_ + +#define FLAG_CHANGE_PARENTING ( 1 << 0 ) +#define FLAG_CHANGE_DECORATION ( 1 << 1 ) +#define FLAG_CHANGE_FULLSCREEN ( 1 << 2 ) +#define FLAG_CHANGE_VISIBILITY ( 1 << 3 ) +#define FLAG_HAS_PARENT ( 1 << 4 ) +#define FLAG_IS_UNDECORATED ( 1 << 5 ) +#define FLAG_IS_FULLSCREEN ( 1 << 6 ) +#define FLAG_IS_VISIBLE ( 1 << 7 ) + +#define TST_FLAG_CHANGE_PARENTING(f) ( 0 != ( (f) & FLAG_CHANGE_PARENTING ) ) +#define TST_FLAG_CHANGE_DECORATION(f) ( 0 != ( (f) & FLAG_CHANGE_DECORATION ) ) +#define TST_FLAG_CHANGE_FULLSCREEN(f) ( 0 != ( (f) & FLAG_CHANGE_FULLSCREEN ) ) +#define TST_FLAG_CHANGE_VISIBILITY(f) ( 0 != ( (f) & FLAG_CHANGE_VISIBILITY ) ) + +#define TST_FLAG_HAS_PARENT(f) ( 0 != ( (f) & FLAG_HAS_PARENT ) ) +#define TST_FLAG_IS_UNDECORATED(f) ( 0 != ( (f) & FLAG_IS_UNDECORATED ) ) +#define TST_FLAG_IS_FULLSCREEN(f) ( 0 != ( (f) & FLAG_IS_FULLSCREEN ) ) +#define TST_FLAG_IS_VISIBLE(f) ( 0 != ( (f) & FLAG_IS_VISIBLE ) ) + +#endif -- cgit v1.2.3