diff --git a/build/css/ox.ui.classic.css b/build/css/ox.ui.classic.css
index dae9754e..6b9f123c 100644
--- a/build/css/ox.ui.classic.css
+++ b/build/css/ox.ui.classic.css
@@ -165,6 +165,29 @@ Lists
================================================================================
*/
+.OxThemeClassic .OxIconList .OxItem > .OxReflection > div {
+ background: -moz-linear-gradient(top, rgba(240, 240, 240, 0.5), rgba(240, 240, 240, 1));
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(240, 240, 240, 0.5)), color-stop(1, rgba(240, 240, 240, 1)));
+}
+.OxThemeClassic .OxIconList .OxItem.OxSelected > .OxIcon img {
+ border-color: rgb(128, 128, 128);
+ -moz-box-shadow: 0 0 4px rgba(128, 128, 128, 1);
+ -webkit-box-shadow: 0 0 4px rgba(128, 128, 128, 1);
+}
+.OxThemeClassic .OxIconList .OxItem > .OxText > div {
+ text-shadow: rgb(255, 255, 255) 1px 1px 0;
+}
+.OxThemeClassic .OxIconList .OxItem.OxSelected > .OxText > div {
+ border-color: rgb(128, 128, 128);
+ background: rgba(128, 128, 128, 0.5);
+ -moz-box-shadow: 0 0 4px rgba(128, 128, 128, 1);
+ -webkit-box-shadow: 0 0 4px rgba(128, 128, 128, 1);
+}
+.OxThemeModern .OxIconList .OxItem > .OxText > div > .OxInfo {
+ color: rgb(128, 128, 128);
+}
+
+
.OxThemeClassic .OxTextList .OxItem .OxCell {
border-right: 1px solid rgb(224, 224, 224);
}
@@ -187,19 +210,22 @@ Lists
background: rgb(206, 206, 206);
}
.OxThemeClassic .OxTextList .OxBar {
- background: -moz-linear-gradient(top, rgb(224, 224, 224), rgb(192, 192, 192));
- background: -webkit-gradient(linear, left top, left bottom, from(rgb(224, 224, 224)), to(rgb(192, 192, 192)));
-}
-.OxThemeClassic .OxTextList .OxBar .OxSelected {
background: -moz-linear-gradient(top, rgb(240, 240, 240), rgb(208, 208, 208));
background: -webkit-gradient(linear, left top, left bottom, from(rgb(240, 240, 240)), to(rgb(208, 208, 208)));
+}
+.OxThemeClassic .OxTextList .OxBar .OxSelected {
+ background: -moz-linear-gradient(top, rgb(224, 224, 224), rgb(192, 192, 192));
+ background: -webkit-gradient(linear, left top, left bottom, from(rgb(224, 224, 224)), to(rgb(192, 192, 192)));
//color: rgb(0, 0, 0);
}
.OxThemeClassic .OxTextList .OxBar .OxOrder {
color: rgb(0, 0, 0);
}
.OxThemeClassic .OxTextList .OxBar .OxResize .OxCenter {
- background: rgb(176, 176, 176);
+ background: rgb(192, 192, 192);
+}
+.OxThemeClassic .OxTextList .OxBar .OxSelect {
+ border-color: rgb(192, 192, 192);
}
.OxThemeClassic .OxTextList .OxBody .OxItem .OxCell {
border-right: 1px solid rgb(232, 232, 232);
diff --git a/build/css/ox.ui.css b/build/css/ox.ui.css
index d0204bbf..6914e8ca 100644
--- a/build/css/ox.ui.css
+++ b/build/css/ox.ui.css
@@ -669,28 +669,74 @@ Lists
}
.OxIconList .OxPage {
- margin: 4px;
+ padding: 4px;
}
.OxIconList .OxItem {
float: left;
+ margin: 4px;
+ opacity: 0.9;
+}
+.OxIconList .OxItem.OxHover,
+.OxIconList .OxItem.OxSelected {
+ opacity: 1;
}
.OxIconList .OxItem > div {
position: relative;
}
-.OxIconList .OxItem > .OxIcon > img {
+.OxIconList .OxItem > .OxIcon img {
position: absolute;
left: 0;
right: 0;
+ bottom: 0;
+ margin: auto;
+ border: 2px solid rgba(0, 0, 0, 0);
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+}
+.OxIconList .OxItem > .OxReflection {
+ overflow: hidden;
+}
+
+.OxIconList .OxItem > .OxReflection > div {
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
margin: auto;
}
+.OxIconList .OxItem > .OxReflection > img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ margin: auto;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ -moz-transform: scaleY(-1);
+ -webkit-transform: scaleY(-1);
+}
+
+.OxIconList .OxItem > .OxText {
+ text-align: center;
+}
.OxIconList .OxItem > .OxText > div {
+ display: inline-block;
font-size: 9px;
font-weight: bold;
text-align: center;
+ padding: 1px 2px;
+ border: 2px solid rgba(0, 0, 0, 0);
+ max-width: 120px;
+ word-wrap: break-word;
+ cursor: pointer;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ //-moz-user-select: text;
+ //-webkit-user-select: text;
}
.OxTextList .OxCell {
@@ -777,7 +823,6 @@ Lists
width: 10px;
height: 16px;
border-width: 0 1px 0 1px;
- border-color: rgb(32, 32, 32);
background: rgba(0, 0, 0, 0);
font-size: 11px;
text-align: center;
diff --git a/build/css/ox.ui.modern.css b/build/css/ox.ui.modern.css
index bddb523e..e9b4fb0c 100644
--- a/build/css/ox.ui.modern.css
+++ b/build/css/ox.ui.modern.css
@@ -146,6 +146,29 @@ Lists
================================================================================
*/
+.OxThemeModern .OxIconList .OxItem > .OxReflection > div {
+ background: -moz-linear-gradient(top, rgba(16, 16, 16, 0.75), rgba(16, 16, 16, 1));
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(16, 16, 16, 0.5)), color-stop(1, rgba(16, 16, 16, 1)));
+}
+.OxThemeModern .OxIconList .OxItem.OxSelected > .OxIcon img {
+ border-color: rgb(128, 128, 128);
+ -moz-box-shadow: 0 0 4px rgba(128, 128, 128, 1);
+ -webkit-box-shadow: 0 0 4px rgba(128, 128, 128, 1);
+}
+.OxThemeModern .OxIconList .OxItem > .OxText > div {
+ text-shadow: rgb(0, 0, 0) 1px 1px 0;
+}
+.OxThemeModern .OxIconList .OxItem.OxSelected > .OxText > div {
+ border-color: rgb(128, 128, 128);
+ background: rgba(128, 128, 128, 0.5);
+ -moz-box-shadow: 0 0 4px rgba(128, 128, 128, 1);
+ -webkit-box-shadow: 0 0 4px rgba(128, 128, 128, 1);
+}
+.OxThemeModern .OxIconList .OxItem > .OxText > div > .OxInfo {
+ color: rgb(128, 128, 128);
+}
+
+
.OxThemeModern .OxTextList .OxItem .OxCell {
border-right: 1px solid rgb(32, 32, 32);
}
@@ -178,6 +201,9 @@ Lists
.OxThemeModern .OxTextList .OxBar .OxResize .OxCenter {
background: rgb(24, 24, 24);
}
+.OxThemeModern .OxTextList .OxBar .OxSelect {
+ border-color: rgb(24, 24, 24);
+}
.OxThemeModern .OxTextList .OxBody .OxItem .OxCell {
border-right: 1px solid rgb(24, 24, 24);
}
diff --git a/build/js/ox.js b/build/js/ox.js
index 8491debd..53a0a7cf 100644
--- a/build/js/ox.js
+++ b/build/js/ox.js
@@ -458,6 +458,18 @@ Ox.sum = function(obj) {
return sum;
};
+Ox.unique = function(arr) {
+ /*
+ >>> Ox.unique([1, 2, 3, 1])
+ [1, 2, 3]
+ */
+ var unique = [];
+ $.each(arr, function(i, v) {
+ unique.indexOf(v) == -1 && unique.push(v);
+ });
+ return unique;
+};
+
Ox.unserialize = function(str) {
var arr, obj = {};
Ox.each(str.split("&"), function(i, v) {
@@ -1722,7 +1734,7 @@ Ox.wordwrap = function(str, len, sep, bal, spa) {
var len = len || 80,
sep = sep || "
",
bal = bal || false,
- spa = spa || true,
+ spa = Ox.isUndefined(spa) ? true : spa,
words = str.split(" "),
lines;
if (bal) {
diff --git a/build/js/ox.ui.js b/build/js/ox.ui.js
index 1953f70a..fec5a01b 100644
--- a/build/js/ox.ui.js
+++ b/build/js/ox.ui.js
@@ -5635,10 +5635,10 @@ requires
itemHeight: self.itemHeight,
itemWidth: self.itemWidth,
keys: 'foo',
- orientation: 'both',
+ orientation: self.options.orientation,
keys: self.options.keys,
request: self.options.request,
- rowLength: 1,
+ rowLength: 4,
size: 128,
type: 'icon',
}/*, self*/)
@@ -5685,7 +5685,7 @@ requires
width: 0,
url: ''
})
- .options(options || {});
+ .options(options || {})
Ox.print('IconItem', options);
@@ -5702,7 +5702,7 @@ requires
that.$icon = $('