00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef MINIBUF_WIN_H
00028 #define MINIBUF_WIN_H
00029
00030 #include <cwidget/style.h>
00031
00032 #include "passthrough.h"
00033 #include "widget.h"
00034
00035 #include <list>
00036
00037 #include <sigc++/connection.h>
00038
00039 namespace cwidget
00040 {
00041 namespace widgets
00042 {
00043 class minibuf;
00044 class label;
00045 class multiplex;
00046
00047 class minibuf_win:public passthrough
00048 {
00049 util::ref_ptr<label> status_lbl, header;
00050
00051 widget_ref main_widget;
00052
00053
00054 util::ref_ptr<multiplex> status;
00055
00056 sigc::connection main_destroy_conn;
00057
00058 protected:
00059 minibuf_win();
00060 public:
00061 static
00062 util::ref_ptr<minibuf_win> create()
00063 {
00064 util::ref_ptr<minibuf_win> rval = new minibuf_win;
00065 rval->decref();
00066 return rval;
00067 }
00068
00069 ~minibuf_win();
00070
00071 void destroy();
00072
00073 void set_main_widget(const widget_ref &w);
00074
00075 int width_request();
00076 int height_request(int w);
00077 void layout_me();
00078
00079 virtual void paint(const style &st);
00080
00081 void show_header();
00082 void show_status();
00083
00084
00085
00086 void set_status(std::string new_status);
00087 void set_header(std::string new_header);
00088
00089
00090
00091 widget_ref get_focus();
00092
00093 static const style &retr_header_style() {return get_style("Header");}
00094 static const style &retr_status_style() {return get_style("Status");}
00095 void display_error(std::string err);
00096
00097 void add_widget(const widget_ref &widget);
00098
00099
00100 void rem_widget(const widget_ref &widget);
00101
00102
00103 void show_all();
00104 };
00105
00106 typedef util::ref_ptr<minibuf_win> minibuf_win_ref;
00107 }
00108 }
00109
00110 #endif