mirror of
https://github.com/icecoder/ICEcoder.git
synced 2026-03-06 00:34:00 +01:00
Alt key down flag & tag wrapper
New variable flag for altKeyDown just like ctrlKeyDown Restructured key tracking system into more modular chunks If CTRL+Alt+key, check if we need to trigger tagWrapper function. Currently have 8 common tags setup (for div, span, p, a, b, i, strong, em) tagWrapper function receives any tag and wraps selected text with that tag If it's an a tag tho, it adds a href="" to the start and sets cursor between quotes
This commit is contained in:
210
lib/ice-coder.js
210
lib/ice-coder.js
@@ -11,6 +11,7 @@ var ICEcoder = {
|
||||
selectedTab: 0, // The tab that's currently selected
|
||||
changedContent: [], // Binary array to indicate which tabs have changed
|
||||
ctrlKeyDown: false, // Indicates if CTRL keydown
|
||||
altKeyDown: false, // Indicates if Alt keydown
|
||||
shiftKeyDown: false, // Indicates if Shift keydown
|
||||
delKeyDown: false, // Indicates if DEL keydown
|
||||
canSwitchTabs: true, // Stops switching of tabs when trying to close
|
||||
@@ -347,6 +348,18 @@ var ICEcoder = {
|
||||
top.ICEcoder.dontSelect = true;
|
||||
},
|
||||
|
||||
// Wrap our selected text/cursor with tags
|
||||
tagWrapper: function(tag) {
|
||||
var cM, tagStart, tagEnd;
|
||||
|
||||
cM = ICEcoder.getcMInstance();
|
||||
tagStart = tag;
|
||||
tagEnd = tag;
|
||||
if (tag=='a') {tagStart='a href=""';}
|
||||
cM.replaceSelection("<"+tagStart+">"+cM.getSelection()+"</"+tagEnd+">");
|
||||
if (tag=='a') {cM.setCursor({line:cM.getCursor().line,ch:cM.getCursor('start').ch+9})}
|
||||
},
|
||||
|
||||
// ==============
|
||||
// FILES
|
||||
// ==============
|
||||
@@ -1882,102 +1895,122 @@ var ICEcoder = {
|
||||
top.ICEcoder.ctrlKeyDown = true;
|
||||
return false;
|
||||
|
||||
// Alt key down
|
||||
} else if(key==18) {
|
||||
top.ICEcoder.altKeyDown = true;
|
||||
return false;
|
||||
|
||||
// Shift key down
|
||||
} else if(key==16) {
|
||||
top.ICEcoder.shiftKeyDown = true;
|
||||
return false;
|
||||
};
|
||||
|
||||
// CTRL+F (Find)
|
||||
} else if(key==70 && top.ICEcoder.ctrlKeyDown==true) {
|
||||
top.document.getElementById('find').focus();
|
||||
top.ICEcoder.ctrlKeyDown = false;
|
||||
return false;
|
||||
// Alt key down?
|
||||
if (top.ICEcoder.altKeyDown==true) {
|
||||
|
||||
// CTRL+G (Go to line)
|
||||
} else if(key==71 && top.ICEcoder.ctrlKeyDown==true) {
|
||||
top.document.getElementById('goToLineNo').focus();
|
||||
top.ICEcoder.ctrlKeyDown = false;
|
||||
return false;
|
||||
// + CTRL + key (tag wrapper)
|
||||
if (ICEcoder.ctrlKeyDown==true && area == "content") {
|
||||
if (key==68) {top.ICEcoder.tagWrapper('div'); return false;}
|
||||
else if (key==83) {top.ICEcoder.tagWrapper('span'); return false;}
|
||||
else if (key==80) {top.ICEcoder.tagWrapper('p'); return false;}
|
||||
else if (key==65) {top.ICEcoder.tagWrapper('a'); return false;}
|
||||
else if (key==66) {top.ICEcoder.tagWrapper('b'); return false;}
|
||||
else if (key==73) {top.ICEcoder.tagWrapper('i'); return false;}
|
||||
else if (key==71) {top.ICEcoder.tagWrapper('strong'); return false;}
|
||||
else if (key==69) {top.ICEcoder.tagWrapper('em'); return false;}
|
||||
else {return key;}
|
||||
} else {return key;}
|
||||
|
||||
// CTRL+I (Get info)
|
||||
} else if(key==73 && top.ICEcoder.ctrlKeyDown==true && area == "content") {
|
||||
var searchPrefix = "";
|
||||
if (top.ICEcoder.caretLocType!="Content") {
|
||||
searchPrefix = top.ICEcoder.caretLocType.toLowerCase()+" ";
|
||||
}
|
||||
window.open("http://www.google.com/#output=search&q="+searchPrefix+top.ICEcoder.getcMInstance().getSelection());
|
||||
top.ICEcoder.ctrlKeyDown = false;
|
||||
return false;
|
||||
|
||||
// CTRL+right arrow (Next tab)
|
||||
} else if(key==39 && top.ICEcoder.ctrlKeyDown==true && area!="content") {
|
||||
top.ICEcoder.nextTab();
|
||||
return false;
|
||||
|
||||
// CTRL+left arrow (Previous tab)
|
||||
} else if(key==37 && top.ICEcoder.ctrlKeyDown==true && area!="content") {
|
||||
top.ICEcoder.previousTab();
|
||||
return false;
|
||||
|
||||
// CTRL+up arrow (Move line up)
|
||||
} else if(key==38 && top.ICEcoder.ctrlKeyDown==true && area=="content") {
|
||||
top.ICEcoder.moveLine('up');
|
||||
return false;
|
||||
|
||||
// CTRL+down arrow (Move line down)
|
||||
} else if(key==40 && top.ICEcoder.ctrlKeyDown==true && area=="content") {
|
||||
top.ICEcoder.moveLine('down');
|
||||
return false;
|
||||
|
||||
// CTRL+numeric plus (New tab)
|
||||
} else if(key==107 && top.ICEcoder.ctrlKeyDown==true) {
|
||||
top.ICEcoder.newTab();
|
||||
return false;
|
||||
|
||||
// CTRL+numeric minus (Close tab)
|
||||
} else if(key==109 && top.ICEcoder.ctrlKeyDown==true) {
|
||||
top.ICEcoder.closeTab(top.ICEcoder.selectedTab);
|
||||
return false;
|
||||
|
||||
// CTRL+S (Save), CTRL+Shift+S (Save As)
|
||||
} else if(key==83 && top.ICEcoder.ctrlKeyDown==true) {
|
||||
if(top.ICEcoder.shiftKeyDown==true) {
|
||||
top.ICEcoder.saveFile('saveAs');
|
||||
top.ICEcoder.shiftKeyDown = false;
|
||||
} else {
|
||||
top.ICEcoder.saveFile();
|
||||
}
|
||||
top.ICEcoder.stickyTabMaybe = true;
|
||||
return false;
|
||||
|
||||
// CTRL+Enter (Open Webpage)
|
||||
} else if(key==13 && top.ICEcoder.ctrlKeyDown==true && top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1] != "/[NEW]") {
|
||||
if (top.ICEcoder.stickyTabMaybe) {
|
||||
top.ICEcoder.stickyTab = window.open(top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1],"stickyTab");
|
||||
} else {
|
||||
window.open(top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1]);
|
||||
}
|
||||
top.ICEcoder.ctrlKeyDown = false;
|
||||
return false;
|
||||
|
||||
// CTRL+Space (Show snippet)
|
||||
} else if(key==32 && top.ICEcoder.ctrlKeyDown==true && area=="content") {
|
||||
top.ICEcoder.addSnippet();
|
||||
return false;
|
||||
|
||||
// ESC in content area (Comment/Uncomment line)
|
||||
} else if(key==27 && area == "content") {
|
||||
top.ICEcoder.lineCommentToggle();
|
||||
return false;
|
||||
|
||||
// ESC not in content area (Cancel all actions)
|
||||
} else if(key==27 && area != "content") {
|
||||
top.ICEcoder.cancelAllActions();
|
||||
return false;
|
||||
|
||||
// Any other key
|
||||
} else {
|
||||
return key;
|
||||
|
||||
// CTRL+F (Find)
|
||||
if(key==70 && top.ICEcoder.ctrlKeyDown==true) {
|
||||
top.document.getElementById('find').focus();
|
||||
top.ICEcoder.ctrlKeyDown = false;
|
||||
return false;
|
||||
|
||||
// CTRL+G (Go to line)
|
||||
} else if(key==71 && top.ICEcoder.ctrlKeyDown==true) {
|
||||
top.document.getElementById('goToLineNo').focus();
|
||||
top.ICEcoder.ctrlKeyDown = false;
|
||||
return false;
|
||||
|
||||
// CTRL+I (Get info)
|
||||
} else if(key==73 && top.ICEcoder.ctrlKeyDown==true && area == "content") {
|
||||
var searchPrefix = "";
|
||||
if (top.ICEcoder.caretLocType!="Content") {
|
||||
searchPrefix = top.ICEcoder.caretLocType.toLowerCase()+" ";
|
||||
}
|
||||
window.open("http://www.google.com/#output=search&q="+searchPrefix+top.ICEcoder.getcMInstance().getSelection());
|
||||
top.ICEcoder.ctrlKeyDown = false;
|
||||
return false;
|
||||
|
||||
// CTRL+right arrow (Next tab)
|
||||
} else if(key==39 && top.ICEcoder.ctrlKeyDown==true && area!="content") {
|
||||
top.ICEcoder.nextTab();
|
||||
return false;
|
||||
|
||||
// CTRL+left arrow (Previous tab)
|
||||
} else if(key==37 && top.ICEcoder.ctrlKeyDown==true && area!="content") {
|
||||
top.ICEcoder.previousTab();
|
||||
return false;
|
||||
|
||||
// CTRL+up arrow (Move line up)
|
||||
} else if(key==38 && top.ICEcoder.ctrlKeyDown==true && area=="content") {
|
||||
top.ICEcoder.moveLine('up');
|
||||
return false;
|
||||
|
||||
// CTRL+down arrow (Move line down)
|
||||
} else if(key==40 && top.ICEcoder.ctrlKeyDown==true && area=="content") {
|
||||
top.ICEcoder.moveLine('down');
|
||||
return false;
|
||||
|
||||
// CTRL+numeric plus (New tab)
|
||||
} else if(key==107 && top.ICEcoder.ctrlKeyDown==true) {
|
||||
top.ICEcoder.newTab();
|
||||
return false;
|
||||
|
||||
// CTRL+numeric minus (Close tab)
|
||||
} else if(key==109 && top.ICEcoder.ctrlKeyDown==true) {
|
||||
top.ICEcoder.closeTab(top.ICEcoder.selectedTab);
|
||||
return false;
|
||||
|
||||
// CTRL+S (Save), CTRL+Shift+S (Save As)
|
||||
} else if(key==83 && top.ICEcoder.ctrlKeyDown==true) {
|
||||
if(top.ICEcoder.shiftKeyDown==true) {
|
||||
top.ICEcoder.saveFile('saveAs');
|
||||
top.ICEcoder.shiftKeyDown = false;
|
||||
} else {
|
||||
top.ICEcoder.saveFile();
|
||||
}
|
||||
top.ICEcoder.stickyTabMaybe = true;
|
||||
return false;
|
||||
|
||||
// CTRL+Enter (Open Webpage)
|
||||
} else if(key==13 && top.ICEcoder.ctrlKeyDown==true && top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1] != "/[NEW]") {
|
||||
if (top.ICEcoder.stickyTabMaybe) {
|
||||
top.ICEcoder.stickyTab = window.open(top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1],"stickyTab");
|
||||
} else {
|
||||
window.open(top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1]);
|
||||
}
|
||||
top.ICEcoder.ctrlKeyDown = false;
|
||||
return false;
|
||||
|
||||
// CTRL+Space (Show snippet)
|
||||
} else if(key==32 && top.ICEcoder.ctrlKeyDown==true && area=="content") {
|
||||
top.ICEcoder.addSnippet();
|
||||
return false;
|
||||
|
||||
// ESC in content area (Comment/Uncomment line)
|
||||
} else if(key==27 && area == "content") {
|
||||
top.ICEcoder.lineCommentToggle();
|
||||
return false;
|
||||
|
||||
// Any other key
|
||||
} else {
|
||||
return key;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1989,6 +2022,7 @@ var ICEcoder = {
|
||||
|
||||
if (key==17) {top.ICEcoder.ctrlKeyDown = false; top.ICEcoder.stickyTabMaybe = false}
|
||||
else if (key==16) {top.ICEcoder.shiftKeyDown = false}
|
||||
else if (key==18) {top.ICEcoder.altKeyDown = false}
|
||||
else if (key==46) {top.ICEcoder.delKeyDown = false}
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user