Page MenuHomePhabricator

D8169.id18480.diff
No OneTemporary

D8169.id18480.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -7,7 +7,7 @@
return array(
'names' =>
array(
- 'core.pkg.css' => '882662b1',
+ 'core.pkg.css' => '08af1450',
'core.pkg.js' => 'c7854cc5',
'darkconsole.pkg.js' => 'ca8671ce',
'differential.pkg.css' => '5a65a762',
@@ -127,7 +127,7 @@
'rsrc/css/layout/phabricator-source-code-view.css' => '62a99814',
'rsrc/css/layout/phabricator-timeline-view.css' => 'f4f846c4',
'rsrc/css/phui/phui-box.css' => '21da4d8c',
- 'rsrc/css/phui/phui-button.css' => '8106a67a',
+ 'rsrc/css/phui/phui-button.css' => '8784a966',
'rsrc/css/phui/phui-document.css' => '143b2ac8',
'rsrc/css/phui/phui-feed-story.css' => '3a59c2cf',
'rsrc/css/phui/phui-form-view.css' => '0efd3326',
@@ -735,7 +735,7 @@
'phrequent-css' => 'ffc185ad',
'phriction-document-css' => 'b0309d8e',
'phui-box-css' => '21da4d8c',
- 'phui-button-css' => '8106a67a',
+ 'phui-button-css' => '8784a966',
'phui-document-view-css' => '143b2ac8',
'phui-feed-story-css' => '3a59c2cf',
'phui-form-css' => 'b78ec020',
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -979,6 +979,8 @@
'PHUI' => 'view/phui/PHUI.php',
'PHUIBoxExample' => 'applications/uiexample/examples/PHUIBoxExample.php',
'PHUIBoxView' => 'view/phui/PHUIBoxView.php',
+ 'PHUIButtonBarExample' => 'applications/uiexample/examples/PHUIButtonBarExample.php',
+ 'PHUIButtonBarView' => 'view/phui/PHUIButtonBarView.php',
'PHUIButtonExample' => 'applications/uiexample/examples/PHUIButtonExample.php',
'PHUIButtonView' => 'view/phui/PHUIButtonView.php',
'PHUIColorPalletteExample' => 'applications/uiexample/examples/PHUIColorPalletteExample.php',
@@ -3599,6 +3601,8 @@
'OwnersPackageReplyHandler' => 'PhabricatorMailReplyHandler',
'PHUIBoxExample' => 'PhabricatorUIExample',
'PHUIBoxView' => 'AphrontTagView',
+ 'PHUIButtonBarExample' => 'PhabricatorUIExample',
+ 'PHUIButtonBarView' => 'AphrontTagView',
'PHUIButtonExample' => 'PhabricatorUIExample',
'PHUIButtonView' => 'AphrontTagView',
'PHUIColorPalletteExample' => 'PhabricatorUIExample',
diff --git a/src/applications/uiexample/examples/PHUIButtonBarExample.php b/src/applications/uiexample/examples/PHUIButtonBarExample.php
new file mode 100644
--- /dev/null
+++ b/src/applications/uiexample/examples/PHUIButtonBarExample.php
@@ -0,0 +1,46 @@
+<?php
+
+final class PHUIButtonBarExample extends PhabricatorUIExample {
+
+ public function getName() {
+ return 'Button Bar';
+ }
+
+ public function getDescription() {
+ return pht('A minimal UI for Buttons');
+ }
+
+ public function renderExample() {
+ $request = $this->getRequest();
+ $user = $request->getUser();
+
+ // Icon Buttons
+ $icons = array(
+ 'Comment' => 'comment',
+ 'Give Token' => 'like',
+ 'Reverse Time' => 'history',
+ 'Implode Earth' => 'warning');
+ $button_bar = new PHUIButtonBarView();
+ foreach ($icons as $text => $icon) {
+ $image = id(new PHUIIconView())
+ ->setSpriteSheet(PHUIIconView::SPRITE_ICONS)
+ ->setSpriteIcon($icon);
+ $button = id(new PHUIButtonView())
+ ->setTag('a')
+ ->setColor(PHUIButtonView::GREY)
+ ->setIcon($image);
+
+ $button_bar->addButton($button);
+ }
+
+ $layout = id(new PHUIBoxView())
+ ->appendChild($button_bar)
+ ->addPadding(PHUI::PADDING_LARGE);
+
+ $wrap1 = id(new PHUIObjectBoxView())
+ ->setHeaderText('Button Bar Example')
+ ->appendChild($layout);
+
+ return array($wrap1);
+ }
+}
diff --git a/src/view/phui/PHUIButtonBarView.php b/src/view/phui/PHUIButtonBarView.php
new file mode 100644
--- /dev/null
+++ b/src/view/phui/PHUIButtonBarView.php
@@ -0,0 +1,39 @@
+<?php
+
+final class PHUIButtonBarView extends AphrontTagView {
+
+ private $button = array();
+
+ public function addButton($button) {
+ $this->button[] = $button;
+ return $this;
+ }
+
+ protected function getTagAttributes() {
+ return array('class' => 'phui-button-bar');
+ }
+
+ public function getTagName() {
+ return 'div';
+ }
+
+ public function getTagContent() {
+ require_celerity_resource('phui-button-css');
+
+ $i = 1;
+ $j = count($this->button);
+ foreach ($this->button as $button) {
+ if ($i == 1) {
+ $button->addClass('phui-button-bar-first');
+ } elseif ($i == $j) {
+ $button->addClass('phui-button-bar-last');
+ } else {
+ $button->addClass('phui-button-bar-middle');
+ }
+ $this->appendChild($button);
+ $i++;
+ }
+
+ return $this->renderChildren();
+ }
+}
diff --git a/webroot/rsrc/css/phui/phui-button.css b/webroot/rsrc/css/phui/phui-button.css
--- a/webroot/rsrc/css/phui/phui-button.css
+++ b/webroot/rsrc/css/phui/phui-button.css
@@ -338,3 +338,27 @@
line-height: 15px;
font-weight: normal;
}
+
+/* PHUI Button Bar */
+
+.phui-button-bar a.button {
+ display: inline-block;
+ height: 16px;
+ width: 12px;
+}
+
+.phui-button-bar .phui-button-bar-first {
+ border-top-right-radius: 0px;
+ border-bottom-right-radius: 0px;
+}
+
+.phui-button-bar .phui-button-bar-middle {
+ border-radius: 0;
+ border-left: none;
+}
+
+.phui-button-bar .phui-button-bar-last {
+ border-left: none;
+ border-top-left-radius: 0px;
+ border-bottom-left-radius: 0px;
+}

File Metadata

Mime Type
text/plain
Expires
Sun, Aug 3, 12:25 AM (3 d, 6 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
8869003
Default Alt Text
D8169.id18480.diff (5 KB)

Event Timeline