Axiom runs on multiple systems but there are two GUI components, the browser and the graphics, that are not portable. They are written in C using X11.
The Axiom/TK project will recreate the same functionality using lisp and TK. Since both of these systems run on all platforms we will eliminate the portability problem and remove the remaining portion of C code from Axiom. The tasks are listed below and are designed as steps that show progress in small increments that could take anywhere from a day to two weeks. The project has two subgoals, a running browser and a running graphics. The browser steps are: Get a running lisp GCL is preferred but any common lisp will do Get a running TK Initially we can use a binary version Later we need to build it from sources Connect lisp and TK TK uses sockets so the lisp must handle sockets GCL has an LTK (Lisp-TK) package but it is untested Show primitive capability A newly started lisp should be able to start TK Show the first browser screen The first browser screen layout should be created from lisp Show an image in the browser screen The browser shows images in the browser so this must be demonstrated Handle the buttons The browser uses buttons for navigation so callbacks must be handled Handle the hyperlink The browser uses callbacks to find the next page and open other windows Handle user input The browser has text input which needs to be transmitted back to lisp Handle fonts The browser uses bold and italic fonts Parse the browser pages The browser uses a latex style page language which must be parsed in lisp. Connect to Axiom The browser connects to the running Axiom thru sman and sockets Send commands to Axiom The browser sends commands to Axiom thru sockets Receive commands from Axiom Axiom sends page commands to the browser The graphics subtask is very similar to the above and builds on the same code. However there are additional requirements. Draw in a window Initially we need to open a window and draw a line between two points Open a command window Clicking on the graph opens a command window with controls Handle dual window interactions Clicking on control buttons needs to change the graph Handle rotate, translate The graphics controls know how to rotate and translate the graph Handle 2D drawing Axiom has code that knows how to scale, draw axes, etc Handle 3D drawing Axiom knows how to shade and smooth 3D objects Handle Axiom requests Axiom sends point lists to the graphics Handle Axiom commands Axiom can command rotations, shading, etc Tim _______________________________________________ Axiom-developer mailing list Axiom-developer@nongnu.org http://lists.nongnu.org/mailman/listinfo/axiom-developer