diff --git a/node_modules/architect-build/build.js b/node_modules/architect-build/build.js
index baa2d583..37e3007a 100644
--- a/node_modules/architect-build/build.js
+++ b/node_modules/architect-build/build.js
@@ -4,7 +4,10 @@ var mkdirp = require("mkdirp");
var moduleDeps = require("./module-deps");
var path = require("path");
-function build(config, opts, callback){
+function build(config, opts, callback) {
+ if (opts.compileLess && opts.sources)
+ return compileLess(opts, opts.sources, callback);
+
if (!opts.configFile) {
opts.configFile = "\nrequire.plugins = "
+ JSON.stringify(config, null, 4)
@@ -155,50 +158,147 @@ function createOutputFolder(opts, cb) {
}
function compileLess(opts, sources, callback) {
+ var libs = opts.lessLibs;
var less = stripLess(sources);
var cssCode = [];
var code = [];
var cache = opts.cache;
if (cache && !cache.less)
cache.less = Object.create(null);
-
- var libs = opts.lessLibs;
- less.forEach(function(file) {
- var plugin = file.pkg.parent.plugin || {};
- if (file.pkg.id.match(/(keyframes|font-awesome)\.css$/)) {
- cssCode.push(file.code
- .replace(/@\{image-path\}/g, plugin.staticPrefix + "/images")
- .replace(/@\{icon-path\}/g, plugin.staticPrefix + "/icons")
- .replace(/@\{base-path\}/g, plugin.staticPrefix)
- );
- return;
- }
+ if (cache && !cache.images)
+ cache.images = Object.create(null);
- var staticPrefix = plugin.staticPrefix || libs.staticPrefix;
- // Complete paths, but not subdirectories like foo/images/bar.png
- var lessCode = file.code.replace(/(["(])(images|icons)\//g, "$1" + staticPrefix + "/$2/");
- code.push("ß{" + lessPathLib(staticPrefix) + lessCode + "}");
- });
-
- var ctx = {
- paths: ["/"],
- filename: opts.basepath + '/unknown.less',
- compress: !!opts.compress
- };
- code = lessPathLib("/static/" + libs.staticPrefix) + libs.join("\n") + code.join("\n");
-
- var lessParser = require("less");
- return lessParser.parse(code, ctx, function(err, tree, imports, options) {
- if (err) return callback(err);
-
- toCss(tree, imports, options, function(err, css) {
- if (err) return callback(err);
-
- callback(null, { code: css.replace(/ß /g, "").replace(/^ +/gm, "\t") });
+ function readLibs(cb) {
+ async.forEach(Object.keys(libs), function(key, next) {
+ var lib = libs[key];
+ if (typeof lib !== "string")
+ return next();
+ var path = moduleDeps.resolveModulePath(lib, opts.pathConfig.pathMap);
+ fs.readFile(path, "utf8", function(e, code) {
+ libs[key] = { code: code || "", id: lib };
+ next();
+ });
+ }, function() {
+ cb();
});
+ }
+
+ function expandVariables(code, variables, plugin) {
+ variables["base-path"] = (plugin && plugin.staticPrefix || opts.staticPrefix);
+ variables["icon-path"] = variables["base-path"] + "/icons";
+ variables["image-path"] = variables["base-path"] + "/images";
+ variables["plugin-path"] = plugin
+ ? "/static/" + path.dirname(plugin.packagePath)
+ : "plugin-path";
+
+ return code.replace(/@({([\w-]+)}|[\w-]+)/g, function(_, m, m1) {
+ var name = m1 || m;
+ return variables[name] || _;
+ });
+ }
+
+ function preprocess() {
+ less.forEach(function(file) {
+ var plugin = file.pkg.parent.plugin;
+
+ var id = file.pkg.id.replace(/^[^!]+!/, "");
+ code.push(
+ "/* @file " + id + " */\nß{"
+ + expandVariables(file.code, Object.create(null), plugin)
+ + "}"
+ );
+ });
+ code = code.join("\n")
+ + expandVariables(libs.map(function(l) {
+ return l.code ? "/* @file " + l.id + " */\n" + l.code : "";
+ }).join("\n"), Object.create(null));
+ }
+
+ function compile() {
+ var ctx = {
+ paths: ["/"],
+ filename: opts.basepath + '/unknown.less',
+ compress: !!opts.compress
+ };
+ var lessParser = require("less");
+ return lessParser.parse(code, ctx, function(err, tree, imports, options) {
+ if (err) return callback(err);
+
+ toCss(tree, imports, options, function(err, css) {
+ if (err) return callback(err);
+ css = css.replace(/ß /g, "").replace(/^ +/gm, "\t");
+ css = checkImages(css, opts, cache);
+ css = addCssPrefixes(css);
+ callback(null, { code: css });
+ });
+ });
+ }
+
+
+ readLibs(function() {
+ preprocess();
+ compile();
});
}
+function checkImages(css, opts, cache) {
+ var images = cache && cache.images || Object.create(null);
+ var t = Date.now();
+ var file;
+ var count = 0;
+ var missingCount = 0;
+ css = css.replace(/(url\(['"]?)(?:\/static\/)?([^"')]+)|@file (\S+)/g, function(_, prefix, imagePath, fileId) {
+ if (fileId) {
+ file = fileId;
+ return _;
+ }
+ if (/^data:|^#/.test(imagePath))
+ return _;
+ count++;
+
+ if (/^(images|icons)/.test(imagePath))
+ imagePath = opts.staticPrefix + "/" + imagePath;
+
+ var dir = path.dirname(imagePath);
+ var name = path.basename(imagePath);
+ try {
+ if (!images[dir]) {
+ var absPath = moduleDeps.resolveModulePath(dir, opts.pathConfig.pathMap);
+ images[dir] = fs.readdirSync(absPath);
+ }
+ } catch (e) {
+ images[dir] = [];
+ }
+ var nameNx = name.replace("@1x", "");
+ var name1x = nameNx.replace(/\.\w+$/, "@1x$&");
+ var name2x = nameNx.replace(/\.\w+$/, "@2x$&");
+
+ var hasNx = images[dir].indexOf(nameNx) != -1;
+ var has1x = images[dir].indexOf(name1x) != -1;
+ var has2x = images[dir].indexOf(name2x) != -1;
+
+ if (hasNx) {
+ name = nameNx;
+ } else if (has1x) {
+ name = name1x;
+ if (!has2x)
+ reportError(imagePath + " 2x");
+ }
+ else {
+ reportError(imagePath);
+ }
+
+ // todo check image sizes
+ return prefix + "/static/" + dir + "/" + name;
+ });
+
+ function reportError(imagePath) {
+ missingCount++;
+ console.log("" + missingCount + " missing image: " + imagePath, "from /" + file);
+ }
+ console.log("checked " + count + " images in " + (t - Date.now()) + "ms");
+ return css;
+}
function addCssPrefixes(css) {
return css.replace(/\b(user-select|font-smoothing)\b([^;\n]+);?/g, function(_, prop, value, index, string) {
@@ -226,24 +326,14 @@ function toCss(tree, imports, options, callback) {
catch (err) {
return callback(err);
}
- css = addCssPrefixes(css);
callback(null, css);
}
-function lessPathLib(staticPrefix) {
- if (!staticPrefix) return "";
-
- staticPrefix = staticPrefix.replace(/^(\/static\/)?(plugins\/)?/, "/static/plugins/");
-
- return "@base-path : \"" + staticPrefix + "\";\n"
- + "@image-path : \"" + staticPrefix + "/images\";\n"
- + "@icon-path : \"" + staticPrefix + "/icons\";\n";
-}
-
function stripLess(sources) {
var less = [];
function addLessFile(pkg, code, file) {
+ pkg.cssSource = code;
less.push({
pkg: pkg,
code: code,
@@ -252,7 +342,10 @@ function stripLess(sources) {
}
sources.forEach(function(pkg) {
- if (pkg.id && (pkg.id.indexOf("text!") > -1) && pkg.id.match(/text\!.*\.(less|css)$/)) {
+ if (pkg.cssSource != null) {
+ addLessFile(pkg, pkg.cssSource);
+ }
+ else if (pkg.id && (pkg.id.indexOf("text!") > -1) && pkg.id.match(/text\!.*\.(less|css)$/)) {
var source = pkg.source;
pkg.source = "";
diff --git a/plugins/c9.ide.ace.gotoline/skin.xml b/plugins/c9.ide.ace.gotoline/skin.xml
index 50c6a237..7214d244 100644
--- a/plugins/c9.ide.ace.gotoline/skin.xml
+++ b/plugins/c9.ide.ace.gotoline/skin.xml
@@ -86,30 +86,10 @@
border: @gotoline-border-dark;
border-left: 0;
}
- .brGtlContent {
- }
- .barGotoline .brGtlTop {
- background: url(images/barGotoLineCorners.png) no-repeat 0 0;
- height: 3px;
- width: 4px;
- position: absolute;
- top: -3px;
- left:0;
- }
- .barGotoline .brGtlBottom {
- background: url(images/barGotoLineCorners.png) no-repeat 0 -3px;
- height: 3px;
- width: 4px;
- position: absolute;
- bottom: -3px;
- left:0;
- }
]]>
diff --git a/plugins/c9.ide.ace.statusbar/statusbar.xml b/plugins/c9.ide.ace.statusbar/statusbar.xml
index ce4b2829..6be7b3d1 100644
--- a/plugins/c9.ide.ace.statusbar/statusbar.xml
+++ b/plugins/c9.ide.ace.statusbar/statusbar.xml
@@ -34,7 +34,7 @@
skin = "btn-statusbar-icon"
skinset = "c9statusbar"
height = "23"
- icon = "pref-ico.png"
+ icon = "true"
submenudir = "up" />
\ No newline at end of file
diff --git a/plugins/c9.ide.behaviors/images/splits.png b/plugins/c9.ide.behaviors/images/splits@1x.png
similarity index 100%
rename from plugins/c9.ide.behaviors/images/splits.png
rename to plugins/c9.ide.behaviors/images/splits@1x.png
diff --git a/plugins/c9.ide.behaviors/images/splits_flat_dark.png b/plugins/c9.ide.behaviors/images/splits_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.behaviors/images/splits_flat_dark.png
rename to plugins/c9.ide.behaviors/images/splits_flat_dark@1x.png
diff --git a/plugins/c9.ide.behaviors/images/splits_flat_light.png b/plugins/c9.ide.behaviors/images/splits_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.behaviors/images/splits_flat_light.png
rename to plugins/c9.ide.behaviors/images/splits_flat_light@1x.png
diff --git a/plugins/c9.ide.collab/members/images/collab-led-states.png b/plugins/c9.ide.collab/members/images/collab-led-states@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/members/images/collab-led-states.png
rename to plugins/c9.ide.collab/members/images/collab-led-states@1x.png
diff --git a/plugins/c9.ide.collab/members/images/collab-led-states_flat_light.png b/plugins/c9.ide.collab/members/images/collab-led-states_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/members/images/collab-led-states_flat_light.png
rename to plugins/c9.ide.collab/members/images/collab-led-states_flat_light@1x.png
diff --git a/plugins/c9.ide.collab/members/images/trash-icon.png b/plugins/c9.ide.collab/members/images/trash-icon@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/members/images/trash-icon.png
rename to plugins/c9.ide.collab/members/images/trash-icon@1x.png
diff --git a/plugins/c9.ide.collab/notifications/images/bk-close-btn.png b/plugins/c9.ide.collab/notifications/images/bk-close-btn@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/notifications/images/bk-close-btn.png
rename to plugins/c9.ide.collab/notifications/images/bk-close-btn@1x.png
diff --git a/plugins/c9.ide.collab/timeslider/images/close_tab_btn.png b/plugins/c9.ide.collab/timeslider/images/close_tab_btn@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/timeslider/images/close_tab_btn.png
rename to plugins/c9.ide.collab/timeslider/images/close_tab_btn@1x.png
diff --git a/plugins/c9.ide.collab/timeslider/images/pause.png b/plugins/c9.ide.collab/timeslider/images/pause@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/timeslider/images/pause.png
rename to plugins/c9.ide.collab/timeslider/images/pause@1x.png
diff --git a/plugins/c9.ide.collab/timeslider/images/pause_flat_light.png b/plugins/c9.ide.collab/timeslider/images/pause_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/timeslider/images/pause_flat_light.png
rename to plugins/c9.ide.collab/timeslider/images/pause_flat_light@1x.png
diff --git a/plugins/c9.ide.collab/timeslider/images/play.png b/plugins/c9.ide.collab/timeslider/images/play@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/timeslider/images/play.png
rename to plugins/c9.ide.collab/timeslider/images/play@1x.png
diff --git a/plugins/c9.ide.collab/timeslider/images/play_flat_light.png b/plugins/c9.ide.collab/timeslider/images/play_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/timeslider/images/play_flat_light.png
rename to plugins/c9.ide.collab/timeslider/images/play_flat_light@1x.png
diff --git a/plugins/c9.ide.collab/timeslider/images/scrubber_flat_light.png b/plugins/c9.ide.collab/timeslider/images/scrubber_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/timeslider/images/scrubber_flat_light.png
rename to plugins/c9.ide.collab/timeslider/images/scrubber_flat_light@1x.png
diff --git a/plugins/c9.ide.collab/timeslider/images/stepper_buttons.png b/plugins/c9.ide.collab/timeslider/images/stepper_buttons@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/timeslider/images/stepper_buttons.png
rename to plugins/c9.ide.collab/timeslider/images/stepper_buttons@1x.png
diff --git a/plugins/c9.ide.collab/timeslider/images/stepper_buttons_flat_light.png b/plugins/c9.ide.collab/timeslider/images/stepper_buttons_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.collab/timeslider/images/stepper_buttons_flat_light.png
rename to plugins/c9.ide.collab/timeslider/images/stepper_buttons_flat_light@1x.png
diff --git a/plugins/c9.ide.console/style.css b/plugins/c9.ide.console/style.css
index 67c27050..ddec3371 100644
--- a/plugins/c9.ide.console/style.css
+++ b/plugins/c9.ide.console/style.css
@@ -8,12 +8,5 @@
}
.console .console_close_btn {
- background-image: url("@{icon-path}/@{button-console-close}");
-}
-
-@media print, (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx) {
- .console .console_close_btn {
- background-image: url("@{icon-path}/@{button-console-close-retina}");
- background-size: 22px 66px;
- }
+ .image-2x("@{icon-path}/@{button-console-close}", 22px, 66px);
}
\ No newline at end of file
diff --git a/plugins/c9.ide.find.replace/findreplace.css b/plugins/c9.ide.find.replace/findreplace.css
index eabb424a..4b4645a4 100644
--- a/plugins/c9.ide.find.replace/findreplace.css
+++ b/plugins/c9.ide.find.replace/findreplace.css
@@ -18,10 +18,10 @@
}
.btnquicksearchnav.btnquicksearchnavLeft .lbl span {
- background-image: url("@{icon-path}/@{find-next-image}");
+ .image-2x("@{icon-path}/@{find-next-image}", 20px, 100px);
}
.btnquicksearchnav.btnquicksearchnavRight .lbl span {
- background-image: url("@{icon-path}/@{find-previous-image}");
+ .image-2x("@{icon-path}/@{find-previous-image}", 20px, 100px);
}
.findInRangeMarker {
diff --git a/plugins/c9.ide.find.replace/icons/arrow_left_search.png b/plugins/c9.ide.find.replace/icons/arrow_left_search@1x.png
similarity index 100%
rename from plugins/c9.ide.find.replace/icons/arrow_left_search.png
rename to plugins/c9.ide.find.replace/icons/arrow_left_search@1x.png
diff --git a/plugins/c9.ide.find.replace/icons/arrow_left_search_flat_light.png b/plugins/c9.ide.find.replace/icons/arrow_left_search_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.find.replace/icons/arrow_left_search_flat_light.png
rename to plugins/c9.ide.find.replace/icons/arrow_left_search_flat_light@1x.png
diff --git a/plugins/c9.ide.find.replace/icons/arrow_right_search.png b/plugins/c9.ide.find.replace/icons/arrow_right_search@1x.png
similarity index 100%
rename from plugins/c9.ide.find.replace/icons/arrow_right_search.png
rename to plugins/c9.ide.find.replace/icons/arrow_right_search@1x.png
diff --git a/plugins/c9.ide.find.replace/icons/arrow_right_search_flat_light.png b/plugins/c9.ide.find.replace/icons/arrow_right_search_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.find.replace/icons/arrow_right_search_flat_light.png
rename to plugins/c9.ide.find.replace/icons/arrow_right_search_flat_light@1x.png
diff --git a/plugins/c9.ide.help/skin.xml b/plugins/c9.ide.help/skin.xml
index 08977e4a..97b0a444 100644
--- a/plugins/c9.ide.help/skin.xml
+++ b/plugins/c9.ide.help/skin.xml
@@ -15,7 +15,7 @@
.aboutDialogBox .aboutImage {
position:relative;
color: white;
- background: url(images/about_cloud.png) no-repeat 0 0;
+ background: url(@plugin-path/images/about_cloud.png) no-repeat 0 0;
width: 515px;
height: 339px;
}
@@ -29,7 +29,7 @@
.win-help-about .buttons .close {
height: 20px;
width: 19px;
- background: url(images/close.png) no-repeat 4px 3px;
+ background: url(@plugin-path/images/close.png) no-repeat 4px 3px;
}
.win-help-about .buttons .close.hover {
diff --git a/plugins/c9.ide.imgeditor/style.css b/plugins/c9.ide.imgeditor/style.css
index a41bc9af..13ff6dda 100644
--- a/plugins/c9.ide.imgeditor/style.css
+++ b/plugins/c9.ide.imgeditor/style.css
@@ -42,7 +42,7 @@
}
.imgeditor canvas{
- background: url("@{image-path}/background.png");
+ background: url("@{plugin-path}/images/background.png");
cursor: crosshair;
box-shadow: 0 0 8px rgba(0,0,0,0.5);
display: inline-block;
diff --git a/plugins/c9.ide.language/images/event.png b/plugins/c9.ide.language/images/event@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/event.png
rename to plugins/c9.ide.language/images/event@1x.png
diff --git a/plugins/c9.ide.language/images/event_flat_light.png b/plugins/c9.ide.language/images/event_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/event_flat_light.png
rename to plugins/c9.ide.language/images/event_flat_light@1x.png
diff --git a/plugins/c9.ide.language/images/method2.png b/plugins/c9.ide.language/images/method2@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/method2.png
rename to plugins/c9.ide.language/images/method2@1x.png
diff --git a/plugins/c9.ide.language/images/method2_flat_light.png b/plugins/c9.ide.language/images/method2_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/method2_flat_light.png
rename to plugins/c9.ide.language/images/method2_flat_light@1x.png
diff --git a/plugins/c9.ide.language/images/method.png b/plugins/c9.ide.language/images/method@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/method.png
rename to plugins/c9.ide.language/images/method@1x.png
diff --git a/plugins/c9.ide.language/images/method_flat_light.png b/plugins/c9.ide.language/images/method_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/method_flat_light.png
rename to plugins/c9.ide.language/images/method_flat_light@1x.png
diff --git a/plugins/c9.ide.language/images/package.png b/plugins/c9.ide.language/images/package@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/package.png
rename to plugins/c9.ide.language/images/package@1x.png
diff --git a/plugins/c9.ide.language/images/package_flat_light.png b/plugins/c9.ide.language/images/package_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/package_flat_light.png
rename to plugins/c9.ide.language/images/package_flat_light@1x.png
diff --git a/plugins/c9.ide.language/images/property2.png b/plugins/c9.ide.language/images/property2@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/property2.png
rename to plugins/c9.ide.language/images/property2@1x.png
diff --git a/plugins/c9.ide.language/images/property2_flat_light.png b/plugins/c9.ide.language/images/property2_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/property2_flat_light.png
rename to plugins/c9.ide.language/images/property2_flat_light@1x.png
diff --git a/plugins/c9.ide.language/images/property.png b/plugins/c9.ide.language/images/property@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/property.png
rename to plugins/c9.ide.language/images/property@1x.png
diff --git a/plugins/c9.ide.language/images/property_flat_light.png b/plugins/c9.ide.language/images/property_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/property_flat_light.png
rename to plugins/c9.ide.language/images/property_flat_light@1x.png
diff --git a/plugins/c9.ide.language/images/tree_close_arrow_small.png b/plugins/c9.ide.language/images/tree_close_arrow_small@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/tree_close_arrow_small.png
rename to plugins/c9.ide.language/images/tree_close_arrow_small@1x.png
diff --git a/plugins/c9.ide.language/images/unknown2_flat_light.png b/plugins/c9.ide.language/images/unknown2_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/unknown2_flat_light.png
rename to plugins/c9.ide.language/images/unknown2_flat_light@1x.png
diff --git a/plugins/c9.ide.language/images/unknown_flat_light.png b/plugins/c9.ide.language/images/unknown_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.language/images/unknown_flat_light.png
rename to plugins/c9.ide.language/images/unknown_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/bug.png b/plugins/c9.ide.layout.classic/icons/bug@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/bug.png
rename to plugins/c9.ide.layout.classic/icons/bug@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/bug_flat_dark.png b/plugins/c9.ide.layout.classic/icons/bug_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/bug_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/bug_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/bug_flat_light.png b/plugins/c9.ide.layout.classic/icons/bug_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/bug_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/bug_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/console_close_btn.png b/plugins/c9.ide.layout.classic/icons/console_close_btn@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/console_close_btn.png
rename to plugins/c9.ide.layout.classic/icons/console_close_btn@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/console_close_btn_dark.png b/plugins/c9.ide.layout.classic/icons/console_close_btn_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/console_close_btn_dark.png
rename to plugins/c9.ide.layout.classic/icons/console_close_btn_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj.gif b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj.gif
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj@1x.gif
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_condition.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_condition@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_condition.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_condition@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_condition_disabled.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_condition_disabled@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_condition_disabled.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_condition_disabled@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line_condition.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line_condition@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line_condition.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line_condition@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line_dark.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line_dark.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_current_line_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_dark.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_dark.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled_current_line_dark.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled_current_line_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled_current_line_dark.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled_current_line_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled_dark.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled_dark.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_disabled_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_warn.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_warn@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_warn.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_warn@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_warn_dark.png b/plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_warn_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_warn_dark.png
rename to plugins/c9.ide.layout.classic/icons/debugger/brkp_obj_warn_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/brkpd_obj_disabled.gif b/plugins/c9.ide.layout.classic/icons/debugger/brkpd_obj_disabled@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/brkpd_obj_disabled.gif
rename to plugins/c9.ide.layout.classic/icons/debugger/brkpd_obj_disabled@1x.gif
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/current_line_dark.png b/plugins/c9.ide.layout.classic/icons/debugger/current_line_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/current_line_dark.png
rename to plugins/c9.ide.layout.classic/icons/debugger/current_line_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/genericvariable_obj.gif b/plugins/c9.ide.layout.classic/icons/debugger/genericvariable_obj@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/genericvariable_obj.gif
rename to plugins/c9.ide.layout.classic/icons/debugger/genericvariable_obj@1x.gif
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/genericvariable_obj_flat_light.png b/plugins/c9.ide.layout.classic/icons/debugger/genericvariable_obj_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/genericvariable_obj_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/debugger/genericvariable_obj_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/debugger/stack_co.png b/plugins/c9.ide.layout.classic/icons/debugger/stack_co@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/debugger/stack_co.png
rename to plugins/c9.ide.layout.classic/icons/debugger/stack_co@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/exception_break.png b/plugins/c9.ide.layout.classic/icons/exception_break@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/exception_break.png
rename to plugins/c9.ide.layout.classic/icons/exception_break@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/exception_break_flat_dark.png b/plugins/c9.ide.layout.classic/icons/exception_break_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/exception_break_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/exception_break_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/exception_break_flat_light.png b/plugins/c9.ide.layout.classic/icons/exception_break_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/exception_break_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/exception_break_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/file-tree-load-spinner-dark-unfocus_flat_light.gif b/plugins/c9.ide.layout.classic/icons/file-tree-load-spinner-dark-unfocus_flat_light@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/file-tree-load-spinner-dark-unfocus_flat_light.gif
rename to plugins/c9.ide.layout.classic/icons/file-tree-load-spinner-dark-unfocus_flat_light@1x.gif
diff --git a/plugins/c9.ide.layout.classic/icons/file-tree-load-spinner-selected_flat_light.gif b/plugins/c9.ide.layout.classic/icons/file-tree-load-spinner-selected_flat_light@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/file-tree-load-spinner-selected_flat_light.gif
rename to plugins/c9.ide.layout.classic/icons/file-tree-load-spinner-selected_flat_light@1x.gif
diff --git a/plugins/c9.ide.layout.classic/icons/file-tree-load-spinner_flat_light.gif b/plugins/c9.ide.layout.classic/icons/file-tree-load-spinner_flat_light@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/file-tree-load-spinner_flat_light.gif
rename to plugins/c9.ide.layout.classic/icons/file-tree-load-spinner_flat_light@1x.gif
diff --git a/plugins/c9.ide.layout.classic/icons/folder.png b/plugins/c9.ide.layout.classic/icons/folder@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/folder.png
rename to plugins/c9.ide.layout.classic/icons/folder@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/folder_alternative.png b/plugins/c9.ide.layout.classic/icons/folder_alternative@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/folder_alternative.png
rename to plugins/c9.ide.layout.classic/icons/folder_alternative@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/folder_flat_dark.png b/plugins/c9.ide.layout.classic/icons/folder_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/folder_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/folder_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/folder_flat_light.png b/plugins/c9.ide.layout.classic/icons/folder_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/folder_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/folder_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/folder_light.png b/plugins/c9.ide.layout.classic/icons/folder_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/folder_light.png
rename to plugins/c9.ide.layout.classic/icons/folder_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/pause.png b/plugins/c9.ide.layout.classic/icons/pause@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/pause.png
rename to plugins/c9.ide.layout.classic/icons/pause@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/pause_flat_dark.png b/plugins/c9.ide.layout.classic/icons/pause_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/pause_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/pause_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/pause_flat_light.png b/plugins/c9.ide.layout.classic/icons/pause_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/pause_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/pause_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/play.png b/plugins/c9.ide.layout.classic/icons/play@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/play.png
rename to plugins/c9.ide.layout.classic/icons/play@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/play_flat_dark.png b/plugins/c9.ide.layout.classic/icons/play_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/play_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/play_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/play_flat_light.png b/plugins/c9.ide.layout.classic/icons/play_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/play_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/play_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/pref-ico.png b/plugins/c9.ide.layout.classic/icons/pref-ico@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/pref-ico.png
rename to plugins/c9.ide.layout.classic/icons/pref-ico@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/pref-ico_flat_dark.png b/plugins/c9.ide.layout.classic/icons/pref-ico_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/pref-ico_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/pref-ico_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/pref-ico_flat_light.png b/plugins/c9.ide.layout.classic/icons/pref-ico_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/pref-ico_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/pref-ico_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/remove_breakpoints.png b/plugins/c9.ide.layout.classic/icons/remove_breakpoints@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/remove_breakpoints.png
rename to plugins/c9.ide.layout.classic/icons/remove_breakpoints@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/remove_breakpoints_flat_dark.png b/plugins/c9.ide.layout.classic/icons/remove_breakpoints_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/remove_breakpoints_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/remove_breakpoints_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/remove_breakpoints_flat_light.png b/plugins/c9.ide.layout.classic/icons/remove_breakpoints_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/remove_breakpoints_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/remove_breakpoints_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/restart-icon.png b/plugins/c9.ide.layout.classic/icons/restart-icon@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/restart-icon.png
rename to plugins/c9.ide.layout.classic/icons/restart-icon@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/restart-icon_flat_light.png b/plugins/c9.ide.layout.classic/icons/restart-icon_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/restart-icon_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/restart-icon_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/run.png b/plugins/c9.ide.layout.classic/icons/run@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/run.png
rename to plugins/c9.ide.layout.classic/icons/run@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/run_flat_dark.png b/plugins/c9.ide.layout.classic/icons/run_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/run_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/run_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/run_flat_light.png b/plugins/c9.ide.layout.classic/icons/run_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/run_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/run_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/scripts.png b/plugins/c9.ide.layout.classic/icons/scripts@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/scripts.png
rename to plugins/c9.ide.layout.classic/icons/scripts@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/scripts_flat_light.png b/plugins/c9.ide.layout.classic/icons/scripts_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/scripts_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/scripts_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/search-ico_flat_light.png b/plugins/c9.ide.layout.classic/icons/search-ico_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/search-ico_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/search-ico_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/step.png b/plugins/c9.ide.layout.classic/icons/step@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/step.png
rename to plugins/c9.ide.layout.classic/icons/step@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/step_flat_dark.png b/plugins/c9.ide.layout.classic/icons/step_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/step_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/step_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/step_flat_light.png b/plugins/c9.ide.layout.classic/icons/step_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/step_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/step_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/stepback.png b/plugins/c9.ide.layout.classic/icons/stepback@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/stepback.png
rename to plugins/c9.ide.layout.classic/icons/stepback@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/stepback_flat_dark.png b/plugins/c9.ide.layout.classic/icons/stepback_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/stepback_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/stepback_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/stepback_flat_light.png b/plugins/c9.ide.layout.classic/icons/stepback_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/stepback_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/stepback_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/stepinto.png b/plugins/c9.ide.layout.classic/icons/stepinto@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/stepinto.png
rename to plugins/c9.ide.layout.classic/icons/stepinto@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/stepinto_flat_dark.png b/plugins/c9.ide.layout.classic/icons/stepinto_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/stepinto_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/stepinto_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/stepinto_flat_light.png b/plugins/c9.ide.layout.classic/icons/stepinto_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/stepinto_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/stepinto_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/stop.png b/plugins/c9.ide.layout.classic/icons/stop@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/stop.png
rename to plugins/c9.ide.layout.classic/icons/stop@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/stop_flat_light.png b/plugins/c9.ide.layout.classic/icons/stop_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/stop_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/stop_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/toggle_breakpoints1_flat_dark.png b/plugins/c9.ide.layout.classic/icons/toggle_breakpoints1_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/toggle_breakpoints1_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/toggle_breakpoints1_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/toggle_breakpoints1_flat_light.png b/plugins/c9.ide.layout.classic/icons/toggle_breakpoints1_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/toggle_breakpoints1_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/toggle_breakpoints1_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/toggle_breakpoints2.png b/plugins/c9.ide.layout.classic/icons/toggle_breakpoints2@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/toggle_breakpoints2.png
rename to plugins/c9.ide.layout.classic/icons/toggle_breakpoints2@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/toggle_breakpoints2_flat_dark.png b/plugins/c9.ide.layout.classic/icons/toggle_breakpoints2_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/toggle_breakpoints2_flat_dark.png
rename to plugins/c9.ide.layout.classic/icons/toggle_breakpoints2_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/icons/toggle_breakpoints2_flat_light.png b/plugins/c9.ide.layout.classic/icons/toggle_breakpoints2_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/icons/toggle_breakpoints2_flat_light.png
rename to plugins/c9.ide.layout.classic/icons/toggle_breakpoints2_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/ace_error_dark.png b/plugins/c9.ide.layout.classic/images/ace_error_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/ace_error_dark.png
rename to plugins/c9.ide.layout.classic/images/ace_error_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/ace_error_flat_light.png b/plugins/c9.ide.layout.classic/images/ace_error_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/ace_error_flat_light.png
rename to plugins/c9.ide.layout.classic/images/ace_error_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/ace_error_light.png b/plugins/c9.ide.layout.classic/images/ace_error_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/ace_error_light.png
rename to plugins/c9.ide.layout.classic/images/ace_error_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/ace_warning_dark.png b/plugins/c9.ide.layout.classic/images/ace_warning_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/ace_warning_dark.png
rename to plugins/c9.ide.layout.classic/images/ace_warning_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/ace_warning_flat_light.png b/plugins/c9.ide.layout.classic/images/ace_warning_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/ace_warning_flat_light.png
rename to plugins/c9.ide.layout.classic/images/ace_warning_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/ace_warning_light_flat_light.png b/plugins/c9.ide.layout.classic/images/ace_warning_light_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/ace_warning_light_flat_light.png
rename to plugins/c9.ide.layout.classic/images/ace_warning_light_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/arrow_down_grey.png b/plugins/c9.ide.layout.classic/images/arrow_down_grey@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/arrow_down_grey.png
rename to plugins/c9.ide.layout.classic/images/arrow_down_grey@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/bk-close-btn.png b/plugins/c9.ide.layout.classic/images/bk-close-btn@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/bk-close-btn.png
rename to plugins/c9.ide.layout.classic/images/bk-close-btn@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/btnclose.gif b/plugins/c9.ide.layout.classic/images/btnclose@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/btnclose.gif
rename to plugins/c9.ide.layout.classic/images/btnclose@1x.gif
diff --git a/plugins/c9.ide.layout.classic/images/btnclose_flat_light.png b/plugins/c9.ide.layout.classic/images/btnclose_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/btnclose_flat_light.png
rename to plugins/c9.ide.layout.classic/images/btnclose_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/c9-logo-blue.png b/plugins/c9.ide.layout.classic/images/c9-logo-blue@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/c9-logo-blue.png
rename to plugins/c9.ide.layout.classic/images/c9-logo-blue@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/c9-logo-white.png b/plugins/c9.ide.layout.classic/images/c9-logo-white@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/c9-logo-white.png
rename to plugins/c9.ide.layout.classic/images/c9-logo-white@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/c9-no-repeat.png b/plugins/c9.ide.layout.classic/images/c9-no-repeat@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/c9-no-repeat.png
rename to plugins/c9.ide.layout.classic/images/c9-no-repeat@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/c9-no-repeat_flat_dark.png b/plugins/c9.ide.layout.classic/images/c9-no-repeat_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/c9-no-repeat_flat_dark.png
rename to plugins/c9.ide.layout.classic/images/c9-no-repeat_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/c9-no-repeat_flat_light.png b/plugins/c9.ide.layout.classic/images/c9-no-repeat_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/c9-no-repeat_flat_light.png
rename to plugins/c9.ide.layout.classic/images/c9-no-repeat_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/c9-repeat-x.png b/plugins/c9.ide.layout.classic/images/c9-repeat-x@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/c9-repeat-x.png
rename to plugins/c9.ide.layout.classic/images/c9-repeat-x@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/c9-repeat-x_flat_dark.png b/plugins/c9.ide.layout.classic/images/c9-repeat-x_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/c9-repeat-x_flat_dark.png
rename to plugins/c9.ide.layout.classic/images/c9-repeat-x_flat_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/c9-repeat-x_flat_light.png b/plugins/c9.ide.layout.classic/images/c9-repeat-x_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/c9-repeat-x_flat_light.png
rename to plugins/c9.ide.layout.classic/images/c9-repeat-x_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/checkbox_black.png b/plugins/c9.ide.layout.classic/images/checkbox_black@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/checkbox_black.png
rename to plugins/c9.ide.layout.classic/images/checkbox_black@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/checkbox_black_flat_light.png b/plugins/c9.ide.layout.classic/images/checkbox_black_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/checkbox_black_flat_light.png
rename to plugins/c9.ide.layout.classic/images/checkbox_black_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/checkbox_flat_light.png b/plugins/c9.ide.layout.classic/images/checkbox_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/checkbox_flat_light.png
rename to plugins/c9.ide.layout.classic/images/checkbox_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/clear_dark_flat_light.png b/plugins/c9.ide.layout.classic/images/clear_dark_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/clear_dark_flat_light.png
rename to plugins/c9.ide.layout.classic/images/clear_dark_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/clear_light_flat_light.png b/plugins/c9.ide.layout.classic/images/clear_light_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/clear_light_flat_light.png
rename to plugins/c9.ide.layout.classic/images/clear_light_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/close_tab_btn.png b/plugins/c9.ide.layout.classic/images/close_tab_btn@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/close_tab_btn.png
rename to plugins/c9.ide.layout.classic/images/close_tab_btn@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/close_tab_btn_flat_light.png b/plugins/c9.ide.layout.classic/images/close_tab_btn_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/close_tab_btn_flat_light.png
rename to plugins/c9.ide.layout.classic/images/close_tab_btn_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/dropdown-dark-glossy/button.png b/plugins/c9.ide.layout.classic/images/dropdown-dark-glossy/button@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/dropdown-dark-glossy/button.png
rename to plugins/c9.ide.layout.classic/images/dropdown-dark-glossy/button@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-selected.gif b/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-selected@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-selected.gif
rename to plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-selected@1x.gif
diff --git a/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-unfocus.gif b/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-unfocus@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-unfocus.gif
rename to plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-unfocus@1x.gif
diff --git a/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-unfocus_flat_light.gif b/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-unfocus_flat_light@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-unfocus_flat_light.gif
rename to plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark-unfocus_flat_light@1x.gif
diff --git a/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark.gif b/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark.gif
rename to plugins/c9.ide.layout.classic/images/file-tree-load-spinner-dark@1x.gif
diff --git a/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-selected.gif b/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-selected@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/file-tree-load-spinner-selected.gif
rename to plugins/c9.ide.layout.classic/images/file-tree-load-spinner-selected@1x.gif
diff --git a/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-selected_flat_light.gif b/plugins/c9.ide.layout.classic/images/file-tree-load-spinner-selected_flat_light@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/file-tree-load-spinner-selected_flat_light.gif
rename to plugins/c9.ide.layout.classic/images/file-tree-load-spinner-selected_flat_light@1x.gif
diff --git a/plugins/c9.ide.layout.classic/images/file-tree-load-spinner.gif b/plugins/c9.ide.layout.classic/images/file-tree-load-spinner@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/file-tree-load-spinner.gif
rename to plugins/c9.ide.layout.classic/images/file-tree-load-spinner@1x.gif
diff --git a/plugins/c9.ide.layout.classic/images/file-tree-load-spinner_flat_light.gif b/plugins/c9.ide.layout.classic/images/file-tree-load-spinner_flat_light@1x.gif
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/file-tree-load-spinner_flat_light.gif
rename to plugins/c9.ide.layout.classic/images/file-tree-load-spinner_flat_light@1x.gif
diff --git a/plugins/c9.ide.layout.classic/images/gecko_mask_flat_light.png b/plugins/c9.ide.layout.classic/images/gecko_mask_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/gecko_mask_flat_light.png
rename to plugins/c9.ide.layout.classic/images/gecko_mask_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/loading-logo.png b/plugins/c9.ide.layout.classic/images/loading-logo@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/loading-logo.png
rename to plugins/c9.ide.layout.classic/images/loading-logo@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/maximize.png b/plugins/c9.ide.layout.classic/images/maximize@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/maximize.png
rename to plugins/c9.ide.layout.classic/images/maximize@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/maximize_dark.png b/plugins/c9.ide.layout.classic/images/maximize_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/maximize_dark.png
rename to plugins/c9.ide.layout.classic/images/maximize_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/running_flat_light.png b/plugins/c9.ide.layout.classic/images/running_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/running_flat_light.png
rename to plugins/c9.ide.layout.classic/images/running_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tab-save-spinner-active.png b/plugins/c9.ide.layout.classic/images/tab-save-spinner-active@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tab-save-spinner-active.png
rename to plugins/c9.ide.layout.classic/images/tab-save-spinner-active@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tab-save-spinner-active_flat_light.png b/plugins/c9.ide.layout.classic/images/tab-save-spinner-active_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tab-save-spinner-active_flat_light.png
rename to plugins/c9.ide.layout.classic/images/tab-save-spinner-active_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tab_menu.png b/plugins/c9.ide.layout.classic/images/tab_menu@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tab_menu.png
rename to plugins/c9.ide.layout.classic/images/tab_menu@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tab_menu_dark.png b/plugins/c9.ide.layout.classic/images/tab_menu_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tab_menu_dark.png
rename to plugins/c9.ide.layout.classic/images/tab_menu_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tab_menu_flat_light.png b/plugins/c9.ide.layout.classic/images/tab_menu_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tab_menu_flat_light.png
rename to plugins/c9.ide.layout.classic/images/tab_menu_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tab_plus.png b/plugins/c9.ide.layout.classic/images/tab_plus@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tab_plus.png
rename to plugins/c9.ide.layout.classic/images/tab_plus@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tab_plus_dark.png b/plugins/c9.ide.layout.classic/images/tab_plus_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tab_plus_dark.png
rename to plugins/c9.ide.layout.classic/images/tab_plus_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tab_plus_flat_light.png b/plugins/c9.ide.layout.classic/images/tab_plus_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tab_plus_flat_light.png
rename to plugins/c9.ide.layout.classic/images/tab_plus_flat_light@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tabsave-flat.png b/plugins/c9.ide.layout.classic/images/tabsave-flat@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tabsave-flat.png
rename to plugins/c9.ide.layout.classic/images/tabsave-flat@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tabsave.png b/plugins/c9.ide.layout.classic/images/tabsave@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tabsave.png
rename to plugins/c9.ide.layout.classic/images/tabsave@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tree_close_arrow_small.png b/plugins/c9.ide.layout.classic/images/tree_close_arrow_small@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tree_close_arrow_small.png
rename to plugins/c9.ide.layout.classic/images/tree_close_arrow_small@1x.png
diff --git a/plugins/c9.ide.layout.classic/images/tree_close_arrow_small_dark.png b/plugins/c9.ide.layout.classic/images/tree_close_arrow_small_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.layout.classic/images/tree_close_arrow_small_dark.png
rename to plugins/c9.ide.layout.classic/images/tree_close_arrow_small_dark@1x.png
diff --git a/plugins/c9.ide.layout.classic/layout.js b/plugins/c9.ide.layout.classic/layout.js
index c2f32a63..e68821b0 100644
--- a/plugins/c9.ide.layout.classic/layout.js
+++ b/plugins/c9.ide.layout.classic/layout.js
@@ -24,6 +24,8 @@ define(function(require, exports, module) {
var plugin = new Plugin("Ajax.org", main.consumes);
var emit = plugin.getEmitter();
+ var highResolution = c9.location.indexOf("2x=1") > -1;
+
var dashboardUrl = options.dashboardUrl || "/dashboard.html";
var logobar, removeTheme, theme;
@@ -109,7 +111,7 @@ define(function(require, exports, module) {
// Offline
// preload the offline images programmatically:
[
- "noconnection.png", "close_tab_btn.png"
+ "close_tab_btn@1x.png"
].forEach(function(p) {
var img = new Image();
img.src = options.staticPrefix + "/images/" + p;
@@ -135,6 +137,15 @@ define(function(require, exports, module) {
"flat-dark": 1
};
+ function setImageResolution(value) {
+ if (window.matchMedia) {
+ var mq = window.matchMedia("(-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx) ");
+ if (mq.matches || highResolution)
+ return value.replace(/@1x/g, "@2x");
+ }
+ return value;
+ }
+
function updateTheme(noquestion, type) {
var sTheme = settings.get("user/general/@skin");
if (!allowedThemes[sTheme])
@@ -160,6 +171,8 @@ define(function(require, exports, module) {
theme = theme.replace(/(url\(["']?)\/static\/plugins\//g, function(_, x) {
return x + url;
});
+ theme = setImageResolution(theme);
+
// Load the theme css
ui.insertCss(theme, false, {
addOther: function(remove) { removeTheme = remove; }
diff --git a/plugins/c9.ide.layout.classic/less/button.less b/plugins/c9.ide.layout.classic/less/button.less
index 4bab093e..48d5c467 100644
--- a/plugins/c9.ide.layout.classic/less/button.less
+++ b/plugins/c9.ide.layout.classic/less/button.less
@@ -450,10 +450,9 @@
.submenu .lbl .btnArrow {
display : inline-block;
- background-image : url("@{image-path}/arrow_small.png");
+ background-image : url("@{image-path}/btn-arrow.png");
background-repeat : no-repeat;
}
-
.btn .lbl {
margin : 0;
diff --git a/plugins/c9.ide.layout.classic/less/datagrid.less b/plugins/c9.ide.layout.classic/less/datagrid.less
index 1efbbb10..2b961978 100644
--- a/plugins/c9.ide.layout.classic/less/datagrid.less
+++ b/plugins/c9.ide.layout.classic/less/datagrid.less
@@ -413,7 +413,7 @@
}
.datagrid .loading>.treecell strong{
- background : url("@{image-path}/file-tree-load-spinner.gif") no-repeat 0 0;
+ .image-2x("@{tree-spinner}", @tree-spinner-width, @tree-spinner-height);
width : 16px;
height : 16px;
top : -2px !important;
@@ -422,7 +422,7 @@
margin-right : -3px !important;
}
.datagrid .loading.selected>.treecell strong{
- background : url("@{image-path}/file-tree-load-spinner-selected.gif") no-repeat 0 0;
+ .image-2x("@{tree-selected-focus-spinner}", @tree-spinner-width, @tree-spinner-height);
}
.datagrid .row>span{
vertical-align : top;
diff --git a/plugins/c9.ide.layout.classic/less/frame.less b/plugins/c9.ide.layout.classic/less/frame.less
index 735fc232..70833dff 100644
--- a/plugins/c9.ide.layout.classic/less/frame.less
+++ b/plugins/c9.ide.layout.classic/less/frame.less
@@ -59,11 +59,11 @@
position : absolute;
right : 5px;
top : 4px;
- background : url("@{image-path}/@{frame-close-button}") no-repeat 0 -14px;
+ background : url("@{image-path}/@{frame-close-button}") 0 -14px/42px 28px no-repeat;
cursor : pointer;
z-index : 10;
}
-
+
.frame .buttons div.close:hover { background-position : -14px -14px; }
.frame .buttons div.close:active { background-position : -28px -14px; }
diff --git a/plugins/c9.ide.layout.classic/less/lesshat.less b/plugins/c9.ide.layout.classic/less/lesshat.less
index 302260e5..ade915fe 100755
--- a/plugins/c9.ide.layout.classic/less/lesshat.less
+++ b/plugins/c9.ide.layout.classic/less/lesshat.less
@@ -20,13 +20,9 @@
.image-2x(@image; @width; @height; @repeat: no-repeat; @important: false) {
@filename : ~`/(.*)\.(jpg|jpeg|png|gif)|$/.exec(@{image})[1] || ""`;
@extension : ~`/(.*)\.(jpg|jpeg|png|gif)|$/.exec(@{image})[2] || ""`;
- background-image: ~`(function(){ return "url(@{filename}.@{extension})" + ("@{important}" == "true" ? ' !important' : '');})()`;
background-repeat: @repeat;
-
- @media (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx) {
- background-image: ~`(function(){ return "url(@{filename}@2x.@{extension})" + ("@{important}" == "true" ? ' !important' : '');})()`;
- background-size: ~`(function(){ return "@{width} @{height}" + ("@{important}" == "true" ? ' !important' : '');})()`;
- }
+ background-image: ~`(function(){ return "url(@{filename}@1x.@{extension})" + ("@{important}" == "true" ? ' !important' : '');})()`;
+ background-size: ~`(function(){ return "@{width} @{height}" + ("@{important}" == "true" ? ' !important' : '');})()`;
}
.display(@state){
.display(@state) when (@state = true) {
diff --git a/plugins/c9.ide.layout.classic/less/searchbox.less b/plugins/c9.ide.layout.classic/less/searchbox.less
index 461ec5aa..60e51805 100644
--- a/plugins/c9.ide.layout.classic/less/searchbox.less
+++ b/plugins/c9.ide.layout.classic/less/searchbox.less
@@ -114,7 +114,7 @@
font-smoothing: true;
}
.searchbox.dark .btnclose{
- background-image: url("@{image-path}/btnclose_flat_light.png");
+ .image-2x("@{image-path}/btnclose_flat_light.png", 14px, 28px);
}
.searchbox.dark .ace-tm .ace_cursor{
color : #919191 !important;
diff --git a/plugins/c9.ide.layout.classic/loading-flat.css b/plugins/c9.ide.layout.classic/loading-flat.css
index 25c7e30e..2808067b 100644
--- a/plugins/c9.ide.layout.classic/loading-flat.css
+++ b/plugins/c9.ide.layout.classic/loading-flat.css
@@ -27,7 +27,7 @@
}
#c9logo{
- background-image: url(images/c9-logo-blue.png);
+ background-image: url(images/c9-logo-blue@1x.png);
background-repeat: no-repeat;
background-position: 50% 30%;
position: relative;
@@ -38,7 +38,7 @@
height: 279px;
}
.dark #c9logo{
- background-image: url(images/c9-logo-white.png);
+ background-image: url(images/c9-logo-white@1x.png);
}
@media screen and (max-height: 600px) {
diff --git a/plugins/c9.ide.layout.classic/loading.css b/plugins/c9.ide.layout.classic/loading.css
index e9a7c34d..ca46f202 100644
--- a/plugins/c9.ide.layout.classic/loading.css
+++ b/plugins/c9.ide.layout.classic/loading.css
@@ -1,5 +1,5 @@
#loadingide {
- background-image: url(images/loading-logo.png);
+ background-image: url(images/loading-logo@1x.png);
background-repeat: no-repeat;
background-color: #222222;
background-position: 50% 40%;
diff --git a/plugins/c9.ide.layout.classic/skins.xml b/plugins/c9.ide.layout.classic/skins.xml
index 98a24f02..4ec81650 100644
--- a/plugins/c9.ide.layout.classic/skins.xml
+++ b/plugins/c9.ide.layout.classic/skins.xml
@@ -69,7 +69,6 @@
diff --git a/plugins/c9.ide.layout.classic/themes/default-dark-gray.less b/plugins/c9.ide.layout.classic/themes/default-dark-gray.less
index 7246ca15..49b067d2 100644
--- a/plugins/c9.ide.layout.classic/themes/default-dark-gray.less
+++ b/plugins/c9.ide.layout.classic/themes/default-dark-gray.less
@@ -230,8 +230,8 @@
@time-slider-play-border: 3px solid black;
@time-slider-play-gradient: linear-gradient(to bottom, rgb(63, 63, 63), rgb(39, 39, 39));
@time-slider-play-box-shadow: 4px 6px 13px 0px rgba(0, 0, 0, 0.65), 0 1px rgba(255, 255, 255, 0.08);
-@time-slider-play-icon-image: "@{image-path}/play.png";
-@time-slider-play-icon-pause-image: "@{image-path}/pause.png";
+@time-slider-play-icon-image: "plugins/c9.ide.collab/timeslider/images/play.png";
+@time-slider-play-icon-pause-image: "plugins/c9.ide.collab/timeslider/images/pause.png";
@time-slider-play-icon-image-width: 47px;
@time-slider-play-icon-image-height: 47px;
@time-slider-play-icon-background-position: -7px -6px;
@@ -272,7 +272,7 @@
@time-slider-stepper-top: 20px;
@time-slider-stepper-width: 25px;
@time-slider-stepper-height: 20px;
-@time-slider-stepper-image: "@{image-path}/stepper_buttons.png";
+@time-slider-stepper-image: "plugins/c9.ide.collab/timeslider/images/stepper_buttons.png";
@time-slider-stepper-image-width: 23px;
@time-slider-stepper-image-height: 14px;
@@ -328,7 +328,7 @@
@time-slider-revert-active-gradient: linear-gradient(to bottom, rgb(43, 43, 43) 0%, rgb(36, 36, 36) 100%);
@time-slider-revert-active-padding: 2px 0px 0px 1px;
-@time-slider-close-image: "@{image-path}/close_tab_btn.png";
+@time-slider-close-image: "plugins/c9.ide.collab/timeslider/images/close_tab_btn.png";
@time-slider-close-image-width: 42px;
@time-slider-close-image-height: 28px;
@time-slider-close-idle-position: 0 -14px;
@@ -465,7 +465,7 @@
@pane-menu-upward-active-box-shadow: 0 1px lighten(#3d3d3d, @lighten-chrome), inset 0 -1px lighten(#525356, @lighten-chrome);
@pane-menu-upward-active-gradient: linear-gradient(to bottom, lighten(#494949, @lighten-chrome) 0%, lighten(#4b4b4c, @lighten-chrome) 100%);
-@pane-menu-splits-image: "@{image-path}/splits.png";
+@pane-menu-splits-image: "plugins/c9.ide.behaviors/images/splits.png";
@pane-menu-splits-image-width: 138px;
@pane-menu-splits-image-height: 54px;
@@ -977,7 +977,6 @@
@button-console-active-background: lighten(rgba(0, 0, 0, 0.09), @lighten-chrome);
@button-console-close: "console_close_btn_dark.png";
-@button-console-close-retina: "console_close_btn_dark@2x.png";
@button-console-clear: "clear_dark.png";
@button-console-maximize: "maximize_dark.png";
@button-console-popout: "popout_dark.png";
@@ -1095,15 +1094,15 @@
@preview-chooser-font-size: 11px;
@preview-chooser-font-weight: bold;
-@preview-icon-close: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-close: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-close-width: 23px;
@preview-icon-close-height: 280px;
@preview-icon-close-position: 0 -66px;
-@preview-icon-refresh: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-refresh: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-refresh-width: 23px;
@preview-icon-refresh-height: 280px;
@preview-icon-refresh-position: 0 -89px;;
-@preview-icon-popout: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-popout: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-popout-width: 23px;
@preview-icon-popout-height: 280px;
@preview-icon-popout-position: 0 -114px;
@@ -1111,12 +1110,12 @@
@preview-icon-settings-width: @c9-repeat-x-width;
@preview-icon-settings-height: @c9-repeat-x-height;
@preview-icon-settings-position: 50% -366px;
-@preview-icon-goforward: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-goforward: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-goforward-width: 23px;
@preview-icon-goforward-height: 280px;
@preview-icon-goforward-position: 0 -185px;
@preview-icon-goforward-disabled-position: 0 -209px;
-@preview-icon-goback: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-goback: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-goback-width: 23px;
@preview-icon-goback-height: 280px;
@preview-icon-goback-position: 0 -137px;
@@ -1388,23 +1387,23 @@
@complete-dark-paramhelp: lighten(#FFFFFF, @lighten-chrome);
// Complete Icons
-@complete-icon-event: "@{image-path}/event.png";
-@complete-icon-method: "@{image-path}/method.png";
-@complete-icon-method2: "@{image-path}/method2.png";
-@complete-icon-package: "@{image-path}/package.png";
-@complete-icon-property: "@{image-path}/property.png";
-@complete-icon-property2: "@{image-path}/property2.png";
+@complete-icon-event: "plugins/c9.ide.language/images/event.png";
+@complete-icon-method: "plugins/c9.ide.language/images/method.png";
+@complete-icon-method2: "plugins/c9.ide.language/images/method2.png";
+@complete-icon-package: "plugins/c9.ide.language/images/package.png";
+@complete-icon-property: "plugins/c9.ide.language/images/property.png";
+@complete-icon-property2: "plugins/c9.ide.language/images/property2.png";
// Welcome
@welcome-color: #333;
-@welcome-background: lighten(#193342, @lighten-chrome) url("@{image-path}/welcome-cover.png");
+@welcome-background: lighten(#193342, @lighten-chrome) url("plugins/c9.ide.welcome/images/welcome-cover.png");
@welcome-top-border: lighten(rgba(255,255,255,0.03), @lighten-chrome);
@welcome-color: lighten(#f1f1f1, @lighten-chrome);
@welcome-font-smoothing: true;
@welcome-highlight-color: lighten(#9BB11D, @lighten-chrome);
@welcome-panel-border-color: lighten(rgba(255, 255, 255, 0.09), @lighten-chrome);
@welcome-panel-background: lighten(rgba(255, 255, 255, 0.08), @lighten-chrome);
-@welcome-logo-image: "@{image-path}/welcome-logo.png";
+@welcome-logo-image: "plugins/c9.ide.welcome/images/welcome-logo.png";
@welcome-logo-image-width: 155px;
@welcome-logo-image-height: 103px;
@welcome-alter-widgets: true;
diff --git a/plugins/c9.ide.layout.classic/themes/default-dark.less b/plugins/c9.ide.layout.classic/themes/default-dark.less
index bdcb5ab8..810924b8 100644
--- a/plugins/c9.ide.layout.classic/themes/default-dark.less
+++ b/plugins/c9.ide.layout.classic/themes/default-dark.less
@@ -230,8 +230,8 @@
@time-slider-play-border: 3px solid black;
@time-slider-play-gradient: linear-gradient(to bottom, rgb(63, 63, 63), rgb(39, 39, 39));
@time-slider-play-box-shadow: 4px 6px 13px 0px rgba(0, 0, 0, 0.65), 0 1px rgba(255, 255, 255, 0.08);
-@time-slider-play-icon-image: "@{image-path}/play.png";
-@time-slider-play-icon-pause-image: "@{image-path}/pause.png";
+@time-slider-play-icon-image: "plugins/c9.ide.collab/timeslider/images/play.png";
+@time-slider-play-icon-pause-image: "plugins/c9.ide.collab/timeslider/images/pause.png";
@time-slider-play-icon-image-width: 47px;
@time-slider-play-icon-image-height: 47px;
@time-slider-play-icon-background-position: -7px -6px;
@@ -272,7 +272,7 @@
@time-slider-stepper-top: 20px;
@time-slider-stepper-width: 25px;
@time-slider-stepper-height: 20px;
-@time-slider-stepper-image: "@{image-path}/stepper_buttons.png";
+@time-slider-stepper-image: "plugins/c9.ide.collab/timeslider/images/stepper_buttons.png";
@time-slider-stepper-image-width: 23px;
@time-slider-stepper-image-height: 14px;
@@ -328,7 +328,7 @@
@time-slider-revert-active-gradient: linear-gradient(to bottom, rgb(43, 43, 43) 0%, rgb(36, 36, 36) 100%);
@time-slider-revert-active-padding: 2px 0px 0px 1px;
-@time-slider-close-image: "@{image-path}/close_tab_btn.png";
+@time-slider-close-image: "plugins/c9.ide.collab/timeslider/images/close_tab_btn.png";
@time-slider-close-image-width: 42px;
@time-slider-close-image-height: 28px;
@time-slider-close-idle-position: 0 -14px;
@@ -465,7 +465,7 @@
@pane-menu-upward-active-box-shadow: 0 1px lighten(#3d3d3d, @lighten-chrome), inset 0 -1px lighten(#525356, @lighten-chrome);
@pane-menu-upward-active-gradient: linear-gradient(to bottom, lighten(#494949, @lighten-chrome) 0%, lighten(#4b4b4c, @lighten-chrome) 100%);
-@pane-menu-splits-image: "@{image-path}/splits.png";
+@pane-menu-splits-image: "plugins/c9.ide.behaviors/images/splits.png";
@pane-menu-splits-image-width: 138px;
@pane-menu-splits-image-height: 54px;
@@ -977,7 +977,6 @@
@button-console-active-background: lighten(rgba(0, 0, 0, 0.09), @lighten-chrome);
@button-console-close: "console_close_btn_dark.png";
-@button-console-close-retina: "console_close_btn_dark@2x.png";
@button-console-clear: "clear_dark.png";
@button-console-maximize: "maximize_dark.png";
@button-console-popout: "popout_dark.png";
@@ -1095,15 +1094,15 @@
@preview-chooser-font-size: 11px;
@preview-chooser-font-weight: bold;
-@preview-icon-close: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-close: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-close-width: 23px;
@preview-icon-close-height: 280px;
@preview-icon-close-position: 0 -66px;
-@preview-icon-refresh: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-refresh: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-refresh-width: 23px;
@preview-icon-refresh-height: 280px;
@preview-icon-refresh-position: 0 -89px;;
-@preview-icon-popout: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-popout: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-popout-width: 23px;
@preview-icon-popout-height: 280px;
@preview-icon-popout-position: 0 -114px;
@@ -1111,12 +1110,12 @@
@preview-icon-settings-width: @c9-repeat-x-width;
@preview-icon-settings-height: @c9-repeat-x-height;
@preview-icon-settings-position: 50% -366px;
-@preview-icon-goforward: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-goforward: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-goforward-width: 23px;
@preview-icon-goforward-height: 280px;
@preview-icon-goforward-position: 0 -185px;
@preview-icon-goforward-disabled-position: 0 -209px;
-@preview-icon-goback: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-goback: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-goback-width: 23px;
@preview-icon-goback-height: 280px;
@preview-icon-goback-position: 0 -137px;
@@ -1388,23 +1387,23 @@
@complete-dark-paramhelp: lighten(#FFFFFF, @lighten-chrome);
// Complete Icons
-@complete-icon-event: "@{image-path}/event.png";
-@complete-icon-method: "@{image-path}/method.png";
-@complete-icon-method2: "@{image-path}/method2.png";
-@complete-icon-package: "@{image-path}/package.png";
-@complete-icon-property: "@{image-path}/property.png";
-@complete-icon-property2: "@{image-path}/property2.png";
+@complete-icon-event: "plugins/c9.ide.language/images/event.png";
+@complete-icon-method: "plugins/c9.ide.language/images/method.png";
+@complete-icon-method2: "plugins/c9.ide.language/images/method2.png";
+@complete-icon-package: "plugins/c9.ide.language/images/package.png";
+@complete-icon-property: "plugins/c9.ide.language/images/property.png";
+@complete-icon-property2: "plugins/c9.ide.language/images/property2.png";
// Welcome
@welcome-color: #333;
-@welcome-background: lighten(#193342, @lighten-chrome) url("@{image-path}/welcome-cover.png");
+@welcome-background: lighten(#193342, @lighten-chrome) url("plugins/c9.ide.welcome/images/welcome-cover.png");
@welcome-top-border: lighten(rgba(255,255,255,0.03), @lighten-chrome);
@welcome-color: lighten(#f1f1f1, @lighten-chrome);
@welcome-font-smoothing: true;
@welcome-highlight-color: lighten(#9BB11D, @lighten-chrome);
@welcome-panel-border-color: lighten(rgba(255, 255, 255, 0.09), @lighten-chrome);
@welcome-panel-background: lighten(rgba(255, 255, 255, 0.08), @lighten-chrome);
-@welcome-logo-image: "@{image-path}/welcome-logo.png";
+@welcome-logo-image: "plugins/c9.ide.welcome/images/welcome-logo.png";
@welcome-logo-image-width: 155px;
@welcome-logo-image-height: 103px;
@welcome-alter-widgets: true;
diff --git a/plugins/c9.ide.layout.classic/themes/default-flat-dark.less b/plugins/c9.ide.layout.classic/themes/default-flat-dark.less
index adbed39c..33afc183 100644
--- a/plugins/c9.ide.layout.classic/themes/default-flat-dark.less
+++ b/plugins/c9.ide.layout.classic/themes/default-flat-dark.less
@@ -230,8 +230,8 @@
@time-slider-play-border: 0;
@time-slider-play-gradient: linear-gradient(to bottom, #757574, #757574);
@time-slider-play-box-shadow: none;
-@time-slider-play-icon-image: "@{image-path}/play_flat_dark.png";
-@time-slider-play-icon-pause-image: "@{image-path}/pause_flat_dark.png";
+@time-slider-play-icon-image: "plugins/c9.ide.collab/timeslider/images/play_flat_dark.png";
+@time-slider-play-icon-pause-image: "plugins/c9.ide.collab/timeslider/images/pause_flat_dark.png";
@time-slider-play-icon-image-width: 5px;
@time-slider-play-icon-image-height: 8px;
@time-slider-play-icon-background-position: 50% 50%;
@@ -272,7 +272,7 @@
@time-slider-stepper-top: 39px;
@time-slider-stepper-width: 16px;
@time-slider-stepper-height: 16px;
-@time-slider-stepper-image: "@{image-path}/stepper_buttons_flat_light.png";
+@time-slider-stepper-image: "plugins/c9.ide.collab/timeslider/images/stepper_buttons_flat_light.png";
@time-slider-stepper-image-width: 21px;
@time-slider-stepper-image-height: 8px;
@@ -328,7 +328,7 @@
@time-slider-revert-active-gradient: linear-gradient(to bottom, #98c878 0%, #98c878 100%);
@time-slider-revert-active-padding: @time-slider-revert-padding;
-@time-slider-close-image: "@{image-path}/close_tab_btn_flat_light.png";
+@time-slider-close-image: "plugins/c9.ide.collab/timeslider/images/close_tab_btn_flat_light.png";
@time-slider-close-image-width: 42px;
@time-slider-close-image-height: 28px;
@time-slider-close-idle-position: 0 0;
@@ -465,7 +465,7 @@
@pane-menu-upward-active-box-shadow: 0 1px darken(rgba(255, 255, 255, 0.6), @darken-chrome), inset 0 -1px darken(rgb(255, 255, 255), @darken-chrome);
@pane-menu-upward-active-gradient: linear-gradient(to bottom, @menu-background 0%, @menu-background 100%);
-@pane-menu-splits-image: "@{image-path}/splits_flat_dark.png";
+@pane-menu-splits-image: "plugins/c9.ide.behaviors/images/splits_flat_dark.png";
@pane-menu-splits-image-width: 138px;
@pane-menu-splits-image-height: 53px;
@@ -977,7 +977,6 @@
@button-console-active-background: darken(rgba(255, 255, 255, 0.4), @darken-chrome);
@button-console-close: "console_close_btn.png";
-@button-console-close-retina: "console_close_btn@2x.png";
@button-console-clear: "clear_dark_flat_light.png";
@button-console-maximize: "maximize.png";
@button-console-popout: "popout.png";
@@ -1095,28 +1094,28 @@
@preview-chooser-font-size: 12px;
@preview-chooser-font-weight: normal;
-@preview-icon-close: "@{image-path}/c9-preview-repeat_flat_dark.png";
+@preview-icon-close: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_dark.png";
@preview-icon-close-width: 23px;
@preview-icon-close-height: 280px;
@preview-icon-close-position: 0 -65px;
-@preview-icon-refresh: "@{image-path}/c9-preview-repeat_flat_dark.png";
+@preview-icon-refresh: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_dark.png";
@preview-icon-refresh-width: 23px;
@preview-icon-refresh-height: 280px;
@preview-icon-refresh-position: 0 -88px;;
-@preview-icon-popout: "@{image-path}/c9-preview-repeat_flat_dark.png";
+@preview-icon-popout: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_dark.png";
@preview-icon-popout-width: 23px;
@preview-icon-popout-height: 280px;
@preview-icon-popout-position: 0 -113px;
-@preview-icon-settings: "@{image-path}/c9-preview-repeat_flat_dark.png";
+@preview-icon-settings: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_dark.png";
@preview-icon-settings-width: 23px;
@preview-icon-settings-height: 280px;
@preview-icon-settings-position: -1px -33px;
-@preview-icon-goforward: "@{image-path}/c9-preview-repeat_flat_dark.png";
+@preview-icon-goforward: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_dark.png";
@preview-icon-goforward-width: 23px;
@preview-icon-goforward-height: 280px;
@preview-icon-goforward-position: 0 -184px;
@preview-icon-goforward-disabled-position: 0 -209px;
-@preview-icon-goback: "@{image-path}/c9-preview-repeat_flat_dark.png";
+@preview-icon-goback: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_dark.png";
@preview-icon-goback-width: 23px;
@preview-icon-goback-height: 280px;
@preview-icon-goback-position: 0 -136px;
@@ -1388,23 +1387,23 @@
@complete-dark-paramhelp: darken(#494949, @darken-chrome);
// Complete Icons
-@complete-icon-event: "@{image-path}/event_flat_light.png";
-@complete-icon-method: "@{image-path}/method_flat_light.png";
-@complete-icon-method2: "@{image-path}/method2_flat_light.png";
-@complete-icon-package: "@{image-path}/package_flat_light.png";
-@complete-icon-property: "@{image-path}/property_flat_light.png";
-@complete-icon-property2: "@{image-path}/property2_flat_light.png";
+@complete-icon-event: "plugins/c9.ide.language/images/event_flat_light.png";
+@complete-icon-method: "plugins/c9.ide.language/images/method_flat_light.png";
+@complete-icon-method2: "plugins/c9.ide.language/images/method2_flat_light.png";
+@complete-icon-package: "plugins/c9.ide.language/images/package_flat_light.png";
+@complete-icon-property: "plugins/c9.ide.language/images/property_flat_light.png";
+@complete-icon-property2: "plugins/c9.ide.language/images/property2_flat_light.png";
// Welcome
@welcome-color: #333;
-@welcome-background: darken(#193342, @darken-chrome) url("@{image-path}/welcome-cover.png");
+@welcome-background: darken(#193342, @darken-chrome) url("plugins/c9.ide.welcome/images/welcome-cover.png");
@welcome-top-border: darken(rgba(255,255,255,0.03), @darken-chrome);
@welcome-color: darken(#f1f1f1, @darken-chrome);
@welcome-font-smoothing: true;
@welcome-highlight-color: darken(#9BB11D, @darken-chrome);
@welcome-panel-border-color: darken(rgba(255, 255, 255, 0.09), @darken-chrome);
@welcome-panel-background: darken(rgba(255, 255, 255, 0.08), @darken-chrome);
-@welcome-logo-image: "@{image-path}/welcome-logo.png";
+@welcome-logo-image: "plugins/c9.ide.welcome/images/welcome-logo.png";
@welcome-logo-image-width: 155px;
@welcome-logo-image-height: 103px;
@welcome-alter-widgets: true;
diff --git a/plugins/c9.ide.layout.classic/themes/default-flat-light.less b/plugins/c9.ide.layout.classic/themes/default-flat-light.less
index 27427342..75534499 100644
--- a/plugins/c9.ide.layout.classic/themes/default-flat-light.less
+++ b/plugins/c9.ide.layout.classic/themes/default-flat-light.less
@@ -230,8 +230,8 @@
@time-slider-play-border: 0;
@time-slider-play-gradient: linear-gradient(to bottom, #757574, #757574);
@time-slider-play-box-shadow: none;
-@time-slider-play-icon-image: "@{image-path}/play_flat_light.png";
-@time-slider-play-icon-pause-image: "@{image-path}/pause_flat_light.png";
+@time-slider-play-icon-image: "plugins/c9.ide.collab/timeslider/images/play_flat_light.png";
+@time-slider-play-icon-pause-image: "plugins/c9.ide.collab/timeslider/images/pause_flat_light.png";
@time-slider-play-icon-image-width: 5px;
@time-slider-play-icon-image-height: 8px;
@time-slider-play-icon-background-position: 50% 50%;
@@ -272,7 +272,7 @@
@time-slider-stepper-top: 39px;
@time-slider-stepper-width: 16px;
@time-slider-stepper-height: 16px;
-@time-slider-stepper-image: "@{image-path}/stepper_buttons_flat_light.png";
+@time-slider-stepper-image: "plugins/c9.ide.collab/timeslider/images/stepper_buttons_flat_light.png";
@time-slider-stepper-image-width: 21px;
@time-slider-stepper-image-height: 8px;
@@ -328,7 +328,7 @@
@time-slider-revert-active-gradient: linear-gradient(to bottom, #98c878 0%, #98c878 100%);
@time-slider-revert-active-padding: @time-slider-revert-padding;
-@time-slider-close-image: "@{image-path}/close_tab_btn.png";
+@time-slider-close-image: "plugins/c9.ide.collab/timeslider/images/close_tab_btn.png";
@time-slider-close-image-width: 42px;
@time-slider-close-image-height: 28px;
@time-slider-close-idle-position: 0 0;
@@ -465,7 +465,7 @@
@pane-menu-upward-active-box-shadow: 0 1px darken(rgba(255, 255, 255, 0.6), @darken-chrome), inset 0 -1px darken(rgb(255, 255, 255), @darken-chrome);
@pane-menu-upward-active-gradient: linear-gradient(to bottom, white 0%, white 100%);
-@pane-menu-splits-image: "@{image-path}/splits_flat_light.png";
+@pane-menu-splits-image: "plugins/c9.ide.behaviors/images/splits_flat_light.png";
@pane-menu-splits-image-width: 138px;
@pane-menu-splits-image-height: 53px;
@@ -977,7 +977,6 @@
@button-console-active-background: darken(rgba(255, 255, 255, 0.4), @darken-chrome);
@button-console-close: "console_close_btn.png";
-@button-console-close-retina: "console_close_btn@2x.png";
@button-console-clear: "clear_dark_flat_light.png";
@button-console-maximize: "maximize.png";
@button-console-popout: "popout.png";
@@ -1095,28 +1094,28 @@
@preview-chooser-font-size: 12px;
@preview-chooser-font-weight: normal;
-@preview-icon-close: "@{image-path}/c9-preview-repeat_flat_light.png";
+@preview-icon-close: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_light.png";
@preview-icon-close-width: 23px;
@preview-icon-close-height: 280px;
@preview-icon-close-position: 0 -65px;
-@preview-icon-refresh: "@{image-path}/c9-preview-repeat_flat_light.png";
+@preview-icon-refresh: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_light.png";
@preview-icon-refresh-width: 23px;
@preview-icon-refresh-height: 280px;
@preview-icon-refresh-position: 0 -88px;;
-@preview-icon-popout: "@{image-path}/c9-preview-repeat_flat_light.png";
+@preview-icon-popout: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_light.png";
@preview-icon-popout-width: 23px;
@preview-icon-popout-height: 280px;
@preview-icon-popout-position: 0 -113px;
-@preview-icon-settings: "@{image-path}/c9-preview-repeat_flat_light.png";
+@preview-icon-settings: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_light.png";
@preview-icon-settings-width: 23px;
@preview-icon-settings-height: 280px;
@preview-icon-settings-position: -1px -33px;
-@preview-icon-goforward: "@{image-path}/c9-preview-repeat_flat_light.png";
+@preview-icon-goforward: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_light.png";
@preview-icon-goforward-width: 23px;
@preview-icon-goforward-height: 280px;
@preview-icon-goforward-position: 0 -184px;
@preview-icon-goforward-disabled-position: 0 -209px;
-@preview-icon-goback: "@{image-path}/c9-preview-repeat_flat_light.png";
+@preview-icon-goback: "plugins/c9.ide.preview/images/c9-preview-repeat_flat_light.png";
@preview-icon-goback-width: 23px;
@preview-icon-goback-height: 280px;
@preview-icon-goback-position: 0 -136px;
@@ -1388,12 +1387,12 @@
@complete-dark-paramhelp: darken(#FFFFFF, @darken-chrome);
// Complete Icons
-@complete-icon-event: "@{image-path}/event_flat_light.png";
-@complete-icon-method: "@{image-path}/method_flat_light.png";
-@complete-icon-method2: "@{image-path}/method2_flat_light.png";
-@complete-icon-package: "@{image-path}/package_flat_light.png";
-@complete-icon-property: "@{image-path}/property_flat_light.png";
-@complete-icon-property2: "@{image-path}/property2_flat_light.png";
+@complete-icon-event: "plugins/c9.ide.language/images/event_flat_light.png";
+@complete-icon-method: "plugins/c9.ide.language/images/method_flat_light.png";
+@complete-icon-method2: "plugins/c9.ide.language/images/method2_flat_light.png";
+@complete-icon-package: "plugins/c9.ide.language/images/package_flat_light.png";
+@complete-icon-property: "plugins/c9.ide.language/images/property_flat_light.png";
+@complete-icon-property2: "plugins/c9.ide.language/images/property2_flat_light.png";
// Welcome
@welcome-color: #31a6d7;
diff --git a/plugins/c9.ide.layout.classic/themes/default-light-gray.less b/plugins/c9.ide.layout.classic/themes/default-light-gray.less
index 78595746..ee67dea6 100644
--- a/plugins/c9.ide.layout.classic/themes/default-light-gray.less
+++ b/plugins/c9.ide.layout.classic/themes/default-light-gray.less
@@ -272,7 +272,7 @@
@time-slider-stepper-top: 20px;
@time-slider-stepper-width: 25px;
@time-slider-stepper-height: 20px;
-@time-slider-stepper-image: "@{image-path}/stepper_buttons.png";
+@time-slider-stepper-image: "plugins/c9.ide.collab/timeslider/images/stepper_buttons.png";
@time-slider-stepper-image-width: 23px;
@time-slider-stepper-image-height: 14px;
@@ -465,7 +465,7 @@
@pane-menu-upward-active-box-shadow: 0 1px darken(rgba(255, 255, 255, 0.6), @darken-chrome), inset 0 -1px darken(rgb(255, 255, 255), @darken-chrome);
@pane-menu-upward-active-gradient: linear-gradient(to bottom, white 0%, white 100%);
-@pane-menu-splits-image: "@{image-path}/splits.png";
+@pane-menu-splits-image: "plugins/c9.ide.behaviors/images/splits.png";
@pane-menu-splits-image-width: 138px;
@pane-menu-splits-image-height: 54px;
@@ -977,7 +977,6 @@
@button-console-active-background: darken(rgba(255, 255, 255, 0.4), @darken-chrome);
@button-console-close: "console_close_btn.png";
-@button-console-close-retina: "console_close_btn@2x.png";
@button-console-clear: "clear.png";
@button-console-maximize: "maximize.png";
@button-console-popout: "popout.png";
@@ -1095,15 +1094,15 @@
@preview-chooser-font-size: 11px;
@preview-chooser-font-weight: bold;
-@preview-icon-close: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-close: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-close-width: 23px;
@preview-icon-close-height: 280px;
@preview-icon-close-position: 0 -66px;
-@preview-icon-refresh: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-refresh: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-refresh-width: 23px;
@preview-icon-refresh-height: 280px;
@preview-icon-refresh-position: 0 -89px;;
-@preview-icon-popout: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-popout: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-popout-width: 23px;
@preview-icon-popout-height: 280px;
@preview-icon-popout-position: 0 -114px;
@@ -1111,12 +1110,12 @@
@preview-icon-settings-width: @c9-repeat-x-width;
@preview-icon-settings-height: @c9-repeat-x-height;
@preview-icon-settings-position: 50% -366px;
-@preview-icon-goforward: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-goforward: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-goforward-width: 23px;
@preview-icon-goforward-height: 280px;
@preview-icon-goforward-position: 0 -185px;
@preview-icon-goforward-disabled-position: 0 -209px;
-@preview-icon-goback: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-goback: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-goback-width: 23px;
@preview-icon-goback-height: 280px;
@preview-icon-goback-position: 0 -137px;
@@ -1388,23 +1387,23 @@
@complete-dark-paramhelp: darken(#FFFFFF, @darken-chrome);
// Complete Icons
-@complete-icon-event: "@{image-path}/event.png";
-@complete-icon-method: "@{image-path}/method.png";
-@complete-icon-method2: "@{image-path}/method2.png";
-@complete-icon-package: "@{image-path}/package.png";
-@complete-icon-property: "@{image-path}/property.png";
-@complete-icon-property2: "@{image-path}/property2.png";
+@complete-icon-event: "plugins/c9.ide.language/images/event.png";
+@complete-icon-method: "plugins/c9.ide.language/images/method.png";
+@complete-icon-method2: "plugins/c9.ide.language/images/method2.png";
+@complete-icon-package: "plugins/c9.ide.language/images/package.png";
+@complete-icon-property: "plugins/c9.ide.language/images/property.png";
+@complete-icon-property2: "plugins/c9.ide.language/images/property2.png";
// Welcome
@welcome-color: #333;
-@welcome-background: darken(#C1D4E0, @darken-chrome) url("@{image-path}/welcome-cover-light.png");
+@welcome-background: darken(#C1D4E0, @darken-chrome) url("plugins/c9.ide.welcome/images/welcome-cover-light.png");
@welcome-top-border: darken(rgba(0,0,0, 0.06), @darken-chrome);
@welcome-color: darken(#333333, @darken-chrome);
@welcome-font-smoothing: false;
@welcome-highlight-color: @highlight-color;
@welcome-panel-border-color: darken(rgba(0, 0, 0, 0.04), @darken-chrome);
@welcome-panel-background: darken(rgba(0, 0, 0, 0.03), @darken-chrome);
-@welcome-logo-image: "@{image-path}/welcome-logo.png";
+@welcome-logo-image: "plugins/c9.ide.welcome/images/welcome-logo.png";
@welcome-logo-image-width: 155px;
@welcome-logo-image-height: 103px;
@welcome-alter-widgets: true;
diff --git a/plugins/c9.ide.layout.classic/themes/default-light.less b/plugins/c9.ide.layout.classic/themes/default-light.less
index bfdb8bc9..e35b47e0 100644
--- a/plugins/c9.ide.layout.classic/themes/default-light.less
+++ b/plugins/c9.ide.layout.classic/themes/default-light.less
@@ -272,7 +272,7 @@
@time-slider-stepper-top: 20px;
@time-slider-stepper-width: 25px;
@time-slider-stepper-height: 20px;
-@time-slider-stepper-image: "@{image-path}/stepper_buttons.png";
+@time-slider-stepper-image: "plugins/c9.ide.collab/timeslider/images/stepper_buttons.png";
@time-slider-stepper-image-width: 23px;
@time-slider-stepper-image-height: 14px;
@@ -465,7 +465,7 @@
@pane-menu-upward-active-box-shadow: 0 1px darken(rgba(255, 255, 255, 0.6), @darken-chrome), inset 0 -1px darken(rgb(255, 255, 255), @darken-chrome);
@pane-menu-upward-active-gradient: linear-gradient(to bottom, white 0%, white 100%);
-@pane-menu-splits-image: "@{image-path}/splits.png";
+@pane-menu-splits-image: "plugins/c9.ide.behaviors/images/splits.png";
@pane-menu-splits-image-width: 138px;
@pane-menu-splits-image-height: 54px;
@@ -977,7 +977,6 @@
@button-console-active-background: darken(rgba(255, 255, 255, 0.4), @darken-chrome);
@button-console-close: "console_close_btn.png";
-@button-console-close-retina: "console_close_btn@2x.png";
@button-console-clear: "clear.png";
@button-console-maximize: "maximize.png";
@button-console-popout: "popout.png";
@@ -1095,15 +1094,15 @@
@preview-chooser-font-size: 11px;
@preview-chooser-font-weight: bold;
-@preview-icon-close: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-close: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-close-width: 23px;
@preview-icon-close-height: 280px;
@preview-icon-close-position: 0 -66px;
-@preview-icon-refresh: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-refresh: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-refresh-width: 23px;
@preview-icon-refresh-height: 280px;
@preview-icon-refresh-position: 0 -89px;;
-@preview-icon-popout: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-popout: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-popout-width: 23px;
@preview-icon-popout-height: 280px;
@preview-icon-popout-position: 0 -114px;
@@ -1111,12 +1110,12 @@
@preview-icon-settings-width: @c9-repeat-x-width;
@preview-icon-settings-height: @c9-repeat-x-height;
@preview-icon-settings-position: 50% -366px;
-@preview-icon-goforward: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-goforward: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-goforward-width: 23px;
@preview-icon-goforward-height: 280px;
@preview-icon-goforward-position: 0 -185px;
@preview-icon-goforward-disabled-position: 0 -209px;
-@preview-icon-goback: "@{image-path}/c9-preview-repeat.png";
+@preview-icon-goback: "plugins/c9.ide.preview/images/c9-preview-repeat.png";
@preview-icon-goback-width: 23px;
@preview-icon-goback-height: 280px;
@preview-icon-goback-position: 0 -137px;
@@ -1388,23 +1387,23 @@
@complete-dark-paramhelp: darken(#FFFFFF, @darken-chrome);
// Complete Icons
-@complete-icon-event: "@{image-path}/event.png";
-@complete-icon-method: "@{image-path}/method.png";
-@complete-icon-method2: "@{image-path}/method2.png";
-@complete-icon-package: "@{image-path}/package.png";
-@complete-icon-property: "@{image-path}/property.png";
-@complete-icon-property2: "@{image-path}/property2.png";
+@complete-icon-event: "plugins/c9.ide.language/images/event.png";
+@complete-icon-method: "plugins/c9.ide.language/images/method.png";
+@complete-icon-method2: "plugins/c9.ide.language/images/method2.png";
+@complete-icon-package: "plugins/c9.ide.language/images/package.png";
+@complete-icon-property: "plugins/c9.ide.language/images/property.png";
+@complete-icon-property2: "plugins/c9.ide.language/images/property2.png";
// Welcome
@welcome-color: #333;
-@welcome-background: darken(#C1D4E0, @darken-chrome) url("@{image-path}/welcome-cover-light.png");
+@welcome-background: darken(#C1D4E0, @darken-chrome) url("plugins/c9.ide.welcome/images/welcome-cover-light.png");
@welcome-top-border: darken(rgba(0,0,0, 0.06), @darken-chrome);
@welcome-color: darken(#333333, @darken-chrome);
@welcome-font-smoothing: false;
@welcome-highlight-color: @highlight-color;
@welcome-panel-border-color: darken(rgba(0, 0, 0, 0.04), @darken-chrome);
@welcome-panel-background: darken(rgba(0, 0, 0, 0.03), @darken-chrome);
-@welcome-logo-image: "@{image-path}/welcome-logo.png";
+@welcome-logo-image: "plugins/c9.ide.welcome/images/welcome-logo.png";
@welcome-logo-image-width: 155px;
@welcome-logo-image-height: 103px;
@welcome-alter-widgets: true;
diff --git a/plugins/c9.ide.layout.classic/themes/flat-dark.less b/plugins/c9.ide.layout.classic/themes/flat-dark.less
index 40d55d3f..af152a01 100644
--- a/plugins/c9.ide.layout.classic/themes/flat-dark.less
+++ b/plugins/c9.ide.layout.classic/themes/flat-dark.less
@@ -102,7 +102,7 @@
}
.loading-spinner {
- .image-2x("/static/@{pane-button-save-image}", @pane-button-save-image-width, @pane-button-save-image-height);
+ .image-2x("@{pane-button-save-image}", @pane-button-save-image-width, @pane-button-save-image-height);
animation: loading-24-spinner 1.2s steps(24) infinite !important;
}
@@ -218,8 +218,4 @@
.has_apf .bar-preferences .blackdg{
border: 0;
-}
-
-@media print, (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx) {
-
-}
+}
\ No newline at end of file
diff --git a/plugins/c9.ide.layout.classic/themes/flat-light.less b/plugins/c9.ide.layout.classic/themes/flat-light.less
index 244ae508..0dd0e871 100644
--- a/plugins/c9.ide.layout.classic/themes/flat-light.less
+++ b/plugins/c9.ide.layout.classic/themes/flat-light.less
@@ -389,7 +389,7 @@
}
.loading-spinner {
- .image-2x("/static/@{pane-button-save-image}", @pane-button-save-image-width, @pane-button-save-image-height);
+ .image-2x("@{pane-button-save-image}", @pane-button-save-image-width, @pane-button-save-image-height);
animation: loading-24-spinner 1.2s steps(24) infinite !important;
}
diff --git a/plugins/c9.ide.preferences/images/tree_close_arrow_small.png b/plugins/c9.ide.preferences/images/tree_close_arrow_small@1x.png
similarity index 100%
rename from plugins/c9.ide.preferences/images/tree_close_arrow_small.png
rename to plugins/c9.ide.preferences/images/tree_close_arrow_small@1x.png
diff --git a/plugins/c9.ide.preview/images/c9-preview-repeat.png b/plugins/c9.ide.preview/images/c9-preview-repeat@1x.png
similarity index 100%
rename from plugins/c9.ide.preview/images/c9-preview-repeat.png
rename to plugins/c9.ide.preview/images/c9-preview-repeat@1x.png
diff --git a/plugins/c9.ide.preview/images/c9-preview-repeat_flat_dark.png b/plugins/c9.ide.preview/images/c9-preview-repeat_flat_dark@1x.png
similarity index 100%
rename from plugins/c9.ide.preview/images/c9-preview-repeat_flat_dark.png
rename to plugins/c9.ide.preview/images/c9-preview-repeat_flat_dark@1x.png
diff --git a/plugins/c9.ide.preview/images/c9-preview-repeat_flat_light.png b/plugins/c9.ide.preview/images/c9-preview-repeat_flat_light@1x.png
similarity index 100%
rename from plugins/c9.ide.preview/images/c9-preview-repeat_flat_light.png
rename to plugins/c9.ide.preview/images/c9-preview-repeat_flat_light@1x.png
diff --git a/plugins/c9.ide.preview/preview.js b/plugins/c9.ide.preview/preview.js
index 93fda119..9dcfc61e 100644
--- a/plugins/c9.ide.preview/preview.js
+++ b/plugins/c9.ide.preview/preview.js
@@ -593,7 +593,7 @@ define(function(require, exports, module) {
new ui.button({
id: "btnMode",
submenu: menu.aml,
- icon: "page_white.png",
+ icon: true,
skin: "btn-switcher",
caption: "browser"
})
diff --git a/plugins/c9.ide.run.debug/breakpoints.js b/plugins/c9.ide.run.debug/breakpoints.js
index 0b304d3d..769e6267 100644
--- a/plugins/c9.ide.run.debug/breakpoints.js
+++ b/plugins/c9.ide.run.debug/breakpoints.js
@@ -441,7 +441,7 @@ define(function(require, exports, module) {
btnBreakpoints = hbox1.insertBefore(new ui.button({
id: "btnBreakpoints",
tooltip: "Deactivate All Breakpoints",
- icon: "toggle_breakpoints2.png",
+ icon: true,
skinset: "default",
skin: "c9-menu-btn",
class: "nosize toggle_breakpoints2"
@@ -449,7 +449,7 @@ define(function(require, exports, module) {
btnBpRemove = hbox2.insertBefore(new ui.button({
id: "btnBpRemove",
tooltip: "Clear All Breakpoints",
- icon: "remove_breakpoints.png",
+ icon: true,
skinset: "default",
skin: "c9-menu-btn",
class: "nosize remove_breakpoints"
diff --git a/plugins/c9.ide.run.debug/callstack.js b/plugins/c9.ide.run.debug/callstack.js
index 752e9796..beced677 100644
--- a/plugins/c9.ide.run.debug/callstack.js
+++ b/plugins/c9.ide.run.debug/callstack.js
@@ -57,7 +57,7 @@ define(function(require, exports, module) {
caption: "Function",
value: "name",
width: "60%",
- icon: "debugger/stckframe_obj.gif"
+ icon: true
}, {
caption: "File",
getText: function(node) {
@@ -260,7 +260,7 @@ define(function(require, exports, module) {
button = hbox.appendChild(new ui.button({
id: "btnScripts",
tooltip: "Available internal and external scripts",
- icon: "scripts.png",
+ icon: true,
right: "0",
top: "0",
class: "scripts",
diff --git a/plugins/c9.ide.run.debug/debuggers/debugger.xml b/plugins/c9.ide.run.debug/debuggers/debugger.xml
index e757fb11..9d47a94c 100644
--- a/plugins/c9.ide.run.debug/debuggers/debugger.xml
+++ b/plugins/c9.ide.run.debug/debuggers/debugger.xml
@@ -2,7 +2,7 @@
diff --git a/plugins/c9.ide.run.debug/variables.js b/plugins/c9.ide.run.debug/variables.js
index d9fca8fa..78a1acb9 100644
--- a/plugins/c9.ide.run.debug/variables.js
+++ b/plugins/c9.ide.run.debug/variables.js
@@ -43,7 +43,7 @@ define(function(require, exports, module) {
value: "name",
defaultValue: "Scope",
width: "40%",
- icon: "debugger/genericvariable_obj.gif",
+ icon: true,
type: "tree"
}, {
caption: "Value",
diff --git a/plugins/c9.ide.run.debug/watches.js b/plugins/c9.ide.run.debug/watches.js
index b63577d3..d2cc9c92 100644
--- a/plugins/c9.ide.run.debug/watches.js
+++ b/plugins/c9.ide.run.debug/watches.js
@@ -65,7 +65,7 @@ define(function(require, exports, module) {
match: "name",
value: "name",
width: "60%",
- icon: "debugger/genericvariable_obj.gif",
+ icon: true,
type: "tree",
editor: "textbox"
}, {
diff --git a/plugins/c9.ide.run/gui.js b/plugins/c9.ide.run/gui.js
index 2a326d3d..daa37a6f 100644
--- a/plugins/c9.ide.run/gui.js
+++ b/plugins/c9.ide.run/gui.js
@@ -628,7 +628,7 @@ define(function(require, module, exports) {
caption: "Run",
disabled: true,
class: "runbtn stopped",
- icon: "run.png",
+ icon: true,
}), 100, plugin);
btnRun.on("contextmenu", function(e) {
diff --git a/plugins/c9.ide.run/output.xml b/plugins/c9.ide.run/output.xml
index 31265eac..e25087fc 100644
--- a/plugins/c9.ide.run/output.xml
+++ b/plugins/c9.ide.run/output.xml
@@ -5,7 +5,7 @@
skin = "c9-toolbarbutton-glossy"
caption = "Run"
width = "54"
- icon = "run.png"
+ icon = "true"
class = "runbtn stopped"
visible = "true"
style = "min-width:54px;" />
@@ -13,11 +13,11 @@
id = "btnRestart"
skin = "c9-toolbarbutton-glossy"
width = "22"
- icon = "restart-icon.png"
+ icon = "true"
tooltip = "Restart"
class = "light restart"
style = "min-width:22px" />
-
+
Command:
@@ -26,7 +26,7 @@