Project 1 help session : FLTK

This page is designed to assist you in completing project 1, Impressionist. This is the basic tutorial for using FLTK to create the user interface.




FLTK tutorial

FLTK is a C++ graphical user interface tookit for X(Unix), OpenGL and Microsoft Windows(Nt 4.0, 95, 98).

We won't cover much about FLTK in here because code examples are included in the skeleton code. But it is good to learn the basics of FLTK so that you can improve your UI later on if you choose to do so. You can click here to see the complete FLTK Programming Manual.

Naming

All public symbols in FLTK start with the characters 'F' and 'L'

Common Widgets

Here are links to the most common widgets that you may need to use in your programs. Code examples for each of these widgets can be found in ImpressionistUI.cpp.

Fl_Window
Fl_Menu_Bar
Fl_Menu_Item
Fl_Value_Slider
Fl_Choice
Fl_Button
Fl_Light_Button
Fl_Input
Fl_Int_Input
Fl_Float_Input
Everything else

SimpleProgram

Here is a simple Hello World program that I get from the FLTK Programming Manual. Thanks to Travis Veralrud for bringing it up to date to work with FLTK 2.0 and higher. Note that the Impressionist project still uses FLTK v. 1.19.
	#include <FL/Fl.h>
	#include <FL/Fl_Window.H>
	#include <FL/Fl_Box.h>
  
	int main(int argc, char **argv) {
	  Fl_Window *window = new Fl_Window(300,180);
	  Fl_Box *box = new Fl_Box(20,40,260,100,"Hello, World!");
	  box->box(FL_UP_BOX);
	  box->labelsize(36);
          box->labelfont(FL_BOLD+FL_ITALIC);
          box->labeltype(FL_SHADOW_LABEL);
	  window->end();
	  window->show(argc, argv);
	  return Fl::run();
	}		
The statement "FL_Window *window = ..." will create a window with the specified size(36). The next statement will create a box with the "Hello World!" string in it. To format the box and string, we can use "labelfont", "labeltype", etc.