packages feed

fltkhs-0.1.0.0: c-examples/progress-simple.c

#include <stdio.h>
#include <Fl_C.h>
#include <Fl_WindowC.h>
#include <Fl_ButtonC.h>
#include <Fl_ProgressC.h>

#ifdef WIN32
// WINDOWS
#include <windows.h>
#define usleep(v) Sleep(v/1000)
#else /*WIN32*/
// UNIX
#include <unistd.h>                            // usleep
#endif /*WIN32*/

void butt_cb(fl_Widget b, void* data){
  fl_Button butt = (fl_Button)b;
  Fl_Button_deactivate(butt);
  Fl_check();
  fl_Window w = (fl_Window)data;
  Fl_Window_begin(w);
  fl_Progress progress = Fl_Progress_New(10,50,200,30);
  Fl_Progress_set_minimum(progress,0);
  Fl_Progress_set_maximum(progress,1);
  Fl_Progress_set_color(progress,0x88888800);
  Fl_Progress_set_selection_color(progress,0x4444ff00);
  Fl_Progress_set_labelcolor(progress,FL_WHITE);
  Fl_Window_end(w);
  int t = 1;
  for (;t <= 500; t++){
    Fl_Progress_set_value(progress,t/500.0);
    char percent[10];
    sprintf(percent, "%d%%", (int)((t/500.0)*100.0));
    Fl_Progress_set_label(progress,percent);
    Fl_check();
    usleep(1000);
  }
  Fl_Window_remove_widget(w,progress);
  Fl_Progress_Destroy(progress);
  Fl_Button_activate(butt);
  Fl_Window_redraw(w);
}
int main(int argc, char** argv){
  fl_Window win = (fl_Window)Fl_Window_New(220,90);
  fl_Button butt = (fl_Button)Fl_Button_New_WithLabel(10,10,100,25,"Press");
  Fl_Button_set_callback_with_user_data(butt,butt_cb, (void*)win);
  Fl_Window_resizable(win);
  Fl_Window_show(win);
  return(Fl_run());
}