OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / scripts / fckeditor2.6.6 / editor / plugins / MobileLink / fckplugin.js
1 /*\r
2  * FCKMobileLinkCommand Class: represents the "Emoji" command.\r
3  *\r
4  * LICENSE: This source file is licensed under the terms of the GNU General Public License.\r
5  *\r
6  * @package    Magic3 Framework\r
7  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>\r
8  * @copyright  Copyright 2006-2008 Magic3 Project.\r
9  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License\r
10  * @version    SVN: $Id: fckplugin.js 3480 2010-08-16 09:27:01Z fishbone $\r
11  * @link       http://www.magic3.org\r
12  */\r
13 var linkObj = new FCKDialogCommand('MobileLink', FCKLang.DlgLnkWindowTitle, FCKPlugins.Items['MobileLink'].Path + 'mobilelink.html', 400, 300);\r
14 FCKCommands.RegisterCommand('MobileLink', linkObj);\r
15 \r
16 // Emojiクラスに関数追加\r
17 linkObj.GetState = function()\r
18 {\r
19         // ソース編集モードのときは使用不可\r
20         if (FCK.EditMode != FCK_EDITMODE_WYSIWYG) return FCK_TRISTATE_DISABLED;\r
21         \r
22         if (!this._IsSelectedString()) return FCK_TRISTATE_DISABLED;\r
23         \r
24         return FCK_TRISTATE_OFF;// ツールバー上のボタンを使用可にする\r
25 }\r
26 linkObj._IsSelectedString = function()\r
27 {\r
28         if (FCKBrowserInfo.IsIE){\r
29                 return true;\r
30                 var selObj = FCK.ToolbarSet.CurrentInstance.EditorDocument.selection;\r
31                 if (selObj.type == 'Text'){\r
32                         var rangeObj = selObj.createRange();\r
33                         if (rangeObj.htmlText.length > 0) return true;\r
34                 }\r
35         } else {\r
36                 if (FCKSelection.GetType() == 'Text'){\r
37                         var selObj = FCK.EditorWindow.getSelection();\r
38                         if (selObj && selObj.anchorOffset < selObj.focusOffset) return true;\r
39                 }\r
40         }\r
41         return false;\r
42 }\r
43 \r
44 // ツールバーボタン作成\r
45 var toolbarItem = new FCKToolbarButton('MobileLink', FCKLang.InsertLinkLbl, FCKLang.InsertLink, null, false, true, 34);\r
46 FCKToolbarItems.RegisterItem('MobileLink', toolbarItem);\r
47 \r
48 // コンテキストメニュー作成\r
49 FCK.ContextMenu.RegisterListener({\r
50         AddItems : function(menu, tag, tagName)\r
51         {\r
52                 var bInsideLink = ( tagName == 'A' || FCKSelection.HasAncestorNode( 'A' ) ) ;\r
53 \r
54                 if ( bInsideLink || FCK.GetNamedCommandState( 'Unlink' ) != FCK_TRISTATE_DISABLED )\r
55                 {\r
56                         // Go up to the anchor to test its properties\r
57                         var oLink = FCKSelection.MoveToAncestorNode( 'A' ) ;\r
58                         var bIsAnchor = ( oLink && oLink.name.length > 0 && oLink.href.length == 0 ) ;\r
59                         // If it isn't a link then don't add the Link context menu\r
60                         if ( bIsAnchor )\r
61                                 return ;\r
62 \r
63                         // 既存項目をすべて削除後追加(デフォルトのリンク作成項目と二重に登録されるため)\r
64                         menu.RemoveAllItems();\r
65                         if ( bInsideLink )\r
66                                 menu.AddItem( 'MobileLink', FCKLang.EditLink            , 34 ) ;\r
67                         menu.AddItem( 'Unlink'  , FCKLang.RemoveLink    , 35 ) ;\r
68                 }\r
69         }\r
70 });\r