summaryrefslogtreecommitdiffstats
path: root/src/newt/native/Window.h
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-09-06 02:56:07 +0200
committerSven Gothel <[email protected]>2011-09-06 02:56:07 +0200
commit4faa65ee907a78649e118717574c96031dc9e79b (patch)
treeed5e034e796c4174a60de38b64382433a24bf473 /src/newt/native/Window.h
parent7ea8aa31e055ba95a062c87ec4d606f73c2504fa (diff)
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
Diffstat (limited to 'src/newt/native/Window.h')
-rw-r--r--src/newt/native/Window.h24
1 files changed, 24 insertions, 0 deletions
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