From: Richard K. <ric...@us...> - 2005-07-19 03:57:48
|
Update of /cvsroot/actionstep/actionstep/src/org/actionstep In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29247 Modified Files: NSWindow.as Log Message: added min/max size constraints, constrain frame and publish notifications Index: NSWindow.as =================================================================== RCS file: /cvsroot/actionstep/actionstep/src/org/actionstep/NSWindow.as,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** NSWindow.as 18 Jul 2005 22:28:36 -0000 1.26 --- NSWindow.as 19 Jul 2005 03:57:35 -0000 1.27 *************** *** 82,85 **** --- 82,86 ---- public static var NSWindowDidResignKeyNotification = ASUtils.intern("NSWindowDidResignKeyNotification"); public static var NSWindowDidResignMainNotification = ASUtils.intern("NSWindowDidResignMainNotification"); + public static var NSWindowWillMoveNotification = ASUtils.intern("NSWindowWillMoveNotification"); // Private variables *************** *** 112,115 **** --- 113,119 ---- private var m_selectionDirection:NSSelectionDirection; + private var m_minFrameSize:NSSize; + private var m_maxFrameSize:NSSize; + public function NSWindow() { m_app = NSApplication.sharedApplication(); *************** *** 125,128 **** --- 129,134 ---- m_windowNumber = g_instances.length; m_selectionDirection = NSSelectionDirection.NSDirectSelection; + m_minFrameSize = new NSSize(1,1); + m_maxFrameSize = new NSSize(10000, 10000); } *************** *** 232,251 **** public function setFrame(frame:NSRect) { ! m_frameRect = frame.clone(); var cRect = contentRectForFrameRect(); ! if (m_contentRect.size.width != cRect.size.width || m_contentRect.size.height != cRect.size.height) { m_contentView.setFrameSize(cRect.size); m_contentView.setNeedsDisplay(true); m_rootView.setFrameSize(frame.size); m_rootView.setNeedsDisplay(true); } ! m_contentRect = cRect; } public function setFrameOrigin(point:NSPoint) { ! m_frameRect.origin.x = point.x; ! m_frameRect.origin.y = point.y; ! m_contentRect = contentRectForFrameRect(); ! m_rootView.setFrameOrigin(m_frameRect.origin); } --- 238,296 ---- public function setFrame(frame:NSRect) { ! frame = frame.clone(); ! if (frame.size.width < m_minFrameSize.width) { ! frame.size.width = m_minFrameSize.width; ! } ! if (frame.size.height < m_minFrameSize.height) { ! frame.size.height = m_minFrameSize.height; ! } ! if (frame.size.width > m_maxFrameSize.width) { ! frame.size.width = m_maxFrameSize.width; ! } ! if (frame.size.height > m_maxFrameSize.height) { ! frame.size.height = m_maxFrameSize.height; ! } ! ! if (!frame.size.isEqual(m_frameRect.size)) { // Resize ! if (m_styleMask & NSTitledWindowMask) { ! frame = constrainFrameRect(frame); ! } ! if (m_delegate != null && typeof(m_delegate["windowWillResizeToSize"]) == "function") { ! frame.size = m_delegate["windowWillResizeToSize"].call(m_delegate, this, frame.size); ! } ! } ! if (frame.isEqual(m_frameRect)) { ! return; // Same shape; ! } ! if (!frame.origin.isEqual(m_frameRect.origin)) { ! m_notificationCenter.postNotificationWithNameObject(NSWindowWillMoveNotification, this); ! m_rootView.setFrameOrigin(frame.origin); ! } ! m_frameRect = frame; ! var cRect = contentRectForFrameRect(); ! if (!m_contentRect.size.isEqual(cRect.size)) { m_contentView.setFrameSize(cRect.size); m_contentView.setNeedsDisplay(true); m_rootView.setFrameSize(frame.size); m_rootView.setNeedsDisplay(true); + m_contentRect = cRect; } ! } ! ! public function constrainFrameRect(rect:NSRect):NSRect { ! if (rect.size.width < 100) { ! rect.size.width = 100; ! } ! if (rect.size.height < 24) { ! rect.size.height = 24; ! } ! return rect; } public function setFrameOrigin(point:NSPoint) { ! var f:NSRect = m_frameRect.clone(); ! f.origin = point; ! setFrame(f); } *************** *** 258,261 **** --- 303,336 ---- } + // Constraining window size + + public function maxSize():NSSize { + return m_maxFrameSize; + } + + public function minSize():NSSize { + return m_minFrameSize; + } + + public function setMaxSize(size:NSSize) { + if (size.width > 10000) { + size.width = 10000; + } + if (size.height > 10000) { + size.height = 10000; + } + m_maxFrameSize = size; + } + + public function setMinSize(size:NSSize) { + if (size.width < 1) { + size.width = 1; + } + if (size.height < 1) { + size.height = 1; + } + m_minFrameSize = size; + } + // Ordering Windows *************** *** 648,651 **** --- 723,727 ---- public function center() { + setFrameOrigin(new NSPoint((Stage.width - m_frameRect.size.width)/2, (Stage.height - m_frameRect.size.height)/2 - 10)); } *************** *** 713,716 **** --- 789,793 ---- mapDelegateNotification("DidResignKey"); mapDelegateNotification("DidResignMain"); + mapDelegateNotification("WillMove"); } |