
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$FilterComboBoxRenderer__
#define __javax_swing_plaf_metal_MetalFileChooserUI$FilterComboBoxRenderer__

#pragma interface

#include <javax/swing/DefaultListCellRenderer.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component;
    }
  }
  namespace javax
  {
    namespace swing
    {
        class JList;
      namespace plaf
      {
        namespace metal
        {
            class MetalFileChooserUI;
            class MetalFileChooserUI$FilterComboBoxRenderer;
        }
      }
    }
  }
}

class javax::swing::plaf::metal::MetalFileChooserUI$FilterComboBoxRenderer : public ::javax::swing::DefaultListCellRenderer
{

public:
  MetalFileChooserUI$FilterComboBoxRenderer(::javax::swing::plaf::metal::MetalFileChooserUI *);
  virtual ::java::awt::Component * getListCellRendererComponent(::javax::swing::JList *, ::java::lang::Object *, jint, jboolean, jboolean);
public: // actually package-private
  ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::DefaultListCellRenderer)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_metal_MetalFileChooserUI$FilterComboBoxRenderer__
