]> Dogcows Code - chaz/openbox/blobdiff - otk/label.hh
layout fixes, give widgets a default texture, etc.
[chaz/openbox] / otk / label.hh
index e52c34f473c0a521ce392836377ac1dcbe15dbac..3bb931d6394b92a03928a8171d2aeb0eee2167c1 100644 (file)
@@ -3,26 +3,61 @@
 #define __label_hh
 
 #include "widget.hh"
+#include "ustring.hh"
+#include "renderstyle.hh"
+#include "font.hh"
+
+#include <vector>
 
 namespace otk {
 
 class Label : public Widget {
 
 public:
-
   Label(Widget *parent);
-  ~Label();
+  virtual ~Label();
+
+  inline const ustring& text(void) const { return _text; }
+  void setText(const ustring &text);
+
+  virtual inline bool isHighlighted() const { return _highlight; }
+  virtual void setHighlighted(bool h);
+  
+  RenderStyle::Justify horizontalJustify() const { return _justify_horz; }
+  virtual void setHorizontalJustify(RenderStyle::Justify j);
+  RenderStyle::Justify verticalJustify() const { return _justify_vert; }
+  virtual void setVerticalJustify(RenderStyle::Justify j);
 
-  inline const ustring &getText(void) const { return _text; }
-  void setText(const ustring &text) { _text = text; _dirty = true; }
+  const Font *font() const { return _font; }
+  virtual void setFont(const Font *f);
 
-  void update(void);
+  virtual void calcDefaultSizes();
 
-  virtual void setStyle(Style *style);
+  virtual void styleChanged(const RenderStyle &style);
+  
+  virtual void renderForeground(Surface &surface);
 
+protected:
+  //! The color the label will use for rendering its text
+  RenderColor *_forecolor;
+  
 private:
-  //! Text displayed in the label
+  //! Text to be displayed in the label
   ustring _text;
+  //! Text to be displayed, parsed into its separate lines
+  std::vector<ustring> _parsedtext;
+  //! The actual text being shown, may be a subset of _text
+  ustring _drawtext;
+  //! The font the text will be rendered with
+  const Font *_font;
+  //! The horizontal justification used for drawing text
+  RenderStyle::Justify _justify_horz;
+  //! The vertical justification used for drawing text
+  RenderStyle::Justify _justify_vert;
+  //! The drawing offset for the text
+  int _drawx;
+  //! If the widget is highlighted or not
+  bool _highlight;
 };
 
 }
This page took 0.025509 seconds and 4 git commands to generate.