# $XConsortium: PushBtn2.scr /main/6 1995/07/17 20:06:59 drk $
#
# 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
#
# This test confirms that setting the resources
# XmNdefaultButtonShadowThickness and XmNshowAsDefault on
# a PushButton and PushButtonGadget before they are realized does not
# cause those widgets to draw into an unrealized window.
# You should see the two objects displayed.
# If no X errors (BadDrawable from X_PolyFillRectangle request)
# have been reported, the test has passed.
CompareVisual Shell1
Continue
# A client with a pushbutton should appear. It should be labeled
# 'Push Here' with marginWidth and marginHeight set at 20.
# All other resources will be set by default.
# Click MB1 on the pushbutton. The pushbutton should set showAsDefault
# to 5 which will place a second shadow region around the pushbutton
# to visually mark it as a default button.
# Click MB1 on the pushbutton again. Now, showAsDefault will be set at 10 and
# and the shadow region around the pushbutton will grow to 10 pixels.
LocatePointer pushbutton
CompareVisual pushbutton
ClickMB Btn1
ClickMB Btn1
CompareVisual bboard
Continue
# Double and triple click on the button. You will get only
# one callback for each click, and the click_count will always be 1.
LocatePointer pushbutton
ClickMB Btn1 2
ClickMB Btn1 3
Continue
# Multi-click on button. You will get a separate callback
# for each click, which will look like a series with counts 1,2,3,etc
LocatePointer pushbutton
ClickMB Btn1 2
ClickMB Btn1 3
ClickMB Btn1 5
Continue
# A bulletinBoard with several pushButtons should appear. Mnemonics have
# been added to the push Buttons. Verify that the mnemonics work. With
# focus in the window, type <Alt> mnemonic character. You should
# get a message to the term window describing which button was selected.
# Try both 'R' and 'r', to verify for case sensitivity.
LocatePointer pushbutton1
ClickKey <Alt> <Shift> Kr
ClickKey <Alt> Kr
ClickKey <Alt> Kl
LocatePointer pushbutton1
ClickMB Btn1
LocatePointer pushbutton2
ClickMB Btn1
Continue
# Click on the first push button. The remaining pushbuttons should be
# destroyed with no core dumps occurring.
LocatePointer push0
ClickMB Btn1
Continue
Exit