axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Axiom/TK project (resend)


From: daly
Subject: [Axiom-developer] Axiom/TK project (resend)
Date: Fri, 3 Jun 2005 12:05:57 -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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]