#ifndef __vtkSlicerVisibilityIcons_h
#define __vtkSlicerVisibilityIcons_h

#include "vtkKWObject.h"
#include "vtkKWResourceUtilities.h"
#include "vtkKWIcon.h"
#include "vtkSlicerIcons.h"
#include "./Resources/vtkSlicerSliceVisible.h"
#include "./Resources/vtkSlicerSliceInvisible.h"

class vtkSlicerVisibilityIcons : public vtkSlicerIcons
{
 public:
    static vtkSlicerVisibilityIcons* New ( );
    vtkTypeRevisionMacro (vtkSlicerVisibilityIcons, vtkSlicerIcons );
    void PrintSelf ( ostream& os, vtkIndent indent );

    vtkGetObjectMacro ( VisibleIcon, vtkKWIcon );
    vtkGetObjectMacro ( InvisibleIcon, vtkKWIcon );

    void AssignImageDataToIcons ( );
    
 protected:
    vtkSlicerVisibilityIcons ( );
    ~vtkSlicerVisibilityIcons ( );
    vtkKWIcon *VisibleIcon;
    vtkKWIcon *InvisibleIcon;
    
 private:
    vtkSlicerVisibilityIcons ( const vtkSlicerVisibilityIcons&); // Not implemented
    void operator = (const vtkSlicerVisibilityIcons& ); // not implemented.
    
};
#endif
