#ifndef UI_VIEWS_CONTROLS_SEPARATOR_H_
#define UI_VIEWS_CONTROLS_SEPARATOR_H_
#include <optional>
#include "ui/color/color_id.h"
#include "ui/views/metadata/view_factory.h"
#include "ui/views/view.h"
namespace views {
class VIEWS_EXPORT Separator : public View {
METADATA_HEADER(Separator, View)
public:
static constexpr int kThickness = 1;
enum class Orientation { kVertical, kHorizontal };
Separator();
Separator(const Separator&) = delete;
Separator& operator=(const Separator&) = delete;
~Separator() override;
ui::ColorId GetColorId() const;
void SetColorId(ui::ColorId color_id);
int GetPreferredLength() const;
void SetPreferredLength(int length);
Orientation GetOrientation() const;
void SetOrientation(Orientation orientation);
int GetBorderRadius() const;
void SetBorderRadius(int radius);
gfx::Size CalculatePreferredSize(
const SizeBounds& ) const override;
void OnPaint(gfx::Canvas* canvas) override;
private:
int preferred_length_ = kThickness;
ui::ColorId color_id_ = ui::kColorSeparator;
Orientation orientation_ = Orientation::kVertical;
int border_radius_ = 0;
};
BEGIN_VIEW_BUILDER(VIEWS_EXPORT, Separator, View)
VIEW_BUILDER_PROPERTY(ui::ColorId, ColorId)
VIEW_BUILDER_PROPERTY(int, PreferredLength)
VIEW_BUILDER_PROPERTY(Separator::Orientation, Orientation)
VIEW_BUILDER_PROPERTY(int, BorderRadius)
END_VIEW_BUILDER
}
DEFINE_VIEW_BUILDER(VIEWS_EXPORT, Separator)
#endif