Reduced code needed for keybindings and button events

git-svn-id: http://svg-edit.googlecode.com/svn/trunk@406 eee81c28-f429-11dd-99c0-75d572ba1ddd
master
Alexis Deveria 2009-08-18 13:50:18 +00:00
parent dc32ca8d53
commit 317ba50b9a
1 changed files with 58 additions and 60 deletions

View File

@ -592,42 +592,29 @@ function svg_edit_setup() {
// added these event handlers for all the push buttons so they // added these event handlers for all the push buttons so they
// behave more like buttons being pressed-in and not images // behave more like buttons being pressed-in and not images
$('#tool_clear').mousedown(function(){$('#tool_clear').addClass('tool_button_current');}); function setPushButtons() {
$('#tool_clear').mouseup(function(){$('#tool_clear').removeClass('tool_button_current');}); var toolnames = ['clear','save','source','delete','delete_multi','paste','clone','clone_multi','move_top','move_bottom'];
$('#tool_clear').mouseout(function(){$('#tool_clear').removeClass('tool_button_current');}); var all_tools = '';
$('#tool_save').mousedown(function(){$('#tool_save').addClass('tool_button_current');}); var cur_class = 'tool_button_current';
$('#tool_save').mouseup(function(){$('#tool_save').removeClass('tool_button_current');});
$('#tool_save').mouseout(function(){$('#tool_save').removeClass('tool_button_current');}); $.each(toolnames, function(i,item) {
$('#tool_source').mousedown(function(){$('#tool_source').addClass('tool_button_current');}); all_tools += '#tool_' + item + (i==toolnames.length-1?',':'');
$('#tool_source').mouseup(function(){$('#tool_source').removeClass('tool_button_current');}); });
$('#tool_source').mouseout(function(){$('#tool_source').removeClass('tool_button_current');});
$('#tool_delete').mousedown(function(){$('#tool_delete').addClass('tool_button_current');}); $(all_tools).mousedown(function() {
$('#tool_delete').mouseup(function(){$('#tool_delete').removeClass('tool_button_current');}); $(this).addClass(cur_class);
$('#tool_delete').mouseout(function(){$('#tool_delete').removeClass('tool_button_current');}); }).bind('mousedown mouseout', function() {
$('#tool_delete_multi').mousedown(function(){$('#tool_delete_multi').addClass('tool_button_current');}); $(this).removeClass(cur_class);
$('#tool_delete_multi').mouseup(function(){$('#tool_delete_multi').removeClass('tool_button_current');}); });
$('#tool_delete_multi').mouseout(function(){$('#tool_delete_multi').removeClass('tool_button_current');});
$('#tool_undo').mousedown(function(){ if (!$('#tool_undo').hasClass('tool_button_disabled')) $('#tool_undo').addClass('tool_button_current');}); $('#tool_undo, #tool_redo').mousedown(function(){
$('#tool_undo').mouseup(function(){$('#tool_undo').removeClass('tool_button_current');}); if (!$(this).hasClass('tool_button_disabled')) $(this).addClass(cur_class);
$('#tool_undo').mouseout(function(){$('#tool_undo').removeClass('tool_button_current');}); }).bind('mousedown mouseout',function(){
$('#tool_redo').mousedown(function(){ if (!$('#tool_redo').hasClass('tool_button_disabled')) $('#tool_redo').addClass('tool_button_current');}); $(this).removeClass(cur_class);}
$('#tool_redo').mouseup(function(){$('#tool_redo').removeClass('tool_button_current');}); );
$('#tool_redo').mouseout(function(){$('#tool_redo').removeClass('tool_button_current');}); }
$('#tool_paste').mousedown(function(){$('#tool_paste').addClass('tool_button_current');});
$('#tool_paste').mouseup(function(){$('#tool_paste').removeClass('tool_button_current');}); setPushButtons();
$('#tool_paste').mouseout(function(){$('#tool_paste').removeClass('tool_button_current');});
$('#tool_clone').mousedown(function(){$('#tool_clone').addClass('tool_button_current');});
$('#tool_clone').mouseup(function(){$('#tool_clone').removeClass('tool_button_current');});
$('#tool_clone').mouseout(function(){$('#tool_clone').removeClass('tool_button_current');});
$('#tool_clone_multi').mousedown(function(){$('#tool_clone').addClass('tool_button_current');});
$('#tool_clone_multi').mouseup(function(){$('#tool_clone').removeClass('tool_button_current');});
$('#tool_clone_multi').mouseout(function(){$('#tool_clone').removeClass('tool_button_current');});
$('#tool_move_top').mousedown(function(){$('#tool_move_top').addClass('tool_button_current');});
$('#tool_move_top').mouseup(function(){$('#tool_move_top').removeClass('tool_button_current');});
$('#tool_move_top').mouseout(function(){$('#tool_move_top').removeClass('tool_button_current');});
$('#tool_move_bottom').mousedown(function(){$('#tool_move_bottom').addClass('tool_button_current');});
$('#tool_move_bottom').mouseup(function(){$('#tool_move_bottom').removeClass('tool_button_current');});
$('#tool_move_bottom').mouseout(function(){$('#tool_move_bottom').removeClass('tool_button_current');});
// switch modifier key in tooltips if mac // switch modifier key in tooltips if mac
// NOTE: This code is not used yet until I can figure out how to successfully bind ctrl/meta // NOTE: This code is not used yet until I can figure out how to successfully bind ctrl/meta
@ -645,30 +632,41 @@ function svg_edit_setup() {
} }
// do keybindings using jquery-hotkeys plugin // do keybindings using jquery-hotkeys plugin
$(document).bind('keydown', {combi:'1', disableInInput: true}, clickSelect); function setKeyBindings() {
$(document).bind('keydown', {combi:'2', disableInInput: true}, clickPath); var keys = [
$(document).bind('keydown', {combi:'3', disableInInput: true}, clickLine); ['1', clickSelect],
$(document).bind('keydown', {combi:'Shift+4', disableInInput: true}, clickSquare); ['2', clickPath],
$(document).bind('keydown', {combi:'4', disableInInput: true}, clickRect); ['3', clickLine],
$(document).bind('keydown', {combi:'Shift+5', disableInInput: true}, clickCircle); ['Shift+4', clickSquare],
$(document).bind('keydown', {combi:'5', disableInInput: true}, clickEllipse); ['4', clickRect],
$(document).bind('keydown', {combi:'6', disableInInput: true}, clickText); ['Shift+5', clickCircle],
$(document).bind('keydown', {combi:'7', disableInInput: true}, clickPoly); ['5', clickEllipse],
$(document).bind('keydown', {combi:modKey+'N', disableInInput: true}, function(evt){clickClear();evt.preventDefault();}); ['6', clickText],
$(document).bind('keydown', {combi:modKey+'S', disableInInput: true}, function(evt){editingsource?saveSourceEditor():clickSave();evt.preventDefault();}); ['7', clickPoly],
$(document).bind('keydown', {combi:'del', disableInInput: true}, function(evt){deleteSelected();evt.preventDefault();}); [modKey+'N', function(evt){clickClear();evt.preventDefault();}],
$(document).bind('keydown', {combi:'backspace', disableInInput: true}, function(evt){deleteSelected();evt.preventDefault();}); [modKey+'S', function(evt){editingsource?saveSourceEditor():clickSave();evt.preventDefault();}],
$(document).bind('keydown', {combi:'shift+up', disableInInput: true}, moveToTopSelected); ['del', function(evt){deleteSelected();evt.preventDefault();}],
$(document).bind('keydown', {combi:'shift+down', disableInInput: true}, moveToBottomSelected); ['backspace', function(evt){deleteSelected();evt.preventDefault();}],
$(document).bind('keydown', {combi:'up', disableInInput: true}, function(evt){moveSelected(0,-1);evt.preventDefault();}); ['shift+up', moveToTopSelected],
$(document).bind('keydown', {combi:'down', disableInInput: true}, function(evt){moveSelected(0,1);evt.preventDefault();}); ['shift+down', moveToBottomSelected],
$(document).bind('keydown', {combi:'left', disableInInput: true}, function(evt){moveSelected(-1,0);evt.preventDefault();}); ['up', function(evt){moveSelected(0,-1);evt.preventDefault();}],
$(document).bind('keydown', {combi:'right', disableInInput: true}, function(evt){moveSelected(1,0);evt.preventDefault();}); ['down', function(evt){moveSelected(0,1);evt.preventDefault();}],
$(document).bind('keydown', {combi:modKey+'z', disableInInput: true}, function(evt){clickUndo();evt.preventDefault();}); ['left', function(evt){moveSelected(-1,0);evt.preventDefault();}],
$(document).bind('keydown', {combi:modKey+'y', disableInInput: true}, function(evt){clickRedo();evt.preventDefault();}); ['right', function(evt){moveSelected(1,0);evt.preventDefault();}],
$(document).bind('keydown', {combi:modKey+'u', disableInInput: true}, function(evt){showSourceEditor();evt.preventDefault();}); [modKey+'z', function(evt){clickUndo();evt.preventDefault();}],
$(document).bind('keydown', {combi:modKey+'c', disableInInput: true}, function(evt){clickClone();evt.preventDefault();}); [modKey+'y', function(evt){clickRedo();evt.preventDefault();}],
$(document).bind('keydown', {combi:'esc', disableInInput: false}, cancelSourceEditor); [modKey+'u', function(evt){showSourceEditor();evt.preventDefault();}],
[modKey+'c', function(evt){clickClone();evt.preventDefault();}],
['esc', cancelSourceEditor, false],
];
$.each(keys,function(i,item) {
var disable = !(item.length > 2 && !item[2]);
$(document).bind('keydown', {combi:item[0], disableInInput: disable}, item[1]);
});
}
setKeyBindings();
// TODO: fix opacity being updated // TODO: fix opacity being updated
// TODO: go back to the color boxes having white background-color and then setting // TODO: go back to the color boxes having white background-color and then setting