]> Dogcows Code - chaz/openbox/blobdiff - otk/label.hh
kill a comment
[chaz/openbox] / otk / label.hh
index 9c32e544936ea0ebc414633814572690eec585e4..cd9ef5a1276dad1d87fa61e3ab0fb6a794df3d4b 100644 (file)
@@ -3,35 +3,62 @@
 #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(int screen, EventDispatcher *ed, int bevel = 3);
   Label(Widget *parent);
-  ~Label();
+  virtual ~Label();
 
-  inline const ustring &getText(void) const { return _text; }
-  void setText(const ustring &text) { _text = text; _dirty = true; }
+  inline const ustring& text(void) const { return _text; }
+  void setText(const ustring &text);
 
-  virtual void renderForeground(void);
+  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);
 
-  virtual void update();
+  const Font *font() const { return _font; }
+  virtual void setFont(const Font *f);
 
-  void fitString(const std::string &str);
-  void fitSize(int w, int h);
+  virtual void styleChanged(const RenderStyle &style);
+  
+  virtual void renderForeground(Surface &surface);
 
-  virtual void setStyle(RenderStyle *style);
+protected:
+  virtual void calcDefaultSizes();
 
+  //! The color the label will use for rendering its text
+  RenderColor *_forecolor;
+  
 private:
   //! 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.02336 seconds and 4 git commands to generate.