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

#ifndef __javax_swing_text_LayoutQueue__
#define __javax_swing_text_LayoutQueue__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class LayoutQueue;
      }
    }
  }
}

class javax::swing::text::LayoutQueue : public ::java::lang::Object
{

public:
  LayoutQueue();
  virtual void addTask(::java::lang::Runnable *);
public: // actually protected
  virtual ::java::lang::Runnable * waitForWork();
public:
  static ::javax::swing::text::LayoutQueue * getDefaultQueue();
  static void setDefaultQueue(::javax::swing::text::LayoutQueue *);
private:
  static ::javax::swing::text::LayoutQueue * defaultQueue;
  ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) list;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_LayoutQueue__
