name = $name; return $this; } public function getName() { return $this->name; } public function setText($text) { $this->text = $text; return $this; } public function setHref($href) { $this->href = $href; return $this; } public function setTitle($title) { $this->title = $title; return $this; } public function setSubtext($subtext) { $this->subtext = $subtext; return $this; } public function setColor($color) { $this->color = $color; return $this; } public function getColor() { return $this->color; } public function setDisabled($disabled) { $this->disabled = $disabled; return $this; } public function setSelected($selected) { $this->selected = $selected; return $this; } /** * Set the HTML tag for the button, e.g. 'button', 'input', 'a'. * @param string $tag */ public function setTag($tag) { $this->tag = $tag; return $this; } public function setSize($size) { $this->size = $size; return $this; } public function setDropdown($dd) { $this->dropdown = $dd; return $this; } public function setTooltip($text) { $this->tooltip = $text; return $this; } public function setNoCSS($no_css) { $this->noCSS = $no_css; return $this; } public function setHasCaret($has_caret) { $this->hasCaret = $has_caret; return $this; } public function getHasCaret() { return $this->hasCaret; } public function setButtonType($button_type) { $this->buttonType = $button_type; return $this; } public function getButtonType() { return $this->buttonType; } public function setAuralLabel($aural_label) { $this->auralLabel = $aural_label; return $this; } public function getAuralLabel() { return $this->auralLabel; } /** * @param PHUIIconView|string $icon * @param ?bool $first */ public function setIcon($icon, $first = true) { if (!($icon instanceof PHUIIconView)) { $icon = id(new PHUIIconView()) ->setIcon($icon); } $this->icon = $icon; $this->iconFirst = $first; return $this; } /** * Get the HTML tag set for the button, e.g. 'button', 'input', 'a'. * @return string */ protected function getTagName() { return $this->tag; } public function setDropdownMenu(PhabricatorActionListView $actions) { Javelin::initBehavior('phui-dropdown-menu'); $this->addSigil('phui-dropdown-menu'); $this->setDropdown(true); $this->setMetadata($actions->getDropdownMenuMetadata()); return $this; } public function setDropdownMenuID($id) { Javelin::initBehavior('phui-dropdown-menu'); $this->addSigil('phui-dropdown-menu'); $this->setMetadata( array( 'menuID' => $id, )); return $this; } protected function getTagAttributes() { require_celerity_resource('phui-button-css'); require_celerity_resource('phui-button-simple-css'); $classes = array(); $classes[] = 'button'; if ($this->color) { $classes[] = 'button-'.$this->color; } if ($this->size) { $classes[] = $this->size; } if ($this->dropdown) { $classes[] = 'dropdown'; } if ($this->icon) { $classes[] = 'has-icon'; } if ($this->text !== null) { $classes[] = 'has-text'; } if ($this->iconFirst == false) { $classes[] = 'icon-last'; } if ($this->disabled) { $classes[] = 'disabled'; } if ($this->selected) { $classes[] = 'selected'; } switch ($this->getButtonType()) { case self::BUTTONTYPE_DEFAULT: $classes[] = 'phui-button-default'; break; case self::BUTTONTYPE_SIMPLE: $classes[] = 'phui-button-simple'; break; } $sigil = null; $meta = null; if ($this->tooltip) { Javelin::initBehavior('phabricator-tooltips'); require_celerity_resource('aphront-tooltip-css'); $sigil = 'has-tooltip'; $meta = array( 'tip' => $this->tooltip, ); } if ($this->noCSS) { $classes = array(); } // See PHI823. If we aren't rendering a "