TestWin(int w, int h, const char* title) : Fl_Double_Window(w, h, title), m_menuBar(0, 0, w, 25), m_pane(0), m_scroll(0), m_fullScreenImage(false) { m_menuBar.menu(mainMenu); m_menuBar.box(FL_THIN_UP_BOX); m_pane = new Pane(0, m_menuBar.h(), w, h - m_menuBar.h(), 0.2); // Fl_Pack* pack = new Fl_Pack(0, 0, 1, 1); // pack->type(FL_VERTICAL); Fl_Browser* browser = new Fl_Select_Browser(0, 0, 1, 100); browser->add("blah.tif"); browser->add("blah1.tif"); browser->add("blah2.tif"); browser->add("blah3.tif"); browser->box(FL_THIN_DOWN_BOX); m_pane->add1(browser); // pack->resizable(browser); // pack->end(); // m_pane->add1(pack); m_scroll = new CenterScroll(0, m_menuBar.h(), w, h - m_menuBar.h()); m_pane->add2(m_scroll); resizable(m_pane); end(); }
int prime_func(void* p) { Fl_Browser* browser = (Fl_Browser*) p; Fl_Value_Output *value; int n; int step; if (browser == browser2) { n = start2; start2 += 2; step = 12; value = value2; } else { n = 3; step = 2; value = value1; } // very simple prime number calculator ! for (; ; n+= step) { int p; int hn = (int)sqrt(n); for (p=3; p<=hn; p+=2) if ( n%p == 0 ) break; if (p >= hn) { Fl::lock(); char s[128]; sprintf(s, "%d", n); browser->add(s); browser->select_only_this(); if (n > value->value()) value->value(n); Fl::unlock(); Fl::awake((void*)(browser == browser1? p:0)); // Cause the browser to redraw ... } Fl::sleep(10); } return 0; }