Hi,
What i want to achiev is a browser window that gets updated all x seconds.

class ObserverWindow : public Window {
        Button start_button;
        Browser browser_playerlist;

        inline void refresh_callback_i() {
                if(CAppData::getInstance()->isConnected()) {
                        RefreshPlayerList();
        
fltk::add_timeout(CAppData::getInstance()->getRefreshTime(),(fltk::TimeoutHandler)refresh_callback,this);
                }
        }

        static void refresh_callback(Widget*, void* v) {
                ((ObserverWindow*)v)->refresh_callback_i();
        }

        inline void start_callback_i() {
                int index=*browser_serverlist.focus_index();

                CAppData::getInstance()->openConnection(index);
                RefreshPlayerList();
fltk::add_timeout(CAppData::getInstance()->getRefreshTime(),(fltk::TimeoutHandler)refresh_callback,this);
        }
        static void start_callback(Widget*, void* v) {
                ((ObserverWindow*)v)->start_callback_i();
        }

public:

        ObserverWindow(const char* label=0) :
                Window(USEDEFAULT,USEDEFAULT,550,500,label,true),
                start_button(160,180,40,20,"start"),
                browser_playerlist(160, 60, 300, 100, "Player:")
                {
                        start_button.callback(start_callback,this);
                        end();
                }
                ~ObserverWindow() {}

                void RefreshPlayerList() {
                        if(CAppData::getInstance()->isConnected() ){
                                browser_playerlist.remove_all();
                                browser_playerlist.redraw();
                                std::vector<CUserInfo> ui;

                                
ui=CDispatchMessages::DispatchUsers(CAppData::getInstance()->getUsers());
                                std::string tempplayer;
                                char tempval[32];
                                for(unsigned int i=0; i < ui.size(); ++i) {
                                        
browser_playerlist.add(tempplayer.c_str(),0,0,0,0);
                                }
                        }
                }
};

The problem is, that if i call RefreshPlayerList() from my refresh_callback 
than i get an error caused by the browser_playerlist methods. The reason is 
that the "index" and "children" variable are set to ~28000 ... when i call the 
RefreshPlayerList() method from the button callback everything works.

What can i do to solve this Problem ? Is there a better way to "refresh" the 
Browser ?

Btw: This Forum is uncomfortable as hell ...
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to