#ifndef CHROME_BROWSER_UI_COCOA_LOCATION_BAR_BUTTON_DECORATION_H_
#define CHROME_BROWSER_UI_COCOA_LOCATION_BAR_BUTTON_DECORATION_H_
#import "base/mac/scoped_nsobject.h"
#include "chrome/browser/ui/cocoa/location_bar/location_bar_decoration.h"
#import "ui/base/cocoa/appkit_utils.h"
class ButtonDecoration : public LocationBarDecoration {
 public:
  enum ButtonState {
    kButtonStateNormal,
    kButtonStateHover,
    kButtonStatePressed
  };
  
  
  
  
  ButtonDecoration(ui::NinePartImageIds normal_image_ids,
                   int normal_icon_id,
                   ui::NinePartImageIds hover_image_ids,
                   int hover_icon_id,
                   ui::NinePartImageIds pressed_image_ids,
                   int pressed_icon_id,
                   CGFloat max_inner_padding);
  virtual ~ButtonDecoration();
  void SetButtonState(ButtonState state);
  ButtonState GetButtonState() const;
  
  void SetIcon(ButtonState state, int icon_id);
  
  void SetIcon(int icon_id);
  
  void SetBackgroundImageIds(ui::NinePartImageIds normal_image_ids,
                             ui::NinePartImageIds hover_image_ids,
                             ui::NinePartImageIds pressed_image_ids);
  ui::NinePartImageIds GetBackgroundImageIds() const;
  NSImage* GetIconImage() const;
  
  virtual CGFloat GetWidthForSpace(CGFloat width) OVERRIDE;
  virtual void DrawInFrame(NSRect frame, NSView* control_view) OVERRIDE;
  virtual bool AcceptsMousePress() OVERRIDE;
  virtual bool IsDraggable() OVERRIDE;
  virtual bool OnMousePressed(NSRect frame) OVERRIDE;
  virtual ButtonDecoration* AsButtonDecoration() OVERRIDE;
 private:
  ui::NinePartImageIds normal_image_ids_;
  ui::NinePartImageIds hover_image_ids_;
  ui::NinePartImageIds pressed_image_ids_;
  int normal_icon_id_;
  int hover_icon_id_;
  int pressed_icon_id_;
  ButtonState state_;
  CGFloat max_inner_padding_;
  DISALLOW_COPY_AND_ASSIGN(ButtonDecoration);
};
#endif