103 lines
3.1 KiB
JavaScript
103 lines
3.1 KiB
JavaScript
// vim: et:ts=4:sw=4:sts=4:ft=javascript
|
|
|
|
/*@
|
|
Ox.Theme <f> get/set theme
|
|
() -> <s> Get current theme
|
|
(theme) -> <s> Set current theme
|
|
theme <s> name of theme
|
|
> Ox.Theme()
|
|
'classic'
|
|
> Ox.Theme('modern')
|
|
'modern'
|
|
@*/
|
|
|
|
Ox.Theme = function(theme) {
|
|
|
|
return theme ? setTheme(theme) : getTheme();
|
|
|
|
function getTheme() {
|
|
var theme = '';
|
|
Ox.forEach(Ox.UI.$body.attr('class').split(' '), function(className) {
|
|
if (Ox.startsWith(className, 'OxTheme')) {
|
|
theme = className.replace('OxTheme', '').toLowerCase();
|
|
return false;
|
|
}
|
|
});
|
|
return theme;
|
|
}
|
|
|
|
function setTheme(theme) {
|
|
var currentTheme = getTheme();
|
|
if (theme != currentTheme) {
|
|
Ox.UI.$body
|
|
.addClass('OxTheme' + Ox.toTitleCase(theme))
|
|
.removeClass('OxTheme' + Ox.toTitleCase(currentTheme));
|
|
$('img:not(.OxVideo)').add('input[type="image"]:not(.OxVideo)').each(function() {
|
|
var $this = $(this),
|
|
src = $this.attr('src');
|
|
$this.attr({
|
|
src: Ox.UI.getImageURL(Ox.UI.getImageName(src), theme)
|
|
});
|
|
Ox.print(Ox.UI.getImageName(src), Ox.UI.getImageURL(Ox.UI.getImageName(src), theme))
|
|
});
|
|
}
|
|
return theme;
|
|
}
|
|
|
|
};
|
|
|
|
/*
|
|
Ox.UI.ready(function() {
|
|
|
|
Ox.theme = function() {
|
|
var length = arguments.length,
|
|
classes = Ox.UI.$body.attr('class').split(' '),
|
|
arg, theme;
|
|
Ox.forEach(classes, function(v) {
|
|
if (Ox.startsWith(v, 'OxTheme')) {
|
|
theme = v.replace('OxTheme', '').toLowerCase();
|
|
if (length == 1) {
|
|
Ox.UI.$body.removeClass(v);
|
|
}
|
|
return false;
|
|
}
|
|
});
|
|
if (length == 1) {
|
|
arg = arguments[0]
|
|
Ox.UI.$body.addClass('OxTheme' + Ox.toTitleCase(arg));
|
|
if (theme) {
|
|
$('img').each(function() {
|
|
var $this = $(this);
|
|
if (!$this.attr('src')) return; // fixme: remove, should't be neccessary
|
|
$this.attr({
|
|
src: $this.attr('src').replace(
|
|
'/ox.ui.' + theme + '/', '/ox.ui.' + arg + '/'
|
|
)
|
|
});
|
|
});
|
|
$('input[type=image]').each(function() {
|
|
var $this = $(this);
|
|
$this.attr({
|
|
src: $this.attr('src').replace(
|
|
'/ox.ui.' + theme + '/', '/ox.ui.' + arg + '/'
|
|
)
|
|
});
|
|
});
|
|
$('.OxLoadingIcon').each(function() {
|
|
var $this = $(this);
|
|
$this.attr({
|
|
src: $this.attr('src').replace(
|
|
'/ox.ui.' + theme + '/', '/ox.ui.' + arg + '/'
|
|
)
|
|
});
|
|
})
|
|
}
|
|
}
|
|
return theme;
|
|
};
|
|
|
|
Ox.theme(Ox.UI.DEFAULT_THEME);
|
|
|
|
|
|
});
|
|
*/
|