/*\r
* pettanR work.js\r
- * version 0.4.27\r
+ * version 0.4.30\r
* \r
* author:\r
* itozyun\r
var SAVE_CONTROL = ( function(){\r
var SAVE = MENU_BAR_CONTROL.QUIT.createSelection( 'save', 'ctrl + S', quit, false),\r
SAVE_AND_QUIT = MENU_BAR_CONTROL.QUIT.createSelection( 'save & quit', null, quit, false, false, true),\r
- SAVE_AS_HTML = MENU_BAR_CONTROL.QUIT.createSelection( 'get as html', null, outputAsHtml, true, false, true),\r
- SAVE_AS_JSON_STRING = MENU_BAR_CONTROL.QUIT.createSelection( 'get JsonStr', null, outputAsJsonString, true, false, true),\r
+ EXPORT = MENU_BAR_CONTROL.QUIT.createSelection( 'export', null, onExport, true, false, true),\r
QUIT = MENU_BAR_CONTROL.QUIT.createSelection( 'quit', null, quit, true, true),\r
updated = false;\r
\r
pettanr.editor.shutdown();\r
}\r
\r
- function outputAsHtml(){\r
+ function onExport(){\r
pettanr.outputConsole.bootInOverlay(\r
- pettanr.outputConsole.HTML,\r
comicID, panelID, panelTimming,\r
PANEL_CONTROL.w(), PANEL_CONTROL.h(),\r
- 1, // border, BackgroundImage\r
- PANEL_ELEMENT_ARRAY\r
- );\r
- }\r
- function outputAsJsonString(){\r
- pettanr.outputConsole.bootInOverlay(\r
- pettanr.outputConsole.JSON,\r
- comicID, panelID, panelTimming,\r
- PANEL_CONTROL.w(), PANEL_CONTROL.h(),\r
- 1, // border, BackgroundImage\r
+ 2, // border, BackgroundImage\r
PANEL_ELEMENT_ARRAY\r
);\r
}\r
balloonW = _w !== undefined ? _w : balloonW;\r
balloonH = _h !== undefined ? _h : balloonH;\r
balloonA = _a !== undefined ? _a : balloonA;\r
- radA = balloonA *DEG_TO_RAD;\r
+ radA = balloonA * DEG_TO_RAD;\r
tailX = FLOOR( ( ( COS( radA) /2 +0.5) *( balloonW +SIZE)) -SIZE /2);\r
tailY = FLOOR( ( ( SIN( radA) /2 +0.5) *( balloonH +SIZE)) -SIZE /2);\r
ELM_MOVER.style.left = tailX +'px';\r
ATAN( _mouseY /_mouseX) *RAD_TO_DEG +( _mouseX < 0 ? 180 : 0) :\r
_mouseY > 0 ? 90 : -90\r
);\r
- currentText && currentText.angle( balloonA);\r
+ currentText && currentText.angle( Math.floor( balloonA + 0.5 ));\r
INFOMATION_WINDOW.update( currentText);\r
},\r
onFinish: function(){\r
}\r
this.angle = function( _a ){\r
_a !== undefined && instance.resize( x, y, w, h, _a );\r
- return a;\r
+ return a >= 0 ? a : a + 360;\r
}\r
this.text = function( _text ){\r
if( _text && text !== _text) {\r
function restoreReplaceElement( arg){\r
replaceComicElement( arg[ 0], arg[ 1]);\r
}\r
- \r
+\r
+ function onImageSelect( data, isPanelPictureData ){\r
+ if( isPanelPictureData !== true ){\r
+ data = {\r
+ resource_picture:data,\r
+ x: Math.floor( panelW /2 - data.width /2 ),\r
+ y: Math.floor( panelH /2 - data.height /2 ),\r
+ z: -1,\r
+ t: PANEL_ELEMENT_ARRAY.length,\r
+ width: data.width,\r
+ height: data.height\r
+ }\r
+ }\r
+ var _panelElement = new ImageElementClass( data );\r
+ _panelElement.init && _panelElement.init();\r
+ appendComicElement( _panelElement );\r
+ _panelElement.animate( undefined, undefined, data.width, data.height );\r
+ SAVE( restoreComicElement, [ false, _panelElement], [ true, _panelElement], true );\r
+ }\r
+ function onTextInput( _panelElement ){\r
+ appendComicElement( _panelElement );\r
+ SAVE( restoreComicElement, [ false, _panelElement ], [ true, _panelElement ], true );\r
+ }\r
+ \r
return {\r
init: function(){\r
log = $( '#operation-catcher-log');\r
} else {\r
onImageSelect( data, true );\r
}\r
- function onImageSelect( data, isPanelPictureData ){\r
- if( isPanelPictureData !== true ){\r
- data = {\r
- resource_picture:data,\r
- x: Math.floor( panelW /2 - data.width /2 ),\r
- y: Math.floor( panelH /2 - data.height /2 ),\r
- z: -1,\r
- t: PANEL_ELEMENT_ARRAY.length,\r
- width: data.width,\r
- height: data.height\r
- }\r
- }\r
- var _panelElement = new ImageElementClass( data );\r
- _panelElement.init && _panelElement.init();\r
- appendComicElement( _panelElement );\r
- _panelElement.animate( undefined, undefined, data.width, data.height );\r
- SAVE( restoreComicElement, [ false, _panelElement], [ true, _panelElement], true );\r
- }\r
},\r
createTextElement: function( data ){\r
var _panelElement;\r
data = {\r
balloon_template_id:1,\r
size: 1,\r
- tail: 0,\r
+ tail: 90,\r
x: Math.floor( panelW /2 - 100 +Math.random() *10 ),\r
y: Math.floor( panelH /2 - 100 +Math.random() *10 ),\r
z: -1,\r
_panelElement.init();\r
onTextInput( _panelElement );\r
}\r
- function onTextInput( _panelElement ){\r
- appendComicElement( _panelElement );\r
- SAVE( restoreComicElement, [ false, _panelElement ], [ true, _panelElement ], true );\r
- }\r
}\r
}\r
})();\r
- \r
+\r
/*\r
* end of COMIC_ELEMENT_CONTROL\r
*/\r
this.init = function(){\r
jqWrap = $( '#comic-console-wrapper').hide();\r
\r
- inputTitle = pettanr.form.createInputText( document.getElementById( 'comic-console-title'), null, ID);\r
- inputW = pettanr.form.createInputText( document.getElementById( 'comic-console-width'), null, ID);\r
- inputH = pettanr.form.createInputText( document.getElementById( 'comic-console-height'), null, ID);\r
+ inputTitle = pettanr.form.createInputText( document.getElementById( 'comic-console-title'), null, ID);\r
+ inputW = pettanr.form.createInputText( document.getElementById( 'comic-console-width'), null, ID);\r
+ inputH = pettanr.form.createInputText( document.getElementById( 'comic-console-height'), null, ID);\r
comboboxVisible = pettanr.form.createCombobox( document.getElementById( 'comic-console-visible'), null, ID);\r
comboboxEditable = pettanr.form.createCombobox( document.getElementById( 'comic-console-editable'), null, ID);\r
- buttonSubmit = pettanr.form.createButton( document.getElementById( 'comic-console-post-button'), clickOK, ID);\r
- buttonCancel = pettanr.form.createButton( document.getElementById( 'comic-console-cancel-button'), clickCancel, ID);\r
+ buttonSubmit = pettanr.form.createButton( document.getElementById( 'comic-console-post-button'), clickOK, ID);\r
+ buttonCancel = pettanr.form.createButton( document.getElementById( 'comic-console-cancel-button'), clickCancel, ID);\r
\r
delete instance.init;\r
}\r
});\r
\r
pettanr.outputConsole = pettanr.view.registerApplication( function(){\r
+ var FORMAT_LIST = [ 'json[POST]', 'json[GET]', 'XML', 'HTML', 'XHTML', 'MT export', 'Blogger ATOM' ];\r
var jqWrap, jqOutputArea,\r
+ comboboxFormat, inputOption,\r
+ buttonGenerate, buttonClose,\r
ID = 'outputConsole',\r
timing = 0,\r
+ comicID, panelID, panelTimming, panelW, panelH, borderSize, panelElementArray,\r
instance = this;\r
//pettanr.key.addKeyDownEvent( ID, 69, false, false, clickOK);\r
\r
pettanr.outputConsole.shutdown();\r
}\r
\r
- function getPanelElementByTiming( PANEL_ELEMENT_ARRAY, l ){\r
+ function getPanelElementByTiming(){\r
+ var l = panelElementArray.length;\r
while( timing < l * 2){\r
for(var i=0; i<l; ++i){\r
- if( timing === PANEL_ELEMENT_ARRAY[ i ].timing ){\r
+ if( timing === panelElementArray[ i ].timing ){\r
++timing;\r
- return PANEL_ELEMENT_ARRAY[ i ];\r
+ return panelElementArray[ i ];\r
}\r
}\r
++timing;\r
return null;\r
}\r
\r
- function getAsHtmlString( isAbsoluteUrl, isXHTML, panelW, panelH, border, PANEL_ELEMENT_ARRAY ){\r
+ function getAsHtmlString( isAbsoluteUrl, isXHTML ){\r
timing = 0;\r
\r
var HTML_ARRAY = [],\r
- l = PANEL_ELEMENT_ARRAY.length,\r
+ l = panelElementArray.length,\r
_panelElement;\r
\r
while( HTML_ARRAY.length < l ){\r
- _panelElement = getPanelElementByTiming( PANEL_ELEMENT_ARRAY, l );\r
+ _panelElement = getPanelElementByTiming();\r
if( _panelElement === null) break;\r
HTML_ARRAY.push( panelElementToHtml( _panelElement, isAbsoluteUrl, isXHTML ));\r
}\r
].join( ''); \r
}\r
}\r
+ \r
+ function getJsonGetString(){\r
+ timing = 0;\r
+ \r
+ var JSON_STRING_ARRAY = [],\r
+ ELEMENT_ARRAY = [],\r
+ l = panelElementArray.length,\r
+ cr = pettanr.LINE_FEED_CODE_TEXTAREA,\r
+ _panelElement;\r
\r
- function getAsJsonString( comicID, panelID, panelTimming, panelW, panelH, border, PANEL_ELEMENT_ARRAY ){\r
+ while( ELEMENT_ARRAY.length <= l){\r
+ _panelElement = getPanelElementByTiming();\r
+ if( _panelElement === null ) break;\r
+ \r
+ ELEMENT_ARRAY.push( _panelElement.type === 0 ? getImageJsonGET( _panelElement ) : balloonToJson( _panelElement ));\r
+ }\r
+ return [\r
+ '{', cr,\r
+ '"panel": {', cr,\r
+ '"id": ', panelID, ',', cr,\r
+ '"border": ', borderSize, ',', cr,\r
+ '"comic_id": ', comicID, ',', cr,\r
+ '"resource_picture_id": 1,', cr,\r
+ '"x": ', 0, ',', cr,\r
+ '"y": ', 0, ',', cr,\r
+ '"z": ', 0, ',', cr,\r
+ panelTimming !== -1 ? ( '"t": ' + panelTimming + ',' + cr ) : '',\r
+ '"width": ', panelW, ',', cr,\r
+ '"height": ', panelH, ',', cr,\r
+ '"panel_elements": [', cr,\r
+ ELEMENT_ARRAY.join( ',' + cr ), cr,\r
+ ']', cr,\r
+ '}', cr,\r
+ '}'\r
+ ].join( '' );\r
+ }\r
+ function getImageJsonGET( _imageElement ){\r
+ var cr = pettanr.LINE_FEED_CODE_TEXTAREA;\r
+ return [\r
+ '{', cr,\r
+ '"resource_picture": {', cr,\r
+ '"id": ', _imageElement.resourcePicture().id, ',', cr,\r
+ '"ext": ', '"',_imageElement.resourcePicture().ext, '"', cr,\r
+ '},', cr,\r
+ '"x": ', _imageElement.x, ',', cr,\r
+ '"y": ', _imageElement.y, ',', cr,\r
+ '"z": ', _imageElement.z, ',', cr,\r
+ '"width": ', _imageElement.flipH() * _imageElement.w, ',', cr,\r
+ '"height": ', _imageElement.flipV() * _imageElement.h, ',', cr,\r
+ '"t": ', timing, cr,\r
+ '}'\r
+ ].join( '');\r
+ }\r
+ \r
+ function getJsonPostString(){\r
timing = 0;\r
\r
var JSON_STRING_ARRAY = [],\r
IMAGE_ARRAY = [],\r
BALLOON_ARRAY = [],\r
- l = PANEL_ELEMENT_ARRAY.length,\r
+ l = panelElementArray.length,\r
_panelElement,\r
cr = pettanr.LINE_FEED_CODE_TEXTAREA;\r
\r
while( IMAGE_ARRAY.length + BALLOON_ARRAY.length <= l){\r
- _panelElement = getPanelElementByTiming( PANEL_ELEMENT_ARRAY, l );\r
+ _panelElement = getPanelElementByTiming();\r
if( _panelElement === null) break;\r
_panelElement.type === 0 ? \r
- IMAGE_ARRAY.push( imageToJson( _panelElement )) :\r
- BALLOON_ARRAY.push( balloonToJson( _panelElement ) );\r
+ IMAGE_ARRAY.push( [ '"new', timing, '": ', imageToJson( _panelElement ) ].join( '' )) :\r
+ BALLOON_ARRAY.push( [ '"new', timing, '": ', balloonToJson( _panelElement ) ].join( '' ) );\r
}\r
return [\r
'{', cr,\r
'"panel": {', cr,\r
'"id": ', panelID, ',', cr,\r
- '"border": ', border, ',', cr,\r
+ '"border": ', borderSize, ',', cr,\r
'"comic_id": ', comicID, ',', cr,\r
'"resource_picture_id": 1,', cr,\r
'"x": ', 0, ',', cr,\r
function imageToJson( _imageElement ){\r
var cr = pettanr.LINE_FEED_CODE_TEXTAREA;\r
return [\r
- '"new', timing, '": {', cr,\r
+ '{', cr,\r
'"resource_picture_id": ', _imageElement.resourcePicture().id, ',', cr,\r
'"x": ', _imageElement.x, ',', cr,\r
'"y": ', _imageElement.y, ',', cr,\r
function balloonToJson( _textElement ){\r
var cr = pettanr.LINE_FEED_CODE_TEXTAREA;\r
return [\r
- '"new', timing, '": {', cr,\r
+ '{', cr,\r
'"balloon_template_id": ', 1, ',', cr,\r
'"system_picture_id": ', 1, ',', cr,\r
'"size": ', 1, ',', cr,\r
'}'\r
].join( '');\r
}\r
-\r
-\r
+ \r
+ function clickGenerate(){\r
+ var i = comboboxFormat.selectIndex(),\r
+ text = 'sorry...';\r
+ if( i === 0 ){\r
+ text = getJsonPostString();\r
+ } else\r
+ if( i === 1 ){\r
+ text = getJsonGetString();\r
+ } else\r
+ if( i === 3 ){\r
+ text = getAsHtmlString( false, false );\r
+ } else {\r
+ \r
+ }\r
+ jqOutputArea.val( text );\r
+ }\r
+ function clickClose(){\r
+ pettanr.outputConsole.shutdown();\r
+ return false;\r
+ }\r
+ \r
/* grobal method */\r
this.rootElement = document.getElementById( 'output-console-wrapper' );\r
this.displayName = ID;\r
this.init = function(){\r
jqWrap = $( '#output-console-wrapper').hide();\r
jqOutputArea = $( '#output-area');\r
+ \r
+ comboboxFormat = pettanr.form.createCombobox( document.getElementById( 'output-console-format' ), null, ID );\r
+ for( var i=0, l = FORMAT_LIST.length; i<l; ++i ){\r
+ comboboxFormat.createOption( FORMAT_LIST[ i ], null, i === 0 );\r
+ }\r
+ inputOption = pettanr.form.createInputText( document.getElementById( 'output-console-option' ), null, ID );\r
+ buttonGenerate = pettanr.form.createButton( document.getElementById( 'output-console-generate-button' ), clickGenerate, ID );\r
+ buttonClose = pettanr.form.createButton( document.getElementById( 'output-console-close-button' ), clickClose, ID );\r
delete instance.init;\r
}\r
- this.onOpen = function( _w, _h, _dataType, _comicID, _panelID, _panelTimming, _panelW, _panelH, _borderSize, _panelElements ){\r
+ this.onOpen = function( _w, _h, _comicID, _panelID, _panelTimming, _panelW, _panelH, _borderSize, _panelElementArray ){\r
instance.init && instance.init();\r
\r
jqWrap.show();\r
instance.onPaneResize( _w, _h );\r
var text;\r
- if( _dataType === pettanr.outputConsole.JSON ){\r
- text = getAsJsonString( _comicID, _panelID, _panelTimming, _panelW, _panelH, _borderSize, _panelElements );\r
- } else {\r
- text = getAsHtmlString( false, false, _panelW, _panelH, _borderSize, _panelElements );\r
- }\r
- jqOutputArea.val( text ).focus();\r
+ \r
+ comicID = _comicID;\r
+ panelID = _panelID;\r
+ panelTimming = _panelTimming;\r
+ panelW = _panelW;\r
+ panelH = _panelH;\r
+ borderSize = _borderSize;\r
+ panelElementArray = _panelElementArray;\r
+ \r
+ clickGenerate();\r
}\r
this.onPaneResize = function( _w, _h){\r
jqWrap.css(\r
jqOutputArea.val('');\r
}\r
});\r
-pettanr.outputConsole.JSON = 0;\r
-pettanr.outputConsole.HTML = 1;\r
-pettanr.outputConsole.XML = 2;\r
-pettanr.outputConsole.SHORT_URL = 3;\r
-pettanr.outputConsole.MOVERBLE_TYPE = 4;\r
-pettanr.outputConsole.BLOGGER = 5;\r