Wiki2GoEditor 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/Wiki2Go_install_editor.rb +13 -0
- data/fckeditor/editor/_source/classes/fckcontextmenu.js +134 -0
- data/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js +46 -0
- data/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js +58 -0
- data/fckeditor/editor/_source/classes/fckdomrange.js +452 -0
- data/fckeditor/editor/_source/classes/fckdomrange_gecko.js +71 -0
- data/fckeditor/editor/_source/classes/fckdomrange_ie.js +149 -0
- data/fckeditor/editor/_source/classes/fckeditingarea.js +253 -0
- data/fckeditor/editor/_source/classes/fckelementpath.js +66 -0
- data/fckeditor/editor/_source/classes/fckenterkey.js +556 -0
- data/fckeditor/editor/_source/classes/fckevents.js +53 -0
- data/fckeditor/editor/_source/classes/fckicon.js +98 -0
- data/fckeditor/editor/_source/classes/fckiecleanup.js +68 -0
- data/fckeditor/editor/_source/classes/fckimagepreloader.js +68 -0
- data/fckeditor/editor/_source/classes/fckkeystrokehandler.js +136 -0
- data/fckeditor/editor/_source/classes/fckmenublock.js +143 -0
- data/fckeditor/editor/_source/classes/fckmenublockpanel.js +54 -0
- data/fckeditor/editor/_source/classes/fckmenuitem.js +160 -0
- data/fckeditor/editor/_source/classes/fckpanel.js +303 -0
- data/fckeditor/editor/_source/classes/fckplugin.js +56 -0
- data/fckeditor/editor/_source/classes/fckspecialcombo.js +363 -0
- data/fckeditor/editor/_source/classes/fckstyledef.js +59 -0
- data/fckeditor/editor/_source/classes/fckstyledef_gecko.js +119 -0
- data/fckeditor/editor/_source/classes/fckstyledef_ie.js +142 -0
- data/fckeditor/editor/_source/classes/fckstylesloader.js +88 -0
- data/fckeditor/editor/_source/classes/fcktoolbar.js +120 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js +36 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js +38 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbutton.js +74 -0
- data/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js +222 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js +114 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js +47 -0
- data/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js +52 -0
- data/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js +91 -0
- data/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js +134 -0
- data/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js +111 -0
- data/fckeditor/editor/_source/classes/fckw3crange.js +448 -0
- data/fckeditor/editor/_source/classes/fckxml_gecko.js +87 -0
- data/fckeditor/editor/_source/classes/fckxml_ie.js +90 -0
- data/fckeditor/editor/_source/commandclasses/fck_othercommands.js +380 -0
- data/fckeditor/editor/_source/commandclasses/fckfitwindow.js +169 -0
- data/fckeditor/editor/_source/commandclasses/fcknamedcommand.js +37 -0
- data/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js +38 -0
- data/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js +40 -0
- data/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js +39 -0
- data/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js +67 -0
- data/fckeditor/editor/_source/commandclasses/fckstylecommand.js +99 -0
- data/fckeditor/editor/_source/commandclasses/fcktablecommand.js +71 -0
- data/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js +175 -0
- data/fckeditor/editor/_source/fckconstants.js +52 -0
- data/fckeditor/editor/_source/fckeditorapi.js +161 -0
- data/fckeditor/editor/_source/fckjscoreextensions.js +152 -0
- data/fckeditor/editor/_source/fckscriptloader.js +108 -0
- data/fckeditor/editor/_source/internals/fck.js +859 -0
- data/fckeditor/editor/_source/internals/fck_contextmenu.js +307 -0
- data/fckeditor/editor/_source/internals/fck_gecko.js +254 -0
- data/fckeditor/editor/_source/internals/fck_ie.js +383 -0
- data/fckeditor/editor/_source/internals/fckbrowserinfo.js +48 -0
- data/fckeditor/editor/_source/internals/fckcodeformatter.js +100 -0
- data/fckeditor/editor/_source/internals/fckcommands.js +132 -0
- data/fckeditor/editor/_source/internals/fckconfig.js +199 -0
- data/fckeditor/editor/_source/internals/fckdebug.js +56 -0
- data/fckeditor/editor/_source/internals/fckdialog.js +38 -0
- data/fckeditor/editor/_source/internals/fckdialog_gecko.js +103 -0
- data/fckeditor/editor/_source/internals/fckdialog_ie.js +48 -0
- data/fckeditor/editor/_source/internals/fckdocumentprocessor.js +243 -0
- data/fckeditor/editor/_source/internals/fckdomtools.js +294 -0
- data/fckeditor/editor/_source/internals/fcklanguagemanager.js +161 -0
- data/fckeditor/editor/_source/internals/fcklisthandler.js +152 -0
- data/fckeditor/editor/_source/internals/fcklistslib.js +60 -0
- data/fckeditor/editor/_source/internals/fckplugins.js +46 -0
- data/fckeditor/editor/_source/internals/fckregexlib.js +95 -0
- data/fckeditor/editor/_source/internals/fckselection.js +24 -0
- data/fckeditor/editor/_source/internals/fckselection_gecko.js +151 -0
- data/fckeditor/editor/_source/internals/fckselection_ie.js +158 -0
- data/fckeditor/editor/_source/internals/fcktablehandler.js +385 -0
- data/fckeditor/editor/_source/internals/fcktablehandler_gecko.js +57 -0
- data/fckeditor/editor/_source/internals/fcktablehandler_ie.js +58 -0
- data/fckeditor/editor/_source/internals/fcktoolbaritems.js +121 -0
- data/fckeditor/editor/_source/internals/fcktoolbarset.js +357 -0
- data/fckeditor/editor/_source/internals/fcktools.js +225 -0
- data/fckeditor/editor/_source/internals/fcktools_gecko.js +235 -0
- data/fckeditor/editor/_source/internals/fcktools_ie.js +214 -0
- data/fckeditor/editor/_source/internals/fckundo_gecko.js +27 -0
- data/fckeditor/editor/_source/internals/fckundo_ie.js +123 -0
- data/fckeditor/editor/_source/internals/fckurlparams.js +39 -0
- data/fckeditor/editor/_source/internals/fckxhtml.js +466 -0
- data/fckeditor/editor/_source/internals/fckxhtml_gecko.js +66 -0
- data/fckeditor/editor/_source/internals/fckxhtml_ie.js +194 -0
- data/fckeditor/editor/_source/internals/fckxhtmlentities.js +345 -0
- data/fckeditor/editor/css/behaviors/disablehandles.htc +15 -0
- data/fckeditor/editor/css/behaviors/showtableborders.htc +36 -0
- data/fckeditor/editor/css/fck_editorarea.css +91 -0
- data/fckeditor/editor/css/fck_internal.css +111 -0
- data/fckeditor/editor/css/fck_showtableborders_gecko.css +42 -0
- data/fckeditor/editor/css/images/fck_anchor.gif +0 -0
- data/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
- data/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
- data/fckeditor/editor/css/images/fck_pagebreak.gif +0 -0
- data/fckeditor/editor/dialog/common/fck_dialog_common.css +83 -0
- data/fckeditor/editor/dialog/common/fck_dialog_common.js +154 -0
- data/fckeditor/editor/dialog/common/fcknumericfield.htc +24 -0
- data/fckeditor/editor/dialog/common/images/locked.gif +0 -0
- data/fckeditor/editor/dialog/common/images/reset.gif +0 -0
- data/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
- data/fckeditor/editor/dialog/common/moz-bindings.xml +30 -0
- data/fckeditor/editor/dialog/fck_about.html +155 -0
- data/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
- data/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
- data/fckeditor/editor/dialog/fck_anchor.html +227 -0
- data/fckeditor/editor/dialog/fck_button.html +107 -0
- data/fckeditor/editor/dialog/fck_checkbox.html +107 -0
- data/fckeditor/editor/dialog/fck_colorselector.html +171 -0
- data/fckeditor/editor/dialog/fck_docprops.html +600 -0
- data/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +113 -0
- data/fckeditor/editor/dialog/fck_find.html +173 -0
- data/fckeditor/editor/dialog/fck_flash.html +146 -0
- data/fckeditor/editor/dialog/fck_flash/fck_flash.js +288 -0
- data/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +46 -0
- data/fckeditor/editor/dialog/fck_form.html +105 -0
- data/fckeditor/editor/dialog/fck_hiddenfield.html +116 -0
- data/fckeditor/editor/dialog/fck_image.html +252 -0
- data/fckeditor/editor/dialog/fck_image/fck_image.js +486 -0
- data/fckeditor/editor/dialog/fck_image/fck_image_preview.html +66 -0
- data/fckeditor/editor/dialog/fck_link.html +293 -0
- data/fckeditor/editor/dialog/fck_link/fck_link.js +664 -0
- data/fckeditor/editor/dialog/fck_listprop.html +116 -0
- data/fckeditor/editor/dialog/fck_paste.html +285 -0
- data/fckeditor/editor/dialog/fck_radiobutton.html +107 -0
- data/fckeditor/editor/dialog/fck_replace.html +156 -0
- data/fckeditor/editor/dialog/fck_select.html +176 -0
- data/fckeditor/editor/dialog/fck_select/fck_select.js +169 -0
- data/fckeditor/editor/dialog/fck_smiley.html +105 -0
- data/fckeditor/editor/dialog/fck_source.html +65 -0
- data/fckeditor/editor/dialog/fck_specialchar.html +113 -0
- data/fckeditor/editor/dialog/fck_spellerpages.html +64 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +87 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +153 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +174 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +196 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +180 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +462 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +71 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +49 -0
- data/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +272 -0
- data/fckeditor/editor/dialog/fck_table.html +286 -0
- data/fckeditor/editor/dialog/fck_tablecell.html +255 -0
- data/fckeditor/editor/dialog/fck_template.html +242 -0
- data/fckeditor/editor/dialog/fck_template/images/template1.gif +0 -0
- data/fckeditor/editor/dialog/fck_template/images/template2.gif +0 -0
- data/fckeditor/editor/dialog/fck_template/images/template3.gif +0 -0
- data/fckeditor/editor/dialog/fck_textarea.html +94 -0
- data/fckeditor/editor/dialog/fck_textfield.html +139 -0
- data/fckeditor/editor/fckdebug.html +153 -0
- data/fckeditor/editor/fckdialog.html +324 -0
- data/fckeditor/editor/fckeditor.html +227 -0
- data/fckeditor/editor/fckeditor.original.html +319 -0
- data/fckeditor/editor/filemanager/browser/default/browser.css +88 -0
- data/fckeditor/editor/filemanager/browser/default/browser.html +154 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp +62 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp +234 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp +183 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp +49 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp +124 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp +89 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp +55 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx +30 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm +99 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm +363 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso +65 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso +249 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl +63 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl +158 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi +137 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl +131 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl +667 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl +60 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php +75 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php +222 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/config.php +56 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php +113 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/io.php +101 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/php/util.php +41 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py +785 -0
- data/fckeditor/editor/filemanager/browser/default/connectors/test.html +180 -0
- data/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +67 -0
- data/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +113 -0
- data/fckeditor/editor/filemanager/browser/default/frmfolders.html +196 -0
- data/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +160 -0
- data/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +65 -0
- data/fckeditor/editor/filemanager/browser/default/frmupload.html +113 -0
- data/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
- data/fckeditor/editor/filemanager/browser/default/js/common.js +55 -0
- data/fckeditor/editor/filemanager/browser/default/js/fckxml.js +130 -0
- data/fckeditor/editor/filemanager/upload/asp/class_upload.asp +234 -0
- data/fckeditor/editor/filemanager/upload/asp/config.asp +52 -0
- data/fckeditor/editor/filemanager/upload/asp/io.asp +29 -0
- data/fckeditor/editor/filemanager/upload/asp/upload.asp +121 -0
- data/fckeditor/editor/filemanager/upload/aspx/upload.aspx +30 -0
- data/fckeditor/editor/filemanager/upload/cfm/config.cfm +98 -0
- data/fckeditor/editor/filemanager/upload/cfm/upload.cfm +168 -0
- data/fckeditor/editor/filemanager/upload/lasso/config.lasso +65 -0
- data/fckeditor/editor/filemanager/upload/lasso/upload.lasso +157 -0
- data/fckeditor/editor/filemanager/upload/php/config.php +56 -0
- data/fckeditor/editor/filemanager/upload/php/upload.php +124 -0
- data/fckeditor/editor/filemanager/upload/php/util.php +40 -0
- data/fckeditor/editor/filemanager/upload/test.html +133 -0
- data/fckeditor/editor/images/anchor.gif +0 -0
- data/fckeditor/editor/images/arrow_ltr.gif +0 -0
- data/fckeditor/editor/images/arrow_rtl.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
- data/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
- data/fckeditor/editor/images/spacer.gif +0 -0
- data/fckeditor/editor/js/fckeditorcode_gecko.js +98 -0
- data/fckeditor/editor/js/fckeditorcode_ie.js +99 -0
- data/fckeditor/editor/lang/_getfontformat.html +85 -0
- data/fckeditor/editor/lang/_translationstatus.txt +76 -0
- data/fckeditor/editor/lang/af.js +504 -0
- data/fckeditor/editor/lang/ar.js +504 -0
- data/fckeditor/editor/lang/bg.js +504 -0
- data/fckeditor/editor/lang/bn.js +504 -0
- data/fckeditor/editor/lang/bs.js +504 -0
- data/fckeditor/editor/lang/ca.js +504 -0
- data/fckeditor/editor/lang/cs.js +504 -0
- data/fckeditor/editor/lang/da.js +504 -0
- data/fckeditor/editor/lang/de.js +504 -0
- data/fckeditor/editor/lang/el.js +504 -0
- data/fckeditor/editor/lang/en-au.js +504 -0
- data/fckeditor/editor/lang/en-ca.js +504 -0
- data/fckeditor/editor/lang/en-uk.js +504 -0
- data/fckeditor/editor/lang/en.js +504 -0
- data/fckeditor/editor/lang/eo.js +504 -0
- data/fckeditor/editor/lang/es.js +504 -0
- data/fckeditor/editor/lang/et.js +504 -0
- data/fckeditor/editor/lang/eu.js +505 -0
- data/fckeditor/editor/lang/fa.js +504 -0
- data/fckeditor/editor/lang/fi.js +504 -0
- data/fckeditor/editor/lang/fo.js +504 -0
- data/fckeditor/editor/lang/fr.js +504 -0
- data/fckeditor/editor/lang/gl.js +504 -0
- data/fckeditor/editor/lang/he.js +504 -0
- data/fckeditor/editor/lang/hi.js +504 -0
- data/fckeditor/editor/lang/hr.js +504 -0
- data/fckeditor/editor/lang/hu.js +504 -0
- data/fckeditor/editor/lang/it.js +504 -0
- data/fckeditor/editor/lang/ja.js +504 -0
- data/fckeditor/editor/lang/km.js +504 -0
- data/fckeditor/editor/lang/ko.js +504 -0
- data/fckeditor/editor/lang/lt.js +504 -0
- data/fckeditor/editor/lang/lv.js +504 -0
- data/fckeditor/editor/lang/mn.js +504 -0
- data/fckeditor/editor/lang/ms.js +504 -0
- data/fckeditor/editor/lang/nb.js +504 -0
- data/fckeditor/editor/lang/nl.js +504 -0
- data/fckeditor/editor/lang/no.js +504 -0
- data/fckeditor/editor/lang/pl.js +504 -0
- data/fckeditor/editor/lang/pt-br.js +504 -0
- data/fckeditor/editor/lang/pt.js +504 -0
- data/fckeditor/editor/lang/ro.js +504 -0
- data/fckeditor/editor/lang/ru.js +504 -0
- data/fckeditor/editor/lang/sk.js +504 -0
- data/fckeditor/editor/lang/sl.js +504 -0
- data/fckeditor/editor/lang/sr-latn.js +504 -0
- data/fckeditor/editor/lang/sr.js +504 -0
- data/fckeditor/editor/lang/sv.js +504 -0
- data/fckeditor/editor/lang/th.js +504 -0
- data/fckeditor/editor/lang/tr.js +504 -0
- data/fckeditor/editor/lang/uk.js +504 -0
- data/fckeditor/editor/lang/vi.js +504 -0
- data/fckeditor/editor/lang/zh-cn.js +504 -0
- data/fckeditor/editor/lang/zh.js +504 -0
- data/fckeditor/editor/plugins/autogrow/fckplugin.js +92 -0
- data/fckeditor/editor/plugins/placeholder/fck_placeholder.html +100 -0
- data/fckeditor/editor/plugins/placeholder/fckplugin.js +187 -0
- data/fckeditor/editor/plugins/placeholder/lang/de.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/en.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/fr.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/it.js +27 -0
- data/fckeditor/editor/plugins/placeholder/lang/pl.js +27 -0
- data/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
- data/fckeditor/editor/plugins/simplecommands/fckplugin.js +29 -0
- data/fckeditor/editor/plugins/tablecommands/fckplugin.js +32 -0
- data/fckeditor/editor/skins/_fckviewstrips.html +121 -0
- data/fckeditor/editor/skins/default/fck_dialog.css +137 -0
- data/fckeditor/editor/skins/default/fck_editor.css +464 -0
- data/fckeditor/editor/skins/default/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/default/images/toolbar.start.gif +0 -0
- data/fckeditor/editor/skins/office2003/fck_dialog.css +138 -0
- data/fckeditor/editor/skins/office2003/fck_editor.css +476 -0
- data/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
- data/fckeditor/editor/skins/silver/fck_dialog.css +141 -0
- data/fckeditor/editor/skins/silver/fck_editor.css +473 -0
- data/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
- data/fckeditor/editor/skins/silver/images/toolbar.start.gif +0 -0
- data/fckeditor/fckconfig.js +224 -0
- data/fckeditor/fckeditor.js +214 -0
- data/fckeditor/fckstyles.xml +53 -0
- data/fckeditor/fcktemplates.xml +103 -0
- data/lib/Wiki2GoEditor/Install/editor.rb +39 -0
- data/test/test_install.rb +40 -0
- metadata +517 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
|
3
|
+
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
|
4
|
+
*
|
|
5
|
+
* == BEGIN LICENSE ==
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the terms of any of the following licenses at your
|
|
8
|
+
* choice:
|
|
9
|
+
*
|
|
10
|
+
* - GNU General Public License Version 2 or later (the "GPL")
|
|
11
|
+
* http://www.gnu.org/licenses/gpl.html
|
|
12
|
+
*
|
|
13
|
+
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
|
14
|
+
* http://www.gnu.org/licenses/lgpl.html
|
|
15
|
+
*
|
|
16
|
+
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
|
17
|
+
* http://www.mozilla.org/MPL/MPL-1.1.html
|
|
18
|
+
*
|
|
19
|
+
* == END LICENSE ==
|
|
20
|
+
*
|
|
21
|
+
* FCKToolbarPanelButton Class: Handles the Fonts combo selector.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
var FCKToolbarFontsCombo = function( tooltip, style )
|
|
25
|
+
{
|
|
26
|
+
this.CommandName = 'FontName' ;
|
|
27
|
+
this.Label = this.GetLabel() ;
|
|
28
|
+
this.Tooltip = tooltip ? tooltip : this.Label ;
|
|
29
|
+
this.Style = style ? style : FCK_TOOLBARITEM_ICONTEXT ;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Inherit from FCKToolbarSpecialCombo.
|
|
33
|
+
FCKToolbarFontsCombo.prototype = new FCKToolbarSpecialCombo ;
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
FCKToolbarFontsCombo.prototype.GetLabel = function()
|
|
37
|
+
{
|
|
38
|
+
return FCKLang.Font ;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
FCKToolbarFontsCombo.prototype.CreateItems = function( targetSpecialCombo )
|
|
42
|
+
{
|
|
43
|
+
var aFonts = FCKConfig.FontNames.split(';') ;
|
|
44
|
+
|
|
45
|
+
for ( var i = 0 ; i < aFonts.length ; i++ )
|
|
46
|
+
this._Combo.AddItem( aFonts[i], '<font face="' + aFonts[i] + '" style="font-size: 12px">' + aFonts[i] + '</font>' ) ;
|
|
47
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
|
3
|
+
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
|
4
|
+
*
|
|
5
|
+
* == BEGIN LICENSE ==
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the terms of any of the following licenses at your
|
|
8
|
+
* choice:
|
|
9
|
+
*
|
|
10
|
+
* - GNU General Public License Version 2 or later (the "GPL")
|
|
11
|
+
* http://www.gnu.org/licenses/gpl.html
|
|
12
|
+
*
|
|
13
|
+
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
|
14
|
+
* http://www.gnu.org/licenses/lgpl.html
|
|
15
|
+
*
|
|
16
|
+
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
|
17
|
+
* http://www.mozilla.org/MPL/MPL-1.1.html
|
|
18
|
+
*
|
|
19
|
+
* == END LICENSE ==
|
|
20
|
+
*
|
|
21
|
+
* FCKToolbarPanelButton Class: Handles the Fonts combo selector.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
var FCKToolbarFontSizeCombo = function( tooltip, style )
|
|
25
|
+
{
|
|
26
|
+
this.CommandName = 'FontSize' ;
|
|
27
|
+
this.Label = this.GetLabel() ;
|
|
28
|
+
this.Tooltip = tooltip ? tooltip : this.Label ;
|
|
29
|
+
this.Style = style ? style : FCK_TOOLBARITEM_ICONTEXT ;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Inherit from FCKToolbarSpecialCombo.
|
|
33
|
+
FCKToolbarFontSizeCombo.prototype = new FCKToolbarSpecialCombo ;
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
FCKToolbarFontSizeCombo.prototype.GetLabel = function()
|
|
37
|
+
{
|
|
38
|
+
return FCKLang.FontSize ;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
FCKToolbarFontSizeCombo.prototype.CreateItems = function( targetSpecialCombo )
|
|
42
|
+
{
|
|
43
|
+
targetSpecialCombo.FieldWidth = 70 ;
|
|
44
|
+
|
|
45
|
+
var aSizes = FCKConfig.FontSizes.split(';') ;
|
|
46
|
+
|
|
47
|
+
for ( var i = 0 ; i < aSizes.length ; i++ )
|
|
48
|
+
{
|
|
49
|
+
var aSizeParts = aSizes[i].split('/') ;
|
|
50
|
+
this._Combo.AddItem( aSizeParts[0], '<font size="' + aSizeParts[0] + '">' + aSizeParts[1] + '</font>', aSizeParts[1] ) ;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
|
3
|
+
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
|
4
|
+
*
|
|
5
|
+
* == BEGIN LICENSE ==
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the terms of any of the following licenses at your
|
|
8
|
+
* choice:
|
|
9
|
+
*
|
|
10
|
+
* - GNU General Public License Version 2 or later (the "GPL")
|
|
11
|
+
* http://www.gnu.org/licenses/gpl.html
|
|
12
|
+
*
|
|
13
|
+
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
|
14
|
+
* http://www.gnu.org/licenses/lgpl.html
|
|
15
|
+
*
|
|
16
|
+
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
|
17
|
+
* http://www.mozilla.org/MPL/MPL-1.1.html
|
|
18
|
+
*
|
|
19
|
+
* == END LICENSE ==
|
|
20
|
+
*
|
|
21
|
+
* FCKToolbarPanelButton Class: represents a special button in the toolbar
|
|
22
|
+
* that shows a panel when pressed.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
var FCKToolbarPanelButton = function( commandName, label, tooltip, style, icon )
|
|
26
|
+
{
|
|
27
|
+
this.CommandName = commandName ;
|
|
28
|
+
|
|
29
|
+
var oIcon ;
|
|
30
|
+
|
|
31
|
+
if ( icon == null )
|
|
32
|
+
oIcon = FCKConfig.SkinPath + 'toolbar/' + commandName.toLowerCase() + '.gif' ;
|
|
33
|
+
else if ( typeof( icon ) == 'number' )
|
|
34
|
+
oIcon = [ FCKConfig.SkinPath + 'fck_strip.gif', 16, icon ] ;
|
|
35
|
+
|
|
36
|
+
var oUIButton = this._UIButton = new FCKToolbarButtonUI( commandName, label, tooltip, oIcon, style ) ;
|
|
37
|
+
oUIButton._FCKToolbarPanelButton = this ;
|
|
38
|
+
oUIButton.ShowArrow = true ;
|
|
39
|
+
oUIButton.OnClick = FCKToolbarPanelButton_OnButtonClick ;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
FCKToolbarPanelButton.prototype.TypeName = 'FCKToolbarPanelButton' ;
|
|
43
|
+
|
|
44
|
+
FCKToolbarPanelButton.prototype.Create = function( parentElement )
|
|
45
|
+
{
|
|
46
|
+
parentElement.className += 'Menu' ;
|
|
47
|
+
|
|
48
|
+
this._UIButton.Create( parentElement ) ;
|
|
49
|
+
|
|
50
|
+
var oPanel = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName )._Panel ;
|
|
51
|
+
oPanel._FCKToolbarPanelButton = this ;
|
|
52
|
+
|
|
53
|
+
var eLineDiv = oPanel.Document.body.appendChild( oPanel.Document.createElement( 'div' ) ) ;
|
|
54
|
+
eLineDiv.style.position = 'absolute' ;
|
|
55
|
+
eLineDiv.style.top = '0px' ;
|
|
56
|
+
|
|
57
|
+
var eLine = this.LineImg = eLineDiv.appendChild( oPanel.Document.createElement( 'IMG' ) ) ;
|
|
58
|
+
eLine.className = 'TB_ConnectionLine' ;
|
|
59
|
+
// eLine.style.backgroundColor = 'Red' ;
|
|
60
|
+
eLine.src = FCK_SPACER_PATH ;
|
|
61
|
+
|
|
62
|
+
oPanel.OnHide = FCKToolbarPanelButton_OnPanelHide ;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/*
|
|
66
|
+
Events
|
|
67
|
+
*/
|
|
68
|
+
|
|
69
|
+
function FCKToolbarPanelButton_OnButtonClick( toolbarButton )
|
|
70
|
+
{
|
|
71
|
+
var oButton = this._FCKToolbarPanelButton ;
|
|
72
|
+
var e = oButton._UIButton.MainElement ;
|
|
73
|
+
|
|
74
|
+
oButton._UIButton.ChangeState( FCK_TRISTATE_ON ) ;
|
|
75
|
+
|
|
76
|
+
oButton.LineImg.style.width = ( e.offsetWidth - 2 ) + 'px' ;
|
|
77
|
+
|
|
78
|
+
FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( oButton.CommandName ).Execute( 0, e.offsetHeight - 1, e ) ; // -1 to be over the border
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function FCKToolbarPanelButton_OnPanelHide()
|
|
82
|
+
{
|
|
83
|
+
var oMenuButton = this._FCKToolbarPanelButton ;
|
|
84
|
+
oMenuButton._UIButton.ChangeState( FCK_TRISTATE_OFF ) ;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// The Panel Button works like a normal button so the refresh state functions
|
|
88
|
+
// defined for the normal button can be reused here.
|
|
89
|
+
FCKToolbarPanelButton.prototype.RefreshState = FCKToolbarButton.prototype.RefreshState ;
|
|
90
|
+
FCKToolbarPanelButton.prototype.Enable = FCKToolbarButton.prototype.Enable ;
|
|
91
|
+
FCKToolbarPanelButton.prototype.Disable = FCKToolbarButton.prototype.Disable ;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
|
3
|
+
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
|
4
|
+
*
|
|
5
|
+
* == BEGIN LICENSE ==
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the terms of any of the following licenses at your
|
|
8
|
+
* choice:
|
|
9
|
+
*
|
|
10
|
+
* - GNU General Public License Version 2 or later (the "GPL")
|
|
11
|
+
* http://www.gnu.org/licenses/gpl.html
|
|
12
|
+
*
|
|
13
|
+
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
|
14
|
+
* http://www.gnu.org/licenses/lgpl.html
|
|
15
|
+
*
|
|
16
|
+
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
|
17
|
+
* http://www.mozilla.org/MPL/MPL-1.1.html
|
|
18
|
+
*
|
|
19
|
+
* == END LICENSE ==
|
|
20
|
+
*
|
|
21
|
+
* FCKToolbarSpecialCombo Class: This is a "abstract" base class to be used
|
|
22
|
+
* by the special combo toolbar elements like font name, font size, paragraph format, etc...
|
|
23
|
+
*
|
|
24
|
+
* The following properties and methods must be implemented when inheriting from
|
|
25
|
+
* this class:
|
|
26
|
+
* - Property: CommandName [ The command name to be executed ]
|
|
27
|
+
* - Method: GetLabel() [ Returns the label ]
|
|
28
|
+
* - CreateItems( targetSpecialCombo ) [ Add all items in the special combo ]
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
var FCKToolbarSpecialCombo = function()
|
|
32
|
+
{
|
|
33
|
+
this.SourceView = false ;
|
|
34
|
+
this.ContextSensitive = true ;
|
|
35
|
+
this._LastValue = null ;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
function FCKToolbarSpecialCombo_OnSelect( itemId, item )
|
|
40
|
+
{
|
|
41
|
+
FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).Execute( itemId, item ) ;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
FCKToolbarSpecialCombo.prototype.Create = function( targetElement )
|
|
45
|
+
{
|
|
46
|
+
this._Combo = new FCKSpecialCombo( this.GetLabel(), this.FieldWidth, this.PanelWidth, this.PanelMaxHeight, FCKBrowserInfo.IsIE ? window : FCKTools.GetElementWindow( targetElement ).parent ) ;
|
|
47
|
+
|
|
48
|
+
/*
|
|
49
|
+
this._Combo.FieldWidth = this.FieldWidth != null ? this.FieldWidth : 100 ;
|
|
50
|
+
this._Combo.PanelWidth = this.PanelWidth != null ? this.PanelWidth : 150 ;
|
|
51
|
+
this._Combo.PanelMaxHeight = this.PanelMaxHeight != null ? this.PanelMaxHeight : 150 ;
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
//this._Combo.Command.Name = this.Command.Name;
|
|
55
|
+
// this._Combo.Label = this.Label ;
|
|
56
|
+
this._Combo.Tooltip = this.Tooltip ;
|
|
57
|
+
this._Combo.Style = this.Style ;
|
|
58
|
+
|
|
59
|
+
this.CreateItems( this._Combo ) ;
|
|
60
|
+
|
|
61
|
+
this._Combo.Create( targetElement ) ;
|
|
62
|
+
|
|
63
|
+
this._Combo.CommandName = this.CommandName ;
|
|
64
|
+
|
|
65
|
+
this._Combo.OnSelect = FCKToolbarSpecialCombo_OnSelect ;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function FCKToolbarSpecialCombo_RefreshActiveItems( combo, value )
|
|
69
|
+
{
|
|
70
|
+
combo.DeselectAll() ;
|
|
71
|
+
combo.SelectItem( value ) ;
|
|
72
|
+
combo.SetLabelById( value ) ;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
FCKToolbarSpecialCombo.prototype.RefreshState = function()
|
|
76
|
+
{
|
|
77
|
+
// Gets the actual state.
|
|
78
|
+
var eState ;
|
|
79
|
+
|
|
80
|
+
// if ( FCK.EditMode == FCK_EDITMODE_SOURCE && ! this.SourceView )
|
|
81
|
+
// eState = FCK_TRISTATE_DISABLED ;
|
|
82
|
+
// else
|
|
83
|
+
// {
|
|
84
|
+
var sValue = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetState() ;
|
|
85
|
+
|
|
86
|
+
// FCKDebug.Output( 'RefreshState of Special Combo "' + this.TypeOf + '" - State: ' + sValue ) ;
|
|
87
|
+
|
|
88
|
+
if ( sValue != FCK_TRISTATE_DISABLED )
|
|
89
|
+
{
|
|
90
|
+
eState = FCK_TRISTATE_ON ;
|
|
91
|
+
|
|
92
|
+
if ( this.RefreshActiveItems )
|
|
93
|
+
this.RefreshActiveItems( this._Combo, sValue ) ;
|
|
94
|
+
else
|
|
95
|
+
{
|
|
96
|
+
if ( this._LastValue != sValue )
|
|
97
|
+
{
|
|
98
|
+
this._LastValue = sValue ;
|
|
99
|
+
FCKToolbarSpecialCombo_RefreshActiveItems( this._Combo, sValue ) ;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else
|
|
104
|
+
eState = FCK_TRISTATE_DISABLED ;
|
|
105
|
+
// }
|
|
106
|
+
|
|
107
|
+
// If there are no state changes then do nothing and return.
|
|
108
|
+
if ( eState == this.State ) return ;
|
|
109
|
+
|
|
110
|
+
if ( eState == FCK_TRISTATE_DISABLED )
|
|
111
|
+
{
|
|
112
|
+
this._Combo.DeselectAll() ;
|
|
113
|
+
this._Combo.SetLabel( '' ) ;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Sets the actual state.
|
|
117
|
+
this.State = eState ;
|
|
118
|
+
|
|
119
|
+
// Updates the graphical state.
|
|
120
|
+
this._Combo.SetEnabled( eState != FCK_TRISTATE_DISABLED ) ;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
FCKToolbarSpecialCombo.prototype.Enable = function()
|
|
124
|
+
{
|
|
125
|
+
this.RefreshState() ;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
FCKToolbarSpecialCombo.prototype.Disable = function()
|
|
129
|
+
{
|
|
130
|
+
this.State = FCK_TRISTATE_DISABLED ;
|
|
131
|
+
this._Combo.DeselectAll() ;
|
|
132
|
+
this._Combo.SetLabel( '' ) ;
|
|
133
|
+
this._Combo.SetEnabled( false ) ;
|
|
134
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
|
3
|
+
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
|
4
|
+
*
|
|
5
|
+
* == BEGIN LICENSE ==
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the terms of any of the following licenses at your
|
|
8
|
+
* choice:
|
|
9
|
+
*
|
|
10
|
+
* - GNU General Public License Version 2 or later (the "GPL")
|
|
11
|
+
* http://www.gnu.org/licenses/gpl.html
|
|
12
|
+
*
|
|
13
|
+
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
|
14
|
+
* http://www.gnu.org/licenses/lgpl.html
|
|
15
|
+
*
|
|
16
|
+
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
|
17
|
+
* http://www.mozilla.org/MPL/MPL-1.1.html
|
|
18
|
+
*
|
|
19
|
+
* == END LICENSE ==
|
|
20
|
+
*
|
|
21
|
+
* FCKToolbarPanelButton Class: Handles the Fonts combo selector.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
var FCKToolbarStyleCombo = function( tooltip, style )
|
|
25
|
+
{
|
|
26
|
+
this.CommandName = 'Style' ;
|
|
27
|
+
this.Label = this.GetLabel() ;
|
|
28
|
+
this.Tooltip = tooltip ? tooltip : this.Label ;
|
|
29
|
+
this.Style = style ? style : FCK_TOOLBARITEM_ICONTEXT ;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Inherit from FCKToolbarSpecialCombo.
|
|
33
|
+
FCKToolbarStyleCombo.prototype = new FCKToolbarSpecialCombo ;
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
FCKToolbarStyleCombo.prototype.GetLabel = function()
|
|
37
|
+
{
|
|
38
|
+
return FCKLang.Style ;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
FCKToolbarStyleCombo.prototype.CreateItems = function( targetSpecialCombo )
|
|
42
|
+
{
|
|
43
|
+
var oTargetDoc = targetSpecialCombo._Panel.Document ;
|
|
44
|
+
|
|
45
|
+
// Add the Editor Area CSS to the panel so the style classes are previewed correctly.
|
|
46
|
+
FCKTools.AppendStyleSheet( oTargetDoc, FCKConfig.ToolbarComboPreviewCSS ) ;
|
|
47
|
+
oTargetDoc.body.className += ' ForceBaseFont' ;
|
|
48
|
+
|
|
49
|
+
// Add ID and Class to the body
|
|
50
|
+
if ( FCKConfig.BodyId && FCKConfig.BodyId.length > 0 )
|
|
51
|
+
oTargetDoc.body.id = FCKConfig.BodyId ;
|
|
52
|
+
if ( FCKConfig.BodyClass && FCKConfig.BodyClass.length > 0 )
|
|
53
|
+
oTargetDoc.body.className += ' ' + FCKConfig.BodyClass ;
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
// For some reason Gecko is blocking inside the "RefreshVisibleItems" function.
|
|
57
|
+
// The problem is present only in old versions
|
|
58
|
+
if ( !( FCKBrowserInfo.IsGecko && FCKBrowserInfo.IsGecko10 ) )
|
|
59
|
+
targetSpecialCombo.OnBeforeClick = this.RefreshVisibleItems ;
|
|
60
|
+
|
|
61
|
+
// Add the styles to the special combo.
|
|
62
|
+
var aCommandStyles = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).Styles ;
|
|
63
|
+
for ( var s in aCommandStyles )
|
|
64
|
+
{
|
|
65
|
+
var oStyle = aCommandStyles[s] ;
|
|
66
|
+
var oItem ;
|
|
67
|
+
|
|
68
|
+
if ( oStyle.IsObjectElement )
|
|
69
|
+
oItem = targetSpecialCombo.AddItem( s, s ) ;
|
|
70
|
+
else
|
|
71
|
+
oItem = targetSpecialCombo.AddItem( s, oStyle.GetOpenerTag() + s + oStyle.GetCloserTag() ) ;
|
|
72
|
+
|
|
73
|
+
oItem.Style = oStyle ;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
FCKToolbarStyleCombo.prototype.RefreshActiveItems = function( targetSpecialCombo )
|
|
78
|
+
{
|
|
79
|
+
// Clear the actual selection.
|
|
80
|
+
targetSpecialCombo.DeselectAll() ;
|
|
81
|
+
|
|
82
|
+
// Get the active styles.
|
|
83
|
+
var aStyles = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetActiveStyles() ;
|
|
84
|
+
|
|
85
|
+
if ( aStyles.length > 0 )
|
|
86
|
+
{
|
|
87
|
+
// Select the active styles in the combo.
|
|
88
|
+
for ( var i = 0 ; i < aStyles.length ; i++ )
|
|
89
|
+
targetSpecialCombo.SelectItem( aStyles[i].Name ) ;
|
|
90
|
+
|
|
91
|
+
// Set the combo label to the first style in the collection.
|
|
92
|
+
targetSpecialCombo.SetLabelById( aStyles[0].Name ) ;
|
|
93
|
+
}
|
|
94
|
+
else
|
|
95
|
+
targetSpecialCombo.SetLabel('') ;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
FCKToolbarStyleCombo.prototype.RefreshVisibleItems = function( targetSpecialCombo )
|
|
99
|
+
{
|
|
100
|
+
if ( FCKSelection.GetType() == 'Control' )
|
|
101
|
+
var sTagName = FCKSelection.GetSelectedElement().tagName ;
|
|
102
|
+
|
|
103
|
+
for ( var i in targetSpecialCombo.Items )
|
|
104
|
+
{
|
|
105
|
+
var oItem = targetSpecialCombo.Items[i] ;
|
|
106
|
+
if ( ( sTagName && oItem.Style.Element == sTagName ) || ( ! sTagName && ! oItem.Style.IsObjectElement ) )
|
|
107
|
+
oItem.style.display = '' ;
|
|
108
|
+
else
|
|
109
|
+
oItem.style.display = 'none' ; // For some reason Gecko is blocking here.
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
|
3
|
+
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
|
|
4
|
+
*
|
|
5
|
+
* == BEGIN LICENSE ==
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the terms of any of the following licenses at your
|
|
8
|
+
* choice:
|
|
9
|
+
*
|
|
10
|
+
* - GNU General Public License Version 2 or later (the "GPL")
|
|
11
|
+
* http://www.gnu.org/licenses/gpl.html
|
|
12
|
+
*
|
|
13
|
+
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
|
|
14
|
+
* http://www.gnu.org/licenses/lgpl.html
|
|
15
|
+
*
|
|
16
|
+
* - Mozilla Public License Version 1.1 or later (the "MPL")
|
|
17
|
+
* http://www.mozilla.org/MPL/MPL-1.1.html
|
|
18
|
+
*
|
|
19
|
+
* == END LICENSE ==
|
|
20
|
+
*
|
|
21
|
+
* This class partially implements the W3C DOM Range for browser that don't
|
|
22
|
+
* support the standards (like IE):
|
|
23
|
+
* http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
var FCKW3CRange = function( parentDocument )
|
|
27
|
+
{
|
|
28
|
+
this._Document = parentDocument ;
|
|
29
|
+
|
|
30
|
+
this.startContainer = null ;
|
|
31
|
+
this.startOffset = null ;
|
|
32
|
+
this.endContainer = null ;
|
|
33
|
+
this.endOffset = null ;
|
|
34
|
+
this.collapsed = true ;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
FCKW3CRange.CreateRange = function( parentDocument )
|
|
38
|
+
{
|
|
39
|
+
// We could opt to use the Range implentation of the browsers. The problem
|
|
40
|
+
// is that every browser have different bugs on their implementations,
|
|
41
|
+
// mostly related to different interpretations of the W3C specifications.
|
|
42
|
+
// So, for now, let's use our implementation and pray for browsers fixings
|
|
43
|
+
// soon. Otherwise will go crazy on trying to find out workarounds.
|
|
44
|
+
/*
|
|
45
|
+
// Get the browser implementation of the range, if available.
|
|
46
|
+
if ( parentDocument.createRange )
|
|
47
|
+
{
|
|
48
|
+
var range = parentDocument.createRange() ;
|
|
49
|
+
if ( typeof( range.startContainer ) != 'undefined' )
|
|
50
|
+
return range ;
|
|
51
|
+
}
|
|
52
|
+
*/
|
|
53
|
+
return new FCKW3CRange( parentDocument ) ;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
FCKW3CRange.CreateFromRange = function( parentDocument, sourceRange )
|
|
57
|
+
{
|
|
58
|
+
var range = FCKW3CRange.CreateRange( parentDocument ) ;
|
|
59
|
+
range.setStart( sourceRange.startContainer, sourceRange.startOffset ) ;
|
|
60
|
+
range.setEnd( sourceRange.endContainer, sourceRange.endOffset ) ;
|
|
61
|
+
return range ;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
FCKW3CRange.prototype =
|
|
65
|
+
{
|
|
66
|
+
|
|
67
|
+
_UpdateCollapsed : function()
|
|
68
|
+
{
|
|
69
|
+
this.collapsed = ( this.startContainer == this.endContainer && this.startOffset == this.endOffset ) ;
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
// W3C requires a check for the new position. If it is after the end
|
|
73
|
+
// boundary, the range should be collapsed to the new start. It seams we
|
|
74
|
+
// will not need this check for our use of this class so we can ignore it for now.
|
|
75
|
+
setStart : function( refNode, offset )
|
|
76
|
+
{
|
|
77
|
+
this.startContainer = refNode ;
|
|
78
|
+
this.startOffset = offset ;
|
|
79
|
+
|
|
80
|
+
if ( !this.endContainer )
|
|
81
|
+
{
|
|
82
|
+
this.endContainer = refNode ;
|
|
83
|
+
this.endOffset = offset ;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
this._UpdateCollapsed() ;
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
// W3C requires a check for the new position. If it is before the start
|
|
90
|
+
// boundary, the range should be collapsed to the new end. It seams we
|
|
91
|
+
// will not need this check for our use of this class so we can ignore it for now.
|
|
92
|
+
setEnd : function( refNode, offset )
|
|
93
|
+
{
|
|
94
|
+
this.endContainer = refNode ;
|
|
95
|
+
this.endOffset = offset ;
|
|
96
|
+
|
|
97
|
+
if ( !this.startContainer )
|
|
98
|
+
{
|
|
99
|
+
this.startContainer = refNode ;
|
|
100
|
+
this.startOffset = offset ;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
this._UpdateCollapsed() ;
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
setStartAfter : function( refNode )
|
|
107
|
+
{
|
|
108
|
+
this.setStart( refNode.parentNode, FCKDomTools.GetIndexOf( refNode ) + 1 ) ;
|
|
109
|
+
},
|
|
110
|
+
|
|
111
|
+
setStartBefore : function( refNode )
|
|
112
|
+
{
|
|
113
|
+
this.setStart( refNode.parentNode, FCKDomTools.GetIndexOf( refNode ) ) ;
|
|
114
|
+
},
|
|
115
|
+
|
|
116
|
+
setEndAfter : function( refNode )
|
|
117
|
+
{
|
|
118
|
+
this.setEnd( refNode.parentNode, FCKDomTools.GetIndexOf( refNode ) + 1 ) ;
|
|
119
|
+
},
|
|
120
|
+
|
|
121
|
+
setEndBefore : function( refNode )
|
|
122
|
+
{
|
|
123
|
+
this.setEnd( refNode.parentNode, FCKDomTools.GetIndexOf( refNode ) ) ;
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
collapse : function( toStart )
|
|
127
|
+
{
|
|
128
|
+
if ( toStart )
|
|
129
|
+
{
|
|
130
|
+
this.endContainer = this.startContainer ;
|
|
131
|
+
this.endOffset = this.startOffset ;
|
|
132
|
+
}
|
|
133
|
+
else
|
|
134
|
+
{
|
|
135
|
+
this.startContainer = this.endContainer ;
|
|
136
|
+
this.startOffset = this.endOffset ;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
this.collapsed = true ;
|
|
140
|
+
},
|
|
141
|
+
|
|
142
|
+
selectNodeContents : function( refNode )
|
|
143
|
+
{
|
|
144
|
+
this.setStart( refNode, 0 ) ;
|
|
145
|
+
this.setEnd( refNode, refNode.nodeType == 3 ? refNode.data.length : refNode.childNodes.length ) ;
|
|
146
|
+
},
|
|
147
|
+
|
|
148
|
+
insertNode : function( newNode )
|
|
149
|
+
{
|
|
150
|
+
var startContainer = this.startContainer ;
|
|
151
|
+
var startOffset = this.startOffset ;
|
|
152
|
+
|
|
153
|
+
// If we are in a text node.
|
|
154
|
+
if ( startContainer.nodeType == 3 )
|
|
155
|
+
{
|
|
156
|
+
startContainer.splitText( startOffset ) ;
|
|
157
|
+
|
|
158
|
+
// Check if it is necessary to update the end boundary.
|
|
159
|
+
if ( startContainer == this.endContainer )
|
|
160
|
+
this.setEnd( startContainer.nextSibling, this.endOffset - this.startOffset ) ;
|
|
161
|
+
|
|
162
|
+
// Insert the new node it after the text node.
|
|
163
|
+
FCKDomTools.InsertAfterNode( startContainer, newNode ) ;
|
|
164
|
+
|
|
165
|
+
return ;
|
|
166
|
+
}
|
|
167
|
+
else
|
|
168
|
+
{
|
|
169
|
+
// Simply insert the new node before the current start node.
|
|
170
|
+
startContainer.insertBefore( newNode, startContainer.childNodes[ startOffset ] || null ) ;
|
|
171
|
+
|
|
172
|
+
// Check if it is necessary to update the end boundary.
|
|
173
|
+
if ( startContainer == this.endContainer )
|
|
174
|
+
{
|
|
175
|
+
this.endOffset++ ;
|
|
176
|
+
this.collapsed = false ;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
|
|
181
|
+
deleteContents : function()
|
|
182
|
+
{
|
|
183
|
+
if ( this.collapsed )
|
|
184
|
+
return ;
|
|
185
|
+
|
|
186
|
+
this._ExecContentsAction( 0 ) ;
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
extractContents : function()
|
|
190
|
+
{
|
|
191
|
+
var docFrag = new FCKDocumentFragment( this._Document ) ;
|
|
192
|
+
|
|
193
|
+
if ( !this.collapsed )
|
|
194
|
+
this._ExecContentsAction( 1, docFrag ) ;
|
|
195
|
+
|
|
196
|
+
return docFrag ;
|
|
197
|
+
},
|
|
198
|
+
|
|
199
|
+
// The selection may be lost when clonning (due to the splitText() call).
|
|
200
|
+
cloneContents : function()
|
|
201
|
+
{
|
|
202
|
+
var docFrag = new FCKDocumentFragment( this._Document ) ;
|
|
203
|
+
|
|
204
|
+
if ( !this.collapsed )
|
|
205
|
+
this._ExecContentsAction( 2, docFrag ) ;
|
|
206
|
+
|
|
207
|
+
return docFrag ;
|
|
208
|
+
},
|
|
209
|
+
|
|
210
|
+
_ExecContentsAction : function( action, docFrag )
|
|
211
|
+
{
|
|
212
|
+
var startNode = this.startContainer ;
|
|
213
|
+
var endNode = this.endContainer ;
|
|
214
|
+
|
|
215
|
+
var startOffset = this.startOffset ;
|
|
216
|
+
var endOffset = this.endOffset ;
|
|
217
|
+
|
|
218
|
+
var removeStartNode = false ;
|
|
219
|
+
var removeEndNode = false ;
|
|
220
|
+
|
|
221
|
+
// Check the start and end nodes and make the necessary removals or changes.
|
|
222
|
+
|
|
223
|
+
// Start from the end, otherwise DOM mutations (splitText) made in the
|
|
224
|
+
// start boundary may interfere on the results here.
|
|
225
|
+
|
|
226
|
+
// For text containers, we must simply split the node and point to the
|
|
227
|
+
// second part. The removal will be handled by the rest of the code .
|
|
228
|
+
if ( endNode.nodeType == 3 )
|
|
229
|
+
endNode = endNode.splitText( endOffset ) ;
|
|
230
|
+
else
|
|
231
|
+
{
|
|
232
|
+
// If the end container has children and the offset is pointing
|
|
233
|
+
// to a child, then we should start from it.
|
|
234
|
+
if ( endNode.childNodes.length > 0 )
|
|
235
|
+
{
|
|
236
|
+
// If the offset points after the last node.
|
|
237
|
+
if ( endOffset > endNode.childNodes.length - 1 )
|
|
238
|
+
{
|
|
239
|
+
// Let's create a temporary node and mark it for removal.
|
|
240
|
+
endNode = FCKDomTools.InsertAfterNode( endNode.lastChild, this._Document.createTextNode('') ) ;
|
|
241
|
+
removeEndNode = true ;
|
|
242
|
+
}
|
|
243
|
+
else
|
|
244
|
+
endNode = endNode.childNodes[ endOffset ] ;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// For text containers, we must simply split the node. The removal will
|
|
249
|
+
// be handled by the rest of the code .
|
|
250
|
+
if ( startNode.nodeType == 3 )
|
|
251
|
+
{
|
|
252
|
+
startNode.splitText( startOffset ) ;
|
|
253
|
+
|
|
254
|
+
// In cases the end node is the same as the start node, the above
|
|
255
|
+
// splitting will also split the end, so me must move the end to
|
|
256
|
+
// the second part of the split.
|
|
257
|
+
if ( startNode == endNode )
|
|
258
|
+
endNode = startNode.nextSibling ;
|
|
259
|
+
}
|
|
260
|
+
else
|
|
261
|
+
{
|
|
262
|
+
// If the start container has children and the offset is pointing
|
|
263
|
+
// to a child, then we should start from its previous sibling.
|
|
264
|
+
if ( startNode.childNodes.length > 0 && startOffset <= startNode.childNodes.length - 1 )
|
|
265
|
+
{
|
|
266
|
+
// If the offset points to the first node, we don't have a
|
|
267
|
+
// sibling, so let's use the first one, but mark it for removal.
|
|
268
|
+
if ( startOffset == 0 )
|
|
269
|
+
{
|
|
270
|
+
// Let's create a temporary node and mark it for removal.
|
|
271
|
+
startNode = startNode.insertBefore( this._Document.createTextNode(''), startNode.firstChild ) ;
|
|
272
|
+
removeStartNode = true ;
|
|
273
|
+
}
|
|
274
|
+
else
|
|
275
|
+
startNode = startNode.childNodes[ startOffset ].previousSibling ;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// Get the parent nodes tree for the start and end boundaries.
|
|
280
|
+
var startParents = FCKDomTools.GetParents( startNode ) ;
|
|
281
|
+
var endParents = FCKDomTools.GetParents( endNode ) ;
|
|
282
|
+
|
|
283
|
+
// Compare them, to find the top most siblings.
|
|
284
|
+
var i, topStart, topEnd ;
|
|
285
|
+
|
|
286
|
+
for ( i = 0 ; i < startParents.length ; i++ )
|
|
287
|
+
{
|
|
288
|
+
topStart = startParents[i] ;
|
|
289
|
+
topEnd = endParents[i] ;
|
|
290
|
+
|
|
291
|
+
// The compared nodes will match until we find the top most
|
|
292
|
+
// siblings (different nodes that have the same parent).
|
|
293
|
+
// "i" will hold the index in the parants array for the top
|
|
294
|
+
// most element.
|
|
295
|
+
if ( topStart != topEnd )
|
|
296
|
+
break ;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
var clone, levelStartNode, levelClone, currentNode, currentSibling ;
|
|
300
|
+
|
|
301
|
+
if ( docFrag )
|
|
302
|
+
clone = docFrag.RootNode ;
|
|
303
|
+
|
|
304
|
+
// Remove all successive sibling nodes for every node in the
|
|
305
|
+
// startParents tree.
|
|
306
|
+
for ( var j = i ; j < startParents.length ; j++ )
|
|
307
|
+
{
|
|
308
|
+
levelStartNode = startParents[j] ;
|
|
309
|
+
|
|
310
|
+
// For Extract and Clone, we must clone this level.
|
|
311
|
+
if ( clone && levelStartNode != startNode ) // action = 0 = Delete
|
|
312
|
+
levelClone = clone.appendChild( levelStartNode.cloneNode( levelStartNode == startNode ) ) ;
|
|
313
|
+
|
|
314
|
+
currentNode = levelStartNode.nextSibling ;
|
|
315
|
+
|
|
316
|
+
while( currentNode )
|
|
317
|
+
{
|
|
318
|
+
// Stop processing when the current node matches a node in the
|
|
319
|
+
// endParents tree or if it is the endNode.
|
|
320
|
+
if ( currentNode == endParents[j] || currentNode == endNode )
|
|
321
|
+
break ;
|
|
322
|
+
|
|
323
|
+
// Cache the next sibling.
|
|
324
|
+
currentSibling = currentNode.nextSibling ;
|
|
325
|
+
|
|
326
|
+
// If clonning, just clone it.
|
|
327
|
+
if ( action == 2 ) // 2 = Clone
|
|
328
|
+
clone.appendChild( currentNode.cloneNode( true ) ) ;
|
|
329
|
+
else
|
|
330
|
+
{
|
|
331
|
+
// Both Delete and Extract will remove the node.
|
|
332
|
+
currentNode.parentNode.removeChild( currentNode ) ;
|
|
333
|
+
|
|
334
|
+
// When Extracting, move the removed node to the docFrag.
|
|
335
|
+
if ( action == 1 ) // 1 = Extract
|
|
336
|
+
clone.appendChild( currentNode ) ;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
currentNode = currentSibling ;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
if ( clone )
|
|
343
|
+
clone = levelClone ;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
if ( docFrag )
|
|
347
|
+
clone = docFrag.RootNode ;
|
|
348
|
+
|
|
349
|
+
// Remove all previous sibling nodes for every node in the
|
|
350
|
+
// endParents tree.
|
|
351
|
+
for ( var k = i ; k < endParents.length ; k++ )
|
|
352
|
+
{
|
|
353
|
+
levelStartNode = endParents[k] ;
|
|
354
|
+
|
|
355
|
+
// For Extract and Clone, we must clone this level.
|
|
356
|
+
if ( action > 0 && levelStartNode != endNode ) // action = 0 = Delete
|
|
357
|
+
levelClone = clone.appendChild( levelStartNode.cloneNode( levelStartNode == endNode ) ) ;
|
|
358
|
+
|
|
359
|
+
// The processing of siblings may have already been done by the parent.
|
|
360
|
+
if ( !startParents[k] || levelStartNode.parentNode != startParents[k].parentNode )
|
|
361
|
+
{
|
|
362
|
+
currentNode = levelStartNode.previousSibling ;
|
|
363
|
+
|
|
364
|
+
while( currentNode )
|
|
365
|
+
{
|
|
366
|
+
// Stop processing when the current node matches a node in the
|
|
367
|
+
// startParents tree or if it is the startNode.
|
|
368
|
+
if ( currentNode == startParents[k] || currentNode == startNode )
|
|
369
|
+
break ;
|
|
370
|
+
|
|
371
|
+
// Cache the next sibling.
|
|
372
|
+
currentSibling = currentNode.previousSibling ;
|
|
373
|
+
|
|
374
|
+
// If clonning, just clone it.
|
|
375
|
+
if ( action == 2 ) // 2 = Clone
|
|
376
|
+
clone.insertBefore( currentNode.cloneNode( true ), clone.firstChild ) ;
|
|
377
|
+
else
|
|
378
|
+
{
|
|
379
|
+
// Both Delete and Extract will remove the node.
|
|
380
|
+
currentNode.parentNode.removeChild( currentNode ) ;
|
|
381
|
+
|
|
382
|
+
// When Extracting, mode the removed node to the docFrag.
|
|
383
|
+
if ( action == 1 ) // 1 = Extract
|
|
384
|
+
clone.insertBefore( currentNode, clone.firstChild ) ;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
currentNode = currentSibling ;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
if ( clone )
|
|
392
|
+
clone = levelClone ;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
if ( action == 2 ) // 2 = Clone.
|
|
396
|
+
{
|
|
397
|
+
// No changes in the DOM should be done, so fix the split text (if any).
|
|
398
|
+
|
|
399
|
+
var startTextNode = this.startContainer ;
|
|
400
|
+
if ( startTextNode.nodeType == 3 )
|
|
401
|
+
{
|
|
402
|
+
startTextNode.data += startTextNode.nextSibling.data ;
|
|
403
|
+
startTextNode.parentNode.removeChild( startTextNode.nextSibling ) ;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
var endTextNode = this.endContainer ;
|
|
407
|
+
if ( endTextNode.nodeType == 3 && endTextNode.nextSibling )
|
|
408
|
+
{
|
|
409
|
+
endTextNode.data += endTextNode.nextSibling.data ;
|
|
410
|
+
endTextNode.parentNode.removeChild( endTextNode.nextSibling ) ;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
else
|
|
414
|
+
{
|
|
415
|
+
// Collapse the range.
|
|
416
|
+
|
|
417
|
+
// If a node has been partially selected, collapse the range between
|
|
418
|
+
// topStart and topEnd. Otherwise, simply collapse it to the start. (W3C specs).
|
|
419
|
+
if ( topStart && topEnd && ( startNode.parentNode != topStart.parentNode || endNode.parentNode != topEnd.parentNode ) )
|
|
420
|
+
this.setStart( topEnd.parentNode, FCKDomTools.GetIndexOf( topEnd ) ) ;
|
|
421
|
+
|
|
422
|
+
// Collapse it to the start.
|
|
423
|
+
this.collapse( true ) ;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
// Cleanup any marked node.
|
|
427
|
+
if( removeStartNode )
|
|
428
|
+
startNode.parentNode.removeChild( startNode ) ;
|
|
429
|
+
|
|
430
|
+
if( removeEndNode && endNode.parentNode )
|
|
431
|
+
endNode.parentNode.removeChild( endNode ) ;
|
|
432
|
+
},
|
|
433
|
+
|
|
434
|
+
cloneRange : function()
|
|
435
|
+
{
|
|
436
|
+
return FCKW3CRange.CreateFromRange( this._Document, this ) ;
|
|
437
|
+
},
|
|
438
|
+
|
|
439
|
+
toString : function()
|
|
440
|
+
{
|
|
441
|
+
var docFrag = this.cloneContents() ;
|
|
442
|
+
|
|
443
|
+
var tmpDiv = this._Document.createElement( 'div' ) ;
|
|
444
|
+
docFrag.AppendTo( tmpDiv ) ;
|
|
445
|
+
|
|
446
|
+
return tmpDiv.textContent || tmpDiv.innerText ;
|
|
447
|
+
}
|
|
448
|
+
} ;
|