Changeset 13362

Show
Ignore:
Timestamp:
04/21/08 01:31:34 (7 months ago)
Author:
bill
Message:

CSS fixes for TextArea? and TextBox? disabled and focused modes:

  • make disabled TextBox? based widgets (like ComboBox?) have gray text, to disambiguate them from enabled states (fixes #6574).
  • make TextArea/SimpleTextArea? indicate focus with darker border, just like TextBox? based widgets (fixes #6470). Note that for TextArea? widget, _focused and _blurred where bad names for private methods, since they conflict w/the state variables used by FormWidget:setStateClass().

!strict

Location:
dijit/trunk
Files:
3 removed
10 modified

Legend:

Unmodified
Added
Removed
  • dijit/trunk/form/Textarea.js

    r13335 r13362  
    2525 
    2626        templateString: (dojo.isIE || dojo.isSafari || dojo.isFF) ? 
    27                                 ((dojo.isIE || dojo.isSafari || dojo.isFF >= 3) ? '<fieldset id="${id}" class="dijitInline dijitInputField dijitTextArea" dojoAttachPoint="styleNode" waiRole="presentation"><div dojoAttachPoint="editNode,focusNode,eventNode" dojoAttachEvent="onpaste:_changing,oncut:_changing" waiRole="textarea" style="text-decoration:none;display:block;overflow:auto;" contentEditable="true"></div>' 
     27                                ((dojo.isIE || dojo.isSafari || dojo.isFF >= 3) ? '<fieldset id="${id}" class="dijitInline" dojoAttachPoint="styleNode" waiRole="presentation"><div dojoAttachPoint="editNode,focusNode,eventNode" dojoAttachEvent="onpaste:_changing,oncut:_changing" waiRole="textarea" style="text-decoration:none;display:block;overflow:auto;" contentEditable="true"></div>' 
    2828                                        : '<span id="${id}" class="dijitReset">'+ 
    2929                                        '<iframe src="javascript:<html><head><title>${_iframeEditTitle}</title></head><body><script>var _postCreate=window.frameElement?window.frameElement.postCreate:null;if(_postCreate)_postCreate();</script></body></html>"'+ 
    30                                                         ' dojoAttachPoint="iframe,styleNode" dojoAttachEvent="onblur:_onIframeBlur" class="dijitInline dijitInputField dijitTextArea"></iframe>') 
     30                                                        ' dojoAttachPoint="iframe,styleNode,stateNode" dojoAttachEvent="onblur:_onIframeBlur" class="dijitInline dijitInputField"></iframe>') 
    3131                                + '<textarea name="${name}" value="${value}" dojoAttachPoint="formValueNode" style="display:none;"></textarea>' 
    3232                                + ((dojo.isIE || dojo.isSafari || dojo.isFF >= 3) ? '</fieldset>':'</span>') 
    33                         : '<textarea id="${id}" name="${name}" value="${value}" dojoAttachPoint="formValueNode,editNode,focusNode,styleNode" class="dijitInputField dijitTextArea">'+dojo.isFF+'</textarea>', 
     33                        : '<textarea id="${id}" name="${name}" value="${value}" dojoAttachPoint="formValueNode,editNode,focusNode,styleNode">'+dojo.isFF+'</textarea>', 
     34 
     35        baseClass: "dijitTextArea", 
    3436 
    3537        setAttribute: function(/*String*/ attr, /*anything*/ value){ 
     
    185187                        this.connect(this.eventNode, "keypress", this._onKeyPress); 
    186188                        this.connect(this.eventNode, "mousemove", this._changed); 
    187                         this.connect(this.eventNode, "focus", this._focused); 
    188                         this.connect(this.eventNode, "blur", this._blurred); 
     189                        this.connect(this.eventNode, "focus", this._focusedEventNode); 
     190                        this.connect(this.eventNode, "blur", this._blurredEventNode); 
    189191                } 
    190192                if(this.editNode){ 
     
    195197 
    196198        // event handlers, you can over-ride these in your own subclasses 
    197         _focused: function(e){ 
    198                 dojo.addClass(this.iframe||this.domNode, "dijitInputFieldFocused"); 
     199        _focusedEventNode: function(e){ 
     200                // note: this is needed when we have an iframe 
     201                this._focused = true; 
     202                this._setStateClass(); 
    199203                this._changed(e); 
    200204        }, 
    201205 
    202         _blurred: function(e){ 
    203                 dojo.removeClass(this.iframe||this.domNode, "dijitInputFieldFocused"); 
     206        _blurredEventNode: function(e){ 
     207                // note: this is needed when we have an iframe 
     208                this._focused = false; 
     209                this._setStateClass(); 
    204210                this._changed(e, true); 
    205211        }, 
  • dijit/trunk/tests/form/test_SimpleTextarea.html

    r12941 r13362  
    4343 
    4444                <div id="container" dojoType="dijit.layout.BorderContainer" style="width:500px; height:400px; border: inset gray 3px;"> 
    45                         <textarea name="textAreaN3" dojoType="dijit.form.SimpleTextarea" region="top" splitter="true" style="height: 100px;"> 
     45                        <textarea name="top" dojoType="dijit.form.SimpleTextarea" region="top" splitter="true" style="height: 100px;"> 
    4646                                This is just some text in the top region. 
    4747                        </textarea> 
    48                         <textarea name="textAreaN3" dojoType="dijit.form.SimpleTextarea" region="left" splitter="true" style="width: 200px;"> 
     48                        <textarea name="left" dojoType="dijit.form.SimpleTextarea" region="left" splitter="true" style="width: 200px;"> 
    4949                                This is just some text in the left region. 
    5050                        </textarea> 
    51                         <textarea name="textAreaN3" dojoType="dijit.form.SimpleTextarea" region="center"> 
     51                        <textarea name="center" dojoType="dijit.form.SimpleTextarea" region="center"> 
    5252                                This is just some text in the center region. 
    5353                        </textarea> 
    54                         <textarea name="textAreaN3" dojoType="dijit.form.SimpleTextarea" region="right" splitter="true" style="width: 200px;"> 
    55                                 This is just some text in the left region. 
     54                        <textarea name="right" dojoType="dijit.form.SimpleTextarea" region="right" splitter="true" style="width: 200px;"> 
     55                                This is just some text in the right region. 
    5656                        </textarea> 
    57                         <textarea name="textAreaN3" dojoType="dijit.form.SimpleTextarea" region="bottom" splitter="true" style="height: 100px;"> 
    58                                 This is just some text in the left region. 
     57                        <textarea name="bottom" dojoType="dijit.form.SimpleTextarea" region="bottom" splitter="true" style="height: 100px;"> 
     58                                This is just some text in the bottom region. 
    5959                        </textarea> 
    6060                </div> 
     61                 
     62                <script> 
     63                        function setAttr(attr, value){ 
     64                                dijit.registry.byClass('dijit.form.SimpleTextarea').forEach(function(widget){ widget.setAttribute(attr, value);}); 
     65                        } 
     66                </script> 
     67                <input type="button" onclick="setAttr('readOnly', false);" value="Remove readOnly"> 
     68                <input type="button" onclick="setAttr('readOnly', false);" value="Set readOnly"> 
     69                <input type="button" onclick="setAttr('disabled', true);" value="Disable"> 
     70                <input type="button" onclick="setAttr('disabled', false);" value="Enable"> 
    6171</body> 
    6272</html> 
  • dijit/trunk/tests/form/test_Textarea.html

    r12703 r13362  
    4848                onChange:<textarea id="ocSimple" readOnly>not fired yet!</textarea> 
    4949                <br> 
    50                 <input type="button" onclick="dijit.byId('simple').setAttribute('readOnly',false);" value="Remove readOnly"> 
    51                 <input type="button" onclick="dijit.byId('simple').setAttribute('readOnly',true);" value="Set readOnly"> 
    52                 <input type="button" onclick="dijit.byId('simple').setAttribute('disabled',true);" value="Disable"> 
    53                 <input type="button" onclick="dijit.byId('simple').setAttribute('disabled',false);" value="Enable"> 
     50                <script> 
     51                        function setAttr(attr, value){ 
     52                                dijit.registry.byClass('dijit.form.Textarea').forEach(function(widget){ widget.setAttribute(attr, value);}); 
     53                        } 
     54                </script> 
     55                <input type="button" onclick="setAttr('readOnly', false);" value="Remove readOnly"> 
     56                <input type="button" onclick="setAttr('readOnly', false);" value="Set readOnly"> 
     57                <input type="button" onclick="setAttr('disabled', true);" value="Disable"> 
     58                <input type="button" onclick="setAttr('disabled', false);" value="Enable"> 
    5459                <br> 
    5560                <textarea dojoType="dijit.form.Textarea" name="largeTextArea"> 
  • dijit/trunk/themes/dijit.css

    r13355 r13362  
    360360.dijitTextBoxFocused, 
    361361.dijitComboBoxFocused, 
    362 .dijitSpinnerFocused { 
     362.dijitSpinnerFocused, 
     363.dijitTextAreaFocused { 
    363364        /* should we display focus like we do on other browsers, or use the safari standard focus indicator?? */ 
    364365        outline: auto 5px -webkit-focus-ring-color; 
     366} 
     367.dijitTextAreaFocused div { 
     368        /* prevent dotted border on FF3 */ 
     369        outline: none !important; 
    365370} 
    366371 
  • dijit/trunk/themes/nihilo/form/Common.css

    r13288 r13362  
    4343} 
    4444 
     45.nihilo .dijitTextBoxDisabled, 
     46.nihilo .dijitComboBoxDisabled, 
     47.nihilo .dijitSpinnerDisabled, 
     48.nihilo .dijitTextAreaDisabled { 
     49        color: gray; 
     50} 
     51 
    4552.nihilo .dijitTextBoxFocused, 
    4653.nihilo .dijitComboBoxFocused, 
    47 .nihilo .dijitSpinnerFocused { 
     54.nihilo .dijitSpinnerFocused, 
     55.nihilo .dijitTextAreaFocused { 
    4856        /* input field when focused (ie: typing affects it) */ 
    4957        border-color:#b3b3b3; 
  • dijit/trunk/themes/nihilo/nihilo.css

    r13266 r13362  
    2727@import url("form/Checkbox.css"); 
    2828@import url("form/RadioButton.css"); 
    29 @import url("form/Textarea.css"); 
    3029@import url("form/Slider.css"); 
    3130@import url("Tree.css"); 
  • dijit/trunk/themes/soria/form/Common.css

    r13288 r13362  
    3333} 
    3434 
     35.soria .dijitTextBoxDisabled, 
     36.soria .dijitComboBoxDisabled, 
     37.soria .dijitSpinnerDisabled, 
     38.soria .dijitTextAreaDisabled { 
     39        color: gray; 
     40} 
     41 
    3542.soria .dijitComboBox .dijitButtonNode { 
    3643        padding: 0 0.2em; 
     
    4552.soria .dijitTextBoxFocused, 
    4653.soria .dijitComboBoxFocused, 
    47 .soria .dijitSpinnerFocused { 
     54.soria .dijitSpinnerFocused, 
     55.soria .dijitTextAreaFocused { 
    4856        /* input field when focused (ie: typing affects it) */ 
    4957        border-color:#406b9b; 
  • dijit/trunk/themes/soria/soria.css

    r13266 r13362  
    2727@import url("form/Checkbox.css"); 
    2828@import url("form/RadioButton.css"); 
    29 @import url("form/Textarea.css"); 
    3029@import url("form/Slider.css"); 
    3130@import url("Tree.css"); 
  • dijit/trunk/themes/tundra/form/Common.css

    r13332 r13362  
    2121.tundra .dijitComboBox, 
    2222.tundra .dijitSpinner, 
     23.tundra .dijitTextArea, 
    2324.tundra .dijitInlineEditor input { 
    2425        /*      For all except dijit.form.NumberSpinner:  the actual input element. 
    25                 For TextBox, ComboBox, Spinner: the table that contains the input. 
     26                For TextBox, ComboBox, Spinner: the div that contains the input. 
    2627                Otherwise the actual input element. 
    2728        */ 
     
    3031        border:1px solid #b3b3b3; 
    3132        line-height: normal; 
     33} 
     34 
     35.tundra .dijitTextBoxDisabled, 
     36.tundra .dijitComboBoxDisabled, 
     37.tundra .dijitSpinnerDisabled, 
     38.tundra .dijitTextAreaDisabled { 
     39        color: gray; 
    3240} 
    3341 
     
    4351.tundra .dijitTextBoxFocused, 
    4452.tundra .dijitComboBoxFocused, 
    45 .tundra .dijitSpinnerFocused { 
     53.tundra .dijitSpinnerFocused, 
     54.tundra .dijitTextAreaFocused { 
    4655        /* input field when focused (ie: typing affects it) */ 
    4756        border-color:#406b9b; 
  • dijit/trunk/themes/tundra/tundra.css

    r13266 r13362  
    2525@import url("form/Checkbox.css"); 
    2626@import url("form/RadioButton.css"); 
    27 @import url("form/TextArea.css"); 
    2827@import url("form/Slider.css"); 
    2928@import url("Tree.css");