From: sglanger@vela.acs.oakland.edu (LANGER STEVEN C)
Subject: motif child windows
Organization: Oakland University, Rochester MI.
Distribution: usa
Date: Wed, 16 Dec 1992 00:17:39 GMT

Several days ago I posted a question on this group regarding an application
I am writing. I realized from the varied responses thet people were kind
enough to send that I did a poor job of stating the problem so here is
a more verbose and hopefully clearer statement of it. 

  I am just beginning to write a large app (50-100K lines of code
eventually) that will run on our hospitals SGI machines. Said 
program consists of a foreground process to collect user input 
and  various info displays. This process is also responsible for launching
and monitoring processes that control several other machines.
Ultimately, the system will control simultaneous radiation treatment, heat
treatment and incorporate CAT or MRI images. We have already implemented 
parts of this software under MS-Windows, but as you can imagine, such
machines just don't have the power to pull off the whole job. A schematic
might look like this;

			  USER
			   |
                Main Process & Display Code
                 ^         ^         	^
		 |	   |	     	|	
     	   -------  	   |	    	|
	   |		XRay		CAT
Heating Device &	Machine		or MRI Scanner
Thermometry Device      Driver		Driver
Drivers  |		 |		|
	 |		 |		|
	 |		 |		Hardware
	Hardware	Hardware

  Commands are issued by the user and sent to the appropriate device
driver process, then sent on to the various machines. Data must also
come back from these drivers for display. I have launched these other
processes from the main, but have yet to get 2-way communication via
the pipes.

 Now to the Motif part. I want the app mainWindow to act as nothing more
than a backdrop to contain a menu and clip the miriad displays which this system
will eventually produce. The child windows MUST be dragable and resizable
within the mainWindow, but not leave it. Something like this;

| -- /  App Main Window                         	  /Small / Big   |
| Heat Commands | XRay | Scanner | Display | Help 			 |
|------------------------------------------------------------------------|
|				 | Temp Bar Graph     |			 |
|				 | Temp History Graph |			 |
|				 | Heating Parameters |			 |
|				 | XRay Parameters    |			 |
|				 | MRI Image 	--->  | Posterior	 |
|				 | CAT Image	      | Anterior	 |
|				 ---------------------- Bla		 |
|							Bla		 |
|									 |
|	| -- /TempBar   /Small/Big|					 |
|	|-------------------------|					 |
|	|		#	  |					 |
|	|  #   	        #	  |					 |
|	|  #   #    #   #	  |		| -- /TempHistogram  /Sma|
|  	|------------------------xx		|------------------------|
|				resize		|			 |
|						|   .-.   .       .	 |
|						| ./   \./ \._ ../	 |
|		| -- /Brain-Ant  /Small/Big|	|			 |
|		|--------------------------|	|------------------------|
|		|			   |				 |
|		|  Pixmap from MRI         |				 |
|		|			   |				 |
|		|-------------------------xx				 |
------------------------------------------------------------------------xx

 The physicians require that the pixmaps display the entire image, not
a viewport of an image (that knocks out ScrolledWindows) so that they
get a global perspective. For fine detail, they want to be able to
resize the window big and have it rescale itself to reveal more detail.
So that's the problem. I need dragable resizable windows within the 
main window. I cannot compel the physicians to accept a grid of
equally sized windows so that knocks out RowColumn and PanedWindows.

Questions:

1. Is there any known Xm or Xt Widget that will accomplish this?

2. If not, what is the quickest method (from a coding point of view)
   to make a dragable, sizeable window that can be assigned a DrawingArea?
   
   a. Xlib primitives
   b. Xt intrinsics
   c. a custom Widget

3. If the answer to 2 is c, what would be the best Widget to start
   modifying?

4. If the answer to 2 is a or b, could you supply a code snippet or
reference?

Tomorrow marks my one week anniversary of coding in X so I'm probably
missing something obvious. If so I apoligise for boring everyone. But
I've figured out how to make child windows drag, resize and clip in their 
parents on Macs, Amigas and even (ach) MS-Windows and I'm totally at a loss
on X. Any and all responses are welcome and if there is sufficient interest
in this problem, I'll post any and all solution(s) to the group.

--sincerely, steve
 
-- 
Steve Langer  			       sglanger@argo.acs.oakland.edu (VMS)
Oakland University		       sglanger@vela.acs.oakland.edu (Ultrix)
---------------------------------------------------------------------------
Standard disclaimers apply. In addition, the author makes no guarantees,
concerning the grammatical accuracy of his writing. Therefore, any ^B's, ^C's, 
midword character additions/deletions and other non-sense which occurs (after 
the work leaves the author's decade old text editor via his decade old Amiga, 
struggles through a local 1200 baud Merit server to be further mauled via the 
remote VAX mail servers) is someone elses problem - namely yours.
---------------------------------------------------------------------------