00001 // transient.h -*-c++-*- 00002 // 00003 // Copyright 2005 Daniel Burrows 00004 00005 #ifndef TRANSIENT_H 00006 #define TRANSIENT_H 00007 00008 #include "bin.h" 00009 00010 namespace cwidget 00011 { 00012 namespace widgets 00013 { 00018 class transient : public bin 00019 { 00020 private: 00024 void layout_me(); 00025 00026 protected: 00027 transient(const widget_ref &w); 00028 public: 00033 static util::ref_ptr<transient> 00034 create(const widget_ref &w = NULL) 00035 { 00036 util::ref_ptr<transient> rval(new transient(w)); 00037 rval->decref(); 00038 return rval; 00039 } 00040 00042 int width_request(); 00043 00049 int height_request(int width); 00050 00052 bool focus_me(); 00053 00058 bool handle_char(chtype ch); 00059 }; 00060 00061 typedef util::ref_ptr<transient> transient_ref; 00062 } 00063 } 00064 00065 #endif // TRANSIENT_H