make ui themes more discoverable

pull/483/merge
nightwing 2018-03-09 15:01:58 +04:00
rodzic e5b4b23008
commit a79524fa24
3 zmienionych plików z 53 dodań i 24 usunięć

Wyświetl plik

@ -95,7 +95,7 @@ define(function(require, exports, module) {
var isMinimal = options.minimal; var isMinimal = options.minimal;
var themeLoaded = {}; var themeLoaded = {};
var themeCounter = 100; var themeCounter = 100;
var lastTheme, grpSyntax, grpThemes; var lastTheme, grpSyntax, grpThemes, grpUiThemes;
var currentTheme; var currentTheme;
var skin = settings.get("user/general/@skin"); var skin = settings.get("user/general/@skin");
@ -1225,40 +1225,60 @@ define(function(require, exports, module) {
/**** Themes ****/ /**** Themes ****/
grpThemes = new ui.group(); grpThemes = new ui.group();
grpUiThemes = new ui.group();
menus.addItemByPath("View/Themes/", new ui.menu({ menus.addItemByPath("View/Themes/", new ui.menu({
"onprop.visible": function(e) { "onprop.visible": function(e) {
if (e.value) if (e.value) {
grpThemes.setValue(settings.get("user/ace/@theme")); grpThemes.setValue(settings.get("user/ace/@theme"));
grpUiThemes.setValue(settings.get("user/general/@skin"));
}
if (themeMenuShown)
return;
themeMenuShown = true;
// Create Theme Menus
menus.addItemByPath("View/Themes/Ui Themes/", null, 0, handle);
menus.addItemByPath("View/Themes/~", new ui.divider(), themeCounter += 100, handle);
layout.listThemes().forEach(function(theme) {
menus.addItemByPath("View/Themes/Ui Themes/" + theme.caption, new ui.item({
type: "radio",
value: theme.name,
group: grpUiThemes,
onclick: function(e) {
var themeName = e.currentTarget.value;
settings.set("user/general/@skin", themeName);
}
}), 0, handle);
});
for (var name in themes) {
if (themes[name] instanceof Array) {
// Add Menu Item (for submenu)
menus.addItemByPath("View/Themes/" + name + "/", null, themeCounter++, handle);
themes[name].forEach(function (n) {
// Add Menu Item
var themeprop = Object.keys(n)[0];
addThemeMenu(name + "/" + themeprop, n[themeprop], -1);
});
}
else {
// Add Menu Item
addThemeMenu(name, null, themeCounter++);
}
}
} }
}), 350000, handle); }), 350000, handle);
// Create Theme Menus
for (var name in themes) {
if (themes[name] instanceof Array) {
// Add Menu Item (for submenu)
menus.addItemByPath("View/Themes/" + name + "/", null, themeCounter++, handle);
themes[name].forEach(function (n) {
// Add Menu Item
var themeprop = Object.keys(n)[0];
addThemeMenu(name + "/" + themeprop, n[themeprop], -1);
});
}
else {
// Add Menu Item
addThemeMenu(name, null, themeCounter++);
}
}
/**** Syntax ****/ /**** Syntax ****/
grpSyntax = new ui.group(); grpSyntax = new ui.group();
handle.addElement(grpNewline, grpSyntax, grpThemes); handle.addElement(grpNewline, grpSyntax, grpThemes, grpUiThemes);
} }
var preview; var preview;
var themeMenuShown;
var setMenuThemeDelayed = lang.delayedCall(function() { var setMenuThemeDelayed = lang.delayedCall(function() {
setMenuTheme(preview, true); setMenuTheme(preview, true);
}, 150); }, 150);
@ -1266,6 +1286,8 @@ define(function(require, exports, module) {
setTheme(path || settings.get("user/ace/@theme"), isPreview); setTheme(path || settings.get("user/ace/@theme"), isPreview);
} }
function addThemeMenu(name, path, index, plugin) { function addThemeMenu(name, path, index, plugin) {
if (!themeMenuShown)
return;
menus.addItemByPath("View/Themes/" + name, new ui.item({ menus.addItemByPath("View/Themes/" + name, new ui.item({
type: "radio", type: "radio",
value: path || themes[name], value: path || themes[name],

Wyświetl plik

@ -40,36 +40,42 @@ define(function(require, exports, module) {
layout.addTheme({ layout.addTheme({
group: "classic", group: "classic",
color: "#252525;", color: "#252525;",
name: "dark", name: "dark",
caption: "Classic Dark",
}); });
layout.addTheme({ layout.addTheme({
group: "classic", group: "classic",
color: "#3f3f3f;", color: "#3f3f3f;",
name: "dark-gray", name: "dark-gray",
caption: "Classic Dark Gray",
}); });
layout.addTheme({ layout.addTheme({
group: "classic", group: "classic",
color: "#aaa;", color: "#aaa;",
name: "light-gray", name: "light-gray",
hidden: !options.lightClassic, hidden: !options.lightClassic,
caption: "Classic Light Gray",
}); });
layout.addTheme({ layout.addTheme({
group: "classic", group: "classic",
color: "#dcdbdb;", color: "#dcdbdb;",
name: "light", name: "light",
hidden: !options.lightClassic, hidden: !options.lightClassic,
caption: "Classic Light",
}); });
layout.addTheme({ layout.addTheme({
group: "flat", group: "flat",
color: "#252525;", color: "#252525;",
name: "flat-dark", name: "flat-dark",
hidden: !FLATDARK hidden: !FLATDARK,
caption: "Flat Dark",
}); });
layout.addTheme({ layout.addTheme({
group: "flat", group: "flat",
color: "#dcdbdb;", color: "#dcdbdb;",
name: "flat-light", name: "flat-light",
caption: "Flat Light",
}); });
} }

Wyświetl plik

@ -45,6 +45,7 @@ define(function(require, exports, module) {
group: "flat", group: "flat",
color: "rgb(41, 58, 86)", color: "rgb(41, 58, 86)",
name: "jett-dark", name: "jett-dark",
caption: "Jett Dark",
defaults: { defaults: {
output: { output: {
backgroundColor: "#2b303b", backgroundColor: "#2b303b",