/* 
 * Motif
 *
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
 *
 * These libraries and programs are free software; you can
 * redistribute them and/or modify them under the terms of the GNU
 * Lesser General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option)
 * any later version.
 *
 * These libraries and programs are distributed in the hope that
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE. See the GNU Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with these librararies and programs; if not, write
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA 02110-1301 USA
*/ 
/* 
 * HISTORY
*/ 
/*
static char rcsid[] = "$XConsortium: SharedTearM1b.dat /main/5 1995/07/13 18:38:54 drk $"
*/
@)     SHARED TEAR OFF MENU TEST  run with -tt1 command line argument

#) Two client windows will appear, each containing a menubar, option menu,
   popup menu and an array of pushbuttons to change menu item sensitivity.
!)
#) A message should appear, specifying the tear off control.  It
   should verify that the tear off control's parent is the pane passed
   to XmGetTearOffControl().
!)

#) A number of warnings should have been issued - something like,
   "Tear off enabled on a shared menupane: allowed but not recommended"
!)

#) There should be no 'String" to 'TearOffModel' type converter warnings.

C)


@)     TESTING SHARED TEAR OFF SENSITIVITY

#) Use any tear off method to tear off MenuBar [Colors] submenu from either 
   window.
!)
#) Select the [Change Red Sensitivity] button in the same window.
   Menu item, [Red], in the tear off menupane should change to INsensitive.
!)
#) In (one of) the other window(s), select the [Change Green Sensitivity] 
   button.
   Menu item [Green]'s sensitivity in the tear off menupane should NOT change.
!)
#) In the original "same" window, post the MenuBar [Colors] submenu by 
   selecting with Button1.  
!)
#)  Note that menu item [Red] is INsensitive and [Green] is sensitive.
   KeyPress <R> should have no affect.
   KeyPress <G> should activate menu item [Green] via its mnemonic.

#) In the original "same" window, post the Popup Menu with Button3Press.  
   Post the cascading pane [To More Colors] submenu.  
!)
#)   Note that menu item [Red] is INsensitive and [Green] is sensitive.
   KeyPress <R> should have no affect.
   KeyPress <G> should activate menu item [Green] via its mnemonic.

C)

#) In "(one of) the other window(s)", post the MenuBar [Colors] submenu by
   selecting with Button1.  
!)
#)   Note that menu item [Red] is sensitive and [Green] is INsensitive.
   KeyPress <G> should have no affect.
   KeyPress <R> should activate menu item [Red] via its mnemonic.
!)
#) In the same "(one of) the other window(s)", post the Popup Menu by 
   selecting with Button3.  
   Post the cascading pane [To More Colors] submenu.  
!)
#)  Note that menu item [Red] is sensitive and [Green] is INsensitive.
   KeyPress <G> should have no affect.
   KeyPress <R> should activate menu item [Red] via its mnemonic.

C)

#) In the same "(one of) the other window(s)", use any tear off method to 
   tear off MenuBar [Colors] submenu.
   The old tear off menu should dismiss.
   Note that menu item [Red] is sensitive and [Green] is INsensitive.
!)
#) Make sure that the tear off menu has the focus.
   KeyPress <G> should have no affect.
!)
#) KeyPress <R> should activate menu item [Red] via its mnemonic.
   An activate callback message should be reported to the term window.
!)
#) Select [Red] by traversing to it and KeyPressing <Return> or <Space>.
!)
#) Select [Red] with Button1Press.

C)

#) Post and use any tear off method to tear the Popup Menu from either window
!)
#) Select the [Change Pink Sensitivity] button in the same window.
   Menu item, [Pink], in the tear off menupane should change to INsensitive.
!)
#) In (one of) the other window(s), select the [Change Baby Blue Sensitivity] 
   button.
   Menu item [Baby Blue]'s sensitivity in the tear off menupane should NOT 
   change.
!)
#) In the original "same" window, post the Popup Menu by selecting with 
   Button3.  
!)
#)   Note that menu item [Pink] is INsensitive and [Baby Blue] is sensitive.
   KeyPress <P> should have no affect.
   KeyPress <B> should activate menu item [Baby Blue] via its mnemonic.

C)

#) In the same "(one of) the other window(s)", post the Popup Menu by 
   selecting with Button3.  
   Note that menu item [Pink] is sensitive and [Baby Blue] is INsensitive.
!)
#)   KeyPress <B> should have no affect.
   KeyPress <P> should activate menu item [Pink] via its mnemonic.
   In the popup tear off, [Pink] should still be INsensitive and [Baby Blue]
   should be sensitive.
!)
#) In the same "(one of) the other window(s)", post the Popup Menu by 
   selecting with Button3.  
!)
#) Use any tear off method to tear off the Popup Menu.
   Note that menu item [Pink] is sensitive and [Baby Blue] is INsensitive.

C)

#) Button1Press [RESET MENUS] in each window.
!)
C)

@)     TESTING SHARED TEAR OFF ACCELERATORS

#) Use any tear off method to tear off MenuBar [Colors] submenu from either
   window.
!)
#) Make sure that the tear off menu has the focus.
!)
#) Press <Ctrl-R>.  [Red] should ACTIVATE and report postFromWidget = mb;
Toplevel Shell = (same window).
!)
#) Press <Ctrl-G>.  [Green] should ACTIVATE and report postFromWidget = mb;
Toplevel Shell = (same window).
!)
#) Press <Ctrl-l>.  [Blue] should VALUE_CHANGED and report value and tracked
value = 1; postFromWidget = mb; Toplevel Shell = (same window).
!)
#) Press <Ctrl-Y>.  [Yellow] should VALUE_CHANGED and report value and tracked
value = 1; postFromWidget = mb; Toplevel Shell = (same window).

C)

#) Move the focus to the original "same" window.
!)
#) Press <Ctrl-R>.  [Red] should ACTIVATE and report postFromWidget = mw;
Toplevel Shell = (same window).
!)
#) Press <Ctrl-G>.  [Green] should ACTIVATE and report postFromWidget = mw;
Toplevel Shell = (same window).
!)
#) Press <Ctrl-l>.  [Blue] should VALUE_CHANGED and report value and tracked
value = 0; postFromWidget = mw; Toplevel Shell = (same window).  In the
tear off, [Blue] should change state.
!)
#) Press <Ctrl-Y>.  [Yellow] should VALUE_CHANGED and report value and tracked
value = 0; postFromWidget = mw; Toplevel Shell = (same window).  In the
tear off, [Yellow] should change state.

C)

#) Move the focus to the "other" window.
!)
#) Press <Ctrl-R>.  [Red] should ACTIVATE and report postFromWidget = mw;
Toplevel Shell = (other window).
!)
#) Press <Ctrl-G>.  [Green] should ACTIVATE and report postFromWidget = mw;
Toplevel Shell = (other window).
!)
#) Press <Ctrl-l>.  [Blue] should VALUE_CHANGED and report value and tracked
value = 1; postFromWidget = mw; Toplevel Shell = (other window).  The tear
off should not change.
!)
#) Press <Ctrl-Y>.  [Yellow] should VALUE_CHANGED and report value and tracked
value = 1; postFromWidget = mw; Toplevel Shell = (same window).  The tear
off should not change.

C)

#) Make sure the focus is in the "other" window.
!)
#) Press <Ctrl-l>.  [Blue] should VALUE_CHANGED and report value = 1; tracked
value = 0; postFromWidget = mw; Toplevel Shell = (other window).  The tear
off should not change.
!)
#) Move the focus to the original "same" window.
!)
#) Press <Ctrl-l>.  [Blue] should VALUE_CHANGED and report value and tracked
value = 1; postFromWidget = mw; Toplevel Shell = (same window).  The tear
off should reflect the change.
!)
#) Move the focus back to the "other" window.
!)
#) Press <Ctrl-l>.  [Blue] should VALUE_CHANGED and report value = 0; tracked
value = 1; postFromWidget = mw; Toplevel Shell = (other window).  The tear
off should not change.

C)

#) Make sure the focus is in the "other" window.
!)
#) Press <Ctrl-Y>.  [Yellow] should VALUE_CHANGED and report value = 1; tracked
value = 0; postFromWidget = mw; Toplevel Shell = (other window).  The tear
off should not change.
!)
#) Move the focus to the original "same" window
!)
#) Press <Ctrl-Y>.  [Yellow] should VALUE_CHANGED and report value and tracked
value = 1; postFromWidget = mw; Toplevel Shell = (same window).  The tear
off should reflect the change.
!)
#) Move the focus back to the "other" window.
!)
#) Press <Ctrl-Y>.  [Yellow] should VALUE_CHANGED and report value = 0; tracked
value = 1; postFromWidget = mw; Toplevel Shell = (other window).  The tear
off should not change.

C)

#) Select the [Change Red Sensitivity] button in the original "same" window.
   Menu item, [Red], in the tear off menupane should change to INsensitive.
!)
#) Select the [Change Blue Sensitivity] button in the original "same" window.
   Menu item, [Blue], in the tear off menupane should change to INsensitive.
!)
#) In the "other" window, select the [Change Green Sensitivity] button.
   Menu item [Green]'s sensitivity in the tear off menupane should NOT change.
!)
#) In the "other" window, select the [Change Yellow Sensitivity] button.
   Menu item [Yellow]'s sensitivity in the tear off menupane should NOT change.
!)
#) Move the focus to the original "same" window.
!)
#) Make sure that the tear off menu has the focus.
   KeyPress <Ctrl-R> should have no affect.
   KeyPress <Ctrl-l> should have no affect.
!)
#) Press <Ctrl-G>.  [Green] should ACTIVATE and report postFromWidget = mb;
   Toplevel Shell = (same window).
!)
#) Press <Ctrl-Y>.  [Yellow] should VALUE_CHANGED and report 
   postFromWidget = mb; Toplevel Shell = (same window).

C)

#) Move the focus to the original "same" window.
!)
#) Press <Ctrl-R>.  [Red] should "ignore activate" and report 
   postFromWidget = mw; Toplevel Shell = (same window).
!)
#) Press <Ctrl-G>.  [Green] should ACTIVATE and report postFromWidget = mw;
   Toplevel Shell = (same window).
!)
#) Press <Ctrl-l>.  [Blue] should "ignore value_changed" and report 
   postFromWidget = mw; Toplevel Shell = (same window).
!)
#) Press <Ctrl-Y>.  [Yellow] should VALUE_CHANGED and report 
   postFromWidget = mw; Toplevel Shell = (same window).

C)

#) Move the focus to the "other" window.
!)
#) Press <Ctrl-R>.  [Red] should ACTIVATE and report postFromWidget = mw;
   Toplevel Shell = (other window).
!)
#) Press <Ctrl-G>.  [Green] should "ignore activate" and report 
   postFromWidget = mw; Toplevel Shell = (other window).
!)
#) Press <Ctrl-l>.  [Blue] should VALUE_CHANGED and report 
   postFromWidget = mw; Toplevel Shell = (other window).
!)
#) Press <Ctrl-Y>.  [Yellow] should "ignore value_changed" and report 
   postFromWidget = mw; Toplevel Shell = (other window).

C)

#) In original "same" window, post the MenuBar [Colors] submenu with 
   Button1Click.
   KeyPress <Ctrl-R> should have no affect.
   KeyPress <Ctrl-l> should have no affect.
   The menu should remain posted.
!)
#) Press <Ctrl-G>.  [Green] should ACTIVATE and report postFromWidget = mb;
   Toplevel Shell = (same window).  The menu should unpost.
!)
#) In original "same" window, repost the MenuBar [Colors] submenu with 
   Button1Click.
!)
#) Press <Ctrl-Y>.  [Yellow] should VALUE_CHANGED and report 
   postFromWidget = mb; Toplevel Shell = (same window).  The tear off's
   [Yellow] toggle button should change state.  The menu should unpost.

C)

#) In "other" window, post the MenuBar [Colors] submenu with 
   Button1Click.
   KeyPress <Ctrl-G> should have no affect.
   KeyPress <Ctrl-Y> should have no affect.
   The menu should remain posted.
!)
#) Press <Ctrl-R>.  [Red] should ACTIVATE and report postFromWidget = mb;
   Toplevel Shell = (other window).  The menu should unpost.
!)
#) In "other" window, repost the MenuBar [Colors] submenu with 
   Button1Click.
!)
#) Press <Ctrl-l>.  [Blue] should VALUE_CHANGED and report 
   postFromWidget = mb; Toplevel Shell = (other window).  The tear off
   should not change.  The menu should unpost.

C)

#) Button1Press [RESET MENUS] in each window.
!)

C)

@)     TESTING TEAR OFF CASCADING SUBMENUS AND HIGHLIGHTING

#) Use any tear off method to tear off MenuBar [Colors] submenu from either
   window.
!)
#) In the tear off, Btn1Press [More Colors] to post a cascading submenu.
!)
#) Button1Release on [Black] to select and activate.  An activate callback
   message should be reported to the term window.  The submenu should unpost.
!)
#) Restore focus to the tear off.  [More Colors] should highlight.
!)
#) Button1Click on [Still More Colors] to post a cascading submenu.
!)
#) KeyPress <e> to select and activate [Grey] via its mnemonic.  The submenu
   should unpost.
!)
#) Restore focus to the tear off.  [Still More Colors] should highlight.
!)
#) Repost MenuBar [Colors] from either window.  Red should be highlighted.
 KeyPress <Escape> to unpost the MenuBar.
!)
#) Restore focus to the tear off.  [Still More Colors] should be highlighted.

C)

#) Use any tear off method to tear off the Popup Menu from either window.
!)
#) Make sure that the Popup tear off has the focus.
!)
#) KeyPress <M> to post [To More Colors]'s cascading submenu.
!)
#) KeyPress <Escape> to unpost the cascading submenu.
!)
#) Restore focus to the [Colors] tear off.  [Still More Colors] should 
   be highlighted.

C)

#) In the tear off, Btn1Press on [Green] (and hold).  The cursor should change 
   to the menu cursor.  Moving in and out of [Green] should arm and disarm it.
!)
#) Button1Release on [Green] to activate it.  [Green] should remain
   highlighted.  The cursor should return to normal.
C)

E)

#) This is a Motif 1.2 test only.
C)

E)




