//
//  AMRollOverButtonAppearance.h
//  RollOverButtonTest
//
//  Created by Andreas Mayer on 28.07.11.
//  Copyright 2011 Andreas Mayer. All rights reserved.
//
//	This class encapsulates the appearance of an AMRollOverButton

#import <Foundation/Foundation.h>
#import "AMRollOverButtonCell.h"

@interface AMRollOverButtonAppearance : NSObject <NSCopying, NSCoding> {
    NSColor *am_controlColor;
    NSColor *am_frameColor;
    NSColor *am_textColor;
    NSColor *am_arrowColor;
    NSColor *am_shadingColor;
    NSColor *am_mouseoverControlColor;
    NSColor *am_mouseoverFrameColor;
    NSColor *am_mouseoverTextColor;
    NSColor *am_mouseoverArrowColor;
    NSColor *am_mouseoverShadingColor;
    NSColor *am_highlightedControlColor;
    NSColor *am_highlightedFrameColor;
    NSColor *am_highlightedTextColor;
    NSColor *am_highlightedArrowColor;
    NSColor *am_highlightedShadingColor;
    NSShadow *am_controlShadow;
    NSShadow *am_textShadow;
    NSShadow *am_mouseoverTextShadow;
    NSShadow *am_highlightedTextShadow;
    NSShadow *am_highlightedControlShadow;
    NSBezelStyle am_bezelStyle;
    AMRollOverButtonShadingMode am_shadingMode;
	BOOL am_bordered;
    double am_popUpMenuDelay;
    BOOL am_alwaysShowMenuIndicator;
}

@property (retain) NSColor *controlColor;
@property (retain) NSColor *frameColor;
@property (retain) NSColor *textColor;
@property (retain) NSColor *arrowColor;
@property (retain) NSColor *shadingColor;
@property (retain) NSColor *mouseoverControlColor;
@property (retain) NSColor *mouseoverFrameColor;
@property (retain) NSColor *mouseoverTextColor;
@property (retain) NSColor *mouseoverArrowColor;
@property (retain) NSColor *mouseoverShadingColor;
@property (retain) NSColor *highlightedControlColor;
@property (retain) NSColor *highlightedFrameColor;
@property (retain) NSColor *highlightedTextColor;
@property (retain) NSColor *highlightedArrowColor;
@property (retain) NSColor *highlightedShadingColor;
@property (retain) NSShadow *controlShadow;
@property (retain) NSShadow *textShadow;
@property (retain) NSShadow *mouseoverTextShadow;
@property (retain) NSShadow *highlightedTextShadow;
@property (retain) NSShadow *highlightedControlShadow;
@property NSBezelStyle bezelStyle;
@property AMRollOverButtonShadingMode shadingMode;
@property (getter=isBordered) BOOL bordered;
@property double popUpMenuDelay;
@property BOOL alwaysShowMenuIndicator;

+ (NSData *)dataRepresentationFromAppearance:(AMRollOverButtonAppearance *)appearance;
+ (AMRollOverButtonAppearance *)appearanceWithDataRepresentation:(NSData *)data;


@end
