#include #include #include "framework.h" class _F_statusbar_private{ public: DIALOG dia; PRIVATE_MESSAGE timer; }; void _F_statusbar::settimer(int nbseconds) { dialog_settimer (priv->timer,nbseconds,false); } void _F_statusbar::message (DIALOG &dia) { settimer (5); } void _F_statusbar::timer (DIALOG &dia) { } static void statusbar_gen( _F_statusbar &c, FRAMEWORK_MSGS *msgs, PRIVATE_MESSAGE *ending) { _F_statusbar_private priv; c.priv = &priv; priv.dia.auto_newline(false); c.layout (priv.dia); priv.dia.waitfor (priv.timer); if (msgs != NULL) msgs->waitfor(priv.dia); if (ending != NULL) priv.dia.waitfor (*ending); while (1){ int nof = 0; MENU_STATUS code = priv.dia.edit ("","",help_none,nof,0); if (code == MENU_MESSAGE){ if (msgs != NULL && msgs->is_mayend()){ msgs->endok(); }else if (msgs != NULL && msgs->is_ending()){ break; }else if (ending != NULL && dialog_testmessage(*ending)){ break; }else if (dialog_testmessage(priv.timer)){ c.timer(priv.dia); }else{ c.message(priv.dia); } priv.dia.reload(); } } } void statusbar(_F_statusbar &c, FRAMEWORK_MSGS &msgs) { statusbar_gen (c,&msgs,NULL); } void statusbar(_F_statusbar &c, PRIVATE_MESSAGE &ending) { statusbar_gen (c,NULL,&ending); }