OSCON/WRTKit/UI/ActionControl.js
author John Kern <johnk@symbian.org>
Fri, 17 Jul 2009 15:52:45 -0700
changeset 7 97dcd250e5be
permissions -rwxr-xr-x
checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     1
/*
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     2
© Copyright 2008 Nokia Corporation. All rights reserved.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     3
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     4
IMPORTANT:  The Nokia software ("WRTKit and Example Widget files") is supplied to you by Nokia
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     5
Corporation (ÒNokiaÓ) in consideration of your agreement to the following terms. Your use, installation
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     6
and/or redistribution of the WRTKit and Example Widget files constitutes acceptance of these terms. If
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     7
you do not agree with these terms, please do not use, install, or redistribute the WRTKit and Example
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     8
Widget files.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     9
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    10
In consideration of your agreement to abide by the following terms, and subject to these terms, Nokia
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    11
grants you a personal, non-exclusive license, under NokiaÕs copyrights in the WRTKit and Example
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    12
Widget files, to use, reproduce, and redistribute the WRTKit and Example files, in text form (for HTML,
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    13
CSS, or JavaScript files) or binary form (for associated images), for the sole purpose of creating S60
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    14
Widgets.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    15
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    16
If you redistribute the WRTKit and Example files, you must retain this entire notice in all such
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    17
redistributions of the WRTKit and Example files.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    18
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    19
You may not use the name, trademarks, service marks or logos of Nokia to endorse or promote products
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    20
that include the WRTKit and Example files without the prior written explicit agreement with Nokia.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    21
Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    22
Nokia herein, including but not limited to any patent rights that may be infringed by your products that
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    23
incorporate the WRTKit and Example files or by other works in which the WRTKit and Example files
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    24
may be incorporated.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    25
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    26
The WRTKit and Example files are provided on an "AS IS" basis.  NOKIA MAKES NO
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    27
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    28
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    29
PARTICULAR PURPOSE, REGARDING THE EXAMPLES OR ITS USE AND OPERATION
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    30
ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    31
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    32
IN NO EVENT SHALL NOKIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    33
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    34
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    35
INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, AND/OR
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    36
DISTRIBUTION OF THE EXAMPLES, HOWEVER CAUSED AND WHETHER UNDER THEORY
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    37
OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE,
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    38
EVEN IF NOKIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    39
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    40
*/
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    41
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    42
///////////////////////////////////////////////////////////////////////////////
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    43
// The ActionControl class is an abstract base class for action controls like
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    44
// buttons. Don't use ActionControl directly.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    45
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    46
// Constructor.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    47
function ActionControl(id, caption) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    48
    if (id != UI_NO_INIT_ID) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    49
        this.init(id, caption);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    50
    }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    51
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    52
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    53
// ActionControl inherits from Control.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    54
ActionControl.prototype = new Control(UI_NO_INIT_ID);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    55
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    56
// Reference to the button element.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    57
ActionControl.prototype.buttonElement = null;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    58
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    59
// Reference to the link element.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    60
ActionControl.prototype.linkElement = null;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    61
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    62
// Enabled status.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    63
ActionControl.prototype.enabled = false;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    64
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    65
// Initializer - called from constructor.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    66
ActionControl.prototype.init = function(id, caption) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    67
    uiLogger.debug("ActionControl.init(" + id + ", " + caption + ")");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    68
    
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    69
    // call superclass initializer
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    70
    Control.prototype.init.call(this, id, caption);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    71
    
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    72
    // the control defaults to enabled
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    73
    this.enabled = true;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    74
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    75
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    76
// Common event listeners hookup function called from subclasses.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    77
ActionControl.prototype.bindActionControlListeners = function() {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    78
    var self = this;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    79
    this.linkElement.addEventListener("focus", function() { self.focusStateChanged(true); }, false);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    80
    this.linkElement.addEventListener("blur", function() { self.focusStateChanged(false); }, false);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    81
    this.buttonElement.addEventListener("mouseover", function() { self.hoverStateChanged(true); }, false);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    82
    this.buttonElement.addEventListener("mouseout", function() { self.hoverStateChanged(false); }, false);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    83
    this.buttonElement.addEventListener("mousedown", function(event) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    84
                                                       self.controlClicked(event);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    85
                                                       event.stopPropagation();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    86
                                                       event.preventDefault();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    87
                                                   }, true);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    88
    this.buttonElement.addEventListener("keydown", function(event) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    89
                                                    // center and enter trigger the action
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    90
                                                    if (event.keyCode == 0 || event.keyCode == 13) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    91
                                                        self.controlClicked();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    92
                                                        event.stopPropagation();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    93
                                                        event.preventDefault();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    94
                                                    }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    95
                                                 }, true);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    96
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    97
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    98
// Returns the enabled state.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    99
ActionControl.prototype.isEnabled = function() {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   100
    return this.enabled;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   101
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   102
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   103
// Sets the enabled state.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   104
ActionControl.prototype.setEnabled = function(enabled) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   105
    uiLogger.debug("ActionControl.setEnabled(" + enabled + ")");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   106
    // switch the state
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   107
    this.enabled = enabled;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   108
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   109
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   110
// Sets the focused state for the control.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   111
// Note: This may not always succeed.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   112
ActionControl.prototype.setFocused = function(focused) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   113
    uiLogger.debug("ActionControl.setFocused(" + focused + ")");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   114
    if (this.enabled) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   115
        if (focused) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   116
            this.linkElement.focus();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   117
        } else {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   118
            this.linkElement.blur();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   119
        }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   120
    }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   121
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   122
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   123
// Callback for clicks.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   124
ActionControl.prototype.controlClicked = function(event) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   125
    uiLogger.debug("ActionControl.controlClicked()");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   126
    
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   127
    // if we're enabled then a click results in an action performed event
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   128
    if (this.enabled) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   129
        // focus when clicked
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   130
        if (!this.focused) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   131
            this.linkElement.focus();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   132
        }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   133
        
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   134
        // notify event listeners
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   135
        this.actionPerformed(event);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   136
    }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   137
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   138
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   139
// Callback for action performed events.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   140
ActionControl.prototype.actionPerformed = function(event) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   141
    uiLogger.debug("ActionControl.actionPerformed()");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   142
    // notify event listeners
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   143
    this.fireEvent(this.createEvent("ActionPerformed", event));
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   144
}