penguin/AstroJS

Javascript framework for my blog

commit 15844c9f0cc51c16833a2e7918dbbb135782dfbb

author斟酌 鵬兄 <tgckpg@gmail.com>
date2016-02-21T19:09:07Z
subjectAbility to be closed programmatically
commit 15844c9f0cc51c16833a2e7918dbbb135782dfbb
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date:   2016-02-21T19:09:07Z

    Ability to be closed programmatically
---
 botanjs/src/Components/MessageBox.js         | 16 +++++++++-------
 botanjs/src/externs/Components.MessageBox.js |  2 ++
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/botanjs/src/Components/MessageBox.js b/botanjs/src/Components/MessageBox.js
index 52f0992..4d5f8a4 100644
--- a/botanjs/src/Components/MessageBox.js
+++ b/botanjs/src/Components/MessageBox.js
@@ -55,6 +55,14 @@
 			_self.stage = null;
 		};
 
+		this.close = function( confirmed )
+		{
+			doc.removeEventListener( keyBinding );
+			if( _self.clickHandler ) _self.clickHandler( confirmed );
+			document.body.removeChild( _self.stage );
+			_self.stage = null;
+		};
+
 		if ( no )
 		{
 			var _no = Dand.wrap(
@@ -63,13 +71,7 @@
 				, Dand.wrap( "span", null, "comp flsf", no )
 			);
 
-			_no.onclick = function()
-			{
-				doc.removeEventListener( keyBinding );
-				if( _self.clickHandler ) _self.clickHandler( false );
-				document.body.removeChild( _self.stage );
-				_self.stage = null;
-			};
+			_no.onclick = this.close;
 		}
 
 		// set handler
diff --git a/botanjs/src/externs/Components.MessageBox.js b/botanjs/src/externs/Components.MessageBox.js
index 5dfea04..1761081 100644
--- a/botanjs/src/externs/Components.MessageBox.js
+++ b/botanjs/src/externs/Components.MessageBox.js
@@ -5,3 +5,5 @@ Components.MessageBox = function() {};
 Components.MessageBox.setHandler;
 /** @type {Function} */
 Components.MessageBox.show;
+/** @type {Function} */
+Components.MessageBox.close;