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