Buttons could be flat now.
authorSergey I. Sharybin <g.ulairi@gmail.com>
Fri, 14 Jan 2011 12:47:03 +0000 (17:47 +0500)
committerSergey I. Sharybin <g.ulairi@gmail.com>
Fri, 14 Jan 2011 12:47:03 +0000 (17:47 +0500)
src/ui/widgets/UIButton.js
styles/widgets/button.css

index c7e7c9b..abbfbf1 100644 (file)
@@ -16,6 +16,11 @@ function _UIButton ()
       result.className = 'UIButton';
       this.imageElement = null;
 
+      if (this.flat)
+        {
+          result.className += ' UIFlatButton';
+        }
+
       var innerHTML = '';
       if (this.image)
         {
@@ -131,7 +136,15 @@ function _UIButton ()
     {
       if (this.sensitive)
         {
-          this.dom.addClass ('UIButtonPressed');
+          if (this.flat)
+            {
+              this.dom.addClass ('UIFlatButtonPressed');
+            }
+          else
+            {
+              this.dom.addClass ('UIButtonPressed');
+            }
+
           this.onPress ();
         }
     };
@@ -143,7 +156,15 @@ function _UIButton ()
     {
       if (this.sensitive)
         {
-          this.dom.removeClass ('UIButtonPressed');
+          if (this.flat)
+            {
+              this.dom.removeClass ('UIFlatButtonPressed');
+            }
+          else
+            {
+              this.dom.removeClass ('UIButtonPressed');
+            }
+
           this.onRelease ();
         }
     };
@@ -153,7 +174,14 @@ function _UIButton ()
    */
   this.doOnMouseOut = function ()
     {
-      this.dom.removeClass ('UIButtonPressed');
+      if (this.flat)
+        {
+          this.dom.removeClass ('UIFlatButtonPressed');
+        }
+      else
+        {
+          this.dom.removeClass ('UIButtonPressed');
+        }
     };
 }
 
@@ -166,6 +194,9 @@ function UIButton (opts)
   /* Title which will be displayed */
   this.title = defVal (opts['title'], '');
 
+  /* Should button be flat? */
+  this.flat = defVal (opts['flat'], false);
+
   /* User's defined click handler */
   if (opts['click'])
     {
@@ -178,7 +209,14 @@ function UIButton (opts)
   this.titleElement = null; /* DOM element for title */
   this.imageElement = null; /* DOM element for image */
 
-  this.insensitiveClassName = 'UIButtonInsensitive';
+  if (this.flat)
+    {
+      this.insensitiveClassName = 'UIFlatButtonInsensitive';
+    }
+  else
+    {
+      this.insensitiveClassName = 'UIButtonInsensitive';
+    }
 
   /* events avaliable for attaching */
   this.events = this.events.concat (['onClick', 'onPress', 'OnRelease']);
index f51d4fd..9e75e57 100644 (file)
@@ -63,3 +63,21 @@ DIV.UIButtonInsensitive:hover {
 DIV.UIButtonInsesitive A {
   color: #666;
 }
+
+/* flat buttons */
+DIV.UIFlatButton {
+  background: #ddd;
+}
+
+DIV.UIFlatButton:hover {
+  background: #e7e7e7;
+}
+
+DIV.UIFlatButtonPressed {
+  background: #bbb !important;
+}
+
+DIV.UIFlatButtonInsensitive {
+  border-color: #666;
+  background: #ccc;
+}