cwidget 0.5.16

frame.h

00001 // frame.h        -*-c++-*-
00002 //
00003 // A container that draws a frame around the widget it contains.
00004 // (needs a lot more work to gracefully handle layout issues :) )
00005 
00006 #ifndef FRAME_H
00007 #define FRAME_H
00008 
00009 #include "bin.h"
00010 
00011 namespace cwidget
00012 {
00013   namespace widgets
00014   {
00015     class frame : public bin
00016     {
00017       void layout_me();
00018 
00019     protected:
00020       frame(const widget_ref &w);
00021 
00022     public:
00023       static util::ref_ptr<frame> create(const widget_ref &w)
00024       {
00025         util::ref_ptr<frame> rval(new frame(w));
00026         rval->decref();
00027         return rval;
00028       }
00029 
00033       int width_request();
00034 
00041       int height_request(int width);
00042 
00043       virtual void paint(const style &st);
00044     };
00045 
00046     typedef util::ref_ptr<frame> frame_ref;
00047   }
00048 }
00049 
00050 #endif