Your problem is a very common problem when using X11 and Ada.

My company has developped a full Ada solution that might be useful to you.
The product name is TeleUSE/XInAda, it contains :
        a)XInAda libraries (our full Ada implementation for X11 and Motif).
This is not a binding to C, so you do not have to deal with how the low
level C routines are implemented
        b)standard TeleUSE
        c) Ada code generators. We generate Ada code for both PCD and D
files

This solution gives you a high portability (between different CPUs, Ada
compilers, and even
moving frm Ada83 to Ada95)

I hope this helps
Yours faithfully

Jean-Claude Mahieux
Top Graph'X
Email : [log in to unmask]
http://ourworld.compuserve.com/homepages/topgraphx
Tel  : (33) 1 69 26 97 88
Fax : (33) 1 69 26 97 89