comp.lang.ada
 help / color / mirror / Atom feed
* Difficult to describe problem
@ 2002-06-20 12:16 Nige
  2002-06-20 14:04 ` Dr. Michael Paus
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Nige @ 2002-06-20 12:16 UTC (permalink / raw)


Hi - Sorry about the ambiguous title of this post, but it's hard to sum 
up the problem.

What I have is a simple Ada interface to the Xlib function which 
contains functions for creating windows, and drawing in them, etc.

The package is a generic, with a procedure passed as a parameter to
handle events generated by X. Inside the package is a task which 
examines the X event list and calls the procedure as required.

I also have another generic package which provides a menu by 
instantiating it with an enumeration type and another procedure. This 
menu package uses the above window package to create a window and fill 
it with the elements of the enumeration type. When one of the items is 
clicked on, the procedure is called.

The problem is that if I instantiate the windows package and the menu 
package within the same executable, I end up with two tasks, each 
processing the X events. This works OK, most of the time, but sometimes 
one of the task fails during elaboration.

I have used a protected type declared externally to both packages to 
single thread the whole thing, but this still doesn't prevent the problem.

Ideally, I'd like to integrate the menu package into the window package 
so that they both use the same event loop (task) which I think will cure 
the problem.

The final problem I have is how to integrate it. If the menu package 
remains generic, it can't be called by the task. If I make it non 
generic, I can't specify an enumeration for the menu when it is created.

What I'd really like to do is to make the menu package a non generic and 
somehow pass an enumeration type to it. If not I'll have to pass a list 
of pointers to strings or something.

Sorry for the long post - any ideas welcommed.

Nige.




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2002-07-08  7:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-06-20 12:16 Difficult to describe problem Nige
2002-06-20 14:04 ` Dr. Michael Paus
2002-06-20 14:56 ` Stephen Leake
2002-06-21 15:09 ` Ted Dennison
2002-06-22 18:17   ` Simon Wright
2002-07-08  7:37     ` Nige

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox