#include <iostream.h> #include <string.h> #include "forms.h" class LCircle { public: LCircle( int x = 0, int y = 0, int initalRadius = 1, int initialColor = 1 ); void setCenter( int x, int y ); void setY( int y); void setColor( int newColor ); int getY(); int getX() { return xCoordinate;}; void draw( int xOffSet, int yOffSet ); private: int xCoordinate; int yCoordinate; int radius; int color; }; LCircle :: LCircle(int x, int y, int initalRadius , int initialColor ) { xCoordinate = x; yCoordinate = y; radius = initalRadius; color = initialColor; } void LCircle :: setY( int y) { yCoordinate = y; }; void LCircle :: setColor( int newColor ) { color = newColor ; }; int LCircle :: getY( ) { return yCoordinate; }; void LCircle :: setCenter( int x, int y ) { xCoordinate = x; yCoordinate = y; }; void LCircle :: draw( int xOffSet, int yOffSet ) { fl_circf( xCoordinate + xOffSet, yCoordinate + yOffSet , radius, color ); } //Moving Circles Handler LCircle followMouse(20, 20, 20, FL_RED ); int freePeiceHandler( FL_OBJECT* freeObject, int event, FL_Coord mouseX, FL_Coord mouseY, int key, void* xEvent) { switch ( event ) { case FL_DRAW: fl_rectf( 20, 100, 360, 180, FL_GREEN ); // followMouse.draw( 0, 0 ); break; case FL_PUSH: cout << " Mouse Pressed, Start Drawing " << endl; break; case FL_RELEASE: cout << " Mouse Released, Stop Drawing " << endl; break; case FL_MOUSE: if ( mouseX == followMouse.getX() && mouseY == followMouse.getY()) break; followMouse.setCenter( mouseX, mouseY ); fl_redraw_object( freeObject ); break; }; return 0; }; void yesButtonPressed( FL_OBJECT* theButton, long NotUsed) { cout << " Test button \n" << endl;} //Moving Circles Main int main( int argc, char *argv[] ) { FL_FORM *form; FL_OBJECT *button, *free; fl_initialize( argv[0], "FormDemo", 0, 0 , &argc, argv ); form = fl_bgn_form( FL_UP_BOX, 400, 300 ); fl_add_frame(FL_DOWN_FRAME, 20, 20, 360, 180, ""); free= fl_add_free( FL_NORMAL_FREE, 20, 20, 360, 180, "The Peices", freePeiceHandler ); fl_set_object_boxtype( free, FL_FLAT_BOX ); button = fl_add_button( FL_NORMAL_BUTTON, 170, 210, 60, 30, "Exit" ); button = fl_add_button( FL_NORMAL_BUTTON, 100, 210, 60, 30, "test" ); fl_set_object_callback( button, yesButtonPressed, 0 ); fl_end_form( ); fl_show_form( form, FL_PLACE_CENTER, FL_FULLBORDER, NULL ); fl_do_forms( ); return 0; }
CFLAGS = -O LIB = -L/opt/xforms/FORMS -lforms -L/opt/X11R5/lib -lX11 -lnsl -lsocket -lm INCL = -I/opt/xforms/FORMS -I/opt/X11R5/lib CC = CC .c.o: $(CC) $(CFLAGS) $(INCL) -c $*.c .o: $(CC) $(CFLAGS) -o $* $*.o $(LIB) .c: $(CC) $(CFLAGS) $(INCL) -c $*.c $(CC) $(CFLAGS) -o $* $*.o $(LIB) clean: rm *.o
#ifndef _LCircle_HH #define _LCircle_HH
class LCircle { public: LCircle( int x = 0, int y = 0, int initalRadius = 1, int initialColor = 1 ); void setCenter( int x, int y ); void setY( int y); void setColor( int newColor ); int getY(); int getX() { return xCoordinate;}; void draw( int xOffSet, int yOffSet ); private: int xCoordinate; int yCoordinate; int radius; int color; }; #endif
#include "LCircle.hh" #include <iostream.h> #include <string.h> #include "forms.h" LCircle :: LCircle(int x, int y, int initalRadius , int initialColor ) { xCoordinate = x; yCoordinate = y; radius = initalRadius; color = initialColor; } void LCircle :: setY( int y) { yCoordinate = y; }; void LCircle :: setColor( int newColor ) { color = newColor ; }; int LCircle :: getY( ) { return yCoordinate; }; void LCircle :: setCenter( int x, int y ) { xCoordinate = x; yCoordinate = y; }; void LCircle :: draw( int xOffSet, int yOffSet ) { fl_circf( xCoordinate + xOffSet, yCoordinate + yOffSet , radius, color ); }
#include "LCircle.hh" #include <iostream.h> #include <string.h> #include "forms.h" //Moving Circles Handler LCircle followMouse(20, 20, 20, FL_RED ); int freePeiceHandler( FL_OBJECT* freeObject, int event, FL_Coord mouseX, FL_Coord mouseY, int key, void* xEvent) { switch ( event ) { case FL_DRAW: fl_rectf( 20, 100, 360, 180, FL_GREEN ); // followMouse.draw( 0, 0 ); break; case FL_PUSH: cout << " Mouse Pressed, Start Drawing " << endl; break; case FL_RELEASE: cout << " Mouse Released, Stop Drawing " << endl; break; case FL_MOUSE: if ( mouseX == followMouse.getX() && mouseY == followMouse.getY()) break; followMouse.setCenter( mouseX, mouseY ); fl_redraw_object( freeObject ); break; }; return 0; }; void yesButtonPressed( FL_OBJECT* theButton, long NotUsed) { cout << " Test button \n" << endl;} int main( int argc, char *argv[] ) { FL_FORM *form; FL_OBJECT *button, *free; fl_initialize( argv[0], "FormDemo", 0, 0 , &argc, argv ); form = fl_bgn_form( FL_UP_BOX, 400, 300 ); fl_add_frame(FL_DOWN_FRAME, 20, 20, 360, 180, ""); free= fl_add_free( FL_NORMAL_FREE, 20, 20, 360, 180, "The Peices", freePeiceHandler ); fl_set_object_boxtype( free, FL_FLAT_BOX ); button = fl_add_button( FL_NORMAL_BUTTON, 170, 210, 60, 30, "Exit" ); button = fl_add_button( FL_NORMAL_BUTTON, 100, 210, 60, 30, "test" ); fl_set_object_callback( button, yesButtonPressed, 0 ); fl_end_form( ); fl_show_form( form, FL_PLACE_CENTER, FL_FULLBORDER, NULL ); fl_do_forms( ); return 0; }
LIB = -L/opt/xforms/FORMS -lforms \ -L/opt/X11R5/lib -lX11 -lnsl -lsocket -lm INCL = -I/opt/xforms/FORMS -I/opt/X11R5/lib CC = g++ all: LCircle.o main.cc $(CC) $(INCL) LCircle.o main.cc -o main $(LIB) LCircle.o: LCircle.cc LCircle.hh $(CC) $(INCL) LCircle.cc -c clean: rm *.o main
LIB = -L/opt/xforms/FORMS -lforms \ -L/opt/X11R5/lib -lX11 -lnsl -lsocket -lm INCL = -I/opt/xforms/FORMS -I/opt/X11R5/lib CC = g++ all: button.o button_main.c $(CC) $(INCL) button.o button_main.c -o main $(LIB) button.o: button.c button_cb.c button.h $(CC) $(INCL) button.c -c clean: rm *.o
#ifndef FD_buttonTest_h_ #define FD_buttonTest_h_ /* Header file generated with fdesign. */ /**** Callback routines ****/ extern void buttonPushed(FL_OBJECT *, long); /**** Forms and Objects ****/ typedef struct { FL_FORM *buttonTest; FL_OBJECT *PushButton; void *vdata; long ldata; } FD_buttonTest; extern FD_buttonTest * create_form_buttonTest(void); #endif /* FD_buttonTest_h_ */
/* Form definition file generated with fdesign. */ #include <string.h> // Added by R. Whitney #include "forms.h" #include "button.h" #include "button_cb.c" // Added by R. Whitney const int notUsed = 0; // Added by R. Whitney FD_buttonTest *create_form_buttonTest(void) { FL_OBJECT *obj; FD_buttonTest *fdui = (FD_buttonTest *) fl_calloc(1, sizeof( FD_buttonTest ) ); fdui->buttonTest = fl_bgn_form(FL_NO_BOX, 320, 250); obj = fl_add_box(FL_UP_BOX,0,0,320,250,""); fdui->PushButton = obj = fl_add_button( FL_NORMAL_BUTTON, 80, 80, 160, 100, "Push Me "); fl_set_button_shortcut(obj,"x",1); fl_set_object_callback(obj,buttonPushed,notUsed); fl_end_form(); return fdui; } /*---------------------------------------*/
#include "forms.h" #include "button.h" /* callbacks for form buttonTest */ void buttonPushed(FL_OBJECT *ob, long data) { /* fill-in code for callback */ }
#include <string.h> // Added by R. Whitney #include "forms.h" #include "button.h" int main(int argc, char *argv[]) { FD_buttonTest *fd_buttonTest; fl_initialize(argv[0], 0, 0, 0, &argc, argv); fd_buttonTest = create_form_buttonTest(); /* fill-in form initialization code */ /* show the first form */ fl_show_form( fd_buttonTest->buttonTest, FL_PLACE_CENTER, FL_FULLBORDER, "buttonTest"); fl_do_forms(); return 0; }