#ifndef ASH_WM_DESKS_DESK_TEXTFIELD_H_
#define ASH_WM_DESKS_DESK_TEXTFIELD_H_
#include "ash/ash_export.h"
#include "ash/style/system_textfield.h"
#include "ui/base/metadata/metadata_header_macros.h"
namespace ash {
class ASH_EXPORT DeskTextfield : public SystemTextfield {
METADATA_HEADER(DeskTextfield, SystemTextfield)
public:
DeskTextfield();
explicit DeskTextfield(Type type);
DeskTextfield(const DeskTextfield&) = delete;
DeskTextfield& operator=(const DeskTextfield&) = delete;
~DeskTextfield() override;
static constexpr size_t kMaxLength = 300;
static void CommitChanges(views::Widget* widget);
gfx::Size CalculatePreferredSize(
const views::SizeBounds& available_size) const override;
bool SkipDefaultKeyEventProcessing(const ui::KeyEvent& event) override;
ui::Cursor GetCursor(const ui::MouseEvent& event) override;
void OnFocus() override;
void OnBlur() override;
void OnDragEntered(const ui::DropTargetEvent& event) override;
void OnDragExited() override;
void OnBoundsChanged(const gfx::Rect& previous_bounds) override;
void PreferredSizeChanged() override;
void UpdateTooltipText();
private:
base::CallbackListSubscription text_changed_subscription_;
};
BEGIN_VIEW_BUILDER(, DeskTextfield, views::Textfield)
END_VIEW_BUILDER
}
DEFINE_VIEW_BUILDER(, ash::DeskTextfield)
#endif