Visual Ada Developer

VAD

VAD is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.

VAD is distributed in the hope, that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty

of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

VAD 7.6 Common description.

1. VAD ( Visual Ada Developer ) is a Tcl/Tk oriented Ada-95(TCL) GUI builder

portable to difference platforms, such as Windows NT/9x,Unix(Linux),

Mac and OS/2. You may use it as IDE for any Ada-95(C,C++,TCL) project.

You may use it to build TCL script only.

VAD generated ada sources you may compile and build executable

with GNAT in Windows and Unix(Linux)

2. Used software

GNAT GPL 2009 Ada-05 compiler (or any others)

TCL/TK 8.5.x http://tcl.activestate.com/software/tcltk/

TCL/TK 8.6.x http://tcl.activestate.com/software/tcltk/

W A R N I N G ! VAD 7.6 has two realization

for tcl/tk 8.5.x and tcl/tk 8.6.x , you need to install and test tcl/tk at first.

From vertion tcl/tk 8.5.0.1 ActiveState distribution includes many of VAD used

packages (Itcl,Img,Tktable,BWidgets,Tkhtml and so on).

You may choice needed version in link time. (I recommend to work with 8.6)

TASH 8.02 by Terry J. Westley http://tash.calspan.com/

IMG 1.3 package by Jan Nijtmans <Jan.Nijtmans@wxs.nl>.

Icons 1.2 by Adrian Davis (adrian@satisoft.com)

Help System ( Html browser from Editors and Parsers menu) by Andrei A. Gratchev <grand@midc.miem.edu.ru>

TkPaint - a simple Image Editor http://www.netanya.ac.il/~samy/tkpaint.html with pdf and eps document formats support

RAPID-1 By Martin Carlisle

BWIDGETS 1.8.0 tk extension http://www.unifix-online.com/BWidget

McListbox,mcombobox by Bryan Oakley <oakley@channelpoint.com>

http://purl.oclc.org/net/oakley/tcl/mclistbox/index.html

Toplevelmanager(window::or) by Mark G. Saye

Tktable by Jeff Hobs <jeff.hobbs@acm.org>

http://www.hobbs.wservice.com/tcl/capp/

FTP_library by Stefen Traeger <Steffen.Traeger@t-online.de>

http://home.t-online.de/home/Steffen.Traeger

Csh1.0 package by Mohamed Baccar

http: //members.aol.com/~mbaccar/pub/csh10.zip

Xterm button initialize xterminal

Snack 2.4 multimaedia sound by Kare Sjolander

http://www.speech.kth.se/snack/

BLT 3.0 ftp://ftp.tcltk.com/pub/blt

Itcl 4.0 http://www.sensus.org/tcl/index.htm

Tix 8.4 Tix Tcl/Tk extension

QuickTimeTcl 3.0 multimedia movie (Quick Time for Windows and Mac)

by Mats Bengtsson and Bruce O'Neel

MPlayerTcl 0.0.2 multimedia movie (Quick Time, Divx, mpeg for Unix) by Cyril Barabto

http://mplayertcl.sourceforge.net

Tclgtk Gtk widget collection on Tcl http://tcl-gtk.sourceforge.net.

Oratcl 4.4 Oracle connection (Oracle 9i,Oracle 10i support) http://oratcl.sourceforge.net

XBit 4.01 Multimedia extension by Chengye Mao

http://www.geocities.com/~chengye/soft.html

Optcl 3.0 - conversion between Tcl objects and COM types by Farzad Pezeshkpour (Windows only)

OpenGL support packages

Tkogl OpenGL extension by Claudio Esperanca

http://aquarius.lcg.ufrj.br/~esperanc/tkogl.html

tcl3d Tcl/Tk OpenGL Wrapper

VTK 5.x OpenGL extension by Ken Martin, Will Schroeder, Bill Lorensen

http://public.kitware.com/VTK/files

vtkGUI 0.1 by Silvano Imboden

http://visit.cineca.it/vtkGUI

Tkhtml 3.0 package by Dan Kennedy (last alfa 16 version has problems in tcl/tk 8.6. I recommend to instal it only after test hv3 widget works)

Fve Free text editor by Kazuo Sasagawa

Hex A simple Hex Editor by George Peter Staplin

August Free HTML editor by Johan Bengtsson

ASED Tcl/Tk IDE by Andreas Sievers

Dom, TclXML XML parser http://www.zveno.com

Whiteboard 0.94.3 Image and Media Viewer by Mats Behgtsson

TkMC File manager by Grigoriy Abramov

IDL_To_Ada_Translator by Scott R. Bennet http://www.mitre.org

TCL/TK XML intelligence Visual Editor by Alexander V.Dederer

http://tkxmlive.sourceforge.net

TCL/TK InstallJammer Multiplatform Installer

http://www.installjammer.com/

W A R N I N G ! Many of tcl/tk packages were tested for TCL/TK 8.5

in Windows and i386 Linux, you may download from my site

http://users1.Jabry.com/adastudio

Full VAD Directory tree

VAD -- root directory

rcom -- common rcom package files tree in VAD root direcory

adagraph -- adgraph package

AdaOpenGl -- Ada To OpenGl interfase

ased -- ased IDL

august -- august HTML editor

corba -- Corba Ada Interface spacification

csh -- Xterminal package

fve -- FVE file editor

gifs -- gifs image collection

help -- Help files in HTML format tree with subdirectories

idl -- Corba to Ada translator

image -- bitmap collection

lib -- Tcl/Tk packages

projects -- Projects directories tree

samples -- Samples directories tree

session -- Sessions history

tkpaint -- Tkpaint image editor

tutorial -- VAD tutorial files in HTML format

vad72src -- VAD sources (without common rcom tree packages)

vtkgui -- VTK GUI builder

whiteboard -- Whiteboard image processor

Linux -- Linux binaries i386

win32 -- Windows binaries and componenets

xbit -- XBit image processor

xml -- XML parser files

XmlAda -- XMLADA parser package

VAD generates and uses *.gui file in text format for abstract

widgets descriptions. This file has a simple format and may be corrected

manually. You may associate *.gui file with VAD and load it directly.

VAD project file is part of yours project and build widgets tree from Toplevel

widget. In common project directory, you may create several VAD projects.

VAD generates next files :

<project name>.adb - main ada program

<project name>init.ads - initialized gui package

<project name>init.adb

<project name>event.ads - Event handlers package

<project name>event.adb ( empty functions for events).

<project name>.tcl - TCL script for quick check or TCL oriented project.

VAD project is a part of yours application and (as a rule) it builds toplevel root

widgets tree. Application may has several vad projects.

W A R N I N G ! Old ada files saved in *.$ds and *.$db files

W A R N I N G ! You may reset Gnat enviroîment, edit , compile, link and execute

generated ada files from Gnat menu

VAD need system variable VAD_HOME

for example : SET VAD_HOME=C:\VAD - for Windows

export VAD_HOME=/home/vad - for Unix(Linux)

New project you may create by NEW dialog in existing project directory

TCL/TK is a script language and it has many difference forms to describe widgets.

For widget placing I use disp (layout) property with follow values :

noplace

place

grid

pack (default)

setwidget (for BWidgets)

and manager property for tcl script building

W A R N I N G !!! You may use Layout wizard from WIZARD menu

to build script for used layout or to build embeded window (in canvas or text)

For example for placing widget .w.b in pack layout need to write

disp :pack

manager:.w.b -side top

If you want to pack several widgets in one pack (for example 3)

look at packbuton.gui sample.

In addcreate property you may write all addition information for widget

creation.

W A R N I N G !!! You may use Properties WIZARD from WIZARD menu

to build spesific widgets options

I tried to write online help for many of used properties and simple samples.

W A R N I N G !!! You may see Help for Widget by push F1 for selected Widget

(mouse on widget icon or active Properties Inspector for widget)

If VAD can not correct error EXCEPTION, it creates ABEND.GUI file.

I recommend to save information before property/event switching

by click Add Widget/Correct Widget button

In any time you may see widgets tree from View Tree (menu VIEW).

Widgets tree available in New Widget pathname dialog. On Widget's tree you may select

widget and load Properties Inspercor for it.

HELP menu allows by internal HTML viewer ( I use HTML_LIBRARY package

from Sun) and tkhtml (if it defined in tcl)

From Settings menu you may change some VAD definitions.

If you planed work with generated TCL script, you may turn off Emulate Tcl Proc

property.

I hope VAD will be useful for Ada (and TCL) programmers and easy in work. This is

an effective way to build gui oriented system independent applications in pure ADA-95.

VAD 7.6 supports many of image formats such as

BMP, XBM, XPM, GIF (with transparency), PNG, JPEG, TIFF, ICO, PCX, PPM, PIXMAP, SGI,

RAS, RGB, TGA, SUN , WINDOW and postscript(PS).

You need to install Img1.3 package and check it to work in Tcl/Tk.

W A R N I N G !!! You may animate animated gifs

For formats difference from xbm and gif you may use jpeg image type.

By icons package you may use a huge icons collections as tcl/tk image

A simple free Image editor TKpaint (with little changing ) by Samy Zafrany

An Adasource from RAPID image generator by Martin C. Carlisle

and Patrick Maes.

Widgets Table

1. Base TCL/TK widgets

toplevel frame button radiobutton checkbutton menubutton label entry

listbox canvas message menu item scrollbox scale text panedwindow spinbox

labelframe

W A R N I N G . Item widget you may use to :

1. Create menu item;

2. Create mclitBox column;

3. Create Tree node.

2. BWidgets

Button Label Entry ListBox

ArrowButton ProgressBar MainFrame LabelFrame LabelEntry TitleFrame

Dialog ScrolledWindow PanedWindow ButtonBox NoteBook (Page) SpinBox

Tree MessageDlg ProgressDlg ScrollableFrame ScrollView PagesManager

PasswdDlg

W A R N I N G ! If you use PanedWindow (or panedwindow in tcl/tk 8.5), you need

a. Create PanedWindow;

b. Create first page for PanedWindow (Page dialog);

c. Create all widgets in this page;

d. Create second page an so on.

3. Widgets from Bryan Oakley

combobox mclistBox

4. Direct executable Tcl script

TclScript

5. table widget from Tktable Package

W A R N I N G !!! You need to install Tktable package and check it to work in Tcl/Tk

6. Graph and Barchart widgets from BLT package

W A R N I N G !!! You need to install BLT package and check it to work in Tcl/Tk and

load from TCL Packages menu

7. CScrollbar (scrollbar analog)

W A R N I N G !!! You may copy widget's properties from building widget

to new by Copy from item (from WIZRD menu)

W A R N I N G !!! You may import widgets form other project(gui file)

by Import item (from Utils s menu)

8. html widget from Tkhtml package

9. OGLwin widget from Tkogl package or Tcl3d package

10. vtkTkRenderWidget and vtkTkImageViewerWidget from VTK (Visualization Tool Kit)

11. Scrolled Widgets (text canvas listbox mclistbox tktable html)

W A R N I N G !!! Scrolled widgets are built as frame with scrollbars and widget

Widget name is automatic tailes with .swd

Scrollbars are visible if need

12. Media widget (media for Unix MplayerTcl and movie for Windows and Mac QuickTimeTcl)

13. ttk widgets ( for Tcl/Tk 8.5.x and later)

VAD 7.6 has internal tcl packages support from Packages menu.

W A R N I N G !!! After loading,tcl package can not be unloaded.

If you have instaled Oratcl package and loaded it, you may

directly work with Oracle server from Oracle menu.

S a m p l e s L i s t

snack - Snack Sound extension

blt - BLT extension

blt.gui - Tables in BLT

graph.gui - Graphs in BLT

barchart.gui - Barchart in BLT

bwidgets - BWidgets extension (full support in VAD)

pagemgr.gui - pages manager

tree.gui - tree

mclist.gui - multicolumn list

combobox.gui - combobox

scrolledwindow.gui - scrollable window

nb.gui - notebook

colorfont.gui - colours and fonts

panedwindow.gui - paned window

buttonbox.gui - button box

dragdrop.gui - drag and drop

htext.gui - hyper text

tip.gui - tip window

ttkcombo.gui - ttk combobox

adavtk - VTK (Visualization Tool Kit) support in VAD

3dstudio - vtk sample 3DStudio MAX file import

vrlm2.0 - vtk sample 3DStudio MAX file import VRLM 2.0

puzzle - vtk sphere puzzle game

polyViewer - vtk file formats viewer

volGeo - vtk multirender sample

adatkvtk - vtk sample

adavtklens - vtk sample

textmv - vtk sample

WheelMouse - vtk sample with WheelMouse events handling

ftp - ftp complex example

itcl - I[ncr]tcl package extension

oracle - Oracle support in VAD (oratcl 2.6, oratcl 2.7, oratcl 3.0 oratcl 4.x)

odbc - ODBC support in VAD (tclodbc 2.1)

animation - Animated gifs in VAD example

scrcanv - scrollable frame as window in canvas example

money - complex example

HTML_Viewer - complex example internal HTML viewer

HV - complex example HTML viewer used Tkhtml3.0 package

Dirview - complex example

Find - complex example (find files by pattern with directory recursion)

Table - complex example (binary tree and access types in Ada-95)

Tktable - complex example Tktable widget in VAD (standard and scrolled variants)

HV - complex example html widget based html viewer

Calculator - complex example

Limits - complex example ( it demonstrates cursors in different

places of window)

Hanoi - the Hanoi tower sample

Philosophers - dinning philosophers sample

Sort - the sort sample (quick sort,shell, insertion sort)

Tetris - a simple tetris game with tasks

Fiveteen - a simple Fiveteen game

SokoBan - a Sokoban game by Jeff Godfrey

tix - Tix extension

tixeditgrid - Tix extension

fg - run executable from application

Quicktimevideo - Qiuck Time Video (QuickTimeTcl in Windows or MPlayerTcl in Unix(Linux) )

Tkogl - OpenGL texture sample

Tkogl - OpenGL nurbsdemo sample

Tkogl - OpenGL gencyldemo sample

Tcl3d - OpenGL planet sample

Tcl3d - OpenGL robot sample

Mpegmovie - MPEG movie for Windows and Unix by XBit 3.4 package

Video - DDW movie for Windows by XBit 4.0 package

Mci - Load Mplayer to play media in Windows with optcl package

Mp3player - MP3 Sound player by SNACK package

draw - Simpe drawing with Rcom.Draw base package

adagr - Simpe drawing with Adagraph package

graph - Simpe BLT graph sample

barchart - Simpe BLT barchart sample

3Dgraph - 3D cube drawing with Rcom.Draw package

Toplevelmanager - Sample how to manage toplevel widget(fullsceen,no borders, ...)

canvas.gui - a simple example for canvas in tcl/tk

filemenu.gui - a simple example for menubutton and PopUp menu

fonts.gui - a simple example for fonts in tcl/tk

form.gui - a complex example

frame1.gui - a simple example for frame in tcl/tk

grid1.gui - a simple example for grid layout in tcl/tk

grid2.gui - a simple example for grid layout in tcl/tk

imagetst.gui - a simple example for images in tcl/tk

message.gui - a simple example for message widget in tcl/tk

place.gui - a simple example for place layout in tcl/tk

packbuton.gui - a simple example for pack layout in tcl/tk

scale.gui - a simple example for scale widget in tcl/tk

textxy.gui - a simple example for scrollable text in tcl/tk

textscrol.gui - a simple example for scrolled text widget

ctextxy.gui - a simple example for cscrollable text in tcl/tk

In WEB Browser you may run VAD Tutorial from vad/tutorial/vadtutor.htm

VAD 7.6 is available in http://users1.Jabry.com/adastudio

You may dowload sources vad76scr.tar.bz2, vadhlp.tar.bz2, vadtutor.tar.bz2, vadsmp.tar.bz2,vad71aonix.tar.bz2,

adahlp.tar.bz2, vadtcl.tar.bz2, adastyle.tar.bz2,philosofers.tar.bz2,vadidl.tar.bz2

and binaries vad76win.tar.bz2 (WINDOWS 9x/NT/XP 32bit and 64bit)

vad76x86.tar.bz2 (x86-64)

Any questions, any ideias, any problems, any help.

Feedback and bug reports are greatly appreciated.

Leonid Dulman(leonid_dulman@yahoo.co.uk)