      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