diff -r bf4420e9fa4d -r 2e16851ffecd ginebra/chrome/js/ActionButton.js --- a/ginebra/chrome/js/ActionButton.js Fri Jun 11 16:23:26 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -// Call ActionButton to wire an HTML button (typically an tag) to an action (QAction). -// Params: -// id - the id of the button. Ex: -// upImg - the path to the "up" image for the button. -// downImg - the path to the "down" image for the button. Note: not yet working... -// disabledImg - the path to the "disabled" image for the button. -// action - the targeted action -// -function ActionButton(id, upImg, downImg, disabledImg, action) { - this.id = id; - this.upImg = upImg; - this.downImg = downImg; - this.disabledImg = disabledImg; - this.action = action; - this.isDown = false; - - //window.chrome.alert("ActionButton"); - - // attach this object to the item as "button" for later access - // delete/cleanup existing button (if any) and attach this as button - dom = document.getElementById(this.id); - if(dom.button) { - delete dom.button; - } - dom.button = this; - - this.element = function() { - return document.getElementById(this.id); - } - - this.updateButton = function() { - //window.chrome.alert("ActionButton::updateButton " + this); - if(this.action.enabled) { - if(this.isDown) { - this.element().src = this.downImg; - } - else { - this.element().src = this.upImg; - } - } - else { - this.element().src = this.disabledImg; - } - } - - // Make sure we can find the element. - if(!this.element()) { - alert("ActionButton: element not found, " + id); - return; - } - - // -------------------------------- - - // Callback for changes in the action's state. - onActionChanged = function() { -// window.chrome.alert("ActionButton::on action changed " + -// " this=" + this + -// " action=" + this.action + -// " id=" + this.id + -// " enabled=" + this.action.enabled + -// " src=" + this.element().src); - this.updateButton(); - } - -// Commented out because onclick is not reliable. Slight movements between mouse down -// and mouse up seem to cancel the onclick. -// this.onClick = function() { -// window.chrome.alert("ActionButton::onClick: " + this); -// if(this.action.enabled) { -// this.action.trigger(); -// } -// else { -// window.chrome.alert("ActionButton::onClick: not enabled"); -// } -// } - - this.onMouseDown = function() { - //window.chrome.alert("ActionButton::onMouseDown " + this); - if(!this.isDown) { - this.isDown = true; - this.updateButton.call(this); - if((this.id == 'zoomBarBtnIn') || (this.id == 'zoomBarBtnOut') || (this.id == 'zoomIn') || (this.id == 'zoomOut')) - this.action.trigger(); - } - } - - this.onMouseUp = function() { - //window.chrome.alert("ActionButton::onMouseUp " + this); - if(this.isDown) { - this.isDown = false; - this.updateButton.call(this); - - // Trigger the action. - this.action.trigger(); - } - } - - this.onMouseOut = function() { - //window.chrome.alert("ActionButton::onMouseOut " + this); - if (this.isDown ) { - this.isDown = false; - this.updateButton.call(this); - - if((this.id == 'zoomBarBtnIn') || (this.id == 'zoomBarBtnOut') || (this.id == 'zoomIn') || (this.id == 'zoomOut')) - this.action.trigger(); - } - } - - - // Connect to the action's "changed" signal. Note: don't use bind here, causes crash in - // scope chain code (but only for first document that is loaded...). - this.action.changed.connect(createDelegate(this, onActionChanged)); - - // Set up element event handlers. - this.element().onmousedown = this.onMouseDown.bind(this); - this.element().onmouseup = this.onMouseUp.bind(this); - this.element().onmouseout = this.onMouseOut.bind(this); -// this.element().onclick = this.onClick.bind(this); - - // Set the initial state of the button. - this.updateButton(); -} -