/*------------------------------------------------------------------------------
 src/lib/djWidget/djLabelWidget.h

 Copyright (c) 2004-2006 Darby Johnston.
 All rights reserved.
 Use is subject to license terms.
------------------------------------------------------------------------------*/

#ifndef DJ_LABEL_WIDGET_H
#define DJ_LABEL_WIDGET_H
#include <djWidget.h>

namespace dj {

// Label widget.
//
class LabelWidget : public Widget {
public:

  LabelWidget(const Str & = Str());
  
  // Value.
  //
  void set(const Str &);
  const Str & get() const { return _value; }
  
  // Layout.
  //
  const Vec2i sizeHint() const;
  
  // XXX Until we have a grid layout class.
  //
  void labelGroup(const List<LabelWidget *> &);

  // Widget.
  //
  void draw();
  
private:

  Str _value;
  List<LabelWidget *> _labelGroup;
};

// Image label widget.
//
class ImageLabelWidget : public Widget {
public:

  ImageLabelWidget(Fl_Image *);
  
  // Value.
  //
  void set(Fl_Image *);
  Fl_Image * get() const { return _value; }
  
  // Layout.
  //
  const Vec2i sizeHint() const;
  
  // Widget.
  //
  void draw();
  
private:

  Fl_Image * _value;
};

}

#endif
