[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Axiom/TK project
From: |
daly |
Subject: |
[Axiom-developer] Axiom/TK project |
Date: |
Fri, 3 Jun 2005 12:02:00 -0500 |
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] Axiom/TK project,
daly <=