1 /* 2 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. 3 For licensing, see LICENSE.html or http://ckeditor.com/license 4 */ 5 6 /** 7 * @fileOverview Defines the "virtual" dialog, dialog content and dialog button 8 * definition classes. 9 */ 10 11 /** 12 * This class is not really part of the API. It just illustrates the properties 13 * that developers can use to define and create dialogs. 14 * @name CKEDITOR.dialog.dialogDefinition 15 * @constructor 16 * @example 17 * // There is no constructor for this class, the user just has to define an 18 * // object with the appropriate properties. 19 * 20 * CKEDITOR.dialog.add( 'testOnly', function( editor ) 21 * { 22 * return { 23 * title : 'Test Dialog', 24 * resizable : CKEDITOR.DIALOG_RESIZE_BOTH, 25 * minWidth : 500, 26 * minHeight : 400, 27 * contents : [ 28 * { 29 * id : 'tab1', 30 * label : 'First Tab', 31 * title : 'First Tab Title', 32 * accessKey : 'Q', 33 * elements : [ 34 * { 35 * type : 'text', 36 * label : 'Test Text 1', 37 * id : 'testText1', 38 * 'default' : 'hello world!' 39 * } 40 * ] 41 * } 42 * ] 43 * }; 44 * }); 45 */ 46 47 /** 48 * The dialog title, displayed in the dialog's header. Required. 49 * @name CKEDITOR.dialog.dialogDefinition.prototype.title 50 * @field 51 * @type String 52 * @example 53 */ 54 55 /** 56 * How the dialog can be resized, must be one of the four contents defined below. 57 * <br /><br /> 58 * <strong>CKEDITOR.DIALOG_RESIZE_NONE</strong><br /> 59 * <strong>CKEDITOR.DIALOG_RESIZE_WIDTH</strong><br /> 60 * <strong>CKEDITOR.DIALOG_RESIZE_HEIGHT</strong><br /> 61 * <strong>CKEDITOR.DIALOG_RESIZE_BOTH</strong><br /> 62 * @name CKEDITOR.dialog.dialogDefinition.prototype.resizable 63 * @field 64 * @type Number 65 * @default CKEDITOR.DIALOG_RESIZE_NONE 66 * @example 67 */ 68 69 /** 70 * The minimum width of the dialog, in pixels. 71 * @name CKEDITOR.dialog.dialogDefinition.prototype.minWidth 72 * @field 73 * @type Number 74 * @default 600 75 * @example 76 */ 77 78 /** 79 * The minimum height of the dialog, in pixels. 80 * @name CKEDITOR.dialog.dialogDefinition.prototype.minHeight 81 * @field 82 * @type Number 83 * @default 400 84 * @example 85 */ 86 87 /** 88 * The buttons in the dialog, defined as an array of 89 * {@link CKEDITOR.dialog.buttonDefinition} objects. 90 * @name CKEDITOR.dialog.dialogDefinition.prototype.buttons 91 * @field 92 * @type Array 93 * @default [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ] 94 * @example 95 */ 96 97 /** 98 * The contents in the dialog, defined as an array of 99 * {@link CKEDITOR.dialog.contentDefinition} objects. Required. 100 * @name CKEDITOR.dialog.dialogDefinition.prototype.contents 101 * @field 102 * @type Array 103 * @example 104 */ 105 106 /** 107 * The function to execute when OK is pressed. 108 * @name CKEDITOR.dialog.dialogDefinition.prototype.onOk 109 * @field 110 * @type Function 111 * @example 112 */ 113 114 /** 115 * The function to execute when Cancel is pressed. 116 * @name CKEDITOR.dialog.dialogDefinition.prototype.onCancel 117 * @field 118 * @type Function 119 * @example 120 */ 121 122 /** 123 * The function to execute when the dialog is displayed for the first time. 124 * @name CKEDITOR.dialog.dialogDefinition.prototype.onLoad 125 * @field 126 * @type Function 127 * @example 128 */ 129 130 /** 131 * This class is not really part of the API. It just illustrates the properties 132 * that developers can use to define and create dialog content pages. 133 * @name CKEDITOR.dialog.contentDefinition 134 * @constructor 135 * @example 136 * // There is no constructor for this class, the user just has to define an 137 * // object with the appropriate properties. 138 */ 139 140 /** 141 * The id of the content page. 142 * @name CKEDITOR.dialog.contentDefinition.prototype.id 143 * @field 144 * @type String 145 * @example 146 */ 147 148 /** 149 * The tab label of the content page. 150 * @name CKEDITOR.dialog.contentDefinition.prototype.label 151 * @field 152 * @type String 153 * @example 154 */ 155 156 /** 157 * The popup message of the tab label. 158 * @name CKEDITOR.dialog.contentDefinition.prototype.title 159 * @field 160 * @type String 161 * @example 162 */ 163 164 /** 165 * The CTRL hotkey for switching to the tab. 166 * @name CKEDITOR.dialog.contentDefinition.prototype.accessKey 167 * @field 168 * @type String 169 * @example 170 * contentDefinition.accessKey = 'Q'; // Switch to this page when CTRL-Q is pressed. 171 */ 172 173 /** 174 * The UI elements contained in this content page, defined as an array of 175 * {@link CKEDITOR.dialog.uiElementDefinition} objects. 176 * @name CKEDITOR.dialog.contentDefinition.prototype.elements 177 * @field 178 * @type Array 179 * @example 180 */ 181 182 /** 183 * This class is not really part of the API. It just illustrates the properties 184 * that developers can use to define and create dialog buttons. 185 * @name CKEDITOR.dialog.buttonDefinition 186 * @constructor 187 * @example 188 * // There is no constructor for this class, the user just has to define an 189 * // object with the appropriate properties. 190 */ 191 192 /** 193 * The id of the dialog button. Required. 194 * @name CKEDITOR.dialog.buttonDefinition.prototype.id 195 * @type String 196 * @field 197 * @example 198 */ 199 200 /** 201 * The label of the dialog button. Required. 202 * @name CKEDITOR.dialog.buttonDefinition.prototype.label 203 * @type String 204 * @field 205 * @example 206 */ 207 208 /** 209 * The popup message of the dialog button. 210 * @name CKEDITOR.dialog.buttonDefinition.prototype.title 211 * @type String 212 * @field 213 * @example 214 */ 215 216 /** 217 * The CTRL hotkey for the button. 218 * @name CKEDITOR.dialog.buttonDefinition.prototype.accessKey 219 * @type String 220 * @field 221 * @example 222 * exitButton.accessKey = 'X'; // Button will be pressed when user presses CTRL-X 223 */ 224 225 /** 226 * Whether the button is disabled. 227 * @name CKEDITOR.dialog.buttonDefinition.prototype.disabled 228 * @type Boolean 229 * @field 230 * @default false 231 * @example 232 */ 233 234 /** 235 * The function to execute when the button is clicked. 236 * @name CKEDITOR.dialog.buttonDefinition.prototype.onClick 237 * @type Function 238 * @field 239 * @example 240 */ 241 242 /** 243 * This class is not really part of the API. It just illustrates the properties 244 * that developers can use to define and create dialog UI elements. 245 * @name CKEDITOR.dialog.uiElementDefinition 246 * @constructor 247 * @see CKEDITOR.ui.dialog.uiElement 248 * @example 249 * // There is no constructor for this class, the user just has to define an 250 * // object with the appropriate properties. 251 */ 252 253 /** 254 * The id of the UI element. 255 * @name CKEDITOR.dialog.uiElementDefinition.prototype.id 256 * @field 257 * @type String 258 * @example 259 */ 260 261 /** 262 * The type of the UI element. Required. 263 * @name CKEDITOR.dialog.uiElementDefinition.prototype.type 264 * @field 265 * @type String 266 * @example 267 */ 268 269 /** 270 * The popup label of the UI element. 271 * @name CKEDITOR.dialog.uiElementDefinition.prototype.title 272 * @field 273 * @type String 274 * @example 275 */ 276 277 /** 278 * CSS class names to append to the UI element. 279 * @name CKEDITOR.dialog.uiElementDefinition.prototype.className 280 * @field 281 * @type String 282 * @example 283 */ 284 285 /** 286 * Inline CSS classes to append to the UI element. 287 * @name CKEDITOR.dialog.uiElementDefinition.prototype.style 288 * @field 289 * @type String 290 * @example 291 */ 292 293 /** 294 * Function to execute the first time the UI element is displayed. 295 * @name CKEDITOR.dialog.uiElementDefinition.prototype.onLoad 296 * @field 297 * @type Function 298 * @example 299 */ 300 301 /** 302 * Function to execute whenever the UI element's parent dialog is displayed. 303 * @name CKEDITOR.dialog.uiElementDefinition.prototype.onShow 304 * @field 305 * @type Function 306 * @example 307 */ 308 309 /** 310 * Function to execute whenever the UI element's parent dialog is closed. 311 * @name CKEDITOR.dialog.uiElementDefinition.prototype.onHide 312 * @field 313 * @type Function 314 * @example 315 */ 316