From b24fce399de758a89b327db5c7905cfd132fe3da Mon Sep 17 00:00:00 2001 From: Dan Nicholson Date: Tue, 29 Sep 2009 06:17:30 -0700 Subject: xts5: Flatten Xt4 directory more --- xts5/Xt4/XtAppCreateShell.m | 292 ++++++ xts5/Xt4/XtAppCreateShell/XtAppCreateShell.m | 292 ------ xts5/Xt4/XtAppInitialize.m | 938 +++++++++++++++++ xts5/Xt4/XtAppInitialize/XtAppInitialize.m | 938 ----------------- xts5/Xt4/XtAppSetFallbackResources.m | 150 +++ .../XtAppSetFallbackResources.m | 150 --- xts5/Xt4/XtCloseDisplay.m | 184 ++++ xts5/Xt4/XtCloseDisplay/XtCloseDisplay.m | 184 ---- xts5/Xt4/XtCreateApplicationContext.m | 84 ++ .../XtCreateApplicationContext.m | 84 -- xts5/Xt4/XtCreateVarArgsList.m | 741 ++++++++++++++ xts5/Xt4/XtCreateVarArgsList/XtCreateVarArgsList.m | 741 -------------- xts5/Xt4/XtCreateWidget.m | 910 +++++++++++++++++ xts5/Xt4/XtCreateWidget/XtCreateWidget.m | 910 ----------------- xts5/Xt4/XtCreateWindow.m | 742 ++++++++++++++ xts5/Xt4/XtCreateWindow/XtCreateWindow.m | 742 -------------- xts5/Xt4/XtDatabase.m | 147 +++ xts5/Xt4/XtDatabase/XtDatabase.m | 147 --- xts5/Xt4/XtDestroyApplicationContext.m | 127 +++ .../XtDestroyApplicationContext.m | 127 --- xts5/Xt4/XtDestroyWidget.m | 356 +++++++ xts5/Xt4/XtDestroyWidget/XtDestroyWidget.m | 356 ------- xts5/Xt4/XtDisplay.m | 91 ++ xts5/Xt4/XtDisplay/XtDisplay.m | 91 -- xts5/Xt4/XtDisplayInitialize.m | 565 +++++++++++ xts5/Xt4/XtDisplayInitialize/XtDisplayInitialize.m | 565 ----------- xts5/Xt4/XtDisplayOfObject.m | 114 +++ xts5/Xt4/XtDisplayOfObject/XtDisplayOfObject.m | 114 --- xts5/Xt4/XtIsRealized.m | 111 ++ xts5/Xt4/XtIsRealized/XtIsRealized.m | 111 -- xts5/Xt4/XtMergeArgLists.m | 123 +++ xts5/Xt4/XtMergeArgLists/XtMergeArgLists.m | 123 --- xts5/Xt4/XtName.m | 80 ++ xts5/Xt4/XtName/XtName.m | 80 -- xts5/Xt4/XtOpenDisplay.m | 888 ++++++++++++++++ xts5/Xt4/XtOpenDisplay/XtOpenDisplay.m | 888 ---------------- xts5/Xt4/XtParent.m | 90 ++ xts5/Xt4/XtParent/XtParent.m | 90 -- xts5/Xt4/XtRealizeWidget.m | 148 +++ xts5/Xt4/XtRealizeWidget/XtRealizeWidget.m | 148 --- xts5/Xt4/XtScreen.m | 87 ++ xts5/Xt4/XtScreen/XtScreen.m | 87 -- xts5/Xt4/XtScreenDatabase.m | 121 +++ xts5/Xt4/XtScreenDatabase/XtScreenDatabase.m | 121 --- xts5/Xt4/XtScreenOfObject.m | 116 +++ xts5/Xt4/XtScreenOfObject/XtScreenOfObject.m | 116 --- xts5/Xt4/XtSetArg.m | 110 ++ xts5/Xt4/XtSetArg/XtSetArg.m | 110 -- xts5/Xt4/XtSetLanguageProc.m | 439 ++++++++ xts5/Xt4/XtSetLanguageProc/XtSetLanguageProc.m | 439 -------- xts5/Xt4/XtToolkitInitialize.m | 68 ++ xts5/Xt4/XtToolkitInitialize/XtToolkitInitialize.m | 68 -- xts5/Xt4/XtUnrealizeWidget.m | 128 +++ xts5/Xt4/XtUnrealizeWidget/XtUnrealizeWidget.m | 128 --- xts5/Xt4/XtVaAppCreateShell.m | 315 ++++++ xts5/Xt4/XtVaAppCreateShell/XtVaAppCreateShell.m | 315 ------ xts5/Xt4/XtVaAppInitialize.m | 944 +++++++++++++++++ xts5/Xt4/XtVaAppInitialize/XtVaAppInitialize.m | 944 ----------------- xts5/Xt4/XtVaCreateWidget.m | 1065 ++++++++++++++++++++ xts5/Xt4/XtVaCreateWidget/XtVaCreateWidget.m | 1065 -------------------- xts5/Xt4/XtWidgetToApplicationContext.m | 97 ++ .../XtWidgetToApplicationContext.m | 97 -- xts5/Xt4/XtWindow.m | 88 ++ xts5/Xt4/XtWindow/XtWindow.m | 88 -- xts5/Xt4/XtWindowOfObject.m | 112 ++ xts5/Xt4/XtWindowOfObject/XtWindowOfObject.m | 112 -- xts5/scenarios/Xt4_scen | 66 +- xts5/tet_scen | 66 +- 68 files changed, 10637 insertions(+), 10637 deletions(-) create mode 100644 xts5/Xt4/XtAppCreateShell.m delete mode 100644 xts5/Xt4/XtAppCreateShell/XtAppCreateShell.m create mode 100644 xts5/Xt4/XtAppInitialize.m delete mode 100644 xts5/Xt4/XtAppInitialize/XtAppInitialize.m create mode 100644 xts5/Xt4/XtAppSetFallbackResources.m delete mode 100644 xts5/Xt4/XtAppSetFallbackResources/XtAppSetFallbackResources.m create mode 100644 xts5/Xt4/XtCloseDisplay.m delete mode 100644 xts5/Xt4/XtCloseDisplay/XtCloseDisplay.m create mode 100644 xts5/Xt4/XtCreateApplicationContext.m delete mode 100644 xts5/Xt4/XtCreateApplicationContext/XtCreateApplicationContext.m create mode 100644 xts5/Xt4/XtCreateVarArgsList.m delete mode 100644 xts5/Xt4/XtCreateVarArgsList/XtCreateVarArgsList.m create mode 100644 xts5/Xt4/XtCreateWidget.m delete mode 100644 xts5/Xt4/XtCreateWidget/XtCreateWidget.m create mode 100644 xts5/Xt4/XtCreateWindow.m delete mode 100644 xts5/Xt4/XtCreateWindow/XtCreateWindow.m create mode 100644 xts5/Xt4/XtDatabase.m delete mode 100644 xts5/Xt4/XtDatabase/XtDatabase.m create mode 100644 xts5/Xt4/XtDestroyApplicationContext.m delete mode 100644 xts5/Xt4/XtDestroyApplicationContext/XtDestroyApplicationContext.m create mode 100644 xts5/Xt4/XtDestroyWidget.m delete mode 100644 xts5/Xt4/XtDestroyWidget/XtDestroyWidget.m create mode 100644 xts5/Xt4/XtDisplay.m delete mode 100644 xts5/Xt4/XtDisplay/XtDisplay.m create mode 100644 xts5/Xt4/XtDisplayInitialize.m delete mode 100644 xts5/Xt4/XtDisplayInitialize/XtDisplayInitialize.m create mode 100644 xts5/Xt4/XtDisplayOfObject.m delete mode 100644 xts5/Xt4/XtDisplayOfObject/XtDisplayOfObject.m create mode 100644 xts5/Xt4/XtIsRealized.m delete mode 100644 xts5/Xt4/XtIsRealized/XtIsRealized.m create mode 100644 xts5/Xt4/XtMergeArgLists.m delete mode 100644 xts5/Xt4/XtMergeArgLists/XtMergeArgLists.m create mode 100644 xts5/Xt4/XtName.m delete mode 100644 xts5/Xt4/XtName/XtName.m create mode 100644 xts5/Xt4/XtOpenDisplay.m delete mode 100644 xts5/Xt4/XtOpenDisplay/XtOpenDisplay.m create mode 100644 xts5/Xt4/XtParent.m delete mode 100644 xts5/Xt4/XtParent/XtParent.m create mode 100644 xts5/Xt4/XtRealizeWidget.m delete mode 100644 xts5/Xt4/XtRealizeWidget/XtRealizeWidget.m create mode 100644 xts5/Xt4/XtScreen.m delete mode 100644 xts5/Xt4/XtScreen/XtScreen.m create mode 100644 xts5/Xt4/XtScreenDatabase.m delete mode 100644 xts5/Xt4/XtScreenDatabase/XtScreenDatabase.m create mode 100644 xts5/Xt4/XtScreenOfObject.m delete mode 100644 xts5/Xt4/XtScreenOfObject/XtScreenOfObject.m create mode 100644 xts5/Xt4/XtSetArg.m delete mode 100644 xts5/Xt4/XtSetArg/XtSetArg.m create mode 100644 xts5/Xt4/XtSetLanguageProc.m delete mode 100644 xts5/Xt4/XtSetLanguageProc/XtSetLanguageProc.m create mode 100644 xts5/Xt4/XtToolkitInitialize.m delete mode 100644 xts5/Xt4/XtToolkitInitialize/XtToolkitInitialize.m create mode 100644 xts5/Xt4/XtUnrealizeWidget.m delete mode 100644 xts5/Xt4/XtUnrealizeWidget/XtUnrealizeWidget.m create mode 100644 xts5/Xt4/XtVaAppCreateShell.m delete mode 100644 xts5/Xt4/XtVaAppCreateShell/XtVaAppCreateShell.m create mode 100644 xts5/Xt4/XtVaAppInitialize.m delete mode 100644 xts5/Xt4/XtVaAppInitialize/XtVaAppInitialize.m create mode 100644 xts5/Xt4/XtVaCreateWidget.m delete mode 100644 xts5/Xt4/XtVaCreateWidget/XtVaCreateWidget.m create mode 100644 xts5/Xt4/XtWidgetToApplicationContext.m delete mode 100644 xts5/Xt4/XtWidgetToApplicationContext/XtWidgetToApplicationContext.m create mode 100644 xts5/Xt4/XtWindow.m delete mode 100644 xts5/Xt4/XtWindow/XtWindow.m create mode 100644 xts5/Xt4/XtWindowOfObject.m delete mode 100644 xts5/Xt4/XtWindowOfObject/XtWindowOfObject.m diff --git a/xts5/Xt4/XtAppCreateShell.m b/xts5/Xt4/XtAppCreateShell.m new file mode 100644 index 00000000..c8eea302 --- /dev/null +++ b/xts5/Xt4/XtAppCreateShell.m @@ -0,0 +1,292 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtAppCreateShell.m +>># +>># Description: +>># Tests for XtAppCreateShell() +>># +>># Modifications: +>># $Log: tapcrshel.m,v $ +>># Revision 1.1 2005-02-12 14:38:00 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:24 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:14 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.1 1998/06/23 22:41:43 andy +>># Added sleep(XT_RESET_DELAY) to each test. SR# 186. +>># +>># Revision 6.0 1998/03/02 05:27:35 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:08 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:06 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:55 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtAppCreateShell Xt4 +Widget +XtAppCreateShell(name, application_class, widget_class, display, args, num_args) +>>ASSERTION Good A +A successful call to +Widget XtAppCreateShell(name, application_class, widget_class, display, args, num_args) +shall create a top-level shell widget that is +the root of a widget tree with name as the widget instance name, +associate it with the display specified by the argument display, and +return the shell widget instance. +>>CODE +Display *display_good; +String name_good; +XtAppContext app_ctext_good; +Widget topLevel_good; +Boolean status; +int argcount = 0; +pid_t pid2; + + FORK(pid2); + XtToolkitInitialize(); + tet_infoline("PREP: Create application context"); + app_ctext_good = XtCreateApplicationContext(); + tet_infoline("PREP: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext_good, /* application context */ + (String)config.display, /* display name */ + "Hi there", /* application name use argv[0] */ + "World", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal) 0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + if (display_good == NULL) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Create top level widget"); + topLevel_good = XtAppCreateShell("Hello", "World", + applicationShellWidgetClass, display_good, + (ArgList)NULL, (Cardinal)0); + tet_infoline("TEST: Class is applicationShell"); + status = XtIsApplicationShell(topLevel_good); + check_dec(True, status, "Return value"); + tet_infoline("TEST: Name"); + name_good = XtName(topLevel_good); + check_str("Hello", name_good, "Name"); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good A +On a successful call to +Widget XtAppCreateShell(name, application_class, widget_class, display, args, +num_args) +when widget_class is ApplicationShell or a subclass thereof the shell widget +instance created shall have WM_COMMAND property set from the values of the +XtNargv and XtNargc resources. +>>CODE +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +XtAppContext app_ctext_good; +Widget widget_good; +Widget labelw_msg; +char *msg = "Property widget"; +XTextProperty *text_prop; +Window window_good; +int argcount = 0; +int ret_value = 0; +Atom actual_type; +int actual_format; +unsigned long num_elements; +long bytes_after; +unsigned char *property_data_buff; +Arg args[2] = { +{ "XtNwidth", 100 }, +{ "XtNheight", 100 } +}; +pid_t pid2; + + FORK(pid2); + + XtToolkitInitialize(); + tet_infoline("PREP: Create application context"); + app_ctext_good = XtCreateApplicationContext(); + tet_infoline("PREP: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext_good, /* application context */ + (String)config.display, /* display name */ + "Hello", /* application name use argv[0] */ + "World", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + if (display_good == NULL) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("PREP: Create top level widget"); + widget_good = XtAppCreateShell("Hello", "World", + applicationShellWidgetClass, display_good, + &args[0], 2); + tet_infoline("PREP: Create label widget"); + labelw_msg = (Widget) CreateLabelWidget(msg, widget_good); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(widget_good); + tet_infoline("TEST: WM_COMMAND property is set"); + window_good = XtWindow(labelw_msg); + ret_value = XGetWindowProperty(display_good, window_good, + XA_WM_COMMAND, (long)0, + 128, False, AnyPropertyType, + &actual_type, + &actual_format, + &num_elements, + (unsigned long *)&bytes_after, + &property_data_buff); + check_dec(Success, ret_value, "Return value"); + tet_infoline("TEST: WM_CLASS property is set"); + window_good = XtWindow(labelw_msg); + ret_value = XGetWindowProperty(display_good, window_good, + XA_WM_CLASS, (long)0, + 128, False, AnyPropertyType, + &actual_type, + &actual_format, + &num_elements, + (unsigned long *)&bytes_after, + &property_data_buff); + check_dec(Success, ret_value, "Return value"); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to Widget XtAppCreateShell(name, application_class, +widget_class, display, args, num_args) when name is NULL shall name the +shell widget instance with the application name passed to XtDisplayInitialize. +>>CODE +Display *display_good; +String name_good; +XtAppContext app_ctext_good; +Widget topLevel_good; +Boolean status; +int argcount = 0; +pid_t pid2; + + FORK(pid2); + XtToolkitInitialize(); + tet_infoline("PREP: Create application context"); + app_ctext_good = XtCreateApplicationContext(); + tet_infoline("PREP: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext_good, /* application context */ + (String)config.display, /* display name */ + "Hi there", /* application name use argv[0] */ + "World", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal) 0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + if (display_good == NULL) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Create top level widget"); + topLevel_good = XtAppCreateShell(NULL, "World", + applicationShellWidgetClass, display_good, + (ArgList)NULL, (Cardinal)0); + tet_infoline("TEST: Class is applicationShell"); + status = XtIsApplicationShell(topLevel_good); + check_dec(True, status, "Return value"); + tet_infoline("TEST: Name"); + name_good = XtName(topLevel_good); + check_str("Hi there", name_good, "Name"); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good B 0 +A successful call to +Widget XtAppCreateShell(name, application_class, widget_class, display, args, +num_args) +when args specifies the XtNscreen +argument shall create the resource database for the shell widget using the +resource values specified in args and resource values from the resource +database of the screen specified by the XtNscreen argument for those +resources not specified in args. +>>ASSERTION Good B 0 +A successful call to +Widget XtAppCreateShell(name, application_class, widget_class, display, args, +num_args) +when args does not specify the +XtNscreen argument, widget_class is applicationShellWidgetClass or a subclass +thereof, and the resource database of the default screen for display +specifies the resource name.screen, class application_class.screen shall +create the resource database for the shell widget using the resource values +specified in args and resource values from the resource database of the screen +specified in the resource database of the default screen for those resources +not specified in args. +>>ASSERTION Good B 0 +A successful call to +Widget XtAppCreateShell(name, application_class, widget_class, display, +args, num_args) +when args does not specify the XtNscreen argument, widget_class is not +applicationShellWidgetClass or a subclass thereof, and the resource database +of the default screen for display specifies the resource name.screen, +class Class.screen, where Class is the class_name field from CoreClassPart +of widget_class, shall create the resource database for the shell widget +using the resource values specified in args and resource values from the +resource database of the screen specified in the resource database of the +default screen for those resources not specified in args. +>>ASSERTION Good B 0 +A successful call to +Widget XtAppCreateShell(name, application_class, widget_class, display, +args, num_args) +when args does not specify the XtNscreen argument and the resource database +of the default screen for display does not specify the resource name.screen, +class application_class.screen shall create the resource database for the +shell widget using the resource values specified in args and resource values +from the resource database of the default screen for those resources not +specified in args. diff --git a/xts5/Xt4/XtAppCreateShell/XtAppCreateShell.m b/xts5/Xt4/XtAppCreateShell/XtAppCreateShell.m deleted file mode 100644 index a0536c6b..00000000 --- a/xts5/Xt4/XtAppCreateShell/XtAppCreateShell.m +++ /dev/null @@ -1,292 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtAppCreateShell/XtAppCreateShell.m ->># ->># Description: ->># Tests for XtAppCreateShell() ->># ->># Modifications: ->># $Log: tapcrshel.m,v $ ->># Revision 1.1 2005-02-12 14:38:00 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:24 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:14 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.1 1998/06/23 22:41:43 andy ->># Added sleep(XT_RESET_DELAY) to each test. SR# 186. ->># ->># Revision 6.0 1998/03/02 05:27:35 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:08 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:06 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:55 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtAppCreateShell Xt4 -Widget -XtAppCreateShell(name, application_class, widget_class, display, args, num_args) ->>ASSERTION Good A -A successful call to -Widget XtAppCreateShell(name, application_class, widget_class, display, args, num_args) -shall create a top-level shell widget that is -the root of a widget tree with name as the widget instance name, -associate it with the display specified by the argument display, and -return the shell widget instance. ->>CODE -Display *display_good; -String name_good; -XtAppContext app_ctext_good; -Widget topLevel_good; -Boolean status; -int argcount = 0; -pid_t pid2; - - FORK(pid2); - XtToolkitInitialize(); - tet_infoline("PREP: Create application context"); - app_ctext_good = XtCreateApplicationContext(); - tet_infoline("PREP: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext_good, /* application context */ - (String)config.display, /* display name */ - "Hi there", /* application name use argv[0] */ - "World", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal) 0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - if (display_good == NULL) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Create top level widget"); - topLevel_good = XtAppCreateShell("Hello", "World", - applicationShellWidgetClass, display_good, - (ArgList)NULL, (Cardinal)0); - tet_infoline("TEST: Class is applicationShell"); - status = XtIsApplicationShell(topLevel_good); - check_dec(True, status, "Return value"); - tet_infoline("TEST: Name"); - name_good = XtName(topLevel_good); - check_str("Hello", name_good, "Name"); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good A -On a successful call to -Widget XtAppCreateShell(name, application_class, widget_class, display, args, -num_args) -when widget_class is ApplicationShell or a subclass thereof the shell widget -instance created shall have WM_COMMAND property set from the values of the -XtNargv and XtNargc resources. ->>CODE -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -XtAppContext app_ctext_good; -Widget widget_good; -Widget labelw_msg; -char *msg = "Property widget"; -XTextProperty *text_prop; -Window window_good; -int argcount = 0; -int ret_value = 0; -Atom actual_type; -int actual_format; -unsigned long num_elements; -long bytes_after; -unsigned char *property_data_buff; -Arg args[2] = { -{ "XtNwidth", 100 }, -{ "XtNheight", 100 } -}; -pid_t pid2; - - FORK(pid2); - - XtToolkitInitialize(); - tet_infoline("PREP: Create application context"); - app_ctext_good = XtCreateApplicationContext(); - tet_infoline("PREP: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext_good, /* application context */ - (String)config.display, /* display name */ - "Hello", /* application name use argv[0] */ - "World", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - if (display_good == NULL) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("PREP: Create top level widget"); - widget_good = XtAppCreateShell("Hello", "World", - applicationShellWidgetClass, display_good, - &args[0], 2); - tet_infoline("PREP: Create label widget"); - labelw_msg = (Widget) CreateLabelWidget(msg, widget_good); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(widget_good); - tet_infoline("TEST: WM_COMMAND property is set"); - window_good = XtWindow(labelw_msg); - ret_value = XGetWindowProperty(display_good, window_good, - XA_WM_COMMAND, (long)0, - 128, False, AnyPropertyType, - &actual_type, - &actual_format, - &num_elements, - (unsigned long *)&bytes_after, - &property_data_buff); - check_dec(Success, ret_value, "Return value"); - tet_infoline("TEST: WM_CLASS property is set"); - window_good = XtWindow(labelw_msg); - ret_value = XGetWindowProperty(display_good, window_good, - XA_WM_CLASS, (long)0, - 128, False, AnyPropertyType, - &actual_type, - &actual_format, - &num_elements, - (unsigned long *)&bytes_after, - &property_data_buff); - check_dec(Success, ret_value, "Return value"); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to Widget XtAppCreateShell(name, application_class, -widget_class, display, args, num_args) when name is NULL shall name the -shell widget instance with the application name passed to XtDisplayInitialize. ->>CODE -Display *display_good; -String name_good; -XtAppContext app_ctext_good; -Widget topLevel_good; -Boolean status; -int argcount = 0; -pid_t pid2; - - FORK(pid2); - XtToolkitInitialize(); - tet_infoline("PREP: Create application context"); - app_ctext_good = XtCreateApplicationContext(); - tet_infoline("PREP: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext_good, /* application context */ - (String)config.display, /* display name */ - "Hi there", /* application name use argv[0] */ - "World", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal) 0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - if (display_good == NULL) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Create top level widget"); - topLevel_good = XtAppCreateShell(NULL, "World", - applicationShellWidgetClass, display_good, - (ArgList)NULL, (Cardinal)0); - tet_infoline("TEST: Class is applicationShell"); - status = XtIsApplicationShell(topLevel_good); - check_dec(True, status, "Return value"); - tet_infoline("TEST: Name"); - name_good = XtName(topLevel_good); - check_str("Hi there", name_good, "Name"); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good B 0 -A successful call to -Widget XtAppCreateShell(name, application_class, widget_class, display, args, -num_args) -when args specifies the XtNscreen -argument shall create the resource database for the shell widget using the -resource values specified in args and resource values from the resource -database of the screen specified by the XtNscreen argument for those -resources not specified in args. ->>ASSERTION Good B 0 -A successful call to -Widget XtAppCreateShell(name, application_class, widget_class, display, args, -num_args) -when args does not specify the -XtNscreen argument, widget_class is applicationShellWidgetClass or a subclass -thereof, and the resource database of the default screen for display -specifies the resource name.screen, class application_class.screen shall -create the resource database for the shell widget using the resource values -specified in args and resource values from the resource database of the screen -specified in the resource database of the default screen for those resources -not specified in args. ->>ASSERTION Good B 0 -A successful call to -Widget XtAppCreateShell(name, application_class, widget_class, display, -args, num_args) -when args does not specify the XtNscreen argument, widget_class is not -applicationShellWidgetClass or a subclass thereof, and the resource database -of the default screen for display specifies the resource name.screen, -class Class.screen, where Class is the class_name field from CoreClassPart -of widget_class, shall create the resource database for the shell widget -using the resource values specified in args and resource values from the -resource database of the screen specified in the resource database of the -default screen for those resources not specified in args. ->>ASSERTION Good B 0 -A successful call to -Widget XtAppCreateShell(name, application_class, widget_class, display, -args, num_args) -when args does not specify the XtNscreen argument and the resource database -of the default screen for display does not specify the resource name.screen, -class application_class.screen shall create the resource database for the -shell widget using the resource values specified in args and resource values -from the resource database of the default screen for those resources not -specified in args. diff --git a/xts5/Xt4/XtAppInitialize.m b/xts5/Xt4/XtAppInitialize.m new file mode 100644 index 00000000..ecaf3434 --- /dev/null +++ b/xts5/Xt4/XtAppInitialize.m @@ -0,0 +1,938 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtAppInitialize.m +>># +>># Description: +>># Tests for XtAppInitialize() +>># +>># Modifications: +>># $Log: tapintlze.m,v $ +>># Revision 1.1 2005-02-12 14:38:00 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:25 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:15 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.1 1998/06/23 22:35:02 andy +>># Added sleep(XT_RESET_DELAY) to each test. SR# 186. +>># +>># Revision 6.0 1998/03/02 05:27:36 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:09 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.1 1998/01/13 04:50:30 andy +>># In test 17 changed type of closure_ret from XtPointer * to XtPointer (SR 140). +>># +>># Revision 4.0 1995/12/15 09:16:09 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:59 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +char *msg="/tmp/outfile"; +char *args11[] = { + "-background", "green", + "-bd", "green", + "-bg", "green", + "-borderwidth", "3", + "-bordercolor", "red", + "-bw", "3", + "-fg", "green", + "-font", XtDefaultFont, + "-fn", XtDefaultFont, + "-foreground", "blue", + "-geometry", "100x100", + "-iconic", + "-reverse", + "-rv", + "+rv", + "-selectionTimeout", "50", + "-synchronous", + "+synchronous", + "-title", "ApTest", + "-xnlLanguage", "C", + NULL}; + + +typedef struct _instance_variables { + long foreground; + String label; +} instance_variable_rec; + +static XtResource resources[] = { + { + XtNforeground, + XtCForeground, + XtRPixel, sizeof(Pixel), + XtOffsetOf(instance_variable_rec, foreground), + XtRString, "XtDefaultForeground" + }, + { + XtNlabel, + XtCLabel, + XtRString, sizeof(String), + XtOffsetOf(instance_variable_rec, label), + XtRString, "very bad idea" + }, +}; +>>SET tpstartup avs_alloc_sem +>>SET tpcleanup avs_free_sem +>>TITLE XtAppInitialize Xt4 +Widget +XtAppInitialize(app_context_return, application_class, options, num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +>>ASSERTION Good A +A call to +Widget XtAppInitialize(app_context_return, application_class, +options, num_options, argc_in_out, argv_in_out, fallback_resources, args, +num_args) +shall initialize the Intrinsics internals, create an application context for +the calling application, return the context in app_context_return, open +a display, create a top-level shell widget that is the root of a widget +tree, and return the shell widget instance. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +Boolean status; +int argcount = 0; +pid_t pid2; + + FORK(pid2); + tet_infoline("TEST: Initialize toolkit"); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + (String *)NULL, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + avs_set_event(1,1); + tet_infoline("TEST: Class is applicationShell"); + status = XtIsApplicationShell(widget_good); + check_dec(True, status, "Return value"); + tet_infoline("TEST: Application name and class."); + display_good = XtDisplay(widget_good); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + check_str("main", name_good, "Name"); + check_str("TAppInitialize", class_good, "Class"); + KROF(pid2); + if (avs_get_event(1) != 1) { + tet_infoline("ERROR: Process terminated by XtAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + tet_result(TET_PASS); +>>ASSERTION Good A +When the display cannot be opened, a call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall issue an error message and terminate the calling process. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +Boolean status; +int argcount = 0; +pid_t pid2; +FILE *stream; +char line[80], *retval; + + tet_infoline("TEST: Initialize toolkit"); + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "PREP: Direct error message to %s", msg); + tet_infoline(ebuf); + push_stderr("outfile", "w"); + sprintf(ebuf, "DISPLAY=%s", "notarealdisplay"); + putenv(ebuf); + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + (String *)NULL, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + avs_set_event(1,1); + pop_stderr(); + KROF(pid2); + tet_infoline("TEST: Open the file and read the message"); + stream = (FILE *)fopen(msg, "r"); + retval = fgets(line, 80, stream) ; + if (retval == NULL) { + tet_infoline("ERROR: No error message issued"); + tet_result(TET_FAIL); + unlink(msg); + exit(0); + } + unlink(msg); + if (avs_get_event(1) == 1) { + tet_infoline("ERROR: Process not terminated by XtAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + + tet_result(TET_PASS); +>># +>># Start of XtCreateApplicationContext +>># +>># ----- +>># +>># Start of XtOpenDisplay +>># +>>ASSERTION Good B 0 +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall create a resource database for the display opened. +>>ASSERTION Good A +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the -display option is specified in argv_in_out shall use this value as +the display to be opened and initialized. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +Boolean status; +pid_t pid2; +int argc_count; +char **argv_string; +int count = 3; +char *argvals[4]; +char *display_name; + + + FORK(pid2); + sleep(config.reset_delay); + tet_infoline("TEST: Initialize toolkit"); + tet_infoline("PREP: Set arguments to include -display"); + argvals[0] = "tinitlize"; + argvals[1] = "-display"; + argvals[2] = (char *)config.display; + argvals[3] = (char *)NULL; + argc_count = count; + argv_string = &argvals[0]; + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc_count, + argv_string, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + avs_set_event(1,1); + display_good = XtDisplay(widget_good); + tet_infoline("TEST: Display name is correct"); + display_name = XDisplayString(display_good); + check_str(config.display, display_name, "Display name"); + KROF(pid2); + if (avs_get_event(1) != 1) { + tet_infoline("ERROR: Process terminated by XtAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the -display option is not specified in argv_in_out and the DISPLAY environment +variable is set shall use this value as the display to be opened and +initialized. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +Boolean status; +int argcount = 0; +char *display_name; +pid_t pid2; + + FORK(pid2); + sleep(config.reset_delay); + tet_infoline("PREP: Set DISPLAY"); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit"); + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + (String *)NULL, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + avs_set_event(1,1); + display_good = XtDisplay(widget_good); + tet_infoline("TEST: Display name is correct"); + display_name = XDisplayString(display_good); + check_str(config.display, display_name, "Display name"); + KROF(pid2); + if (avs_get_event(1) != 1) { + tet_infoline("ERROR: Process terminated by XtAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the -name option is specified in argv_in_out shall use this value as the +application name to query the server and screen resource databases for +the name.xnlLanguage resource to create the resource database for the display. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +int argcount = 0; +Boolean status; +pid_t pid2; +int pstatus; +int argc_count; +char **argv_string; +int count = 3; +char *argvals[4]; + + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit and open display"); + argvals[0] = "tinitlize"; + argvals[1] = "-name"; + argvals[2] = "testname"; + argvals[3] = (char *)NULL; + argc_count = count; + argv_string = &argvals[0]; + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc_count, + argv_string, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + tet_infoline("TEST: widget_good class is applicationShell"); + status = XtIsApplicationShell(widget_good); + check_dec(True, status, "XtIsApplicationShell return value"); + tet_infoline("TEST: Application name and class"); + display_good = XtDisplay(widget_good); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + check_str("testname", name_good, "Application Name"); + KROF3(pid2, pstatus, AVSXTTIMEOUT-2); + if (pstatus != 0) { + tet_infoline("ERROR: Test process exited abnormally"); + tet_infoline(" May mean display cannot be opened"); + tet_result(TET_UNRESOLVED); + } else + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the -name option is not specified in argv_in_out and the environment variable +RESOURCE_NAME is set shall use this value as the application name to query +the server and screen resource databases for the name.xnlLanguage resource +to create the resource database for the display. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +int argcount = 0; +Boolean status; +pid_t pid2; +int pstatus; + + FORK(pid2); + sleep(config.reset_delay); + tet_infoline("PREP: Set up env variable RESOURCE_NAME"); + putenv("RESOURCE_NAME=testname2"); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit and open display"); + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + (String *)NULL, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + tet_infoline("TEST: widget_good class is applicationShell"); + status = XtIsApplicationShell(widget_good); + check_dec(True, status, "XtIsApplicationShell return value"); + tet_infoline("TEST: Application name and class"); + display_good = XtDisplay(widget_good); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + check_str("testname2", name_good, "Application Name"); + KROF3(pid2, pstatus, AVSXTTIMEOUT-2); + if (pstatus != 0) { + tet_infoline("ERROR: Test process exited abnormally"); + tet_infoline(" May mean display cannot be opened"); + tet_result(TET_UNRESOLVED); + } else + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the -name option is not specified in argv_in_out, the environment variable +RESOURCE_NAME is not set, and argv_in_out[0] is not an empty string shall use +this value as the application name to query the server and screen resource +databases for the name.xnlLanguage resource to create the resource database +for the display. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +int argcount = 0; +Boolean status; +pid_t pid2; +int pstatus; +int argc_count; +char **argv_string; +int count = 1; +char *argvals[4]; + + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit and open display"); + argvals[0] = "testname3"; + argvals[1] = (char *)NULL; + argc_count = count; + argv_string = &argvals[0]; + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc_count, + argv_string, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + tet_infoline("TEST: widget_good class is applicationShell"); + status = XtIsApplicationShell(widget_good); + check_dec(True, status, "XtIsApplicationShell return value"); + tet_infoline("TEST: Application name and class"); + display_good = XtDisplay(widget_good); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + check_str("testname3", name_good, "Application Name"); + KROF3(pid2, pstatus, AVSXTTIMEOUT-2); + if (pstatus != 0) { + tet_infoline("ERROR: Test process exited abnormally"); + tet_infoline(" May mean display cannot be opened"); + tet_result(TET_UNRESOLVED); + } else + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the -name option is not specified in argv_in_out, the environment variable +RESOURCE_NAME is not set, and argv_in_out[0] is an empty string shall use the +string "main" as the application name to query the server and screen resource +databases for the name.xnlLanguage resource to create the resource database +for the display. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +Boolean status; +int argcount = 0; +pid_t pid2; + + FORK(pid2); + sleep(config.reset_delay); + tet_infoline("TEST: Initialize toolkit"); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + (String *)NULL, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + avs_set_event(1,1); + tet_infoline("TEST: Class is applicationShell"); + status = XtIsApplicationShell(widget_good); + check_dec(True, status, "Return value"); + tet_infoline("TEST: Application name and class."); + display_good = XtDisplay(widget_good); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + check_str("main", name_good, "Name"); + check_str("TAppInitialize", class_good, "Class"); + KROF(pid2); + if (avs_get_event(1) != 1) { + tet_infoline("ERROR: Process terminated by XtAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + tet_result(TET_PASS); +>># >># +>># >># Start of XtDisplayInitialize assertions +>># >># +>>ASSERTION Good A +When the synchronize resource is set to True in the resource database +created by a successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +it shall put Xlib into synchronous mode for this display connection. +>>CODE +Window window; +int scr; +static char *property_data = "Hello World"; +XtAppContext app_ctext_return; +Display *display; +int queued_events, events; +int argc = 2; +pid_t pid2; +int pstatus; + /* + ** -synchronous on + ** +synchronous off + */ +char *argv[] = { "tinitlize", "-synchronous", (char *)NULL }; +Widget widget_good; + + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit and open display"); + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc, + argv, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + avs_set_event(1,1); + display = XtDisplay(widget_good); + tet_infoline("PREP: Create a window for events"); + scr = DefaultScreen(display); + window = XCreateWindow(display, RootWindow(display, scr), + 0, 0, 5, 5, 0, /* x,y,wid,ht,brd width */ + DefaultDepth(display, scr), + InputOutput, + DefaultVisual(display, scr), + (XtValueMask) 0, + (XSetWindowAttributes *) 0); + tet_infoline("TEST: Check Xlib is in synchronous mode"); + queued_events = XQLength(display); + XSelectInput(display, window, + (unsigned long)PropertyChangeMask); + for (events = 0; events < 3; events++) + XChangeProperty(display, window, XA_RESOURCE_MANAGER, XA_STRING, 8,0, (unsigned char *)property_data, 16); + check_dec(3+queued_events, XQLength(display), "queue length"); + KROF3(pid2, pstatus, AVSXTTIMEOUT-2); + if (avs_get_event(1) != 1) { + tet_infoline("ERROR: Process terminated by XtAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + tet_result(TET_PASS); +>>ASSERTION Good B 0 +If the implementation is X11R5 or later: +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall determine a language string for the display +by searching the following sources in the specified order: + +- the resource database created from the command line. + +- the resource application_name.xnlLanguage, class + application_class.XnlLanguage in the server's RESOURCE_MANAGER + property for the root window of screen zero if it exists, or in + the user preference resource file otherwise. + +- the environment. +>>ASSERTION Good B 0 +If the implementation is X11R5 or later and is POSIX-based: +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall use the LANG environment variable as the environment value to +search when determining the language string for the display. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall set the language string for the display to the empty string if the +server's RESOURCE_MANAGER property for the root window of screen zero +exists, and a language string is not found on the command line, in this +property, or in the environment. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall set the language string for the display to the empty string if the +server's RESOURCE_MANAGER property for the root window of screen +zero does not exist and a language string is not found on the +command line, in the user preference resource file, or in the +environment. +>>ASSERTION Good D 0 +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall associate with the default screen of the display a resource +database created by combining entries from the following sources, +in order, with the first named source having the highest precedence: + +- the application command line + +- the user's environment resource file + +- per-screen resource specifications from the server, as returned by + XScreenResourceString() + +- per display resource specifications from the server (the + server's RESOURCE_MANAGER property for the root window of + screen zero) if they exist, otherwise the user preference file + +- the application-specific user resource file. + +- the application-specific class resource file . +>>ASSERTION Good A +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall recognize options specified on the command line that are in the +standard table of options in section 4.4 of the specification or in +the table specific to the application specified by +.A options +and +.A num_options. +>>CODE +Display *display_good; +String name_good, class_good; +int argcount = 20; +instance_variable_rec base; +pid_t pid2; +Widget widget_good; +XtAppContext app_ctext_return; + + FORK(pid2); + sleep(config.reset_delay); + tet_infoline("PREP: Set DISPLAY"); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit"); + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + args11, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + tet_infoline("TEST: Retrieve resource values from resource database"); + XtGetApplicationResources(widget_good, + &base, + resources, + 1, + (ArgList)NULL, + (Cardinal)0); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the reverseVideo resource is define as True on the command line shall use +the value of XtDefaultForeground instead of XtDefaultBackground and +vice versa in the resource database created for the display. +>>CODE +Window window; +int scr; +static char *property_data = "Hello World"; +XtAppContext app_ctext; +Display *display; +int queued_events, events; +XrmValue args[2]; +Cardinal num_args; +XrmValue fromVal; +XrmValue toVal; +Boolean closure; +XtPointer closure_ret = (XtPointer *) &closure; +int argc = 2; +char *argv[] = { "tdsplyintl2", "+rv", (char *)NULL }; +Screen *screen; +Colormap colormap; +pid_t pid2; +Pixel res; +Boolean status; +XtAppContext app_ctext_return; +Widget widget_good; + + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize and application with +rv in args"); + widget_good = XtAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc, + argv, + (String *)NULL, + (ArgList)NULL, + (Cardinal)0 + ); + display = XtDisplay(widget_good); + tet_infoline("PREP: Set up required conversion args"); + screen = DefaultScreenOfDisplay(display); + args[0].addr = (XtPointer )&screen; + args[0].size = sizeof(Screen*); + colormap = DefaultColormapOfScreen(screen); + args[1].addr = (XtPointer) &colormap; + args[1].size = sizeof(Colormap); + num_args = 2; + tet_infoline("TEST: Convert XtDefaultForeground"); + fromVal.addr = XtDefaultForeground; + fromVal.size = strlen(XtDefaultForeground)+1; + toVal.addr = (XtPointer) &res; + toVal.size = sizeof(Pixel); + status = XtCvtStringToPixel(display, + &args[0], + &num_args, + &fromVal, + &toVal, + &closure_ret); + check_dec(True, status, "XtCvtStringToPixel return value"); + tet_infoline("TEST: Conversion result"); + check_dec(XBlackPixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); + tet_infoline("TEST: Convert XtDefaultBackground"); + fromVal.addr = XtDefaultBackground; + fromVal.size = strlen(XtDefaultBackground)+1; + toVal.addr = (XtPointer) &res; + toVal.size = sizeof(Pixel); + status = XtCvtStringToPixel(display, + &args[0], + &num_args, + &fromVal, + &toVal, + &closure_ret); + check_dec(True, status, "XtCvtStringToPixel return value"); + tet_infoline("TEST: Conversion result"); + check_dec(XWhitePixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the environment variable XENVIRONMENT exists shall use the value +of this variable as the name of the user environment resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the environment variable XENVIRONMENT does not exist shall use +the file .Xdefaults-host, where host is the name of the system running +the application, in the user's home directory as the user environment +resource file. +>>ASSERTION Good B 0 +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall set the values from the higher precedence sources of the resource +database being created for the display as the current resource database +before determining the file name for the application-specific user resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the environment variable XUSERFILESEARCHPATH is defined +shall use the result of calling XtResolvePathname(display, path, +NULL, NULL, NULL, NULL, 0, NULL) with the value of this variable as path +as the name of the application-specific user resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the environment variable XUSERFILESEARCHPATH is not defined and +the environment variable XAPPLRESDIR is not defined shall +use the result of calling XtResolvePathname(display, path, +NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific +user resource file where path contains at least entries containing $HOME as +the directory prefix plus the following substitutions, in the order specified: + +- %C, %N, %L or %C, %N, %l, %t, %c + +- %C, %N, %l + +- %C, %N + +- %N, %L or %N, %l, %t, %c + +- %N, %l + +- %N +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when the environment variable XUSERFILESEARCHPATH is not defined and +the environment variable XAPPLRESDIR is defined shall use the result +of calling XtResolvePathname(display, path, NULL, NULL, NULL, NULL, 0, NULL) +as the name of the application-specific user resource file where path +contains at least entries containing the following directory prefixes and +substitutions, in the order specified: + +- $XPPLRESDIR with %C, %N, %L or %C, %N, %l, %t, %c + +- $XPPLRESDIR with %C, %N, %l + +- $XPPLRESDIR with %C, %N + +- $XPPLRESDIR with %N, %L or %N, %l, %t, %c + +- $XPPLRESDIR with %N, %l + +- $XPPLRESDIR with %N + +- $HOME with %N +>>ASSERTION Good B 0 +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall use the result of calling XtResolvePathname(display, "app-defaults", +NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific +class resource file, with the values from the higher precedence sources of +the resource database being created for the display set as the current +resource database before the call is made. +>># +>># Start of XtAppCreateShell +>># +>>ASSERTION Good B 0 +On a successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +the shell widget instance created shall have WM_COMMAND property set from +the values of the XtNargv and XtNargc resources. +>>ASSERTION Good B 0 +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +shall name the shell widget instance with the application name passed to +XtDisplayInitialize. +>>ASSERTION Good B 0 +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when args specifies the XtNscreen argument shall create the resource database +for the shell widget using the resource values specified in args and +resource values from the resource database of the screen specified by the +XtNscreen argument for those resources not specified in args. +>>ASSERTION Good B 0 +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when args does not specify the XtNscreen argument and the resource database +of the default screen for display +specifies the resource name.screen, class application_class.screen shall +create the resource database for the shell widget using the resource values +specified in args and resource values from the resource database of the screen +specified in the resource database of the default screen for those resources +not specified in args. +>>ASSERTION Good B 0 +A successful call to +Widget XtAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) +when args does not specify the XtNscreen argument and the resource database +of the default screen for display does not specify the resource name.screen, +class application_class.screen shall create the resource database for the +shell widget using the resource values specified in args and resource values +from the resource database of the default screen for those resources not +specified in args. diff --git a/xts5/Xt4/XtAppInitialize/XtAppInitialize.m b/xts5/Xt4/XtAppInitialize/XtAppInitialize.m deleted file mode 100644 index 06d5422d..00000000 --- a/xts5/Xt4/XtAppInitialize/XtAppInitialize.m +++ /dev/null @@ -1,938 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtAppInitialize/XtAppInitialize.m ->># ->># Description: ->># Tests for XtAppInitialize() ->># ->># Modifications: ->># $Log: tapintlze.m,v $ ->># Revision 1.1 2005-02-12 14:38:00 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:25 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:15 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.1 1998/06/23 22:35:02 andy ->># Added sleep(XT_RESET_DELAY) to each test. SR# 186. ->># ->># Revision 6.0 1998/03/02 05:27:36 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:09 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.1 1998/01/13 04:50:30 andy ->># In test 17 changed type of closure_ret from XtPointer * to XtPointer (SR 140). ->># ->># Revision 4.0 1995/12/15 09:16:09 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:59 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; -char *msg="/tmp/outfile"; -char *args11[] = { - "-background", "green", - "-bd", "green", - "-bg", "green", - "-borderwidth", "3", - "-bordercolor", "red", - "-bw", "3", - "-fg", "green", - "-font", XtDefaultFont, - "-fn", XtDefaultFont, - "-foreground", "blue", - "-geometry", "100x100", - "-iconic", - "-reverse", - "-rv", - "+rv", - "-selectionTimeout", "50", - "-synchronous", - "+synchronous", - "-title", "ApTest", - "-xnlLanguage", "C", - NULL}; - - -typedef struct _instance_variables { - long foreground; - String label; -} instance_variable_rec; - -static XtResource resources[] = { - { - XtNforeground, - XtCForeground, - XtRPixel, sizeof(Pixel), - XtOffsetOf(instance_variable_rec, foreground), - XtRString, "XtDefaultForeground" - }, - { - XtNlabel, - XtCLabel, - XtRString, sizeof(String), - XtOffsetOf(instance_variable_rec, label), - XtRString, "very bad idea" - }, -}; ->>SET tpstartup avs_alloc_sem ->>SET tpcleanup avs_free_sem ->>TITLE XtAppInitialize Xt4 -Widget -XtAppInitialize(app_context_return, application_class, options, num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) ->>ASSERTION Good A -A call to -Widget XtAppInitialize(app_context_return, application_class, -options, num_options, argc_in_out, argv_in_out, fallback_resources, args, -num_args) -shall initialize the Intrinsics internals, create an application context for -the calling application, return the context in app_context_return, open -a display, create a top-level shell widget that is the root of a widget -tree, and return the shell widget instance. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -Boolean status; -int argcount = 0; -pid_t pid2; - - FORK(pid2); - tet_infoline("TEST: Initialize toolkit"); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - (String *)NULL, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - avs_set_event(1,1); - tet_infoline("TEST: Class is applicationShell"); - status = XtIsApplicationShell(widget_good); - check_dec(True, status, "Return value"); - tet_infoline("TEST: Application name and class."); - display_good = XtDisplay(widget_good); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - check_str("main", name_good, "Name"); - check_str("TAppInitialize", class_good, "Class"); - KROF(pid2); - if (avs_get_event(1) != 1) { - tet_infoline("ERROR: Process terminated by XtAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - tet_result(TET_PASS); ->>ASSERTION Good A -When the display cannot be opened, a call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall issue an error message and terminate the calling process. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -Boolean status; -int argcount = 0; -pid_t pid2; -FILE *stream; -char line[80], *retval; - - tet_infoline("TEST: Initialize toolkit"); - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "PREP: Direct error message to %s", msg); - tet_infoline(ebuf); - push_stderr("outfile", "w"); - sprintf(ebuf, "DISPLAY=%s", "notarealdisplay"); - putenv(ebuf); - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - (String *)NULL, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - avs_set_event(1,1); - pop_stderr(); - KROF(pid2); - tet_infoline("TEST: Open the file and read the message"); - stream = (FILE *)fopen(msg, "r"); - retval = fgets(line, 80, stream) ; - if (retval == NULL) { - tet_infoline("ERROR: No error message issued"); - tet_result(TET_FAIL); - unlink(msg); - exit(0); - } - unlink(msg); - if (avs_get_event(1) == 1) { - tet_infoline("ERROR: Process not terminated by XtAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - - tet_result(TET_PASS); ->># ->># Start of XtCreateApplicationContext ->># ->># ----- ->># ->># Start of XtOpenDisplay ->># ->>ASSERTION Good B 0 -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall create a resource database for the display opened. ->>ASSERTION Good A -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the -display option is specified in argv_in_out shall use this value as -the display to be opened and initialized. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -Boolean status; -pid_t pid2; -int argc_count; -char **argv_string; -int count = 3; -char *argvals[4]; -char *display_name; - - - FORK(pid2); - sleep(config.reset_delay); - tet_infoline("TEST: Initialize toolkit"); - tet_infoline("PREP: Set arguments to include -display"); - argvals[0] = "tinitlize"; - argvals[1] = "-display"; - argvals[2] = (char *)config.display; - argvals[3] = (char *)NULL; - argc_count = count; - argv_string = &argvals[0]; - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc_count, - argv_string, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - avs_set_event(1,1); - display_good = XtDisplay(widget_good); - tet_infoline("TEST: Display name is correct"); - display_name = XDisplayString(display_good); - check_str(config.display, display_name, "Display name"); - KROF(pid2); - if (avs_get_event(1) != 1) { - tet_infoline("ERROR: Process terminated by XtAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the -display option is not specified in argv_in_out and the DISPLAY environment -variable is set shall use this value as the display to be opened and -initialized. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -Boolean status; -int argcount = 0; -char *display_name; -pid_t pid2; - - FORK(pid2); - sleep(config.reset_delay); - tet_infoline("PREP: Set DISPLAY"); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit"); - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - (String *)NULL, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - avs_set_event(1,1); - display_good = XtDisplay(widget_good); - tet_infoline("TEST: Display name is correct"); - display_name = XDisplayString(display_good); - check_str(config.display, display_name, "Display name"); - KROF(pid2); - if (avs_get_event(1) != 1) { - tet_infoline("ERROR: Process terminated by XtAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the -name option is specified in argv_in_out shall use this value as the -application name to query the server and screen resource databases for -the name.xnlLanguage resource to create the resource database for the display. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -int argcount = 0; -Boolean status; -pid_t pid2; -int pstatus; -int argc_count; -char **argv_string; -int count = 3; -char *argvals[4]; - - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit and open display"); - argvals[0] = "tinitlize"; - argvals[1] = "-name"; - argvals[2] = "testname"; - argvals[3] = (char *)NULL; - argc_count = count; - argv_string = &argvals[0]; - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc_count, - argv_string, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - tet_infoline("TEST: widget_good class is applicationShell"); - status = XtIsApplicationShell(widget_good); - check_dec(True, status, "XtIsApplicationShell return value"); - tet_infoline("TEST: Application name and class"); - display_good = XtDisplay(widget_good); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - check_str("testname", name_good, "Application Name"); - KROF3(pid2, pstatus, AVSXTTIMEOUT-2); - if (pstatus != 0) { - tet_infoline("ERROR: Test process exited abnormally"); - tet_infoline(" May mean display cannot be opened"); - tet_result(TET_UNRESOLVED); - } else - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the -name option is not specified in argv_in_out and the environment variable -RESOURCE_NAME is set shall use this value as the application name to query -the server and screen resource databases for the name.xnlLanguage resource -to create the resource database for the display. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -int argcount = 0; -Boolean status; -pid_t pid2; -int pstatus; - - FORK(pid2); - sleep(config.reset_delay); - tet_infoline("PREP: Set up env variable RESOURCE_NAME"); - putenv("RESOURCE_NAME=testname2"); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit and open display"); - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - (String *)NULL, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - tet_infoline("TEST: widget_good class is applicationShell"); - status = XtIsApplicationShell(widget_good); - check_dec(True, status, "XtIsApplicationShell return value"); - tet_infoline("TEST: Application name and class"); - display_good = XtDisplay(widget_good); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - check_str("testname2", name_good, "Application Name"); - KROF3(pid2, pstatus, AVSXTTIMEOUT-2); - if (pstatus != 0) { - tet_infoline("ERROR: Test process exited abnormally"); - tet_infoline(" May mean display cannot be opened"); - tet_result(TET_UNRESOLVED); - } else - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the -name option is not specified in argv_in_out, the environment variable -RESOURCE_NAME is not set, and argv_in_out[0] is not an empty string shall use -this value as the application name to query the server and screen resource -databases for the name.xnlLanguage resource to create the resource database -for the display. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -int argcount = 0; -Boolean status; -pid_t pid2; -int pstatus; -int argc_count; -char **argv_string; -int count = 1; -char *argvals[4]; - - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit and open display"); - argvals[0] = "testname3"; - argvals[1] = (char *)NULL; - argc_count = count; - argv_string = &argvals[0]; - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc_count, - argv_string, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - tet_infoline("TEST: widget_good class is applicationShell"); - status = XtIsApplicationShell(widget_good); - check_dec(True, status, "XtIsApplicationShell return value"); - tet_infoline("TEST: Application name and class"); - display_good = XtDisplay(widget_good); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - check_str("testname3", name_good, "Application Name"); - KROF3(pid2, pstatus, AVSXTTIMEOUT-2); - if (pstatus != 0) { - tet_infoline("ERROR: Test process exited abnormally"); - tet_infoline(" May mean display cannot be opened"); - tet_result(TET_UNRESOLVED); - } else - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the -name option is not specified in argv_in_out, the environment variable -RESOURCE_NAME is not set, and argv_in_out[0] is an empty string shall use the -string "main" as the application name to query the server and screen resource -databases for the name.xnlLanguage resource to create the resource database -for the display. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -Boolean status; -int argcount = 0; -pid_t pid2; - - FORK(pid2); - sleep(config.reset_delay); - tet_infoline("TEST: Initialize toolkit"); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - (String *)NULL, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - avs_set_event(1,1); - tet_infoline("TEST: Class is applicationShell"); - status = XtIsApplicationShell(widget_good); - check_dec(True, status, "Return value"); - tet_infoline("TEST: Application name and class."); - display_good = XtDisplay(widget_good); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - check_str("main", name_good, "Name"); - check_str("TAppInitialize", class_good, "Class"); - KROF(pid2); - if (avs_get_event(1) != 1) { - tet_infoline("ERROR: Process terminated by XtAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - tet_result(TET_PASS); ->># >># ->># >># Start of XtDisplayInitialize assertions ->># >># ->>ASSERTION Good A -When the synchronize resource is set to True in the resource database -created by a successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -it shall put Xlib into synchronous mode for this display connection. ->>CODE -Window window; -int scr; -static char *property_data = "Hello World"; -XtAppContext app_ctext_return; -Display *display; -int queued_events, events; -int argc = 2; -pid_t pid2; -int pstatus; - /* - ** -synchronous on - ** +synchronous off - */ -char *argv[] = { "tinitlize", "-synchronous", (char *)NULL }; -Widget widget_good; - - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit and open display"); - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc, - argv, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - avs_set_event(1,1); - display = XtDisplay(widget_good); - tet_infoline("PREP: Create a window for events"); - scr = DefaultScreen(display); - window = XCreateWindow(display, RootWindow(display, scr), - 0, 0, 5, 5, 0, /* x,y,wid,ht,brd width */ - DefaultDepth(display, scr), - InputOutput, - DefaultVisual(display, scr), - (XtValueMask) 0, - (XSetWindowAttributes *) 0); - tet_infoline("TEST: Check Xlib is in synchronous mode"); - queued_events = XQLength(display); - XSelectInput(display, window, - (unsigned long)PropertyChangeMask); - for (events = 0; events < 3; events++) - XChangeProperty(display, window, XA_RESOURCE_MANAGER, XA_STRING, 8,0, (unsigned char *)property_data, 16); - check_dec(3+queued_events, XQLength(display), "queue length"); - KROF3(pid2, pstatus, AVSXTTIMEOUT-2); - if (avs_get_event(1) != 1) { - tet_infoline("ERROR: Process terminated by XtAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - tet_result(TET_PASS); ->>ASSERTION Good B 0 -If the implementation is X11R5 or later: -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall determine a language string for the display -by searching the following sources in the specified order: - -- the resource database created from the command line. - -- the resource application_name.xnlLanguage, class - application_class.XnlLanguage in the server's RESOURCE_MANAGER - property for the root window of screen zero if it exists, or in - the user preference resource file otherwise. - -- the environment. ->>ASSERTION Good B 0 -If the implementation is X11R5 or later and is POSIX-based: -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall use the LANG environment variable as the environment value to -search when determining the language string for the display. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall set the language string for the display to the empty string if the -server's RESOURCE_MANAGER property for the root window of screen zero -exists, and a language string is not found on the command line, in this -property, or in the environment. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall set the language string for the display to the empty string if the -server's RESOURCE_MANAGER property for the root window of screen -zero does not exist and a language string is not found on the -command line, in the user preference resource file, or in the -environment. ->>ASSERTION Good D 0 -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall associate with the default screen of the display a resource -database created by combining entries from the following sources, -in order, with the first named source having the highest precedence: - -- the application command line - -- the user's environment resource file - -- per-screen resource specifications from the server, as returned by - XScreenResourceString() - -- per display resource specifications from the server (the - server's RESOURCE_MANAGER property for the root window of - screen zero) if they exist, otherwise the user preference file - -- the application-specific user resource file. - -- the application-specific class resource file . ->>ASSERTION Good A -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall recognize options specified on the command line that are in the -standard table of options in section 4.4 of the specification or in -the table specific to the application specified by -.A options -and -.A num_options. ->>CODE -Display *display_good; -String name_good, class_good; -int argcount = 20; -instance_variable_rec base; -pid_t pid2; -Widget widget_good; -XtAppContext app_ctext_return; - - FORK(pid2); - sleep(config.reset_delay); - tet_infoline("PREP: Set DISPLAY"); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit"); - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - args11, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - tet_infoline("TEST: Retrieve resource values from resource database"); - XtGetApplicationResources(widget_good, - &base, - resources, - 1, - (ArgList)NULL, - (Cardinal)0); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the reverseVideo resource is define as True on the command line shall use -the value of XtDefaultForeground instead of XtDefaultBackground and -vice versa in the resource database created for the display. ->>CODE -Window window; -int scr; -static char *property_data = "Hello World"; -XtAppContext app_ctext; -Display *display; -int queued_events, events; -XrmValue args[2]; -Cardinal num_args; -XrmValue fromVal; -XrmValue toVal; -Boolean closure; -XtPointer closure_ret = (XtPointer *) &closure; -int argc = 2; -char *argv[] = { "tdsplyintl2", "+rv", (char *)NULL }; -Screen *screen; -Colormap colormap; -pid_t pid2; -Pixel res; -Boolean status; -XtAppContext app_ctext_return; -Widget widget_good; - - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize and application with +rv in args"); - widget_good = XtAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc, - argv, - (String *)NULL, - (ArgList)NULL, - (Cardinal)0 - ); - display = XtDisplay(widget_good); - tet_infoline("PREP: Set up required conversion args"); - screen = DefaultScreenOfDisplay(display); - args[0].addr = (XtPointer )&screen; - args[0].size = sizeof(Screen*); - colormap = DefaultColormapOfScreen(screen); - args[1].addr = (XtPointer) &colormap; - args[1].size = sizeof(Colormap); - num_args = 2; - tet_infoline("TEST: Convert XtDefaultForeground"); - fromVal.addr = XtDefaultForeground; - fromVal.size = strlen(XtDefaultForeground)+1; - toVal.addr = (XtPointer) &res; - toVal.size = sizeof(Pixel); - status = XtCvtStringToPixel(display, - &args[0], - &num_args, - &fromVal, - &toVal, - &closure_ret); - check_dec(True, status, "XtCvtStringToPixel return value"); - tet_infoline("TEST: Conversion result"); - check_dec(XBlackPixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); - tet_infoline("TEST: Convert XtDefaultBackground"); - fromVal.addr = XtDefaultBackground; - fromVal.size = strlen(XtDefaultBackground)+1; - toVal.addr = (XtPointer) &res; - toVal.size = sizeof(Pixel); - status = XtCvtStringToPixel(display, - &args[0], - &num_args, - &fromVal, - &toVal, - &closure_ret); - check_dec(True, status, "XtCvtStringToPixel return value"); - tet_infoline("TEST: Conversion result"); - check_dec(XWhitePixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the environment variable XENVIRONMENT exists shall use the value -of this variable as the name of the user environment resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the environment variable XENVIRONMENT does not exist shall use -the file .Xdefaults-host, where host is the name of the system running -the application, in the user's home directory as the user environment -resource file. ->>ASSERTION Good B 0 -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall set the values from the higher precedence sources of the resource -database being created for the display as the current resource database -before determining the file name for the application-specific user resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the environment variable XUSERFILESEARCHPATH is defined -shall use the result of calling XtResolvePathname(display, path, -NULL, NULL, NULL, NULL, 0, NULL) with the value of this variable as path -as the name of the application-specific user resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the environment variable XUSERFILESEARCHPATH is not defined and -the environment variable XAPPLRESDIR is not defined shall -use the result of calling XtResolvePathname(display, path, -NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific -user resource file where path contains at least entries containing $HOME as -the directory prefix plus the following substitutions, in the order specified: - -- %C, %N, %L or %C, %N, %l, %t, %c - -- %C, %N, %l - -- %C, %N - -- %N, %L or %N, %l, %t, %c - -- %N, %l - -- %N ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when the environment variable XUSERFILESEARCHPATH is not defined and -the environment variable XAPPLRESDIR is defined shall use the result -of calling XtResolvePathname(display, path, NULL, NULL, NULL, NULL, 0, NULL) -as the name of the application-specific user resource file where path -contains at least entries containing the following directory prefixes and -substitutions, in the order specified: - -- $XPPLRESDIR with %C, %N, %L or %C, %N, %l, %t, %c - -- $XPPLRESDIR with %C, %N, %l - -- $XPPLRESDIR with %C, %N - -- $XPPLRESDIR with %N, %L or %N, %l, %t, %c - -- $XPPLRESDIR with %N, %l - -- $XPPLRESDIR with %N - -- $HOME with %N ->>ASSERTION Good B 0 -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall use the result of calling XtResolvePathname(display, "app-defaults", -NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific -class resource file, with the values from the higher precedence sources of -the resource database being created for the display set as the current -resource database before the call is made. ->># ->># Start of XtAppCreateShell ->># ->>ASSERTION Good B 0 -On a successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -the shell widget instance created shall have WM_COMMAND property set from -the values of the XtNargv and XtNargc resources. ->>ASSERTION Good B 0 -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -shall name the shell widget instance with the application name passed to -XtDisplayInitialize. ->>ASSERTION Good B 0 -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when args specifies the XtNscreen argument shall create the resource database -for the shell widget using the resource values specified in args and -resource values from the resource database of the screen specified by the -XtNscreen argument for those resources not specified in args. ->>ASSERTION Good B 0 -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when args does not specify the XtNscreen argument and the resource database -of the default screen for display -specifies the resource name.screen, class application_class.screen shall -create the resource database for the shell widget using the resource values -specified in args and resource values from the resource database of the screen -specified in the resource database of the default screen for those resources -not specified in args. ->>ASSERTION Good B 0 -A successful call to -Widget XtAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, args, num_args) -when args does not specify the XtNscreen argument and the resource database -of the default screen for display does not specify the resource name.screen, -class application_class.screen shall create the resource database for the -shell widget using the resource values specified in args and resource values -from the resource database of the default screen for those resources not -specified in args. diff --git a/xts5/Xt4/XtAppSetFallbackResources.m b/xts5/Xt4/XtAppSetFallbackResources.m new file mode 100644 index 00000000..89f7b808 --- /dev/null +++ b/xts5/Xt4/XtAppSetFallbackResources.m @@ -0,0 +1,150 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtAppSetFallbackResources.m +>># +>># Description: +>># Tests for XtAppSetFallbackResources() +>># +>># Modifications: +>># $Log: tappstfllb.m,v $ +>># Revision 1.1 2005-02-12 14:38:00 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:21 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:10 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:32 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:05 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:54 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:39 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtAppSetFallbackResources Xt4 +void +XtAppSetFallbackResources(app_ctext, specification_list) +>>ASSERTION Good A +A call to void XtAppSetFallbackResources(app_ctext, specification_list) +shall set the default resource values for the application context app_ctext +from the resource list specification_list to be used in place of an +application-specific class resource file in initializing a resource database +if the application-specific class resource file is not found. +>>CODE +Display *display; +Widget labelw_good; +XrmDatabase database; +char *str_type; +XrmValue value[1]; +int argcount = 0; +static String fallback_res[] = { + "*hello.labelString: Hello World", + NULL, +}; + + avs_xt_hier("Tappstfllb1", "XtAppSetFallbackResources"); + tet_infoline("TEST: Set default set of resource values."); + XtAppSetFallbackResources(app_ctext, fallback_res); + tet_infoline("TEST: Initialize display to add resources"); + display = XtDisplay(topLevel); + XtDisplayInitialize(app_ctext, display, + "tappstfllb1", "Tappstfllb1", + (XrmOptionDescRec *)NULL, + (Cardinal) 0, &argcount, + (String *)NULL ); + tet_infoline("TEST: Get the resource database"); + database = XtDatabase(display); + tet_infoline("TEST: Check the default resource values"); + XrmGetResource(database, "hello.labelString", NULL, &str_type, &value[0]); + if (strncmp("Hello World", value[0].addr, strlen("Hello World")) != 0 ) { + sprintf(ebuf, "ERROR: Expected \"Hello World\" for hello.labelString, Received \"%s\"", value[0].addr); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); +>>ASSERTION Good A +When the argument specification_list is NULL, a call to void +XtAppSetFallbackResources(app_ctext, specification_list) shall remove +any previous fallback resource specification for the application context. +>>CODE +Display *display; +Widget labelw_good; +XrmDatabase database; +char *str_type[40]; +XrmValue result; +XrmValue *value = &result; +int argcount = 1; +char *str_class = NULL; +char string[40]; +static String fallback_res[] = { + "*hello.labelString: Hello World", + (String)NULL, +}; + + avs_xt_hier("Tappstfllb2", "XtAppSetFallbackResources"); + tet_infoline("TEST: Set label resource to Hello World."); + XtAppSetFallbackResources(app_ctext, &fallback_res[0]); + display = XtDisplay(topLevel); + XtDisplayInitialize(app_ctext, display, + "tappstfllb2", "Tappstfllb2", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + (String *)NULL ); + tet_infoline("TEST: Specify resource list as NULL"); + XtAppSetFallbackResources(app_ctext, (String *)NULL); + tet_infoline("TEST: Initialize display to add resources"); + XtDisplayInitialize(app_ctext, display, + "tappstfllb2", "Tappstfllb2", + (XrmOptionDescRec *)NULL, + (Cardinal) 0, &argcount, + (String *)NULL ); + tet_infoline("TEST: Get resource database"); + database = XtDatabase(display); + tet_infoline("TEST: Check label resource value is deleted from list"); + XrmGetResource(database, "hello.labelString", str_class, str_type, value); + if ( value->size != 0 ) { + sprintf(ebuf, "ERROR: Expected NULL, Received %s", value->addr); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtAppSetFallbackResources/XtAppSetFallbackResources.m b/xts5/Xt4/XtAppSetFallbackResources/XtAppSetFallbackResources.m deleted file mode 100644 index 4d65576b..00000000 --- a/xts5/Xt4/XtAppSetFallbackResources/XtAppSetFallbackResources.m +++ /dev/null @@ -1,150 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtAppSetFallbackResources/XtAppSetFallbackResources.m ->># ->># Description: ->># Tests for XtAppSetFallbackResources() ->># ->># Modifications: ->># $Log: tappstfllb.m,v $ ->># Revision 1.1 2005-02-12 14:38:00 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:21 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:10 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:32 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:05 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:54 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:39 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtAppSetFallbackResources Xt4 -void -XtAppSetFallbackResources(app_ctext, specification_list) ->>ASSERTION Good A -A call to void XtAppSetFallbackResources(app_ctext, specification_list) -shall set the default resource values for the application context app_ctext -from the resource list specification_list to be used in place of an -application-specific class resource file in initializing a resource database -if the application-specific class resource file is not found. ->>CODE -Display *display; -Widget labelw_good; -XrmDatabase database; -char *str_type; -XrmValue value[1]; -int argcount = 0; -static String fallback_res[] = { - "*hello.labelString: Hello World", - NULL, -}; - - avs_xt_hier("Tappstfllb1", "XtAppSetFallbackResources"); - tet_infoline("TEST: Set default set of resource values."); - XtAppSetFallbackResources(app_ctext, fallback_res); - tet_infoline("TEST: Initialize display to add resources"); - display = XtDisplay(topLevel); - XtDisplayInitialize(app_ctext, display, - "tappstfllb1", "Tappstfllb1", - (XrmOptionDescRec *)NULL, - (Cardinal) 0, &argcount, - (String *)NULL ); - tet_infoline("TEST: Get the resource database"); - database = XtDatabase(display); - tet_infoline("TEST: Check the default resource values"); - XrmGetResource(database, "hello.labelString", NULL, &str_type, &value[0]); - if (strncmp("Hello World", value[0].addr, strlen("Hello World")) != 0 ) { - sprintf(ebuf, "ERROR: Expected \"Hello World\" for hello.labelString, Received \"%s\"", value[0].addr); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); ->>ASSERTION Good A -When the argument specification_list is NULL, a call to void -XtAppSetFallbackResources(app_ctext, specification_list) shall remove -any previous fallback resource specification for the application context. ->>CODE -Display *display; -Widget labelw_good; -XrmDatabase database; -char *str_type[40]; -XrmValue result; -XrmValue *value = &result; -int argcount = 1; -char *str_class = NULL; -char string[40]; -static String fallback_res[] = { - "*hello.labelString: Hello World", - (String)NULL, -}; - - avs_xt_hier("Tappstfllb2", "XtAppSetFallbackResources"); - tet_infoline("TEST: Set label resource to Hello World."); - XtAppSetFallbackResources(app_ctext, &fallback_res[0]); - display = XtDisplay(topLevel); - XtDisplayInitialize(app_ctext, display, - "tappstfllb2", "Tappstfllb2", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - (String *)NULL ); - tet_infoline("TEST: Specify resource list as NULL"); - XtAppSetFallbackResources(app_ctext, (String *)NULL); - tet_infoline("TEST: Initialize display to add resources"); - XtDisplayInitialize(app_ctext, display, - "tappstfllb2", "Tappstfllb2", - (XrmOptionDescRec *)NULL, - (Cardinal) 0, &argcount, - (String *)NULL ); - tet_infoline("TEST: Get resource database"); - database = XtDatabase(display); - tet_infoline("TEST: Check label resource value is deleted from list"); - XrmGetResource(database, "hello.labelString", str_class, str_type, value); - if ( value->size != 0 ) { - sprintf(ebuf, "ERROR: Expected NULL, Received %s", value->addr); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtCloseDisplay.m b/xts5/Xt4/XtCloseDisplay.m new file mode 100644 index 00000000..f13f1498 --- /dev/null +++ b/xts5/Xt4/XtCloseDisplay.m @@ -0,0 +1,184 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtCloseDisplay.m +>># +>># Description: +>># Tests for XtCloseDisplay() +>># +>># Modifications: +>># $Log: tclsdsply.m,v $ +>># Revision 1.1 2005-02-12 14:38:00 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:19 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:09 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:30 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:04 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.1 1998/01/14 01:23:39 andy +>># Changed both tests to not poke the widgets for the display after +>># it is closed as this causes core dumps on some implementations (SR 142). +>># +>># Revision 4.0 1995/12/15 09:15:50 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:35 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +Display *display_good; + +/* +** XtEMH_Proc +*/ +void XtEMH_Proc(str, str2, str3, str4, str5, car) +String str, str2, str3, str4, *str5; +Cardinal *car; +{ + avs_set_event(2, 1); + exit(0); +} + +/*timeout callback*/ +void XtTI_Proc(client_data, id) +XtPointer client_data; +XtIntervalId *id; +{ + exit(0); +} + +/* +** Registered procedure XtEVT_Proc to be invoked +*/ +void XtEVT_Proc(w, client_data, event, continue_to_dispatch) +Widget w; +XtPointer client_data; +XEvent *event; +Boolean *continue_to_dispatch; +{ + + if (event->type == ButtonPress){ + display_good= XtDisplay(topLevel); + tet_infoline("PREP: Close the display during a dispatch"); + XtCloseDisplay(display_good); + tet_infoline("TEST: Display is still good inside handler"); + if (XtDisplay(labelw) == NULL) { + sprintf(ebuf, "ERROR: Expected valid display pointer"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + avs_set_event(1,1); + exit(0); + } +} +>>SET tpstartup avs_alloc_sem +>>SET tpcleanup avs_free_sem +>>TITLE XtCloseDisplay Xt4 +void +XtCloseDisplay(display) +>>ASSERTION Good A +A call to void XtCloseDisplay(display) shall close the display specified +by the argument display and remove it from the application context of the +calling program. +>>CODE +char string[10]; +Widget labelw_good , widget_good; +Window window_good; +pid_t pid2; +int invoked; + + avs_xt_hier("Tclsdsply1", "XtCloseDisplay"); + display_good = XtDisplay(topLevel); + tet_infoline("PREP: Create label widget `Hello' in boxw1 widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Register timeout"); + XtAppAddTimeOut(app_ctext, AVSXTLOOPTIMEOUT, XtTI_Proc, topLevel); + tet_infoline("PREP: Register error handler"); + XtAppSetErrorMsgHandler(app_ctext, XtEMH_Proc); + tet_infoline("TEST: Close the display"); + XtCloseDisplay(display_good); + /*the safest thing to do, as best we can tell, as it + actually validates the pointer and gives an error message + if the display isn't valid*/ + tet_infoline("TEST: Display is no longer valid"); + FORK(pid2); + XtCloseDisplay(display_good); + KROF(pid2); + invoked = avs_get_event(2); + check_dec(1, invoked, "Error handler invoked status"); + /*ensure as best we can that the appcontext is still valid*/ + tet_infoline("TEST: Application context is still valid"); + FORK(pid2); + XtAppMainLoop(app_ctext); + KROF(pid2); + tet_result(TET_PASS); +>>ASSERTION Good A +void XtCloseDisplay(display) when called from within an event dispatch +shall not close the display until the dispatch is complete. +>>CODE +Widget labelw_msg; +char *msg = "Event widget"; +int status; +pid_t pid2; + + FORK(pid2); + avs_xt_hier("Tclsdsply2", "XtCloseDisplay"); + tet_infoline("PREP: Create labelw_msg widget in boxw1 widget"); + labelw_msg = (Widget) CreateLabelWidget(msg, boxw1); + tet_infoline("PREP: Register procedure to handle ButtonPress events"); + XtAddEventHandler(labelw_msg, + ButtonPressMask, + False, + XtEVT_Proc, + (Display *)display_good + ); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Send ButtonPress over wire to labelw_msg widget"); + send_event(labelw_msg, ButtonPress, ButtonPressMask, FALSE); + XtAppMainLoop(app_ctext); + KROF(pid2); + status = avs_get_event(1); + check_dec(1, status, "Callback invocation count"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtCloseDisplay/XtCloseDisplay.m b/xts5/Xt4/XtCloseDisplay/XtCloseDisplay.m deleted file mode 100644 index 8b2920ce..00000000 --- a/xts5/Xt4/XtCloseDisplay/XtCloseDisplay.m +++ /dev/null @@ -1,184 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtCloseDisplay/XtCloseDisplay.m ->># ->># Description: ->># Tests for XtCloseDisplay() ->># ->># Modifications: ->># $Log: tclsdsply.m,v $ ->># Revision 1.1 2005-02-12 14:38:00 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:19 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:09 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:30 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:04 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.1 1998/01/14 01:23:39 andy ->># Changed both tests to not poke the widgets for the display after ->># it is closed as this causes core dumps on some implementations (SR 142). ->># ->># Revision 4.0 1995/12/15 09:15:50 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:35 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; -Display *display_good; - -/* -** XtEMH_Proc -*/ -void XtEMH_Proc(str, str2, str3, str4, str5, car) -String str, str2, str3, str4, *str5; -Cardinal *car; -{ - avs_set_event(2, 1); - exit(0); -} - -/*timeout callback*/ -void XtTI_Proc(client_data, id) -XtPointer client_data; -XtIntervalId *id; -{ - exit(0); -} - -/* -** Registered procedure XtEVT_Proc to be invoked -*/ -void XtEVT_Proc(w, client_data, event, continue_to_dispatch) -Widget w; -XtPointer client_data; -XEvent *event; -Boolean *continue_to_dispatch; -{ - - if (event->type == ButtonPress){ - display_good= XtDisplay(topLevel); - tet_infoline("PREP: Close the display during a dispatch"); - XtCloseDisplay(display_good); - tet_infoline("TEST: Display is still good inside handler"); - if (XtDisplay(labelw) == NULL) { - sprintf(ebuf, "ERROR: Expected valid display pointer"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - avs_set_event(1,1); - exit(0); - } -} ->>SET tpstartup avs_alloc_sem ->>SET tpcleanup avs_free_sem ->>TITLE XtCloseDisplay Xt4 -void -XtCloseDisplay(display) ->>ASSERTION Good A -A call to void XtCloseDisplay(display) shall close the display specified -by the argument display and remove it from the application context of the -calling program. ->>CODE -char string[10]; -Widget labelw_good , widget_good; -Window window_good; -pid_t pid2; -int invoked; - - avs_xt_hier("Tclsdsply1", "XtCloseDisplay"); - display_good = XtDisplay(topLevel); - tet_infoline("PREP: Create label widget `Hello' in boxw1 widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Register timeout"); - XtAppAddTimeOut(app_ctext, AVSXTLOOPTIMEOUT, XtTI_Proc, topLevel); - tet_infoline("PREP: Register error handler"); - XtAppSetErrorMsgHandler(app_ctext, XtEMH_Proc); - tet_infoline("TEST: Close the display"); - XtCloseDisplay(display_good); - /*the safest thing to do, as best we can tell, as it - actually validates the pointer and gives an error message - if the display isn't valid*/ - tet_infoline("TEST: Display is no longer valid"); - FORK(pid2); - XtCloseDisplay(display_good); - KROF(pid2); - invoked = avs_get_event(2); - check_dec(1, invoked, "Error handler invoked status"); - /*ensure as best we can that the appcontext is still valid*/ - tet_infoline("TEST: Application context is still valid"); - FORK(pid2); - XtAppMainLoop(app_ctext); - KROF(pid2); - tet_result(TET_PASS); ->>ASSERTION Good A -void XtCloseDisplay(display) when called from within an event dispatch -shall not close the display until the dispatch is complete. ->>CODE -Widget labelw_msg; -char *msg = "Event widget"; -int status; -pid_t pid2; - - FORK(pid2); - avs_xt_hier("Tclsdsply2", "XtCloseDisplay"); - tet_infoline("PREP: Create labelw_msg widget in boxw1 widget"); - labelw_msg = (Widget) CreateLabelWidget(msg, boxw1); - tet_infoline("PREP: Register procedure to handle ButtonPress events"); - XtAddEventHandler(labelw_msg, - ButtonPressMask, - False, - XtEVT_Proc, - (Display *)display_good - ); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Send ButtonPress over wire to labelw_msg widget"); - send_event(labelw_msg, ButtonPress, ButtonPressMask, FALSE); - XtAppMainLoop(app_ctext); - KROF(pid2); - status = avs_get_event(1); - check_dec(1, status, "Callback invocation count"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtCreateApplicationContext.m b/xts5/Xt4/XtCreateApplicationContext.m new file mode 100644 index 00000000..c33df364 --- /dev/null +++ b/xts5/Xt4/XtCreateApplicationContext.m @@ -0,0 +1,84 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtCreateApplicationContext.m +>># +>># Description: +>># Tests for XtCreateApplicationContext() +>># +>># Modifications: +>># $Log: tcrtapplct.m,v $ +>># Revision 1.1 2005-02-12 14:38:00 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:16 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:05 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:27 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:01 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:40 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:22 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext, app_ctext_good; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtCreateApplicationContext Xt4 +XtAppContext +XtCreateApplicationContext() +>>ASSERTION Good A +A call to XtAppContext XtCreateApplicationContext() shall initialize the +per-application state and return an application context for the calling +application. +>>CODE + + avs_xt_hier("Tcrtapplct1", "XtCreateApplicationContext"); + tet_infoline("TEST: Create application context app_ctext_good"); + app_ctext_good = XtCreateApplicationContext(); + if (app_ctext_good == NULL) { + sprintf(ebuf, "ERROR: Expected valid application context returned NULL"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + return; + } + tet_infoline("CLEANUP: Destroy app_ctext_good "); + XtDestroyApplicationContext(app_ctext_good); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtCreateApplicationContext/XtCreateApplicationContext.m b/xts5/Xt4/XtCreateApplicationContext/XtCreateApplicationContext.m deleted file mode 100644 index 225e11c2..00000000 --- a/xts5/Xt4/XtCreateApplicationContext/XtCreateApplicationContext.m +++ /dev/null @@ -1,84 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtCreateApplicationContext/XtCreateApplicationContext.m ->># ->># Description: ->># Tests for XtCreateApplicationContext() ->># ->># Modifications: ->># $Log: tcrtapplct.m,v $ ->># Revision 1.1 2005-02-12 14:38:00 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:16 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:05 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:27 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:01 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:40 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:22 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext, app_ctext_good; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtCreateApplicationContext Xt4 -XtAppContext -XtCreateApplicationContext() ->>ASSERTION Good A -A call to XtAppContext XtCreateApplicationContext() shall initialize the -per-application state and return an application context for the calling -application. ->>CODE - - avs_xt_hier("Tcrtapplct1", "XtCreateApplicationContext"); - tet_infoline("TEST: Create application context app_ctext_good"); - app_ctext_good = XtCreateApplicationContext(); - if (app_ctext_good == NULL) { - sprintf(ebuf, "ERROR: Expected valid application context returned NULL"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - return; - } - tet_infoline("CLEANUP: Destroy app_ctext_good "); - XtDestroyApplicationContext(app_ctext_good); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtCreateVarArgsList.m b/xts5/Xt4/XtCreateVarArgsList.m new file mode 100644 index 00000000..a8b1013c --- /dev/null +++ b/xts5/Xt4/XtCreateVarArgsList.m @@ -0,0 +1,741 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtCreateVarArgsList.m +>># +>># Description: +>># Tests for XtVaCreateArgsList() +>># +>># Modifications: +>># $Log: tvcrtargsl.m,v $ +>># Revision 1.1 2005-02-12 14:38:13 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:22 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:12 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:33 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:07 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:57 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:44 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; + +/* + * SquareCell.c - Square Widget +*/ +#define INTERNAL_WIDTH 2 +#define INTERNAL_HEIGHT 4 +#define DEFAULT_PIXMAP_WIDTH 1 /* in cells */ +#define DEFAULT_PIXMAP_HEIGHT 1 /* in cells */ +#define DEFAULT_CELL_SIE 20 /* in pixels */ +/* values for instance variable is_drawn */ +#define DRAWN 1 +#define UNDRAWN 0 +/* modes for drawing */ +#define DRAW 1 +#define UNDRAW 0 +#define MAXLINES 10 /* max of horiz or vertical cells */ +#define SCROLLBARWIDTH 15 +#define DEFAULTWIDTH 300 /* widget size when show_all is False */ +#define offset(field) XtOffsetOf(SquareCellRec, field) +static XtResource resources[] = { + { + XtNforeground, + XtCForeground, + XtRPixel, + sizeof(Pixel), + offset(squareCell.foreground), + XtRString, + XtDefaultForeground + }, + { + XavsNtoggleCallback, + XavsCToggleCallback, + XtRCallback, + sizeof(XtPointer), + offset(squareCell.callback), + XtRCallback, + NULL + }, + { + XavsNcellSizeInPixels, + XavsCCellSizeInPixels, + XtRInt, sizeof(int), + offset(squareCell.cell_size_in_pixels), + XtRImmediate, + (XtPointer)DEFAULT_CELL_SIE + }, + { + XavsNpixmapWidthInCells, + XavsCPixmapWidthInCells, + XtRDimension, + sizeof(Dimension), + offset(squareCell.pixmap_width_in_cells), + XtRImmediate, + (XtPointer)DEFAULT_PIXMAP_WIDTH + }, + { + XavsNpixmapHeightInCells, + XavsCPixmapHeightInCells, + XtRDimension, + sizeof(Dimension), + offset(squareCell.pixmap_height_in_cells), + XtRImmediate, + (XtPointer)DEFAULT_PIXMAP_HEIGHT + }, + { + XavsNcurX, + XavsCCurX, + XtRInt, + sizeof(int), + offset(squareCell.cur_x), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNcurY, + XavsCCurY, + XtRInt, + sizeof(int), + offset(squareCell.cur_y), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNcellArray, + XavsCCellArray, + XtRString, + sizeof(String), + offset(squareCell.cell), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNshowEntireBitmap, + XavsCShowEntireBitmap, + XtRBoolean, + sizeof(Boolean), + offset(squareCell.show_all), + XtRImmediate, + (XtPointer) TRUE + }, +}; +/* Declaration of methods */ +static void Initialize(); +static void Redisplay(); +static void Destroy(); +static void Resize(); +static Boolean SetValues(); +static XtGeometryResult QueryGeometry(); +/* these Core methods not needed by SquareCell: + * + * static void ClassInitialize(); + * static void Realize(); + */ +/* the following are private functions unique to SquareCell */ +static void DrawPixmaps(), DoCell(), ChangeCellSize(); +/* the following are actions of SquareCell */ +static void DrawCell(), UndrawCell(), ToggleCell(); +/* The following are public functions of SquareCell, declared extern + * in the public include file: */ +char *SquareCellGetArray(); +static char defaultTranslations[] = + ": DrawCell() \n\ + : UndrawCell() \n\ + : ToggleCell() \n\ + : DrawCell() \n\ + : UndrawCell() \n\ + : ToggleCell()"; +static XtActionsRec actions[] = { + {"DrawCell", DrawCell}, + {"UndrawCell", UndrawCell}, + {"ToggleCell", ToggleCell}, +}; +/* definition in SquareCell.h */ +static SquareCellPointInfo info; +SquareCellClassRec squareCellClassRec = { + { + /* core_class fields */ + /* superclass */ (WidgetClass) &coreClassRec, + /* class_name */ "SquareCell", + /* widget_size */ sizeof(SquareCellRec), + /* class_initialize */ NULL, + /* class_part_initialize */ NULL, + /* class_inited */ FALSE, + /* initialize */ Initialize, + /* initialize_hook */ NULL, + /* realize */ XtInheritRealize, + /* actions */ actions, + /* num_actions */ XtNumber(actions), + /* resources */ resources, + /* num_resources */ XtNumber(resources), + /* xrm_class */ NULLQUARK, + /* compress_motion */ TRUE, + /* compress_exposure */ XtExposeCompressMultiple, + /* compress_enterleave */ TRUE, + /* visible_interest */ FALSE, + /* destroy */ Destroy, + /* resize */ Resize, + /* expose */ Redisplay, + /* set_values */ SetValues, + /* set_values_hook */ NULL, + /* set_values_almost */ XtInheritSetValuesAlmost, + /* get_values_hook */ NULL, + /* accept_focus */ NULL, + /* version */ XtVersion, + /* callback_private */ NULL, + /* tm_table */ defaultTranslations, + /* query_geometry */ QueryGeometry, + /* display_accelerator */ XtInheritDisplayAccelerator, + /* extension */ NULL + }, + {/* simple_class fields */ + /* change_sensitive */ XtInheritChangeSensitive, + }, + { + /* extension */ 0, + }, +}; +WidgetClass squareCellWidgetClass = (WidgetClass) & squareCellClassRec; +static void +GetDrawGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground | GCDashOffset | + GCDashList | GCLineStyle; + /* + * Setting foreground and background to 1 and 0 looks like a + * kludge but isn't. This GC is used for drawing + * into a pixmap of depth one. Real colors are applied with a + * separate GC when the pixmap is copied into the window. + */ + values.foreground = 1; + values.background = 0; + values.dashes = 1; + values.dash_offset = 0; + values.line_style = LineOnOffDash; + cw->squareCell.draw_gc = XCreateGC(XtDisplay((Widget)cw), + cw->squareCell.big_picture, mask, &values); +} +static void +GetUndrawGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground; + /* this looks like a kludge but isn't. This GC is used for drawing + * into a pixmap of depth one. Real colors are applied as the + * pixmap is copied into the window. + */ + values.foreground = 0; + values.background = 1; + cw->squareCell.undraw_gc = XCreateGC(XtDisplay((Widget)cw), + cw->squareCell.big_picture, mask, &values); +} +static void +GetCopyGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground; + values.foreground = cw->squareCell.foreground; + values.background = cw->core.background_pixel; + cw->squareCell.copy_gc = XtGetGC((Widget)cw, mask, &values); +} +static void +Initialize(treq, tnew, args, num_args) +Widget treq, tnew; +ArgList args; +Cardinal *num_args; +{ + SquareCellWidget new = (SquareCellWidget) tnew; + new->squareCell.cur_x = 0; + new->squareCell.cur_y = 0; + /* + * Check instance values set by resources that may be invalid. + */ + if ((new->squareCell.pixmap_width_in_cells < 1) || + (new->squareCell.pixmap_height_in_cells < 1)) { + XtWarning("SquareCell: pixmapWidth and/or pixmapHeight is too small (using 10 x 10)."); + new->squareCell.pixmap_width_in_cells = 10; + new->squareCell.pixmap_height_in_cells = 10; + } + if (new->squareCell.cell_size_in_pixels < 5) { + XtWarning("SquareCell: cellSize is too small (using 5)."); + new->squareCell.cell_size_in_pixels = 5; + } + if ((new->squareCell.cur_x < 0) || (new->squareCell.cur_y < 0)) { + XtWarning("SquareCell: cur_x and cur_y must be non-negative (using 0, 0)."); + new->squareCell.cur_x = 0; + new->squareCell.cur_y = 0; + } + if (new->squareCell.cell == NULL) + new->squareCell.cell = XtCalloc( + new->squareCell.pixmap_width_in_cells * + new->squareCell.pixmap_height_in_cells, sizeof(char)); + else + new->squareCell.user_allocated = True; /* user supplied cell array */ + new->squareCell.pixmap_width_in_pixels = + new->squareCell.pixmap_width_in_cells * + new->squareCell.cell_size_in_pixels; + new->squareCell.pixmap_height_in_pixels = + new->squareCell.pixmap_height_in_cells * + new->squareCell.cell_size_in_pixels; + if (new->core.width == 0) { + if (new->squareCell.show_all == False) + new->core.width = (new->squareCell.pixmap_width_in_pixels + > DEFAULTWIDTH) ? DEFAULTWIDTH : + (new->squareCell.pixmap_width_in_pixels); + else + new->core.width = new->squareCell.pixmap_width_in_pixels; + } + if (new->core.height == 0) { + if (new->squareCell.show_all == False) + new->core.height = + (new->squareCell.pixmap_height_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + (new->squareCell.pixmap_height_in_pixels); + else + new->core.height = new->squareCell.pixmap_height_in_pixels; + } + XtSetValues((Widget) new, args, *num_args); + CreateBigPixmap(new); + GetDrawGC(new); + GetUndrawGC(new); + GetCopyGC(new); + DrawIntoBigPixmap(new); +} +static void +Redisplay(w, event) +Widget w; +XExposeEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + register int x, y; + unsigned int width, height; + if (!XtIsRealized((Widget)cw)) + return; + if (event) { /* called from btn-event or expose */ + x = event->x; + y = event->y; + width = event->width; + height = event->height; + } + else { /* called because complete redraw */ + x = 0; + y = 0; + width = cw->squareCell.pixmap_width_in_pixels; + height = cw->squareCell.pixmap_height_in_pixels; + } + if (DefaultDepthOfScreen(XtScreen((Widget)cw)) == 1) + XCopyArea(XtDisplay((Widget)cw), cw->squareCell.big_picture, + XtWindow((Widget)cw), cw->squareCell.copy_gc, x + + cw->squareCell.cur_x, y + cw->squareCell.cur_y, + width, height, x, y); + else + XCopyPlane(XtDisplay((Widget)cw), cw->squareCell.big_picture, + XtWindow((Widget)cw), cw->squareCell.copy_gc, x + + cw->squareCell.cur_x, y + cw->squareCell.cur_y, + width, height, x, y, 1); +} +static Boolean +SetValues(current, request, new, args, num_args) +Widget current, request, new; +ArgList args; +Cardinal *num_args; +{ + SquareCellWidget curcw = (SquareCellWidget) current; + SquareCellWidget newcw = (SquareCellWidget) new; + Boolean do_redisplay = False; + /* + ** XtSetValues invoked procedure SetValues + */ + if (curcw->squareCell.foreground != newcw->squareCell.foreground) { + XtReleaseGC((Widget)curcw, curcw->squareCell.copy_gc); + GetCopyGC(newcw); + do_redisplay = True; + } + if ((curcw->squareCell.cur_x != newcw->squareCell.cur_x) || + (curcw->squareCell.cur_y != newcw->squareCell.cur_y)) + do_redisplay = True; + if (curcw->squareCell.cell_size_in_pixels != + newcw->squareCell.cell_size_in_pixels) { + ChangeCellSize((Widget)curcw, newcw->squareCell.cell_size_in_pixels); + do_redisplay = True; + } + if (curcw->squareCell.pixmap_width_in_cells != + newcw->squareCell.pixmap_width_in_cells) { + newcw->squareCell.pixmap_width_in_cells = + curcw->squareCell.pixmap_width_in_cells; + XtWarning("SquareCell: pixmap_width_in_cells cannot be set by XtSetValues.\n"); + } + if (curcw->squareCell.pixmap_height_in_cells != + newcw->squareCell.pixmap_height_in_cells) { + newcw->squareCell.pixmap_height_in_cells = + curcw->squareCell.pixmap_height_in_cells; + XtWarning("SquareCell: pixmap_height_in_cells cannot be set by XtSetValues.\n"); + } + return do_redisplay; +} +static void +Destroy(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + if (cw->squareCell.big_picture) + XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); + if (cw->squareCell.draw_gc) + XFreeGC(XtDisplay(cw), cw->squareCell.draw_gc); + if (cw->squareCell.undraw_gc) + XFreeGC(XtDisplay(cw), cw->squareCell.undraw_gc); + if (cw->squareCell.copy_gc) + XFreeGC(XtDisplay(cw), cw->squareCell.copy_gc); + /* Free memory allocated with Calloc. This was done + * only if application didn't supply cell array. + */ + if (!cw->squareCell.user_allocated) + XtFree(cw->squareCell.cell); +} +static void +DrawCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + DrawPixmaps(cw->squareCell.draw_gc, DRAW, cw, event); +} +static void +UndrawCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + DrawPixmaps(cw->squareCell.undraw_gc, UNDRAW, cw, event); +} +static void +ToggleCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + static int oldx = -1, oldy = -1; + GC gc; + int mode; + int newx, newy; + /* This is strictly correct, but doesn't + * seem to be necessary */ + if (event->type == ButtonPress) { + newx = (cw->squareCell.cur_x + ((XButtonEvent *)event)->x) / + cw->squareCell.cell_size_in_pixels; + newy = (cw->squareCell.cur_y + ((XButtonEvent *)event)->y) / + cw->squareCell.cell_size_in_pixels; + } + else { + newx = (cw->squareCell.cur_x + ((XMotionEvent *)event)->x) / + cw->squareCell.cell_size_in_pixels; + newy = (cw->squareCell.cur_y + ((XMotionEvent *)event)->y) / + cw->squareCell.cell_size_in_pixels; + } + if ((mode = cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells]) == DRAWN) { + gc = cw->squareCell.undraw_gc; + mode = UNDRAW; + } + else { + gc = cw->squareCell.draw_gc; + mode = DRAW; + } + if (oldx != newx || oldy != newy) { + oldx = newx; + oldy = newy; + DrawPixmaps(gc, mode, cw, event); + } +} +static void +DrawPixmaps(gc, mode, w, event) +GC gc; +int mode; +Widget w; +XButtonEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int newx = (cw->squareCell.cur_x + event->x) / + cw->squareCell.cell_size_in_pixels; + int newy = (cw->squareCell.cur_y + event->y) / + cw->squareCell.cell_size_in_pixels; + XExposeEvent fake_event; + /* if already done, return */ + if (cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] == mode) + return; + /* otherwise, draw or undraw */ + XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, + cw->squareCell.cell_size_in_pixels*newx + 2, + cw->squareCell.cell_size_in_pixels*newy + 2, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3); + cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] = mode; + info.mode = mode; + info.newx = newx; + info.newy = newy; + fake_event.x = cw->squareCell.cell_size_in_pixels * newx - cw->squareCell.cur_x; + fake_event.y = cw->squareCell.cell_size_in_pixels * newy - cw->squareCell.cur_y; + fake_event.width = cw->squareCell.cell_size_in_pixels; + fake_event.height = cw->squareCell.cell_size_in_pixels; + Redisplay(cw, &fake_event); + XtCallCallbacks((Widget)cw, XavsNtoggleCallback, &info); +} +CreateBigPixmap(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* always a 1 bit deep pixmap, regardless of screen depth */ + cw->squareCell.big_picture = XCreatePixmap(XtDisplay(cw), + RootWindow(XtDisplay(cw), DefaultScreen(XtDisplay(cw))), + cw->squareCell.pixmap_width_in_pixels + 2, + cw->squareCell.pixmap_height_in_pixels + 2, 1); +} +DrawIntoBigPixmap(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int n_horiz_segments, n_vert_segments; + XSegment segment[MAXLINES]; + register int x, y; + XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, + cw->squareCell.undraw_gc, 0, 0, + cw->squareCell.pixmap_width_in_pixels + + 2, cw->squareCell.pixmap_height_in_pixels + 2); + n_horiz_segments = cw->squareCell.pixmap_height_in_cells + 1; + n_vert_segments = cw->squareCell.pixmap_width_in_cells + 1; + for (x = 0;x < n_horiz_segments; x++) { + segment[x].x1 = 0; + segment[x].x2 = (short) cw->squareCell.pixmap_width_in_pixels; + segment[x].y1 = (short) cw->squareCell.cell_size_in_pixels * x; + segment[x].y2 = (short) cw->squareCell.cell_size_in_pixels * x; + } + XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_horiz_segments); + for (y = 0;y < n_vert_segments; y++) { + segment[y].x1 = (short) y * cw->squareCell.cell_size_in_pixels; + segment[y].x2 = (short) y * cw->squareCell.cell_size_in_pixels; + segment[y].y1 = 0; + segment[y].y2 = (short) cw->squareCell.pixmap_height_in_pixels; + } + XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_vert_segments); + /* draw current cell array into pixmap */ + for (x = 0;x < cw->squareCell.pixmap_width_in_cells; x++) { + for (y = 0;y < cw->squareCell.pixmap_height_in_cells; y++) { + if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) + DoCell(cw, x, y, cw->squareCell.draw_gc); + else + DoCell(cw, x, y, cw->squareCell.undraw_gc); + } + } +} +/* A Public function, not static */ +char * +SquareCellGetArray(w, width_in_cells, height_in_cells) +Widget w; +int *width_in_cells, *height_in_cells; +{ + SquareCellWidget cw = (SquareCellWidget) w; + *width_in_cells = cw->squareCell.pixmap_width_in_cells; + *height_in_cells = cw->squareCell.pixmap_height_in_cells; + return (cw->squareCell.cell); +} +static void +Resize(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* resize does nothing unless new size is bigger than entire pixmap */ + if ((cw->core.width > cw->squareCell.pixmap_width_in_pixels) && + (cw->core.height > cw->squareCell.pixmap_height_in_pixels)) { + /* + * Calculate the maximum cell size that will allow the + * entire bitmap to be displayed. + */ + Dimension w_temp_cell_size_in_pixels, h_temp_cell_size_in_pixels; + Dimension new_cell_size_in_pixels; + + w_temp_cell_size_in_pixels = cw->core.width / cw->squareCell.pixmap_width_in_cells; + h_temp_cell_size_in_pixels = cw->core.height / cw->squareCell.pixmap_height_in_cells; + + if (w_temp_cell_size_in_pixels < h_temp_cell_size_in_pixels) + new_cell_size_in_pixels = w_temp_cell_size_in_pixels; + else + new_cell_size_in_pixels = h_temp_cell_size_in_pixels; + + /* if size change mandates a new pixmap, make one */ + if (new_cell_size_in_pixels != cw->squareCell.cell_size_in_pixels) + ChangeCellSize(cw, new_cell_size_in_pixels); + } +} +static void +ChangeCellSize(w, new_cell_size) +Widget w; +int new_cell_size; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int x, y; + cw->squareCell.cell_size_in_pixels = new_cell_size; + /* recalculate variables based on cell size */ + cw->squareCell.pixmap_width_in_pixels = + cw->squareCell.pixmap_width_in_cells * + cw->squareCell.cell_size_in_pixels; + cw->squareCell.pixmap_height_in_pixels = + cw->squareCell.pixmap_height_in_cells * + cw->squareCell.cell_size_in_pixels; + + /* destroy old and create new pixmap of correct size */ + XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); + CreateBigPixmap(cw); + + /* draw lines into new pixmap */ + DrawIntoBigPixmap(cw); + + /* draw current cell array into pixmap */ + for (x = 0;x < cw->squareCell.pixmap_width_in_cells; x++) { + for (y = 0;y < cw->squareCell.pixmap_height_in_cells; y++) { + if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) + DoCell(cw, x, y, cw->squareCell.draw_gc); + else + DoCell(cw, x, y, cw->squareCell.undraw_gc); + } + } +} +static void +DoCell(w, x, y, gc) +Widget w; +int x, y; +GC gc; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* otherwise, draw or undraw */ + XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, + cw->squareCell.cell_size_in_pixels * x + 2, + cw->squareCell.cell_size_in_pixels * y + 2, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3); +} +static XtGeometryResult QueryGeometry(w, proposed, answer) +Widget w; +XtWidgetGeometry *proposed, *answer; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* set fields we care about */ + answer->request_mode = CWWidth | CWHeight; + /* initial width and height */ + if (cw->squareCell.show_all == True) + answer->width = cw->squareCell.pixmap_width_in_pixels; + else + answer->width = (cw->squareCell.pixmap_width_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + cw->squareCell.pixmap_width_in_pixels; + if (cw->squareCell.show_all == True) + answer->height = cw->squareCell.pixmap_height_in_pixels; + else + answer->height = (cw->squareCell.pixmap_height_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + cw->squareCell.pixmap_height_in_pixels; + if ( ((proposed->request_mode & (CWWidth | CWHeight)) + == (CWWidth | CWHeight)) && + proposed->width == answer->width && + proposed->height == answer->height) + return XtGeometryYes; + else if (answer->width == cw->core.width && + answer->height == cw->core.height) + return XtGeometryNo; + else + return XtGeometryAlmost; +} + +>>TITLE XtCreateVarArgsList Xt4 +XtVarArgsList +XtVaCreateArgsList(unused, ...) +>>ASSERTION Good A +A call to XtVarArgsList XtVaCreateArgsList(unused, ...) shall allocate and +return a varargs list from the specified list of resource name/value pairs. +>>CODE +XtVarArgsList VarArgsList ; +int cur_x, cur_y ; +Widget squarew ; + + avs_xt_hier("Tvcrtargsl1", "XtVaCreateArgsList"); + tet_infoline("PREP: Convert resource list to varargs list."); + VarArgsList = XtVaCreateArgsList((XtPointer)NULL, + XavsNcurX, (XtArgVal)10, + XavsNcurY, (XtArgVal)10, + (char *)NULL); + tet_infoline("PREP: Create Square Cell widget using varargs list"); + squarew = (Widget)XtVaCreateManagedWidget( + "squarew", /* arbitrary widget name */ + squareCellWidgetClass, + boxw1, /* parent widget */ + XtVaNestedList, + VarArgsList, + (char *)NULL + ); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Get resource values"); + XtVaGetValues(squarew, XavsNcurX, &cur_x, XavsNcurY, &cur_y, (char *)NULL); + tet_infoline("TEST: Resource values"); + check_dec(10, cur_x, "XavsNcurX"); + check_dec(10, cur_y, "XavsNcurY"); +#if 0 + tet_infoline("TEST: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); +#endif + tet_infoline("CLEANUP: Free list"); + XtFree((char *)VarArgsList); + tet_result(TET_PASS); +>>ASSERTION Good B 1 +On a call to +XtVarArgsList XtVaCreateArgsList(unused, ...) +the varargs list returned shall be terminated by a NULL name entry. diff --git a/xts5/Xt4/XtCreateVarArgsList/XtCreateVarArgsList.m b/xts5/Xt4/XtCreateVarArgsList/XtCreateVarArgsList.m deleted file mode 100644 index 49994252..00000000 --- a/xts5/Xt4/XtCreateVarArgsList/XtCreateVarArgsList.m +++ /dev/null @@ -1,741 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtCreateVarArgsList/XtCreateVarArgsList.m ->># ->># Description: ->># Tests for XtVaCreateArgsList() ->># ->># Modifications: ->># $Log: tvcrtargsl.m,v $ ->># Revision 1.1 2005-02-12 14:38:13 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:22 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:12 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:33 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:07 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:57 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:44 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; - -/* - * SquareCell.c - Square Widget -*/ -#define INTERNAL_WIDTH 2 -#define INTERNAL_HEIGHT 4 -#define DEFAULT_PIXMAP_WIDTH 1 /* in cells */ -#define DEFAULT_PIXMAP_HEIGHT 1 /* in cells */ -#define DEFAULT_CELL_SIE 20 /* in pixels */ -/* values for instance variable is_drawn */ -#define DRAWN 1 -#define UNDRAWN 0 -/* modes for drawing */ -#define DRAW 1 -#define UNDRAW 0 -#define MAXLINES 10 /* max of horiz or vertical cells */ -#define SCROLLBARWIDTH 15 -#define DEFAULTWIDTH 300 /* widget size when show_all is False */ -#define offset(field) XtOffsetOf(SquareCellRec, field) -static XtResource resources[] = { - { - XtNforeground, - XtCForeground, - XtRPixel, - sizeof(Pixel), - offset(squareCell.foreground), - XtRString, - XtDefaultForeground - }, - { - XavsNtoggleCallback, - XavsCToggleCallback, - XtRCallback, - sizeof(XtPointer), - offset(squareCell.callback), - XtRCallback, - NULL - }, - { - XavsNcellSizeInPixels, - XavsCCellSizeInPixels, - XtRInt, sizeof(int), - offset(squareCell.cell_size_in_pixels), - XtRImmediate, - (XtPointer)DEFAULT_CELL_SIE - }, - { - XavsNpixmapWidthInCells, - XavsCPixmapWidthInCells, - XtRDimension, - sizeof(Dimension), - offset(squareCell.pixmap_width_in_cells), - XtRImmediate, - (XtPointer)DEFAULT_PIXMAP_WIDTH - }, - { - XavsNpixmapHeightInCells, - XavsCPixmapHeightInCells, - XtRDimension, - sizeof(Dimension), - offset(squareCell.pixmap_height_in_cells), - XtRImmediate, - (XtPointer)DEFAULT_PIXMAP_HEIGHT - }, - { - XavsNcurX, - XavsCCurX, - XtRInt, - sizeof(int), - offset(squareCell.cur_x), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNcurY, - XavsCCurY, - XtRInt, - sizeof(int), - offset(squareCell.cur_y), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNcellArray, - XavsCCellArray, - XtRString, - sizeof(String), - offset(squareCell.cell), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNshowEntireBitmap, - XavsCShowEntireBitmap, - XtRBoolean, - sizeof(Boolean), - offset(squareCell.show_all), - XtRImmediate, - (XtPointer) TRUE - }, -}; -/* Declaration of methods */ -static void Initialize(); -static void Redisplay(); -static void Destroy(); -static void Resize(); -static Boolean SetValues(); -static XtGeometryResult QueryGeometry(); -/* these Core methods not needed by SquareCell: - * - * static void ClassInitialize(); - * static void Realize(); - */ -/* the following are private functions unique to SquareCell */ -static void DrawPixmaps(), DoCell(), ChangeCellSize(); -/* the following are actions of SquareCell */ -static void DrawCell(), UndrawCell(), ToggleCell(); -/* The following are public functions of SquareCell, declared extern - * in the public include file: */ -char *SquareCellGetArray(); -static char defaultTranslations[] = - ": DrawCell() \n\ - : UndrawCell() \n\ - : ToggleCell() \n\ - : DrawCell() \n\ - : UndrawCell() \n\ - : ToggleCell()"; -static XtActionsRec actions[] = { - {"DrawCell", DrawCell}, - {"UndrawCell", UndrawCell}, - {"ToggleCell", ToggleCell}, -}; -/* definition in SquareCell.h */ -static SquareCellPointInfo info; -SquareCellClassRec squareCellClassRec = { - { - /* core_class fields */ - /* superclass */ (WidgetClass) &coreClassRec, - /* class_name */ "SquareCell", - /* widget_size */ sizeof(SquareCellRec), - /* class_initialize */ NULL, - /* class_part_initialize */ NULL, - /* class_inited */ FALSE, - /* initialize */ Initialize, - /* initialize_hook */ NULL, - /* realize */ XtInheritRealize, - /* actions */ actions, - /* num_actions */ XtNumber(actions), - /* resources */ resources, - /* num_resources */ XtNumber(resources), - /* xrm_class */ NULLQUARK, - /* compress_motion */ TRUE, - /* compress_exposure */ XtExposeCompressMultiple, - /* compress_enterleave */ TRUE, - /* visible_interest */ FALSE, - /* destroy */ Destroy, - /* resize */ Resize, - /* expose */ Redisplay, - /* set_values */ SetValues, - /* set_values_hook */ NULL, - /* set_values_almost */ XtInheritSetValuesAlmost, - /* get_values_hook */ NULL, - /* accept_focus */ NULL, - /* version */ XtVersion, - /* callback_private */ NULL, - /* tm_table */ defaultTranslations, - /* query_geometry */ QueryGeometry, - /* display_accelerator */ XtInheritDisplayAccelerator, - /* extension */ NULL - }, - {/* simple_class fields */ - /* change_sensitive */ XtInheritChangeSensitive, - }, - { - /* extension */ 0, - }, -}; -WidgetClass squareCellWidgetClass = (WidgetClass) & squareCellClassRec; -static void -GetDrawGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground | GCDashOffset | - GCDashList | GCLineStyle; - /* - * Setting foreground and background to 1 and 0 looks like a - * kludge but isn't. This GC is used for drawing - * into a pixmap of depth one. Real colors are applied with a - * separate GC when the pixmap is copied into the window. - */ - values.foreground = 1; - values.background = 0; - values.dashes = 1; - values.dash_offset = 0; - values.line_style = LineOnOffDash; - cw->squareCell.draw_gc = XCreateGC(XtDisplay((Widget)cw), - cw->squareCell.big_picture, mask, &values); -} -static void -GetUndrawGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground; - /* this looks like a kludge but isn't. This GC is used for drawing - * into a pixmap of depth one. Real colors are applied as the - * pixmap is copied into the window. - */ - values.foreground = 0; - values.background = 1; - cw->squareCell.undraw_gc = XCreateGC(XtDisplay((Widget)cw), - cw->squareCell.big_picture, mask, &values); -} -static void -GetCopyGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground; - values.foreground = cw->squareCell.foreground; - values.background = cw->core.background_pixel; - cw->squareCell.copy_gc = XtGetGC((Widget)cw, mask, &values); -} -static void -Initialize(treq, tnew, args, num_args) -Widget treq, tnew; -ArgList args; -Cardinal *num_args; -{ - SquareCellWidget new = (SquareCellWidget) tnew; - new->squareCell.cur_x = 0; - new->squareCell.cur_y = 0; - /* - * Check instance values set by resources that may be invalid. - */ - if ((new->squareCell.pixmap_width_in_cells < 1) || - (new->squareCell.pixmap_height_in_cells < 1)) { - XtWarning("SquareCell: pixmapWidth and/or pixmapHeight is too small (using 10 x 10)."); - new->squareCell.pixmap_width_in_cells = 10; - new->squareCell.pixmap_height_in_cells = 10; - } - if (new->squareCell.cell_size_in_pixels < 5) { - XtWarning("SquareCell: cellSize is too small (using 5)."); - new->squareCell.cell_size_in_pixels = 5; - } - if ((new->squareCell.cur_x < 0) || (new->squareCell.cur_y < 0)) { - XtWarning("SquareCell: cur_x and cur_y must be non-negative (using 0, 0)."); - new->squareCell.cur_x = 0; - new->squareCell.cur_y = 0; - } - if (new->squareCell.cell == NULL) - new->squareCell.cell = XtCalloc( - new->squareCell.pixmap_width_in_cells * - new->squareCell.pixmap_height_in_cells, sizeof(char)); - else - new->squareCell.user_allocated = True; /* user supplied cell array */ - new->squareCell.pixmap_width_in_pixels = - new->squareCell.pixmap_width_in_cells * - new->squareCell.cell_size_in_pixels; - new->squareCell.pixmap_height_in_pixels = - new->squareCell.pixmap_height_in_cells * - new->squareCell.cell_size_in_pixels; - if (new->core.width == 0) { - if (new->squareCell.show_all == False) - new->core.width = (new->squareCell.pixmap_width_in_pixels - > DEFAULTWIDTH) ? DEFAULTWIDTH : - (new->squareCell.pixmap_width_in_pixels); - else - new->core.width = new->squareCell.pixmap_width_in_pixels; - } - if (new->core.height == 0) { - if (new->squareCell.show_all == False) - new->core.height = - (new->squareCell.pixmap_height_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - (new->squareCell.pixmap_height_in_pixels); - else - new->core.height = new->squareCell.pixmap_height_in_pixels; - } - XtSetValues((Widget) new, args, *num_args); - CreateBigPixmap(new); - GetDrawGC(new); - GetUndrawGC(new); - GetCopyGC(new); - DrawIntoBigPixmap(new); -} -static void -Redisplay(w, event) -Widget w; -XExposeEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - register int x, y; - unsigned int width, height; - if (!XtIsRealized((Widget)cw)) - return; - if (event) { /* called from btn-event or expose */ - x = event->x; - y = event->y; - width = event->width; - height = event->height; - } - else { /* called because complete redraw */ - x = 0; - y = 0; - width = cw->squareCell.pixmap_width_in_pixels; - height = cw->squareCell.pixmap_height_in_pixels; - } - if (DefaultDepthOfScreen(XtScreen((Widget)cw)) == 1) - XCopyArea(XtDisplay((Widget)cw), cw->squareCell.big_picture, - XtWindow((Widget)cw), cw->squareCell.copy_gc, x + - cw->squareCell.cur_x, y + cw->squareCell.cur_y, - width, height, x, y); - else - XCopyPlane(XtDisplay((Widget)cw), cw->squareCell.big_picture, - XtWindow((Widget)cw), cw->squareCell.copy_gc, x + - cw->squareCell.cur_x, y + cw->squareCell.cur_y, - width, height, x, y, 1); -} -static Boolean -SetValues(current, request, new, args, num_args) -Widget current, request, new; -ArgList args; -Cardinal *num_args; -{ - SquareCellWidget curcw = (SquareCellWidget) current; - SquareCellWidget newcw = (SquareCellWidget) new; - Boolean do_redisplay = False; - /* - ** XtSetValues invoked procedure SetValues - */ - if (curcw->squareCell.foreground != newcw->squareCell.foreground) { - XtReleaseGC((Widget)curcw, curcw->squareCell.copy_gc); - GetCopyGC(newcw); - do_redisplay = True; - } - if ((curcw->squareCell.cur_x != newcw->squareCell.cur_x) || - (curcw->squareCell.cur_y != newcw->squareCell.cur_y)) - do_redisplay = True; - if (curcw->squareCell.cell_size_in_pixels != - newcw->squareCell.cell_size_in_pixels) { - ChangeCellSize((Widget)curcw, newcw->squareCell.cell_size_in_pixels); - do_redisplay = True; - } - if (curcw->squareCell.pixmap_width_in_cells != - newcw->squareCell.pixmap_width_in_cells) { - newcw->squareCell.pixmap_width_in_cells = - curcw->squareCell.pixmap_width_in_cells; - XtWarning("SquareCell: pixmap_width_in_cells cannot be set by XtSetValues.\n"); - } - if (curcw->squareCell.pixmap_height_in_cells != - newcw->squareCell.pixmap_height_in_cells) { - newcw->squareCell.pixmap_height_in_cells = - curcw->squareCell.pixmap_height_in_cells; - XtWarning("SquareCell: pixmap_height_in_cells cannot be set by XtSetValues.\n"); - } - return do_redisplay; -} -static void -Destroy(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - if (cw->squareCell.big_picture) - XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); - if (cw->squareCell.draw_gc) - XFreeGC(XtDisplay(cw), cw->squareCell.draw_gc); - if (cw->squareCell.undraw_gc) - XFreeGC(XtDisplay(cw), cw->squareCell.undraw_gc); - if (cw->squareCell.copy_gc) - XFreeGC(XtDisplay(cw), cw->squareCell.copy_gc); - /* Free memory allocated with Calloc. This was done - * only if application didn't supply cell array. - */ - if (!cw->squareCell.user_allocated) - XtFree(cw->squareCell.cell); -} -static void -DrawCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - DrawPixmaps(cw->squareCell.draw_gc, DRAW, cw, event); -} -static void -UndrawCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - DrawPixmaps(cw->squareCell.undraw_gc, UNDRAW, cw, event); -} -static void -ToggleCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - static int oldx = -1, oldy = -1; - GC gc; - int mode; - int newx, newy; - /* This is strictly correct, but doesn't - * seem to be necessary */ - if (event->type == ButtonPress) { - newx = (cw->squareCell.cur_x + ((XButtonEvent *)event)->x) / - cw->squareCell.cell_size_in_pixels; - newy = (cw->squareCell.cur_y + ((XButtonEvent *)event)->y) / - cw->squareCell.cell_size_in_pixels; - } - else { - newx = (cw->squareCell.cur_x + ((XMotionEvent *)event)->x) / - cw->squareCell.cell_size_in_pixels; - newy = (cw->squareCell.cur_y + ((XMotionEvent *)event)->y) / - cw->squareCell.cell_size_in_pixels; - } - if ((mode = cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells]) == DRAWN) { - gc = cw->squareCell.undraw_gc; - mode = UNDRAW; - } - else { - gc = cw->squareCell.draw_gc; - mode = DRAW; - } - if (oldx != newx || oldy != newy) { - oldx = newx; - oldy = newy; - DrawPixmaps(gc, mode, cw, event); - } -} -static void -DrawPixmaps(gc, mode, w, event) -GC gc; -int mode; -Widget w; -XButtonEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int newx = (cw->squareCell.cur_x + event->x) / - cw->squareCell.cell_size_in_pixels; - int newy = (cw->squareCell.cur_y + event->y) / - cw->squareCell.cell_size_in_pixels; - XExposeEvent fake_event; - /* if already done, return */ - if (cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] == mode) - return; - /* otherwise, draw or undraw */ - XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, - cw->squareCell.cell_size_in_pixels*newx + 2, - cw->squareCell.cell_size_in_pixels*newy + 2, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3); - cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] = mode; - info.mode = mode; - info.newx = newx; - info.newy = newy; - fake_event.x = cw->squareCell.cell_size_in_pixels * newx - cw->squareCell.cur_x; - fake_event.y = cw->squareCell.cell_size_in_pixels * newy - cw->squareCell.cur_y; - fake_event.width = cw->squareCell.cell_size_in_pixels; - fake_event.height = cw->squareCell.cell_size_in_pixels; - Redisplay(cw, &fake_event); - XtCallCallbacks((Widget)cw, XavsNtoggleCallback, &info); -} -CreateBigPixmap(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* always a 1 bit deep pixmap, regardless of screen depth */ - cw->squareCell.big_picture = XCreatePixmap(XtDisplay(cw), - RootWindow(XtDisplay(cw), DefaultScreen(XtDisplay(cw))), - cw->squareCell.pixmap_width_in_pixels + 2, - cw->squareCell.pixmap_height_in_pixels + 2, 1); -} -DrawIntoBigPixmap(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int n_horiz_segments, n_vert_segments; - XSegment segment[MAXLINES]; - register int x, y; - XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, - cw->squareCell.undraw_gc, 0, 0, - cw->squareCell.pixmap_width_in_pixels - + 2, cw->squareCell.pixmap_height_in_pixels + 2); - n_horiz_segments = cw->squareCell.pixmap_height_in_cells + 1; - n_vert_segments = cw->squareCell.pixmap_width_in_cells + 1; - for (x = 0;x < n_horiz_segments; x++) { - segment[x].x1 = 0; - segment[x].x2 = (short) cw->squareCell.pixmap_width_in_pixels; - segment[x].y1 = (short) cw->squareCell.cell_size_in_pixels * x; - segment[x].y2 = (short) cw->squareCell.cell_size_in_pixels * x; - } - XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_horiz_segments); - for (y = 0;y < n_vert_segments; y++) { - segment[y].x1 = (short) y * cw->squareCell.cell_size_in_pixels; - segment[y].x2 = (short) y * cw->squareCell.cell_size_in_pixels; - segment[y].y1 = 0; - segment[y].y2 = (short) cw->squareCell.pixmap_height_in_pixels; - } - XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_vert_segments); - /* draw current cell array into pixmap */ - for (x = 0;x < cw->squareCell.pixmap_width_in_cells; x++) { - for (y = 0;y < cw->squareCell.pixmap_height_in_cells; y++) { - if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) - DoCell(cw, x, y, cw->squareCell.draw_gc); - else - DoCell(cw, x, y, cw->squareCell.undraw_gc); - } - } -} -/* A Public function, not static */ -char * -SquareCellGetArray(w, width_in_cells, height_in_cells) -Widget w; -int *width_in_cells, *height_in_cells; -{ - SquareCellWidget cw = (SquareCellWidget) w; - *width_in_cells = cw->squareCell.pixmap_width_in_cells; - *height_in_cells = cw->squareCell.pixmap_height_in_cells; - return (cw->squareCell.cell); -} -static void -Resize(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* resize does nothing unless new size is bigger than entire pixmap */ - if ((cw->core.width > cw->squareCell.pixmap_width_in_pixels) && - (cw->core.height > cw->squareCell.pixmap_height_in_pixels)) { - /* - * Calculate the maximum cell size that will allow the - * entire bitmap to be displayed. - */ - Dimension w_temp_cell_size_in_pixels, h_temp_cell_size_in_pixels; - Dimension new_cell_size_in_pixels; - - w_temp_cell_size_in_pixels = cw->core.width / cw->squareCell.pixmap_width_in_cells; - h_temp_cell_size_in_pixels = cw->core.height / cw->squareCell.pixmap_height_in_cells; - - if (w_temp_cell_size_in_pixels < h_temp_cell_size_in_pixels) - new_cell_size_in_pixels = w_temp_cell_size_in_pixels; - else - new_cell_size_in_pixels = h_temp_cell_size_in_pixels; - - /* if size change mandates a new pixmap, make one */ - if (new_cell_size_in_pixels != cw->squareCell.cell_size_in_pixels) - ChangeCellSize(cw, new_cell_size_in_pixels); - } -} -static void -ChangeCellSize(w, new_cell_size) -Widget w; -int new_cell_size; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int x, y; - cw->squareCell.cell_size_in_pixels = new_cell_size; - /* recalculate variables based on cell size */ - cw->squareCell.pixmap_width_in_pixels = - cw->squareCell.pixmap_width_in_cells * - cw->squareCell.cell_size_in_pixels; - cw->squareCell.pixmap_height_in_pixels = - cw->squareCell.pixmap_height_in_cells * - cw->squareCell.cell_size_in_pixels; - - /* destroy old and create new pixmap of correct size */ - XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); - CreateBigPixmap(cw); - - /* draw lines into new pixmap */ - DrawIntoBigPixmap(cw); - - /* draw current cell array into pixmap */ - for (x = 0;x < cw->squareCell.pixmap_width_in_cells; x++) { - for (y = 0;y < cw->squareCell.pixmap_height_in_cells; y++) { - if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) - DoCell(cw, x, y, cw->squareCell.draw_gc); - else - DoCell(cw, x, y, cw->squareCell.undraw_gc); - } - } -} -static void -DoCell(w, x, y, gc) -Widget w; -int x, y; -GC gc; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* otherwise, draw or undraw */ - XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, - cw->squareCell.cell_size_in_pixels * x + 2, - cw->squareCell.cell_size_in_pixels * y + 2, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3); -} -static XtGeometryResult QueryGeometry(w, proposed, answer) -Widget w; -XtWidgetGeometry *proposed, *answer; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* set fields we care about */ - answer->request_mode = CWWidth | CWHeight; - /* initial width and height */ - if (cw->squareCell.show_all == True) - answer->width = cw->squareCell.pixmap_width_in_pixels; - else - answer->width = (cw->squareCell.pixmap_width_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - cw->squareCell.pixmap_width_in_pixels; - if (cw->squareCell.show_all == True) - answer->height = cw->squareCell.pixmap_height_in_pixels; - else - answer->height = (cw->squareCell.pixmap_height_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - cw->squareCell.pixmap_height_in_pixels; - if ( ((proposed->request_mode & (CWWidth | CWHeight)) - == (CWWidth | CWHeight)) && - proposed->width == answer->width && - proposed->height == answer->height) - return XtGeometryYes; - else if (answer->width == cw->core.width && - answer->height == cw->core.height) - return XtGeometryNo; - else - return XtGeometryAlmost; -} - ->>TITLE XtCreateVarArgsList Xt4 -XtVarArgsList -XtVaCreateArgsList(unused, ...) ->>ASSERTION Good A -A call to XtVarArgsList XtVaCreateArgsList(unused, ...) shall allocate and -return a varargs list from the specified list of resource name/value pairs. ->>CODE -XtVarArgsList VarArgsList ; -int cur_x, cur_y ; -Widget squarew ; - - avs_xt_hier("Tvcrtargsl1", "XtVaCreateArgsList"); - tet_infoline("PREP: Convert resource list to varargs list."); - VarArgsList = XtVaCreateArgsList((XtPointer)NULL, - XavsNcurX, (XtArgVal)10, - XavsNcurY, (XtArgVal)10, - (char *)NULL); - tet_infoline("PREP: Create Square Cell widget using varargs list"); - squarew = (Widget)XtVaCreateManagedWidget( - "squarew", /* arbitrary widget name */ - squareCellWidgetClass, - boxw1, /* parent widget */ - XtVaNestedList, - VarArgsList, - (char *)NULL - ); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Get resource values"); - XtVaGetValues(squarew, XavsNcurX, &cur_x, XavsNcurY, &cur_y, (char *)NULL); - tet_infoline("TEST: Resource values"); - check_dec(10, cur_x, "XavsNcurX"); - check_dec(10, cur_y, "XavsNcurY"); -#if 0 - tet_infoline("TEST: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); -#endif - tet_infoline("CLEANUP: Free list"); - XtFree((char *)VarArgsList); - tet_result(TET_PASS); ->>ASSERTION Good B 1 -On a call to -XtVarArgsList XtVaCreateArgsList(unused, ...) -the varargs list returned shall be terminated by a NULL name entry. diff --git a/xts5/Xt4/XtCreateWidget.m b/xts5/Xt4/XtCreateWidget.m new file mode 100644 index 00000000..7727dbf3 --- /dev/null +++ b/xts5/Xt4/XtCreateWidget.m @@ -0,0 +1,910 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtCreateWidget.m +>># +>># Description: +>># Tests for XtCreateWidget() +>># +>># Modifications: +>># $Log: tcrtwdgt.m,v $ +>># Revision 1.1 2005-02-12 14:38:00 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:23 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:12 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:33 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:07 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:00 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:48 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; + +/* +** XtEMH_Proc +*/ +void XtEMH_Proc(str1, str2, str3, str4, str5, car) +String str1, str2, str3, str4, *str5; +Cardinal *car; +{ + avs_set_event(1,1); + exit(0); +} + +/* + * SquareCell.c - Square Widget + */ +#define INTERNAL_WIDTH 2 +#define INTERNAL_HEIGHT 4 +#define DEFAULT_PIXMAP_WIDTH 1 /* in cells */ +#define DEFAULT_PIXMAP_HEIGHT 1 /* in cells */ +#define DEFAULT_CELL_SIE 20 /* in pixels */ +/* values for instance variable is_drawn */ +#define DRAWN 1 +#define UNDRAWN 0 +/* modes for drawing */ +#define DRAW 1 +#define UNDRAW 0 +#define MAXLINES 10 /* max of horiz or vertical cells */ +#define SCROLLBARWIDTH 15 +#define DEFAULTWIDTH 300 /* widget size when show_all is False */ +#define offset(field) XtOffsetOf(SquareCellRec, field) +static XtResource resources[] = { + { + XtNforeground, + XtCForeground, + XtRPixel, + sizeof(Pixel), + offset(squareCell.foreground), + XtRString, + XtDefaultForeground + }, + { + XavsNtoggleCallback, + XavsCToggleCallback, + XtRCallback, + sizeof(XtPointer), + offset(squareCell.callback), + XtRCallback, + NULL + }, + { + XavsNcellSizeInPixels, + XavsCCellSizeInPixels, + XtRInt, sizeof(int), + offset(squareCell.cell_size_in_pixels), + XtRImmediate, + (XtPointer)DEFAULT_CELL_SIE + }, + { + XavsNpixmapWidthInCells, + XavsCPixmapWidthInCells, + XtRDimension, + sizeof(Dimension), + offset(squareCell.pixmap_width_in_cells), + XtRImmediate, + (XtPointer)DEFAULT_PIXMAP_WIDTH + }, + { + XavsNpixmapHeightInCells, + XavsCPixmapHeightInCells, + XtRDimension, + sizeof(Dimension), + offset(squareCell.pixmap_height_in_cells), + XtRImmediate, + (XtPointer)DEFAULT_PIXMAP_HEIGHT + }, + { + XavsNcurX, + XavsCCurX, + XtRInt, + sizeof(int), + offset(squareCell.cur_x), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNcurY, + XavsCCurY, + XtRInt, + sizeof(int), + offset(squareCell.cur_y), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNcellArray, + XavsCCellArray, + XtRString, + sizeof(String), + offset(squareCell.cell), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNshowEntireBitmap, + XavsCShowEntireBitmap, + XtRBoolean, + sizeof(Boolean), + offset(squareCell.show_all), + XtRImmediate, + (XtPointer) TRUE + }, +}; +/* Declaration of methods */ +static void Initialize(); +static void Redisplay(); +static void Destroy(); +static void Resize(); +static Boolean SetValues(); +static XtGeometryResult QueryGeometry(); +/* these Core methods not needed by SquareCell: + * + * static void ClassInitialize(); + * static void Realize(); + */ +/* the following are private functions unique to SquareCell */ +static void DrawPixmaps(), DoCell(), ChangeCellSize(); +/* the following are actions of SquareCell */ +static void DrawCell(), UndrawCell(), ToggleCell(); +/* The following are public functions of SquareCell, declared extern + * in the public include file: */ +char *SquareCellGetArray(); +static char defaultTranslations[] = + ": DrawCell() \n\ + : UndrawCell() \n\ + : ToggleCell() \n\ + : DrawCell() \n\ + : UndrawCell() \n\ + : ToggleCell()"; +static XtActionsRec actions[] = { + {"DrawCell", DrawCell}, + {"UndrawCell", UndrawCell}, + {"ToggleCell", ToggleCell}, +}; +/* definition in SquareCell.h */ +static SquareCellPointInfo info; +SquareCellClassRec squareCellClassRec = { + { + /* core_class fields */ + /* superclass */ (WidgetClass) &coreClassRec, + /* class_name */ "SquareCell", + /* widget_size */ sizeof(SquareCellRec), + /* class_initialize */ NULL, + /* class_part_initialize */ NULL, + /* class_inited */ FALSE, + /* initialize */ Initialize, + /* initialize_hook */ NULL, + /* realize */ XtInheritRealize, + /* actions */ actions, + /* num_actions */ XtNumber(actions), + /* resources */ resources, + /* num_resources */ XtNumber(resources), + /* xrm_class */ NULLQUARK, + /* compress_motion */ TRUE, + /* compress_exposure */ XtExposeCompressMultiple, + /* compress_enterleave */ TRUE, + /* visible_interest */ FALSE, + /* destroy */ Destroy, + /* resize */ Resize, + /* expose */ Redisplay, + /* set_values */ SetValues, + /* set_values_hook */ NULL, + /* set_values_almost */ XtInheritSetValuesAlmost, + /* get_values_hook */ NULL, + /* accept_focus */ NULL, + /* version */ XtVersion, + /* callback_private */ NULL, + /* tm_table */ defaultTranslations, + /* query_geometry */ QueryGeometry, + /* display_accelerator */ XtInheritDisplayAccelerator, + /* extension */ NULL + }, + {/* simple_class fields */ + /* change_sensitive */ XtInheritChangeSensitive, + }, + { + /* extension */ 0, + }, +}; +WidgetClass squareCellWidgetClass = (WidgetClass) & squareCellClassRec; +static void +GetDrawGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground | GCDashOffset | + GCDashList | GCLineStyle; + /* + * Setting foreground and background to 1 and 0 looks like a + * kludge but isn't. This GC is used for drawing + * into a pixmap of depth one. Real colors are applied with a + * separate GC when the pixmap is copied into the window. + */ + values.foreground = 1; + values.background = 0; + values.dashes = 1; + values.dash_offset = 0; + values.line_style = LineOnOffDash; + cw->squareCell.draw_gc = XCreateGC(XtDisplay((Widget)cw), + cw->squareCell.big_picture, mask, &values); +} +static void +GetUndrawGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground; + /* this looks like a kludge but isn't. This GC is used for drawing + * into a pixmap of depth one. Real colors are applied as the + * pixmap is copied into the window. + */ + values.foreground = 0; + values.background = 1; + cw->squareCell.undraw_gc = XCreateGC(XtDisplay((Widget)cw), + cw->squareCell.big_picture, mask, &values); +} +static void +GetCopyGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground; + values.foreground = cw->squareCell.foreground; + values.background = cw->core.background_pixel; + cw->squareCell.copy_gc = XtGetGC((Widget)cw, mask, &values); +} +static void +Initialize(treq, tnew, args, num_args) +Widget treq, tnew; +ArgList args; +Cardinal *num_args; +{ + SquareCellWidget new = (SquareCellWidget) tnew; + new->squareCell.cur_x = 0; + new->squareCell.cur_y = 0; + /* + * Check instance values set by resources that may be invalid. + */ + if ((new->squareCell.pixmap_width_in_cells < 1) || + (new->squareCell.pixmap_height_in_cells < 1)) { + XtWarning("SquareCell: pixmapWidth and/or pixmapHeight is too small (using 10 x 10)."); + new->squareCell.pixmap_width_in_cells = 10; + new->squareCell.pixmap_height_in_cells = 10; + } + if (new->squareCell.cell_size_in_pixels < 5) { + XtWarning("SquareCell: cellSize is too small (using 5)."); + new->squareCell.cell_size_in_pixels = 5; + } + if ((new->squareCell.cur_x < 0) || (new->squareCell.cur_y < 0)) { + XtWarning("SquareCell: cur_x and cur_y must be non-negative (using 0, 0)."); + new->squareCell.cur_x = 0; + new->squareCell.cur_y = 0; + } + if (new->squareCell.cell == NULL) + new->squareCell.cell = XtCalloc( + new->squareCell.pixmap_width_in_cells * + new->squareCell.pixmap_height_in_cells, sizeof(char)); + else + new->squareCell.user_allocated = True; /* user supplied cell array */ + new->squareCell.pixmap_width_in_pixels = + new->squareCell.pixmap_width_in_cells * + new->squareCell.cell_size_in_pixels; + new->squareCell.pixmap_height_in_pixels = + new->squareCell.pixmap_height_in_cells * + new->squareCell.cell_size_in_pixels; + if (new->core.width == 0) { + if (new->squareCell.show_all == False) + new->core.width = (new->squareCell.pixmap_width_in_pixels + > DEFAULTWIDTH) ? DEFAULTWIDTH : + (new->squareCell.pixmap_width_in_pixels); + else + new->core.width = new->squareCell.pixmap_width_in_pixels; + } + if (new->core.height == 0) { + if (new->squareCell.show_all == False) + new->core.height = + (new->squareCell.pixmap_height_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + (new->squareCell.pixmap_height_in_pixels); + else + new->core.height = new->squareCell.pixmap_height_in_pixels; + } + CreateBigPixmap(new); + GetDrawGC(new); + GetUndrawGC(new); + GetCopyGC(new); + DrawIntoBigPixmap(new); +} +static void +Redisplay(w, event) +Widget w; +XExposeEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + register int x, y; + unsigned int width, height; + if (!XtIsRealized((Widget)cw)) + return; + if (event) { /* called from btn-event or expose */ + x = event->x; + y = event->y; + width = event->width; + height = event->height; + } + else { /* called because complete redraw */ + x = 0; + y = 0; + width = cw->squareCell.pixmap_width_in_pixels; + height = cw->squareCell.pixmap_height_in_pixels; + } + if (DefaultDepthOfScreen(XtScreen((Widget)cw)) == 1) + XCopyArea(XtDisplay((Widget)cw), cw->squareCell.big_picture, + XtWindow((Widget)cw), cw->squareCell.copy_gc, x + + cw->squareCell.cur_x, y + cw->squareCell.cur_y, + width, height, x, y); + else + XCopyPlane(XtDisplay((Widget)cw), cw->squareCell.big_picture, + XtWindow((Widget)cw), cw->squareCell.copy_gc, x + + cw->squareCell.cur_x, y + cw->squareCell.cur_y, + width, height, x, y, 1); +} +static Boolean +SetValues(current, request, new, args, num_args) +Widget current, request, new; +ArgList args; +Cardinal *num_args; +{ + SquareCellWidget curcw = (SquareCellWidget) current; + SquareCellWidget newcw = (SquareCellWidget) new; + Boolean do_redisplay = False; + /* + ** XtSetValues invoked procedure SetValues + */ + if (curcw->squareCell.foreground != newcw->squareCell.foreground) { + XtReleaseGC((Widget)curcw, curcw->squareCell.copy_gc); + GetCopyGC(newcw); + do_redisplay = True; + } + if ((curcw->squareCell.cur_x != newcw->squareCell.cur_x) || + (curcw->squareCell.cur_y != newcw->squareCell.cur_y)) + do_redisplay = True; + if (curcw->squareCell.cell_size_in_pixels != + newcw->squareCell.cell_size_in_pixels) { + ChangeCellSize((Widget)curcw, newcw->squareCell.cell_size_in_pixels); + do_redisplay = True; + } + if (curcw->squareCell.pixmap_width_in_cells != + newcw->squareCell.pixmap_width_in_cells) { + newcw->squareCell.pixmap_width_in_cells = + curcw->squareCell.pixmap_width_in_cells; + XtWarning("SquareCell: pixmap_width_in_cells cannot be set by XtSetValues.\n"); + } + if (curcw->squareCell.pixmap_height_in_cells != + newcw->squareCell.pixmap_height_in_cells) { + newcw->squareCell.pixmap_height_in_cells = + curcw->squareCell.pixmap_height_in_cells; + XtWarning("SquareCell: pixmap_height_in_cells cannot be set by XtSetValues.\n"); + } + return do_redisplay; +} +static void +Destroy(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + if (cw->squareCell.big_picture) + XFreePixmap(XtDisplay((Widget)cw), cw->squareCell.big_picture); + if (cw->squareCell.draw_gc) + XFreeGC(XtDisplay((Widget)cw), cw->squareCell.draw_gc); + if (cw->squareCell.undraw_gc) + XFreeGC(XtDisplay((Widget)cw), cw->squareCell.undraw_gc); + if (cw->squareCell.copy_gc) + XFreeGC(XtDisplay((Widget)cw), cw->squareCell.copy_gc); + /* Free memory allocated with Calloc. This was done + * only if application didn't supply cell array. + */ + if (!cw->squareCell.user_allocated) + XtFree((char *)cw->squareCell.cell); +} +static void +DrawCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + DrawPixmaps(cw->squareCell.draw_gc, DRAW, cw, event); +} +static void +UndrawCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + DrawPixmaps(cw->squareCell.undraw_gc, UNDRAW, cw, event); +} +static void +ToggleCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + static int oldx = -1, oldy = -1; + GC gc; + int mode; + int newx, newy; + /* This is strictly correct, but doesn't + * seem to be necessary */ + if (event->type == ButtonPress) { + newx = (cw->squareCell.cur_x + ((XButtonEvent *)event)->x) / + cw->squareCell.cell_size_in_pixels; + newy = (cw->squareCell.cur_y + ((XButtonEvent *)event)->y) / + cw->squareCell.cell_size_in_pixels; + } + else { + newx = (cw->squareCell.cur_x + ((XMotionEvent *)event)->x) / + cw->squareCell.cell_size_in_pixels; + newy = (cw->squareCell.cur_y + ((XMotionEvent *)event)->y) / + cw->squareCell.cell_size_in_pixels; + } + if ((mode = cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells]) == DRAWN) { + gc = cw->squareCell.undraw_gc; + mode = UNDRAW; + } + else { + gc = cw->squareCell.draw_gc; + mode = DRAW; + } + if (oldx != newx || oldy != newy) { + oldx = newx; + oldy = newy; + DrawPixmaps(gc, mode, cw, event); + } +} +static void +DrawPixmaps(gc, mode, w, event) +GC gc; +int mode; +Widget w; +XButtonEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int newx = (cw->squareCell.cur_x + event->x) / + cw->squareCell.cell_size_in_pixels; + int newy = (cw->squareCell.cur_y + event->y) / + cw->squareCell.cell_size_in_pixels; + XExposeEvent fake_event; + /* if already done, return */ + if (cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] == mode) + return; + /* otherwise, draw or undraw */ + XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, + cw->squareCell.cell_size_in_pixels*newx + 2, + cw->squareCell.cell_size_in_pixels*newy + 2, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3); + cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] = mode; + info.mode = mode; + info.newx = newx; + info.newy = newy; + fake_event.x = cw->squareCell.cell_size_in_pixels * newx - cw->squareCell.cur_x; + fake_event.y = cw->squareCell.cell_size_in_pixels * newy - cw->squareCell.cur_y; + fake_event.width = cw->squareCell.cell_size_in_pixels; + fake_event.height = cw->squareCell.cell_size_in_pixels; + Redisplay(cw, &fake_event); + XtCallCallbacks((Widget)cw, XavsNtoggleCallback, &info); +} +CreateBigPixmap(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* always a 1 bit deep pixmap, regardless of screen depth */ + cw->squareCell.big_picture = XCreatePixmap(XtDisplay(cw), + RootWindow(XtDisplay(cw), DefaultScreen(XtDisplay(cw))), + cw->squareCell.pixmap_width_in_pixels + 2, + cw->squareCell.pixmap_height_in_pixels + 2, 1); +} +DrawIntoBigPixmap(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int n_horiz_segments, n_vert_segments; + XSegment segment[MAXLINES]; + register int x, y; + XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, + cw->squareCell.undraw_gc, 0, 0, + cw->squareCell.pixmap_width_in_pixels + + 2, cw->squareCell.pixmap_height_in_pixels + 2); + n_horiz_segments = cw->squareCell.pixmap_height_in_cells + 1; + n_vert_segments = cw->squareCell.pixmap_width_in_cells + 1; + for (x = 0; x < n_horiz_segments; x++) { + segment[x].x1 = 0; + segment[x].x2 = (short) cw->squareCell.pixmap_width_in_pixels; + segment[x].y1 = (short) cw->squareCell.cell_size_in_pixels * x; + segment[x].y2 = (short) cw->squareCell.cell_size_in_pixels * x; + } + XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_horiz_segments); + for (y = 0; y < n_vert_segments; y++) { + segment[y].x1 = (short) y * cw->squareCell.cell_size_in_pixels; + segment[y].x2 = (short) y * cw->squareCell.cell_size_in_pixels; + segment[y].y1 = 0; + segment[y].y2 = (short) cw->squareCell.pixmap_height_in_pixels; + } + XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_vert_segments); + /* draw current cell array into pixmap */ + for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { + for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { + if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) + DoCell(cw, x, y, cw->squareCell.draw_gc); + else + DoCell(cw, x, y, cw->squareCell.undraw_gc); + } + } +} +/* A Public function, not static */ +char * +SquareCellGetArray(w, width_in_cells, height_in_cells) +Widget w; +int *width_in_cells, *height_in_cells; +{ + SquareCellWidget cw = (SquareCellWidget) w; + *width_in_cells = cw->squareCell.pixmap_width_in_cells; + *height_in_cells = cw->squareCell.pixmap_height_in_cells; + return (cw->squareCell.cell); +} +static void +Resize(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* resize does nothing unless new size is bigger than entire pixmap */ + if ((cw->core.width > cw->squareCell.pixmap_width_in_pixels) && + (cw->core.height > cw->squareCell.pixmap_height_in_pixels)) { + /* + * Calculate the maximum cell size that will allow the + * entire bitmap to be displayed. + */ + Dimension w_temp_cell_size_in_pixels, h_temp_cell_size_in_pixels; + Dimension new_cell_size_in_pixels; + + w_temp_cell_size_in_pixels = cw->core.width / cw->squareCell.pixmap_width_in_cells; + h_temp_cell_size_in_pixels = cw->core.height / cw->squareCell.pixmap_height_in_cells; + + if (w_temp_cell_size_in_pixels < h_temp_cell_size_in_pixels) + new_cell_size_in_pixels = w_temp_cell_size_in_pixels; + else + new_cell_size_in_pixels = h_temp_cell_size_in_pixels; + + /* if size change mandates a new pixmap, make one */ + if (new_cell_size_in_pixels != cw->squareCell.cell_size_in_pixels) + ChangeCellSize(cw, new_cell_size_in_pixels); + } +} +static void +ChangeCellSize(w, new_cell_size) +Widget w; +int new_cell_size; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int x, y; + cw->squareCell.cell_size_in_pixels = new_cell_size; + /* recalculate variables based on cell size */ + cw->squareCell.pixmap_width_in_pixels = + cw->squareCell.pixmap_width_in_cells * + cw->squareCell.cell_size_in_pixels; + cw->squareCell.pixmap_height_in_pixels = + cw->squareCell.pixmap_height_in_cells * + cw->squareCell.cell_size_in_pixels; + + /* destroy old and create new pixmap of correct size */ + XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); + CreateBigPixmap(cw); + + /* draw lines into new pixmap */ + DrawIntoBigPixmap(cw); + + /* draw current cell array into pixmap */ + for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { + for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { + if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) + DoCell(cw, x, y, cw->squareCell.draw_gc); + else + DoCell(cw, x, y, cw->squareCell.undraw_gc); + } + } +} +static void +DoCell(w, x, y, gc) +Widget w; +int x, y; +GC gc; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* otherwise, draw or undraw */ + XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, + cw->squareCell.cell_size_in_pixels * x + 2, + cw->squareCell.cell_size_in_pixels * y + 2, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3); +} +static XtGeometryResult QueryGeometry(w, proposed, answer) +Widget w; +XtWidgetGeometry *proposed, *answer; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* set fields we care about */ + answer->request_mode = CWWidth | CWHeight; + /* initial width and height */ + if (cw->squareCell.show_all == True) + answer->width = cw->squareCell.pixmap_width_in_pixels; + else + answer->width = (cw->squareCell.pixmap_width_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + cw->squareCell.pixmap_width_in_pixels; + if (cw->squareCell.show_all == True) + answer->height = cw->squareCell.pixmap_height_in_pixels; + else + answer->height = (cw->squareCell.pixmap_height_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + cw->squareCell.pixmap_height_in_pixels; + if ( ((proposed->request_mode & (CWWidth | CWHeight)) + == (CWWidth | CWHeight)) && + proposed->width == answer->width && + proposed->height == answer->height) + return XtGeometryYes; + else if (answer->width == cw->core.width && + answer->height == cw->core.height) + return XtGeometryNo; + else + return XtGeometryAlmost; +} +>>SET tpstartup avs_alloc_sem +>>SET tpcleanup avs_free_sem +>>TITLE XtCreateWidget Xt4 +Widget +XtCreateWidget(name, object_class, parent, args, num_args) +>>ASSERTION Good A +A successful call to +Widget XtCreateWidget(name, object_class, parent, args, num_args) +shall create a new widget instance belonging to the widget class +object_class, with parent as its immediate ancestor, and return a pointer to +the widget instance structure. +>>CODE +Boolean value_good; +char string[10]; +Widget widget_good, labelw_good; +Widget rowcolw_good; + + avs_xt_hier("Tcrtwdgt1", "XtCreateWidget"); + tet_infoline("PREP: Create rowcolw_good widget in box1w widget"); + rowcolw_good = (Widget) CreateRowColWidget(boxw1); + (void) CreateLabelWidget("Failsafe widget", rowcolw_good); + tet_infoline("TEST: Create label widget Hello"); + labelw_good = XtCreateWidget( + "Hello", + labelWidgetClass, + rowcolw_good, + (ArgList)NULL, + (Cardinal)0 + ); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Check the labelw_good widget is not managed"); + value_good = XtIsManaged(labelw_good); + check_dec(False, value_good , "XtIsmanaged return value"); + tet_infoline("TEST: Check the labelw_good widget is child of rowcolumn widget"); + widget_good = (Widget)XtParent(labelw_good); + if (widget_good == NULL) { + tet_infoline("ERROR: Expected parent widget instance returned NULL"); + tet_result(TET_FAIL); + } + else + check_str("rowcolw", XtName(widget_good), "Parent widget name"); + tet_result(TET_PASS); +>>ASSERTION Good A +A call to +Widget XtCreateWidget(name, object_class, parent, args, num_args) +when object_class is not coreWidgetClass or a subclass thereof, the class of +parent is a subclass of compositeWidgetClass, and there is no extension +record in the composite class part extension field of parent with the +record_type equal to NULLQUARK shall issue a fatal error. +>>CODE +Boolean value_good; +char string[10]; +Widget test_widget, test_widget2; +int status; +pid_t pid2; + + FORK(pid2); + avs_xt_hier("Tcrtwdgt5", "XtCreateWidget"); + tet_infoline("PREP: Register error message handler"); + XtAppSetErrorMsgHandler(app_ctext, XtEMH_Proc); + tet_infoline("TEST: Create composite widget"); + test_widget = XtCreateWidget( + "Composite", + avsCompWidgetClass, + topLevel, + (ArgList)NULL, + (Cardinal)0 + ); + tet_infoline("TEST: Create rect obj in it"); + test_widget2 = XtCreateWidget( + "RectObj", + avsrectObjClass, + test_widget, + (ArgList)NULL, + (Cardinal)0 + ); + KROF(pid2); + tet_infoline("TEST: Error handler was invoked"); + status = avs_get_event(1); + check_dec(1, status , "handler invocations count"); + tet_result(TET_PASS); +>>ASSERTION Good B 0 +A call to +Widget XtCreateWidget(name, object_class, parent, args, num_args) +when object_class is not coreWidgetClass or a subclass thereof, the class of +parent is a subclass of compositeWidgetClass, and the accepts_object +field in the parent's composite class part extension record is False shall +issue a fatal error. +>>ASSERTION Good A +A successful call to +Widget XtCreateWidget(name, object_class, parent, args, num_args) +shall perform the following actions in the order specified: + +- invoke the class_initialize procedure for the class object_class and + all superclasses for which this procedure has not been invoked prior to + this call, in a superclass-to-subclass order. + +- allocate memory for the widget instance. + +- if the parent belongs to the class constraintWidgetClass or a + subclass thereof, allocate memory for the constraints of parent + and store the address of this memory in the constraints field of the + widget instance structure. + +- initialize the Core non-resource data fields of the widget instance. + +- initialize the resource fields of the widget instance using the + CoreClassPart resource list specified for object_class and all superclasses, + overridden by the resource values specified in args. + +- if parent is a subclass of constraintWidgetClass, initialize the resource + fields of the constraints record from the constraint resource list specified + for the parent's class and all superclasses up to constraintWidgetClass, + overridden by the resource values specified in args. + +- call all the initialize procedures starting at Object on down to the + initialize procedure of the widget. + +- if parent is a member of compositeWidgetClass, call the insert_child + procedure of the parent. + +- if parent belongs to the class contraintWidgetClass or a subclass thereof, + call all the ConstraintClassPart initialize procedures starting at + constraintWidgetClass on down to the initialize procedure of the parent. +>>CODE +Boolean value_good; +char string[10]; +Widget squarew; +Dimension cell_height, cell_width; +Widget formw_good ; +Widget labelw_good; +Arg setargs[1]; +Boolean resizable; +pid_t pid2; +Widget widget_good; + + /*a combination of earlier tests, needs enhancement*/ + FORK(pid2); + avs_xt_hier("Tcrtwdgt3", "XtCreateWidget"); + tet_infoline("TEST: Create Square Cell widget"); + squarew = XtCreateWidget("squarew", + squareCellWidgetClass, + boxw1, + (ArgList)NULL, + (Cardinal)0); + tet_infoline("TEST: Check resource values"); + XtVaGetValues(squarew, + XavsNpixmapWidthInCells, &cell_width, + XavsNpixmapHeightInCells, &cell_height, + (char *)NULL); + check_dec(DEFAULT_PIXMAP_WIDTH, cell_width, XavsNpixmapWidthInCells); + check_dec(DEFAULT_PIXMAP_HEIGHT, cell_height, XavsNpixmapHeightInCells); + LKROF(pid2, AVSXTTIMEOUT-2); + FORK(pid2); + avs_xt_hier("Tcrtwdgt3", "XtCreateWidget"); + tet_infoline("TEST: Create formw_good widget subclass of constraintWidgetClass"); + formw_good = (Widget) CreateFormWidget(boxw1); + (void) CreateLabelWidget("failsafe widget", formw_good); + tet_infoline("PREP: Create labelw_good widget Hello"); + setargs[0].name = XtNresizable; + setargs[0].value = (XtArgVal) TRUE; + labelw_good = XtCreateWidget( + "Hello", + labelWidgetClass, + formw_good, + (ArgList)&setargs[0], + (Cardinal)1 + ); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Check XtNresizable resource value"); + XtVaGetValues(labelw_good, XtNresizable, &resizable, (char *)NULL); + check_dec(TRUE,resizable,XtNresizable); + LKROF(pid2, AVSXTTIMEOUT-2); + FORK(pid2); + avs_xt_hier("Tcrtwdgt4", "XtCreateWidget"); + tet_infoline("PREP: Create formw_good widget subclass of constraintWidgetClass"); + formw_good = (Widget) CreateFormWidget(boxw1); + (void) CreateLabelWidget("Failsafe widget", formw_good); + tet_infoline("TEST: Create labelw_good widget Hello"); + labelw_good = XtCreateWidget( + "Hello", + labelWidgetClass, + formw_good, + (ArgList)NULL, + (Cardinal)0 + ); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Labelw_good widget is child of formw widget"); + widget_good = (Widget)XtParent(labelw_good); + if (widget_good == NULL) { + tet_infoline("ERROR: Expected parent widget instance returned NULL"); + tet_result(TET_FAIL); + } + else + check_str("formw", XtName(widget_good), "Parent name"); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtCreateWidget/XtCreateWidget.m b/xts5/Xt4/XtCreateWidget/XtCreateWidget.m deleted file mode 100644 index f1eacd4d..00000000 --- a/xts5/Xt4/XtCreateWidget/XtCreateWidget.m +++ /dev/null @@ -1,910 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtCreateWidget/XtCreateWidget.m ->># ->># Description: ->># Tests for XtCreateWidget() ->># ->># Modifications: ->># $Log: tcrtwdgt.m,v $ ->># Revision 1.1 2005-02-12 14:38:00 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:23 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:12 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:33 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:07 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:00 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:48 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; - -/* -** XtEMH_Proc -*/ -void XtEMH_Proc(str1, str2, str3, str4, str5, car) -String str1, str2, str3, str4, *str5; -Cardinal *car; -{ - avs_set_event(1,1); - exit(0); -} - -/* - * SquareCell.c - Square Widget - */ -#define INTERNAL_WIDTH 2 -#define INTERNAL_HEIGHT 4 -#define DEFAULT_PIXMAP_WIDTH 1 /* in cells */ -#define DEFAULT_PIXMAP_HEIGHT 1 /* in cells */ -#define DEFAULT_CELL_SIE 20 /* in pixels */ -/* values for instance variable is_drawn */ -#define DRAWN 1 -#define UNDRAWN 0 -/* modes for drawing */ -#define DRAW 1 -#define UNDRAW 0 -#define MAXLINES 10 /* max of horiz or vertical cells */ -#define SCROLLBARWIDTH 15 -#define DEFAULTWIDTH 300 /* widget size when show_all is False */ -#define offset(field) XtOffsetOf(SquareCellRec, field) -static XtResource resources[] = { - { - XtNforeground, - XtCForeground, - XtRPixel, - sizeof(Pixel), - offset(squareCell.foreground), - XtRString, - XtDefaultForeground - }, - { - XavsNtoggleCallback, - XavsCToggleCallback, - XtRCallback, - sizeof(XtPointer), - offset(squareCell.callback), - XtRCallback, - NULL - }, - { - XavsNcellSizeInPixels, - XavsCCellSizeInPixels, - XtRInt, sizeof(int), - offset(squareCell.cell_size_in_pixels), - XtRImmediate, - (XtPointer)DEFAULT_CELL_SIE - }, - { - XavsNpixmapWidthInCells, - XavsCPixmapWidthInCells, - XtRDimension, - sizeof(Dimension), - offset(squareCell.pixmap_width_in_cells), - XtRImmediate, - (XtPointer)DEFAULT_PIXMAP_WIDTH - }, - { - XavsNpixmapHeightInCells, - XavsCPixmapHeightInCells, - XtRDimension, - sizeof(Dimension), - offset(squareCell.pixmap_height_in_cells), - XtRImmediate, - (XtPointer)DEFAULT_PIXMAP_HEIGHT - }, - { - XavsNcurX, - XavsCCurX, - XtRInt, - sizeof(int), - offset(squareCell.cur_x), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNcurY, - XavsCCurY, - XtRInt, - sizeof(int), - offset(squareCell.cur_y), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNcellArray, - XavsCCellArray, - XtRString, - sizeof(String), - offset(squareCell.cell), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNshowEntireBitmap, - XavsCShowEntireBitmap, - XtRBoolean, - sizeof(Boolean), - offset(squareCell.show_all), - XtRImmediate, - (XtPointer) TRUE - }, -}; -/* Declaration of methods */ -static void Initialize(); -static void Redisplay(); -static void Destroy(); -static void Resize(); -static Boolean SetValues(); -static XtGeometryResult QueryGeometry(); -/* these Core methods not needed by SquareCell: - * - * static void ClassInitialize(); - * static void Realize(); - */ -/* the following are private functions unique to SquareCell */ -static void DrawPixmaps(), DoCell(), ChangeCellSize(); -/* the following are actions of SquareCell */ -static void DrawCell(), UndrawCell(), ToggleCell(); -/* The following are public functions of SquareCell, declared extern - * in the public include file: */ -char *SquareCellGetArray(); -static char defaultTranslations[] = - ": DrawCell() \n\ - : UndrawCell() \n\ - : ToggleCell() \n\ - : DrawCell() \n\ - : UndrawCell() \n\ - : ToggleCell()"; -static XtActionsRec actions[] = { - {"DrawCell", DrawCell}, - {"UndrawCell", UndrawCell}, - {"ToggleCell", ToggleCell}, -}; -/* definition in SquareCell.h */ -static SquareCellPointInfo info; -SquareCellClassRec squareCellClassRec = { - { - /* core_class fields */ - /* superclass */ (WidgetClass) &coreClassRec, - /* class_name */ "SquareCell", - /* widget_size */ sizeof(SquareCellRec), - /* class_initialize */ NULL, - /* class_part_initialize */ NULL, - /* class_inited */ FALSE, - /* initialize */ Initialize, - /* initialize_hook */ NULL, - /* realize */ XtInheritRealize, - /* actions */ actions, - /* num_actions */ XtNumber(actions), - /* resources */ resources, - /* num_resources */ XtNumber(resources), - /* xrm_class */ NULLQUARK, - /* compress_motion */ TRUE, - /* compress_exposure */ XtExposeCompressMultiple, - /* compress_enterleave */ TRUE, - /* visible_interest */ FALSE, - /* destroy */ Destroy, - /* resize */ Resize, - /* expose */ Redisplay, - /* set_values */ SetValues, - /* set_values_hook */ NULL, - /* set_values_almost */ XtInheritSetValuesAlmost, - /* get_values_hook */ NULL, - /* accept_focus */ NULL, - /* version */ XtVersion, - /* callback_private */ NULL, - /* tm_table */ defaultTranslations, - /* query_geometry */ QueryGeometry, - /* display_accelerator */ XtInheritDisplayAccelerator, - /* extension */ NULL - }, - {/* simple_class fields */ - /* change_sensitive */ XtInheritChangeSensitive, - }, - { - /* extension */ 0, - }, -}; -WidgetClass squareCellWidgetClass = (WidgetClass) & squareCellClassRec; -static void -GetDrawGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground | GCDashOffset | - GCDashList | GCLineStyle; - /* - * Setting foreground and background to 1 and 0 looks like a - * kludge but isn't. This GC is used for drawing - * into a pixmap of depth one. Real colors are applied with a - * separate GC when the pixmap is copied into the window. - */ - values.foreground = 1; - values.background = 0; - values.dashes = 1; - values.dash_offset = 0; - values.line_style = LineOnOffDash; - cw->squareCell.draw_gc = XCreateGC(XtDisplay((Widget)cw), - cw->squareCell.big_picture, mask, &values); -} -static void -GetUndrawGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground; - /* this looks like a kludge but isn't. This GC is used for drawing - * into a pixmap of depth one. Real colors are applied as the - * pixmap is copied into the window. - */ - values.foreground = 0; - values.background = 1; - cw->squareCell.undraw_gc = XCreateGC(XtDisplay((Widget)cw), - cw->squareCell.big_picture, mask, &values); -} -static void -GetCopyGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground; - values.foreground = cw->squareCell.foreground; - values.background = cw->core.background_pixel; - cw->squareCell.copy_gc = XtGetGC((Widget)cw, mask, &values); -} -static void -Initialize(treq, tnew, args, num_args) -Widget treq, tnew; -ArgList args; -Cardinal *num_args; -{ - SquareCellWidget new = (SquareCellWidget) tnew; - new->squareCell.cur_x = 0; - new->squareCell.cur_y = 0; - /* - * Check instance values set by resources that may be invalid. - */ - if ((new->squareCell.pixmap_width_in_cells < 1) || - (new->squareCell.pixmap_height_in_cells < 1)) { - XtWarning("SquareCell: pixmapWidth and/or pixmapHeight is too small (using 10 x 10)."); - new->squareCell.pixmap_width_in_cells = 10; - new->squareCell.pixmap_height_in_cells = 10; - } - if (new->squareCell.cell_size_in_pixels < 5) { - XtWarning("SquareCell: cellSize is too small (using 5)."); - new->squareCell.cell_size_in_pixels = 5; - } - if ((new->squareCell.cur_x < 0) || (new->squareCell.cur_y < 0)) { - XtWarning("SquareCell: cur_x and cur_y must be non-negative (using 0, 0)."); - new->squareCell.cur_x = 0; - new->squareCell.cur_y = 0; - } - if (new->squareCell.cell == NULL) - new->squareCell.cell = XtCalloc( - new->squareCell.pixmap_width_in_cells * - new->squareCell.pixmap_height_in_cells, sizeof(char)); - else - new->squareCell.user_allocated = True; /* user supplied cell array */ - new->squareCell.pixmap_width_in_pixels = - new->squareCell.pixmap_width_in_cells * - new->squareCell.cell_size_in_pixels; - new->squareCell.pixmap_height_in_pixels = - new->squareCell.pixmap_height_in_cells * - new->squareCell.cell_size_in_pixels; - if (new->core.width == 0) { - if (new->squareCell.show_all == False) - new->core.width = (new->squareCell.pixmap_width_in_pixels - > DEFAULTWIDTH) ? DEFAULTWIDTH : - (new->squareCell.pixmap_width_in_pixels); - else - new->core.width = new->squareCell.pixmap_width_in_pixels; - } - if (new->core.height == 0) { - if (new->squareCell.show_all == False) - new->core.height = - (new->squareCell.pixmap_height_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - (new->squareCell.pixmap_height_in_pixels); - else - new->core.height = new->squareCell.pixmap_height_in_pixels; - } - CreateBigPixmap(new); - GetDrawGC(new); - GetUndrawGC(new); - GetCopyGC(new); - DrawIntoBigPixmap(new); -} -static void -Redisplay(w, event) -Widget w; -XExposeEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - register int x, y; - unsigned int width, height; - if (!XtIsRealized((Widget)cw)) - return; - if (event) { /* called from btn-event or expose */ - x = event->x; - y = event->y; - width = event->width; - height = event->height; - } - else { /* called because complete redraw */ - x = 0; - y = 0; - width = cw->squareCell.pixmap_width_in_pixels; - height = cw->squareCell.pixmap_height_in_pixels; - } - if (DefaultDepthOfScreen(XtScreen((Widget)cw)) == 1) - XCopyArea(XtDisplay((Widget)cw), cw->squareCell.big_picture, - XtWindow((Widget)cw), cw->squareCell.copy_gc, x + - cw->squareCell.cur_x, y + cw->squareCell.cur_y, - width, height, x, y); - else - XCopyPlane(XtDisplay((Widget)cw), cw->squareCell.big_picture, - XtWindow((Widget)cw), cw->squareCell.copy_gc, x + - cw->squareCell.cur_x, y + cw->squareCell.cur_y, - width, height, x, y, 1); -} -static Boolean -SetValues(current, request, new, args, num_args) -Widget current, request, new; -ArgList args; -Cardinal *num_args; -{ - SquareCellWidget curcw = (SquareCellWidget) current; - SquareCellWidget newcw = (SquareCellWidget) new; - Boolean do_redisplay = False; - /* - ** XtSetValues invoked procedure SetValues - */ - if (curcw->squareCell.foreground != newcw->squareCell.foreground) { - XtReleaseGC((Widget)curcw, curcw->squareCell.copy_gc); - GetCopyGC(newcw); - do_redisplay = True; - } - if ((curcw->squareCell.cur_x != newcw->squareCell.cur_x) || - (curcw->squareCell.cur_y != newcw->squareCell.cur_y)) - do_redisplay = True; - if (curcw->squareCell.cell_size_in_pixels != - newcw->squareCell.cell_size_in_pixels) { - ChangeCellSize((Widget)curcw, newcw->squareCell.cell_size_in_pixels); - do_redisplay = True; - } - if (curcw->squareCell.pixmap_width_in_cells != - newcw->squareCell.pixmap_width_in_cells) { - newcw->squareCell.pixmap_width_in_cells = - curcw->squareCell.pixmap_width_in_cells; - XtWarning("SquareCell: pixmap_width_in_cells cannot be set by XtSetValues.\n"); - } - if (curcw->squareCell.pixmap_height_in_cells != - newcw->squareCell.pixmap_height_in_cells) { - newcw->squareCell.pixmap_height_in_cells = - curcw->squareCell.pixmap_height_in_cells; - XtWarning("SquareCell: pixmap_height_in_cells cannot be set by XtSetValues.\n"); - } - return do_redisplay; -} -static void -Destroy(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - if (cw->squareCell.big_picture) - XFreePixmap(XtDisplay((Widget)cw), cw->squareCell.big_picture); - if (cw->squareCell.draw_gc) - XFreeGC(XtDisplay((Widget)cw), cw->squareCell.draw_gc); - if (cw->squareCell.undraw_gc) - XFreeGC(XtDisplay((Widget)cw), cw->squareCell.undraw_gc); - if (cw->squareCell.copy_gc) - XFreeGC(XtDisplay((Widget)cw), cw->squareCell.copy_gc); - /* Free memory allocated with Calloc. This was done - * only if application didn't supply cell array. - */ - if (!cw->squareCell.user_allocated) - XtFree((char *)cw->squareCell.cell); -} -static void -DrawCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - DrawPixmaps(cw->squareCell.draw_gc, DRAW, cw, event); -} -static void -UndrawCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - DrawPixmaps(cw->squareCell.undraw_gc, UNDRAW, cw, event); -} -static void -ToggleCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - static int oldx = -1, oldy = -1; - GC gc; - int mode; - int newx, newy; - /* This is strictly correct, but doesn't - * seem to be necessary */ - if (event->type == ButtonPress) { - newx = (cw->squareCell.cur_x + ((XButtonEvent *)event)->x) / - cw->squareCell.cell_size_in_pixels; - newy = (cw->squareCell.cur_y + ((XButtonEvent *)event)->y) / - cw->squareCell.cell_size_in_pixels; - } - else { - newx = (cw->squareCell.cur_x + ((XMotionEvent *)event)->x) / - cw->squareCell.cell_size_in_pixels; - newy = (cw->squareCell.cur_y + ((XMotionEvent *)event)->y) / - cw->squareCell.cell_size_in_pixels; - } - if ((mode = cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells]) == DRAWN) { - gc = cw->squareCell.undraw_gc; - mode = UNDRAW; - } - else { - gc = cw->squareCell.draw_gc; - mode = DRAW; - } - if (oldx != newx || oldy != newy) { - oldx = newx; - oldy = newy; - DrawPixmaps(gc, mode, cw, event); - } -} -static void -DrawPixmaps(gc, mode, w, event) -GC gc; -int mode; -Widget w; -XButtonEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int newx = (cw->squareCell.cur_x + event->x) / - cw->squareCell.cell_size_in_pixels; - int newy = (cw->squareCell.cur_y + event->y) / - cw->squareCell.cell_size_in_pixels; - XExposeEvent fake_event; - /* if already done, return */ - if (cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] == mode) - return; - /* otherwise, draw or undraw */ - XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, - cw->squareCell.cell_size_in_pixels*newx + 2, - cw->squareCell.cell_size_in_pixels*newy + 2, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3); - cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] = mode; - info.mode = mode; - info.newx = newx; - info.newy = newy; - fake_event.x = cw->squareCell.cell_size_in_pixels * newx - cw->squareCell.cur_x; - fake_event.y = cw->squareCell.cell_size_in_pixels * newy - cw->squareCell.cur_y; - fake_event.width = cw->squareCell.cell_size_in_pixels; - fake_event.height = cw->squareCell.cell_size_in_pixels; - Redisplay(cw, &fake_event); - XtCallCallbacks((Widget)cw, XavsNtoggleCallback, &info); -} -CreateBigPixmap(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* always a 1 bit deep pixmap, regardless of screen depth */ - cw->squareCell.big_picture = XCreatePixmap(XtDisplay(cw), - RootWindow(XtDisplay(cw), DefaultScreen(XtDisplay(cw))), - cw->squareCell.pixmap_width_in_pixels + 2, - cw->squareCell.pixmap_height_in_pixels + 2, 1); -} -DrawIntoBigPixmap(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int n_horiz_segments, n_vert_segments; - XSegment segment[MAXLINES]; - register int x, y; - XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, - cw->squareCell.undraw_gc, 0, 0, - cw->squareCell.pixmap_width_in_pixels - + 2, cw->squareCell.pixmap_height_in_pixels + 2); - n_horiz_segments = cw->squareCell.pixmap_height_in_cells + 1; - n_vert_segments = cw->squareCell.pixmap_width_in_cells + 1; - for (x = 0; x < n_horiz_segments; x++) { - segment[x].x1 = 0; - segment[x].x2 = (short) cw->squareCell.pixmap_width_in_pixels; - segment[x].y1 = (short) cw->squareCell.cell_size_in_pixels * x; - segment[x].y2 = (short) cw->squareCell.cell_size_in_pixels * x; - } - XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_horiz_segments); - for (y = 0; y < n_vert_segments; y++) { - segment[y].x1 = (short) y * cw->squareCell.cell_size_in_pixels; - segment[y].x2 = (short) y * cw->squareCell.cell_size_in_pixels; - segment[y].y1 = 0; - segment[y].y2 = (short) cw->squareCell.pixmap_height_in_pixels; - } - XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_vert_segments); - /* draw current cell array into pixmap */ - for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { - for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { - if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) - DoCell(cw, x, y, cw->squareCell.draw_gc); - else - DoCell(cw, x, y, cw->squareCell.undraw_gc); - } - } -} -/* A Public function, not static */ -char * -SquareCellGetArray(w, width_in_cells, height_in_cells) -Widget w; -int *width_in_cells, *height_in_cells; -{ - SquareCellWidget cw = (SquareCellWidget) w; - *width_in_cells = cw->squareCell.pixmap_width_in_cells; - *height_in_cells = cw->squareCell.pixmap_height_in_cells; - return (cw->squareCell.cell); -} -static void -Resize(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* resize does nothing unless new size is bigger than entire pixmap */ - if ((cw->core.width > cw->squareCell.pixmap_width_in_pixels) && - (cw->core.height > cw->squareCell.pixmap_height_in_pixels)) { - /* - * Calculate the maximum cell size that will allow the - * entire bitmap to be displayed. - */ - Dimension w_temp_cell_size_in_pixels, h_temp_cell_size_in_pixels; - Dimension new_cell_size_in_pixels; - - w_temp_cell_size_in_pixels = cw->core.width / cw->squareCell.pixmap_width_in_cells; - h_temp_cell_size_in_pixels = cw->core.height / cw->squareCell.pixmap_height_in_cells; - - if (w_temp_cell_size_in_pixels < h_temp_cell_size_in_pixels) - new_cell_size_in_pixels = w_temp_cell_size_in_pixels; - else - new_cell_size_in_pixels = h_temp_cell_size_in_pixels; - - /* if size change mandates a new pixmap, make one */ - if (new_cell_size_in_pixels != cw->squareCell.cell_size_in_pixels) - ChangeCellSize(cw, new_cell_size_in_pixels); - } -} -static void -ChangeCellSize(w, new_cell_size) -Widget w; -int new_cell_size; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int x, y; - cw->squareCell.cell_size_in_pixels = new_cell_size; - /* recalculate variables based on cell size */ - cw->squareCell.pixmap_width_in_pixels = - cw->squareCell.pixmap_width_in_cells * - cw->squareCell.cell_size_in_pixels; - cw->squareCell.pixmap_height_in_pixels = - cw->squareCell.pixmap_height_in_cells * - cw->squareCell.cell_size_in_pixels; - - /* destroy old and create new pixmap of correct size */ - XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); - CreateBigPixmap(cw); - - /* draw lines into new pixmap */ - DrawIntoBigPixmap(cw); - - /* draw current cell array into pixmap */ - for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { - for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { - if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) - DoCell(cw, x, y, cw->squareCell.draw_gc); - else - DoCell(cw, x, y, cw->squareCell.undraw_gc); - } - } -} -static void -DoCell(w, x, y, gc) -Widget w; -int x, y; -GC gc; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* otherwise, draw or undraw */ - XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, - cw->squareCell.cell_size_in_pixels * x + 2, - cw->squareCell.cell_size_in_pixels * y + 2, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3); -} -static XtGeometryResult QueryGeometry(w, proposed, answer) -Widget w; -XtWidgetGeometry *proposed, *answer; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* set fields we care about */ - answer->request_mode = CWWidth | CWHeight; - /* initial width and height */ - if (cw->squareCell.show_all == True) - answer->width = cw->squareCell.pixmap_width_in_pixels; - else - answer->width = (cw->squareCell.pixmap_width_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - cw->squareCell.pixmap_width_in_pixels; - if (cw->squareCell.show_all == True) - answer->height = cw->squareCell.pixmap_height_in_pixels; - else - answer->height = (cw->squareCell.pixmap_height_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - cw->squareCell.pixmap_height_in_pixels; - if ( ((proposed->request_mode & (CWWidth | CWHeight)) - == (CWWidth | CWHeight)) && - proposed->width == answer->width && - proposed->height == answer->height) - return XtGeometryYes; - else if (answer->width == cw->core.width && - answer->height == cw->core.height) - return XtGeometryNo; - else - return XtGeometryAlmost; -} ->>SET tpstartup avs_alloc_sem ->>SET tpcleanup avs_free_sem ->>TITLE XtCreateWidget Xt4 -Widget -XtCreateWidget(name, object_class, parent, args, num_args) ->>ASSERTION Good A -A successful call to -Widget XtCreateWidget(name, object_class, parent, args, num_args) -shall create a new widget instance belonging to the widget class -object_class, with parent as its immediate ancestor, and return a pointer to -the widget instance structure. ->>CODE -Boolean value_good; -char string[10]; -Widget widget_good, labelw_good; -Widget rowcolw_good; - - avs_xt_hier("Tcrtwdgt1", "XtCreateWidget"); - tet_infoline("PREP: Create rowcolw_good widget in box1w widget"); - rowcolw_good = (Widget) CreateRowColWidget(boxw1); - (void) CreateLabelWidget("Failsafe widget", rowcolw_good); - tet_infoline("TEST: Create label widget Hello"); - labelw_good = XtCreateWidget( - "Hello", - labelWidgetClass, - rowcolw_good, - (ArgList)NULL, - (Cardinal)0 - ); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Check the labelw_good widget is not managed"); - value_good = XtIsManaged(labelw_good); - check_dec(False, value_good , "XtIsmanaged return value"); - tet_infoline("TEST: Check the labelw_good widget is child of rowcolumn widget"); - widget_good = (Widget)XtParent(labelw_good); - if (widget_good == NULL) { - tet_infoline("ERROR: Expected parent widget instance returned NULL"); - tet_result(TET_FAIL); - } - else - check_str("rowcolw", XtName(widget_good), "Parent widget name"); - tet_result(TET_PASS); ->>ASSERTION Good A -A call to -Widget XtCreateWidget(name, object_class, parent, args, num_args) -when object_class is not coreWidgetClass or a subclass thereof, the class of -parent is a subclass of compositeWidgetClass, and there is no extension -record in the composite class part extension field of parent with the -record_type equal to NULLQUARK shall issue a fatal error. ->>CODE -Boolean value_good; -char string[10]; -Widget test_widget, test_widget2; -int status; -pid_t pid2; - - FORK(pid2); - avs_xt_hier("Tcrtwdgt5", "XtCreateWidget"); - tet_infoline("PREP: Register error message handler"); - XtAppSetErrorMsgHandler(app_ctext, XtEMH_Proc); - tet_infoline("TEST: Create composite widget"); - test_widget = XtCreateWidget( - "Composite", - avsCompWidgetClass, - topLevel, - (ArgList)NULL, - (Cardinal)0 - ); - tet_infoline("TEST: Create rect obj in it"); - test_widget2 = XtCreateWidget( - "RectObj", - avsrectObjClass, - test_widget, - (ArgList)NULL, - (Cardinal)0 - ); - KROF(pid2); - tet_infoline("TEST: Error handler was invoked"); - status = avs_get_event(1); - check_dec(1, status , "handler invocations count"); - tet_result(TET_PASS); ->>ASSERTION Good B 0 -A call to -Widget XtCreateWidget(name, object_class, parent, args, num_args) -when object_class is not coreWidgetClass or a subclass thereof, the class of -parent is a subclass of compositeWidgetClass, and the accepts_object -field in the parent's composite class part extension record is False shall -issue a fatal error. ->>ASSERTION Good A -A successful call to -Widget XtCreateWidget(name, object_class, parent, args, num_args) -shall perform the following actions in the order specified: - -- invoke the class_initialize procedure for the class object_class and - all superclasses for which this procedure has not been invoked prior to - this call, in a superclass-to-subclass order. - -- allocate memory for the widget instance. - -- if the parent belongs to the class constraintWidgetClass or a - subclass thereof, allocate memory for the constraints of parent - and store the address of this memory in the constraints field of the - widget instance structure. - -- initialize the Core non-resource data fields of the widget instance. - -- initialize the resource fields of the widget instance using the - CoreClassPart resource list specified for object_class and all superclasses, - overridden by the resource values specified in args. - -- if parent is a subclass of constraintWidgetClass, initialize the resource - fields of the constraints record from the constraint resource list specified - for the parent's class and all superclasses up to constraintWidgetClass, - overridden by the resource values specified in args. - -- call all the initialize procedures starting at Object on down to the - initialize procedure of the widget. - -- if parent is a member of compositeWidgetClass, call the insert_child - procedure of the parent. - -- if parent belongs to the class contraintWidgetClass or a subclass thereof, - call all the ConstraintClassPart initialize procedures starting at - constraintWidgetClass on down to the initialize procedure of the parent. ->>CODE -Boolean value_good; -char string[10]; -Widget squarew; -Dimension cell_height, cell_width; -Widget formw_good ; -Widget labelw_good; -Arg setargs[1]; -Boolean resizable; -pid_t pid2; -Widget widget_good; - - /*a combination of earlier tests, needs enhancement*/ - FORK(pid2); - avs_xt_hier("Tcrtwdgt3", "XtCreateWidget"); - tet_infoline("TEST: Create Square Cell widget"); - squarew = XtCreateWidget("squarew", - squareCellWidgetClass, - boxw1, - (ArgList)NULL, - (Cardinal)0); - tet_infoline("TEST: Check resource values"); - XtVaGetValues(squarew, - XavsNpixmapWidthInCells, &cell_width, - XavsNpixmapHeightInCells, &cell_height, - (char *)NULL); - check_dec(DEFAULT_PIXMAP_WIDTH, cell_width, XavsNpixmapWidthInCells); - check_dec(DEFAULT_PIXMAP_HEIGHT, cell_height, XavsNpixmapHeightInCells); - LKROF(pid2, AVSXTTIMEOUT-2); - FORK(pid2); - avs_xt_hier("Tcrtwdgt3", "XtCreateWidget"); - tet_infoline("TEST: Create formw_good widget subclass of constraintWidgetClass"); - formw_good = (Widget) CreateFormWidget(boxw1); - (void) CreateLabelWidget("failsafe widget", formw_good); - tet_infoline("PREP: Create labelw_good widget Hello"); - setargs[0].name = XtNresizable; - setargs[0].value = (XtArgVal) TRUE; - labelw_good = XtCreateWidget( - "Hello", - labelWidgetClass, - formw_good, - (ArgList)&setargs[0], - (Cardinal)1 - ); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Check XtNresizable resource value"); - XtVaGetValues(labelw_good, XtNresizable, &resizable, (char *)NULL); - check_dec(TRUE,resizable,XtNresizable); - LKROF(pid2, AVSXTTIMEOUT-2); - FORK(pid2); - avs_xt_hier("Tcrtwdgt4", "XtCreateWidget"); - tet_infoline("PREP: Create formw_good widget subclass of constraintWidgetClass"); - formw_good = (Widget) CreateFormWidget(boxw1); - (void) CreateLabelWidget("Failsafe widget", formw_good); - tet_infoline("TEST: Create labelw_good widget Hello"); - labelw_good = XtCreateWidget( - "Hello", - labelWidgetClass, - formw_good, - (ArgList)NULL, - (Cardinal)0 - ); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Labelw_good widget is child of formw widget"); - widget_good = (Widget)XtParent(labelw_good); - if (widget_good == NULL) { - tet_infoline("ERROR: Expected parent widget instance returned NULL"); - tet_result(TET_FAIL); - } - else - check_str("formw", XtName(widget_good), "Parent name"); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtCreateWindow.m b/xts5/Xt4/XtCreateWindow.m new file mode 100644 index 00000000..fedf27b7 --- /dev/null +++ b/xts5/Xt4/XtCreateWindow.m @@ -0,0 +1,742 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtCreateWindow.m +>># +>># Description: +>># Tests for XtCreateWindow() +>># +>># Modifications: +>># $Log: tcrwindow.m,v $ +>># Revision 1.1 2005-02-12 14:38:00 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:27 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:17 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:37 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:11 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:16 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:09 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; + +/* + * SquareCell.c - Square Widget + */ +#define INTERNAL_WIDTH 2 +#define INTERNAL_HEIGHT 4 +#define DEFAULT_PIXMAP_WIDTH 1 /* in cells */ +#define DEFAULT_PIXMAP_HEIGHT 1 /* in cells */ +#define DEFAULT_CELL_SIE 20 /* in pixels */ +/* values for instance variable is_drawn */ +#define DRAWN 1 +#define UNDRAWN 0 +/* modes for drawing */ +#define DRAW 1 +#define UNDRAW 0 +#define MAXLINES 10 /* max of horiz or vertical cells */ +#define SCROLLBARWIDTH 15 +#define DEFAULTWIDTH 300 /* widget size when show_all is False */ +#define offset(field) XtOffsetOf(SquareCellRec, field) +static XtResource resources[] = { + { + XtNforeground, + XtCForeground, + XtRPixel, + sizeof(Pixel), + offset(squareCell.foreground), + XtRString, + XtDefaultForeground + }, + { + XavsNtoggleCallback, + XavsCToggleCallback, + XtRCallback, + sizeof(XtPointer), + offset(squareCell.callback), + XtRCallback, + NULL + }, + { + XavsNcellSizeInPixels, + XavsCCellSizeInPixels, + XtRInt, sizeof(int), + offset(squareCell.cell_size_in_pixels), + XtRImmediate, + (XtPointer)DEFAULT_CELL_SIE + }, + { + XavsNpixmapWidthInCells, + XavsCPixmapWidthInCells, + XtRDimension, + sizeof(Dimension), + offset(squareCell.pixmap_width_in_cells), + XtRImmediate, + (XtPointer)DEFAULT_PIXMAP_WIDTH + }, + { + XavsNpixmapHeightInCells, + XavsCPixmapHeightInCells, + XtRDimension, + sizeof(Dimension), + offset(squareCell.pixmap_height_in_cells), + XtRImmediate, + (XtPointer)DEFAULT_PIXMAP_HEIGHT + }, + { + XavsNcurX, + XavsCCurX, + XtRInt, + sizeof(int), + offset(squareCell.cur_x), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNcurY, + XavsCCurY, + XtRInt, + sizeof(int), + offset(squareCell.cur_y), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNcellArray, + XavsCCellArray, + XtRString, + sizeof(String), + offset(squareCell.cell), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNshowEntireBitmap, + XavsCShowEntireBitmap, + XtRBoolean, + sizeof(Boolean), + offset(squareCell.show_all), + XtRImmediate, + (XtPointer) TRUE + }, +}; +/* Declaration of methods */ +static void Initialize(); +static void Redisplay(); +static void Destroy(); +static void Resize(); +static Boolean SetValues(); +static XtGeometryResult QueryGeometry(); +/* these Core methods not needed by SquareCell: + * + * static void ClassInitialize(); + */ +static void Realize(); +/* the following are private functions unique to SquareCell */ +static void DrawPixmaps(), DoCell(), ChangeCellSize(); +/* the following are actions of SquareCell */ +static void DrawCell(), UndrawCell(), ToggleCell(); +/* The following are public functions of SquareCell, declared extern + * in the public include file: */ +char *SquareCellGetArray(); +static char defaultTranslations[] = + ": DrawCell() \n\ + : UndrawCell() \n\ + : ToggleCell() \n\ + : DrawCell() \n\ + : UndrawCell() \n\ + : ToggleCell()"; +static XtActionsRec actions[] = { + {"DrawCell", DrawCell}, + {"UndrawCell", UndrawCell}, + {"ToggleCell", ToggleCell}, +}; +/* definition in SquareCell.h */ +static SquareCellPointInfo info; +SquareCellClassRec squareCellClassRec = { + { + /* core_class fields */ + /* superclass */ (WidgetClass) &coreClassRec, + /* class_name */ "SquareCell", + /* widget_size */ sizeof(SquareCellRec), + /* class_initialize */ NULL, + /* class_part_initialize */ NULL, + /* class_inited */ FALSE, + /* initialize */ Initialize, + /* initialize_hook */ NULL, + /* realize */ Realize, + /* actions */ actions, + /* num_actions */ XtNumber(actions), + /* resources */ resources, + /* num_resources */ XtNumber(resources), + /* xrm_class */ NULLQUARK, + /* compress_motion */ TRUE, + /* compress_exposure */ XtExposeCompressMultiple, + /* compress_enterleave */ TRUE, + /* visible_interest */ FALSE, + /* destroy */ Destroy, + /* resize */ Resize, + /* expose */ Redisplay, + /* set_values */ SetValues, + /* set_values_hook */ NULL, + /* set_values_almost */ XtInheritSetValuesAlmost, + /* get_values_hook */ NULL, + /* accept_focus */ NULL, + /* version */ XtVersion, + /* callback_private */ NULL, + /* tm_table */ defaultTranslations, + /* query_geometry */ QueryGeometry, + /* display_accelerator */ XtInheritDisplayAccelerator, + /* extension */ NULL + }, + {/* simple_class fields */ + /* change_sensitive */ XtInheritChangeSensitive, + }, + { + /* extension */ 0, + }, +}; +WidgetClass squareCellWidgetClass = (WidgetClass) & squareCellClassRec; +static void Realize(w, valueMask, attributes) + register Widget w; + Mask *valueMask; + XSetWindowAttributes *attributes; +{ + attributes->bit_gravity = NorthWestGravity; + *valueMask |= CWBitGravity; + XtCreateWindow( w, (unsigned)InputOutput, (Visual *)CopyFromParent, + *valueMask, attributes); +} /* Realize */ +static void +GetDrawGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground | GCDashOffset | + GCDashList | GCLineStyle; + /* + * Setting foreground and background to 1 and 0 looks like a + * kludge but isn't. This GC is used for drawing + * into a pixmap of depth one. Real colors are applied with a + * separate GC when the pixmap is copied into the window. + */ + values.foreground = 1; + values.background = 0; + values.dashes = 1; + values.dash_offset = 0; + values.line_style = LineOnOffDash; + cw->squareCell.draw_gc = XCreateGC(XtDisplay((Widget)cw), + cw->squareCell.big_picture, mask, &values); +} +static void +GetUndrawGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground; + /* this looks like a kludge but isn't. This GC is used for drawing + * into a pixmap of depth one. Real colors are applied as the + * pixmap is copied into the window. + */ + values.foreground = 0; + values.background = 1; + cw->squareCell.undraw_gc = XCreateGC(XtDisplay((Widget)cw), + cw->squareCell.big_picture, mask, &values); +} +static void +GetCopyGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground; + values.foreground = cw->squareCell.foreground; + values.background = cw->core.background_pixel; + cw->squareCell.copy_gc = XtGetGC((Widget)cw, mask, &values); +} +static void +Initialize(treq, tnew, args, num_args) +Widget treq, tnew; +ArgList args; +Cardinal *num_args; +{ + SquareCellWidget new = (SquareCellWidget) tnew; + new->squareCell.cur_x = 0; + new->squareCell.cur_y = 0; + /* + * Check instance values set by resources that may be invalid. + */ + if ((new->squareCell.pixmap_width_in_cells < 1) || + (new->squareCell.pixmap_height_in_cells < 1)) { + XtWarning("SquareCell: pixmapWidth and/or pixmapHeight is too small (using 10 x 10)."); + new->squareCell.pixmap_width_in_cells = 10; + new->squareCell.pixmap_height_in_cells = 10; + } + if (new->squareCell.cell_size_in_pixels < 5) { + XtWarning("SquareCell: cellSize is too small (using 5)."); + new->squareCell.cell_size_in_pixels = 5; + } + if ((new->squareCell.cur_x < 0) || (new->squareCell.cur_y < 0)) { + XtWarning("SquareCell: cur_x and cur_y must be non-negative (using 0, 0)."); + new->squareCell.cur_x = 0; + new->squareCell.cur_y = 0; + } + if (new->squareCell.cell == NULL) + new->squareCell.cell = XtCalloc( + new->squareCell.pixmap_width_in_cells * + new->squareCell.pixmap_height_in_cells, sizeof(char)); + else + new->squareCell.user_allocated = True; /* user supplied cell array */ + new->squareCell.pixmap_width_in_pixels = + new->squareCell.pixmap_width_in_cells * + new->squareCell.cell_size_in_pixels; + new->squareCell.pixmap_height_in_pixels = + new->squareCell.pixmap_height_in_cells * + new->squareCell.cell_size_in_pixels; + if (new->core.width == 0) { + if (new->squareCell.show_all == False) + new->core.width = (new->squareCell.pixmap_width_in_pixels + > DEFAULTWIDTH) ? DEFAULTWIDTH : + (new->squareCell.pixmap_width_in_pixels); + else + new->core.width = new->squareCell.pixmap_width_in_pixels; + } + if (new->core.height == 0) { + if (new->squareCell.show_all == False) + new->core.height = + (new->squareCell.pixmap_height_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + (new->squareCell.pixmap_height_in_pixels); + else + new->core.height = new->squareCell.pixmap_height_in_pixels; + } + CreateBigPixmap(new); + GetDrawGC(new); + GetUndrawGC(new); + GetCopyGC(new); + DrawIntoBigPixmap(new); +} +static void +Redisplay(w, event) +Widget w; +XExposeEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + register int x, y; + unsigned int width, height; + if (!XtIsRealized((Widget)cw)) + return; + if (event) { /* called from btn-event or expose */ + x = event->x; + y = event->y; + width = event->width; + height = event->height; + } + else { /* called because complete redraw */ + x = 0; + y = 0; + width = cw->squareCell.pixmap_width_in_pixels; + height = cw->squareCell.pixmap_height_in_pixels; + } + if (DefaultDepthOfScreen(XtScreen((Widget)cw)) == 1) + XCopyArea(XtDisplay((Widget)cw), cw->squareCell.big_picture, + XtWindow((Widget)cw), cw->squareCell.copy_gc, x + + cw->squareCell.cur_x, y + cw->squareCell.cur_y, + width, height, x, y); + else + XCopyPlane(XtDisplay((Widget)cw), cw->squareCell.big_picture, + XtWindow((Widget)cw), cw->squareCell.copy_gc, x + + cw->squareCell.cur_x, y + cw->squareCell.cur_y, + width, height, x, y, 1); +} +static Boolean +SetValues(current, request, new, args, num_args) +Widget current, request, new; +ArgList args; +Cardinal *num_args; +{ + SquareCellWidget curcw = (SquareCellWidget) current; + SquareCellWidget newcw = (SquareCellWidget) new; + Boolean do_redisplay = False; + /* + ** XtSetValues invoked procedure SetValues + */ + if (curcw->squareCell.foreground != newcw->squareCell.foreground) { + XtReleaseGC((Widget)curcw, curcw->squareCell.copy_gc); + GetCopyGC(newcw); + do_redisplay = True; + } + if ((curcw->squareCell.cur_x != newcw->squareCell.cur_x) || + (curcw->squareCell.cur_y != newcw->squareCell.cur_y)) + do_redisplay = True; + if (curcw->squareCell.cell_size_in_pixels != + newcw->squareCell.cell_size_in_pixels) { + ChangeCellSize(curcw, newcw->squareCell.cell_size_in_pixels); + do_redisplay = True; + } + if (curcw->squareCell.pixmap_width_in_cells != + newcw->squareCell.pixmap_width_in_cells) { + newcw->squareCell.pixmap_width_in_cells = + curcw->squareCell.pixmap_width_in_cells; + XtWarning("SquareCell: pixmap_width_in_cells cannot be set by XtSetValues.\n"); + } + if (curcw->squareCell.pixmap_height_in_cells != + newcw->squareCell.pixmap_height_in_cells) { + newcw->squareCell.pixmap_height_in_cells = + curcw->squareCell.pixmap_height_in_cells; + XtWarning("SquareCell: pixmap_height_in_cells cannot be set by XtSetValues.\n"); + } + return do_redisplay; +} +static void +Destroy(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + if (cw->squareCell.big_picture) + XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); + if (cw->squareCell.draw_gc) + XFreeGC(XtDisplay(cw), cw->squareCell.draw_gc); + if (cw->squareCell.undraw_gc) + XFreeGC(XtDisplay(cw), cw->squareCell.undraw_gc); + if (cw->squareCell.copy_gc) + XFreeGC(XtDisplay(cw), cw->squareCell.copy_gc); + /* Free memory allocated with Calloc. This was done + * only if application didn't supply cell array. + */ + if (!cw->squareCell.user_allocated) + XtFree(cw->squareCell.cell); +} +static void +DrawCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + DrawPixmaps(cw->squareCell.draw_gc, DRAW, cw, event); +} +static void +UndrawCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + DrawPixmaps(cw->squareCell.undraw_gc, UNDRAW, cw, event); +} +static void +ToggleCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + static int oldx = -1, oldy = -1; + GC gc; + int mode; + int newx, newy; + /* This is strictly correct, but doesn't + * seem to be necessary */ + if (event->type == ButtonPress) { + newx = (cw->squareCell.cur_x + ((XButtonEvent *)event)->x) / + cw->squareCell.cell_size_in_pixels; + newy = (cw->squareCell.cur_y + ((XButtonEvent *)event)->y) / + cw->squareCell.cell_size_in_pixels; + } + else { + newx = (cw->squareCell.cur_x + ((XMotionEvent *)event)->x) / + cw->squareCell.cell_size_in_pixels; + newy = (cw->squareCell.cur_y + ((XMotionEvent *)event)->y) / + cw->squareCell.cell_size_in_pixels; + } + if ((mode = cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells]) == DRAWN) { + gc = cw->squareCell.undraw_gc; + mode = UNDRAW; + } + else { + gc = cw->squareCell.draw_gc; + mode = DRAW; + } + if (oldx != newx || oldy != newy) { + oldx = newx; + oldy = newy; + DrawPixmaps(gc, mode, cw, event); + } +} +static void +DrawPixmaps(gc, mode, w, event) +GC gc; +int mode; +Widget w; +XButtonEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int newx = (cw->squareCell.cur_x + event->x) / + cw->squareCell.cell_size_in_pixels; + int newy = (cw->squareCell.cur_y + event->y) / + cw->squareCell.cell_size_in_pixels; + XExposeEvent fake_event; + /* if already done, return */ + if (cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] == mode) + return; + /* otherwise, draw or undraw */ + XFillRectangle(XtDisplay((Widget)cw), cw->squareCell.big_picture, gc, + cw->squareCell.cell_size_in_pixels*newx + 2, + cw->squareCell.cell_size_in_pixels*newy + 2, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3); + cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] = mode; + info.mode = mode; + info.newx = newx; + info.newy = newy; + fake_event.x = cw->squareCell.cell_size_in_pixels * newx - cw->squareCell.cur_x; + fake_event.y = cw->squareCell.cell_size_in_pixels * newy - cw->squareCell.cur_y; + fake_event.width = cw->squareCell.cell_size_in_pixels; + fake_event.height = cw->squareCell.cell_size_in_pixels; + Redisplay(cw, &fake_event); + XtCallCallbacks((Widget)cw, XavsNtoggleCallback, &info); +} +CreateBigPixmap(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* always a 1 bit deep pixmap, regardless of screen depth */ + cw->squareCell.big_picture = XCreatePixmap(XtDisplay(cw), + RootWindow(XtDisplay(cw), DefaultScreen(XtDisplay(cw))), + cw->squareCell.pixmap_width_in_pixels + 2, + cw->squareCell.pixmap_height_in_pixels + 2, 1); +} +DrawIntoBigPixmap(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int n_horiz_segments, n_vert_segments; + XSegment segment[MAXLINES]; + register int x, y; + XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, + cw->squareCell.undraw_gc, 0, 0, + cw->squareCell.pixmap_width_in_pixels + + 2, cw->squareCell.pixmap_height_in_pixels + 2); + n_horiz_segments = cw->squareCell.pixmap_height_in_cells + 1; + n_vert_segments = cw->squareCell.pixmap_width_in_cells + 1; + for (x = 0; x < n_horiz_segments; x++) { + segment[x].x1 = 0; + segment[x].x2 = (short) cw->squareCell.pixmap_width_in_pixels; + segment[x].y1 = (short) cw->squareCell.cell_size_in_pixels * x; + segment[x].y2 = (short) cw->squareCell.cell_size_in_pixels * x; + } + XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_horiz_segments); + for (y = 0; y < n_vert_segments; y++) { + segment[y].x1 = (short) y * cw->squareCell.cell_size_in_pixels; + segment[y].x2 = (short) y * cw->squareCell.cell_size_in_pixels; + segment[y].y1 = 0; + segment[y].y2 = (short) cw->squareCell.pixmap_height_in_pixels; + } + XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_vert_segments); + /* draw current cell array into pixmap */ + for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { + for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { + if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) + DoCell(cw, x, y, cw->squareCell.draw_gc); + else + DoCell(cw, x, y, cw->squareCell.undraw_gc); + } + } +} +/* A Public function, not static */ +char * +SquareCellGetArray(w, width_in_cells, height_in_cells) +Widget w; +int *width_in_cells, *height_in_cells; +{ + SquareCellWidget cw = (SquareCellWidget) w; + *width_in_cells = cw->squareCell.pixmap_width_in_cells; + *height_in_cells = cw->squareCell.pixmap_height_in_cells; + return (cw->squareCell.cell); +} +static void +Resize(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* resize does nothing unless new size is bigger than entire pixmap */ + if ((cw->core.width > cw->squareCell.pixmap_width_in_pixels) && + (cw->core.height > cw->squareCell.pixmap_height_in_pixels)) { + /* + * Calculate the maximum cell size that will allow the + * entire bitmap to be displayed. + */ + Dimension w_temp_cell_size_in_pixels, h_temp_cell_size_in_pixels; + Dimension new_cell_size_in_pixels; + + w_temp_cell_size_in_pixels = cw->core.width / cw->squareCell.pixmap_width_in_cells; + h_temp_cell_size_in_pixels = cw->core.height / cw->squareCell.pixmap_height_in_cells; + + if (w_temp_cell_size_in_pixels < h_temp_cell_size_in_pixels) + new_cell_size_in_pixels = w_temp_cell_size_in_pixels; + else + new_cell_size_in_pixels = h_temp_cell_size_in_pixels; + + /* if size change mandates a new pixmap, make one */ + if (new_cell_size_in_pixels != cw->squareCell.cell_size_in_pixels) + ChangeCellSize(cw, new_cell_size_in_pixels); + } +} +static void +ChangeCellSize(w, new_cell_size) +Widget w; +int new_cell_size; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int x, y; + cw->squareCell.cell_size_in_pixels = new_cell_size; + /* recalculate variables based on cell size */ + cw->squareCell.pixmap_width_in_pixels = + cw->squareCell.pixmap_width_in_cells * + cw->squareCell.cell_size_in_pixels; + cw->squareCell.pixmap_height_in_pixels = + cw->squareCell.pixmap_height_in_cells * + cw->squareCell.cell_size_in_pixels; + + /* destroy old and create new pixmap of correct size */ + XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); + CreateBigPixmap(cw); + + /* draw lines into new pixmap */ + DrawIntoBigPixmap(cw); + + /* draw current cell array into pixmap */ + for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { + for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { + if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) + DoCell(cw, x, y, cw->squareCell.draw_gc); + else + DoCell(cw, x, y, cw->squareCell.undraw_gc); + } + } +} +static void +DoCell(w, x, y, gc) +Widget w; +int x, y; +GC gc; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* otherwise, draw or undraw */ + XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, + cw->squareCell.cell_size_in_pixels * x + 2, + cw->squareCell.cell_size_in_pixels * y + 2, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3); +} +static XtGeometryResult QueryGeometry(w, proposed, answer) +Widget w; +XtWidgetGeometry *proposed, *answer; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* set fields we care about */ + answer->request_mode = CWWidth | CWHeight; + /* initial width and height */ + if (cw->squareCell.show_all == True) + answer->width = cw->squareCell.pixmap_width_in_pixels; + else + answer->width = (cw->squareCell.pixmap_width_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + cw->squareCell.pixmap_width_in_pixels; + if (cw->squareCell.show_all == True) + answer->height = cw->squareCell.pixmap_height_in_pixels; + else + answer->height = (cw->squareCell.pixmap_height_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + cw->squareCell.pixmap_height_in_pixels; + if ( ((proposed->request_mode & (CWWidth | CWHeight)) + == (CWWidth | CWHeight)) && + proposed->width == answer->width && + proposed->height == answer->height) + return XtGeometryYes; + else if (answer->width == cw->core.width && + answer->height == cw->core.height) + return XtGeometryNo; + else + return XtGeometryAlmost; +} +>>TITLE XtCreateWindow Xt4 +void +XtCreateWindow(w, window_class, visual, value_mask, attributes) +>>ASSERTION Good A +A call to void XtCreateWindow(w, window_class, visual, value_mask, attributes) +shall create a window for the widget w using the attributes specified in +attributes, the colormap specified in the visual parameter, and assign the +newly created window to the window field of the widget instance structure. +>>CODE +Widget squarew; +int status; +Display *display; +Widget widget; +Window window; + + avs_xt_hier("Tcrwindow1", "XtCreateWindow"); + /* + ** Realize procedure creates window with XtCreateWindow() + ** call. + */ + tet_infoline("PREP: Invoke Realize and create widget's working window."); + squarew = XtVaCreateManagedWidget("squarew", + squareCellWidgetClass, boxw1, NULL); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Check window id is valid."); + window = XtWindow(squarew); + if (window <= 0) { + sprintf(ebuf, "ERROR: Expected valid window id Returned %d", window); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Window id is that of squarew widget"); + display = XtDisplay(squarew); + widget = XtWindowToWidget(display, window); + check_str("squarew", XtName(widget), "Widget name"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtCreateWindow/XtCreateWindow.m b/xts5/Xt4/XtCreateWindow/XtCreateWindow.m deleted file mode 100644 index af58f95b..00000000 --- a/xts5/Xt4/XtCreateWindow/XtCreateWindow.m +++ /dev/null @@ -1,742 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtCreateWindow/XtCreateWindow.m ->># ->># Description: ->># Tests for XtCreateWindow() ->># ->># Modifications: ->># $Log: tcrwindow.m,v $ ->># Revision 1.1 2005-02-12 14:38:00 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:27 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:17 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:37 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:11 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:16 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:09 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; - -/* - * SquareCell.c - Square Widget - */ -#define INTERNAL_WIDTH 2 -#define INTERNAL_HEIGHT 4 -#define DEFAULT_PIXMAP_WIDTH 1 /* in cells */ -#define DEFAULT_PIXMAP_HEIGHT 1 /* in cells */ -#define DEFAULT_CELL_SIE 20 /* in pixels */ -/* values for instance variable is_drawn */ -#define DRAWN 1 -#define UNDRAWN 0 -/* modes for drawing */ -#define DRAW 1 -#define UNDRAW 0 -#define MAXLINES 10 /* max of horiz or vertical cells */ -#define SCROLLBARWIDTH 15 -#define DEFAULTWIDTH 300 /* widget size when show_all is False */ -#define offset(field) XtOffsetOf(SquareCellRec, field) -static XtResource resources[] = { - { - XtNforeground, - XtCForeground, - XtRPixel, - sizeof(Pixel), - offset(squareCell.foreground), - XtRString, - XtDefaultForeground - }, - { - XavsNtoggleCallback, - XavsCToggleCallback, - XtRCallback, - sizeof(XtPointer), - offset(squareCell.callback), - XtRCallback, - NULL - }, - { - XavsNcellSizeInPixels, - XavsCCellSizeInPixels, - XtRInt, sizeof(int), - offset(squareCell.cell_size_in_pixels), - XtRImmediate, - (XtPointer)DEFAULT_CELL_SIE - }, - { - XavsNpixmapWidthInCells, - XavsCPixmapWidthInCells, - XtRDimension, - sizeof(Dimension), - offset(squareCell.pixmap_width_in_cells), - XtRImmediate, - (XtPointer)DEFAULT_PIXMAP_WIDTH - }, - { - XavsNpixmapHeightInCells, - XavsCPixmapHeightInCells, - XtRDimension, - sizeof(Dimension), - offset(squareCell.pixmap_height_in_cells), - XtRImmediate, - (XtPointer)DEFAULT_PIXMAP_HEIGHT - }, - { - XavsNcurX, - XavsCCurX, - XtRInt, - sizeof(int), - offset(squareCell.cur_x), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNcurY, - XavsCCurY, - XtRInt, - sizeof(int), - offset(squareCell.cur_y), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNcellArray, - XavsCCellArray, - XtRString, - sizeof(String), - offset(squareCell.cell), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNshowEntireBitmap, - XavsCShowEntireBitmap, - XtRBoolean, - sizeof(Boolean), - offset(squareCell.show_all), - XtRImmediate, - (XtPointer) TRUE - }, -}; -/* Declaration of methods */ -static void Initialize(); -static void Redisplay(); -static void Destroy(); -static void Resize(); -static Boolean SetValues(); -static XtGeometryResult QueryGeometry(); -/* these Core methods not needed by SquareCell: - * - * static void ClassInitialize(); - */ -static void Realize(); -/* the following are private functions unique to SquareCell */ -static void DrawPixmaps(), DoCell(), ChangeCellSize(); -/* the following are actions of SquareCell */ -static void DrawCell(), UndrawCell(), ToggleCell(); -/* The following are public functions of SquareCell, declared extern - * in the public include file: */ -char *SquareCellGetArray(); -static char defaultTranslations[] = - ": DrawCell() \n\ - : UndrawCell() \n\ - : ToggleCell() \n\ - : DrawCell() \n\ - : UndrawCell() \n\ - : ToggleCell()"; -static XtActionsRec actions[] = { - {"DrawCell", DrawCell}, - {"UndrawCell", UndrawCell}, - {"ToggleCell", ToggleCell}, -}; -/* definition in SquareCell.h */ -static SquareCellPointInfo info; -SquareCellClassRec squareCellClassRec = { - { - /* core_class fields */ - /* superclass */ (WidgetClass) &coreClassRec, - /* class_name */ "SquareCell", - /* widget_size */ sizeof(SquareCellRec), - /* class_initialize */ NULL, - /* class_part_initialize */ NULL, - /* class_inited */ FALSE, - /* initialize */ Initialize, - /* initialize_hook */ NULL, - /* realize */ Realize, - /* actions */ actions, - /* num_actions */ XtNumber(actions), - /* resources */ resources, - /* num_resources */ XtNumber(resources), - /* xrm_class */ NULLQUARK, - /* compress_motion */ TRUE, - /* compress_exposure */ XtExposeCompressMultiple, - /* compress_enterleave */ TRUE, - /* visible_interest */ FALSE, - /* destroy */ Destroy, - /* resize */ Resize, - /* expose */ Redisplay, - /* set_values */ SetValues, - /* set_values_hook */ NULL, - /* set_values_almost */ XtInheritSetValuesAlmost, - /* get_values_hook */ NULL, - /* accept_focus */ NULL, - /* version */ XtVersion, - /* callback_private */ NULL, - /* tm_table */ defaultTranslations, - /* query_geometry */ QueryGeometry, - /* display_accelerator */ XtInheritDisplayAccelerator, - /* extension */ NULL - }, - {/* simple_class fields */ - /* change_sensitive */ XtInheritChangeSensitive, - }, - { - /* extension */ 0, - }, -}; -WidgetClass squareCellWidgetClass = (WidgetClass) & squareCellClassRec; -static void Realize(w, valueMask, attributes) - register Widget w; - Mask *valueMask; - XSetWindowAttributes *attributes; -{ - attributes->bit_gravity = NorthWestGravity; - *valueMask |= CWBitGravity; - XtCreateWindow( w, (unsigned)InputOutput, (Visual *)CopyFromParent, - *valueMask, attributes); -} /* Realize */ -static void -GetDrawGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground | GCDashOffset | - GCDashList | GCLineStyle; - /* - * Setting foreground and background to 1 and 0 looks like a - * kludge but isn't. This GC is used for drawing - * into a pixmap of depth one. Real colors are applied with a - * separate GC when the pixmap is copied into the window. - */ - values.foreground = 1; - values.background = 0; - values.dashes = 1; - values.dash_offset = 0; - values.line_style = LineOnOffDash; - cw->squareCell.draw_gc = XCreateGC(XtDisplay((Widget)cw), - cw->squareCell.big_picture, mask, &values); -} -static void -GetUndrawGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground; - /* this looks like a kludge but isn't. This GC is used for drawing - * into a pixmap of depth one. Real colors are applied as the - * pixmap is copied into the window. - */ - values.foreground = 0; - values.background = 1; - cw->squareCell.undraw_gc = XCreateGC(XtDisplay((Widget)cw), - cw->squareCell.big_picture, mask, &values); -} -static void -GetCopyGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground; - values.foreground = cw->squareCell.foreground; - values.background = cw->core.background_pixel; - cw->squareCell.copy_gc = XtGetGC((Widget)cw, mask, &values); -} -static void -Initialize(treq, tnew, args, num_args) -Widget treq, tnew; -ArgList args; -Cardinal *num_args; -{ - SquareCellWidget new = (SquareCellWidget) tnew; - new->squareCell.cur_x = 0; - new->squareCell.cur_y = 0; - /* - * Check instance values set by resources that may be invalid. - */ - if ((new->squareCell.pixmap_width_in_cells < 1) || - (new->squareCell.pixmap_height_in_cells < 1)) { - XtWarning("SquareCell: pixmapWidth and/or pixmapHeight is too small (using 10 x 10)."); - new->squareCell.pixmap_width_in_cells = 10; - new->squareCell.pixmap_height_in_cells = 10; - } - if (new->squareCell.cell_size_in_pixels < 5) { - XtWarning("SquareCell: cellSize is too small (using 5)."); - new->squareCell.cell_size_in_pixels = 5; - } - if ((new->squareCell.cur_x < 0) || (new->squareCell.cur_y < 0)) { - XtWarning("SquareCell: cur_x and cur_y must be non-negative (using 0, 0)."); - new->squareCell.cur_x = 0; - new->squareCell.cur_y = 0; - } - if (new->squareCell.cell == NULL) - new->squareCell.cell = XtCalloc( - new->squareCell.pixmap_width_in_cells * - new->squareCell.pixmap_height_in_cells, sizeof(char)); - else - new->squareCell.user_allocated = True; /* user supplied cell array */ - new->squareCell.pixmap_width_in_pixels = - new->squareCell.pixmap_width_in_cells * - new->squareCell.cell_size_in_pixels; - new->squareCell.pixmap_height_in_pixels = - new->squareCell.pixmap_height_in_cells * - new->squareCell.cell_size_in_pixels; - if (new->core.width == 0) { - if (new->squareCell.show_all == False) - new->core.width = (new->squareCell.pixmap_width_in_pixels - > DEFAULTWIDTH) ? DEFAULTWIDTH : - (new->squareCell.pixmap_width_in_pixels); - else - new->core.width = new->squareCell.pixmap_width_in_pixels; - } - if (new->core.height == 0) { - if (new->squareCell.show_all == False) - new->core.height = - (new->squareCell.pixmap_height_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - (new->squareCell.pixmap_height_in_pixels); - else - new->core.height = new->squareCell.pixmap_height_in_pixels; - } - CreateBigPixmap(new); - GetDrawGC(new); - GetUndrawGC(new); - GetCopyGC(new); - DrawIntoBigPixmap(new); -} -static void -Redisplay(w, event) -Widget w; -XExposeEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - register int x, y; - unsigned int width, height; - if (!XtIsRealized((Widget)cw)) - return; - if (event) { /* called from btn-event or expose */ - x = event->x; - y = event->y; - width = event->width; - height = event->height; - } - else { /* called because complete redraw */ - x = 0; - y = 0; - width = cw->squareCell.pixmap_width_in_pixels; - height = cw->squareCell.pixmap_height_in_pixels; - } - if (DefaultDepthOfScreen(XtScreen((Widget)cw)) == 1) - XCopyArea(XtDisplay((Widget)cw), cw->squareCell.big_picture, - XtWindow((Widget)cw), cw->squareCell.copy_gc, x + - cw->squareCell.cur_x, y + cw->squareCell.cur_y, - width, height, x, y); - else - XCopyPlane(XtDisplay((Widget)cw), cw->squareCell.big_picture, - XtWindow((Widget)cw), cw->squareCell.copy_gc, x + - cw->squareCell.cur_x, y + cw->squareCell.cur_y, - width, height, x, y, 1); -} -static Boolean -SetValues(current, request, new, args, num_args) -Widget current, request, new; -ArgList args; -Cardinal *num_args; -{ - SquareCellWidget curcw = (SquareCellWidget) current; - SquareCellWidget newcw = (SquareCellWidget) new; - Boolean do_redisplay = False; - /* - ** XtSetValues invoked procedure SetValues - */ - if (curcw->squareCell.foreground != newcw->squareCell.foreground) { - XtReleaseGC((Widget)curcw, curcw->squareCell.copy_gc); - GetCopyGC(newcw); - do_redisplay = True; - } - if ((curcw->squareCell.cur_x != newcw->squareCell.cur_x) || - (curcw->squareCell.cur_y != newcw->squareCell.cur_y)) - do_redisplay = True; - if (curcw->squareCell.cell_size_in_pixels != - newcw->squareCell.cell_size_in_pixels) { - ChangeCellSize(curcw, newcw->squareCell.cell_size_in_pixels); - do_redisplay = True; - } - if (curcw->squareCell.pixmap_width_in_cells != - newcw->squareCell.pixmap_width_in_cells) { - newcw->squareCell.pixmap_width_in_cells = - curcw->squareCell.pixmap_width_in_cells; - XtWarning("SquareCell: pixmap_width_in_cells cannot be set by XtSetValues.\n"); - } - if (curcw->squareCell.pixmap_height_in_cells != - newcw->squareCell.pixmap_height_in_cells) { - newcw->squareCell.pixmap_height_in_cells = - curcw->squareCell.pixmap_height_in_cells; - XtWarning("SquareCell: pixmap_height_in_cells cannot be set by XtSetValues.\n"); - } - return do_redisplay; -} -static void -Destroy(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - if (cw->squareCell.big_picture) - XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); - if (cw->squareCell.draw_gc) - XFreeGC(XtDisplay(cw), cw->squareCell.draw_gc); - if (cw->squareCell.undraw_gc) - XFreeGC(XtDisplay(cw), cw->squareCell.undraw_gc); - if (cw->squareCell.copy_gc) - XFreeGC(XtDisplay(cw), cw->squareCell.copy_gc); - /* Free memory allocated with Calloc. This was done - * only if application didn't supply cell array. - */ - if (!cw->squareCell.user_allocated) - XtFree(cw->squareCell.cell); -} -static void -DrawCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - DrawPixmaps(cw->squareCell.draw_gc, DRAW, cw, event); -} -static void -UndrawCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - DrawPixmaps(cw->squareCell.undraw_gc, UNDRAW, cw, event); -} -static void -ToggleCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - static int oldx = -1, oldy = -1; - GC gc; - int mode; - int newx, newy; - /* This is strictly correct, but doesn't - * seem to be necessary */ - if (event->type == ButtonPress) { - newx = (cw->squareCell.cur_x + ((XButtonEvent *)event)->x) / - cw->squareCell.cell_size_in_pixels; - newy = (cw->squareCell.cur_y + ((XButtonEvent *)event)->y) / - cw->squareCell.cell_size_in_pixels; - } - else { - newx = (cw->squareCell.cur_x + ((XMotionEvent *)event)->x) / - cw->squareCell.cell_size_in_pixels; - newy = (cw->squareCell.cur_y + ((XMotionEvent *)event)->y) / - cw->squareCell.cell_size_in_pixels; - } - if ((mode = cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells]) == DRAWN) { - gc = cw->squareCell.undraw_gc; - mode = UNDRAW; - } - else { - gc = cw->squareCell.draw_gc; - mode = DRAW; - } - if (oldx != newx || oldy != newy) { - oldx = newx; - oldy = newy; - DrawPixmaps(gc, mode, cw, event); - } -} -static void -DrawPixmaps(gc, mode, w, event) -GC gc; -int mode; -Widget w; -XButtonEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int newx = (cw->squareCell.cur_x + event->x) / - cw->squareCell.cell_size_in_pixels; - int newy = (cw->squareCell.cur_y + event->y) / - cw->squareCell.cell_size_in_pixels; - XExposeEvent fake_event; - /* if already done, return */ - if (cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] == mode) - return; - /* otherwise, draw or undraw */ - XFillRectangle(XtDisplay((Widget)cw), cw->squareCell.big_picture, gc, - cw->squareCell.cell_size_in_pixels*newx + 2, - cw->squareCell.cell_size_in_pixels*newy + 2, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3); - cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] = mode; - info.mode = mode; - info.newx = newx; - info.newy = newy; - fake_event.x = cw->squareCell.cell_size_in_pixels * newx - cw->squareCell.cur_x; - fake_event.y = cw->squareCell.cell_size_in_pixels * newy - cw->squareCell.cur_y; - fake_event.width = cw->squareCell.cell_size_in_pixels; - fake_event.height = cw->squareCell.cell_size_in_pixels; - Redisplay(cw, &fake_event); - XtCallCallbacks((Widget)cw, XavsNtoggleCallback, &info); -} -CreateBigPixmap(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* always a 1 bit deep pixmap, regardless of screen depth */ - cw->squareCell.big_picture = XCreatePixmap(XtDisplay(cw), - RootWindow(XtDisplay(cw), DefaultScreen(XtDisplay(cw))), - cw->squareCell.pixmap_width_in_pixels + 2, - cw->squareCell.pixmap_height_in_pixels + 2, 1); -} -DrawIntoBigPixmap(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int n_horiz_segments, n_vert_segments; - XSegment segment[MAXLINES]; - register int x, y; - XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, - cw->squareCell.undraw_gc, 0, 0, - cw->squareCell.pixmap_width_in_pixels - + 2, cw->squareCell.pixmap_height_in_pixels + 2); - n_horiz_segments = cw->squareCell.pixmap_height_in_cells + 1; - n_vert_segments = cw->squareCell.pixmap_width_in_cells + 1; - for (x = 0; x < n_horiz_segments; x++) { - segment[x].x1 = 0; - segment[x].x2 = (short) cw->squareCell.pixmap_width_in_pixels; - segment[x].y1 = (short) cw->squareCell.cell_size_in_pixels * x; - segment[x].y2 = (short) cw->squareCell.cell_size_in_pixels * x; - } - XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_horiz_segments); - for (y = 0; y < n_vert_segments; y++) { - segment[y].x1 = (short) y * cw->squareCell.cell_size_in_pixels; - segment[y].x2 = (short) y * cw->squareCell.cell_size_in_pixels; - segment[y].y1 = 0; - segment[y].y2 = (short) cw->squareCell.pixmap_height_in_pixels; - } - XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_vert_segments); - /* draw current cell array into pixmap */ - for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { - for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { - if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) - DoCell(cw, x, y, cw->squareCell.draw_gc); - else - DoCell(cw, x, y, cw->squareCell.undraw_gc); - } - } -} -/* A Public function, not static */ -char * -SquareCellGetArray(w, width_in_cells, height_in_cells) -Widget w; -int *width_in_cells, *height_in_cells; -{ - SquareCellWidget cw = (SquareCellWidget) w; - *width_in_cells = cw->squareCell.pixmap_width_in_cells; - *height_in_cells = cw->squareCell.pixmap_height_in_cells; - return (cw->squareCell.cell); -} -static void -Resize(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* resize does nothing unless new size is bigger than entire pixmap */ - if ((cw->core.width > cw->squareCell.pixmap_width_in_pixels) && - (cw->core.height > cw->squareCell.pixmap_height_in_pixels)) { - /* - * Calculate the maximum cell size that will allow the - * entire bitmap to be displayed. - */ - Dimension w_temp_cell_size_in_pixels, h_temp_cell_size_in_pixels; - Dimension new_cell_size_in_pixels; - - w_temp_cell_size_in_pixels = cw->core.width / cw->squareCell.pixmap_width_in_cells; - h_temp_cell_size_in_pixels = cw->core.height / cw->squareCell.pixmap_height_in_cells; - - if (w_temp_cell_size_in_pixels < h_temp_cell_size_in_pixels) - new_cell_size_in_pixels = w_temp_cell_size_in_pixels; - else - new_cell_size_in_pixels = h_temp_cell_size_in_pixels; - - /* if size change mandates a new pixmap, make one */ - if (new_cell_size_in_pixels != cw->squareCell.cell_size_in_pixels) - ChangeCellSize(cw, new_cell_size_in_pixels); - } -} -static void -ChangeCellSize(w, new_cell_size) -Widget w; -int new_cell_size; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int x, y; - cw->squareCell.cell_size_in_pixels = new_cell_size; - /* recalculate variables based on cell size */ - cw->squareCell.pixmap_width_in_pixels = - cw->squareCell.pixmap_width_in_cells * - cw->squareCell.cell_size_in_pixels; - cw->squareCell.pixmap_height_in_pixels = - cw->squareCell.pixmap_height_in_cells * - cw->squareCell.cell_size_in_pixels; - - /* destroy old and create new pixmap of correct size */ - XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); - CreateBigPixmap(cw); - - /* draw lines into new pixmap */ - DrawIntoBigPixmap(cw); - - /* draw current cell array into pixmap */ - for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { - for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { - if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) - DoCell(cw, x, y, cw->squareCell.draw_gc); - else - DoCell(cw, x, y, cw->squareCell.undraw_gc); - } - } -} -static void -DoCell(w, x, y, gc) -Widget w; -int x, y; -GC gc; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* otherwise, draw or undraw */ - XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, - cw->squareCell.cell_size_in_pixels * x + 2, - cw->squareCell.cell_size_in_pixels * y + 2, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3); -} -static XtGeometryResult QueryGeometry(w, proposed, answer) -Widget w; -XtWidgetGeometry *proposed, *answer; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* set fields we care about */ - answer->request_mode = CWWidth | CWHeight; - /* initial width and height */ - if (cw->squareCell.show_all == True) - answer->width = cw->squareCell.pixmap_width_in_pixels; - else - answer->width = (cw->squareCell.pixmap_width_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - cw->squareCell.pixmap_width_in_pixels; - if (cw->squareCell.show_all == True) - answer->height = cw->squareCell.pixmap_height_in_pixels; - else - answer->height = (cw->squareCell.pixmap_height_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - cw->squareCell.pixmap_height_in_pixels; - if ( ((proposed->request_mode & (CWWidth | CWHeight)) - == (CWWidth | CWHeight)) && - proposed->width == answer->width && - proposed->height == answer->height) - return XtGeometryYes; - else if (answer->width == cw->core.width && - answer->height == cw->core.height) - return XtGeometryNo; - else - return XtGeometryAlmost; -} ->>TITLE XtCreateWindow Xt4 -void -XtCreateWindow(w, window_class, visual, value_mask, attributes) ->>ASSERTION Good A -A call to void XtCreateWindow(w, window_class, visual, value_mask, attributes) -shall create a window for the widget w using the attributes specified in -attributes, the colormap specified in the visual parameter, and assign the -newly created window to the window field of the widget instance structure. ->>CODE -Widget squarew; -int status; -Display *display; -Widget widget; -Window window; - - avs_xt_hier("Tcrwindow1", "XtCreateWindow"); - /* - ** Realize procedure creates window with XtCreateWindow() - ** call. - */ - tet_infoline("PREP: Invoke Realize and create widget's working window."); - squarew = XtVaCreateManagedWidget("squarew", - squareCellWidgetClass, boxw1, NULL); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Check window id is valid."); - window = XtWindow(squarew); - if (window <= 0) { - sprintf(ebuf, "ERROR: Expected valid window id Returned %d", window); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Window id is that of squarew widget"); - display = XtDisplay(squarew); - widget = XtWindowToWidget(display, window); - check_str("squarew", XtName(widget), "Widget name"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtDatabase.m b/xts5/Xt4/XtDatabase.m new file mode 100644 index 00000000..b11e25a6 --- /dev/null +++ b/xts5/Xt4/XtDatabase.m @@ -0,0 +1,147 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtDatabase.m +>># +>># Description: +>># Tests for XtDatabase() +>># +>># Modifications: +>># $Log: tdtbs.m,v $ +>># Revision 1.1 2005-02-12 14:38:02 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:20 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:10 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.1 1998/06/23 22:47:15 andy +>># Added sleep(XT_RESET_DELAY) to each test. SR# 186. +>># +>># Revision 6.0 1998/03/02 05:27:31 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:05 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:53 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:38 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtDatabase Xt4 +XrmDatabase +XtDatabase(display) +>>ASSERTION Good A +A call to XrmDatabase XtDatabase(display) shall return the default +resource database associated with display. +>>CODE +Display *display; +Widget labelw_good; +XrmDatabase database; +char *str_type; +int argcount = 0; +XrmValue value[1]; +static String fallback_res[] = { + "*hello.labelString: Hello World", + NULL, +}; + + XtToolkitInitialize(); + app_ctext = XtCreateApplicationContext(); + tet_infoline("PREP: Set default set of resource values."); + XtAppSetFallbackResources(app_ctext, fallback_res); + tet_infoline("PREP: Initialize display"); + sleep(config.reset_delay); + display = XOpenDisplay(config.display); + if (display == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + XtDisplayInitialize(app_ctext, display, + "tdtbs1", "Tdtbs1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + (String *)NULL ); + tet_infoline("TEST: Get the resource database"); + database = XtDatabase(display); + tet_infoline("TEST: Check resource values"); + XrmGetResource(database, "hello.labelString", NULL, + &str_type, &value[0]); + if (strncmp("Hello World", value[0].addr, strlen("Hello World")) != 0 ) { + sprintf(ebuf, "ERROR: Expected \"Hello World\"for hello.labelString, Received %s", value[0].addr); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); +>>ASSERTION Good C +If the implementation is X11R5 or later: +A call to XrmDatabase XtDatabase(display) when display has not been +initialized shall return NULL. +>>CODE +Display *display; +XrmDatabase database; + +#if XT_X_RELEASE > 4 + XtToolkitInitialize(); + app_ctext = XtCreateApplicationContext(); + if (app_ctext == NULL) { + tet_infoline("ERROR: Expected valid application context returned NULL"); + tet_result(TET_FAIL); + return; + } + tet_infoline("PREP: Open display"); + sleep(config.reset_delay); + display = XOpenDisplay(config.display); + if (display == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Database is NULL"); + database = XtDatabase(display); + if (database != NULL) { + tet_infoline("ERROR: Expected return of NULL"); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); +#else + tet_infoline("INFO: Implementation is X11R4"); + tet_result(TET_UNSUPPORTED); +#endif diff --git a/xts5/Xt4/XtDatabase/XtDatabase.m b/xts5/Xt4/XtDatabase/XtDatabase.m deleted file mode 100644 index c5afb28e..00000000 --- a/xts5/Xt4/XtDatabase/XtDatabase.m +++ /dev/null @@ -1,147 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtDatabase/XtDatabase.m ->># ->># Description: ->># Tests for XtDatabase() ->># ->># Modifications: ->># $Log: tdtbs.m,v $ ->># Revision 1.1 2005-02-12 14:38:02 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:20 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:10 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.1 1998/06/23 22:47:15 andy ->># Added sleep(XT_RESET_DELAY) to each test. SR# 186. ->># ->># Revision 6.0 1998/03/02 05:27:31 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:05 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:53 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:38 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtDatabase Xt4 -XrmDatabase -XtDatabase(display) ->>ASSERTION Good A -A call to XrmDatabase XtDatabase(display) shall return the default -resource database associated with display. ->>CODE -Display *display; -Widget labelw_good; -XrmDatabase database; -char *str_type; -int argcount = 0; -XrmValue value[1]; -static String fallback_res[] = { - "*hello.labelString: Hello World", - NULL, -}; - - XtToolkitInitialize(); - app_ctext = XtCreateApplicationContext(); - tet_infoline("PREP: Set default set of resource values."); - XtAppSetFallbackResources(app_ctext, fallback_res); - tet_infoline("PREP: Initialize display"); - sleep(config.reset_delay); - display = XOpenDisplay(config.display); - if (display == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - XtDisplayInitialize(app_ctext, display, - "tdtbs1", "Tdtbs1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - (String *)NULL ); - tet_infoline("TEST: Get the resource database"); - database = XtDatabase(display); - tet_infoline("TEST: Check resource values"); - XrmGetResource(database, "hello.labelString", NULL, - &str_type, &value[0]); - if (strncmp("Hello World", value[0].addr, strlen("Hello World")) != 0 ) { - sprintf(ebuf, "ERROR: Expected \"Hello World\"for hello.labelString, Received %s", value[0].addr); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); ->>ASSERTION Good C -If the implementation is X11R5 or later: -A call to XrmDatabase XtDatabase(display) when display has not been -initialized shall return NULL. ->>CODE -Display *display; -XrmDatabase database; - -#if XT_X_RELEASE > 4 - XtToolkitInitialize(); - app_ctext = XtCreateApplicationContext(); - if (app_ctext == NULL) { - tet_infoline("ERROR: Expected valid application context returned NULL"); - tet_result(TET_FAIL); - return; - } - tet_infoline("PREP: Open display"); - sleep(config.reset_delay); - display = XOpenDisplay(config.display); - if (display == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Database is NULL"); - database = XtDatabase(display); - if (database != NULL) { - tet_infoline("ERROR: Expected return of NULL"); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); -#else - tet_infoline("INFO: Implementation is X11R4"); - tet_result(TET_UNSUPPORTED); -#endif diff --git a/xts5/Xt4/XtDestroyApplicationContext.m b/xts5/Xt4/XtDestroyApplicationContext.m new file mode 100644 index 00000000..2f00428f --- /dev/null +++ b/xts5/Xt4/XtDestroyApplicationContext.m @@ -0,0 +1,127 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtDestroyApplicationContext.m +>># +>># Description: +>># Tests for XtDestroyApplicationContext() +>># +>># Modifications: +>># $Log: tdstryappl.m,v $ +>># Revision 1.1 2005-02-12 14:38:02 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:16 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:06 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:28 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:01 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:41 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:23 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; + +/* +** Procedure XtEVT_Proc +*/ +void XtEVT_Proc(w, client_data, event, flag) +Widget w; +XtPointer client_data; +XEvent *event; +Boolean *flag; +{ + if (event->type == ButtonPress) { + XtDestroyApplicationContext((XtAppContext)client_data); + avs_set_event(1,1); + exit(0); + } +} +>>SET tpstartup avs_alloc_sem +>>SET tpcleanup avs_free_sem +>>TITLE XtDestroyApplicationContext Xt4 +void +XtDestroyApplicationContext(app_context) +>>ASSERTION Good A +A call to void XtDestroyApplicationContext(app_context) shall destroy +the application context app_context and close all the display connections +associated with it. +>>CODE + + avs_xt_hier("Tdstryappl1", "XtDestroyApplicationContext"); + tet_infoline("TEST: Destroy an application context"); + XtDestroyApplicationContext(app_ctext); + tet_result(TET_PASS); +>>ASSERTION Good A +A call to void XtDestroyApplicationContext(app_context) when called from +within an event dispatch shall not destroy the application context until +the dispatch is complete. +>>CODE +Widget labelw_msg; +char *msg = "Test widget"; +pid_t pid2; +int invoked = 0; + + FORK(pid2); + avs_xt_hier("Tdstryappl2", "XtDestroyApplicationContext"); + tet_infoline("PREP: Create labelw_msg widget in boxw1"); + labelw_msg = (Widget) CreateLabelWidget(msg, boxw1); + tet_infoline("PREP: Register procedure to handle ButtonPress events to"); + tet_infoline("PREP: labelw_msg widget"); + XtAddEventHandler(labelw_msg, + ButtonPressMask, + False, + XtEVT_Proc, + (XtPointer)app_ctext + ); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Simulate ButtonPress on widget labelw_msg"); + send_event(labelw_msg, ButtonPress, ButtonPressMask, FALSE); + tet_infoline("TEST: Loop for events"); + XtAppMainLoop(app_ctext); + KROF(pid2); + tet_infoline("TEST: Context terminated on event handler completion"); + invoked = avs_get_event(1); + check_dec(1, invoked, "Event handler invoked count"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtDestroyApplicationContext/XtDestroyApplicationContext.m b/xts5/Xt4/XtDestroyApplicationContext/XtDestroyApplicationContext.m deleted file mode 100644 index 0b222627..00000000 --- a/xts5/Xt4/XtDestroyApplicationContext/XtDestroyApplicationContext.m +++ /dev/null @@ -1,127 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtDestroyApplicationContext/XtDestroyApplicationContext.m ->># ->># Description: ->># Tests for XtDestroyApplicationContext() ->># ->># Modifications: ->># $Log: tdstryappl.m,v $ ->># Revision 1.1 2005-02-12 14:38:02 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:16 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:06 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:28 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:01 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:41 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:23 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; - -/* -** Procedure XtEVT_Proc -*/ -void XtEVT_Proc(w, client_data, event, flag) -Widget w; -XtPointer client_data; -XEvent *event; -Boolean *flag; -{ - if (event->type == ButtonPress) { - XtDestroyApplicationContext((XtAppContext)client_data); - avs_set_event(1,1); - exit(0); - } -} ->>SET tpstartup avs_alloc_sem ->>SET tpcleanup avs_free_sem ->>TITLE XtDestroyApplicationContext Xt4 -void -XtDestroyApplicationContext(app_context) ->>ASSERTION Good A -A call to void XtDestroyApplicationContext(app_context) shall destroy -the application context app_context and close all the display connections -associated with it. ->>CODE - - avs_xt_hier("Tdstryappl1", "XtDestroyApplicationContext"); - tet_infoline("TEST: Destroy an application context"); - XtDestroyApplicationContext(app_ctext); - tet_result(TET_PASS); ->>ASSERTION Good A -A call to void XtDestroyApplicationContext(app_context) when called from -within an event dispatch shall not destroy the application context until -the dispatch is complete. ->>CODE -Widget labelw_msg; -char *msg = "Test widget"; -pid_t pid2; -int invoked = 0; - - FORK(pid2); - avs_xt_hier("Tdstryappl2", "XtDestroyApplicationContext"); - tet_infoline("PREP: Create labelw_msg widget in boxw1"); - labelw_msg = (Widget) CreateLabelWidget(msg, boxw1); - tet_infoline("PREP: Register procedure to handle ButtonPress events to"); - tet_infoline("PREP: labelw_msg widget"); - XtAddEventHandler(labelw_msg, - ButtonPressMask, - False, - XtEVT_Proc, - (XtPointer)app_ctext - ); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Simulate ButtonPress on widget labelw_msg"); - send_event(labelw_msg, ButtonPress, ButtonPressMask, FALSE); - tet_infoline("TEST: Loop for events"); - XtAppMainLoop(app_ctext); - KROF(pid2); - tet_infoline("TEST: Context terminated on event handler completion"); - invoked = avs_get_event(1); - check_dec(1, invoked, "Event handler invoked count"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtDestroyWidget.m b/xts5/Xt4/XtDestroyWidget.m new file mode 100644 index 00000000..cf5c2c59 --- /dev/null +++ b/xts5/Xt4/XtDestroyWidget.m @@ -0,0 +1,356 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtDestroyWidget.m +>># +>># Description: +>># Tests for XtDestroyWidget() +>># +>># Modifications: +>># $Log: tdestywid.m,v $ +>># Revision 1.1 2005-02-12 14:38:00 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:32 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:23 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.1 1998/06/22 23:04:17 andy +>># Altered test 1 so second call to XtDestroyWidget is made from with +>># destroy callback. SR 181. +>># +>># Revision 6.0 1998/03/02 05:27:42 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:15 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:28 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:24 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; + +/* procedure XtTMO_Proc */ +void XtTMO_Proc(client_data, id) +XtPointer client_data; +XtIntervalId *id; +{ + exit(0); +} + +void analyse_events(widget) +Widget widget; +{ + XtAppContext app_context; + Display *display; + XEvent loop_event; + XEvent return_event; + app_context = XtWidgetToApplicationContext(widget); + display = XtDisplay(widget); + for (;;) { + XtAppNextEvent(app_context, &loop_event); + XSync(display, False); + if (loop_event.type == DestroyNotify) { + avs_set_event(1,1); + XtAppNextEvent(app_context, &return_event); + if (return_event.type == DestroyNotify) { + avs_set_event(2,1); + exit(0); + } + } /* end if */ + XtDispatchEvent(&loop_event); + } /* end for */ +} + +Boolean flag; + +Widget labelw_msg1; + +void XtCBP(w, client_data, call_data) +Widget w; +XtPointer client_data, call_data; +{ + tet_infoline("TEST: Destroy labelw_msg1 widget within destroy callback"); + XtDestroyWidget(labelw_msg1); + avs_set_event(2, avs_get_event(2)+1); +} +void XtCBP_ChildProc(w, client_data, call_data) +Widget w; +XtPointer client_data, call_data; +{ + flag = True; + avs_set_event(1, 1); +} +void XtCBP_ParentProc(w, client_data, call_data) +Widget w; +XtPointer client_data, call_data; +{ + /* + ** XtCBP_ChildProc to be invoked before XtCBP_ParentProc + */ + if (flag) + avs_set_event(2, 1); + else { + sprintf(ebuf, "ERROR: XtCBP_ChildProc to be invoked before XtCBP_ParentProc"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } +} +>>SET tpstartup avs_alloc_sem +>>SET tpcleanup avs_free_sem +>>TITLE XtDestroyWidget Xt4 +void +XtDestroyWidget(w) +>>ASSERTION Good A +A call to void XtDestroyWidget(w) +when the being_destroyed field of the widget w is True shall return +immediately. +>>CODE +XEvent loop_event; +char *msg = "Test widget"; +Display *display; +Window window; +int status = 0; +pid_t pid2; +int i; +Widget rowcolw_good; +Widget labelw_good; +Window rowcolw_good_window; +Window labelw_good_window; + + FORK(pid2); + avs_xt_hier("Tdestywid1", "XtDestroyWidget"); + tet_infoline("PREP: Create labelw_msg1 widget in boxw1 widget"); + labelw_msg1 = (Widget) CreateLabelWidget(msg, boxw1); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Catch DestroyNotify event"); + display = XtDisplay(labelw_msg1); + window = XtWindow(labelw_msg1); + XSelectInput(display, window, StructureNotifyMask); + tet_infoline("PREP: Add callback procedure XtCBP_ParentProc() to labelw_msg1"); + XtAddCallback(labelw_msg1, + XtNdestroyCallback, + XtCBP, + (XtPointer)NULL + ); + tet_infoline("TEST: Destroy labelw_msg1 widget"); + XtDestroyWidget(labelw_msg1); + tet_infoline("PREP: Register timeout"); + XtAppAddTimeOut(app_ctext, AVSXTLOOPTIMEOUT, XtTMO_Proc, topLevel); + tet_infoline("TEST: DestroyNotify event generated just once"); + for (i = 0; i < 10; i++) { + XtAppNextEvent(app_ctext, &loop_event); + XSync(display, False); + if (loop_event.type == DestroyNotify) + avs_set_event(1,avs_get_event(1)+1); + XtDispatchEvent(&loop_event); + i= 0; + } + KROF(pid2); + status = avs_get_event(1); + check_dec(1, status, "DestroyNotify event count"); + tet_infoline("TEST: Destroy callback called just once"); + status = avs_get_event(2); + check_dec(1, status, "Destroy callback count"); + tet_result(TET_PASS); +>>ASSERTION Good A +When it is not called from within an application callback routine and the +widget w is not already being destroyed a call to void XtDestroyWidget(w) +shall perform the following actions in the order specified: + +- call the destroy callback procedures registered for the widget w and + all normal and pop-up descendents in postorder. + +- if the widget w is not a pop-up child and the widget's parent is + a subclass of compositeWidgetClass, and if the parent is not being + destroyed, unmanage on the widget and call the widget's parent's + delete_child procedure. + +- if the widget w is not a pop-up child and the widget's parent is + a subclass of constraintWidgetClass, call the ConstraintClassPart + destroy procedure for the parent, followed by the destroy procedures + of the parent's superclass, up to and including the ConstraintClassPart + destroy procedure for constraintWidgetClass. + +- calls the destroy procedures for the widget and all normal and + pop-up descendents in postorder, calling the CoreClassPart + destroy procedure in each widget followed by the destroy + procedures in its superclasses, up to and including the + Object class. + +- if the widget w is realized destroy the window for the widget + and the windows for all its normal descendents. + +- recursively descend the tree and destroy the windows for all + realized popup descendents. +>>CODE +XEvent loop_event; +Widget labelw_msg; +char *msg = "Test widget"; +Display *display; +Window window; +int status = 0; +pid_t pid2; +int i; +Widget rowcolw_good; +Widget labelw_good; +Window rowcolw_good_window; +Window labelw_good_window; + + /*this is catenation of the earlier tests - needs enhancement*/ + avs_set_event(1,0); + avs_set_event(2,0); + FORK(pid2); + avs_xt_hier("Tdestywid1", "XtDestroyWidget"); + tet_infoline("PREP: Create labelw_msg widget in boxw1 widget"); + labelw_msg = (Widget) CreateLabelWidget(msg, boxw1); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Catch DestroyNotify event"); + display = XtDisplay(labelw_msg); + window = XtWindow(labelw_msg); + XSelectInput(display, window, StructureNotifyMask); + tet_infoline("TEST: Destroy labelw_msg widget"); + XtDestroyWidget(labelw_msg); + tet_infoline("TEST: DestroyNotify event generated"); + for (i = 0; i < 10; i++) { + XtAppNextEvent(app_ctext, &loop_event); + XSync(display, False); + if (loop_event.type == DestroyNotify) { + avs_set_event(1,1); + exit(0); + } + XtDispatchEvent(&loop_event); + i= 0; + } + KROF(pid2); + status = avs_get_event(1); + check_dec(1, status, "DestroyNotify event count"); + avs_set_event(1,0); + avs_set_event(2,0); + FORK(pid2); + avs_xt_hier("Tdestywid2", "XtDestroyWidget"); + tet_infoline("PREP: Create rowcolw_good widget in boxw1 widget"); + rowcolw_good = (Widget) CreateRowColWidget(boxw1); + tet_infoline("PREP: Create labelw_good widget in rowcolw_good widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", rowcolw_good); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Catch DestroyNotify event"); + display = XtDisplay(rowcolw_good); + rowcolw_good_window = XtWindow(rowcolw_good); + XSelectInput(display, rowcolw_good_window, StructureNotifyMask); + labelw_good_window = XtWindow(labelw_good); + XSelectInput(display, labelw_good_window, StructureNotifyMask); + tet_infoline("TEST: Destroy rowcolw_good widget"); + XtDestroyWidget(rowcolw_good); + analyse_events(rowcolw); + KROF(pid2); + tet_infoline("TEST: DestroyNotify event was generated for labelw_good"); + status = avs_get_event(1); + check_dec(1, status, "DestroyNotify event count"); + tet_infoline("TEST: DestroyNotify event was generated for rowcolw_good"); + status = avs_get_event(2); + check_dec(1, status, "DestroyNotify event count"); + avs_set_event(1,0); + avs_set_event(2,0); + FORK(pid2); + avs_xt_hier("Tdestywid3", "XtDestroyWidget"); + tet_infoline("PREP: Create rowcolw_good widget in boxw1 widget"); + rowcolw_good = (Widget) CreateRowColWidget(boxw1); + tet_infoline("PREP: Add callback procedure XtCBP_ParentProc() to rowcolw_good"); + XtAddCallback(rowcolw_good, + XtNdestroyCallback, + XtCBP_ParentProc, + (XtPointer)NULL + ); + tet_infoline("PREP: Create labelw_good widget in rowcolw_good widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", rowcolw_good); + tet_infoline("PREP: Add callback procedure XtCBP_ChildProc to labelw_good"); + XtAddCallback(labelw_good, + XtNdestroyCallback, + XtCBP_ChildProc, + (XtPointer)NULL + ); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Destroy rowcolw_good widget"); + XtDestroyWidget(rowcolw_good); + KROF(pid2); + tet_infoline("TEST: XtCBP_ChildProc procedure was invoked"); + status = avs_get_event(1); + check_dec(1, status, "callback called count"); + tet_infoline("TEST: XtCBP_ParentProc procedure was invoked"); + status = avs_get_event(2); + check_dec(1, status, "callback called count"); + tet_result(TET_PASS); +>>ASSERTION Good B 0 +When called from within an application callback routine, if the +widget w is not already being destroyed a call to void XtDestroyWidget(w) +shall set the being_destroyed field of the widget w and its normal and +pop-up children but shall not take other action until XtDispatchEvent +is about to return, at which point it shall perform the following +actions in the order specified: + +- call the destroy callback procedures registered for the widget w and + all normal and pop-up descendents in postorder. + +- if the widget w is not a pop-up child and the widget's parent is + a subclass of compositeWidgetClass, and if the parent is not being + destroyed, unmanage on the widget and call the widget's parent's + delete_child procedure. + +- if the widget w is not a pop-up child and the widget's parent is + a subclass of constraintWidgetClass, call the ConstraintClassPart + destroy procedure for the parent, followed by the destroy procedures + of the parent's superclass, up to and including the ConstraintClassPart + destroy procedure for constraintWidgetClass. + +- calls the destroy procedures for the widget and all normal and + pop-up descendents in postorder, calling the CoreClassPart + destroy procedure in each widget followed by the destroy + procedures in its superclasses, up to and including the + Object class. + +- if the widget w is realized destroy the window for the widget + and the windows for all its normal descendents. + +- recursively descend the tree and destroy the windows for all + realized popup descendents. diff --git a/xts5/Xt4/XtDestroyWidget/XtDestroyWidget.m b/xts5/Xt4/XtDestroyWidget/XtDestroyWidget.m deleted file mode 100644 index 10c36811..00000000 --- a/xts5/Xt4/XtDestroyWidget/XtDestroyWidget.m +++ /dev/null @@ -1,356 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtDestroyWidget/XtDestroyWidget.m ->># ->># Description: ->># Tests for XtDestroyWidget() ->># ->># Modifications: ->># $Log: tdestywid.m,v $ ->># Revision 1.1 2005-02-12 14:38:00 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:32 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:23 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.1 1998/06/22 23:04:17 andy ->># Altered test 1 so second call to XtDestroyWidget is made from with ->># destroy callback. SR 181. ->># ->># Revision 6.0 1998/03/02 05:27:42 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:15 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:28 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:24 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; - -/* procedure XtTMO_Proc */ -void XtTMO_Proc(client_data, id) -XtPointer client_data; -XtIntervalId *id; -{ - exit(0); -} - -void analyse_events(widget) -Widget widget; -{ - XtAppContext app_context; - Display *display; - XEvent loop_event; - XEvent return_event; - app_context = XtWidgetToApplicationContext(widget); - display = XtDisplay(widget); - for (;;) { - XtAppNextEvent(app_context, &loop_event); - XSync(display, False); - if (loop_event.type == DestroyNotify) { - avs_set_event(1,1); - XtAppNextEvent(app_context, &return_event); - if (return_event.type == DestroyNotify) { - avs_set_event(2,1); - exit(0); - } - } /* end if */ - XtDispatchEvent(&loop_event); - } /* end for */ -} - -Boolean flag; - -Widget labelw_msg1; - -void XtCBP(w, client_data, call_data) -Widget w; -XtPointer client_data, call_data; -{ - tet_infoline("TEST: Destroy labelw_msg1 widget within destroy callback"); - XtDestroyWidget(labelw_msg1); - avs_set_event(2, avs_get_event(2)+1); -} -void XtCBP_ChildProc(w, client_data, call_data) -Widget w; -XtPointer client_data, call_data; -{ - flag = True; - avs_set_event(1, 1); -} -void XtCBP_ParentProc(w, client_data, call_data) -Widget w; -XtPointer client_data, call_data; -{ - /* - ** XtCBP_ChildProc to be invoked before XtCBP_ParentProc - */ - if (flag) - avs_set_event(2, 1); - else { - sprintf(ebuf, "ERROR: XtCBP_ChildProc to be invoked before XtCBP_ParentProc"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } -} ->>SET tpstartup avs_alloc_sem ->>SET tpcleanup avs_free_sem ->>TITLE XtDestroyWidget Xt4 -void -XtDestroyWidget(w) ->>ASSERTION Good A -A call to void XtDestroyWidget(w) -when the being_destroyed field of the widget w is True shall return -immediately. ->>CODE -XEvent loop_event; -char *msg = "Test widget"; -Display *display; -Window window; -int status = 0; -pid_t pid2; -int i; -Widget rowcolw_good; -Widget labelw_good; -Window rowcolw_good_window; -Window labelw_good_window; - - FORK(pid2); - avs_xt_hier("Tdestywid1", "XtDestroyWidget"); - tet_infoline("PREP: Create labelw_msg1 widget in boxw1 widget"); - labelw_msg1 = (Widget) CreateLabelWidget(msg, boxw1); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Catch DestroyNotify event"); - display = XtDisplay(labelw_msg1); - window = XtWindow(labelw_msg1); - XSelectInput(display, window, StructureNotifyMask); - tet_infoline("PREP: Add callback procedure XtCBP_ParentProc() to labelw_msg1"); - XtAddCallback(labelw_msg1, - XtNdestroyCallback, - XtCBP, - (XtPointer)NULL - ); - tet_infoline("TEST: Destroy labelw_msg1 widget"); - XtDestroyWidget(labelw_msg1); - tet_infoline("PREP: Register timeout"); - XtAppAddTimeOut(app_ctext, AVSXTLOOPTIMEOUT, XtTMO_Proc, topLevel); - tet_infoline("TEST: DestroyNotify event generated just once"); - for (i = 0; i < 10; i++) { - XtAppNextEvent(app_ctext, &loop_event); - XSync(display, False); - if (loop_event.type == DestroyNotify) - avs_set_event(1,avs_get_event(1)+1); - XtDispatchEvent(&loop_event); - i= 0; - } - KROF(pid2); - status = avs_get_event(1); - check_dec(1, status, "DestroyNotify event count"); - tet_infoline("TEST: Destroy callback called just once"); - status = avs_get_event(2); - check_dec(1, status, "Destroy callback count"); - tet_result(TET_PASS); ->>ASSERTION Good A -When it is not called from within an application callback routine and the -widget w is not already being destroyed a call to void XtDestroyWidget(w) -shall perform the following actions in the order specified: - -- call the destroy callback procedures registered for the widget w and - all normal and pop-up descendents in postorder. - -- if the widget w is not a pop-up child and the widget's parent is - a subclass of compositeWidgetClass, and if the parent is not being - destroyed, unmanage on the widget and call the widget's parent's - delete_child procedure. - -- if the widget w is not a pop-up child and the widget's parent is - a subclass of constraintWidgetClass, call the ConstraintClassPart - destroy procedure for the parent, followed by the destroy procedures - of the parent's superclass, up to and including the ConstraintClassPart - destroy procedure for constraintWidgetClass. - -- calls the destroy procedures for the widget and all normal and - pop-up descendents in postorder, calling the CoreClassPart - destroy procedure in each widget followed by the destroy - procedures in its superclasses, up to and including the - Object class. - -- if the widget w is realized destroy the window for the widget - and the windows for all its normal descendents. - -- recursively descend the tree and destroy the windows for all - realized popup descendents. ->>CODE -XEvent loop_event; -Widget labelw_msg; -char *msg = "Test widget"; -Display *display; -Window window; -int status = 0; -pid_t pid2; -int i; -Widget rowcolw_good; -Widget labelw_good; -Window rowcolw_good_window; -Window labelw_good_window; - - /*this is catenation of the earlier tests - needs enhancement*/ - avs_set_event(1,0); - avs_set_event(2,0); - FORK(pid2); - avs_xt_hier("Tdestywid1", "XtDestroyWidget"); - tet_infoline("PREP: Create labelw_msg widget in boxw1 widget"); - labelw_msg = (Widget) CreateLabelWidget(msg, boxw1); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Catch DestroyNotify event"); - display = XtDisplay(labelw_msg); - window = XtWindow(labelw_msg); - XSelectInput(display, window, StructureNotifyMask); - tet_infoline("TEST: Destroy labelw_msg widget"); - XtDestroyWidget(labelw_msg); - tet_infoline("TEST: DestroyNotify event generated"); - for (i = 0; i < 10; i++) { - XtAppNextEvent(app_ctext, &loop_event); - XSync(display, False); - if (loop_event.type == DestroyNotify) { - avs_set_event(1,1); - exit(0); - } - XtDispatchEvent(&loop_event); - i= 0; - } - KROF(pid2); - status = avs_get_event(1); - check_dec(1, status, "DestroyNotify event count"); - avs_set_event(1,0); - avs_set_event(2,0); - FORK(pid2); - avs_xt_hier("Tdestywid2", "XtDestroyWidget"); - tet_infoline("PREP: Create rowcolw_good widget in boxw1 widget"); - rowcolw_good = (Widget) CreateRowColWidget(boxw1); - tet_infoline("PREP: Create labelw_good widget in rowcolw_good widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", rowcolw_good); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Catch DestroyNotify event"); - display = XtDisplay(rowcolw_good); - rowcolw_good_window = XtWindow(rowcolw_good); - XSelectInput(display, rowcolw_good_window, StructureNotifyMask); - labelw_good_window = XtWindow(labelw_good); - XSelectInput(display, labelw_good_window, StructureNotifyMask); - tet_infoline("TEST: Destroy rowcolw_good widget"); - XtDestroyWidget(rowcolw_good); - analyse_events(rowcolw); - KROF(pid2); - tet_infoline("TEST: DestroyNotify event was generated for labelw_good"); - status = avs_get_event(1); - check_dec(1, status, "DestroyNotify event count"); - tet_infoline("TEST: DestroyNotify event was generated for rowcolw_good"); - status = avs_get_event(2); - check_dec(1, status, "DestroyNotify event count"); - avs_set_event(1,0); - avs_set_event(2,0); - FORK(pid2); - avs_xt_hier("Tdestywid3", "XtDestroyWidget"); - tet_infoline("PREP: Create rowcolw_good widget in boxw1 widget"); - rowcolw_good = (Widget) CreateRowColWidget(boxw1); - tet_infoline("PREP: Add callback procedure XtCBP_ParentProc() to rowcolw_good"); - XtAddCallback(rowcolw_good, - XtNdestroyCallback, - XtCBP_ParentProc, - (XtPointer)NULL - ); - tet_infoline("PREP: Create labelw_good widget in rowcolw_good widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", rowcolw_good); - tet_infoline("PREP: Add callback procedure XtCBP_ChildProc to labelw_good"); - XtAddCallback(labelw_good, - XtNdestroyCallback, - XtCBP_ChildProc, - (XtPointer)NULL - ); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Destroy rowcolw_good widget"); - XtDestroyWidget(rowcolw_good); - KROF(pid2); - tet_infoline("TEST: XtCBP_ChildProc procedure was invoked"); - status = avs_get_event(1); - check_dec(1, status, "callback called count"); - tet_infoline("TEST: XtCBP_ParentProc procedure was invoked"); - status = avs_get_event(2); - check_dec(1, status, "callback called count"); - tet_result(TET_PASS); ->>ASSERTION Good B 0 -When called from within an application callback routine, if the -widget w is not already being destroyed a call to void XtDestroyWidget(w) -shall set the being_destroyed field of the widget w and its normal and -pop-up children but shall not take other action until XtDispatchEvent -is about to return, at which point it shall perform the following -actions in the order specified: - -- call the destroy callback procedures registered for the widget w and - all normal and pop-up descendents in postorder. - -- if the widget w is not a pop-up child and the widget's parent is - a subclass of compositeWidgetClass, and if the parent is not being - destroyed, unmanage on the widget and call the widget's parent's - delete_child procedure. - -- if the widget w is not a pop-up child and the widget's parent is - a subclass of constraintWidgetClass, call the ConstraintClassPart - destroy procedure for the parent, followed by the destroy procedures - of the parent's superclass, up to and including the ConstraintClassPart - destroy procedure for constraintWidgetClass. - -- calls the destroy procedures for the widget and all normal and - pop-up descendents in postorder, calling the CoreClassPart - destroy procedure in each widget followed by the destroy - procedures in its superclasses, up to and including the - Object class. - -- if the widget w is realized destroy the window for the widget - and the windows for all its normal descendents. - -- recursively descend the tree and destroy the windows for all - realized popup descendents. diff --git a/xts5/Xt4/XtDisplay.m b/xts5/Xt4/XtDisplay.m new file mode 100644 index 00000000..ae69314c --- /dev/null +++ b/xts5/Xt4/XtDisplay.m @@ -0,0 +1,91 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtDisplay.m +>># +>># Description: +>># Tests for XtDisplay() +>># +>># Modifications: +>># $Log: tdisplay.m,v $ +>># Revision 1.1 2005-02-12 14:38:00 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:28 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:18 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:38 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:11 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:18 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:11 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtDisplay Xt4 +Display * +XtDisplay(w) +>>ASSERTION Good A +A call to Display *XtDisplay(w) shall return the display pointer +of the widget w. +>>CODE +char string[10]; +Widget labelw_good , widget_good; +Display *display_good; +Window window_good; + + avs_xt_hier("Tdisplay1", "XtDisplay"); + tet_infoline("PREP: Create label widget `Hello' in boxw1 widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Get the display pointer for label widget `Hello' "); + if((display_good = XtDisplay(labelw_good)) == NULL ){ + tet_infoline("ERROR: Expected valid display pointer, received NULL"); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Display pointer is valid for specified widget"); + window_good = XtWindow(labelw_good); + widget_good = XtWindowToWidget(display_good, window_good); + strcpy(string, XtName(widget_good) ); + check_str("Hello", string, "Widget Name"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtDisplay/XtDisplay.m b/xts5/Xt4/XtDisplay/XtDisplay.m deleted file mode 100644 index 9e6978d1..00000000 --- a/xts5/Xt4/XtDisplay/XtDisplay.m +++ /dev/null @@ -1,91 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtDisplay/XtDisplay.m ->># ->># Description: ->># Tests for XtDisplay() ->># ->># Modifications: ->># $Log: tdisplay.m,v $ ->># Revision 1.1 2005-02-12 14:38:00 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:28 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:18 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:38 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:11 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:18 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:11 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtDisplay Xt4 -Display * -XtDisplay(w) ->>ASSERTION Good A -A call to Display *XtDisplay(w) shall return the display pointer -of the widget w. ->>CODE -char string[10]; -Widget labelw_good , widget_good; -Display *display_good; -Window window_good; - - avs_xt_hier("Tdisplay1", "XtDisplay"); - tet_infoline("PREP: Create label widget `Hello' in boxw1 widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Get the display pointer for label widget `Hello' "); - if((display_good = XtDisplay(labelw_good)) == NULL ){ - tet_infoline("ERROR: Expected valid display pointer, received NULL"); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Display pointer is valid for specified widget"); - window_good = XtWindow(labelw_good); - widget_good = XtWindowToWidget(display_good, window_good); - strcpy(string, XtName(widget_good) ); - check_str("Hello", string, "Widget Name"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtDisplayInitialize.m b/xts5/Xt4/XtDisplayInitialize.m new file mode 100644 index 00000000..213dd771 --- /dev/null +++ b/xts5/Xt4/XtDisplayInitialize.m @@ -0,0 +1,565 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtDisplayInitialize.m +>># +>># Description: +>># Tests for XtDisplayInitialize() +>># +>># Modifications: +>># $Log: tdsplyintl.m,v $ +>># Revision 1.1 2005-02-12 14:38:01 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:17 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:07 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.1 1998/06/23 22:54:45 andy +>># Added sleep(XT_RESET_DELAY) to each test. SR# 186. +>># +>># Revision 6.0 1998/03/02 05:27:29 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:02 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.1 1998/01/13 05:39:19 andy +>># In test 12: Changed type of closure_ret from XtPointer * to XtPointer. +>># +>># Revision 4.0 1995/12/15 09:15:44 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:27 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; + +char *args11[] = { + "-background", "green", + "-bd", "green", + "-bg", "green", + "-borderwidth", "3", + "-bordercolor", "red", + "-bw", "3", + "-fg", "green", + "-font", XtDefaultFont, + "-fn", XtDefaultFont, + "-foreground", "blue", + "-geometry", "100x100", + "-iconic", + "-reverse", + "-rv", + "+rv", + "-selectionTimeout", "50", + "-synchronous", + "+synchronous", + "-title", "ApTest", + "-xnlLanguage", "C", + NULL}; + + +typedef struct _instance_variables { + long foreground; + String label; +} instance_variable_rec; + +static XtResource resources[] = { + { + XtNforeground, + XtCForeground, + XtRPixel, sizeof(Pixel), + XtOffsetOf(instance_variable_rec, foreground), + XtRString, "XtDefaultForeground" + }, + { + XtNlabel, + XtCLabel, + XtRString, sizeof(String), + XtOffsetOf(instance_variable_rec, label), + XtRString, "very bad idea" + }, +}; +>>TITLE XtDisplayInitialize Xt4 +void +XtDisplayInitialize(app_context, display, application_name, application_class, options, num_options, argc, argv) +>>ASSERTION Good A +A successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +shall perform initialization for the previously opened display connection +specified +by +.A display +and add it to the application context +.A app_context. +>>CODE +Display *display_good; +String name_good, class_good; +int argcount = 0; + + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + tet_infoline("PREP: Open a display connection"); + sleep(config.reset_delay); + display_good = XOpenDisplay(config.display); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Initialize display and add it to an application context."); + XtDisplayInitialize(app_ctext, display_good, "tdsplyintl1", + "Tdsplyintl1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + (String *)NULL ); + XtAppSetErrorMsgHandler(app_ctext, xt_handler); + tet_infoline("TEST: Get the application name and class"); + XtGetApplicationNameAndClass(display_good, &name_good, + &class_good ); + tet_infoline("TEST: Check the name and class are valid."); + check_str("tdsplyintl1", name_good, "Name of Application"); + check_str("Tdsplyintl1", class_good, "Class of Application"); + tet_result(TET_PASS); +>>ASSERTION Good A +When the synchronize resource is set to True in the resource database +created by a successful call to +void XtDisplayInitialize(app_context, display, application_name, +application_class, options, num_options, argc, argv) +it shall put Xlib into synchronous mode for this display connection +and any others currently open in the application context app_context. +>>CODE +Window window; +int scr; +static char *property_data = "Hello World"; +XtAppContext app_ctext; +Display *display; +int queued_events, events; +int argc = 2; + /* + ** -synchronous on + ** +synchronous off + */ +char *argv[] = { "tdsplyintl2", "-synchronous", (char *)NULL }; + + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + tet_infoline("PREP: Open a display connection"); + sleep(config.reset_delay); + display = XOpenDisplay(config.display); + if (display == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("PREP: Create a window for events"); + scr = DefaultScreen(display); + window = XCreateWindow(display, RootWindow(display, scr), + 0, 0, 5, 5, 0, /* x,y,wid,ht,brd width */ + DefaultDepth(display, scr), + InputOutput, + DefaultVisual(display, scr), + (XtValueMask) 0, + (XSetWindowAttributes *) 0); + tet_infoline("TEST: Initialize display and add it to an application context."); + XtDisplayInitialize(app_ctext, display, + "tdsplyintl2", + "Tdsplyintl2", + (XrmOptionDescRec *)NULL, + (Cardinal)0, + &argc, &argv[0] ); + tet_infoline("TEST: Check Xlib is in synchronous mode"); + queued_events = XQLength(display); + XSelectInput(display, window, + (unsigned long)PropertyChangeMask); + for (events = 0; events < 3; events++) + XChangeProperty(display, window, XA_RESOURCE_MANAGER, + XA_STRING, 8,0, (unsigned char *)property_data, 16); + check_dec(3+queued_events, XQLength(display), "queue length"); + tet_result(TET_PASS); +>>ASSERTION Good B 0 +If the implementation is X11R5 or later: +When a language procedure has been registered for the application context +.A app_context +a successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +shall call the language procedure with a language string determined +by searching the following sources in the specified order: + +- the -xnlLanguage resource or a -xrm option containing the + xnlLanguage/XnlLanguage resource defined in the command line, + +- the resource application_name.xnlLanguage, class + application_class.XnlLanguage in the server's RESOURCE_MANAGER + property for the root window of screen zero if it exists, and in + the user preference resource file otherwise. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has been registered for the application context +.A app_context +a successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +shall call the procedure with the empty string if the server's +RESOURCE_MANAGER property for the root window of screen zero exists +and a language string is not found on the command line or in this +property. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has been registered for the application context +.A app_context +a successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +shall call the procedure with the empty string if the server's +RESOURCE_MANAGER property for the root window of screen zero does not exist +and a language string is not found on the command line or in the user +preference resource file. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has not been registered for the application context +.A app_context +a successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +shall determine a language string for the display +by searching the following sources in the specified order: + +- the resource database created from the command line. + +- the resource application_name.xnlLanguage, class + application_class.XnlLanguage in the server's RESOURCE_MANAGER + property for the root window of screen zero if it exists, or in + the user preference resource file otherwise. + +- the environment. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later and is POSIX-based: +When a language procedure has not been registered for the application context +.A app_context +a successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +shall use the LANG environment variable as the environment value to +search when determining the language string for the display. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has not been registered for the application context +.A app_context +a successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +shall set the language string for the display to the empty string if the +server's RESOURCE_MANAGER property for the root window of screen zero exists, +and a language string is not found on the command line, in this +property, or in the environment. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has not been registered for the application context +.A app_context +a successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +shall set the language string for the display to the empty string if the +server's RESOURCE_MANAGER property for the root window of screen zero does +not exist and a language string is not found on the command line, in the user +preference resource file, or in the environment. +>>ASSERTION Good B 0 +A successful call to +void XtDisplayInitialize(app_context, display, application_name, +application_name, application_class, options, num_options, argc, argv) +shall associate with the default screen of the display a resource +database created by combining entries from the following sources, +in order, with the first named source having the highest precedence: + +- the application command line + +- the user's environment resource file + +- per-screen resource specifications from the server, as returned by + XScreenResourceString() + +- per display resource specifications from the server (the + server's RESOURCE_MANAGER property for the root window of + screen zero) if they exist, otherwise the user preference file + +- the application-specific user resource file. + +- the application-specific class resource file . +>>ASSERTION Good A +A successful call to +void XtDisplayInitialize(app_context, display, application_name, +application_class, options, num_options, argc, argv) +shall recognize options specified on the command line that are in the +standard table of options in section 4.4 of the specification or in +the table specific to the application specified by +.A options +and +.A num_options. +>>CODE +Display *display_good; +String name_good, class_good; +int argcount = 20; +instance_variable_rec base; +pid_t pid2; + + FORK(pid2); + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + tet_infoline("PREP: Open a display connection"); + sleep(config.reset_delay); + display_good = XOpenDisplay(config.display); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Initialize display and add it to an application context."); + XtDisplayInitialize(app_ctext, display_good, "tdsplyintl1", + "Tdsplyintl1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + args11); + tet_infoline("TEST: Create top level widget"); + topLevel = XtAppCreateShell("Hello", "World", + applicationShellWidgetClass, display_good, + (ArgList)NULL, (Cardinal)0); + tet_infoline("TEST: Retrieve resource values from resource database"); + XtGetApplicationResources(topLevel, + &base, + resources, + 1, + (ArgList)NULL, + (Cardinal)0); + tet_infoline("TEST: Retrieved resource value"); + if ((base.foreground != 0) && (base.foreground != 1)) { + sprintf(ebuf, "ERROR: expected 0 or 1, received %d", base.foreground); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +void XtDisplayInitialize(app_context, display, application_name, +application_class, options, num_options, argc, argv) +when the reverseVideo resource is define as True on the command line shall use +the value of XtDefaultForeground instead of XtDefaultBackground and +vice versa in the resource database created for the display. +>>CODE +Window window; +int scr; +static char *property_data = "Hello World"; +XtAppContext app_ctext; +Display *display; +int queued_events, events; +XrmValue args[2]; +Cardinal num_args; +XrmValue fromVal; +XrmValue toVal; +Boolean closure; +XtPointer closure_ret = (XtPointer *) &closure; +int argc = 2; +char *argv[] = { "tdsplyintl2", "+rv", (char *)NULL }; +Screen *screen; +Colormap colormap; +pid_t pid2; +Pixel res; +Boolean status; + + FORK(pid2); + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + tet_infoline("PREP: Open a display connection"); + sleep(config.reset_delay); + display = XOpenDisplay(config.display); + if (display == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Initializae display connection with +rv in args"); + XtDisplayInitialize(app_ctext, display, "tdsplyintl1", + "Tdsplyintl1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argc, + &argv[0] ); + tet_infoline("PREP: Set up required conversion args"); + screen = DefaultScreenOfDisplay(display); + args[0].addr = (XtPointer )&screen; + args[0].size = sizeof(Screen*); + colormap = DefaultColormapOfScreen(screen); + args[1].addr = (XtPointer) &colormap; + args[1].size = sizeof(Colormap); + num_args = 2; + tet_infoline("TEST: Convert XtDefaultForeground"); + fromVal.addr = XtDefaultForeground; + fromVal.size = strlen(XtDefaultForeground)+1; + toVal.addr = (XtPointer) &res; + toVal.size = sizeof(Pixel); + status = XtCvtStringToPixel(display, + &args[0], + &num_args, + &fromVal, + &toVal, + &closure_ret); + check_dec(True, status, "XtCvtStringToPixel return value"); + tet_infoline("TEST: Conversion result"); + check_dec(XBlackPixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); + tet_infoline("TEST: Convert XtDefaultBackground"); + fromVal.addr = XtDefaultBackground; + fromVal.size = strlen(XtDefaultBackground)+1; + toVal.addr = (XtPointer) &res; + toVal.size = sizeof(Pixel); + status = XtCvtStringToPixel(display, + &args[0], + &num_args, + &fromVal, + &toVal, + &closure_ret); + check_dec(True, status, "XtCvtStringToPixel return value"); + tet_infoline("TEST: Conversion result"); + check_dec(XWhitePixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good B 5 +A successful call to +void XtDisplayInitialize(app_context, display, application_name, +application_class, options, num_options, argc, argv) +when the application context app_context has more than one display and +the selectionTimeout resource is specified on the command line shall set +this value in the selectionTimeout resource in the resource databases +of all the displays in the application context. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +when the environment variable XENVIRONMENT exists shall use the value +of this variable as the name of the user environment resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +when the environment variable XENVIRONMENT does not exist shall use +the file .Xdefaults-host, where host is the name of the system running +the application, in the user's home directory as the user environment +resource file. +>>ASSERTION Good B 0 +A successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +shall set the values from the higher precedence sources of the resource +database being created for the display as the current resource database +before determining the file name for the application-specific user resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +when the environment variable XUSERFILESEARCHPATH is defined +shall use the result of calling XtResolvePathname(display, path, +NULL, NULL, NULL, NULL, 0, NULL) with the value of this variable as path +as the name of the application-specific user resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +when the environment variable XUSERFILESEARCHPATH is not defined and +the environment variable XAPPLRESDIR is not defined shall +use the result of calling XtResolvePathname(display, path, +NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific +user resource file where path contains at least entries containing $HOME as +the directory prefix plus the following substitutions, in the order specified: + +- %C, %N, %L or %C, %N, %l, %t, %c + +- %C, %N, %l + +- %C, %N + +- %N, %L or %N, %l, %t, %c + +- %N, %l + +- %N +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +when the environment variable XUSERFILESEARCHPATH is not defined and +the environment variable XAPPLRESDIR is defined shall use the result +of calling XtResolvePathname(display, path, NULL, NULL, NULL, NULL, 0, NULL) +as the name of the application-specific user resource file where path +contains at least entries containing the following directory prefixes and +substitutions, in the order specified: + +- $XPPLRESDIR with %C, %N, %L or %C, %N, %l, %t, %c + +- $XPPLRESDIR with %C, %N, %l + +- $XPPLRESDIR with %C, %N + +- $XPPLRESDIR with %N, %L or %N, %l, %t, %c + +- $XPPLRESDIR with %N, %l + +- $XPPLRESDIR with %N + +- $HOME with %N +>>ASSERTION Good B 0 +A successful call to +void XtDisplayInitialize(app_context, display, +application_name, application_class, options, num_options, argc, argv) +shall use the result of calling XtResolvePathname(display, "app-defaults", +NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific +class resource file, with the values from the higher precedence sources of +the resource database being created for the display set as the current +resource database before the call is made. diff --git a/xts5/Xt4/XtDisplayInitialize/XtDisplayInitialize.m b/xts5/Xt4/XtDisplayInitialize/XtDisplayInitialize.m deleted file mode 100644 index 29a8f6f6..00000000 --- a/xts5/Xt4/XtDisplayInitialize/XtDisplayInitialize.m +++ /dev/null @@ -1,565 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtDisplayInitialize/XtDisplayInitialize.m ->># ->># Description: ->># Tests for XtDisplayInitialize() ->># ->># Modifications: ->># $Log: tdsplyintl.m,v $ ->># Revision 1.1 2005-02-12 14:38:01 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:17 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:07 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.1 1998/06/23 22:54:45 andy ->># Added sleep(XT_RESET_DELAY) to each test. SR# 186. ->># ->># Revision 6.0 1998/03/02 05:27:29 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:02 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.1 1998/01/13 05:39:19 andy ->># In test 12: Changed type of closure_ret from XtPointer * to XtPointer. ->># ->># Revision 4.0 1995/12/15 09:15:44 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:27 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; - -char *args11[] = { - "-background", "green", - "-bd", "green", - "-bg", "green", - "-borderwidth", "3", - "-bordercolor", "red", - "-bw", "3", - "-fg", "green", - "-font", XtDefaultFont, - "-fn", XtDefaultFont, - "-foreground", "blue", - "-geometry", "100x100", - "-iconic", - "-reverse", - "-rv", - "+rv", - "-selectionTimeout", "50", - "-synchronous", - "+synchronous", - "-title", "ApTest", - "-xnlLanguage", "C", - NULL}; - - -typedef struct _instance_variables { - long foreground; - String label; -} instance_variable_rec; - -static XtResource resources[] = { - { - XtNforeground, - XtCForeground, - XtRPixel, sizeof(Pixel), - XtOffsetOf(instance_variable_rec, foreground), - XtRString, "XtDefaultForeground" - }, - { - XtNlabel, - XtCLabel, - XtRString, sizeof(String), - XtOffsetOf(instance_variable_rec, label), - XtRString, "very bad idea" - }, -}; ->>TITLE XtDisplayInitialize Xt4 -void -XtDisplayInitialize(app_context, display, application_name, application_class, options, num_options, argc, argv) ->>ASSERTION Good A -A successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -shall perform initialization for the previously opened display connection -specified -by -.A display -and add it to the application context -.A app_context. ->>CODE -Display *display_good; -String name_good, class_good; -int argcount = 0; - - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - tet_infoline("PREP: Open a display connection"); - sleep(config.reset_delay); - display_good = XOpenDisplay(config.display); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Initialize display and add it to an application context."); - XtDisplayInitialize(app_ctext, display_good, "tdsplyintl1", - "Tdsplyintl1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - (String *)NULL ); - XtAppSetErrorMsgHandler(app_ctext, xt_handler); - tet_infoline("TEST: Get the application name and class"); - XtGetApplicationNameAndClass(display_good, &name_good, - &class_good ); - tet_infoline("TEST: Check the name and class are valid."); - check_str("tdsplyintl1", name_good, "Name of Application"); - check_str("Tdsplyintl1", class_good, "Class of Application"); - tet_result(TET_PASS); ->>ASSERTION Good A -When the synchronize resource is set to True in the resource database -created by a successful call to -void XtDisplayInitialize(app_context, display, application_name, -application_class, options, num_options, argc, argv) -it shall put Xlib into synchronous mode for this display connection -and any others currently open in the application context app_context. ->>CODE -Window window; -int scr; -static char *property_data = "Hello World"; -XtAppContext app_ctext; -Display *display; -int queued_events, events; -int argc = 2; - /* - ** -synchronous on - ** +synchronous off - */ -char *argv[] = { "tdsplyintl2", "-synchronous", (char *)NULL }; - - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - tet_infoline("PREP: Open a display connection"); - sleep(config.reset_delay); - display = XOpenDisplay(config.display); - if (display == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("PREP: Create a window for events"); - scr = DefaultScreen(display); - window = XCreateWindow(display, RootWindow(display, scr), - 0, 0, 5, 5, 0, /* x,y,wid,ht,brd width */ - DefaultDepth(display, scr), - InputOutput, - DefaultVisual(display, scr), - (XtValueMask) 0, - (XSetWindowAttributes *) 0); - tet_infoline("TEST: Initialize display and add it to an application context."); - XtDisplayInitialize(app_ctext, display, - "tdsplyintl2", - "Tdsplyintl2", - (XrmOptionDescRec *)NULL, - (Cardinal)0, - &argc, &argv[0] ); - tet_infoline("TEST: Check Xlib is in synchronous mode"); - queued_events = XQLength(display); - XSelectInput(display, window, - (unsigned long)PropertyChangeMask); - for (events = 0; events < 3; events++) - XChangeProperty(display, window, XA_RESOURCE_MANAGER, - XA_STRING, 8,0, (unsigned char *)property_data, 16); - check_dec(3+queued_events, XQLength(display), "queue length"); - tet_result(TET_PASS); ->>ASSERTION Good B 0 -If the implementation is X11R5 or later: -When a language procedure has been registered for the application context -.A app_context -a successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -shall call the language procedure with a language string determined -by searching the following sources in the specified order: - -- the -xnlLanguage resource or a -xrm option containing the - xnlLanguage/XnlLanguage resource defined in the command line, - -- the resource application_name.xnlLanguage, class - application_class.XnlLanguage in the server's RESOURCE_MANAGER - property for the root window of screen zero if it exists, and in - the user preference resource file otherwise. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has been registered for the application context -.A app_context -a successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -shall call the procedure with the empty string if the server's -RESOURCE_MANAGER property for the root window of screen zero exists -and a language string is not found on the command line or in this -property. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has been registered for the application context -.A app_context -a successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -shall call the procedure with the empty string if the server's -RESOURCE_MANAGER property for the root window of screen zero does not exist -and a language string is not found on the command line or in the user -preference resource file. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has not been registered for the application context -.A app_context -a successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -shall determine a language string for the display -by searching the following sources in the specified order: - -- the resource database created from the command line. - -- the resource application_name.xnlLanguage, class - application_class.XnlLanguage in the server's RESOURCE_MANAGER - property for the root window of screen zero if it exists, or in - the user preference resource file otherwise. - -- the environment. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later and is POSIX-based: -When a language procedure has not been registered for the application context -.A app_context -a successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -shall use the LANG environment variable as the environment value to -search when determining the language string for the display. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has not been registered for the application context -.A app_context -a successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -shall set the language string for the display to the empty string if the -server's RESOURCE_MANAGER property for the root window of screen zero exists, -and a language string is not found on the command line, in this -property, or in the environment. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has not been registered for the application context -.A app_context -a successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -shall set the language string for the display to the empty string if the -server's RESOURCE_MANAGER property for the root window of screen zero does -not exist and a language string is not found on the command line, in the user -preference resource file, or in the environment. ->>ASSERTION Good B 0 -A successful call to -void XtDisplayInitialize(app_context, display, application_name, -application_name, application_class, options, num_options, argc, argv) -shall associate with the default screen of the display a resource -database created by combining entries from the following sources, -in order, with the first named source having the highest precedence: - -- the application command line - -- the user's environment resource file - -- per-screen resource specifications from the server, as returned by - XScreenResourceString() - -- per display resource specifications from the server (the - server's RESOURCE_MANAGER property for the root window of - screen zero) if they exist, otherwise the user preference file - -- the application-specific user resource file. - -- the application-specific class resource file . ->>ASSERTION Good A -A successful call to -void XtDisplayInitialize(app_context, display, application_name, -application_class, options, num_options, argc, argv) -shall recognize options specified on the command line that are in the -standard table of options in section 4.4 of the specification or in -the table specific to the application specified by -.A options -and -.A num_options. ->>CODE -Display *display_good; -String name_good, class_good; -int argcount = 20; -instance_variable_rec base; -pid_t pid2; - - FORK(pid2); - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - tet_infoline("PREP: Open a display connection"); - sleep(config.reset_delay); - display_good = XOpenDisplay(config.display); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Initialize display and add it to an application context."); - XtDisplayInitialize(app_ctext, display_good, "tdsplyintl1", - "Tdsplyintl1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - args11); - tet_infoline("TEST: Create top level widget"); - topLevel = XtAppCreateShell("Hello", "World", - applicationShellWidgetClass, display_good, - (ArgList)NULL, (Cardinal)0); - tet_infoline("TEST: Retrieve resource values from resource database"); - XtGetApplicationResources(topLevel, - &base, - resources, - 1, - (ArgList)NULL, - (Cardinal)0); - tet_infoline("TEST: Retrieved resource value"); - if ((base.foreground != 0) && (base.foreground != 1)) { - sprintf(ebuf, "ERROR: expected 0 or 1, received %d", base.foreground); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -void XtDisplayInitialize(app_context, display, application_name, -application_class, options, num_options, argc, argv) -when the reverseVideo resource is define as True on the command line shall use -the value of XtDefaultForeground instead of XtDefaultBackground and -vice versa in the resource database created for the display. ->>CODE -Window window; -int scr; -static char *property_data = "Hello World"; -XtAppContext app_ctext; -Display *display; -int queued_events, events; -XrmValue args[2]; -Cardinal num_args; -XrmValue fromVal; -XrmValue toVal; -Boolean closure; -XtPointer closure_ret = (XtPointer *) &closure; -int argc = 2; -char *argv[] = { "tdsplyintl2", "+rv", (char *)NULL }; -Screen *screen; -Colormap colormap; -pid_t pid2; -Pixel res; -Boolean status; - - FORK(pid2); - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - tet_infoline("PREP: Open a display connection"); - sleep(config.reset_delay); - display = XOpenDisplay(config.display); - if (display == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Initializae display connection with +rv in args"); - XtDisplayInitialize(app_ctext, display, "tdsplyintl1", - "Tdsplyintl1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argc, - &argv[0] ); - tet_infoline("PREP: Set up required conversion args"); - screen = DefaultScreenOfDisplay(display); - args[0].addr = (XtPointer )&screen; - args[0].size = sizeof(Screen*); - colormap = DefaultColormapOfScreen(screen); - args[1].addr = (XtPointer) &colormap; - args[1].size = sizeof(Colormap); - num_args = 2; - tet_infoline("TEST: Convert XtDefaultForeground"); - fromVal.addr = XtDefaultForeground; - fromVal.size = strlen(XtDefaultForeground)+1; - toVal.addr = (XtPointer) &res; - toVal.size = sizeof(Pixel); - status = XtCvtStringToPixel(display, - &args[0], - &num_args, - &fromVal, - &toVal, - &closure_ret); - check_dec(True, status, "XtCvtStringToPixel return value"); - tet_infoline("TEST: Conversion result"); - check_dec(XBlackPixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); - tet_infoline("TEST: Convert XtDefaultBackground"); - fromVal.addr = XtDefaultBackground; - fromVal.size = strlen(XtDefaultBackground)+1; - toVal.addr = (XtPointer) &res; - toVal.size = sizeof(Pixel); - status = XtCvtStringToPixel(display, - &args[0], - &num_args, - &fromVal, - &toVal, - &closure_ret); - check_dec(True, status, "XtCvtStringToPixel return value"); - tet_infoline("TEST: Conversion result"); - check_dec(XWhitePixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good B 5 -A successful call to -void XtDisplayInitialize(app_context, display, application_name, -application_class, options, num_options, argc, argv) -when the application context app_context has more than one display and -the selectionTimeout resource is specified on the command line shall set -this value in the selectionTimeout resource in the resource databases -of all the displays in the application context. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -when the environment variable XENVIRONMENT exists shall use the value -of this variable as the name of the user environment resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -when the environment variable XENVIRONMENT does not exist shall use -the file .Xdefaults-host, where host is the name of the system running -the application, in the user's home directory as the user environment -resource file. ->>ASSERTION Good B 0 -A successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -shall set the values from the higher precedence sources of the resource -database being created for the display as the current resource database -before determining the file name for the application-specific user resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -when the environment variable XUSERFILESEARCHPATH is defined -shall use the result of calling XtResolvePathname(display, path, -NULL, NULL, NULL, NULL, 0, NULL) with the value of this variable as path -as the name of the application-specific user resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -when the environment variable XUSERFILESEARCHPATH is not defined and -the environment variable XAPPLRESDIR is not defined shall -use the result of calling XtResolvePathname(display, path, -NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific -user resource file where path contains at least entries containing $HOME as -the directory prefix plus the following substitutions, in the order specified: - -- %C, %N, %L or %C, %N, %l, %t, %c - -- %C, %N, %l - -- %C, %N - -- %N, %L or %N, %l, %t, %c - -- %N, %l - -- %N ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -when the environment variable XUSERFILESEARCHPATH is not defined and -the environment variable XAPPLRESDIR is defined shall use the result -of calling XtResolvePathname(display, path, NULL, NULL, NULL, NULL, 0, NULL) -as the name of the application-specific user resource file where path -contains at least entries containing the following directory prefixes and -substitutions, in the order specified: - -- $XPPLRESDIR with %C, %N, %L or %C, %N, %l, %t, %c - -- $XPPLRESDIR with %C, %N, %l - -- $XPPLRESDIR with %C, %N - -- $XPPLRESDIR with %N, %L or %N, %l, %t, %c - -- $XPPLRESDIR with %N, %l - -- $XPPLRESDIR with %N - -- $HOME with %N ->>ASSERTION Good B 0 -A successful call to -void XtDisplayInitialize(app_context, display, -application_name, application_class, options, num_options, argc, argv) -shall use the result of calling XtResolvePathname(display, "app-defaults", -NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific -class resource file, with the values from the higher precedence sources of -the resource database being created for the display set as the current -resource database before the call is made. diff --git a/xts5/Xt4/XtDisplayOfObject.m b/xts5/Xt4/XtDisplayOfObject.m new file mode 100644 index 00000000..c8569bc6 --- /dev/null +++ b/xts5/Xt4/XtDisplayOfObject.m @@ -0,0 +1,114 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtDisplayOfObject.m +>># +>># Description: +>># Tests for XtDisplayOfObject() +>># +>># Modifications: +>># $Log: tdisplofo.m,v $ +>># Revision 1.1 2005-02-12 14:38:00 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:30 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:20 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:39 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:13 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:22 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:17 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtDisplayOfObject Xt4 +Display * +XtDisplayOfObject(object) +>>ASSERTION Good A +A call to Display *XtDisplayOfObject(object) when object is a widget +shall return the display pointer for the widget. +>>CODE +Widget labelw_good , widget_good; +Display *display_good; +Window window_good; + + avs_xt_hier("Tdisplofo1", "XtDisplayOfObject"); + tet_infoline("PREP: Create label widget `Hello' in boxw1 widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Get the display pointer for label widget `Hello' "); + if ((display_good = XtDisplayOfObject(labelw_good) ) == NULL ) { + sprintf(ebuf, "ERROR: Expected display pointer returned NULL"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Display pointer is valid for widget"); + window_good = XtWindow(labelw_good); + widget_good = XtWindowToWidget(display_good, window_good); + check_str("Hello", XtName(widget_good), "widget name"); + tet_result(TET_PASS); +>>ASSERTION Good A +A call to Display *XtDisplayOfObject(object) when object is not a widget +shall return the display pointer of the nearest ancestor of object +that belongs to class Widget or a subclass thereof. +>>CODE +Widget widget_good; +Display *display_good; +Window window_good; + + avs_xt_hier("Tdisplofo2", "XtDisplayOfObject"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Get the display pointer for nearest widget"); + tet_infoline(" to push button gadget"); + if ( ( display_good = XtDisplayOfObject(click_quit) ) == NULL ) { + sprintf(ebuf, "ERROR: Expected valid display pointer returned NULL"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Display pointer is valid"); + window_good = XtWindow(rowcolw); + widget_good = XtWindowToWidget(display_good, window_good); + check_str("rowcolw", XtName(widget_good), "widget name"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtDisplayOfObject/XtDisplayOfObject.m b/xts5/Xt4/XtDisplayOfObject/XtDisplayOfObject.m deleted file mode 100644 index e1f65be1..00000000 --- a/xts5/Xt4/XtDisplayOfObject/XtDisplayOfObject.m +++ /dev/null @@ -1,114 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtDisplayOfObject/XtDisplayOfObject.m ->># ->># Description: ->># Tests for XtDisplayOfObject() ->># ->># Modifications: ->># $Log: tdisplofo.m,v $ ->># Revision 1.1 2005-02-12 14:38:00 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:30 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:20 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:39 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:13 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:22 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:17 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtDisplayOfObject Xt4 -Display * -XtDisplayOfObject(object) ->>ASSERTION Good A -A call to Display *XtDisplayOfObject(object) when object is a widget -shall return the display pointer for the widget. ->>CODE -Widget labelw_good , widget_good; -Display *display_good; -Window window_good; - - avs_xt_hier("Tdisplofo1", "XtDisplayOfObject"); - tet_infoline("PREP: Create label widget `Hello' in boxw1 widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Get the display pointer for label widget `Hello' "); - if ((display_good = XtDisplayOfObject(labelw_good) ) == NULL ) { - sprintf(ebuf, "ERROR: Expected display pointer returned NULL"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Display pointer is valid for widget"); - window_good = XtWindow(labelw_good); - widget_good = XtWindowToWidget(display_good, window_good); - check_str("Hello", XtName(widget_good), "widget name"); - tet_result(TET_PASS); ->>ASSERTION Good A -A call to Display *XtDisplayOfObject(object) when object is not a widget -shall return the display pointer of the nearest ancestor of object -that belongs to class Widget or a subclass thereof. ->>CODE -Widget widget_good; -Display *display_good; -Window window_good; - - avs_xt_hier("Tdisplofo2", "XtDisplayOfObject"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Get the display pointer for nearest widget"); - tet_infoline(" to push button gadget"); - if ( ( display_good = XtDisplayOfObject(click_quit) ) == NULL ) { - sprintf(ebuf, "ERROR: Expected valid display pointer returned NULL"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Display pointer is valid"); - window_good = XtWindow(rowcolw); - widget_good = XtWindowToWidget(display_good, window_good); - check_str("rowcolw", XtName(widget_good), "widget name"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtIsRealized.m b/xts5/Xt4/XtIsRealized.m new file mode 100644 index 00000000..46624fe2 --- /dev/null +++ b/xts5/Xt4/XtIsRealized.m @@ -0,0 +1,111 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtIsRealized.m +>># +>># Description: +>># Tests for XtIsRealized() +>># +>># Modifications: +>># $Log: tisrealiz.m,v $ +>># Revision 1.1 2005-02-12 14:38:02 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:33 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:24 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:42 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:16 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:29 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:26 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtIsRealized Xt4 +Boolean XtIsRealized(object) +>>ASSERTION Good A +A call to Boolean XtIsRealized(w) shall return True when the window for +the widget w has a non-zero ID. +>>CODE +Boolean status; + + avs_xt_hier("Tisrealiz1", "XtIsRealized"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Widget labelw is realized shall return True"); + status = XtIsRealized(labelw); + check_dec(True, status, "Return value"); + tet_result(TET_PASS); +>>ASSERTION Good A +A call to Boolean XtIsRealized(w) shall when the widget w has not been +realized shall return a value other than True. +>>CODE +Boolean status; + + avs_xt_hier("Tisrealiz2", "XtIsRealized"); + tet_infoline("TEST: labelw widget NOT realized - shall return False"); + status = XtIsRealized(labelw); + check_dec(False, status, "Return value"); + tet_result(TET_PASS); +>>ASSERTION Good C +If the implementation is X11R5 or later: +A call to Boolean XtIsRealized(w) when w is not a widget shall +return the state of the nearest widget ancestor. +>>CODE +Widget test_widget; +Boolean status; + + avs_xt_hier("Tisrealiz1", "XtIsRealized"); + tet_infoline("PREP: Create AVS RectObj widget"); + test_widget = XtVaCreateManagedWidget("avsro", avsrectObjClass, topLevel, NULL); + + tet_infoline("TEST: XtIsRealized returns False"); + status = XtIsRealized(test_widget); + check_dec(False, status, "Return value"); + tet_infoline("PREP: Realize nearest widget ancenstor"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: XtIsRealized returns True"); + status = XtIsRealized(test_widget); + check_dec(True, status, "Return value"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtIsRealized/XtIsRealized.m b/xts5/Xt4/XtIsRealized/XtIsRealized.m deleted file mode 100644 index ba04f655..00000000 --- a/xts5/Xt4/XtIsRealized/XtIsRealized.m +++ /dev/null @@ -1,111 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtIsRealized/XtIsRealized.m ->># ->># Description: ->># Tests for XtIsRealized() ->># ->># Modifications: ->># $Log: tisrealiz.m,v $ ->># Revision 1.1 2005-02-12 14:38:02 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:33 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:24 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:42 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:16 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:29 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:26 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtIsRealized Xt4 -Boolean XtIsRealized(object) ->>ASSERTION Good A -A call to Boolean XtIsRealized(w) shall return True when the window for -the widget w has a non-zero ID. ->>CODE -Boolean status; - - avs_xt_hier("Tisrealiz1", "XtIsRealized"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Widget labelw is realized shall return True"); - status = XtIsRealized(labelw); - check_dec(True, status, "Return value"); - tet_result(TET_PASS); ->>ASSERTION Good A -A call to Boolean XtIsRealized(w) shall when the widget w has not been -realized shall return a value other than True. ->>CODE -Boolean status; - - avs_xt_hier("Tisrealiz2", "XtIsRealized"); - tet_infoline("TEST: labelw widget NOT realized - shall return False"); - status = XtIsRealized(labelw); - check_dec(False, status, "Return value"); - tet_result(TET_PASS); ->>ASSERTION Good C -If the implementation is X11R5 or later: -A call to Boolean XtIsRealized(w) when w is not a widget shall -return the state of the nearest widget ancestor. ->>CODE -Widget test_widget; -Boolean status; - - avs_xt_hier("Tisrealiz1", "XtIsRealized"); - tet_infoline("PREP: Create AVS RectObj widget"); - test_widget = XtVaCreateManagedWidget("avsro", avsrectObjClass, topLevel, NULL); - - tet_infoline("TEST: XtIsRealized returns False"); - status = XtIsRealized(test_widget); - check_dec(False, status, "Return value"); - tet_infoline("PREP: Realize nearest widget ancenstor"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: XtIsRealized returns True"); - status = XtIsRealized(test_widget); - check_dec(True, status, "Return value"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtMergeArgLists.m b/xts5/Xt4/XtMergeArgLists.m new file mode 100644 index 00000000..be5a7a98 --- /dev/null +++ b/xts5/Xt4/XtMergeArgLists.m @@ -0,0 +1,123 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtMergeArgLists.m +>># +>># Description: +>># Tests for XtMergeArgLists() +>># +>># Modifications: +>># $Log: tmrgarglst.m,v $ +>># Revision 1.1 2005-02-12 14:38:02 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:22 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:11 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:32 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:06 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:56 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:42 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtMergeArgLists Xt4 +ArgList +XtMergeArgLists(args1, num_args1, args2, num_args2) +>>ASSERTION Good A +A call to ArgList XtMergeArgLists(args1, num_args1, args2, num_args2) shall +combine args1 and args2, store them in a newly allocated ArgList, and +return a pointer the new ArgList. +>>CODE +Arg list_one[1], list_two[1] ; +ArgList ArgPtr; + + avs_xt_hier("Tmrgarglst1", "XtMergeArgLists"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Allocate memory for list"); + ArgPtr = (Arg *) malloc(sizeof(Arg)); + tet_infoline("PREP: Construct two argument lists to be merged"); + list_one[0].name = "Hello"; + list_one[0].value = (XtArgVal) 100; + list_two[0].name = "World"; + list_two[0].value = (XtArgVal) 100; + tet_infoline("PREP: Call XtMergeArgList"); + ArgPtr = XtMergeArgLists(&list_one[0], 1, &list_two[0], 1); + tet_infoline("TEST: Two lists were merged"); + check_str("Hello", ArgPtr[0].name, "ArgPtr[0].name"); + check_dec(100, ArgPtr[0].value, "ArgPtr[0].value"); + check_str("World", ArgPtr[1].name, "ArgPtr[1].name"); + check_dec(100, ArgPtr[1].value, "ArgPtr[1].value"); + XtFree((char *)ArgPtr); + tet_result(TET_PASS); +>>ASSERTION Good A +A call to ArgList XtMergeArgLists(args1, num_args1, args2, num_args2) +shall not check for duplicate entries in args1 and args2. +>>CODE +Arg list_one[1], list_two[1] ; +ArgList ArgPtr; + + avs_xt_hier("Tmrgarglst2", "XtMergeArgLists"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Allocate memory for list"); + ArgPtr = (Arg *) malloc(sizeof(Arg)); + tet_infoline("PREP: Construct two overlapping argument lists to be merged"); + list_one[0].name = "Hello"; + list_one[0].value = (XtArgVal) 100; + list_two[0].name = "Hello"; + list_two[0].value = (XtArgVal) 100; + tet_infoline("PREP: Call XtMergeArgList"); + ArgPtr = XtMergeArgLists(&list_one[0], 1, &list_two[0], 1); + tet_infoline("TEST: Duplicates retained when two lists were merged"); + check_str("Hello", ArgPtr[0].name, "ArgPtr[0].name"); + check_dec(100, ArgPtr[0].value, "ArgPtr[0].value"); + check_str("Hello", ArgPtr[1].name, "ArgPtr[1].name"); + check_dec(100, ArgPtr[1].value, "ArgPtr[1].value"); + XtFree((char *)ArgPtr); + tet_result(TET_PASS); +>>ASSERTION Good B 3 +On a call to +ArgList XtMergeArgLists(args1, num_args1, args2, num_args2) +the length of the new list shall be the sum of args1 and args2. diff --git a/xts5/Xt4/XtMergeArgLists/XtMergeArgLists.m b/xts5/Xt4/XtMergeArgLists/XtMergeArgLists.m deleted file mode 100644 index 3a522840..00000000 --- a/xts5/Xt4/XtMergeArgLists/XtMergeArgLists.m +++ /dev/null @@ -1,123 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtMergeArgLists/XtMergeArgLists.m ->># ->># Description: ->># Tests for XtMergeArgLists() ->># ->># Modifications: ->># $Log: tmrgarglst.m,v $ ->># Revision 1.1 2005-02-12 14:38:02 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:22 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:11 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:32 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:06 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:56 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:42 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtMergeArgLists Xt4 -ArgList -XtMergeArgLists(args1, num_args1, args2, num_args2) ->>ASSERTION Good A -A call to ArgList XtMergeArgLists(args1, num_args1, args2, num_args2) shall -combine args1 and args2, store them in a newly allocated ArgList, and -return a pointer the new ArgList. ->>CODE -Arg list_one[1], list_two[1] ; -ArgList ArgPtr; - - avs_xt_hier("Tmrgarglst1", "XtMergeArgLists"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Allocate memory for list"); - ArgPtr = (Arg *) malloc(sizeof(Arg)); - tet_infoline("PREP: Construct two argument lists to be merged"); - list_one[0].name = "Hello"; - list_one[0].value = (XtArgVal) 100; - list_two[0].name = "World"; - list_two[0].value = (XtArgVal) 100; - tet_infoline("PREP: Call XtMergeArgList"); - ArgPtr = XtMergeArgLists(&list_one[0], 1, &list_two[0], 1); - tet_infoline("TEST: Two lists were merged"); - check_str("Hello", ArgPtr[0].name, "ArgPtr[0].name"); - check_dec(100, ArgPtr[0].value, "ArgPtr[0].value"); - check_str("World", ArgPtr[1].name, "ArgPtr[1].name"); - check_dec(100, ArgPtr[1].value, "ArgPtr[1].value"); - XtFree((char *)ArgPtr); - tet_result(TET_PASS); ->>ASSERTION Good A -A call to ArgList XtMergeArgLists(args1, num_args1, args2, num_args2) -shall not check for duplicate entries in args1 and args2. ->>CODE -Arg list_one[1], list_two[1] ; -ArgList ArgPtr; - - avs_xt_hier("Tmrgarglst2", "XtMergeArgLists"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Allocate memory for list"); - ArgPtr = (Arg *) malloc(sizeof(Arg)); - tet_infoline("PREP: Construct two overlapping argument lists to be merged"); - list_one[0].name = "Hello"; - list_one[0].value = (XtArgVal) 100; - list_two[0].name = "Hello"; - list_two[0].value = (XtArgVal) 100; - tet_infoline("PREP: Call XtMergeArgList"); - ArgPtr = XtMergeArgLists(&list_one[0], 1, &list_two[0], 1); - tet_infoline("TEST: Duplicates retained when two lists were merged"); - check_str("Hello", ArgPtr[0].name, "ArgPtr[0].name"); - check_dec(100, ArgPtr[0].value, "ArgPtr[0].value"); - check_str("Hello", ArgPtr[1].name, "ArgPtr[1].name"); - check_dec(100, ArgPtr[1].value, "ArgPtr[1].value"); - XtFree((char *)ArgPtr); - tet_result(TET_PASS); ->>ASSERTION Good B 3 -On a call to -ArgList XtMergeArgLists(args1, num_args1, args2, num_args2) -the length of the new list shall be the sum of args1 and args2. diff --git a/xts5/Xt4/XtName.m b/xts5/Xt4/XtName.m new file mode 100644 index 00000000..1e3fe68a --- /dev/null +++ b/xts5/Xt4/XtName.m @@ -0,0 +1,80 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtName.m +>># +>># Description: +>># Tests for XtName() +>># +>># Modifications: +>># $Log: tname.m,v $ +>># Revision 1.1 2005-02-12 14:38:03 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:31 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:22 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:41 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:15 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:26 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:21 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtName Xt4 +String +XtName(object) +>>ASSERTION Good A +A call to String XtName(object) shall return a pointer to the +instance name of object. +>>CODE +Widget labelw_good; + + avs_xt_hier("Tname1", "XtName"); + tet_infoline("PREP: Create test label widget name `Hello' in first box widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: XtName returns instance name"); + check_str("Hello", XtName(labelw_good), "labelw_good name"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtName/XtName.m b/xts5/Xt4/XtName/XtName.m deleted file mode 100644 index 00d7d4f9..00000000 --- a/xts5/Xt4/XtName/XtName.m +++ /dev/null @@ -1,80 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtName/XtName.m ->># ->># Description: ->># Tests for XtName() ->># ->># Modifications: ->># $Log: tname.m,v $ ->># Revision 1.1 2005-02-12 14:38:03 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:31 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:22 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:41 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:15 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:26 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:21 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtName Xt4 -String -XtName(object) ->>ASSERTION Good A -A call to String XtName(object) shall return a pointer to the -instance name of object. ->>CODE -Widget labelw_good; - - avs_xt_hier("Tname1", "XtName"); - tet_infoline("PREP: Create test label widget name `Hello' in first box widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: XtName returns instance name"); - check_str("Hello", XtName(labelw_good), "labelw_good name"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtOpenDisplay.m b/xts5/Xt4/XtOpenDisplay.m new file mode 100644 index 00000000..15d20e47 --- /dev/null +++ b/xts5/Xt4/XtOpenDisplay.m @@ -0,0 +1,888 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtOpenDisplay.m +>># +>># Description: +>># Tests for XtOpenDisplay() +>># +>># Modifications: +>># $Log: topndsply.m,v $ +>># Revision 1.1 2005-02-12 14:38:03 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:19 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:08 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.1 1998/06/23 22:52:09 andy +>># Added sleep(XT_RESET_DELAY) to each test. SR# 186. +>># +>># Revision 6.0 1998/03/02 05:27:30 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.1 1998/02/04 23:16:27 andy +>># Editorial +>># +>># Revision 5.0 1998/01/26 03:24:03 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.1 1998/01/13 03:19:37 andy +>># In test 20, changed closure_ret from XtPointer * to XtPointer (SR 146). +>># +>># Revision 4.0 1995/12/15 09:15:48 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:32 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; + +char *args11[] = { + "-background", "green", + "-bd", "green", + "-bg", "green", + "-borderwidth", "3", + "-bordercolor", "red", + "-bw", "3", + "-fg", "green", + "-font", XtDefaultFont, + "-fn", XtDefaultFont, + "-foreground", "blue", + "-geometry", "100x100", + "-iconic", + "-reverse", + "-rv", + "+rv", + "-selectionTimeout", "50", + "-synchronous", + "+synchronous", + "-title", "ApTest", + "-xnlLanguage", "C", + NULL}; + + +typedef struct _instance_variables { + long foreground; + String label; +} instance_variable_rec; + +static XtResource resources[] = { + { + XtNforeground, + XtCForeground, + XtRPixel, sizeof(Pixel), + XtOffsetOf(instance_variable_rec, foreground), + XtRString, "XtDefaultForeground" + }, + { + XtNlabel, + XtCLabel, + XtRString, sizeof(String), + XtOffsetOf(instance_variable_rec, label), + XtRString, "very bad idea" + }, +}; +>>TITLE XtOpenDisplay Xt4 +Display * +XtOpenDisplay(app_context, display_string, application_name, application_class, options, num_options, argc, argv) +>>ASSERTION Good A +A successful call to +Display *XtOpenDisplay(app_context, display_string, +application_name, application_class, options, num_options, argc, argv) +shall open the display specified by the argument display_string, create +a resource database for the display, and return a pointer to the opened +display. +>>CODE +Display *display_good; +String name_good, class_good; +int argcount = 0; + + XtToolkitInitialize(); + app_ctext= XtCreateApplicationContext(); + tet_infoline("TEST: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext, /* application context */ + (String)config.display, /* display name */ + "topndsply1", /* application name use argv[0] */ + "Topndsply1", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("PREP: Get the application name and class"); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + tet_infoline("TEST: Application name and class."); + check_str("topndsply1", name_good, "Name of Application:"); + check_str("Topndsply1", class_good,"Class of Application:"); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Display *XtOpenDisplay(app_context, display_string, +application_name, application_class, options, num_options, argc, argv) +when display_string is NULL shall use the -display option specified in +argv as the display to be opened and initialized. +>>CODE +char name_good[40]; +Display *display_good; +char *display_name; +int argc_count; +char **argv_string; +int count = 3; +char *argvals[4]; + + XtToolkitInitialize(); + app_ctext= XtCreateApplicationContext(); + tet_infoline("PREP: Construct -display option"); + argvals[0] = "topndsply2"; + argvals[1] = "-display"; + argvals[2] = (char *)config.display; + argvals[3] = (char *)NULL; + argc_count = count; + argv_string = &argvals[0]; + tet_infoline("TEST: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext, /* application context */ + (String)NULL, /* display name */ + "topndsply2", /* application name use argv[0] */ + "Topndsply2", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argc_count, + argv_string /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Display name is correct."); + display_name = XDisplayString(display_good); + check_str(config.display, display_name, "Display name"); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +when display_string is NULL and the -display option is not specified +in argv shall use the value set in the DISPLAY environment variable as +the display to be opened and initialized. +>>CODE +Display *display_good; +String name_good, class_good; +char return_name[40]; +char *display_name; +int argcount = 0; + + XtToolkitInitialize(); + app_ctext= XtCreateApplicationContext(); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext, /* application context */ + (String)NULL, /* display name */ + "topndsply3", /* application name use argv[0] */ + "Topndsply3", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Check the env DISPLAY name is used."); + display_name = XDisplayString(display_good); + check_str(config.display, display_name, "Display name"); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Display *XtOpenDisplay(app_context, display_string, +application_name, application_class, options, num_options, argc, argv) +when the -name option is specified in argv shall use this value as the +application name to query the server and screen resource databases for +the name.xnlLanguage resource to create the resource database for the display. +>>CODE +Display *display_good; +String name_good, class_good; +int argc_count; +char **argv_string; +int count = 3; +char *argvals[4]; + + XtToolkitInitialize(); + app_ctext= XtCreateApplicationContext(); + tet_infoline("PREP: Construct -name option"); + argvals[0] = "topndsply4"; + argvals[1] = "-name"; + argvals[2] = "topndsply4"; + argvals[3] = (char *)NULL; + argc_count = count; + argv_string = &argvals[0]; + tet_infoline("TEST: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext, /* application context */ + (String)config.display, /* display name */ + (String)NULL, /* application name use argv[0] */ + "Topndsply4", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argc_count, + argv_string /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("PREP: Get the application name"); + XtGetApplicationNameAndClass(display_good, &name_good, + &class_good ); + tet_infoline("TEST: Application name"); + check_str("topndsply4", name_good, "Name of Application:"); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Display *XtOpenDisplay(app_context, display_string, +application_name, application_class, options, num_options, argc, argv) +when the -name option is not specified in argv and application_name is +non-NULL shall use this value as the application name to query the +server and the screen resource databases for the name.xnlLanguage +resource to create the resource database for the display. +>>CODE +Display *display_good; +String name_good, class_good; +int argcount = 0; + + XtToolkitInitialize(); + app_ctext= XtCreateApplicationContext(); + tet_infoline("TEST: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext, /* application context */ + (String)config.display, /* display name */ + "topndsply5", /* application name use argv[0] */ + "Topndsply5", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("PREP: Get the application name"); + XtGetApplicationNameAndClass(display_good, &name_good, + &class_good ); + tet_infoline("TEST: Application name"); + check_str("topndsply5", name_good, "Name of Application"); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Display *XtOpenDisplay(app_context, display_string, +application_name, application_class, options, num_options, argc, argv) +when the -name option is not specified in argv, application_name is +NULL, and the environment variable RESOURCE_NAME is set shall use this +value as the application name to query the server and screen resource +databases for the name.xnlLanguage resource to create the resource database +for the display. +>>CODE +Display *display_good; +String name_good, class_good; +int argcount = 0; + + XtToolkitInitialize(); + app_ctext= XtCreateApplicationContext(); + tet_infoline("PREP: Set up env variable RESOURCE_NAME=topndsply5"); + putenv("RESOURCE_NAME=topndsply6"); + tet_infoline("TEST: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext, /* application context */ + (String)config.display, /* display name */ + (String)NULL, /* application name use argv[0] */ + "Topndsply6", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("PREP: Get the application name"); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + tet_infoline("TEST: Application name"); + check_str("topndsply6", name_good, "Name of Application:"); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to Display *XtOpenDisplay(app_context, display_string, +application_name, application_class, options, num_options, argc, argv) +when the -name option is not specified in argv, application_name is NULL, +the environment variable RESOURCE_NAME is not set, and argv[0] is not an +empty string shall use this value as the application name to query the +server and screen resource databases for the name.xnlLanguage resource to +create the resource database for the display. +>>CODE +Display *display_good; +String name_good, class_good; +int argc_count; +char **argv_string; +char argv1[] = "topndsply7"; +char *argvals[2] = { "topndsply7", 0 }; +int count = 1; + + argc_count = count; + argv_string = &argvals[0]; + XtToolkitInitialize(); + app_ctext= XtCreateApplicationContext(); + tet_infoline("TEST: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext, /* application context */ + (String)config.display, /* display name */ + (String)NULL, /* application name use argv[0] */ + "Topndsply7", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argc_count, + (String *)argv_string /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("PREP: Get the application name"); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + tet_infoline("TEST: Application name"); + check_str("topndsply7", name_good, "Name of Application:"); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to Display *XtOpenDisplay(app_context, display_string, +application_name, application_class, options, num_options, argc, argv) +when the -name option is not specified in argv, application_name is NULL, +the environment variable RESOURCE_NAME is not set, and argv[0] is an empty +string shall use the string "main" as the application name to query the +server and screen resource databases for the name.xnlLanguage resource to +create the resource database for the display. +>>CODE +Display *display_good; +String name_good, class_good; +int argcount = 0; + + XtToolkitInitialize(); + app_ctext= XtCreateApplicationContext(); + tet_infoline("TEST: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext, /* application context */ + (String)config.display, /* display name */ + (String)NULL, /* application name use argv[0] */ + "Topndsply1", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("PREP: Get the application name"); + XtGetApplicationNameAndClass(display_good, &name_good, + &class_good ); + tet_infoline("TEST: Application name is main"); + check_str("main", name_good, "Name of Application:"); + tet_result(TET_PASS); +>>ASSERTION Good A +A call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall return NULL on failure. +>>CODE +Display *display_good; +String name_good, class_good; +int argcount = 0; + + XtToolkitInitialize(); + app_ctext= XtCreateApplicationContext(); + tet_infoline("TEST: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext, /* application context */ + "gibberish", /* display name */ + "topndsply1", /* application name use argv[0] */ + "Topndsply1", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + tet_infoline("TEST: returns NULL with non-existant display"); + if (display_good != NULL) { + tet_infoline("ERROR: expected NULL, got a display"); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); +>># +>># Start of XtDisplayInitialize assertions +>># +>>ASSERTION Good A +When the synchronize resource is set to True in the resource database +created by a successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +it shall +put Xlib into synchronous mode for this display connection +and any others currently open in the application context app_context. +>>CODE +Window window; +int scr; +static char *property_data = "Hello World"; +XtAppContext app_ctext; +Display *display; +int queued_events, events; +int argc = 2; + /* + ** -synchronous on + ** +synchronous off + */ +char *argv[] = { "tdsplyintl2", "-synchronous", (char *)NULL }; + + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + tet_infoline("TEST: Open a display connection"); + sleep(config.reset_delay); + display = XtOpenDisplay(app_ctext, + config.display, + "tdsplyintl2", + "Tdsplyintl2", + (XrmOptionDescRec *)NULL, + (Cardinal)0, + &argc, &argv[0] ); + if (display == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("PREP: Create a window for events"); + scr = DefaultScreen(display); + window = XCreateWindow(display, RootWindow(display, scr), + 0, 0, 5, 5, 0, /* x,y,wid,ht,brd width */ + DefaultDepth(display, scr), + InputOutput, + DefaultVisual(display, scr), + (XtValueMask) 0, + (XSetWindowAttributes *) 0); + tet_infoline("TEST: Check Xlib is in synchronous mode"); + queued_events = XQLength(display); + XSelectInput(display, window, + (unsigned long)PropertyChangeMask); + for (events = 0; events < 3; events++) + XChangeProperty(display, window, XA_RESOURCE_MANAGER, + XA_STRING, 8,0, (unsigned char *)property_data, 16); + check_dec(3+queued_events, XQLength(display), "queue length"); + tet_result(TET_PASS); +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has been registered for the application context +.A app_context +a successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall call the language procedure with a language string determined +by searching the following sources in the specified order: + +- the -xnlLanguage resource or a -xrm option containing the + xnlLanguage/XnlLanguage resource defined in the command line, + +- the resource application_name.xnlLanguage, class + application_class.XnlLanguage in the server's RESOURCE_MANAGER + property for the root window of screen zero if it exists, and in + the user preference resource file otherwise. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has been registered for the application context +.A app_context +a successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall call the procedure with the empty string if the server's +RESOURCE_MANAGER property for the root window of screen zero exists +and a language string is not found on the command line or in this +property. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has been registered for the application context +.A app_context +a successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall call the procedure with the empty string if the server's +RESOURCE_MANAGER property for the root window of screen zero does not exist +and a language string is not found on the command line or in the user +preference resource file. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has not been registered for the application context +.A app_context +a successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall determine a language string for the display +by searching the following sources in the specified order: + +- the resource database created from the command line. + +- the resource application_name.xnlLanguage, class + application_class.XnlLanguage in the server's RESOURCE_MANAGER + property for the root window of screen zero if it exists, or in + the user preference resource file otherwise. + +- the environment. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later and is POSIX-based: +When a language procedure has not been registered for the application context +.A app_context +a successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall use the LANG environment variable as the environment value to +search when determining the language string for the display. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has not been registered for the application context +.A app_context +a successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall set the language string for the display to the empty string if the +server's RESOURCE_MANAGER property for the root window of screen zero exists, +and a language string is not found on the command line, in this +property, or in the environment. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +When a language procedure has not been registered for the application context +.A app_context +a successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall set the language string for the display to the empty string if the +server's RESOURCE_MANAGER property for the root window of screen zero does +not exist and a language string is not found on the command line, in the user +preference resource file, or in the environment. +>>ASSERTION Good D 0 +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall associate with the default screen of the display a resource +database created by combining entries from the following sources, +in order, with the first named source having the highest precedence: + +- the application command line + +- the user's environment resource file + +- per-screen resource specifications from the server, as returned by + XScreenResourceString() + +- per display resource specifications from the server (the + server's RESOURCE_MANAGER property for the root window of + screen zero) if they exist, otherwise the user preference file + +- the application-specific user resource file. + +- the application-specific class resource file . +>>ASSERTION Good A +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall recognize options specified on the command line that are in the +standard table of options in section 4.4 of the specification or in +the table specific to the application specified by +.A options +and +.A num_options. +>>CODE +Display *display_good; +String name_good, class_good; +int argcount = 20; +instance_variable_rec base; +pid_t pid2; + + FORK(pid2); + XtToolkitInitialize(); + app_ctext= XtCreateApplicationContext(); + tet_infoline("TEST: Open display"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext, /* application context */ + (String)config.display, /* display name */ + "topndsply1", /* application name use argv[0] */ + "Topndsply1", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal)0, /* command line options */ + &argcount, + args11 /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Create top level widget"); + topLevel = XtAppCreateShell("Hello", "World", + applicationShellWidgetClass, display_good, + (ArgList)NULL, (Cardinal)0); + tet_infoline("TEST: Retrieve resource values from resource database"); + XtGetApplicationResources(topLevel, + &base, + resources, + 1, + (ArgList)NULL, + (Cardinal)0); + tet_infoline("TEST: Retrieved resource value"); + if ((base.foreground != 0) && (base.foreground != 1)) { + sprintf(ebuf, "ERROR: expected foreground value of 0 or 1, received %d", base.foreground); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +when the reverseVideo resource is define as True on the command line shall use +the value of XtDefaultForeground instead of XtDefaultBackground and +vice versa in the resource database created for the display. +>>CODE +Window window; +int scr; +static char *property_data = "Hello World"; +XtAppContext app_ctext; +Display *display; +int queued_events, events; +XrmValue args[2]; +Cardinal num_args; +XrmValue fromVal; +XrmValue toVal; +Boolean closure; +XtPointer closure_ret = (XtPointer *) &closure; +int argc = 2; +char *argv[] = { "tdsplyintl2", "+rv", (char *)NULL }; +Screen *screen; +Colormap colormap; +pid_t pid2; +Pixel res; +Boolean status; + + FORK(pid2); + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + tet_infoline("TEST: Open a display connection with +rv in args"); + sleep(config.reset_delay); + display = XtOpenDisplay(app_ctext, + config.display, + "tdsplyintl2", + "Tdsplyintl2", + (XrmOptionDescRec *)NULL, + (Cardinal)0, + &argc, &argv[0] ); + if (display == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("PREP: Set up required conversion args"); + screen = DefaultScreenOfDisplay(display); + args[0].addr = (XtPointer )&screen; + args[0].size = sizeof(Screen*); + colormap = DefaultColormapOfScreen(screen); + args[1].addr = (XtPointer) &colormap; + args[1].size = sizeof(Colormap); + num_args = 2; + tet_infoline("TEST: Convert XtDefaultForeground"); + fromVal.addr = XtDefaultForeground; + fromVal.size = strlen(XtDefaultForeground)+1; + toVal.addr = (XtPointer) &res; + toVal.size = sizeof(Pixel); + status = XtCvtStringToPixel(display, + &args[0], + &num_args, + &fromVal, + &toVal, + &closure_ret); + check_dec(True, status, "XtCvtStringToPixel return value"); + tet_infoline("TEST: Conversion result"); + check_dec(XBlackPixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); + tet_infoline("TEST: Convert XtDefaultBackground"); + fromVal.addr = XtDefaultBackground; + fromVal.size = strlen(XtDefaultBackground)+1; + toVal.addr = (XtPointer) &res; + toVal.size = sizeof(Pixel); + status = XtCvtStringToPixel(display, + &args[0], + &num_args, + &fromVal, + &toVal, + &closure_ret); + check_dec(True, status, "XtCvtStringToPixel return value"); + tet_infoline("TEST: Conversion result"); + check_dec(XWhitePixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good B 5 +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +when the application context app_context has more than one display and +the selectionTimeout resource is specified on the command line shall set +this value in the selectionTimeout resource in the resource databases +of all the displays in the application context. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +when the environment variable XENVIRONMENT exists shall use the value +of this variable as the name of the user environment resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +when the environment variable XENVIRONMENT does not exist shall use +the file .Xdefaults-host, where host is the name of the system running +the application, in the user's home directory as the user environment +resource file. +>>ASSERTION Good B 0 +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall set the values from the higher precedence sources of the resource +database being created for the display as the current resource database +before determining the file name for the application-specific user resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +when the environment variable XUSERFILESEARCHPATH is defined +shall use the result of calling XtResolvePathname(display, path, +NULL, NULL, NULL, NULL, 0, NULL) with the value of this variable as path +as the name of the application-specific user resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +when the environment variable XUSERFILESEARCHPATH is not defined and +the environment variable XAPPLRESDIR is not defined shall +use the result of calling XtResolvePathname(display, path, +NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific +user resource file where path contains at least entries containing $HOME as +the directory prefix plus the following substitutions, in the order specified: + +- %C, %N, %L or %C, %N, %l, %t, %c + +- %C, %N, %l + +- %C, %N + +- %N, %L or %N, %l, %t, %c + +- %N, %l + +- %N +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +when the environment variable XUSERFILESEARCHPATH is not defined and +the environment variable XAPPLRESDIR is defined shall use the result +of calling XtResolvePathname(display, path, NULL, NULL, NULL, NULL, 0, NULL) +as the name of the application-specific user resource file where path +contains at least entries containing the following directory prefixes and +substitutions, in the order specified: + +- $XPPLRESDIR with %C, %N, %L or %C, %N, %l, %t, %c + +- $XPPLRESDIR with %C, %N, %l + +- $XPPLRESDIR with %C, %N + +- $XPPLRESDIR with %N, %L or %N, %l, %t, %c + +- $XPPLRESDIR with %N, %l + +- $XPPLRESDIR with %N + +- $HOME with %N +>>ASSERTION Good B 0 +A successful call to +Display *XtOpenDisplay(app_context, display_string, application_name, +application_class, options, num_options, argc, argv) +shall use the result of calling XtResolvePathname(display, "app-defaults", +NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific +class resource file, with the values from the higher precedence sources of +the resource database being created for the display set as the current +resource database before the call is made. diff --git a/xts5/Xt4/XtOpenDisplay/XtOpenDisplay.m b/xts5/Xt4/XtOpenDisplay/XtOpenDisplay.m deleted file mode 100644 index 425b22c0..00000000 --- a/xts5/Xt4/XtOpenDisplay/XtOpenDisplay.m +++ /dev/null @@ -1,888 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtOpenDisplay/XtOpenDisplay.m ->># ->># Description: ->># Tests for XtOpenDisplay() ->># ->># Modifications: ->># $Log: topndsply.m,v $ ->># Revision 1.1 2005-02-12 14:38:03 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:19 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:08 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.1 1998/06/23 22:52:09 andy ->># Added sleep(XT_RESET_DELAY) to each test. SR# 186. ->># ->># Revision 6.0 1998/03/02 05:27:30 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.1 1998/02/04 23:16:27 andy ->># Editorial ->># ->># Revision 5.0 1998/01/26 03:24:03 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.1 1998/01/13 03:19:37 andy ->># In test 20, changed closure_ret from XtPointer * to XtPointer (SR 146). ->># ->># Revision 4.0 1995/12/15 09:15:48 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:32 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; - -char *args11[] = { - "-background", "green", - "-bd", "green", - "-bg", "green", - "-borderwidth", "3", - "-bordercolor", "red", - "-bw", "3", - "-fg", "green", - "-font", XtDefaultFont, - "-fn", XtDefaultFont, - "-foreground", "blue", - "-geometry", "100x100", - "-iconic", - "-reverse", - "-rv", - "+rv", - "-selectionTimeout", "50", - "-synchronous", - "+synchronous", - "-title", "ApTest", - "-xnlLanguage", "C", - NULL}; - - -typedef struct _instance_variables { - long foreground; - String label; -} instance_variable_rec; - -static XtResource resources[] = { - { - XtNforeground, - XtCForeground, - XtRPixel, sizeof(Pixel), - XtOffsetOf(instance_variable_rec, foreground), - XtRString, "XtDefaultForeground" - }, - { - XtNlabel, - XtCLabel, - XtRString, sizeof(String), - XtOffsetOf(instance_variable_rec, label), - XtRString, "very bad idea" - }, -}; ->>TITLE XtOpenDisplay Xt4 -Display * -XtOpenDisplay(app_context, display_string, application_name, application_class, options, num_options, argc, argv) ->>ASSERTION Good A -A successful call to -Display *XtOpenDisplay(app_context, display_string, -application_name, application_class, options, num_options, argc, argv) -shall open the display specified by the argument display_string, create -a resource database for the display, and return a pointer to the opened -display. ->>CODE -Display *display_good; -String name_good, class_good; -int argcount = 0; - - XtToolkitInitialize(); - app_ctext= XtCreateApplicationContext(); - tet_infoline("TEST: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext, /* application context */ - (String)config.display, /* display name */ - "topndsply1", /* application name use argv[0] */ - "Topndsply1", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("PREP: Get the application name and class"); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - tet_infoline("TEST: Application name and class."); - check_str("topndsply1", name_good, "Name of Application:"); - check_str("Topndsply1", class_good,"Class of Application:"); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Display *XtOpenDisplay(app_context, display_string, -application_name, application_class, options, num_options, argc, argv) -when display_string is NULL shall use the -display option specified in -argv as the display to be opened and initialized. ->>CODE -char name_good[40]; -Display *display_good; -char *display_name; -int argc_count; -char **argv_string; -int count = 3; -char *argvals[4]; - - XtToolkitInitialize(); - app_ctext= XtCreateApplicationContext(); - tet_infoline("PREP: Construct -display option"); - argvals[0] = "topndsply2"; - argvals[1] = "-display"; - argvals[2] = (char *)config.display; - argvals[3] = (char *)NULL; - argc_count = count; - argv_string = &argvals[0]; - tet_infoline("TEST: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext, /* application context */ - (String)NULL, /* display name */ - "topndsply2", /* application name use argv[0] */ - "Topndsply2", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argc_count, - argv_string /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Display name is correct."); - display_name = XDisplayString(display_good); - check_str(config.display, display_name, "Display name"); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -when display_string is NULL and the -display option is not specified -in argv shall use the value set in the DISPLAY environment variable as -the display to be opened and initialized. ->>CODE -Display *display_good; -String name_good, class_good; -char return_name[40]; -char *display_name; -int argcount = 0; - - XtToolkitInitialize(); - app_ctext= XtCreateApplicationContext(); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext, /* application context */ - (String)NULL, /* display name */ - "topndsply3", /* application name use argv[0] */ - "Topndsply3", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Check the env DISPLAY name is used."); - display_name = XDisplayString(display_good); - check_str(config.display, display_name, "Display name"); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Display *XtOpenDisplay(app_context, display_string, -application_name, application_class, options, num_options, argc, argv) -when the -name option is specified in argv shall use this value as the -application name to query the server and screen resource databases for -the name.xnlLanguage resource to create the resource database for the display. ->>CODE -Display *display_good; -String name_good, class_good; -int argc_count; -char **argv_string; -int count = 3; -char *argvals[4]; - - XtToolkitInitialize(); - app_ctext= XtCreateApplicationContext(); - tet_infoline("PREP: Construct -name option"); - argvals[0] = "topndsply4"; - argvals[1] = "-name"; - argvals[2] = "topndsply4"; - argvals[3] = (char *)NULL; - argc_count = count; - argv_string = &argvals[0]; - tet_infoline("TEST: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext, /* application context */ - (String)config.display, /* display name */ - (String)NULL, /* application name use argv[0] */ - "Topndsply4", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argc_count, - argv_string /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("PREP: Get the application name"); - XtGetApplicationNameAndClass(display_good, &name_good, - &class_good ); - tet_infoline("TEST: Application name"); - check_str("topndsply4", name_good, "Name of Application:"); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Display *XtOpenDisplay(app_context, display_string, -application_name, application_class, options, num_options, argc, argv) -when the -name option is not specified in argv and application_name is -non-NULL shall use this value as the application name to query the -server and the screen resource databases for the name.xnlLanguage -resource to create the resource database for the display. ->>CODE -Display *display_good; -String name_good, class_good; -int argcount = 0; - - XtToolkitInitialize(); - app_ctext= XtCreateApplicationContext(); - tet_infoline("TEST: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext, /* application context */ - (String)config.display, /* display name */ - "topndsply5", /* application name use argv[0] */ - "Topndsply5", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("PREP: Get the application name"); - XtGetApplicationNameAndClass(display_good, &name_good, - &class_good ); - tet_infoline("TEST: Application name"); - check_str("topndsply5", name_good, "Name of Application"); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Display *XtOpenDisplay(app_context, display_string, -application_name, application_class, options, num_options, argc, argv) -when the -name option is not specified in argv, application_name is -NULL, and the environment variable RESOURCE_NAME is set shall use this -value as the application name to query the server and screen resource -databases for the name.xnlLanguage resource to create the resource database -for the display. ->>CODE -Display *display_good; -String name_good, class_good; -int argcount = 0; - - XtToolkitInitialize(); - app_ctext= XtCreateApplicationContext(); - tet_infoline("PREP: Set up env variable RESOURCE_NAME=topndsply5"); - putenv("RESOURCE_NAME=topndsply6"); - tet_infoline("TEST: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext, /* application context */ - (String)config.display, /* display name */ - (String)NULL, /* application name use argv[0] */ - "Topndsply6", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("PREP: Get the application name"); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - tet_infoline("TEST: Application name"); - check_str("topndsply6", name_good, "Name of Application:"); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to Display *XtOpenDisplay(app_context, display_string, -application_name, application_class, options, num_options, argc, argv) -when the -name option is not specified in argv, application_name is NULL, -the environment variable RESOURCE_NAME is not set, and argv[0] is not an -empty string shall use this value as the application name to query the -server and screen resource databases for the name.xnlLanguage resource to -create the resource database for the display. ->>CODE -Display *display_good; -String name_good, class_good; -int argc_count; -char **argv_string; -char argv1[] = "topndsply7"; -char *argvals[2] = { "topndsply7", 0 }; -int count = 1; - - argc_count = count; - argv_string = &argvals[0]; - XtToolkitInitialize(); - app_ctext= XtCreateApplicationContext(); - tet_infoline("TEST: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext, /* application context */ - (String)config.display, /* display name */ - (String)NULL, /* application name use argv[0] */ - "Topndsply7", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argc_count, - (String *)argv_string /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("PREP: Get the application name"); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - tet_infoline("TEST: Application name"); - check_str("topndsply7", name_good, "Name of Application:"); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to Display *XtOpenDisplay(app_context, display_string, -application_name, application_class, options, num_options, argc, argv) -when the -name option is not specified in argv, application_name is NULL, -the environment variable RESOURCE_NAME is not set, and argv[0] is an empty -string shall use the string "main" as the application name to query the -server and screen resource databases for the name.xnlLanguage resource to -create the resource database for the display. ->>CODE -Display *display_good; -String name_good, class_good; -int argcount = 0; - - XtToolkitInitialize(); - app_ctext= XtCreateApplicationContext(); - tet_infoline("TEST: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext, /* application context */ - (String)config.display, /* display name */ - (String)NULL, /* application name use argv[0] */ - "Topndsply1", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("PREP: Get the application name"); - XtGetApplicationNameAndClass(display_good, &name_good, - &class_good ); - tet_infoline("TEST: Application name is main"); - check_str("main", name_good, "Name of Application:"); - tet_result(TET_PASS); ->>ASSERTION Good A -A call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall return NULL on failure. ->>CODE -Display *display_good; -String name_good, class_good; -int argcount = 0; - - XtToolkitInitialize(); - app_ctext= XtCreateApplicationContext(); - tet_infoline("TEST: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext, /* application context */ - "gibberish", /* display name */ - "topndsply1", /* application name use argv[0] */ - "Topndsply1", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - tet_infoline("TEST: returns NULL with non-existant display"); - if (display_good != NULL) { - tet_infoline("ERROR: expected NULL, got a display"); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); ->># ->># Start of XtDisplayInitialize assertions ->># ->>ASSERTION Good A -When the synchronize resource is set to True in the resource database -created by a successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -it shall -put Xlib into synchronous mode for this display connection -and any others currently open in the application context app_context. ->>CODE -Window window; -int scr; -static char *property_data = "Hello World"; -XtAppContext app_ctext; -Display *display; -int queued_events, events; -int argc = 2; - /* - ** -synchronous on - ** +synchronous off - */ -char *argv[] = { "tdsplyintl2", "-synchronous", (char *)NULL }; - - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - tet_infoline("TEST: Open a display connection"); - sleep(config.reset_delay); - display = XtOpenDisplay(app_ctext, - config.display, - "tdsplyintl2", - "Tdsplyintl2", - (XrmOptionDescRec *)NULL, - (Cardinal)0, - &argc, &argv[0] ); - if (display == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("PREP: Create a window for events"); - scr = DefaultScreen(display); - window = XCreateWindow(display, RootWindow(display, scr), - 0, 0, 5, 5, 0, /* x,y,wid,ht,brd width */ - DefaultDepth(display, scr), - InputOutput, - DefaultVisual(display, scr), - (XtValueMask) 0, - (XSetWindowAttributes *) 0); - tet_infoline("TEST: Check Xlib is in synchronous mode"); - queued_events = XQLength(display); - XSelectInput(display, window, - (unsigned long)PropertyChangeMask); - for (events = 0; events < 3; events++) - XChangeProperty(display, window, XA_RESOURCE_MANAGER, - XA_STRING, 8,0, (unsigned char *)property_data, 16); - check_dec(3+queued_events, XQLength(display), "queue length"); - tet_result(TET_PASS); ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has been registered for the application context -.A app_context -a successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall call the language procedure with a language string determined -by searching the following sources in the specified order: - -- the -xnlLanguage resource or a -xrm option containing the - xnlLanguage/XnlLanguage resource defined in the command line, - -- the resource application_name.xnlLanguage, class - application_class.XnlLanguage in the server's RESOURCE_MANAGER - property for the root window of screen zero if it exists, and in - the user preference resource file otherwise. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has been registered for the application context -.A app_context -a successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall call the procedure with the empty string if the server's -RESOURCE_MANAGER property for the root window of screen zero exists -and a language string is not found on the command line or in this -property. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has been registered for the application context -.A app_context -a successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall call the procedure with the empty string if the server's -RESOURCE_MANAGER property for the root window of screen zero does not exist -and a language string is not found on the command line or in the user -preference resource file. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has not been registered for the application context -.A app_context -a successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall determine a language string for the display -by searching the following sources in the specified order: - -- the resource database created from the command line. - -- the resource application_name.xnlLanguage, class - application_class.XnlLanguage in the server's RESOURCE_MANAGER - property for the root window of screen zero if it exists, or in - the user preference resource file otherwise. - -- the environment. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later and is POSIX-based: -When a language procedure has not been registered for the application context -.A app_context -a successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall use the LANG environment variable as the environment value to -search when determining the language string for the display. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has not been registered for the application context -.A app_context -a successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall set the language string for the display to the empty string if the -server's RESOURCE_MANAGER property for the root window of screen zero exists, -and a language string is not found on the command line, in this -property, or in the environment. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -When a language procedure has not been registered for the application context -.A app_context -a successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall set the language string for the display to the empty string if the -server's RESOURCE_MANAGER property for the root window of screen zero does -not exist and a language string is not found on the command line, in the user -preference resource file, or in the environment. ->>ASSERTION Good D 0 -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall associate with the default screen of the display a resource -database created by combining entries from the following sources, -in order, with the first named source having the highest precedence: - -- the application command line - -- the user's environment resource file - -- per-screen resource specifications from the server, as returned by - XScreenResourceString() - -- per display resource specifications from the server (the - server's RESOURCE_MANAGER property for the root window of - screen zero) if they exist, otherwise the user preference file - -- the application-specific user resource file. - -- the application-specific class resource file . ->>ASSERTION Good A -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall recognize options specified on the command line that are in the -standard table of options in section 4.4 of the specification or in -the table specific to the application specified by -.A options -and -.A num_options. ->>CODE -Display *display_good; -String name_good, class_good; -int argcount = 20; -instance_variable_rec base; -pid_t pid2; - - FORK(pid2); - XtToolkitInitialize(); - app_ctext= XtCreateApplicationContext(); - tet_infoline("TEST: Open display"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext, /* application context */ - (String)config.display, /* display name */ - "topndsply1", /* application name use argv[0] */ - "Topndsply1", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal)0, /* command line options */ - &argcount, - args11 /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Create top level widget"); - topLevel = XtAppCreateShell("Hello", "World", - applicationShellWidgetClass, display_good, - (ArgList)NULL, (Cardinal)0); - tet_infoline("TEST: Retrieve resource values from resource database"); - XtGetApplicationResources(topLevel, - &base, - resources, - 1, - (ArgList)NULL, - (Cardinal)0); - tet_infoline("TEST: Retrieved resource value"); - if ((base.foreground != 0) && (base.foreground != 1)) { - sprintf(ebuf, "ERROR: expected foreground value of 0 or 1, received %d", base.foreground); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -when the reverseVideo resource is define as True on the command line shall use -the value of XtDefaultForeground instead of XtDefaultBackground and -vice versa in the resource database created for the display. ->>CODE -Window window; -int scr; -static char *property_data = "Hello World"; -XtAppContext app_ctext; -Display *display; -int queued_events, events; -XrmValue args[2]; -Cardinal num_args; -XrmValue fromVal; -XrmValue toVal; -Boolean closure; -XtPointer closure_ret = (XtPointer *) &closure; -int argc = 2; -char *argv[] = { "tdsplyintl2", "+rv", (char *)NULL }; -Screen *screen; -Colormap colormap; -pid_t pid2; -Pixel res; -Boolean status; - - FORK(pid2); - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - tet_infoline("TEST: Open a display connection with +rv in args"); - sleep(config.reset_delay); - display = XtOpenDisplay(app_ctext, - config.display, - "tdsplyintl2", - "Tdsplyintl2", - (XrmOptionDescRec *)NULL, - (Cardinal)0, - &argc, &argv[0] ); - if (display == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("PREP: Set up required conversion args"); - screen = DefaultScreenOfDisplay(display); - args[0].addr = (XtPointer )&screen; - args[0].size = sizeof(Screen*); - colormap = DefaultColormapOfScreen(screen); - args[1].addr = (XtPointer) &colormap; - args[1].size = sizeof(Colormap); - num_args = 2; - tet_infoline("TEST: Convert XtDefaultForeground"); - fromVal.addr = XtDefaultForeground; - fromVal.size = strlen(XtDefaultForeground)+1; - toVal.addr = (XtPointer) &res; - toVal.size = sizeof(Pixel); - status = XtCvtStringToPixel(display, - &args[0], - &num_args, - &fromVal, - &toVal, - &closure_ret); - check_dec(True, status, "XtCvtStringToPixel return value"); - tet_infoline("TEST: Conversion result"); - check_dec(XBlackPixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); - tet_infoline("TEST: Convert XtDefaultBackground"); - fromVal.addr = XtDefaultBackground; - fromVal.size = strlen(XtDefaultBackground)+1; - toVal.addr = (XtPointer) &res; - toVal.size = sizeof(Pixel); - status = XtCvtStringToPixel(display, - &args[0], - &num_args, - &fromVal, - &toVal, - &closure_ret); - check_dec(True, status, "XtCvtStringToPixel return value"); - tet_infoline("TEST: Conversion result"); - check_dec(XWhitePixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good B 5 -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -when the application context app_context has more than one display and -the selectionTimeout resource is specified on the command line shall set -this value in the selectionTimeout resource in the resource databases -of all the displays in the application context. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -when the environment variable XENVIRONMENT exists shall use the value -of this variable as the name of the user environment resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -when the environment variable XENVIRONMENT does not exist shall use -the file .Xdefaults-host, where host is the name of the system running -the application, in the user's home directory as the user environment -resource file. ->>ASSERTION Good B 0 -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall set the values from the higher precedence sources of the resource -database being created for the display as the current resource database -before determining the file name for the application-specific user resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -when the environment variable XUSERFILESEARCHPATH is defined -shall use the result of calling XtResolvePathname(display, path, -NULL, NULL, NULL, NULL, 0, NULL) with the value of this variable as path -as the name of the application-specific user resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -when the environment variable XUSERFILESEARCHPATH is not defined and -the environment variable XAPPLRESDIR is not defined shall -use the result of calling XtResolvePathname(display, path, -NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific -user resource file where path contains at least entries containing $HOME as -the directory prefix plus the following substitutions, in the order specified: - -- %C, %N, %L or %C, %N, %l, %t, %c - -- %C, %N, %l - -- %C, %N - -- %N, %L or %N, %l, %t, %c - -- %N, %l - -- %N ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -when the environment variable XUSERFILESEARCHPATH is not defined and -the environment variable XAPPLRESDIR is defined shall use the result -of calling XtResolvePathname(display, path, NULL, NULL, NULL, NULL, 0, NULL) -as the name of the application-specific user resource file where path -contains at least entries containing the following directory prefixes and -substitutions, in the order specified: - -- $XPPLRESDIR with %C, %N, %L or %C, %N, %l, %t, %c - -- $XPPLRESDIR with %C, %N, %l - -- $XPPLRESDIR with %C, %N - -- $XPPLRESDIR with %N, %L or %N, %l, %t, %c - -- $XPPLRESDIR with %N, %l - -- $XPPLRESDIR with %N - -- $HOME with %N ->>ASSERTION Good B 0 -A successful call to -Display *XtOpenDisplay(app_context, display_string, application_name, -application_class, options, num_options, argc, argv) -shall use the result of calling XtResolvePathname(display, "app-defaults", -NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific -class resource file, with the values from the higher precedence sources of -the resource database being created for the display set as the current -resource database before the call is made. diff --git a/xts5/Xt4/XtParent.m b/xts5/Xt4/XtParent.m new file mode 100644 index 00000000..aba7b8d2 --- /dev/null +++ b/xts5/Xt4/XtParent.m @@ -0,0 +1,90 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtParent.m +>># +>># Description: +>># Tests for XtParent() +>># +>># Modifications: +>># $Log: tparent.m,v $ +>># Revision 1.1 2005-02-12 14:38:03 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:28 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:18 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:38 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:12 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:20 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:12 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtParent Xt4 +Widget +XtParent(w) +>>ASSERTION Good A +A call to Widget XtParent(w) shall return the parent object for the widget w. +>>CODE +Widget ret_parent, test_lw, test_rw; +Widget widget_good , labelw_good; +Widget rowcolw_good; + + avs_xt_hier("Tparent1", "XtParent"); + tet_infoline("PREP: Create rowcolw_good widget in box1w widget"); + rowcolw_good = (Widget) CreateRowColWidget(boxw1); + tet_infoline("PREP: Create test label widget name `Hello' in first box widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", rowcolw_good); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: A call to XtParent shall return parent row column widget"); + tet_infoline(" of the label Hello widget"); + widget_good = (Widget)XtParent(labelw_good); + if (widget_good == NULL) { + tet_infoline("ERROR: Expected parent widget instance returned NULL"); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Returned widget is indeed parent row column widget"); + check_str("rowcolw", XtName(widget_good), "widget name"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtParent/XtParent.m b/xts5/Xt4/XtParent/XtParent.m deleted file mode 100644 index 554d242f..00000000 --- a/xts5/Xt4/XtParent/XtParent.m +++ /dev/null @@ -1,90 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtParent/XtParent.m ->># ->># Description: ->># Tests for XtParent() ->># ->># Modifications: ->># $Log: tparent.m,v $ ->># Revision 1.1 2005-02-12 14:38:03 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:28 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:18 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:38 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:12 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:20 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:12 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtParent Xt4 -Widget -XtParent(w) ->>ASSERTION Good A -A call to Widget XtParent(w) shall return the parent object for the widget w. ->>CODE -Widget ret_parent, test_lw, test_rw; -Widget widget_good , labelw_good; -Widget rowcolw_good; - - avs_xt_hier("Tparent1", "XtParent"); - tet_infoline("PREP: Create rowcolw_good widget in box1w widget"); - rowcolw_good = (Widget) CreateRowColWidget(boxw1); - tet_infoline("PREP: Create test label widget name `Hello' in first box widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", rowcolw_good); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: A call to XtParent shall return parent row column widget"); - tet_infoline(" of the label Hello widget"); - widget_good = (Widget)XtParent(labelw_good); - if (widget_good == NULL) { - tet_infoline("ERROR: Expected parent widget instance returned NULL"); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Returned widget is indeed parent row column widget"); - check_str("rowcolw", XtName(widget_good), "widget name"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtRealizeWidget.m b/xts5/Xt4/XtRealizeWidget.m new file mode 100644 index 00000000..0cdb9713 --- /dev/null +++ b/xts5/Xt4/XtRealizeWidget.m @@ -0,0 +1,148 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtRealizeWidget.m +>># +>># Description: +>># Tests for XtRealizeWidget() +>># +>># Modifications: +>># $Log: trealwdgt.m,v $ +>># Revision 1.1 2005-02-12 14:38:04 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:27 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:17 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:37 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:10 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:15 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:06 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtRealizeWidget Xt4 +void +XtRealizeWidget(w) +>>ASSERTION Good B 0 +A call to void XtRealizeWidget(w) shall bind all action names in the +translation table of the widget w to procedures. +>>ASSERTION Good A +A call to void XtRealizeWidget(w) when the widget w is already realized +shall return immediately. +>>CODE +Window window_good; +Widget widget_good, labelw_good; +Display *display_good; + + avs_xt_hier("Trealwdgt2", "XtRealizeWidget"); + tet_infoline("PREP: Create test label widget `Hello' in box widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); + tet_infoline("TEST: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Call XtRealize again"); + XtRealizeWidget(topLevel); + tet_result(TET_PASS); +>>ASSERTION Good B 0 +A call to void XtRealizeWidget(w) shall make a post order traversal of the +widget tree starting at the widget w and call each non-NULL change_managed +procedure of all composite widgets that have one or more managed +children in the reverse order of their appearance in the CompositePart +children list. +>>ASSERTION Good B 0 +A call to void XtRealizeWidget(w) when the widget w is not a subclass of +compositeWidgetClass shall return without realizing or mapping its children. +>>ASSERTION Good B 0 +A successful call to void XtRealizeWidget(w) shall recursively descend the +widget tree starting at the widget w and call the realize procedures of all +the managed children in the reverse order of their appearance in the +CompositePart children list, passing to them the widget, a XtValueMask, and +a XSetWindowAttributes structure as parameters. +>>ASSERTION Good B 0 +A successful call to void XtRealizeWidget(w) shall set the +background_pixmap, border_pixmap, and the colormap fields of the +XSetWindowAttributes structure to their corresponding fields in the +widget core structure before passing it to the realize procedures of +the managed children. +>>ASSERTION Good B 0 +A successful call to void XtRealizeWidget(w) shall set the +event_mask field of the XSetWindowAttributes structure to indicate the +event handlers registered, the event translations specified, the expose +field is non-NULL, and the visible_interest field is True before passing +it to the realize procedures of the managed children. +>>ASSERTION Good B 0 +A successful call to void XtRealizeWidget(w) shall set the +bit_gravity field of the XSetWindowAttributes structure, before passing +it to the realize procedures of the managed children, to NorthWestGravity +when the expose field of the widget core structure is NULL. +>>ASSERTION Good B 0 +A successful call to void XtRealizeWidget(w) shall map the windows of all the +managed children that have the mapped_when_managed field set to True. +>>ASSERTION Good A +A successful call to void XtRealizeWidget(w) when the widget w is a top-level shell +widget and has the mapped_when_managed field set to True shall map the +widget window. +>>CODE +Window window_good; +Widget widget_good; +Display *display_good; + + avs_xt_hier("Trealwdgt2", "XtRealizeWidget"); + tet_infoline("TEST: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Check XtWindow() returns valid window id"); + if ((window_good = XtWindow(topLevel) ) <= 0 ) { + sprintf(ebuf, "ERROR: Expected Valid window id returned %d", window_good); + tet_infoline(ebuf); + tet_result(TET_FAIL); + exit(0); + } + tet_infoline("TEST: Window id is correct"); + display_good = XtDisplay(topLevel); + widget_good = XtWindowToWidget(display_good, window_good); + check_str("VSW5 X Toolkit Tests", XtName(topLevel), "widget name"); + tet_result(TET_PASS); +>>ASSERTION Good B 0 +A call to void XtRealizeWidget(w) when the widget w is a top-level shell +widget and has the mapped_when_managed field set to a value other than +True shall not map the widget window. diff --git a/xts5/Xt4/XtRealizeWidget/XtRealizeWidget.m b/xts5/Xt4/XtRealizeWidget/XtRealizeWidget.m deleted file mode 100644 index a28d24c1..00000000 --- a/xts5/Xt4/XtRealizeWidget/XtRealizeWidget.m +++ /dev/null @@ -1,148 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtRealizeWidget/XtRealizeWidget.m ->># ->># Description: ->># Tests for XtRealizeWidget() ->># ->># Modifications: ->># $Log: trealwdgt.m,v $ ->># Revision 1.1 2005-02-12 14:38:04 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:27 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:17 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:37 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:10 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:15 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:06 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtRealizeWidget Xt4 -void -XtRealizeWidget(w) ->>ASSERTION Good B 0 -A call to void XtRealizeWidget(w) shall bind all action names in the -translation table of the widget w to procedures. ->>ASSERTION Good A -A call to void XtRealizeWidget(w) when the widget w is already realized -shall return immediately. ->>CODE -Window window_good; -Widget widget_good, labelw_good; -Display *display_good; - - avs_xt_hier("Trealwdgt2", "XtRealizeWidget"); - tet_infoline("PREP: Create test label widget `Hello' in box widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); - tet_infoline("TEST: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Call XtRealize again"); - XtRealizeWidget(topLevel); - tet_result(TET_PASS); ->>ASSERTION Good B 0 -A call to void XtRealizeWidget(w) shall make a post order traversal of the -widget tree starting at the widget w and call each non-NULL change_managed -procedure of all composite widgets that have one or more managed -children in the reverse order of their appearance in the CompositePart -children list. ->>ASSERTION Good B 0 -A call to void XtRealizeWidget(w) when the widget w is not a subclass of -compositeWidgetClass shall return without realizing or mapping its children. ->>ASSERTION Good B 0 -A successful call to void XtRealizeWidget(w) shall recursively descend the -widget tree starting at the widget w and call the realize procedures of all -the managed children in the reverse order of their appearance in the -CompositePart children list, passing to them the widget, a XtValueMask, and -a XSetWindowAttributes structure as parameters. ->>ASSERTION Good B 0 -A successful call to void XtRealizeWidget(w) shall set the -background_pixmap, border_pixmap, and the colormap fields of the -XSetWindowAttributes structure to their corresponding fields in the -widget core structure before passing it to the realize procedures of -the managed children. ->>ASSERTION Good B 0 -A successful call to void XtRealizeWidget(w) shall set the -event_mask field of the XSetWindowAttributes structure to indicate the -event handlers registered, the event translations specified, the expose -field is non-NULL, and the visible_interest field is True before passing -it to the realize procedures of the managed children. ->>ASSERTION Good B 0 -A successful call to void XtRealizeWidget(w) shall set the -bit_gravity field of the XSetWindowAttributes structure, before passing -it to the realize procedures of the managed children, to NorthWestGravity -when the expose field of the widget core structure is NULL. ->>ASSERTION Good B 0 -A successful call to void XtRealizeWidget(w) shall map the windows of all the -managed children that have the mapped_when_managed field set to True. ->>ASSERTION Good A -A successful call to void XtRealizeWidget(w) when the widget w is a top-level shell -widget and has the mapped_when_managed field set to True shall map the -widget window. ->>CODE -Window window_good; -Widget widget_good; -Display *display_good; - - avs_xt_hier("Trealwdgt2", "XtRealizeWidget"); - tet_infoline("TEST: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Check XtWindow() returns valid window id"); - if ((window_good = XtWindow(topLevel) ) <= 0 ) { - sprintf(ebuf, "ERROR: Expected Valid window id returned %d", window_good); - tet_infoline(ebuf); - tet_result(TET_FAIL); - exit(0); - } - tet_infoline("TEST: Window id is correct"); - display_good = XtDisplay(topLevel); - widget_good = XtWindowToWidget(display_good, window_good); - check_str("VSW5 X Toolkit Tests", XtName(topLevel), "widget name"); - tet_result(TET_PASS); ->>ASSERTION Good B 0 -A call to void XtRealizeWidget(w) when the widget w is a top-level shell -widget and has the mapped_when_managed field set to a value other than -True shall not map the widget window. diff --git a/xts5/Xt4/XtScreen.m b/xts5/Xt4/XtScreen.m new file mode 100644 index 00000000..49112112 --- /dev/null +++ b/xts5/Xt4/XtScreen.m @@ -0,0 +1,87 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtScreen.m +>># +>># Description: +>># Tests for XtScreen() +>># +>># Modifications: +>># $Log: tscreen.m,v $ +>># Revision 1.1 2005-02-12 14:38:07 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:29 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:19 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:39 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:12 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:21 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:14 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtScreen Xt4 +Screen * +XtScreen(w) +>>ASSERTION Good A +A call to Screen *XtScreen(w) shall return the screen pointer for the widget w. +>>CODE +Screen *screen_good, *ret_screen; +Display *display_good; +int screen_id_good , ret_screen_id; + + avs_xt_hier("Tscreen1", "XtScreen"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: XtScreen shall return the screen pointer for labelw widget"); + if ((screen_good = XtScreen(labelw)) == NULL) { + tet_infoline("ERROR: Expected Screen pointer returned NULL"); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Returned screen pointer is valid"); + display_good = XtDisplay(labelw); + ret_screen = XDefaultScreenOfDisplay(display_good); + ret_screen_id = XScreenNumberOfScreen(ret_screen); + screen_id_good = XScreenNumberOfScreen(screen_good); + check_dec(screen_id_good, ret_screen_id, "screen number"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtScreen/XtScreen.m b/xts5/Xt4/XtScreen/XtScreen.m deleted file mode 100644 index 42db6f53..00000000 --- a/xts5/Xt4/XtScreen/XtScreen.m +++ /dev/null @@ -1,87 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtScreen/XtScreen.m ->># ->># Description: ->># Tests for XtScreen() ->># ->># Modifications: ->># $Log: tscreen.m,v $ ->># Revision 1.1 2005-02-12 14:38:07 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:29 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:19 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:39 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:12 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:21 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:14 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtScreen Xt4 -Screen * -XtScreen(w) ->>ASSERTION Good A -A call to Screen *XtScreen(w) shall return the screen pointer for the widget w. ->>CODE -Screen *screen_good, *ret_screen; -Display *display_good; -int screen_id_good , ret_screen_id; - - avs_xt_hier("Tscreen1", "XtScreen"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: XtScreen shall return the screen pointer for labelw widget"); - if ((screen_good = XtScreen(labelw)) == NULL) { - tet_infoline("ERROR: Expected Screen pointer returned NULL"); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Returned screen pointer is valid"); - display_good = XtDisplay(labelw); - ret_screen = XDefaultScreenOfDisplay(display_good); - ret_screen_id = XScreenNumberOfScreen(ret_screen); - screen_id_good = XScreenNumberOfScreen(screen_good); - check_dec(screen_id_good, ret_screen_id, "screen number"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtScreenDatabase.m b/xts5/Xt4/XtScreenDatabase.m new file mode 100644 index 00000000..a9dbe844 --- /dev/null +++ b/xts5/Xt4/XtScreenDatabase.m @@ -0,0 +1,121 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtScreenDatabase.m +>># +>># Description: +>># Tests for XtScreenDatabase() +>># +>># Modifications: +>># $Log: tscrndtbs.m,v $ +>># Revision 1.1 2005-02-12 14:38:08 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:20 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:09 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:31 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:04 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:51 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:36 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtScreenDatabase Xt4 +XrmDatabase +XtScreenDatabase(screen) +>>ASSERTION Good C +If the implementation is X11R5 or later: +A call to XrmDatabase XtScreenDatabase(screen) shall return the +fully merged resource database for the screen specified by the screen +argument. +>>CODE +#if XT_X_RELEASE > 4 +Display *display; +Widget labelw_good; +Screen *screen_good; +char *str_type; +int argcount = 0; +XrmValue value[1]; +XrmDatabase database; +static String fallback_res[] = { + "*hello.labelString: Hello World", + NULL, +}; +#endif + +#if XT_X_RELEASE > 4 + avs_xt_hier("Tscrndtbs1", "XtScreenDatabase"); + tet_infoline("TEST: Set default set of resource values."); + XtAppSetFallbackResources(app_ctext, fallback_res); + tet_infoline("TEST: Initialize display to add resources"); + display = XtDisplay(topLevel); + XtDisplayInitialize(app_ctext, display, + "tscrndtbs1", "Tscrndtbs1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + (String *)NULL ); + tet_infoline("PREP: Create labelw_good widget in boxw1 widget"); + labelw_good = (Widget) CreateLabelWidget("hello", boxw1); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Get the screen pointer for labelw widget"); + if ((screen_good = XtScreen(labelw)) == NULL ) { + sprintf(ebuf, "ERROR: Expected Screen pointer returned NULL"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Get the resource database"); + database = XtScreenDatabase(screen_good); + tet_infoline("TEST: Check resource values"); + XrmGetResource(database, "*hello.labelString", NULL, &str_type, &value[0]); + if (strncmp("Hello World", value[0].addr, strlen("Hello World")) != 0 ) { + sprintf(ebuf, "ERROR: Expected \"Hello World\" for hello.labelString, Received \"%s\"", value[0].addr); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); +#else + tet_infoline("INFO: Implementation not X11R5 or greater"); + tet_result(TET_UNSUPPORTED); +#endif diff --git a/xts5/Xt4/XtScreenDatabase/XtScreenDatabase.m b/xts5/Xt4/XtScreenDatabase/XtScreenDatabase.m deleted file mode 100644 index eb1b14e7..00000000 --- a/xts5/Xt4/XtScreenDatabase/XtScreenDatabase.m +++ /dev/null @@ -1,121 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtScreenDatabase/XtScreenDatabase.m ->># ->># Description: ->># Tests for XtScreenDatabase() ->># ->># Modifications: ->># $Log: tscrndtbs.m,v $ ->># Revision 1.1 2005-02-12 14:38:08 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:20 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:09 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:31 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:04 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:51 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:36 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtScreenDatabase Xt4 -XrmDatabase -XtScreenDatabase(screen) ->>ASSERTION Good C -If the implementation is X11R5 or later: -A call to XrmDatabase XtScreenDatabase(screen) shall return the -fully merged resource database for the screen specified by the screen -argument. ->>CODE -#if XT_X_RELEASE > 4 -Display *display; -Widget labelw_good; -Screen *screen_good; -char *str_type; -int argcount = 0; -XrmValue value[1]; -XrmDatabase database; -static String fallback_res[] = { - "*hello.labelString: Hello World", - NULL, -}; -#endif - -#if XT_X_RELEASE > 4 - avs_xt_hier("Tscrndtbs1", "XtScreenDatabase"); - tet_infoline("TEST: Set default set of resource values."); - XtAppSetFallbackResources(app_ctext, fallback_res); - tet_infoline("TEST: Initialize display to add resources"); - display = XtDisplay(topLevel); - XtDisplayInitialize(app_ctext, display, - "tscrndtbs1", "Tscrndtbs1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - (String *)NULL ); - tet_infoline("PREP: Create labelw_good widget in boxw1 widget"); - labelw_good = (Widget) CreateLabelWidget("hello", boxw1); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Get the screen pointer for labelw widget"); - if ((screen_good = XtScreen(labelw)) == NULL ) { - sprintf(ebuf, "ERROR: Expected Screen pointer returned NULL"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Get the resource database"); - database = XtScreenDatabase(screen_good); - tet_infoline("TEST: Check resource values"); - XrmGetResource(database, "*hello.labelString", NULL, &str_type, &value[0]); - if (strncmp("Hello World", value[0].addr, strlen("Hello World")) != 0 ) { - sprintf(ebuf, "ERROR: Expected \"Hello World\" for hello.labelString, Received \"%s\"", value[0].addr); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); -#else - tet_infoline("INFO: Implementation not X11R5 or greater"); - tet_result(TET_UNSUPPORTED); -#endif diff --git a/xts5/Xt4/XtScreenOfObject.m b/xts5/Xt4/XtScreenOfObject.m new file mode 100644 index 00000000..bea546bc --- /dev/null +++ b/xts5/Xt4/XtScreenOfObject.m @@ -0,0 +1,116 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtScreenOfObject.m +>># +>># Description: +>># Tests for XtScreenOfObject() +>># +>># Modifications: +>># $Log: tscnofobt.m,v $ +>># Revision 1.1 2005-02-12 14:38:05 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:30 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:20 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:40 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:14 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:23 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:18 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtScreenOfObject Xt4 +Screen * +XtScreenOfObject(object) +>>ASSERTION Good A +A call to Screen *XtScreenOfObject(object) when object is a widget +shall return the screen pointer for the widget. +>>CODE +Screen *screen_good, *ret_screen; +Display *display_good; +int ret_screen_id , screen_id_good; + + avs_xt_hier("Tscnofobt1", "XtScreenOfObject"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Get the screen pointer for widget label"); + if ((screen_good = XtScreenOfObject(labelw)) == NULL) { + sprintf(ebuf, "ERROR: Expected Screen pointer returned NULL"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Returned screen pointer is valid"); + display_good = XtDisplay(labelw); + ret_screen = XDefaultScreenOfDisplay(display_good); + ret_screen_id = XScreenNumberOfScreen(ret_screen); + screen_id_good = XScreenNumberOfScreen(screen_good); + check_dec(screen_id_good, ret_screen_id, "screen number"); + tet_result(TET_PASS); +>>ASSERTION Good A +A call to +Screen *XtScreenOfObject(object) +when object is not a widget shall return the screen pointer for the nearest +ancestor of object that is of class Object or a subclass thereof. +>>CODE +Screen *screen_good, *ret_screen; +Display *display_good; +int ret_screen_id , screen_id_good; + + avs_xt_hier("Tscnofobt2", "XtScreenOfObject"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Get the screen pointer for push button gadget"); + if ((screen_good = XtScreenOfObject(click_quit)) == NULL) { + sprintf(ebuf, "ERROR: Expected Screen pointer returned NULL"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Returned screen pointer is that of the gadget's parent"); + display_good = XtDisplay(rowcolw); + ret_screen = XDefaultScreenOfDisplay(display_good); + ret_screen_id = XScreenNumberOfScreen(ret_screen); + screen_id_good = XScreenNumberOfScreen(screen_good); + check_dec(screen_id_good, ret_screen_id, "screen number"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtScreenOfObject/XtScreenOfObject.m b/xts5/Xt4/XtScreenOfObject/XtScreenOfObject.m deleted file mode 100644 index 80a3e78e..00000000 --- a/xts5/Xt4/XtScreenOfObject/XtScreenOfObject.m +++ /dev/null @@ -1,116 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtScreenOfObject/XtScreenOfObject.m ->># ->># Description: ->># Tests for XtScreenOfObject() ->># ->># Modifications: ->># $Log: tscnofobt.m,v $ ->># Revision 1.1 2005-02-12 14:38:05 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:30 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:20 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:40 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:14 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:23 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:18 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtScreenOfObject Xt4 -Screen * -XtScreenOfObject(object) ->>ASSERTION Good A -A call to Screen *XtScreenOfObject(object) when object is a widget -shall return the screen pointer for the widget. ->>CODE -Screen *screen_good, *ret_screen; -Display *display_good; -int ret_screen_id , screen_id_good; - - avs_xt_hier("Tscnofobt1", "XtScreenOfObject"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Get the screen pointer for widget label"); - if ((screen_good = XtScreenOfObject(labelw)) == NULL) { - sprintf(ebuf, "ERROR: Expected Screen pointer returned NULL"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Returned screen pointer is valid"); - display_good = XtDisplay(labelw); - ret_screen = XDefaultScreenOfDisplay(display_good); - ret_screen_id = XScreenNumberOfScreen(ret_screen); - screen_id_good = XScreenNumberOfScreen(screen_good); - check_dec(screen_id_good, ret_screen_id, "screen number"); - tet_result(TET_PASS); ->>ASSERTION Good A -A call to -Screen *XtScreenOfObject(object) -when object is not a widget shall return the screen pointer for the nearest -ancestor of object that is of class Object or a subclass thereof. ->>CODE -Screen *screen_good, *ret_screen; -Display *display_good; -int ret_screen_id , screen_id_good; - - avs_xt_hier("Tscnofobt2", "XtScreenOfObject"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Get the screen pointer for push button gadget"); - if ((screen_good = XtScreenOfObject(click_quit)) == NULL) { - sprintf(ebuf, "ERROR: Expected Screen pointer returned NULL"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Returned screen pointer is that of the gadget's parent"); - display_good = XtDisplay(rowcolw); - ret_screen = XDefaultScreenOfDisplay(display_good); - ret_screen_id = XScreenNumberOfScreen(ret_screen); - screen_id_good = XScreenNumberOfScreen(screen_good); - check_dec(screen_id_good, ret_screen_id, "screen number"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtSetArg.m b/xts5/Xt4/XtSetArg.m new file mode 100644 index 00000000..6d1a52ef --- /dev/null +++ b/xts5/Xt4/XtSetArg.m @@ -0,0 +1,110 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtSetArg.m +>># +>># Description: +>># Tests for XtSetArg() +>># +>># Modifications: +>># $Log: tstarg.m,v $ +>># Revision 1.1 2005-02-12 14:38:09 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:21 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:11 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:32 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:06 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:55 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:41 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +extern char * event_names[]; + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtSetArg Xt4 +void +XtSetArg(arg, resource_name, value) +>>ASSERTION Good A +A call to void XtSetArg(arg, resource_name, value) when the size of value +is less than or equal to the size of XtArgVal shall set the arg.name +member of the structure arg to resource_name and the arg.value member to +value. +>>CODE +Display *display; +Arg testarg; + + tet_infoline("TEST: XtSetArg sets arg members correctly"); + XtSetArg(testarg, "ApTest", 1); + if (strcmp(testarg.name, "ApTest") != 0) { + sprintf(ebuf, "ERROR: expected arg name = \"ApTest\", was \"%s\"", testarg.name); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + if (testarg.value != 1) { + sprintf(ebuf, "ERROR: expected value = 1, was %d", testarg.value); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); +>>ASSERTION Good A +A call to void XtSetArg(arg, resource_name, value) when the size of value +is greater than the size of XtArgVal shall store a pointer to value in +the arg.value member of the structure arg. +>>CODE +Display *display; +Arg testarg; + + tet_infoline("TEST: XtSetArg sets arg members correctly"); + XtSetArg(testarg, "ApTest2", "A string"); + if (strcmp(testarg.name, "ApTest2") != 0) { + sprintf(ebuf, "ERROR: expected arg name = \"ApTest2\", was \"%s\"", testarg.name); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + if (strncmp((char *)testarg.value, "A string", strlen("A string")) != 0) { + tet_infoline("ERROR: expected value to point to string"); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtSetArg/XtSetArg.m b/xts5/Xt4/XtSetArg/XtSetArg.m deleted file mode 100644 index f1918002..00000000 --- a/xts5/Xt4/XtSetArg/XtSetArg.m +++ /dev/null @@ -1,110 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtSetArg/XtSetArg.m ->># ->># Description: ->># Tests for XtSetArg() ->># ->># Modifications: ->># $Log: tstarg.m,v $ ->># Revision 1.1 2005-02-12 14:38:09 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:21 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:11 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:32 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:06 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:55 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:41 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -extern char * event_names[]; - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtSetArg Xt4 -void -XtSetArg(arg, resource_name, value) ->>ASSERTION Good A -A call to void XtSetArg(arg, resource_name, value) when the size of value -is less than or equal to the size of XtArgVal shall set the arg.name -member of the structure arg to resource_name and the arg.value member to -value. ->>CODE -Display *display; -Arg testarg; - - tet_infoline("TEST: XtSetArg sets arg members correctly"); - XtSetArg(testarg, "ApTest", 1); - if (strcmp(testarg.name, "ApTest") != 0) { - sprintf(ebuf, "ERROR: expected arg name = \"ApTest\", was \"%s\"", testarg.name); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - if (testarg.value != 1) { - sprintf(ebuf, "ERROR: expected value = 1, was %d", testarg.value); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); ->>ASSERTION Good A -A call to void XtSetArg(arg, resource_name, value) when the size of value -is greater than the size of XtArgVal shall store a pointer to value in -the arg.value member of the structure arg. ->>CODE -Display *display; -Arg testarg; - - tet_infoline("TEST: XtSetArg sets arg members correctly"); - XtSetArg(testarg, "ApTest2", "A string"); - if (strcmp(testarg.name, "ApTest2") != 0) { - sprintf(ebuf, "ERROR: expected arg name = \"ApTest2\", was \"%s\"", testarg.name); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - if (strncmp((char *)testarg.value, "A string", strlen("A string")) != 0) { - tet_infoline("ERROR: expected value to point to string"); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtSetLanguageProc.m b/xts5/Xt4/XtSetLanguageProc.m new file mode 100644 index 00000000..86bd2248 --- /dev/null +++ b/xts5/Xt4/XtSetLanguageProc.m @@ -0,0 +1,439 @@ +Copyright (c) 2005 X.Org Foundation L.L.C. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) 2004 The Open Group +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtSetLanguageProc.m +>># +>># Description: +>># Tests for XtSetLanguageProc() +>># +>># Modifications: +>># $Log: tstlnggprc.m,v $ +>># Revision 1.2 2005-04-21 09:40:42 ajosey +>># resync to VSW5.1.5 +>># +>># Revision 8.2 2005/01/14 12:15:44 gwc +>># Updated copyright notice +>># +>># Revision 8.1 2004/02/12 15:54:44 gwc +>># Set LC_ALL in environment instead of LANG in test 7 +>># +>># Revision 8.0 1998/12/23 23:36:18 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:08 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.1 1998/06/23 22:49:32 andy +>># Added sleep(XT_RESET_DELAY) to each test. SR# 186. +>># +>># Revision 6.0 1998/03/02 05:27:29 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:03 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:46 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:29 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include + +XtAppContext app_ctext, app_ctext2; +Display *display_good; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; + +char client_stuff[] = "These are the times that try men's souls"; + +/* +** Procedure XtLP_Proc +*/ +String XtLP_Proc(display, language, client_data) +Display *display; +String language; +XtPointer client_data; +{ + avs_set_event(1,avs_get_event(1)+1); + tet_infoline("TEST: Client data correctly passed to language procedure"); + if (strcmp(client_data, client_stuff) != 0) { + sprintf(ebuf, "ERROR: Expected client_data \"%s\", received \"%s\"", client_stuff, (char *)client_data); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + return (String)setlocale(LC_ALL, NULL); +#endif +} + +void WarnH(msg) +String msg; +{ + avs_set_event(2,1); +} + +>>SET tpstartup avs_alloc_sem +>>SET tpcleanup avs_free_sem +>>TITLE XtSetLanguageProc Xt4 +XtLanguageProc +XtSetLanguageProc(app_context, proc, client_data) +>>ASSERTION Good C +If the implementation is X11R5 or later: +A call to XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) +shall register proc as the language procedure that will be called +from XtDisplayInitialize() for all subsequent displays initialized in +app_context and return the previously registered language procedure. +>>CODE +#if XT_X_RELEASE > 4 +Widget TopLevel2; +XtLanguageProc oldproc; +int argcount = 0; +int status; +#endif + +#if XT_X_RELEASE > 4 + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + tet_infoline("PREP: Register XT error handler"); + XtAppSetErrorMsgHandler(app_ctext, xt_handler); + tet_infoline("PREP: Open a display connection"); + sleep(config.reset_delay); + display_good = XOpenDisplay(config.display); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Call XtSetLanguageProc"); + oldproc = XtSetLanguageProc(app_ctext, &XtLP_Proc, client_stuff); + tet_infoline("TEST: Initialize display"); + XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", + "Tstlnggprc1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + (String *)NULL ); + tet_infoline("TEST: Language procedure was invoked"); + status = avs_get_event(1); + check_dec(1, status, "language procedure invocation count"); + tet_infoline("PREP: Open another display connection"); + display_good = XOpenDisplay(config.display); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Initialize it"); + XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", + "Tstlnggprc1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + (String *)NULL ); + tet_infoline("TEST: Language procedure was invoked again"); + status = avs_get_event(1); + check_dec(2, status, "language procedure invocation count"); + tet_result(TET_PASS); +#else + tet_infoline("INFO: Implementation is X11R4"); + tet_result(TET_UNSUPPORTED); +#endif +>>ASSERTION Good C +If the implementation is X11R5 or later: +A call to XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) +when app_context is NULL shall register proc in all application contexts +created by the application, including those created in the future. +>>CODE +#if XT_X_RELEASE > 4 +XtLanguageProc oldproc; +int argcount = 0; +int status; +#endif + +#if XT_X_RELEASE > 4 + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + tet_infoline("PREP: Register XT error handler"); + XtAppSetErrorMsgHandler(app_ctext, xt_handler); + tet_infoline("PREP: Open a display connection"); + sleep(config.reset_delay); + display_good = XOpenDisplay(config.display); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Call XtSetLanguageProc with NULL application context"); + oldproc = XtSetLanguageProc(NULL, &XtLP_Proc, client_stuff); + tet_infoline("TEST: Initialize display"); + XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", + "Tstlnggprc1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + (String *)NULL ); + tet_infoline("TEST: Language procedure was invoked"); + status = avs_get_event(1); + check_dec(1, status, "language procedure invocation count"); + tet_infoline("PREP: Establish another application context"); + app_ctext2 = XtCreateApplicationContext(); + tet_infoline("PREP: Register XT error handler"); + XtAppSetErrorMsgHandler(app_ctext2, xt_handler); + tet_infoline("PREP: Open another display connection"); + display_good = XOpenDisplay(config.display); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Initialize it"); + XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", + "Tstlnggprc1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + (String *)NULL ); + tet_infoline("TEST: Language procedure was invoked again"); + status = avs_get_event(1); + check_dec(2, status, "language procedure invocation count"); + tet_result(TET_PASS); +#else + tet_infoline("INFO: Implementation is X11R4"); + tet_result(TET_UNSUPPORTED); +#endif +>>ASSERTION Good C +If the implementation is X11R5 or later: +A call to XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) +when proc is NULL shall register a default language procedure. +>>CODE +#if XT_X_RELEASE > 4 +XtLanguageProc oldproc, oldproc2; +int argcount = 0 ; +int status; +#endif + +#if XT_X_RELEASE > 4 + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + tet_infoline("PREP: Register XT error handler"); + XtAppSetErrorMsgHandler(app_ctext, xt_handler); + tet_infoline("TEST: Call XtSetLanguageProc with NULL proc"); + /*when nothing has been registered, returns what gets the default*/ + oldproc = XtSetLanguageProc(app_ctext, NULL, client_stuff); + tet_infoline("TEST: Call XtSetLanguageProc again to get last proc set"); + oldproc2 = XtSetLanguageProc(app_ctext, &XtLP_Proc, client_stuff); + tet_infoline("TEST: Compare returns from two calls"); + if (oldproc != oldproc2) { + sprintf(ebuf, "ERROR: Default language procedure wasn't registered"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Call XtSetLanguageProc again with NULL proc"); + oldproc = XtSetLanguageProc(app_ctext, NULL, client_stuff); + tet_infoline("TEST: Open a display connection"); + sleep(config.reset_delay); + display_good = XOpenDisplay(config.display); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Initialize display"); + XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", + "Tstlnggprc1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + (String *)NULL ); + tet_infoline("TEST: Test procedure was not invoked"); + status = avs_get_event(1); + check_dec(0, status, "language procedure invocation count"); + tet_result(TET_PASS); +#else + tet_infoline("INFO: Implementation is X11R4"); + tet_result(TET_UNSUPPORTED); +#endif +>>ASSERTION Good C +If the implementation is X11R5 or later: +When a language procedure has not yet been registered, a call to +XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) shall +return a value which will cause the default language procedure +to be registered when used in a subsequent call to XtSetLanguageProc(). +>>CODE +#if XT_X_RELEASE > 4 +int argcount = 0; +int status; +XtLanguageProc oldproc, oldproc2; +#endif + +#if XT_X_RELEASE > 4 + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + tet_infoline("PREP: Register XT error handler"); + XtAppSetErrorMsgHandler(app_ctext, xt_handler); + tet_infoline("TEST: Call XtSetLanguageProc setting test procedure"); + oldproc = XtSetLanguageProc(app_ctext, &XtLP_Proc, client_stuff); + tet_infoline("TEST: Call XtSetLanguageProc with return from first call"); + oldproc2 = XtSetLanguageProc(app_ctext, oldproc, client_stuff); + tet_infoline("TEST: Open a display connection"); + sleep(config.reset_delay); + display_good = XOpenDisplay(config.display); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Initialize display"); + XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", + "Tstlnggprc4", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + (String *)NULL ); + tet_infoline("TEST: Test procedure was not invoked"); + status = avs_get_event(1); + check_dec(0, status, "language procedure invocation count"); + tet_result(TET_PASS); +#else + tet_infoline("INFO: Implementation is X11R4"); + tet_result(TET_UNSUPPORTED); +#endif +>>ASSERTION Good B 3 +If the implementation is X11R5 or later: +The default language procedure set by a call to +XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) +shall set the locale according to the environment. +>>ASSERTION Good B 1 +If the implementation is X11R5 or later: +The default language procedure set by a call to +XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) +shall issue a warning if an error is encountered in setting the locale. +>>ASSERTION Good C +If the implementation is X11R5 or later: +The default language procedure set by a call to +XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) +shall issue a warning and the set the locale to "C" if the locale +specified by the environment is not supported. +>>CODE +#if XT_X_RELEASE > 4 +Widget TopLevel2; +XtLanguageProc oldproc; +int argcount = 0; +int status; +#endif + +#if XT_X_RELEASE > 4 + putenv("LC_ALL=unreal"); + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + XtAppSetWarningHandler(app_ctext, WarnH); + tet_infoline("TEST: Call XtSetLanguageProc again with NULL proc"); + oldproc = XtSetLanguageProc(app_ctext, NULL, client_stuff); + tet_infoline("PREP: Open a display connection"); + sleep(config.reset_delay); + display_good = XOpenDisplay(config.display); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Initialize display"); + XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", + "Tstlnggprc1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + NULL); + tet_infoline("TEST: Warning was issued"); + status = avs_get_event(2); + check_dec(1, status, "warning handler invocation count"); + tet_result(TET_PASS); +#else + tet_infoline("INFO: Implementation is X11R4"); + tet_result(TET_UNSUPPORTED); +#endif +>>ASSERTION Good C +If the implementation is X11R5 or later: +After setting the locale, the default language procedure set by a call to +XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) +shall set the X locale modifiers to the empty string. +>>CODE +#if XT_X_RELEASE > 4 +Widget TopLevel2; +XtLanguageProc oldproc; +int argcount = 0; +int status; +char *mod_ret; +#endif + +#if XT_X_RELEASE > 4 + tet_infoline("PREP: Initialize the Xt toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Create an application context"); + app_ctext = XtCreateApplicationContext(); + XtAppSetWarningHandler(app_ctext, WarnH); + tet_infoline("TEST: Call XtSetLanguageProc again with NULL proc"); + oldproc = XtSetLanguageProc(app_ctext, NULL, client_stuff); + tet_infoline("PREP: Open a display connection"); + sleep(config.reset_delay); + display_good = XOpenDisplay(config.display); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Initialize display"); + XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", + "Tstlnggprc1", + (XrmOptionDescRec *)NULL, + (Cardinal)0, &argcount, + NULL); + tet_infoline("PREP: Get locale modifiers"); + mod_ret = XSetLocaleModifiers(""); + if (mod_ret == NULL) { + tet_infoline("ERROR: XSetLocaleModifiers return value is NULL"); + tet_result(TET_FAIL); + } else { + if (strcmp(mod_ret, "") != 0) { + sprintf(ebuf, "ERROR: Expected empty string, received \"%s\"", mod_ret); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + } + tet_result(TET_PASS); +#else + tet_infoline("INFO: Implementation is X11R4"); + tet_result(TET_UNSUPPORTED); +#endif diff --git a/xts5/Xt4/XtSetLanguageProc/XtSetLanguageProc.m b/xts5/Xt4/XtSetLanguageProc/XtSetLanguageProc.m deleted file mode 100644 index 8db9077a..00000000 --- a/xts5/Xt4/XtSetLanguageProc/XtSetLanguageProc.m +++ /dev/null @@ -1,439 +0,0 @@ -Copyright (c) 2005 X.Org Foundation L.L.C. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) 2004 The Open Group -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtSetLanguageProc/XtSetLanguageProc.m ->># ->># Description: ->># Tests for XtSetLanguageProc() ->># ->># Modifications: ->># $Log: tstlnggprc.m,v $ ->># Revision 1.2 2005-04-21 09:40:42 ajosey ->># resync to VSW5.1.5 ->># ->># Revision 8.2 2005/01/14 12:15:44 gwc ->># Updated copyright notice ->># ->># Revision 8.1 2004/02/12 15:54:44 gwc ->># Set LC_ALL in environment instead of LANG in test 7 ->># ->># Revision 8.0 1998/12/23 23:36:18 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:08 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.1 1998/06/23 22:49:32 andy ->># Added sleep(XT_RESET_DELAY) to each test. SR# 186. ->># ->># Revision 6.0 1998/03/02 05:27:29 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:03 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:46 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:29 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include - -XtAppContext app_ctext, app_ctext2; -Display *display_good; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; - -char client_stuff[] = "These are the times that try men's souls"; - -/* -** Procedure XtLP_Proc -*/ -String XtLP_Proc(display, language, client_data) -Display *display; -String language; -XtPointer client_data; -{ - avs_set_event(1,avs_get_event(1)+1); - tet_infoline("TEST: Client data correctly passed to language procedure"); - if (strcmp(client_data, client_stuff) != 0) { - sprintf(ebuf, "ERROR: Expected client_data \"%s\", received \"%s\"", client_stuff, (char *)client_data); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - return (String)setlocale(LC_ALL, NULL); -#endif -} - -void WarnH(msg) -String msg; -{ - avs_set_event(2,1); -} - ->>SET tpstartup avs_alloc_sem ->>SET tpcleanup avs_free_sem ->>TITLE XtSetLanguageProc Xt4 -XtLanguageProc -XtSetLanguageProc(app_context, proc, client_data) ->>ASSERTION Good C -If the implementation is X11R5 or later: -A call to XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) -shall register proc as the language procedure that will be called -from XtDisplayInitialize() for all subsequent displays initialized in -app_context and return the previously registered language procedure. ->>CODE -#if XT_X_RELEASE > 4 -Widget TopLevel2; -XtLanguageProc oldproc; -int argcount = 0; -int status; -#endif - -#if XT_X_RELEASE > 4 - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - tet_infoline("PREP: Register XT error handler"); - XtAppSetErrorMsgHandler(app_ctext, xt_handler); - tet_infoline("PREP: Open a display connection"); - sleep(config.reset_delay); - display_good = XOpenDisplay(config.display); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Call XtSetLanguageProc"); - oldproc = XtSetLanguageProc(app_ctext, &XtLP_Proc, client_stuff); - tet_infoline("TEST: Initialize display"); - XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", - "Tstlnggprc1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - (String *)NULL ); - tet_infoline("TEST: Language procedure was invoked"); - status = avs_get_event(1); - check_dec(1, status, "language procedure invocation count"); - tet_infoline("PREP: Open another display connection"); - display_good = XOpenDisplay(config.display); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Initialize it"); - XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", - "Tstlnggprc1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - (String *)NULL ); - tet_infoline("TEST: Language procedure was invoked again"); - status = avs_get_event(1); - check_dec(2, status, "language procedure invocation count"); - tet_result(TET_PASS); -#else - tet_infoline("INFO: Implementation is X11R4"); - tet_result(TET_UNSUPPORTED); -#endif ->>ASSERTION Good C -If the implementation is X11R5 or later: -A call to XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) -when app_context is NULL shall register proc in all application contexts -created by the application, including those created in the future. ->>CODE -#if XT_X_RELEASE > 4 -XtLanguageProc oldproc; -int argcount = 0; -int status; -#endif - -#if XT_X_RELEASE > 4 - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - tet_infoline("PREP: Register XT error handler"); - XtAppSetErrorMsgHandler(app_ctext, xt_handler); - tet_infoline("PREP: Open a display connection"); - sleep(config.reset_delay); - display_good = XOpenDisplay(config.display); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Call XtSetLanguageProc with NULL application context"); - oldproc = XtSetLanguageProc(NULL, &XtLP_Proc, client_stuff); - tet_infoline("TEST: Initialize display"); - XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", - "Tstlnggprc1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - (String *)NULL ); - tet_infoline("TEST: Language procedure was invoked"); - status = avs_get_event(1); - check_dec(1, status, "language procedure invocation count"); - tet_infoline("PREP: Establish another application context"); - app_ctext2 = XtCreateApplicationContext(); - tet_infoline("PREP: Register XT error handler"); - XtAppSetErrorMsgHandler(app_ctext2, xt_handler); - tet_infoline("PREP: Open another display connection"); - display_good = XOpenDisplay(config.display); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Initialize it"); - XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", - "Tstlnggprc1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - (String *)NULL ); - tet_infoline("TEST: Language procedure was invoked again"); - status = avs_get_event(1); - check_dec(2, status, "language procedure invocation count"); - tet_result(TET_PASS); -#else - tet_infoline("INFO: Implementation is X11R4"); - tet_result(TET_UNSUPPORTED); -#endif ->>ASSERTION Good C -If the implementation is X11R5 or later: -A call to XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) -when proc is NULL shall register a default language procedure. ->>CODE -#if XT_X_RELEASE > 4 -XtLanguageProc oldproc, oldproc2; -int argcount = 0 ; -int status; -#endif - -#if XT_X_RELEASE > 4 - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - tet_infoline("PREP: Register XT error handler"); - XtAppSetErrorMsgHandler(app_ctext, xt_handler); - tet_infoline("TEST: Call XtSetLanguageProc with NULL proc"); - /*when nothing has been registered, returns what gets the default*/ - oldproc = XtSetLanguageProc(app_ctext, NULL, client_stuff); - tet_infoline("TEST: Call XtSetLanguageProc again to get last proc set"); - oldproc2 = XtSetLanguageProc(app_ctext, &XtLP_Proc, client_stuff); - tet_infoline("TEST: Compare returns from two calls"); - if (oldproc != oldproc2) { - sprintf(ebuf, "ERROR: Default language procedure wasn't registered"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Call XtSetLanguageProc again with NULL proc"); - oldproc = XtSetLanguageProc(app_ctext, NULL, client_stuff); - tet_infoline("TEST: Open a display connection"); - sleep(config.reset_delay); - display_good = XOpenDisplay(config.display); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Initialize display"); - XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", - "Tstlnggprc1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - (String *)NULL ); - tet_infoline("TEST: Test procedure was not invoked"); - status = avs_get_event(1); - check_dec(0, status, "language procedure invocation count"); - tet_result(TET_PASS); -#else - tet_infoline("INFO: Implementation is X11R4"); - tet_result(TET_UNSUPPORTED); -#endif ->>ASSERTION Good C -If the implementation is X11R5 or later: -When a language procedure has not yet been registered, a call to -XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) shall -return a value which will cause the default language procedure -to be registered when used in a subsequent call to XtSetLanguageProc(). ->>CODE -#if XT_X_RELEASE > 4 -int argcount = 0; -int status; -XtLanguageProc oldproc, oldproc2; -#endif - -#if XT_X_RELEASE > 4 - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - tet_infoline("PREP: Register XT error handler"); - XtAppSetErrorMsgHandler(app_ctext, xt_handler); - tet_infoline("TEST: Call XtSetLanguageProc setting test procedure"); - oldproc = XtSetLanguageProc(app_ctext, &XtLP_Proc, client_stuff); - tet_infoline("TEST: Call XtSetLanguageProc with return from first call"); - oldproc2 = XtSetLanguageProc(app_ctext, oldproc, client_stuff); - tet_infoline("TEST: Open a display connection"); - sleep(config.reset_delay); - display_good = XOpenDisplay(config.display); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Initialize display"); - XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", - "Tstlnggprc4", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - (String *)NULL ); - tet_infoline("TEST: Test procedure was not invoked"); - status = avs_get_event(1); - check_dec(0, status, "language procedure invocation count"); - tet_result(TET_PASS); -#else - tet_infoline("INFO: Implementation is X11R4"); - tet_result(TET_UNSUPPORTED); -#endif ->>ASSERTION Good B 3 -If the implementation is X11R5 or later: -The default language procedure set by a call to -XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) -shall set the locale according to the environment. ->>ASSERTION Good B 1 -If the implementation is X11R5 or later: -The default language procedure set by a call to -XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) -shall issue a warning if an error is encountered in setting the locale. ->>ASSERTION Good C -If the implementation is X11R5 or later: -The default language procedure set by a call to -XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) -shall issue a warning and the set the locale to "C" if the locale -specified by the environment is not supported. ->>CODE -#if XT_X_RELEASE > 4 -Widget TopLevel2; -XtLanguageProc oldproc; -int argcount = 0; -int status; -#endif - -#if XT_X_RELEASE > 4 - putenv("LC_ALL=unreal"); - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - XtAppSetWarningHandler(app_ctext, WarnH); - tet_infoline("TEST: Call XtSetLanguageProc again with NULL proc"); - oldproc = XtSetLanguageProc(app_ctext, NULL, client_stuff); - tet_infoline("PREP: Open a display connection"); - sleep(config.reset_delay); - display_good = XOpenDisplay(config.display); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Initialize display"); - XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", - "Tstlnggprc1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - NULL); - tet_infoline("TEST: Warning was issued"); - status = avs_get_event(2); - check_dec(1, status, "warning handler invocation count"); - tet_result(TET_PASS); -#else - tet_infoline("INFO: Implementation is X11R4"); - tet_result(TET_UNSUPPORTED); -#endif ->>ASSERTION Good C -If the implementation is X11R5 or later: -After setting the locale, the default language procedure set by a call to -XtLanguageProc XtSetLanguageProc(app_context, proc, client_data) -shall set the X locale modifiers to the empty string. ->>CODE -#if XT_X_RELEASE > 4 -Widget TopLevel2; -XtLanguageProc oldproc; -int argcount = 0; -int status; -char *mod_ret; -#endif - -#if XT_X_RELEASE > 4 - tet_infoline("PREP: Initialize the Xt toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Create an application context"); - app_ctext = XtCreateApplicationContext(); - XtAppSetWarningHandler(app_ctext, WarnH); - tet_infoline("TEST: Call XtSetLanguageProc again with NULL proc"); - oldproc = XtSetLanguageProc(app_ctext, NULL, client_stuff); - tet_infoline("PREP: Open a display connection"); - sleep(config.reset_delay); - display_good = XOpenDisplay(config.display); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Initialize display"); - XtDisplayInitialize(app_ctext, display_good, "tstlnggprc1", - "Tstlnggprc1", - (XrmOptionDescRec *)NULL, - (Cardinal)0, &argcount, - NULL); - tet_infoline("PREP: Get locale modifiers"); - mod_ret = XSetLocaleModifiers(""); - if (mod_ret == NULL) { - tet_infoline("ERROR: XSetLocaleModifiers return value is NULL"); - tet_result(TET_FAIL); - } else { - if (strcmp(mod_ret, "") != 0) { - sprintf(ebuf, "ERROR: Expected empty string, received \"%s\"", mod_ret); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - } - tet_result(TET_PASS); -#else - tet_infoline("INFO: Implementation is X11R4"); - tet_result(TET_UNSUPPORTED); -#endif diff --git a/xts5/Xt4/XtToolkitInitialize.m b/xts5/Xt4/XtToolkitInitialize.m new file mode 100644 index 00000000..2b19e8a8 --- /dev/null +++ b/xts5/Xt4/XtToolkitInitialize.m @@ -0,0 +1,68 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtToolkitInitialize.m +>># +>># Description: +>># Tests for XtToolkitInitialize() +>># +>># Modifications: +>># $Log: ttlktintlz.m,v $ +>># Revision 1.1 2005-02-12 14:38:10 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:15 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:04 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:27 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:00 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:39 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:21 andy +>># Prepare for GA Release +>># +>>TITLE XtToolkitInitialize Xt4 +void +XtToolkitInitialize() +>>ASSERTION Good A +A call to void XtToolkitInitialize() shall initialize the internal +Toolkit data structures. +a display. +>>CODE + + tet_infoline("TEST: Initialize the toolkit internals"); + /*no testable behavior !?!*/ + XtToolkitInitialize() ; + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtToolkitInitialize/XtToolkitInitialize.m b/xts5/Xt4/XtToolkitInitialize/XtToolkitInitialize.m deleted file mode 100644 index 4cd7de0b..00000000 --- a/xts5/Xt4/XtToolkitInitialize/XtToolkitInitialize.m +++ /dev/null @@ -1,68 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtToolkitInitialize/XtToolkitInitialize.m ->># ->># Description: ->># Tests for XtToolkitInitialize() ->># ->># Modifications: ->># $Log: ttlktintlz.m,v $ ->># Revision 1.1 2005-02-12 14:38:10 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:15 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:04 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:27 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:00 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:39 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:21 andy ->># Prepare for GA Release ->># ->>TITLE XtToolkitInitialize Xt4 -void -XtToolkitInitialize() ->>ASSERTION Good A -A call to void XtToolkitInitialize() shall initialize the internal -Toolkit data structures. -a display. ->>CODE - - tet_infoline("TEST: Initialize the toolkit internals"); - /*no testable behavior !?!*/ - XtToolkitInitialize() ; - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtUnrealizeWidget.m b/xts5/Xt4/XtUnrealizeWidget.m new file mode 100644 index 00000000..57237b75 --- /dev/null +++ b/xts5/Xt4/XtUnrealizeWidget.m @@ -0,0 +1,128 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtUnrealizeWidget.m +>># +>># Description: +>># Tests for XtUnrealizeWidget() +>># +>># Modifications: +>># $Log: tunrlzwgt.m,v $ +>># Revision 1.1 2005-02-12 14:38:11 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:32 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:23 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:41 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:15 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:27 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:22 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtUnrealizeWidget Xt4 +void +XtUnrealizeWidget(w) +>>ASSERTION Good A +When w is realized a call to +void XtUnrealizeWidget(w) +shall destroy the windows associated with the widget w and its descendants. +>>CODE +Window window_bad; +Widget widget_good, labelw_good; +Widget rowcolw_good; +Display *display_good; +Boolean status; + + avs_xt_hier("Tunrlzwgt1", "XtUnrealizeWidget"); + tet_infoline("PREP: Create rowcolw_good widget in boxw1 widget"); + rowcolw_good = (Widget) CreateRowColWidget(boxw1); + tet_infoline("PREP: Create test label widget `Hello' in rowcolw_good widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", rowcolw_good); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Unrealize rowcolw_good widget"); + XtUnrealizeWidget(rowcolw_good); + tet_infoline("TEST: Root widget rowcolw_good is unrealized"); + status = XtIsRealized(rowcolw_good); + check_dec(False, status, "XtIsRealized return value"); + tet_infoline("TEST: Leaf widget labelw_good is unrealized"); + status = XtIsRealized(labelw_good); + check_dec(False, status, "XtIsRealized return value"); + tet_infoline("TEST: Window of rowcolw_good widget is destroyed"); + if ((window_bad = XtWindow(rowcolw_good)) > 0) { + sprintf(ebuf, "ERROR: Expected Invalid window id received %d", window_bad); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); +>>ASSERTION Good A +When w is unrealized a call to +void XtUnrealizeWidget(w) +shall have no effect. +>>CODE +Window window_bad; +Widget widget_good, labelw_good; +Widget rowcolw_good; +Display *display_good; +Boolean status; + + avs_xt_hier("Tunrlzwgt1", "XtUnrealizeWidget"); + tet_infoline("PREP: Create rowcolw_good widget in boxw1 widget"); + rowcolw_good = (Widget) CreateRowColWidget(boxw1); + tet_infoline("PREP: Create test label widget `Hello' in rowcolw_good widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", rowcolw_good); + tet_infoline("PREP: Unrealize rowcolw_good widget"); + XtUnrealizeWidget(rowcolw_good); + tet_result(TET_PASS); +>>ASSERTION Good B 3 +When w is realized and managed a call to +void XtUnrealizeWidget(w) +shall remove it from the managed list of its parent. +>>ASSERTION Good B 0 +When w is realized a call to +void XtUnrealizeWidget(w) +shall make a child-to-parent traversal of the widget tree with the widget w as +the root and call the procedures on the XtNunrealizeCallback list of each +widget that has a callback list resource named "unrealizeCallback" defined. diff --git a/xts5/Xt4/XtUnrealizeWidget/XtUnrealizeWidget.m b/xts5/Xt4/XtUnrealizeWidget/XtUnrealizeWidget.m deleted file mode 100644 index fef63235..00000000 --- a/xts5/Xt4/XtUnrealizeWidget/XtUnrealizeWidget.m +++ /dev/null @@ -1,128 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtUnrealizeWidget/XtUnrealizeWidget.m ->># ->># Description: ->># Tests for XtUnrealizeWidget() ->># ->># Modifications: ->># $Log: tunrlzwgt.m,v $ ->># Revision 1.1 2005-02-12 14:38:11 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:32 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:23 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:41 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:15 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:27 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:22 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtUnrealizeWidget Xt4 -void -XtUnrealizeWidget(w) ->>ASSERTION Good A -When w is realized a call to -void XtUnrealizeWidget(w) -shall destroy the windows associated with the widget w and its descendants. ->>CODE -Window window_bad; -Widget widget_good, labelw_good; -Widget rowcolw_good; -Display *display_good; -Boolean status; - - avs_xt_hier("Tunrlzwgt1", "XtUnrealizeWidget"); - tet_infoline("PREP: Create rowcolw_good widget in boxw1 widget"); - rowcolw_good = (Widget) CreateRowColWidget(boxw1); - tet_infoline("PREP: Create test label widget `Hello' in rowcolw_good widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", rowcolw_good); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Unrealize rowcolw_good widget"); - XtUnrealizeWidget(rowcolw_good); - tet_infoline("TEST: Root widget rowcolw_good is unrealized"); - status = XtIsRealized(rowcolw_good); - check_dec(False, status, "XtIsRealized return value"); - tet_infoline("TEST: Leaf widget labelw_good is unrealized"); - status = XtIsRealized(labelw_good); - check_dec(False, status, "XtIsRealized return value"); - tet_infoline("TEST: Window of rowcolw_good widget is destroyed"); - if ((window_bad = XtWindow(rowcolw_good)) > 0) { - sprintf(ebuf, "ERROR: Expected Invalid window id received %d", window_bad); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); ->>ASSERTION Good A -When w is unrealized a call to -void XtUnrealizeWidget(w) -shall have no effect. ->>CODE -Window window_bad; -Widget widget_good, labelw_good; -Widget rowcolw_good; -Display *display_good; -Boolean status; - - avs_xt_hier("Tunrlzwgt1", "XtUnrealizeWidget"); - tet_infoline("PREP: Create rowcolw_good widget in boxw1 widget"); - rowcolw_good = (Widget) CreateRowColWidget(boxw1); - tet_infoline("PREP: Create test label widget `Hello' in rowcolw_good widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", rowcolw_good); - tet_infoline("PREP: Unrealize rowcolw_good widget"); - XtUnrealizeWidget(rowcolw_good); - tet_result(TET_PASS); ->>ASSERTION Good B 3 -When w is realized and managed a call to -void XtUnrealizeWidget(w) -shall remove it from the managed list of its parent. ->>ASSERTION Good B 0 -When w is realized a call to -void XtUnrealizeWidget(w) -shall make a child-to-parent traversal of the widget tree with the widget w as -the root and call the procedures on the XtNunrealizeCallback list of each -widget that has a callback list resource named "unrealizeCallback" defined. diff --git a/xts5/Xt4/XtVaAppCreateShell.m b/xts5/Xt4/XtVaAppCreateShell.m new file mode 100644 index 00000000..6dbb7173 --- /dev/null +++ b/xts5/Xt4/XtVaAppCreateShell.m @@ -0,0 +1,315 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtVaAppCreateShell.m +>># +>># Description: +>># Tests for XtVaAppCreateShell() +>># +>># Modifications: +>># $Log: tvapcrshl.m,v $ +>># Revision 1.1 2005-02-12 14:38:12 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:25 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:14 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.1 1998/06/23 22:43:34 andy +>># Added sleep(XT_RESET_DELAY) to each test. SR# 186. +>># +>># Revision 6.0 1998/03/02 05:27:35 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:09 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:07 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:57 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtVaAppCreateShell Xt4 +Widget +XtVaAppCreateShell(name, application_class, widget_class, display, ...) +>>ASSERTION Good A +A successful call to +Widget XtVaAppCreateShell(name, application_class, widget_class, display, ...) +shall create a top-level shell widget that is +the root of a widget tree with name as the shall widget instance name, associate +it with the display specified by the argument display, and return the shell +widget instance. +>>CODE +Display *display_good; +String name_good, class_good; +XtAppContext app_ctext_good; +Widget topLevel_good; +Boolean status; +int argcount = 0; + + avs_xt_hier("Tvapcrshl1", "XtVaAppCreateShell"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Create application context app_ctext_good"); + app_ctext_good = XtCreateApplicationContext(); + tet_infoline("PREP: Open display and initialize toolkit for app_ctext_good"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext_good, /* application context */ + (String)config.display, /* display name */ + "Hello", /* application name use argv[0] */ + "World", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal) 0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Create additional top level widget"); + topLevel_good = XtVaAppCreateShell("Hello", "World", + applicationShellWidgetClass, display_good, + (char *)NULL); + + tet_infoline("TEST: TopLevel_good widget class is applicationShell"); + status = XtIsApplicationShell(topLevel_good); + check_dec(True, status, "XtIsApplicationShell return value"); + tet_infoline("PREP: Get the application name and class"); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + tet_infoline("TEST: Application name and class"); + check_str("Hello", name_good, "Application Name"); + check_str("World", class_good, "Application Class"); + tet_result(TET_PASS); +>>ASSERTION Good A +On a successful call to +Widget XtVaAppCreateShell(name, application_class, widget_class, display, ...) +when widget_class is ApplicationShell or a subclass thereof +the shell widget instance created shall have WM_COMMAND property set from +the values of the XtNargv and XtNargc resources. +>>CODE +Display *display_good; +String name_good, class_good; +XtAppContext app_ctext_good; +Widget widget_good; +Widget rowcolw_good; +XTextProperty *text_prop; +Window window_good; +int argcount = 1; +Atom actual_type; +int actual_format; +unsigned long num_elements; +long bytes_after; +unsigned char *property_data; +int status; +String argvector[] = { "tvapcrshl2", NULL }; +Arg args[2] = { + { "XtNwidth", 100 }, + { "XtNheight", 100 } +}; + + tet_infoline("PREP: Initialize the X toolkit"); + XtToolkitInitialize(); + tet_infoline("PREP: Get application context"); + app_ctext_good = XtCreateApplicationContext();; + tet_infoline("PREP: Set up the XtToolkitError handler"); + XtAppSetErrorMsgHandler(app_ctext_good, xt_handler); + tet_infoline("PREP: Open display and initialize toolkit for app_ctext_good"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext_good, /* application context */ + (String)config.display, /* display name */ + "tvapcrshl2", /* application name use argv[0] */ + "test", /* application class */ + NULL, 0, /* command line options */ + &argcount, argvector /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Create top level widget"); + widget_good = XtVaAppCreateShell("tvapcrshl2", "test", + applicationShellWidgetClass, display_good, XtNheight, 100, XtNwidth, 100, XtNargc, argcount, XtNargv, argvector, NULL); + tet_infoline("PREP: Create rowcol widget"); + rowcolw_good = (Widget) CreateRowColWidget(widget_good); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(widget_good); + XSync(display_good, False); + tet_infoline("TEST: WM_CLASS property is set"); + window_good = XtWindow(widget_good); + + tet_infoline("TEST: Window property values"); + status = XGetWindowProperty(display_good, + window_good, + XA_WM_CLASS, + (long)0, + (long)128, + False, + AnyPropertyType, + &actual_type, + &actual_format, + &num_elements, + (unsigned long *)&bytes_after, + &property_data); + check_dec(Success, status, "Return value"); + if ( actual_format == (int)0 ) { + sprintf(ebuf, "ERROR: Expected actual format not zero"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + if ( actual_type == (Atom)None) { + sprintf(ebuf, "ERROR: Expected actual type None Received %d", actual_type); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + check_str("tvapcrshl2", (char *)property_data, "Class"); + tet_infoline("TEST: WM_COMMAND property is set"); + + status = XGetWindowProperty(display_good, + window_good, + XA_WM_COMMAND, + (long)0, + (long)128, + False, + AnyPropertyType, + &actual_type, + &actual_format, + &num_elements, + (unsigned long *)&bytes_after, + &property_data); + check_dec(Success, status, "Return value"); + if ( actual_format == (int)0 ) { + sprintf(ebuf, "ERROR: Expected actual format not zero"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + if (actual_type == (Atom)None) { + sprintf(ebuf, "ERROR: Expected actual type not None Received %d", actual_type); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtVaAppCreateShell(name, application_class, widget_class, display, ...) +when name is NULL shall name the shell widget instance with the application +name passed to XtDisplayInitialize. +>>CODE +Display *display_good; +String name_good, class_good; +XtAppContext app_ctext_good; +Widget topLevel_good; +Boolean status; +int argcount = 0; + + avs_xt_hier("Tvapcrshl3", "XtVaAppCreateShell"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Create application context app_ctext_good"); + app_ctext_good = XtCreateApplicationContext(); + tet_infoline("PREP: Open display and initialize toolkit for app_ctext_good"); + sleep(config.reset_delay); + display_good = XtOpenDisplay( + app_ctext_good, /* application context */ + (String)config.display, /* display name */ + "Tvapcrshl3", /* application name use argv[0] */ + "World", /* application class */ + (XrmOptionDescRec *)NULL, + (Cardinal) 0, /* command line options */ + &argcount, + (String *)NULL /* command line args */ + ); + if (display_good == 0) { + tet_infoline("ERROR: Cannot open display"); + tet_result(TET_FAIL); + exit(1); + } + tet_infoline("TEST: Create additional top level widget"); + topLevel_good = XtVaAppCreateShell(NULL, "World", + applicationShellWidgetClass, display_good, + (char *)NULL); + tet_infoline("TEST: TopLevel_good widget class is applicationShell"); + status = XtIsApplicationShell(topLevel_good); + check_dec(True, status, "XtIsApplicationShell return value"); + tet_infoline("PREP: Get the application name and class"); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + tet_infoline("TEST: Application name"); + check_str("Tvapcrshl3", name_good, "Application Name"); + tet_result(TET_PASS); +>>ASSERTION Good B 0 +A successful call to Widget XtVaAppCreateShell(name, application_class, +widget_class, display, ...) when the resource arguments specify +XtNscreen shall create the resource database for the shell widget using the +resource arguments specified in varargs style and the resource values from +the resource database of the screen specified in the XtNscreen argument for +those resources not specified in the resource arguments. +>>ASSERTION Good B 0 +A successful call to Widget XtVaAppCreateShell(name, application_class, +widget_class, display, ...) when the resource arguments do not specify +XtNscreen, widget_class is applicationShellWidgetClass or a subclass thereof, +and the resource database of the default screen for display specifies +the resource name.screen, class application_class.screen shall create +the resource database for the shell widget using the resource arguments and +the resource values from the resource database of the screen specified in +the resource database of the default screen for those resources not +specified in the resource arguments. +>>ASSERTION Good B 0 +A successful call to Widget XtVaAppCreateShell(name, application_class, +widget_class, display, ...) when the resource arguments do not specify +XtNscreen, widget_class is not applicationShellWidgetClass or a subclass +thereof, and the resource database of the default screen for display +specifies the resource name.screen, class Class.screen, where Class is the +class_name field from CoreClassPart of widget_class, shall create the +resource database for the shell widget using the resource arguments and +the resource values from the resource database of the screen specified in +the resource database of the default screen for those resources not specified +in the resource arguments. +>>ASSERTION Good B 0 +A successful call to Widget XtVaAppCreateShell(name, application_class, +widget_class, display, ...) when the resource arguments do not specify +XtNscreen and the resource database of the default screen for +display does not specify the resource name.screen, class +application_class.screen shall create the resource database for the +shell widget using the resource arguments and the resource values from +the resource database of the default screen for those resources not specified +in the resource arguments. diff --git a/xts5/Xt4/XtVaAppCreateShell/XtVaAppCreateShell.m b/xts5/Xt4/XtVaAppCreateShell/XtVaAppCreateShell.m deleted file mode 100644 index 292a74c1..00000000 --- a/xts5/Xt4/XtVaAppCreateShell/XtVaAppCreateShell.m +++ /dev/null @@ -1,315 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtVaAppCreateShell/XtVaAppCreateShell.m ->># ->># Description: ->># Tests for XtVaAppCreateShell() ->># ->># Modifications: ->># $Log: tvapcrshl.m,v $ ->># Revision 1.1 2005-02-12 14:38:12 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:25 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:14 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.1 1998/06/23 22:43:34 andy ->># Added sleep(XT_RESET_DELAY) to each test. SR# 186. ->># ->># Revision 6.0 1998/03/02 05:27:35 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:09 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:07 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:57 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtVaAppCreateShell Xt4 -Widget -XtVaAppCreateShell(name, application_class, widget_class, display, ...) ->>ASSERTION Good A -A successful call to -Widget XtVaAppCreateShell(name, application_class, widget_class, display, ...) -shall create a top-level shell widget that is -the root of a widget tree with name as the shall widget instance name, associate -it with the display specified by the argument display, and return the shell -widget instance. ->>CODE -Display *display_good; -String name_good, class_good; -XtAppContext app_ctext_good; -Widget topLevel_good; -Boolean status; -int argcount = 0; - - avs_xt_hier("Tvapcrshl1", "XtVaAppCreateShell"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Create application context app_ctext_good"); - app_ctext_good = XtCreateApplicationContext(); - tet_infoline("PREP: Open display and initialize toolkit for app_ctext_good"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext_good, /* application context */ - (String)config.display, /* display name */ - "Hello", /* application name use argv[0] */ - "World", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal) 0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Create additional top level widget"); - topLevel_good = XtVaAppCreateShell("Hello", "World", - applicationShellWidgetClass, display_good, - (char *)NULL); - - tet_infoline("TEST: TopLevel_good widget class is applicationShell"); - status = XtIsApplicationShell(topLevel_good); - check_dec(True, status, "XtIsApplicationShell return value"); - tet_infoline("PREP: Get the application name and class"); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - tet_infoline("TEST: Application name and class"); - check_str("Hello", name_good, "Application Name"); - check_str("World", class_good, "Application Class"); - tet_result(TET_PASS); ->>ASSERTION Good A -On a successful call to -Widget XtVaAppCreateShell(name, application_class, widget_class, display, ...) -when widget_class is ApplicationShell or a subclass thereof -the shell widget instance created shall have WM_COMMAND property set from -the values of the XtNargv and XtNargc resources. ->>CODE -Display *display_good; -String name_good, class_good; -XtAppContext app_ctext_good; -Widget widget_good; -Widget rowcolw_good; -XTextProperty *text_prop; -Window window_good; -int argcount = 1; -Atom actual_type; -int actual_format; -unsigned long num_elements; -long bytes_after; -unsigned char *property_data; -int status; -String argvector[] = { "tvapcrshl2", NULL }; -Arg args[2] = { - { "XtNwidth", 100 }, - { "XtNheight", 100 } -}; - - tet_infoline("PREP: Initialize the X toolkit"); - XtToolkitInitialize(); - tet_infoline("PREP: Get application context"); - app_ctext_good = XtCreateApplicationContext();; - tet_infoline("PREP: Set up the XtToolkitError handler"); - XtAppSetErrorMsgHandler(app_ctext_good, xt_handler); - tet_infoline("PREP: Open display and initialize toolkit for app_ctext_good"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext_good, /* application context */ - (String)config.display, /* display name */ - "tvapcrshl2", /* application name use argv[0] */ - "test", /* application class */ - NULL, 0, /* command line options */ - &argcount, argvector /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Create top level widget"); - widget_good = XtVaAppCreateShell("tvapcrshl2", "test", - applicationShellWidgetClass, display_good, XtNheight, 100, XtNwidth, 100, XtNargc, argcount, XtNargv, argvector, NULL); - tet_infoline("PREP: Create rowcol widget"); - rowcolw_good = (Widget) CreateRowColWidget(widget_good); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(widget_good); - XSync(display_good, False); - tet_infoline("TEST: WM_CLASS property is set"); - window_good = XtWindow(widget_good); - - tet_infoline("TEST: Window property values"); - status = XGetWindowProperty(display_good, - window_good, - XA_WM_CLASS, - (long)0, - (long)128, - False, - AnyPropertyType, - &actual_type, - &actual_format, - &num_elements, - (unsigned long *)&bytes_after, - &property_data); - check_dec(Success, status, "Return value"); - if ( actual_format == (int)0 ) { - sprintf(ebuf, "ERROR: Expected actual format not zero"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - if ( actual_type == (Atom)None) { - sprintf(ebuf, "ERROR: Expected actual type None Received %d", actual_type); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - check_str("tvapcrshl2", (char *)property_data, "Class"); - tet_infoline("TEST: WM_COMMAND property is set"); - - status = XGetWindowProperty(display_good, - window_good, - XA_WM_COMMAND, - (long)0, - (long)128, - False, - AnyPropertyType, - &actual_type, - &actual_format, - &num_elements, - (unsigned long *)&bytes_after, - &property_data); - check_dec(Success, status, "Return value"); - if ( actual_format == (int)0 ) { - sprintf(ebuf, "ERROR: Expected actual format not zero"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - if (actual_type == (Atom)None) { - sprintf(ebuf, "ERROR: Expected actual type not None Received %d", actual_type); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtVaAppCreateShell(name, application_class, widget_class, display, ...) -when name is NULL shall name the shell widget instance with the application -name passed to XtDisplayInitialize. ->>CODE -Display *display_good; -String name_good, class_good; -XtAppContext app_ctext_good; -Widget topLevel_good; -Boolean status; -int argcount = 0; - - avs_xt_hier("Tvapcrshl3", "XtVaAppCreateShell"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Create application context app_ctext_good"); - app_ctext_good = XtCreateApplicationContext(); - tet_infoline("PREP: Open display and initialize toolkit for app_ctext_good"); - sleep(config.reset_delay); - display_good = XtOpenDisplay( - app_ctext_good, /* application context */ - (String)config.display, /* display name */ - "Tvapcrshl3", /* application name use argv[0] */ - "World", /* application class */ - (XrmOptionDescRec *)NULL, - (Cardinal) 0, /* command line options */ - &argcount, - (String *)NULL /* command line args */ - ); - if (display_good == 0) { - tet_infoline("ERROR: Cannot open display"); - tet_result(TET_FAIL); - exit(1); - } - tet_infoline("TEST: Create additional top level widget"); - topLevel_good = XtVaAppCreateShell(NULL, "World", - applicationShellWidgetClass, display_good, - (char *)NULL); - tet_infoline("TEST: TopLevel_good widget class is applicationShell"); - status = XtIsApplicationShell(topLevel_good); - check_dec(True, status, "XtIsApplicationShell return value"); - tet_infoline("PREP: Get the application name and class"); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - tet_infoline("TEST: Application name"); - check_str("Tvapcrshl3", name_good, "Application Name"); - tet_result(TET_PASS); ->>ASSERTION Good B 0 -A successful call to Widget XtVaAppCreateShell(name, application_class, -widget_class, display, ...) when the resource arguments specify -XtNscreen shall create the resource database for the shell widget using the -resource arguments specified in varargs style and the resource values from -the resource database of the screen specified in the XtNscreen argument for -those resources not specified in the resource arguments. ->>ASSERTION Good B 0 -A successful call to Widget XtVaAppCreateShell(name, application_class, -widget_class, display, ...) when the resource arguments do not specify -XtNscreen, widget_class is applicationShellWidgetClass or a subclass thereof, -and the resource database of the default screen for display specifies -the resource name.screen, class application_class.screen shall create -the resource database for the shell widget using the resource arguments and -the resource values from the resource database of the screen specified in -the resource database of the default screen for those resources not -specified in the resource arguments. ->>ASSERTION Good B 0 -A successful call to Widget XtVaAppCreateShell(name, application_class, -widget_class, display, ...) when the resource arguments do not specify -XtNscreen, widget_class is not applicationShellWidgetClass or a subclass -thereof, and the resource database of the default screen for display -specifies the resource name.screen, class Class.screen, where Class is the -class_name field from CoreClassPart of widget_class, shall create the -resource database for the shell widget using the resource arguments and -the resource values from the resource database of the screen specified in -the resource database of the default screen for those resources not specified -in the resource arguments. ->>ASSERTION Good B 0 -A successful call to Widget XtVaAppCreateShell(name, application_class, -widget_class, display, ...) when the resource arguments do not specify -XtNscreen and the resource database of the default screen for -display does not specify the resource name.screen, class -application_class.screen shall create the resource database for the -shell widget using the resource arguments and the resource values from -the resource database of the default screen for those resources not specified -in the resource arguments. diff --git a/xts5/Xt4/XtVaAppInitialize.m b/xts5/Xt4/XtVaAppInitialize.m new file mode 100644 index 00000000..04f97275 --- /dev/null +++ b/xts5/Xt4/XtVaAppInitialize.m @@ -0,0 +1,944 @@ +Copyright (c) 2005 X.Org Foundation L.L.C. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) 2001 The Open Group +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtVaAppInitialize.m +>># +>># Description: +>># Tests for XtVaAppInitialize() +>># +>># Modifications: +>># $Log: tvapintlz.m,v $ +>># Revision 1.2 2005-04-21 09:40:42 ajosey +>># resync to VSW5.1.5 +>># +>># Revision 8.2 2005/01/21 12:18:22 gwc +>># Updated copyright notice +>># +>># Revision 8.1 2001/04/12 14:48:03 vsx +>># tp9 - argv_string was uninitialised +>># +>># Revision 8.0 1998/12/23 23:36:26 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:16 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.1 1998/06/23 22:39:05 andy +>># Added sleep(XT_RESET_DELAY) to each test. SR# 186. +>># +>># Revision 6.0 1998/03/02 05:27:36 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:10 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.1 1998/01/13 04:55:13 andy +>># In test 17 changed type of closure_ret from XtPointer * to XtPointer (SR 141). +>># +>># Revision 4.0 1995/12/15 09:16:12 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:04 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +char *msg="/tmp/outfile"; +char *args11[] = { + "-background", "green", + "-bd", "green", + "-bg", "green", + "-borderwidth", "3", + "-bordercolor", "red", + "-bw", "3", + "-fg", "green", + "-font", XtDefaultFont, + "-fn", XtDefaultFont, + "-foreground", "blue", + "-geometry", "100x100", + "-iconic", + "-reverse", + "-rv", + "+rv", + "-selectionTimeout", "50", + "-synchronous", + "+synchronous", + "-title", "ApTest", + "-xnlLanguage", "C", + NULL}; + + +typedef struct _instance_variables { + long foreground; + String label; +} instance_variable_rec; + +static XtResource resources[] = { + { + XtNforeground, + XtCForeground, + XtRPixel, sizeof(Pixel), + XtOffsetOf(instance_variable_rec, foreground), + XtRString, "XtDefaultForeground" + }, + { + XtNlabel, + XtCLabel, + XtRString, sizeof(String), + XtOffsetOf(instance_variable_rec, label), + XtRString, "very bad idea" + }, +}; +>>SET tpstartup avs_alloc_sem +>>SET tpcleanup avs_free_sem +>>TITLE XtVaAppInitialize Xt4 +Widget +XtVaAppInitialize(app_context_return, application_class, options, num_options, argc_in_out, argv_in_out, fallback_resources, ...) +>>ASSERTION Good A +A call to +Widget XtVaAppInitialize(app_context_return, application_class, +options, num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall initialize the Intrinsics internals, create an application context for +the calling application and return the context in app_context_return, open +a display, create a top-level shell widget that is the root of a widget +tree, and return the shell widget instance. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +int argcount = 0; +Boolean status; +pid_t pid2; + + FORK(pid2); + tet_infoline("TEST: Initialize toolkit"); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + widget_good = XtVaAppInitialize(&app_ctext_return, + "TVaAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + (String *)NULL, + (String *)NULL, + (char *)NULL + ); + avs_set_event(1,1); + tet_infoline("TEST: Widget_good class is applicationShell"); + status = XtIsApplicationShell(widget_good); + check_dec(True, status, "XtIsApplicationShell return value"); + display_good = XtDisplay(widget_good); + tet_infoline("PREP: Get application name and class"); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + tet_infoline("TEST: Application name and class."); + check_str("main", name_good, "Name"); + check_str("TVaAppInitialize", class_good, "Class"); + KROF(pid2); + if (avs_get_event(1) != 1) { + tet_infoline("ERROR: Process terminated by XtVaAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + tet_result(TET_PASS); +>>ASSERTION Good A +When the display cannot be opened a call to +Widget XtVaAppInitialize(app_context_return, application_class, +options, num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall issue an error message and terminate the application. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +int argcount = 0; +Boolean status; +pid_t pid2; +FILE *stream; +char line[80], *retval; + + tet_infoline("TEST: Initialize toolkit"); + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "PREP: Direct error message to %s", msg); + tet_infoline(ebuf); + push_stderr("outfile", "w"); + sprintf(ebuf, "DISPLAY=%s", "notarealdisplay"); + putenv(ebuf); + widget_good = XtVaAppInitialize(&app_ctext_return, + "TVaAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + (String *)NULL, + (String *)NULL, + (char *)NULL + ); + avs_set_event(1,1); + pop_stderr(); + KROF(pid2); + tet_infoline("TEST: Open the file and read the message"); + stream = (FILE *)fopen(msg, "r"); + retval = fgets(line, 80, stream) ; + if (retval == NULL) { + tet_infoline("ERROR: No error message issued"); + tet_result(TET_FAIL); + unlink(msg); + exit(0); + } + unlink(msg); + if (avs_get_event(1) == 1) { + tet_infoline("ERROR: Process not terminated by XtVaAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + tet_result(TET_PASS); +>># +>># Start of XtCreateApplicationContext +>># +>># ----- +>># +>># Start of XtOpenDisplay +>># +>>ASSERTION Good B 0 +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, +options, num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall create a resource database for the display. +>>ASSERTION Good A +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the -display option is specified in argv_in_out shall use this value as +the display to be opened and initialized. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +Boolean status; +pid_t pid2; +int argc_count; +char **argv_string; +int count = 3; +char *argvals[4]; +char *display_name; + + + FORK(pid2); + tet_infoline("TEST: Initialize toolkit"); + sleep(config.reset_delay); + tet_infoline("PREP: Set arguments to include -display"); + argvals[0] = "tinitlize"; + argvals[1] = "-display"; + argvals[2] = (char *)config.display; + argvals[3] = (char *)NULL; + argc_count = count; + argv_string = &argvals[0]; + widget_good = XtVaAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc_count, + argv_string, + (String *)NULL, + (ArgList)NULL, + (char *)NULL + ); + avs_set_event(1,1); + display_good = XtDisplay(widget_good); + tet_infoline("TEST: Display name is correct"); + display_name = XDisplayString(display_good); + check_str(config.display, display_name, "Display name"); + KROF(pid2); + if (avs_get_event(1) != 1) { + tet_infoline("ERROR: Process terminated by XtVaAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the -display option is not specified in argv and the DISPLAY environment +variable is set shall use this value as the display to be opened and +initialized. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +char *display_name; +int argcount = 0; +Boolean status; +pid_t pid2; + + FORK(pid2); + sleep(config.reset_delay); + tet_infoline("PREP: Set DISPLAY"); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit"); + widget_good = XtVaAppInitialize(&app_ctext_return, + "TVaAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + (String *)NULL, + (String *)NULL, + (char *)NULL + ); + avs_set_event(1,1); + display_good = XtDisplay(widget_good); + tet_infoline("TEST: Display name is correct"); + display_name = XDisplayString(display_good); + check_str(config.display, display_name, "Display name"); + KROF(pid2); + if (avs_get_event(1) != 1) { + tet_infoline("ERROR: Process terminated by XtVaAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the -name option is specified in argv_in_out shall use this value as the +application name to query the server and screen resource databases for +the name.xnlLanguage resource to create the resource database for the display. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +int argcount = 0; +Boolean status; +pid_t pid2; +int pstatus; +int argc_count; +char **argv_string; +int count = 3; +char *argvals[4]; + + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit and open display"); + argvals[0] = "tinitlize"; + argvals[1] = "-name"; + argvals[2] = "testname"; + argvals[3] = (char *)NULL; + argc_count = count; + argv_string = &argvals[0]; + widget_good = XtVaAppInitialize(&app_ctext_return, + "TVaAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc_count, + argv_string, + (String *)NULL, + (char *)NULL + ); + tet_infoline("TEST: widget_good class is applicationShell"); + status = XtIsApplicationShell(widget_good); + check_dec(True, status, "XtIsApplicationShell return value"); + tet_infoline("TEST: Application name and class"); + display_good = XtDisplay(widget_good); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + check_str("testname", name_good, "Application Name"); + KROF3(pid2, pstatus, AVSXTTIMEOUT-2); + if (pstatus != 0) { + tet_infoline("ERROR: Test process exited abnormally"); + tet_infoline(" May mean display cannot be opened"); + tet_result(TET_UNRESOLVED); + } else + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the -name option is not specified in argv and the environment variable +RESOURCE_NAME is set shall use this value as the application name to query +the server and screen resource databases for the name.xnlLanguage resource +to create the resource database for the display. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +int argcount = 0; +Boolean status; +pid_t pid2; +int pstatus; + + FORK(pid2); + sleep(config.reset_delay); + tet_infoline("PREP: Set up env variable RESOURCE_NAME"); + putenv("RESOURCE_NAME=testname2"); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit and open display"); + widget_good = XtVaAppInitialize(&app_ctext_return, + "TVaAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + (String *)NULL, + (String *)NULL, + (char *)NULL + ); + tet_infoline("TEST: widget_good class is applicationShell"); + status = XtIsApplicationShell(widget_good); + check_dec(True, status, "XtIsApplicationShell return value"); + tet_infoline("TEST: Application name and class"); + display_good = XtDisplay(widget_good); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + check_str("testname2", name_good, "Application Name"); + KROF3(pid2, pstatus, AVSXTTIMEOUT-2); + if (pstatus != 0) { + tet_infoline("ERROR: Test process exited abnormally"); + tet_infoline(" May mean display cannot be opened"); + tet_result(TET_UNRESOLVED); + } else + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the -name option is not specified in argv_in_out, the environment variable +RESOURCE_NAME is not set, and argv_in_out[0] is not an empty string shall use +this value as the application name to query the server and screen resource +databases for the name.xnlLanguage resource to create the resource database +for the display. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +int argcount = 0; +Boolean status; +pid_t pid2; +int pstatus; +int argc_count; +char **argv_string; +int count = 1; +char *argvals[4]; + + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit and open display"); + argvals[0] = "testname3"; + argvals[1] = (char *)NULL; + argc_count = count; + argv_string = &argvals[0]; + widget_good = XtVaAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc_count, + argv_string, + (String *)NULL, + (char *)NULL + ); + tet_infoline("TEST: widget_good class is applicationShell"); + status = XtIsApplicationShell(widget_good); + check_dec(True, status, "XtIsApplicationShell return value"); + tet_infoline("TEST: Application name and class"); + display_good = XtDisplay(widget_good); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + check_str("testname3", name_good, "Application Name"); + KROF3(pid2, pstatus, AVSXTTIMEOUT-2); + if (pstatus != 0) { + tet_infoline("ERROR: Test process exited abnormally"); + tet_infoline(" May mean display cannot be opened"); + tet_result(TET_UNRESOLVED); + } else + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the -name option is not specified in argv_in_out, the environment variable +RESOURCE_NAME is not set, and argv_in_out[0] is an empty string shall use the +string "main" as the application name to query the server and screen resource +databases for the name.xnlLanguage resource to create the resource database +for the display. +>>CODE +XtAppContext app_ctext_return; +Widget widget_good; +Display *display_good; +String name_good, class_good; +char name[20], class[20]; +int argcount = 0; +Boolean status; +pid_t pid2; +int pstatus; +int argc_count; +char **argv_string; +int count = 1; +char *argvals[4]; + + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit and open display"); + argvals[0] = ""; + argvals[1] = (char *)NULL; + argc_count = count; + argv_string = &argvals[0]; + widget_good = XtVaAppInitialize(&app_ctext_return, + "TAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc_count, + argv_string, + (String *)NULL, + (char *)NULL + ); + tet_infoline("TEST: widget_good class is applicationShell"); + status = XtIsApplicationShell(widget_good); + check_dec(True, status, "XtIsApplicationShell return value"); + tet_infoline("TEST: Application name and class"); + display_good = XtDisplay(widget_good); + XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); + check_str("main", name_good, "Application Name"); + KROF3(pid2, pstatus, AVSXTTIMEOUT-2); + if (pstatus != 0) { + tet_infoline("ERROR: Test process exited abnormally"); + tet_infoline(" May mean display cannot be opened"); + tet_result(TET_UNRESOLVED); + } else + tet_result(TET_PASS); +>># >># +>># >># Start of XtDisplayInitialize assertions +>># >># +>>ASSERTION Good A +When the synchronize resource is set to True in the resource database +created by a successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +it shall put Xlib into synchronous mode for this display connection. +>>CODE +Window window; +int scr; +static char *property_data = "Hello World"; +XtAppContext app_ctext_return; +Display *display; +int queued_events, events; +int argc = 2; +pid_t pid2; +int pstatus; + /* + ** -synchronous on + ** +synchronous off + */ +char *argv[] = { "tinitlize", "-synchronous", (char *)NULL }; +Widget widget_good; + + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit and open display"); + widget_good = XtVaAppInitialize(&app_ctext_return, + "TVaAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc, + argv, + (String *)NULL, + (ArgList)NULL, + NULL + ); + avs_set_event(1,1); + display = XtDisplay(widget_good); + tet_infoline("PREP: Create a window for events"); + scr = DefaultScreen(display); + window = XCreateWindow(display, RootWindow(display, scr), + 0, 0, 5, 5, 0, /* x,y,wid,ht,brd width */ + DefaultDepth(display, scr), + InputOutput, + DefaultVisual(display, scr), + (XtValueMask) 0, + (XSetWindowAttributes *) 0); + tet_infoline("TEST: Check Xlib is in synchronous mode"); + queued_events = XQLength(display); + XSelectInput(display, window, + (unsigned long)PropertyChangeMask); + for (events = 0; events < 3; events++) + XChangeProperty(display, window, XA_RESOURCE_MANAGER, XA_STRING, 8,0, (unsigned char *)property_data, 16); + check_dec(3+queued_events, XQLength(display), "queue length"); + KROF3(pid2, pstatus, AVSXTTIMEOUT-2); + if (avs_get_event(1) != 1) { + tet_infoline("ERROR: Process terminated by XtVaAppInitialize "); + tet_result(TET_FAIL); + exit(1); + } + tet_result(TET_PASS); +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall determine a language string for the display +by searching the following sources in the specified order: + +- the resource database created from the command line. + +- the resource application_name.xnlLanguage, class + application_class.XnlLanguage in the server's RESOURCE_MANAGER + property for the root window of screen zero if it exists, or in + the user preference resource file otherwise. + +- the environment. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later and is POSIX-based: +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall use the LANG environment variable as the environment value to +search when determining the language string for the display. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall set the language string for the display to the empty string if the +server's RESOURCE_MANAGER property for the root window of screen zero +exists, and a language string is not found on the command line, in this +property, or in the environment. +>>ASSERTION Good D 0 +If the implementation is X11R5 or later: +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall set the language string for the display to the empty string if the +server's RESOURCE_MANAGER property for the root window of screen +zero does not exist and a language string is not found on the +command line, in the user preference resource file, or in the +environment. +>>ASSERTION Good B 0 +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall associate with the default screen of the display a resource +database created by combining entries from the following sources, +in order, with the first named source having the highest precedence: + +- the application command line + +- the user's environment resource file + +- per-screen resource specifications from the server, as returned by + XScreenResourceString() + +- per display resource specifications from the server (the + server's RESOURCE_MANAGER property for the root window of + screen zero) if they exist, otherwise the user preference file + +- the application-specific user resource file. + +- the application-specific class resource file . +>>ASSERTION Good A +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall recognize options specified on the command line that are in the +standard table of options in section 4.4 of the specification or in +the table specific to the application specified by +.A options +and +.A num_options. +>>CODE +Display *display_good; +String name_good, class_good; +int argcount = 20; +instance_variable_rec base; +pid_t pid2; +Widget widget_good; +XtAppContext app_ctext_return; + + FORK(pid2); + sleep(config.reset_delay); + tet_infoline("PREP: Set DISPLAY"); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize toolkit"); + widget_good = XtVaAppInitialize(&app_ctext_return, + "TVaAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argcount, + args11, + (String *)NULL, + (ArgList)NULL, + NULL + ); + tet_infoline("TEST: Retrieve resource values from resource database"); + XtGetApplicationResources(widget_good, + &base, + resources, + 1, + (ArgList)NULL, + (Cardinal)0); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the reverseVideo resource is define as True on the command line shall use +the value of XtDefaultForeground instead of XtDefaultBackground and +vice versa in the resource database created for the display. +>>CODE +Window window; +int scr; +static char *property_data = "Hello World"; +XtAppContext app_ctext; +Display *display; +int queued_events, events; +XrmValue args[2]; +Cardinal num_args; +XrmValue fromVal; +XrmValue toVal; +Boolean closure; +XtPointer closure_ret = (XtPointer *) &closure; +int argc = 2; +char *argv[] = { "tdsplyintl2", "+rv", (char *)NULL }; +Screen *screen; +Colormap colormap; +pid_t pid2; +Pixel res; +Boolean status; +XtAppContext app_ctext_return; +Widget widget_good; + + FORK(pid2); + sleep(config.reset_delay); + sprintf(ebuf, "DISPLAY=%s", config.display); + putenv(ebuf); + tet_infoline("TEST: Initialize and application with +rv in args"); + widget_good = XtVaAppInitialize(&app_ctext_return, + "TVaAppInitialize", + (XrmOptionDescList)NULL, + (Cardinal)0, + &argc, + argv, + (String *)NULL, + (ArgList)NULL, + NULL + ); + display = XtDisplay(widget_good); + tet_infoline("PREP: Set up required conversion args"); + screen = DefaultScreenOfDisplay(display); + args[0].addr = (XtPointer )&screen; + args[0].size = sizeof(Screen*); + colormap = DefaultColormapOfScreen(screen); + args[1].addr = (XtPointer) &colormap; + args[1].size = sizeof(Colormap); + num_args = 2; + tet_infoline("TEST: Convert XtDefaultForeground"); + fromVal.addr = XtDefaultForeground; + fromVal.size = strlen(XtDefaultForeground)+1; + toVal.addr = (XtPointer) &res; + toVal.size = sizeof(Pixel); + status = XtCvtStringToPixel(display, + &args[0], + &num_args, + &fromVal, + &toVal, + &closure_ret); + check_dec(True, status, "XtCvtStringToPixel return value"); + tet_infoline("TEST: Conversion result"); + check_dec(XBlackPixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); + tet_infoline("TEST: Convert XtDefaultBackground"); + fromVal.addr = XtDefaultBackground; + fromVal.size = strlen(XtDefaultBackground)+1; + toVal.addr = (XtPointer) &res; + toVal.size = sizeof(Pixel); + status = XtCvtStringToPixel(display, + &args[0], + &num_args, + &fromVal, + &toVal, + &closure_ret); + check_dec(True, status, "XtCvtStringToPixel return value"); + tet_infoline("TEST: Conversion result"); + check_dec(XWhitePixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the environment variable XENVIRONMENT exists shall use the value +of this variable as the name of the user environment resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the environment variable XENVIRONMENT does not exist shall use +the file .Xdefaults-host, where host is the name of the system running +the application, in the user's home directory as the user environment +resource file. +>>ASSERTION Good B 0 +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall set the values from the higher precedence sources of the resource +database being created for the display as the current resource database +before determining the file name for the application-specific user resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the environment variable XUSERFILESEARCHPATH is defined +shall use the result of calling XtResolvePathname(display, path, +NULL, NULL, NULL, NULL, 0, NULL) with the value of this variable as path +as the name of the application-specific user resource file. +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the environment variable XUSERFILESEARCHPATH is not defined and +the environment variable XAPPLRESDIR is not defined shall +use the result of calling XtResolvePathname(display, path, +NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific +user resource file where path contains at least entries containing $HOME as +the directory prefix plus the following substitutions, in the order specified: + +- %C, %N, %L or %C, %N, %l, %t, %c + +- %C, %N, %l + +- %C, %N + +- %N, %L or %N, %l, %t, %c + +- %N, %l + +- %N +>>ASSERTION Good D 0 +If the implementation is POSIX-based: +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the environment variable XUSERFILESEARCHPATH is not defined and +the environment variable XAPPLRESDIR is defined shall use the result +of calling XtResolvePathname(display, path, NULL, NULL, NULL, NULL, 0, NULL) +as the name of the application-specific user resource file where path +contains at least entries containing the following directory prefixes and +substitutions, in the order specified: + +- $XPPLRESDIR with %C, %N, %L or %C, %N, %l, %t, %c + +- $XPPLRESDIR with %C, %N, %l + +- $XPPLRESDIR with %C, %N + +- $XPPLRESDIR with %N, %L or %N, %l, %t, %c + +- $XPPLRESDIR with %N, %l + +- $XPPLRESDIR with %N + +- $HOME with %N +>>ASSERTION Good B 0 +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall use the result of calling XtResolvePathname(display, "app-defaults", +NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific +class resource file, with the values from the higher precedence sources of +the resource database being created for the display set as the current +resource database before the call is made. +>># +>># Start of XtAppCreateShell +>># +>>ASSERTION Good B 0 +On a successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +the shell widget instance created shall have WM_COMMAND property set from +the values of the XtNargv and XtNargc resources. +>>ASSERTION Good B 0 +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +shall name the shell widget instance with the application name passed to +XtDisplayInitialize. +>>ASSERTION Good B 0 +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the varargs style variable argument list specifies the XtNscreen argument shall create +the resource database for the shell widget using the resource values specified +in the variable argument list and resource values from the resource database of the screen specified +by the XtNscreen argument for those resources not specified in the variable argument list. +>>ASSERTION Good B 0 +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the variable argument list does not specify the XtNscreen argument and the resource database +of the default screen for display +specifies the resource name.screen, class application_class.screen shall +create the resource database for the shell widget using the resource values +specified in the variable argument list and resource values from the resource database of the screen +specified in the resource database of the default screen for those resources +not specified in the variable argument list. +>>ASSERTION Good B 0 +A successful call to +Widget XtVaAppInitialize(app_context_return, application_class, options, +num_options, argc_in_out, argv_in_out, fallback_resources, ...) +when the variable argument list does not specify the XtNscreen argument and the resource database +of the default screen for display does not specify the resource name.screen, +class application_class.screen shall create the resource database for the +shell widget using the resource values specified in the variable argument list and resource values +from the resource database of the default screen for those resources not +specified in the variable argument list. diff --git a/xts5/Xt4/XtVaAppInitialize/XtVaAppInitialize.m b/xts5/Xt4/XtVaAppInitialize/XtVaAppInitialize.m deleted file mode 100644 index 740a3370..00000000 --- a/xts5/Xt4/XtVaAppInitialize/XtVaAppInitialize.m +++ /dev/null @@ -1,944 +0,0 @@ -Copyright (c) 2005 X.Org Foundation L.L.C. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) 2001 The Open Group -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtVaAppInitialize/XtVaAppInitialize.m ->># ->># Description: ->># Tests for XtVaAppInitialize() ->># ->># Modifications: ->># $Log: tvapintlz.m,v $ ->># Revision 1.2 2005-04-21 09:40:42 ajosey ->># resync to VSW5.1.5 ->># ->># Revision 8.2 2005/01/21 12:18:22 gwc ->># Updated copyright notice ->># ->># Revision 8.1 2001/04/12 14:48:03 vsx ->># tp9 - argv_string was uninitialised ->># ->># Revision 8.0 1998/12/23 23:36:26 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:16 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.1 1998/06/23 22:39:05 andy ->># Added sleep(XT_RESET_DELAY) to each test. SR# 186. ->># ->># Revision 6.0 1998/03/02 05:27:36 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:10 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.1 1998/01/13 04:55:13 andy ->># In test 17 changed type of closure_ret from XtPointer * to XtPointer (SR 141). ->># ->># Revision 4.0 1995/12/15 09:16:12 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:04 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; -char *msg="/tmp/outfile"; -char *args11[] = { - "-background", "green", - "-bd", "green", - "-bg", "green", - "-borderwidth", "3", - "-bordercolor", "red", - "-bw", "3", - "-fg", "green", - "-font", XtDefaultFont, - "-fn", XtDefaultFont, - "-foreground", "blue", - "-geometry", "100x100", - "-iconic", - "-reverse", - "-rv", - "+rv", - "-selectionTimeout", "50", - "-synchronous", - "+synchronous", - "-title", "ApTest", - "-xnlLanguage", "C", - NULL}; - - -typedef struct _instance_variables { - long foreground; - String label; -} instance_variable_rec; - -static XtResource resources[] = { - { - XtNforeground, - XtCForeground, - XtRPixel, sizeof(Pixel), - XtOffsetOf(instance_variable_rec, foreground), - XtRString, "XtDefaultForeground" - }, - { - XtNlabel, - XtCLabel, - XtRString, sizeof(String), - XtOffsetOf(instance_variable_rec, label), - XtRString, "very bad idea" - }, -}; ->>SET tpstartup avs_alloc_sem ->>SET tpcleanup avs_free_sem ->>TITLE XtVaAppInitialize Xt4 -Widget -XtVaAppInitialize(app_context_return, application_class, options, num_options, argc_in_out, argv_in_out, fallback_resources, ...) ->>ASSERTION Good A -A call to -Widget XtVaAppInitialize(app_context_return, application_class, -options, num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall initialize the Intrinsics internals, create an application context for -the calling application and return the context in app_context_return, open -a display, create a top-level shell widget that is the root of a widget -tree, and return the shell widget instance. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -int argcount = 0; -Boolean status; -pid_t pid2; - - FORK(pid2); - tet_infoline("TEST: Initialize toolkit"); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - widget_good = XtVaAppInitialize(&app_ctext_return, - "TVaAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - (String *)NULL, - (String *)NULL, - (char *)NULL - ); - avs_set_event(1,1); - tet_infoline("TEST: Widget_good class is applicationShell"); - status = XtIsApplicationShell(widget_good); - check_dec(True, status, "XtIsApplicationShell return value"); - display_good = XtDisplay(widget_good); - tet_infoline("PREP: Get application name and class"); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - tet_infoline("TEST: Application name and class."); - check_str("main", name_good, "Name"); - check_str("TVaAppInitialize", class_good, "Class"); - KROF(pid2); - if (avs_get_event(1) != 1) { - tet_infoline("ERROR: Process terminated by XtVaAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - tet_result(TET_PASS); ->>ASSERTION Good A -When the display cannot be opened a call to -Widget XtVaAppInitialize(app_context_return, application_class, -options, num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall issue an error message and terminate the application. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -int argcount = 0; -Boolean status; -pid_t pid2; -FILE *stream; -char line[80], *retval; - - tet_infoline("TEST: Initialize toolkit"); - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "PREP: Direct error message to %s", msg); - tet_infoline(ebuf); - push_stderr("outfile", "w"); - sprintf(ebuf, "DISPLAY=%s", "notarealdisplay"); - putenv(ebuf); - widget_good = XtVaAppInitialize(&app_ctext_return, - "TVaAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - (String *)NULL, - (String *)NULL, - (char *)NULL - ); - avs_set_event(1,1); - pop_stderr(); - KROF(pid2); - tet_infoline("TEST: Open the file and read the message"); - stream = (FILE *)fopen(msg, "r"); - retval = fgets(line, 80, stream) ; - if (retval == NULL) { - tet_infoline("ERROR: No error message issued"); - tet_result(TET_FAIL); - unlink(msg); - exit(0); - } - unlink(msg); - if (avs_get_event(1) == 1) { - tet_infoline("ERROR: Process not terminated by XtVaAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - tet_result(TET_PASS); ->># ->># Start of XtCreateApplicationContext ->># ->># ----- ->># ->># Start of XtOpenDisplay ->># ->>ASSERTION Good B 0 -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, -options, num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall create a resource database for the display. ->>ASSERTION Good A -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the -display option is specified in argv_in_out shall use this value as -the display to be opened and initialized. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -Boolean status; -pid_t pid2; -int argc_count; -char **argv_string; -int count = 3; -char *argvals[4]; -char *display_name; - - - FORK(pid2); - tet_infoline("TEST: Initialize toolkit"); - sleep(config.reset_delay); - tet_infoline("PREP: Set arguments to include -display"); - argvals[0] = "tinitlize"; - argvals[1] = "-display"; - argvals[2] = (char *)config.display; - argvals[3] = (char *)NULL; - argc_count = count; - argv_string = &argvals[0]; - widget_good = XtVaAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc_count, - argv_string, - (String *)NULL, - (ArgList)NULL, - (char *)NULL - ); - avs_set_event(1,1); - display_good = XtDisplay(widget_good); - tet_infoline("TEST: Display name is correct"); - display_name = XDisplayString(display_good); - check_str(config.display, display_name, "Display name"); - KROF(pid2); - if (avs_get_event(1) != 1) { - tet_infoline("ERROR: Process terminated by XtVaAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the -display option is not specified in argv and the DISPLAY environment -variable is set shall use this value as the display to be opened and -initialized. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -char *display_name; -int argcount = 0; -Boolean status; -pid_t pid2; - - FORK(pid2); - sleep(config.reset_delay); - tet_infoline("PREP: Set DISPLAY"); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit"); - widget_good = XtVaAppInitialize(&app_ctext_return, - "TVaAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - (String *)NULL, - (String *)NULL, - (char *)NULL - ); - avs_set_event(1,1); - display_good = XtDisplay(widget_good); - tet_infoline("TEST: Display name is correct"); - display_name = XDisplayString(display_good); - check_str(config.display, display_name, "Display name"); - KROF(pid2); - if (avs_get_event(1) != 1) { - tet_infoline("ERROR: Process terminated by XtVaAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the -name option is specified in argv_in_out shall use this value as the -application name to query the server and screen resource databases for -the name.xnlLanguage resource to create the resource database for the display. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -int argcount = 0; -Boolean status; -pid_t pid2; -int pstatus; -int argc_count; -char **argv_string; -int count = 3; -char *argvals[4]; - - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit and open display"); - argvals[0] = "tinitlize"; - argvals[1] = "-name"; - argvals[2] = "testname"; - argvals[3] = (char *)NULL; - argc_count = count; - argv_string = &argvals[0]; - widget_good = XtVaAppInitialize(&app_ctext_return, - "TVaAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc_count, - argv_string, - (String *)NULL, - (char *)NULL - ); - tet_infoline("TEST: widget_good class is applicationShell"); - status = XtIsApplicationShell(widget_good); - check_dec(True, status, "XtIsApplicationShell return value"); - tet_infoline("TEST: Application name and class"); - display_good = XtDisplay(widget_good); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - check_str("testname", name_good, "Application Name"); - KROF3(pid2, pstatus, AVSXTTIMEOUT-2); - if (pstatus != 0) { - tet_infoline("ERROR: Test process exited abnormally"); - tet_infoline(" May mean display cannot be opened"); - tet_result(TET_UNRESOLVED); - } else - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the -name option is not specified in argv and the environment variable -RESOURCE_NAME is set shall use this value as the application name to query -the server and screen resource databases for the name.xnlLanguage resource -to create the resource database for the display. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -int argcount = 0; -Boolean status; -pid_t pid2; -int pstatus; - - FORK(pid2); - sleep(config.reset_delay); - tet_infoline("PREP: Set up env variable RESOURCE_NAME"); - putenv("RESOURCE_NAME=testname2"); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit and open display"); - widget_good = XtVaAppInitialize(&app_ctext_return, - "TVaAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - (String *)NULL, - (String *)NULL, - (char *)NULL - ); - tet_infoline("TEST: widget_good class is applicationShell"); - status = XtIsApplicationShell(widget_good); - check_dec(True, status, "XtIsApplicationShell return value"); - tet_infoline("TEST: Application name and class"); - display_good = XtDisplay(widget_good); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - check_str("testname2", name_good, "Application Name"); - KROF3(pid2, pstatus, AVSXTTIMEOUT-2); - if (pstatus != 0) { - tet_infoline("ERROR: Test process exited abnormally"); - tet_infoline(" May mean display cannot be opened"); - tet_result(TET_UNRESOLVED); - } else - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the -name option is not specified in argv_in_out, the environment variable -RESOURCE_NAME is not set, and argv_in_out[0] is not an empty string shall use -this value as the application name to query the server and screen resource -databases for the name.xnlLanguage resource to create the resource database -for the display. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -int argcount = 0; -Boolean status; -pid_t pid2; -int pstatus; -int argc_count; -char **argv_string; -int count = 1; -char *argvals[4]; - - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit and open display"); - argvals[0] = "testname3"; - argvals[1] = (char *)NULL; - argc_count = count; - argv_string = &argvals[0]; - widget_good = XtVaAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc_count, - argv_string, - (String *)NULL, - (char *)NULL - ); - tet_infoline("TEST: widget_good class is applicationShell"); - status = XtIsApplicationShell(widget_good); - check_dec(True, status, "XtIsApplicationShell return value"); - tet_infoline("TEST: Application name and class"); - display_good = XtDisplay(widget_good); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - check_str("testname3", name_good, "Application Name"); - KROF3(pid2, pstatus, AVSXTTIMEOUT-2); - if (pstatus != 0) { - tet_infoline("ERROR: Test process exited abnormally"); - tet_infoline(" May mean display cannot be opened"); - tet_result(TET_UNRESOLVED); - } else - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the -name option is not specified in argv_in_out, the environment variable -RESOURCE_NAME is not set, and argv_in_out[0] is an empty string shall use the -string "main" as the application name to query the server and screen resource -databases for the name.xnlLanguage resource to create the resource database -for the display. ->>CODE -XtAppContext app_ctext_return; -Widget widget_good; -Display *display_good; -String name_good, class_good; -char name[20], class[20]; -int argcount = 0; -Boolean status; -pid_t pid2; -int pstatus; -int argc_count; -char **argv_string; -int count = 1; -char *argvals[4]; - - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit and open display"); - argvals[0] = ""; - argvals[1] = (char *)NULL; - argc_count = count; - argv_string = &argvals[0]; - widget_good = XtVaAppInitialize(&app_ctext_return, - "TAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc_count, - argv_string, - (String *)NULL, - (char *)NULL - ); - tet_infoline("TEST: widget_good class is applicationShell"); - status = XtIsApplicationShell(widget_good); - check_dec(True, status, "XtIsApplicationShell return value"); - tet_infoline("TEST: Application name and class"); - display_good = XtDisplay(widget_good); - XtGetApplicationNameAndClass(display_good, &name_good, &class_good ); - check_str("main", name_good, "Application Name"); - KROF3(pid2, pstatus, AVSXTTIMEOUT-2); - if (pstatus != 0) { - tet_infoline("ERROR: Test process exited abnormally"); - tet_infoline(" May mean display cannot be opened"); - tet_result(TET_UNRESOLVED); - } else - tet_result(TET_PASS); ->># >># ->># >># Start of XtDisplayInitialize assertions ->># >># ->>ASSERTION Good A -When the synchronize resource is set to True in the resource database -created by a successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -it shall put Xlib into synchronous mode for this display connection. ->>CODE -Window window; -int scr; -static char *property_data = "Hello World"; -XtAppContext app_ctext_return; -Display *display; -int queued_events, events; -int argc = 2; -pid_t pid2; -int pstatus; - /* - ** -synchronous on - ** +synchronous off - */ -char *argv[] = { "tinitlize", "-synchronous", (char *)NULL }; -Widget widget_good; - - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit and open display"); - widget_good = XtVaAppInitialize(&app_ctext_return, - "TVaAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc, - argv, - (String *)NULL, - (ArgList)NULL, - NULL - ); - avs_set_event(1,1); - display = XtDisplay(widget_good); - tet_infoline("PREP: Create a window for events"); - scr = DefaultScreen(display); - window = XCreateWindow(display, RootWindow(display, scr), - 0, 0, 5, 5, 0, /* x,y,wid,ht,brd width */ - DefaultDepth(display, scr), - InputOutput, - DefaultVisual(display, scr), - (XtValueMask) 0, - (XSetWindowAttributes *) 0); - tet_infoline("TEST: Check Xlib is in synchronous mode"); - queued_events = XQLength(display); - XSelectInput(display, window, - (unsigned long)PropertyChangeMask); - for (events = 0; events < 3; events++) - XChangeProperty(display, window, XA_RESOURCE_MANAGER, XA_STRING, 8,0, (unsigned char *)property_data, 16); - check_dec(3+queued_events, XQLength(display), "queue length"); - KROF3(pid2, pstatus, AVSXTTIMEOUT-2); - if (avs_get_event(1) != 1) { - tet_infoline("ERROR: Process terminated by XtVaAppInitialize "); - tet_result(TET_FAIL); - exit(1); - } - tet_result(TET_PASS); ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall determine a language string for the display -by searching the following sources in the specified order: - -- the resource database created from the command line. - -- the resource application_name.xnlLanguage, class - application_class.XnlLanguage in the server's RESOURCE_MANAGER - property for the root window of screen zero if it exists, or in - the user preference resource file otherwise. - -- the environment. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later and is POSIX-based: -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall use the LANG environment variable as the environment value to -search when determining the language string for the display. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall set the language string for the display to the empty string if the -server's RESOURCE_MANAGER property for the root window of screen zero -exists, and a language string is not found on the command line, in this -property, or in the environment. ->>ASSERTION Good D 0 -If the implementation is X11R5 or later: -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall set the language string for the display to the empty string if the -server's RESOURCE_MANAGER property for the root window of screen -zero does not exist and a language string is not found on the -command line, in the user preference resource file, or in the -environment. ->>ASSERTION Good B 0 -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall associate with the default screen of the display a resource -database created by combining entries from the following sources, -in order, with the first named source having the highest precedence: - -- the application command line - -- the user's environment resource file - -- per-screen resource specifications from the server, as returned by - XScreenResourceString() - -- per display resource specifications from the server (the - server's RESOURCE_MANAGER property for the root window of - screen zero) if they exist, otherwise the user preference file - -- the application-specific user resource file. - -- the application-specific class resource file . ->>ASSERTION Good A -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall recognize options specified on the command line that are in the -standard table of options in section 4.4 of the specification or in -the table specific to the application specified by -.A options -and -.A num_options. ->>CODE -Display *display_good; -String name_good, class_good; -int argcount = 20; -instance_variable_rec base; -pid_t pid2; -Widget widget_good; -XtAppContext app_ctext_return; - - FORK(pid2); - sleep(config.reset_delay); - tet_infoline("PREP: Set DISPLAY"); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize toolkit"); - widget_good = XtVaAppInitialize(&app_ctext_return, - "TVaAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argcount, - args11, - (String *)NULL, - (ArgList)NULL, - NULL - ); - tet_infoline("TEST: Retrieve resource values from resource database"); - XtGetApplicationResources(widget_good, - &base, - resources, - 1, - (ArgList)NULL, - (Cardinal)0); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the reverseVideo resource is define as True on the command line shall use -the value of XtDefaultForeground instead of XtDefaultBackground and -vice versa in the resource database created for the display. ->>CODE -Window window; -int scr; -static char *property_data = "Hello World"; -XtAppContext app_ctext; -Display *display; -int queued_events, events; -XrmValue args[2]; -Cardinal num_args; -XrmValue fromVal; -XrmValue toVal; -Boolean closure; -XtPointer closure_ret = (XtPointer *) &closure; -int argc = 2; -char *argv[] = { "tdsplyintl2", "+rv", (char *)NULL }; -Screen *screen; -Colormap colormap; -pid_t pid2; -Pixel res; -Boolean status; -XtAppContext app_ctext_return; -Widget widget_good; - - FORK(pid2); - sleep(config.reset_delay); - sprintf(ebuf, "DISPLAY=%s", config.display); - putenv(ebuf); - tet_infoline("TEST: Initialize and application with +rv in args"); - widget_good = XtVaAppInitialize(&app_ctext_return, - "TVaAppInitialize", - (XrmOptionDescList)NULL, - (Cardinal)0, - &argc, - argv, - (String *)NULL, - (ArgList)NULL, - NULL - ); - display = XtDisplay(widget_good); - tet_infoline("PREP: Set up required conversion args"); - screen = DefaultScreenOfDisplay(display); - args[0].addr = (XtPointer )&screen; - args[0].size = sizeof(Screen*); - colormap = DefaultColormapOfScreen(screen); - args[1].addr = (XtPointer) &colormap; - args[1].size = sizeof(Colormap); - num_args = 2; - tet_infoline("TEST: Convert XtDefaultForeground"); - fromVal.addr = XtDefaultForeground; - fromVal.size = strlen(XtDefaultForeground)+1; - toVal.addr = (XtPointer) &res; - toVal.size = sizeof(Pixel); - status = XtCvtStringToPixel(display, - &args[0], - &num_args, - &fromVal, - &toVal, - &closure_ret); - check_dec(True, status, "XtCvtStringToPixel return value"); - tet_infoline("TEST: Conversion result"); - check_dec(XBlackPixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); - tet_infoline("TEST: Convert XtDefaultBackground"); - fromVal.addr = XtDefaultBackground; - fromVal.size = strlen(XtDefaultBackground)+1; - toVal.addr = (XtPointer) &res; - toVal.size = sizeof(Pixel); - status = XtCvtStringToPixel(display, - &args[0], - &num_args, - &fromVal, - &toVal, - &closure_ret); - check_dec(True, status, "XtCvtStringToPixel return value"); - tet_infoline("TEST: Conversion result"); - check_dec(XWhitePixelOfScreen(DefaultScreenOfDisplay(display)), res, "returned pixel"); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the environment variable XENVIRONMENT exists shall use the value -of this variable as the name of the user environment resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the environment variable XENVIRONMENT does not exist shall use -the file .Xdefaults-host, where host is the name of the system running -the application, in the user's home directory as the user environment -resource file. ->>ASSERTION Good B 0 -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall set the values from the higher precedence sources of the resource -database being created for the display as the current resource database -before determining the file name for the application-specific user resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the environment variable XUSERFILESEARCHPATH is defined -shall use the result of calling XtResolvePathname(display, path, -NULL, NULL, NULL, NULL, 0, NULL) with the value of this variable as path -as the name of the application-specific user resource file. ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the environment variable XUSERFILESEARCHPATH is not defined and -the environment variable XAPPLRESDIR is not defined shall -use the result of calling XtResolvePathname(display, path, -NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific -user resource file where path contains at least entries containing $HOME as -the directory prefix plus the following substitutions, in the order specified: - -- %C, %N, %L or %C, %N, %l, %t, %c - -- %C, %N, %l - -- %C, %N - -- %N, %L or %N, %l, %t, %c - -- %N, %l - -- %N ->>ASSERTION Good D 0 -If the implementation is POSIX-based: -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the environment variable XUSERFILESEARCHPATH is not defined and -the environment variable XAPPLRESDIR is defined shall use the result -of calling XtResolvePathname(display, path, NULL, NULL, NULL, NULL, 0, NULL) -as the name of the application-specific user resource file where path -contains at least entries containing the following directory prefixes and -substitutions, in the order specified: - -- $XPPLRESDIR with %C, %N, %L or %C, %N, %l, %t, %c - -- $XPPLRESDIR with %C, %N, %l - -- $XPPLRESDIR with %C, %N - -- $XPPLRESDIR with %N, %L or %N, %l, %t, %c - -- $XPPLRESDIR with %N, %l - -- $XPPLRESDIR with %N - -- $HOME with %N ->>ASSERTION Good B 0 -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall use the result of calling XtResolvePathname(display, "app-defaults", -NULL, NULL, NULL, NULL, 0, NULL) as the name of the application-specific -class resource file, with the values from the higher precedence sources of -the resource database being created for the display set as the current -resource database before the call is made. ->># ->># Start of XtAppCreateShell ->># ->>ASSERTION Good B 0 -On a successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -the shell widget instance created shall have WM_COMMAND property set from -the values of the XtNargv and XtNargc resources. ->>ASSERTION Good B 0 -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -shall name the shell widget instance with the application name passed to -XtDisplayInitialize. ->>ASSERTION Good B 0 -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the varargs style variable argument list specifies the XtNscreen argument shall create -the resource database for the shell widget using the resource values specified -in the variable argument list and resource values from the resource database of the screen specified -by the XtNscreen argument for those resources not specified in the variable argument list. ->>ASSERTION Good B 0 -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the variable argument list does not specify the XtNscreen argument and the resource database -of the default screen for display -specifies the resource name.screen, class application_class.screen shall -create the resource database for the shell widget using the resource values -specified in the variable argument list and resource values from the resource database of the screen -specified in the resource database of the default screen for those resources -not specified in the variable argument list. ->>ASSERTION Good B 0 -A successful call to -Widget XtVaAppInitialize(app_context_return, application_class, options, -num_options, argc_in_out, argv_in_out, fallback_resources, ...) -when the variable argument list does not specify the XtNscreen argument and the resource database -of the default screen for display does not specify the resource name.screen, -class application_class.screen shall create the resource database for the -shell widget using the resource values specified in the variable argument list and resource values -from the resource database of the default screen for those resources not -specified in the variable argument list. diff --git a/xts5/Xt4/XtVaCreateWidget.m b/xts5/Xt4/XtVaCreateWidget.m new file mode 100644 index 00000000..baf4fab8 --- /dev/null +++ b/xts5/Xt4/XtVaCreateWidget.m @@ -0,0 +1,1065 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtVaCreateWidget.m +>># +>># Description: +>># Tests for XtVaCreateWidget() +>># +>># Modifications: +>># $Log: tvcrtwdgt.m,v $ +>># Revision 1.1 2005-02-12 14:38:13 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:24 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:13 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:34 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:08 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:03 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:51 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include +#include +#include +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; + +void XtWMH_Proc(str1, str2, str3, str4, str5, car) +String str1, str2, str3, str4, *str5; +Cardinal *car; +{ + avs_set_event(1,1); +} + +/* +** XtEMH_Proc +*/ +void XtEMH_Proc(str1, str2, str3, str4, str5, car) +String str1, str2, str3, str4, *str5; +Cardinal *car; +{ + avs_set_event(1,1); + exit(0); +} + + +/* + * SquareCell.c - Square Widget + */ +#define INTERNAL_WIDTH 2 +#define INTERNAL_HEIGHT 4 +#define DEFAULT_PIXMAP_WIDTH 1 /* in cells */ +#define DEFAULT_PIXMAP_HEIGHT 1 /* in cells */ +#define DEFAULT_CELL_SIE 20 /* in pixels */ +/* values for instance variable is_drawn */ +#define DRAWN 1 +#define UNDRAWN 0 +/* modes for drawing */ +#define DRAW 1 +#define UNDRAW 0 +#define MAXLINES 10 /* max of horiz or vertical cells */ +#define SCROLLBARWIDTH 15 +#define DEFAULTWIDTH 300 /* widget size when show_all is False */ +#define offset(field) XtOffsetOf(SquareCellRec, field) +static XtResource resources[] = { + { + XtNforeground, + XtCForeground, + XtRPixel, + sizeof(Pixel), + offset(squareCell.foreground), + XtRString, + XtDefaultForeground + }, + { + XavsNtoggleCallback, + XavsCToggleCallback, + XtRCallback, + sizeof(XtPointer), + offset(squareCell.callback), + XtRCallback, + NULL + }, + { + XavsNcellSizeInPixels, + XavsCCellSizeInPixels, + XtRInt, sizeof(int), + offset(squareCell.cell_size_in_pixels), + XtRImmediate, + (XtPointer)DEFAULT_CELL_SIE + }, + { + XavsNpixmapWidthInCells, + XavsCPixmapWidthInCells, + XtRDimension, + sizeof(Dimension), + offset(squareCell.pixmap_width_in_cells), + XtRImmediate, + (XtPointer)DEFAULT_PIXMAP_WIDTH + }, + { + XavsNpixmapHeightInCells, + XavsCPixmapHeightInCells, + XtRDimension, + sizeof(Dimension), + offset(squareCell.pixmap_height_in_cells), + XtRImmediate, + (XtPointer)DEFAULT_PIXMAP_HEIGHT + }, + { + XavsNcurX, + XavsCCurX, + XtRInt, + sizeof(int), + offset(squareCell.cur_x), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNcurY, + XavsCCurY, + XtRInt, + sizeof(int), + offset(squareCell.cur_y), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNcellArray, + XavsCCellArray, + XtRString, + sizeof(String), + offset(squareCell.cell), + XtRImmediate, + (XtPointer) 0 + }, + { + XavsNshowEntireBitmap, + XavsCShowEntireBitmap, + XtRBoolean, + sizeof(Boolean), + offset(squareCell.show_all), + XtRImmediate, + (XtPointer) TRUE + }, +}; +/* Declaration of methods */ +static void Initialize(); +static void Redisplay(); +static void Destroy(); +static void Resize(); +static Boolean SetValues(); +static XtGeometryResult QueryGeometry(); +/* these Core methods not needed by SquareCell: + * + * static void ClassInitialize(); + * static void Realize(); + */ +/* the following are private functions unique to SquareCell */ +static void DrawPixmaps(), DoCell(), ChangeCellSize(); +/* the following are actions of SquareCell */ +static void DrawCell(), UndrawCell(), ToggleCell(); +/* The following are public functions of SquareCell, declared extern + * in the public include file: */ +char *SquareCellGetArray(); +static char defaultTranslations[] = + ": DrawCell() \n\ + : UndrawCell() \n\ + : ToggleCell() \n\ + : DrawCell() \n\ + : UndrawCell() \n\ + : ToggleCell()"; +static XtActionsRec actions[] = { + {"DrawCell", DrawCell}, + {"UndrawCell", UndrawCell}, + {"ToggleCell", ToggleCell}, +}; +/* definition in SquareCell.h */ +static SquareCellPointInfo info; +SquareCellClassRec squareCellClassRec = { + { + /* core_class fields */ + /* superclass */ (WidgetClass) &coreClassRec, + /* class_name */ "SquareCell", + /* widget_size */ sizeof(SquareCellRec), + /* class_initialize */ NULL, + /* class_part_initialize */ NULL, + /* class_inited */ FALSE, + /* initialize */ Initialize, + /* initialize_hook */ NULL, + /* realize */ XtInheritRealize, + /* actions */ actions, + /* num_actions */ XtNumber(actions), + /* resources */ resources, + /* num_resources */ XtNumber(resources), + /* xrm_class */ NULLQUARK, + /* compress_motion */ TRUE, + /* compress_exposure */ XtExposeCompressMultiple, + /* compress_enterleave */ TRUE, + /* visible_interest */ FALSE, + /* destroy */ Destroy, + /* resize */ Resize, + /* expose */ Redisplay, + /* set_values */ SetValues, + /* set_values_hook */ NULL, + /* set_values_almost */ XtInheritSetValuesAlmost, + /* get_values_hook */ NULL, + /* accept_focus */ NULL, + /* version */ XtVersion, + /* callback_private */ NULL, + /* tm_table */ defaultTranslations, + /* query_geometry */ QueryGeometry, + /* display_accelerator */ XtInheritDisplayAccelerator, + /* extension */ NULL + }, + {/* simple_class fields */ + /* change_sensitive */ XtInheritChangeSensitive, + }, + { + /* extension */ 0, + }, +}; +WidgetClass squareCellWidgetClass = (WidgetClass) & squareCellClassRec; +static void +GetDrawGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground | GCDashOffset | + GCDashList | GCLineStyle; + /* + * Setting foreground and background to 1 and 0 looks like a + * kludge but isn't. This GC is used for drawing + * into a pixmap of depth one. Real colors are applied with a + * separate GC when the pixmap is copied into the window. + */ + values.foreground = 1; + values.background = 0; + values.dashes = 1; + values.dash_offset = 0; + values.line_style = LineOnOffDash; + cw->squareCell.draw_gc = XCreateGC(XtDisplay((Widget)cw), + cw->squareCell.big_picture, mask, &values); +} +static void +GetUndrawGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground; + /* this looks like a kludge but isn't. This GC is used for drawing + * into a pixmap of depth one. Real colors are applied as the + * pixmap is copied into the window. + */ + values.foreground = 0; + values.background = 1; + cw->squareCell.undraw_gc = XCreateGC(XtDisplay((Widget)cw), + cw->squareCell.big_picture, mask, &values); +} +static void +GetCopyGC(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + XGCValues values; + XtGCMask mask = GCForeground | GCBackground; + values.foreground = cw->squareCell.foreground; + values.background = cw->core.background_pixel; + cw->squareCell.copy_gc = XtGetGC((Widget)cw, mask, &values); +} +static void +Initialize(treq, tnew, args, num_args) +Widget treq, tnew; +ArgList args; +Cardinal *num_args; +{ + SquareCellWidget new = (SquareCellWidget) tnew; + new->squareCell.cur_x = 0; + new->squareCell.cur_y = 0; + /* + * Check instance values set by resources that may be invalid. + */ + if ((new->squareCell.pixmap_width_in_cells < 1) || + (new->squareCell.pixmap_height_in_cells < 1)) { + XtWarning("SquareCell: pixmapWidth and/or pixmapHeight is too small (using 10 x 10)."); + new->squareCell.pixmap_width_in_cells = 10; + new->squareCell.pixmap_height_in_cells = 10; + } + if (new->squareCell.cell_size_in_pixels < 5) { + XtWarning("SquareCell: cellSize is too small (using 5)."); + new->squareCell.cell_size_in_pixels = 5; + } + if ((new->squareCell.cur_x < 0) || (new->squareCell.cur_y < 0)) { + XtWarning("SquareCell: cur_x and cur_y must be non-negative (using 0, 0)."); + new->squareCell.cur_x = 0; + new->squareCell.cur_y = 0; + } + if (new->squareCell.cell == NULL) + new->squareCell.cell = XtCalloc( + new->squareCell.pixmap_width_in_cells * + new->squareCell.pixmap_height_in_cells, sizeof(char)); + else + new->squareCell.user_allocated = True; /* user supplied cell array */ + new->squareCell.pixmap_width_in_pixels = + new->squareCell.pixmap_width_in_cells * + new->squareCell.cell_size_in_pixels; + new->squareCell.pixmap_height_in_pixels = + new->squareCell.pixmap_height_in_cells * + new->squareCell.cell_size_in_pixels; + if (new->core.width == 0) { + if (new->squareCell.show_all == False) + new->core.width = (new->squareCell.pixmap_width_in_pixels + > DEFAULTWIDTH) ? DEFAULTWIDTH : + (new->squareCell.pixmap_width_in_pixels); + else + new->core.width = new->squareCell.pixmap_width_in_pixels; + } + if (new->core.height == 0) { + if (new->squareCell.show_all == False) + new->core.height = + (new->squareCell.pixmap_height_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + (new->squareCell.pixmap_height_in_pixels); + else + new->core.height = new->squareCell.pixmap_height_in_pixels; + } + CreateBigPixmap(new); + GetDrawGC(new); + GetUndrawGC(new); + GetCopyGC(new); + DrawIntoBigPixmap(new); +} +static void +Redisplay(w, event) +Widget w; +XExposeEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + register int x, y; + unsigned int width, height; + if (!XtIsRealized((Widget)cw)) + return; + if (event) { /* called from btn-event or expose */ + x = event->x; + y = event->y; + width = event->width; + height = event->height; + } + else { /* called because complete redraw */ + x = 0; + y = 0; + width = cw->squareCell.pixmap_width_in_pixels; + height = cw->squareCell.pixmap_height_in_pixels; + } + if (DefaultDepthOfScreen(XtScreen((Widget)cw)) == 1) + XCopyArea(XtDisplay((Widget)cw), cw->squareCell.big_picture, + XtWindow((Widget)cw), cw->squareCell.copy_gc, x + + cw->squareCell.cur_x, y + cw->squareCell.cur_y, + width, height, x, y); + else + XCopyPlane(XtDisplay((Widget)cw), cw->squareCell.big_picture, + XtWindow((Widget)cw), cw->squareCell.copy_gc, x + + cw->squareCell.cur_x, y + cw->squareCell.cur_y, + width, height, x, y, 1); +} +static Boolean +SetValues(current, request, new, args, num_args) +Widget current, request, new; +ArgList args; +Cardinal *num_args; +{ + SquareCellWidget curcw = (SquareCellWidget) current; + SquareCellWidget newcw = (SquareCellWidget) new; + Boolean do_redisplay = False; + /* + ** XtSetValues invoked procedure SetValues + */ + if (curcw->squareCell.foreground != newcw->squareCell.foreground) { + XtReleaseGC((Widget)curcw, curcw->squareCell.copy_gc); + GetCopyGC(newcw); + do_redisplay = True; + } + if ((curcw->squareCell.cur_x != newcw->squareCell.cur_x) || + (curcw->squareCell.cur_y != newcw->squareCell.cur_y)) + do_redisplay = True; + if (curcw->squareCell.cell_size_in_pixels != + newcw->squareCell.cell_size_in_pixels) { + ChangeCellSize(curcw, newcw->squareCell.cell_size_in_pixels); + do_redisplay = True; + } + if (curcw->squareCell.pixmap_width_in_cells != + newcw->squareCell.pixmap_width_in_cells) { + newcw->squareCell.pixmap_width_in_cells = + curcw->squareCell.pixmap_width_in_cells; + XtWarning("SquareCell: pixmap_width_in_cells cannot be set by XtSetValues.\n"); + } + if (curcw->squareCell.pixmap_height_in_cells != + newcw->squareCell.pixmap_height_in_cells) { + newcw->squareCell.pixmap_height_in_cells = + curcw->squareCell.pixmap_height_in_cells; + XtWarning("SquareCell: pixmap_height_in_cells cannot be set by XtSetValues.\n"); + } + return do_redisplay; +} +static void +Destroy(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + if (cw->squareCell.big_picture) + XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); + if (cw->squareCell.draw_gc) + XFreeGC(XtDisplay(cw), cw->squareCell.draw_gc); + if (cw->squareCell.undraw_gc) + XFreeGC(XtDisplay(cw), cw->squareCell.undraw_gc); + if (cw->squareCell.copy_gc) + XFreeGC(XtDisplay(cw), cw->squareCell.copy_gc); + /* Free memory allocated with Calloc. This was done + * only if application didn't supply cell array. + */ + if (!cw->squareCell.user_allocated) + XtFree((char *)cw->squareCell.cell); +} +static void +DrawCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + DrawPixmaps(cw->squareCell.draw_gc, DRAW, cw, event); +} +static void +UndrawCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + DrawPixmaps(cw->squareCell.undraw_gc, UNDRAW, cw, event); +} +static void +ToggleCell(w, event) +Widget w; +XEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + static int oldx = -1, oldy = -1; + GC gc; + int mode; + int newx, newy; + /* This is strictly correct, but doesn't + * seem to be necessary */ + if (event->type == ButtonPress) { + newx = (cw->squareCell.cur_x + ((XButtonEvent *)event)->x) / + cw->squareCell.cell_size_in_pixels; + newy = (cw->squareCell.cur_y + ((XButtonEvent *)event)->y) / + cw->squareCell.cell_size_in_pixels; + } + else { + newx = (cw->squareCell.cur_x + ((XMotionEvent *)event)->x) / + cw->squareCell.cell_size_in_pixels; + newy = (cw->squareCell.cur_y + ((XMotionEvent *)event)->y) / + cw->squareCell.cell_size_in_pixels; + } + if ((mode = cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells]) == DRAWN) { + gc = cw->squareCell.undraw_gc; + mode = UNDRAW; + } + else { + gc = cw->squareCell.draw_gc; + mode = DRAW; + } + if (oldx != newx || oldy != newy) { + oldx = newx; + oldy = newy; + DrawPixmaps(gc, mode, cw, event); + } +} +static void +DrawPixmaps(gc, mode, w, event) +GC gc; +int mode; +Widget w; +XButtonEvent *event; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int newx = (cw->squareCell.cur_x + event->x) / + cw->squareCell.cell_size_in_pixels; + int newy = (cw->squareCell.cur_y + event->y) / + cw->squareCell.cell_size_in_pixels; + XExposeEvent fake_event; + /* if already done, return */ + if (cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] == mode) + return; + /* otherwise, draw or undraw */ + XFillRectangle(XtDisplay((Widget)cw), cw->squareCell.big_picture, gc, + cw->squareCell.cell_size_in_pixels*newx + 2, + cw->squareCell.cell_size_in_pixels*newy + 2, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3); + cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] = mode; + info.mode = mode; + info.newx = newx; + info.newy = newy; + fake_event.x = cw->squareCell.cell_size_in_pixels * newx - cw->squareCell.cur_x; + fake_event.y = cw->squareCell.cell_size_in_pixels * newy - cw->squareCell.cur_y; + fake_event.width = cw->squareCell.cell_size_in_pixels; + fake_event.height = cw->squareCell.cell_size_in_pixels; + Redisplay(cw, &fake_event); + XtCallCallbacks((Widget)cw, XavsNtoggleCallback, &info); +} +CreateBigPixmap(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* always a 1 bit deep pixmap, regardless of screen depth */ + cw->squareCell.big_picture = XCreatePixmap(XtDisplay(cw), + RootWindow(XtDisplay(cw), DefaultScreen(XtDisplay(cw))), + cw->squareCell.pixmap_width_in_pixels + 2, + cw->squareCell.pixmap_height_in_pixels + 2, 1); +} +DrawIntoBigPixmap(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int n_horiz_segments, n_vert_segments; + XSegment segment[MAXLINES]; + register int x, y; + XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, + cw->squareCell.undraw_gc, 0, 0, + cw->squareCell.pixmap_width_in_pixels + + 2, cw->squareCell.pixmap_height_in_pixels + 2); + n_horiz_segments = cw->squareCell.pixmap_height_in_cells + 1; + n_vert_segments = cw->squareCell.pixmap_width_in_cells + 1; + for (x = 0; x < n_horiz_segments; x++) { + segment[x].x1 = 0; + segment[x].x2 = (short) cw->squareCell.pixmap_width_in_pixels; + segment[x].y1 = (short) cw->squareCell.cell_size_in_pixels * x; + segment[x].y2 = (short) cw->squareCell.cell_size_in_pixels * x; + } + XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_horiz_segments); + for (y = 0; y < n_vert_segments; y++) { + segment[y].x1 = (short) y * cw->squareCell.cell_size_in_pixels; + segment[y].x2 = (short) y * cw->squareCell.cell_size_in_pixels; + segment[y].y1 = 0; + segment[y].y2 = (short) cw->squareCell.pixmap_height_in_pixels; + } + XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_vert_segments); + /* draw current cell array into pixmap */ + for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { + for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { + if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) + DoCell(cw, x, y, cw->squareCell.draw_gc); + else + DoCell(cw, x, y, cw->squareCell.undraw_gc); + } + } +} +/* A Public function, not static */ +char * +SquareCellGetArray(w, width_in_cells, height_in_cells) +Widget w; +int *width_in_cells, *height_in_cells; +{ + SquareCellWidget cw = (SquareCellWidget) w; + *width_in_cells = cw->squareCell.pixmap_width_in_cells; + *height_in_cells = cw->squareCell.pixmap_height_in_cells; + return (cw->squareCell.cell); +} +static void +Resize(w) +Widget w; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* resize does nothing unless new size is bigger than entire pixmap */ + if ((cw->core.width > cw->squareCell.pixmap_width_in_pixels) && + (cw->core.height > cw->squareCell.pixmap_height_in_pixels)) { + /* + * Calculate the maximum cell size that will allow the + * entire bitmap to be displayed. + */ + Dimension w_temp_cell_size_in_pixels, h_temp_cell_size_in_pixels; + Dimension new_cell_size_in_pixels; + + w_temp_cell_size_in_pixels = cw->core.width / cw->squareCell.pixmap_width_in_cells; + h_temp_cell_size_in_pixels = cw->core.height / cw->squareCell.pixmap_height_in_cells; + + if (w_temp_cell_size_in_pixels < h_temp_cell_size_in_pixels) + new_cell_size_in_pixels = w_temp_cell_size_in_pixels; + else + new_cell_size_in_pixels = h_temp_cell_size_in_pixels; + + /* if size change mandates a new pixmap, make one */ + if (new_cell_size_in_pixels != cw->squareCell.cell_size_in_pixels) + ChangeCellSize(cw, new_cell_size_in_pixels); + } +} +static void +ChangeCellSize(w, new_cell_size) +Widget w; +int new_cell_size; +{ + SquareCellWidget cw = (SquareCellWidget) w; + int x, y; + cw->squareCell.cell_size_in_pixels = new_cell_size; + /* recalculate variables based on cell size */ + cw->squareCell.pixmap_width_in_pixels = + cw->squareCell.pixmap_width_in_cells * + cw->squareCell.cell_size_in_pixels; + cw->squareCell.pixmap_height_in_pixels = + cw->squareCell.pixmap_height_in_cells * + cw->squareCell.cell_size_in_pixels; + + /* destroy old and create new pixmap of correct size */ + XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); + CreateBigPixmap(cw); + + /* draw lines into new pixmap */ + DrawIntoBigPixmap(cw); + + /* draw current cell array into pixmap */ + for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { + for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { + if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) + DoCell(cw, x, y, cw->squareCell.draw_gc); + else + DoCell(cw, x, y, cw->squareCell.undraw_gc); + } + } +} +static void +DoCell(w, x, y, gc) +Widget w; +int x, y; +GC gc; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* otherwise, draw or undraw */ + XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, + cw->squareCell.cell_size_in_pixels * x + 2, + cw->squareCell.cell_size_in_pixels * y + 2, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3, + (unsigned int)cw->squareCell.cell_size_in_pixels - 3); +} +static XtGeometryResult QueryGeometry(w, proposed, answer) +Widget w; +XtWidgetGeometry *proposed, *answer; +{ + SquareCellWidget cw = (SquareCellWidget) w; + /* set fields we care about */ + answer->request_mode = CWWidth | CWHeight; + /* initial width and height */ + if (cw->squareCell.show_all == True) + answer->width = cw->squareCell.pixmap_width_in_pixels; + else + answer->width = (cw->squareCell.pixmap_width_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + cw->squareCell.pixmap_width_in_pixels; + if (cw->squareCell.show_all == True) + answer->height = cw->squareCell.pixmap_height_in_pixels; + else + answer->height = (cw->squareCell.pixmap_height_in_pixels > + DEFAULTWIDTH) ? DEFAULTWIDTH : + cw->squareCell.pixmap_height_in_pixels; + if ( ((proposed->request_mode & (CWWidth | CWHeight)) + == (CWWidth | CWHeight)) && + proposed->width == answer->width && + proposed->height == answer->height) + return XtGeometryYes; + else if (answer->width == cw->core.width && + answer->height == cw->core.height) + return XtGeometryNo; + else + return XtGeometryAlmost; +} +>>SET tpstartup avs_alloc_sem +>>SET tpcleanup avs_free_sem +>>TITLE XtVaCreateWidget Xt4 +Widget +XtVaCreateWidget(name, object_class, parent,...) +>>ASSERTION Good A +A call to +Widget XtVaCreateWidget(name, object_class, parent,...) +shall create a new widget instance belonging to the widget class +object_class, with parent as its immediate ancestor, and return a pointer to +the widget instance structure. +>>CODE +Boolean value_good; +char string[10]; +Widget widget_good , labelw_good; +Widget rowcolw_good, labelw_msg; +char *msg = "Failsafe widget"; + + avs_xt_hier("Tvcrtwdgt1", "XtVaCreateWidget"); + tet_infoline("PREP: Create rowcolw_good widget in box1w widget"); + rowcolw_good = (Widget) CreateRowColWidget(boxw1); + tet_infoline("PREP: Create failsafe widget in rowcolw_good"); + labelw_msg = (Widget) CreateLabelWidget(msg, rowcolw_good); + tet_infoline("TEST: Create label widget Hello"); + labelw_good = XtVaCreateWidget( + "Hello", + labelWidgetClass, + rowcolw_good, + NULL + ); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Labelw_good widget is not managed"); + value_good = XtIsManaged(labelw_good); + check_dec(False, value_good , "XtIsManaged return value"); + tet_infoline("TEST: Labelw_good widget is child of rowcolumn widget"); + widget_good = (Widget)XtParent(labelw_good); + if (widget_good == NULL) { + sprintf(ebuf, "ERROR: Expected parent widget instance returned NULL"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + else + check_str("rowcolw", XtName(widget_good), "widget name"); + tet_result(TET_PASS); +>>ASSERTION Good A +A call to +Widget XtVaCreateWidget(name, object_class, parent, ...) +when object_class is not coreWidgetClass or a subclass thereof, the class of +parent is a subclass of compositeWidgetClass, and there is no extension +record in the composite class part extension field of parent with the +record_type equal to NULLQUARK shall issue a fatal error. +>>CODE +Boolean value_good; +char string[10]; +Widget test_widget, test_widget2; +int status; +pid_t pid2; + + FORK(pid2); + avs_xt_hier("Tcrwidget5", "XtCreateWidget"); + XtAppSetWarningMsgHandler(app_ctext, XtWMH_Proc); + tet_infoline("PREP: Register error message handler"); + XtAppSetErrorMsgHandler(app_ctext, XtEMH_Proc); + tet_infoline("TEST: Create composite widget"); + test_widget = XtCreateWidget( + "Composite", + avsCompWidgetClass, + topLevel, + NULL, + 0 + ); + tet_infoline("PREP: Create rect obj in it"); + test_widget2 = XtVaCreateWidget( + "RectObj", + avsrectObjClass, + test_widget, + (ArgList)NULL + ); + KROF(pid2); + tet_infoline("TEST: Error handler was invoked"); + status = avs_get_event(1); + check_dec(1, status , "handler invocations count"); + tet_result(TET_PASS); +>>ASSERTION Good B 0 +A successful call to +Widget XtVaCreateWidget(name, object_class, parent,...) +when object_class is not coreWidgetClass or a subclass thereof, the class of +parent is a subclass of compositeWidgetClass, and the accepts_object +field in the parent's composite class part extension record is False shall +issue a fatal error. +>># >>ASSERTION Good A +>># A call to +>># Widget XtVaCreateWidget(name, object_class, parent,...) +>># shall initialize the resource fields of the widget instance using the resource +>># values specified in the the CoreClassPart lists for object_class and all +>># superclasses, overridden by the resource values specified in the varargs +>># style arguments. +>># >>CODE +>># Boolean value_good; +>># char string[10]; +>># Widget squarew; +>># Dimension cell_width, cell_height; +>># +>># avs_xt_hier("Tvcrtwdgt2", "XtVaCreateWidget"); +>># tet_infoline("TEST: Create Square Cell widget"); +>># squarew = XtVaCreateWidget("squarew", +>># squareCellWidgetClass, +>># boxw1, +>># NULL +>># ); +>># tet_infoline("PREP: Get resource values"); +>># XtVaGetValues(squarew, +>># XavsNpixmapWidthInCells, +>># &cell_width, +>># XavsNpixmapHeightInCells, +>># &cell_height, +>># (char *)NULL); +>># tet_infoline("TEST: Original values returned"); +>># check_dec(DEFAULT_PIXMAP_WIDTH, cell_width, +>># "XavsNpixmapWidthInCells"); +>># check_dec(DEFAULT_PIXMAP_HEIGHT, cell_height, +>># "XavsNpixmapHeightInCells"); +>># tet_result(TET_PASS); +>># >>ASSERTION Good A +>># When parent is a subclass of constraintWidgetClass a successful call to +>># Widget XtVaCreateWidget(name, object_class, parent,...) +>># shall initialize the resource fields of the constraints record by +>># using the constraint resource lists specified for the parent's class and +>># all superclasses up to constraintWidgetClass, overridden by the resource +>># values specified in the varags style arguments. +>># >>CODE +>># Boolean value_good; +>># char string[10]; +>># Widget formw_good, labelw_msg; +>># char *msg = "Failsafe widget"; +>># Widget labelw_good; +>># Boolean resizable; +>># +>># avs_xt_hier("Tvcrtwdgt3", "XtVaCreateWidget"); +>># tet_infoline("PREP: Create formw_good widget subclass of constraintWidgetClass"); +>># formw_good = (Widget) CreateFormWidget(boxw1); +>># tet_infoline("PREP: Create failsafe widget in formw_good"); +>># labelw_msg = (Widget) CreateLabelWidget(msg, formw_good); +>># tet_infoline("TEST: Create labelw_good widget Hello"); +>># labelw_good = XtVaCreateWidget( +>># "Hello", +>># labelWidgetClass, +>># formw_good, +>># XtNresizable, +>># TRUE, +>># NULL +>># ); +>># tet_infoline("PREP: Create windows for widgets and map them"); +>># XtRealizeWidget(topLevel); +>># tet_infoline("PREP: Get XtNresizable constraint resource value."); +>># XtVaGetValues(labelw_good, XtNresizable, &resizable, (char *)NULL); +>># tet_infoline("TEST: XtNresizable resource value"); +>># check_dec(TRUE, resizable, "XtNresizable resource"); +>># tet_result(TET_PASS); +>># >>ASSERTION Good A +>># When parent is a subclass of compositeWidgetClass a successful call to +>># Widget XtVaCreateWidget(name, object_class, parent,...) +>># shall call the insert_child procedure of the parent. +>># >>CODE +>># Boolean value_good; +>># char string[10]; +>># Widget widget_good; +>># Widget formw_good, labelw_msg; +>># char *msg = "Failsafe widget"; +>># Widget labelw_good; +>># +>># avs_xt_hier("Tvcrtwdgt4", "XtVaCreateWidget"); +>># tet_infoline("PREP: Create formw_good widget subclass of constraintWidgetClass"); +>># formw_good = (Widget) CreateFormWidget(boxw1); +>># tet_infoline("PREP: Create failsafe widget in formw_good"); +>># labelw_msg = (Widget) CreateLabelWidget(msg, formw_good); +>># tet_infoline("TEST: Create labelw_good widget Hello"); +>># labelw_good = XtVaCreateWidget( +>># "Hello", +>># labelWidgetClass, +>># formw_good, +>># NULL +>># ); +>># tet_infoline("PREP: Create windows for widgets and map them"); +>># XtRealizeWidget(topLevel); +>># tet_infoline("TEST: Labelw_good widget is child of formw widget"); +>># widget_good = (Widget)XtParent(labelw_good); +>># if (widget_good == NULL) { +>># sprintf(ebuf, "ERROR: Expected parent widget instance returned NULL"); +>># tet_infoline(ebuf); +>># tet_result(TET_FAIL); +>># } +>># else +>># check_str("formw", XtName(widget_good), "parent name"); +>># tet_result(TET_PASS); +>>ASSERTION Good A +A successful call to +Widget XtVaCreateWidget(name, object_class, parent,...) +shall perform the following actions in the order specified: + +- invoke the class_initialize procedure for the class object_class and + all superclasses for which this procedure has not been invoked prior to + this call, in a superclass-to-subclass order. + +- allocate memory for the widget instance. + +- if the parent belongs to the class constraintWidgetClass or a + subclass thereof, allocate memory for the constraints of parent + and store the address of this memory in the constraints field of the + widget instance structure. + +- initialize the Core non-resource data fields of the widget instance. + +- initialize the resource fields of the widget instance using the + CoreClassPart resource list specified for object_class and all superclasses, + overridden by the resource values specified in the varargs style arguments. + +- if parent is a subclass of constraintWidgetClass, initialize the resource + fields of the constraints record from the constraint resource list specified + for the parent's class and all superclasses up to constraintWidgetClass, + overridden by the resource values specified in the varargs style arguments. + +- call all the initialize procedures starting at Object on down to the + initialize procedure of the widget. + +- if parent is a member of compositeWidgetClass, call the insert_child + procedure of the parent. + +- if parent belongs to the class contraintWidgetClass or a subclass thereof, + call all the ConstraintClassPart initialize procedures starting at + constraintWidgetClass on down to the initialize procedure of the parent. +>>CODE +Boolean value_good; +char string[10]; +Widget squarew; +Dimension cell_width, cell_height; +Widget widget_good; +Widget formw_good, labelw_msg; +char *msg = "Failsafe widget"; +Widget labelw_good; +Boolean resizable; +pid_t pid2; + + /*combination of earlier tests, needs enhancement*/ + FORK(pid2); + avs_xt_hier("Tvcrtwdgt2", "XtVaCreateWidget"); + tet_infoline("TEST: Create Square Cell widget"); + squarew = XtVaCreateWidget("squarew", + squareCellWidgetClass, + boxw1, + NULL + ); + tet_infoline("PREP: Get resource values"); + XtVaGetValues(squarew, + XavsNpixmapWidthInCells, + &cell_width, + XavsNpixmapHeightInCells, + &cell_height, + (char *)NULL); + tet_infoline("TEST: Original values returned"); + check_dec(DEFAULT_PIXMAP_WIDTH, cell_width, + "XavsNpixmapWidthInCells"); + check_dec(DEFAULT_PIXMAP_HEIGHT, cell_height, + "XavsNpixmapHeightInCells"); + LKROF(pid2, AVSXTTIMEOUT-2); + FORK(pid2); + avs_xt_hier("Tvcrtwdgt3", "XtVaCreateWidget"); + tet_infoline("PREP: Create formw_good widget subclass of constraintWidgetClass"); + formw_good = (Widget) CreateFormWidget(boxw1); + tet_infoline("PREP: Create failsafe widget in formw_good"); + labelw_msg = (Widget) CreateLabelWidget(msg, formw_good); + tet_infoline("TEST: Create labelw_good widget Hello"); + labelw_good = XtVaCreateWidget( + "Hello", + labelWidgetClass, + formw_good, + XtNresizable, + TRUE, + NULL + ); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("PREP: Get XtNresizable constraint resource value."); + XtVaGetValues(labelw_good, XtNresizable, &resizable, (char *)NULL); + tet_infoline("TEST: XtNresizable resource value"); + check_dec(TRUE, resizable, "XtNresizable resource"); + LKROF(pid2, AVSXTTIMEOUT-2); + FORK(pid2); + avs_xt_hier("Tvcrtwdgt4", "XtVaCreateWidget"); + tet_infoline("PREP: Create formw_good widget subclass of constraintWidgetClass"); + formw_good = (Widget) CreateFormWidget(boxw1); + tet_infoline("PREP: Create failsafe widget in formw_good"); + labelw_msg = (Widget) CreateLabelWidget(msg, formw_good); + tet_infoline("TEST: Create labelw_good widget Hello"); + labelw_good = XtVaCreateWidget( + "Hello", + labelWidgetClass, + formw_good, + NULL + ); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Labelw_good widget is child of formw widget"); + widget_good = (Widget)XtParent(labelw_good); + if (widget_good == NULL) { + sprintf(ebuf, "ERROR: Expected parent widget instance returned NULL"); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + else + check_str("formw", XtName(widget_good), "parent name"); + LKROF(pid2, AVSXTTIMEOUT-2); + tet_result(TET_PASS); +>>ASSERTION Good B 0 +A successful call to +Widget XtVaCreateWidget(name, object_class, parent,...) +when the varargs style argument specifies the name XtVaTypedArg in place +of a resource name and the second argument following this name is XtRString +shall initialize the resource specified by the first argument following the +XtVaTypedArg name to the string pointed to by the third argument of a length +specified by the fourth argument following the XtVaTypedArg name argument. +>>ASSERTION Good B 0 +A successful call to +Widget XtVaCreateWidget(name, object_class, parent,...) +when the varargs style argument specifies the name XtVaTypedArg in place of +a resource name, the second argument following this name is not XtRString, and +the fourth argument is less than sizeof(XtArgVal) shall +initialize the resource specified by the first argument following the +XtVaTypedArg name to the value specified in the third argument following the +XtVaTypedArg name argument. +>>ASSERTION Good B 0 +A successful call to +Widget XtVaCreateWidget(name, object_class, parent,...) +when the varargs style argument specifies the name XtVaTypedArg in place of +a resource name, the second argument following this argument is not XtRString, +and the fourth argument is more than sizeof(XtArgVal) shall initialize the +resource specified by the first argument following the XtVaTypedArg name to +the value pointed to by the third argument following the XtVaTypedArg name +argument. +>>ASSERTION Good B 0 +A call to +Widget XtVaCreateWidget(name, object_class, parent,...) +when the varargs style argument specifies the name XtVaTypedArg in place of +a resource name and the type conversion fails during the resource initialization +using the arguments following the XtVaTypedArg argument shall issue a warning +message. diff --git a/xts5/Xt4/XtVaCreateWidget/XtVaCreateWidget.m b/xts5/Xt4/XtVaCreateWidget/XtVaCreateWidget.m deleted file mode 100644 index 255aa750..00000000 --- a/xts5/Xt4/XtVaCreateWidget/XtVaCreateWidget.m +++ /dev/null @@ -1,1065 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtVaCreateWidget/XtVaCreateWidget.m ->># ->># Description: ->># Tests for XtVaCreateWidget() ->># ->># Modifications: ->># $Log: tvcrtwdgt.m,v $ ->># Revision 1.1 2005-02-12 14:38:13 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:24 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:13 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:34 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:08 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:03 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:51 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include -#include -#include -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; - -void XtWMH_Proc(str1, str2, str3, str4, str5, car) -String str1, str2, str3, str4, *str5; -Cardinal *car; -{ - avs_set_event(1,1); -} - -/* -** XtEMH_Proc -*/ -void XtEMH_Proc(str1, str2, str3, str4, str5, car) -String str1, str2, str3, str4, *str5; -Cardinal *car; -{ - avs_set_event(1,1); - exit(0); -} - - -/* - * SquareCell.c - Square Widget - */ -#define INTERNAL_WIDTH 2 -#define INTERNAL_HEIGHT 4 -#define DEFAULT_PIXMAP_WIDTH 1 /* in cells */ -#define DEFAULT_PIXMAP_HEIGHT 1 /* in cells */ -#define DEFAULT_CELL_SIE 20 /* in pixels */ -/* values for instance variable is_drawn */ -#define DRAWN 1 -#define UNDRAWN 0 -/* modes for drawing */ -#define DRAW 1 -#define UNDRAW 0 -#define MAXLINES 10 /* max of horiz or vertical cells */ -#define SCROLLBARWIDTH 15 -#define DEFAULTWIDTH 300 /* widget size when show_all is False */ -#define offset(field) XtOffsetOf(SquareCellRec, field) -static XtResource resources[] = { - { - XtNforeground, - XtCForeground, - XtRPixel, - sizeof(Pixel), - offset(squareCell.foreground), - XtRString, - XtDefaultForeground - }, - { - XavsNtoggleCallback, - XavsCToggleCallback, - XtRCallback, - sizeof(XtPointer), - offset(squareCell.callback), - XtRCallback, - NULL - }, - { - XavsNcellSizeInPixels, - XavsCCellSizeInPixels, - XtRInt, sizeof(int), - offset(squareCell.cell_size_in_pixels), - XtRImmediate, - (XtPointer)DEFAULT_CELL_SIE - }, - { - XavsNpixmapWidthInCells, - XavsCPixmapWidthInCells, - XtRDimension, - sizeof(Dimension), - offset(squareCell.pixmap_width_in_cells), - XtRImmediate, - (XtPointer)DEFAULT_PIXMAP_WIDTH - }, - { - XavsNpixmapHeightInCells, - XavsCPixmapHeightInCells, - XtRDimension, - sizeof(Dimension), - offset(squareCell.pixmap_height_in_cells), - XtRImmediate, - (XtPointer)DEFAULT_PIXMAP_HEIGHT - }, - { - XavsNcurX, - XavsCCurX, - XtRInt, - sizeof(int), - offset(squareCell.cur_x), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNcurY, - XavsCCurY, - XtRInt, - sizeof(int), - offset(squareCell.cur_y), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNcellArray, - XavsCCellArray, - XtRString, - sizeof(String), - offset(squareCell.cell), - XtRImmediate, - (XtPointer) 0 - }, - { - XavsNshowEntireBitmap, - XavsCShowEntireBitmap, - XtRBoolean, - sizeof(Boolean), - offset(squareCell.show_all), - XtRImmediate, - (XtPointer) TRUE - }, -}; -/* Declaration of methods */ -static void Initialize(); -static void Redisplay(); -static void Destroy(); -static void Resize(); -static Boolean SetValues(); -static XtGeometryResult QueryGeometry(); -/* these Core methods not needed by SquareCell: - * - * static void ClassInitialize(); - * static void Realize(); - */ -/* the following are private functions unique to SquareCell */ -static void DrawPixmaps(), DoCell(), ChangeCellSize(); -/* the following are actions of SquareCell */ -static void DrawCell(), UndrawCell(), ToggleCell(); -/* The following are public functions of SquareCell, declared extern - * in the public include file: */ -char *SquareCellGetArray(); -static char defaultTranslations[] = - ": DrawCell() \n\ - : UndrawCell() \n\ - : ToggleCell() \n\ - : DrawCell() \n\ - : UndrawCell() \n\ - : ToggleCell()"; -static XtActionsRec actions[] = { - {"DrawCell", DrawCell}, - {"UndrawCell", UndrawCell}, - {"ToggleCell", ToggleCell}, -}; -/* definition in SquareCell.h */ -static SquareCellPointInfo info; -SquareCellClassRec squareCellClassRec = { - { - /* core_class fields */ - /* superclass */ (WidgetClass) &coreClassRec, - /* class_name */ "SquareCell", - /* widget_size */ sizeof(SquareCellRec), - /* class_initialize */ NULL, - /* class_part_initialize */ NULL, - /* class_inited */ FALSE, - /* initialize */ Initialize, - /* initialize_hook */ NULL, - /* realize */ XtInheritRealize, - /* actions */ actions, - /* num_actions */ XtNumber(actions), - /* resources */ resources, - /* num_resources */ XtNumber(resources), - /* xrm_class */ NULLQUARK, - /* compress_motion */ TRUE, - /* compress_exposure */ XtExposeCompressMultiple, - /* compress_enterleave */ TRUE, - /* visible_interest */ FALSE, - /* destroy */ Destroy, - /* resize */ Resize, - /* expose */ Redisplay, - /* set_values */ SetValues, - /* set_values_hook */ NULL, - /* set_values_almost */ XtInheritSetValuesAlmost, - /* get_values_hook */ NULL, - /* accept_focus */ NULL, - /* version */ XtVersion, - /* callback_private */ NULL, - /* tm_table */ defaultTranslations, - /* query_geometry */ QueryGeometry, - /* display_accelerator */ XtInheritDisplayAccelerator, - /* extension */ NULL - }, - {/* simple_class fields */ - /* change_sensitive */ XtInheritChangeSensitive, - }, - { - /* extension */ 0, - }, -}; -WidgetClass squareCellWidgetClass = (WidgetClass) & squareCellClassRec; -static void -GetDrawGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground | GCDashOffset | - GCDashList | GCLineStyle; - /* - * Setting foreground and background to 1 and 0 looks like a - * kludge but isn't. This GC is used for drawing - * into a pixmap of depth one. Real colors are applied with a - * separate GC when the pixmap is copied into the window. - */ - values.foreground = 1; - values.background = 0; - values.dashes = 1; - values.dash_offset = 0; - values.line_style = LineOnOffDash; - cw->squareCell.draw_gc = XCreateGC(XtDisplay((Widget)cw), - cw->squareCell.big_picture, mask, &values); -} -static void -GetUndrawGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground; - /* this looks like a kludge but isn't. This GC is used for drawing - * into a pixmap of depth one. Real colors are applied as the - * pixmap is copied into the window. - */ - values.foreground = 0; - values.background = 1; - cw->squareCell.undraw_gc = XCreateGC(XtDisplay((Widget)cw), - cw->squareCell.big_picture, mask, &values); -} -static void -GetCopyGC(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - XGCValues values; - XtGCMask mask = GCForeground | GCBackground; - values.foreground = cw->squareCell.foreground; - values.background = cw->core.background_pixel; - cw->squareCell.copy_gc = XtGetGC((Widget)cw, mask, &values); -} -static void -Initialize(treq, tnew, args, num_args) -Widget treq, tnew; -ArgList args; -Cardinal *num_args; -{ - SquareCellWidget new = (SquareCellWidget) tnew; - new->squareCell.cur_x = 0; - new->squareCell.cur_y = 0; - /* - * Check instance values set by resources that may be invalid. - */ - if ((new->squareCell.pixmap_width_in_cells < 1) || - (new->squareCell.pixmap_height_in_cells < 1)) { - XtWarning("SquareCell: pixmapWidth and/or pixmapHeight is too small (using 10 x 10)."); - new->squareCell.pixmap_width_in_cells = 10; - new->squareCell.pixmap_height_in_cells = 10; - } - if (new->squareCell.cell_size_in_pixels < 5) { - XtWarning("SquareCell: cellSize is too small (using 5)."); - new->squareCell.cell_size_in_pixels = 5; - } - if ((new->squareCell.cur_x < 0) || (new->squareCell.cur_y < 0)) { - XtWarning("SquareCell: cur_x and cur_y must be non-negative (using 0, 0)."); - new->squareCell.cur_x = 0; - new->squareCell.cur_y = 0; - } - if (new->squareCell.cell == NULL) - new->squareCell.cell = XtCalloc( - new->squareCell.pixmap_width_in_cells * - new->squareCell.pixmap_height_in_cells, sizeof(char)); - else - new->squareCell.user_allocated = True; /* user supplied cell array */ - new->squareCell.pixmap_width_in_pixels = - new->squareCell.pixmap_width_in_cells * - new->squareCell.cell_size_in_pixels; - new->squareCell.pixmap_height_in_pixels = - new->squareCell.pixmap_height_in_cells * - new->squareCell.cell_size_in_pixels; - if (new->core.width == 0) { - if (new->squareCell.show_all == False) - new->core.width = (new->squareCell.pixmap_width_in_pixels - > DEFAULTWIDTH) ? DEFAULTWIDTH : - (new->squareCell.pixmap_width_in_pixels); - else - new->core.width = new->squareCell.pixmap_width_in_pixels; - } - if (new->core.height == 0) { - if (new->squareCell.show_all == False) - new->core.height = - (new->squareCell.pixmap_height_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - (new->squareCell.pixmap_height_in_pixels); - else - new->core.height = new->squareCell.pixmap_height_in_pixels; - } - CreateBigPixmap(new); - GetDrawGC(new); - GetUndrawGC(new); - GetCopyGC(new); - DrawIntoBigPixmap(new); -} -static void -Redisplay(w, event) -Widget w; -XExposeEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - register int x, y; - unsigned int width, height; - if (!XtIsRealized((Widget)cw)) - return; - if (event) { /* called from btn-event or expose */ - x = event->x; - y = event->y; - width = event->width; - height = event->height; - } - else { /* called because complete redraw */ - x = 0; - y = 0; - width = cw->squareCell.pixmap_width_in_pixels; - height = cw->squareCell.pixmap_height_in_pixels; - } - if (DefaultDepthOfScreen(XtScreen((Widget)cw)) == 1) - XCopyArea(XtDisplay((Widget)cw), cw->squareCell.big_picture, - XtWindow((Widget)cw), cw->squareCell.copy_gc, x + - cw->squareCell.cur_x, y + cw->squareCell.cur_y, - width, height, x, y); - else - XCopyPlane(XtDisplay((Widget)cw), cw->squareCell.big_picture, - XtWindow((Widget)cw), cw->squareCell.copy_gc, x + - cw->squareCell.cur_x, y + cw->squareCell.cur_y, - width, height, x, y, 1); -} -static Boolean -SetValues(current, request, new, args, num_args) -Widget current, request, new; -ArgList args; -Cardinal *num_args; -{ - SquareCellWidget curcw = (SquareCellWidget) current; - SquareCellWidget newcw = (SquareCellWidget) new; - Boolean do_redisplay = False; - /* - ** XtSetValues invoked procedure SetValues - */ - if (curcw->squareCell.foreground != newcw->squareCell.foreground) { - XtReleaseGC((Widget)curcw, curcw->squareCell.copy_gc); - GetCopyGC(newcw); - do_redisplay = True; - } - if ((curcw->squareCell.cur_x != newcw->squareCell.cur_x) || - (curcw->squareCell.cur_y != newcw->squareCell.cur_y)) - do_redisplay = True; - if (curcw->squareCell.cell_size_in_pixels != - newcw->squareCell.cell_size_in_pixels) { - ChangeCellSize(curcw, newcw->squareCell.cell_size_in_pixels); - do_redisplay = True; - } - if (curcw->squareCell.pixmap_width_in_cells != - newcw->squareCell.pixmap_width_in_cells) { - newcw->squareCell.pixmap_width_in_cells = - curcw->squareCell.pixmap_width_in_cells; - XtWarning("SquareCell: pixmap_width_in_cells cannot be set by XtSetValues.\n"); - } - if (curcw->squareCell.pixmap_height_in_cells != - newcw->squareCell.pixmap_height_in_cells) { - newcw->squareCell.pixmap_height_in_cells = - curcw->squareCell.pixmap_height_in_cells; - XtWarning("SquareCell: pixmap_height_in_cells cannot be set by XtSetValues.\n"); - } - return do_redisplay; -} -static void -Destroy(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - if (cw->squareCell.big_picture) - XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); - if (cw->squareCell.draw_gc) - XFreeGC(XtDisplay(cw), cw->squareCell.draw_gc); - if (cw->squareCell.undraw_gc) - XFreeGC(XtDisplay(cw), cw->squareCell.undraw_gc); - if (cw->squareCell.copy_gc) - XFreeGC(XtDisplay(cw), cw->squareCell.copy_gc); - /* Free memory allocated with Calloc. This was done - * only if application didn't supply cell array. - */ - if (!cw->squareCell.user_allocated) - XtFree((char *)cw->squareCell.cell); -} -static void -DrawCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - DrawPixmaps(cw->squareCell.draw_gc, DRAW, cw, event); -} -static void -UndrawCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - DrawPixmaps(cw->squareCell.undraw_gc, UNDRAW, cw, event); -} -static void -ToggleCell(w, event) -Widget w; -XEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - static int oldx = -1, oldy = -1; - GC gc; - int mode; - int newx, newy; - /* This is strictly correct, but doesn't - * seem to be necessary */ - if (event->type == ButtonPress) { - newx = (cw->squareCell.cur_x + ((XButtonEvent *)event)->x) / - cw->squareCell.cell_size_in_pixels; - newy = (cw->squareCell.cur_y + ((XButtonEvent *)event)->y) / - cw->squareCell.cell_size_in_pixels; - } - else { - newx = (cw->squareCell.cur_x + ((XMotionEvent *)event)->x) / - cw->squareCell.cell_size_in_pixels; - newy = (cw->squareCell.cur_y + ((XMotionEvent *)event)->y) / - cw->squareCell.cell_size_in_pixels; - } - if ((mode = cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells]) == DRAWN) { - gc = cw->squareCell.undraw_gc; - mode = UNDRAW; - } - else { - gc = cw->squareCell.draw_gc; - mode = DRAW; - } - if (oldx != newx || oldy != newy) { - oldx = newx; - oldy = newy; - DrawPixmaps(gc, mode, cw, event); - } -} -static void -DrawPixmaps(gc, mode, w, event) -GC gc; -int mode; -Widget w; -XButtonEvent *event; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int newx = (cw->squareCell.cur_x + event->x) / - cw->squareCell.cell_size_in_pixels; - int newy = (cw->squareCell.cur_y + event->y) / - cw->squareCell.cell_size_in_pixels; - XExposeEvent fake_event; - /* if already done, return */ - if (cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] == mode) - return; - /* otherwise, draw or undraw */ - XFillRectangle(XtDisplay((Widget)cw), cw->squareCell.big_picture, gc, - cw->squareCell.cell_size_in_pixels*newx + 2, - cw->squareCell.cell_size_in_pixels*newy + 2, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3); - cw->squareCell.cell[newx + newy * cw->squareCell.pixmap_width_in_cells] = mode; - info.mode = mode; - info.newx = newx; - info.newy = newy; - fake_event.x = cw->squareCell.cell_size_in_pixels * newx - cw->squareCell.cur_x; - fake_event.y = cw->squareCell.cell_size_in_pixels * newy - cw->squareCell.cur_y; - fake_event.width = cw->squareCell.cell_size_in_pixels; - fake_event.height = cw->squareCell.cell_size_in_pixels; - Redisplay(cw, &fake_event); - XtCallCallbacks((Widget)cw, XavsNtoggleCallback, &info); -} -CreateBigPixmap(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* always a 1 bit deep pixmap, regardless of screen depth */ - cw->squareCell.big_picture = XCreatePixmap(XtDisplay(cw), - RootWindow(XtDisplay(cw), DefaultScreen(XtDisplay(cw))), - cw->squareCell.pixmap_width_in_pixels + 2, - cw->squareCell.pixmap_height_in_pixels + 2, 1); -} -DrawIntoBigPixmap(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int n_horiz_segments, n_vert_segments; - XSegment segment[MAXLINES]; - register int x, y; - XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, - cw->squareCell.undraw_gc, 0, 0, - cw->squareCell.pixmap_width_in_pixels - + 2, cw->squareCell.pixmap_height_in_pixels + 2); - n_horiz_segments = cw->squareCell.pixmap_height_in_cells + 1; - n_vert_segments = cw->squareCell.pixmap_width_in_cells + 1; - for (x = 0; x < n_horiz_segments; x++) { - segment[x].x1 = 0; - segment[x].x2 = (short) cw->squareCell.pixmap_width_in_pixels; - segment[x].y1 = (short) cw->squareCell.cell_size_in_pixels * x; - segment[x].y2 = (short) cw->squareCell.cell_size_in_pixels * x; - } - XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_horiz_segments); - for (y = 0; y < n_vert_segments; y++) { - segment[y].x1 = (short) y * cw->squareCell.cell_size_in_pixels; - segment[y].x2 = (short) y * cw->squareCell.cell_size_in_pixels; - segment[y].y1 = 0; - segment[y].y2 = (short) cw->squareCell.pixmap_height_in_pixels; - } - XDrawSegments(XtDisplay(cw), cw->squareCell.big_picture, cw->squareCell.draw_gc, segment, n_vert_segments); - /* draw current cell array into pixmap */ - for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { - for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { - if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) - DoCell(cw, x, y, cw->squareCell.draw_gc); - else - DoCell(cw, x, y, cw->squareCell.undraw_gc); - } - } -} -/* A Public function, not static */ -char * -SquareCellGetArray(w, width_in_cells, height_in_cells) -Widget w; -int *width_in_cells, *height_in_cells; -{ - SquareCellWidget cw = (SquareCellWidget) w; - *width_in_cells = cw->squareCell.pixmap_width_in_cells; - *height_in_cells = cw->squareCell.pixmap_height_in_cells; - return (cw->squareCell.cell); -} -static void -Resize(w) -Widget w; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* resize does nothing unless new size is bigger than entire pixmap */ - if ((cw->core.width > cw->squareCell.pixmap_width_in_pixels) && - (cw->core.height > cw->squareCell.pixmap_height_in_pixels)) { - /* - * Calculate the maximum cell size that will allow the - * entire bitmap to be displayed. - */ - Dimension w_temp_cell_size_in_pixels, h_temp_cell_size_in_pixels; - Dimension new_cell_size_in_pixels; - - w_temp_cell_size_in_pixels = cw->core.width / cw->squareCell.pixmap_width_in_cells; - h_temp_cell_size_in_pixels = cw->core.height / cw->squareCell.pixmap_height_in_cells; - - if (w_temp_cell_size_in_pixels < h_temp_cell_size_in_pixels) - new_cell_size_in_pixels = w_temp_cell_size_in_pixels; - else - new_cell_size_in_pixels = h_temp_cell_size_in_pixels; - - /* if size change mandates a new pixmap, make one */ - if (new_cell_size_in_pixels != cw->squareCell.cell_size_in_pixels) - ChangeCellSize(cw, new_cell_size_in_pixels); - } -} -static void -ChangeCellSize(w, new_cell_size) -Widget w; -int new_cell_size; -{ - SquareCellWidget cw = (SquareCellWidget) w; - int x, y; - cw->squareCell.cell_size_in_pixels = new_cell_size; - /* recalculate variables based on cell size */ - cw->squareCell.pixmap_width_in_pixels = - cw->squareCell.pixmap_width_in_cells * - cw->squareCell.cell_size_in_pixels; - cw->squareCell.pixmap_height_in_pixels = - cw->squareCell.pixmap_height_in_cells * - cw->squareCell.cell_size_in_pixels; - - /* destroy old and create new pixmap of correct size */ - XFreePixmap(XtDisplay(cw), cw->squareCell.big_picture); - CreateBigPixmap(cw); - - /* draw lines into new pixmap */ - DrawIntoBigPixmap(cw); - - /* draw current cell array into pixmap */ - for (x = 0; x < cw->squareCell.pixmap_width_in_cells; x++) { - for (y = 0; y < cw->squareCell.pixmap_height_in_cells; y++) { - if (cw->squareCell.cell[x + (y * cw->squareCell.pixmap_width_in_cells)] == DRAWN) - DoCell(cw, x, y, cw->squareCell.draw_gc); - else - DoCell(cw, x, y, cw->squareCell.undraw_gc); - } - } -} -static void -DoCell(w, x, y, gc) -Widget w; -int x, y; -GC gc; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* otherwise, draw or undraw */ - XFillRectangle(XtDisplay(cw), cw->squareCell.big_picture, gc, - cw->squareCell.cell_size_in_pixels * x + 2, - cw->squareCell.cell_size_in_pixels * y + 2, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3, - (unsigned int)cw->squareCell.cell_size_in_pixels - 3); -} -static XtGeometryResult QueryGeometry(w, proposed, answer) -Widget w; -XtWidgetGeometry *proposed, *answer; -{ - SquareCellWidget cw = (SquareCellWidget) w; - /* set fields we care about */ - answer->request_mode = CWWidth | CWHeight; - /* initial width and height */ - if (cw->squareCell.show_all == True) - answer->width = cw->squareCell.pixmap_width_in_pixels; - else - answer->width = (cw->squareCell.pixmap_width_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - cw->squareCell.pixmap_width_in_pixels; - if (cw->squareCell.show_all == True) - answer->height = cw->squareCell.pixmap_height_in_pixels; - else - answer->height = (cw->squareCell.pixmap_height_in_pixels > - DEFAULTWIDTH) ? DEFAULTWIDTH : - cw->squareCell.pixmap_height_in_pixels; - if ( ((proposed->request_mode & (CWWidth | CWHeight)) - == (CWWidth | CWHeight)) && - proposed->width == answer->width && - proposed->height == answer->height) - return XtGeometryYes; - else if (answer->width == cw->core.width && - answer->height == cw->core.height) - return XtGeometryNo; - else - return XtGeometryAlmost; -} ->>SET tpstartup avs_alloc_sem ->>SET tpcleanup avs_free_sem ->>TITLE XtVaCreateWidget Xt4 -Widget -XtVaCreateWidget(name, object_class, parent,...) ->>ASSERTION Good A -A call to -Widget XtVaCreateWidget(name, object_class, parent,...) -shall create a new widget instance belonging to the widget class -object_class, with parent as its immediate ancestor, and return a pointer to -the widget instance structure. ->>CODE -Boolean value_good; -char string[10]; -Widget widget_good , labelw_good; -Widget rowcolw_good, labelw_msg; -char *msg = "Failsafe widget"; - - avs_xt_hier("Tvcrtwdgt1", "XtVaCreateWidget"); - tet_infoline("PREP: Create rowcolw_good widget in box1w widget"); - rowcolw_good = (Widget) CreateRowColWidget(boxw1); - tet_infoline("PREP: Create failsafe widget in rowcolw_good"); - labelw_msg = (Widget) CreateLabelWidget(msg, rowcolw_good); - tet_infoline("TEST: Create label widget Hello"); - labelw_good = XtVaCreateWidget( - "Hello", - labelWidgetClass, - rowcolw_good, - NULL - ); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Labelw_good widget is not managed"); - value_good = XtIsManaged(labelw_good); - check_dec(False, value_good , "XtIsManaged return value"); - tet_infoline("TEST: Labelw_good widget is child of rowcolumn widget"); - widget_good = (Widget)XtParent(labelw_good); - if (widget_good == NULL) { - sprintf(ebuf, "ERROR: Expected parent widget instance returned NULL"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - else - check_str("rowcolw", XtName(widget_good), "widget name"); - tet_result(TET_PASS); ->>ASSERTION Good A -A call to -Widget XtVaCreateWidget(name, object_class, parent, ...) -when object_class is not coreWidgetClass or a subclass thereof, the class of -parent is a subclass of compositeWidgetClass, and there is no extension -record in the composite class part extension field of parent with the -record_type equal to NULLQUARK shall issue a fatal error. ->>CODE -Boolean value_good; -char string[10]; -Widget test_widget, test_widget2; -int status; -pid_t pid2; - - FORK(pid2); - avs_xt_hier("Tcrwidget5", "XtCreateWidget"); - XtAppSetWarningMsgHandler(app_ctext, XtWMH_Proc); - tet_infoline("PREP: Register error message handler"); - XtAppSetErrorMsgHandler(app_ctext, XtEMH_Proc); - tet_infoline("TEST: Create composite widget"); - test_widget = XtCreateWidget( - "Composite", - avsCompWidgetClass, - topLevel, - NULL, - 0 - ); - tet_infoline("PREP: Create rect obj in it"); - test_widget2 = XtVaCreateWidget( - "RectObj", - avsrectObjClass, - test_widget, - (ArgList)NULL - ); - KROF(pid2); - tet_infoline("TEST: Error handler was invoked"); - status = avs_get_event(1); - check_dec(1, status , "handler invocations count"); - tet_result(TET_PASS); ->>ASSERTION Good B 0 -A successful call to -Widget XtVaCreateWidget(name, object_class, parent,...) -when object_class is not coreWidgetClass or a subclass thereof, the class of -parent is a subclass of compositeWidgetClass, and the accepts_object -field in the parent's composite class part extension record is False shall -issue a fatal error. ->># >>ASSERTION Good A ->># A call to ->># Widget XtVaCreateWidget(name, object_class, parent,...) ->># shall initialize the resource fields of the widget instance using the resource ->># values specified in the the CoreClassPart lists for object_class and all ->># superclasses, overridden by the resource values specified in the varargs ->># style arguments. ->># >>CODE ->># Boolean value_good; ->># char string[10]; ->># Widget squarew; ->># Dimension cell_width, cell_height; ->># ->># avs_xt_hier("Tvcrtwdgt2", "XtVaCreateWidget"); ->># tet_infoline("TEST: Create Square Cell widget"); ->># squarew = XtVaCreateWidget("squarew", ->># squareCellWidgetClass, ->># boxw1, ->># NULL ->># ); ->># tet_infoline("PREP: Get resource values"); ->># XtVaGetValues(squarew, ->># XavsNpixmapWidthInCells, ->># &cell_width, ->># XavsNpixmapHeightInCells, ->># &cell_height, ->># (char *)NULL); ->># tet_infoline("TEST: Original values returned"); ->># check_dec(DEFAULT_PIXMAP_WIDTH, cell_width, ->># "XavsNpixmapWidthInCells"); ->># check_dec(DEFAULT_PIXMAP_HEIGHT, cell_height, ->># "XavsNpixmapHeightInCells"); ->># tet_result(TET_PASS); ->># >>ASSERTION Good A ->># When parent is a subclass of constraintWidgetClass a successful call to ->># Widget XtVaCreateWidget(name, object_class, parent,...) ->># shall initialize the resource fields of the constraints record by ->># using the constraint resource lists specified for the parent's class and ->># all superclasses up to constraintWidgetClass, overridden by the resource ->># values specified in the varags style arguments. ->># >>CODE ->># Boolean value_good; ->># char string[10]; ->># Widget formw_good, labelw_msg; ->># char *msg = "Failsafe widget"; ->># Widget labelw_good; ->># Boolean resizable; ->># ->># avs_xt_hier("Tvcrtwdgt3", "XtVaCreateWidget"); ->># tet_infoline("PREP: Create formw_good widget subclass of constraintWidgetClass"); ->># formw_good = (Widget) CreateFormWidget(boxw1); ->># tet_infoline("PREP: Create failsafe widget in formw_good"); ->># labelw_msg = (Widget) CreateLabelWidget(msg, formw_good); ->># tet_infoline("TEST: Create labelw_good widget Hello"); ->># labelw_good = XtVaCreateWidget( ->># "Hello", ->># labelWidgetClass, ->># formw_good, ->># XtNresizable, ->># TRUE, ->># NULL ->># ); ->># tet_infoline("PREP: Create windows for widgets and map them"); ->># XtRealizeWidget(topLevel); ->># tet_infoline("PREP: Get XtNresizable constraint resource value."); ->># XtVaGetValues(labelw_good, XtNresizable, &resizable, (char *)NULL); ->># tet_infoline("TEST: XtNresizable resource value"); ->># check_dec(TRUE, resizable, "XtNresizable resource"); ->># tet_result(TET_PASS); ->># >>ASSERTION Good A ->># When parent is a subclass of compositeWidgetClass a successful call to ->># Widget XtVaCreateWidget(name, object_class, parent,...) ->># shall call the insert_child procedure of the parent. ->># >>CODE ->># Boolean value_good; ->># char string[10]; ->># Widget widget_good; ->># Widget formw_good, labelw_msg; ->># char *msg = "Failsafe widget"; ->># Widget labelw_good; ->># ->># avs_xt_hier("Tvcrtwdgt4", "XtVaCreateWidget"); ->># tet_infoline("PREP: Create formw_good widget subclass of constraintWidgetClass"); ->># formw_good = (Widget) CreateFormWidget(boxw1); ->># tet_infoline("PREP: Create failsafe widget in formw_good"); ->># labelw_msg = (Widget) CreateLabelWidget(msg, formw_good); ->># tet_infoline("TEST: Create labelw_good widget Hello"); ->># labelw_good = XtVaCreateWidget( ->># "Hello", ->># labelWidgetClass, ->># formw_good, ->># NULL ->># ); ->># tet_infoline("PREP: Create windows for widgets and map them"); ->># XtRealizeWidget(topLevel); ->># tet_infoline("TEST: Labelw_good widget is child of formw widget"); ->># widget_good = (Widget)XtParent(labelw_good); ->># if (widget_good == NULL) { ->># sprintf(ebuf, "ERROR: Expected parent widget instance returned NULL"); ->># tet_infoline(ebuf); ->># tet_result(TET_FAIL); ->># } ->># else ->># check_str("formw", XtName(widget_good), "parent name"); ->># tet_result(TET_PASS); ->>ASSERTION Good A -A successful call to -Widget XtVaCreateWidget(name, object_class, parent,...) -shall perform the following actions in the order specified: - -- invoke the class_initialize procedure for the class object_class and - all superclasses for which this procedure has not been invoked prior to - this call, in a superclass-to-subclass order. - -- allocate memory for the widget instance. - -- if the parent belongs to the class constraintWidgetClass or a - subclass thereof, allocate memory for the constraints of parent - and store the address of this memory in the constraints field of the - widget instance structure. - -- initialize the Core non-resource data fields of the widget instance. - -- initialize the resource fields of the widget instance using the - CoreClassPart resource list specified for object_class and all superclasses, - overridden by the resource values specified in the varargs style arguments. - -- if parent is a subclass of constraintWidgetClass, initialize the resource - fields of the constraints record from the constraint resource list specified - for the parent's class and all superclasses up to constraintWidgetClass, - overridden by the resource values specified in the varargs style arguments. - -- call all the initialize procedures starting at Object on down to the - initialize procedure of the widget. - -- if parent is a member of compositeWidgetClass, call the insert_child - procedure of the parent. - -- if parent belongs to the class contraintWidgetClass or a subclass thereof, - call all the ConstraintClassPart initialize procedures starting at - constraintWidgetClass on down to the initialize procedure of the parent. ->>CODE -Boolean value_good; -char string[10]; -Widget squarew; -Dimension cell_width, cell_height; -Widget widget_good; -Widget formw_good, labelw_msg; -char *msg = "Failsafe widget"; -Widget labelw_good; -Boolean resizable; -pid_t pid2; - - /*combination of earlier tests, needs enhancement*/ - FORK(pid2); - avs_xt_hier("Tvcrtwdgt2", "XtVaCreateWidget"); - tet_infoline("TEST: Create Square Cell widget"); - squarew = XtVaCreateWidget("squarew", - squareCellWidgetClass, - boxw1, - NULL - ); - tet_infoline("PREP: Get resource values"); - XtVaGetValues(squarew, - XavsNpixmapWidthInCells, - &cell_width, - XavsNpixmapHeightInCells, - &cell_height, - (char *)NULL); - tet_infoline("TEST: Original values returned"); - check_dec(DEFAULT_PIXMAP_WIDTH, cell_width, - "XavsNpixmapWidthInCells"); - check_dec(DEFAULT_PIXMAP_HEIGHT, cell_height, - "XavsNpixmapHeightInCells"); - LKROF(pid2, AVSXTTIMEOUT-2); - FORK(pid2); - avs_xt_hier("Tvcrtwdgt3", "XtVaCreateWidget"); - tet_infoline("PREP: Create formw_good widget subclass of constraintWidgetClass"); - formw_good = (Widget) CreateFormWidget(boxw1); - tet_infoline("PREP: Create failsafe widget in formw_good"); - labelw_msg = (Widget) CreateLabelWidget(msg, formw_good); - tet_infoline("TEST: Create labelw_good widget Hello"); - labelw_good = XtVaCreateWidget( - "Hello", - labelWidgetClass, - formw_good, - XtNresizable, - TRUE, - NULL - ); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("PREP: Get XtNresizable constraint resource value."); - XtVaGetValues(labelw_good, XtNresizable, &resizable, (char *)NULL); - tet_infoline("TEST: XtNresizable resource value"); - check_dec(TRUE, resizable, "XtNresizable resource"); - LKROF(pid2, AVSXTTIMEOUT-2); - FORK(pid2); - avs_xt_hier("Tvcrtwdgt4", "XtVaCreateWidget"); - tet_infoline("PREP: Create formw_good widget subclass of constraintWidgetClass"); - formw_good = (Widget) CreateFormWidget(boxw1); - tet_infoline("PREP: Create failsafe widget in formw_good"); - labelw_msg = (Widget) CreateLabelWidget(msg, formw_good); - tet_infoline("TEST: Create labelw_good widget Hello"); - labelw_good = XtVaCreateWidget( - "Hello", - labelWidgetClass, - formw_good, - NULL - ); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Labelw_good widget is child of formw widget"); - widget_good = (Widget)XtParent(labelw_good); - if (widget_good == NULL) { - sprintf(ebuf, "ERROR: Expected parent widget instance returned NULL"); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - else - check_str("formw", XtName(widget_good), "parent name"); - LKROF(pid2, AVSXTTIMEOUT-2); - tet_result(TET_PASS); ->>ASSERTION Good B 0 -A successful call to -Widget XtVaCreateWidget(name, object_class, parent,...) -when the varargs style argument specifies the name XtVaTypedArg in place -of a resource name and the second argument following this name is XtRString -shall initialize the resource specified by the first argument following the -XtVaTypedArg name to the string pointed to by the third argument of a length -specified by the fourth argument following the XtVaTypedArg name argument. ->>ASSERTION Good B 0 -A successful call to -Widget XtVaCreateWidget(name, object_class, parent,...) -when the varargs style argument specifies the name XtVaTypedArg in place of -a resource name, the second argument following this name is not XtRString, and -the fourth argument is less than sizeof(XtArgVal) shall -initialize the resource specified by the first argument following the -XtVaTypedArg name to the value specified in the third argument following the -XtVaTypedArg name argument. ->>ASSERTION Good B 0 -A successful call to -Widget XtVaCreateWidget(name, object_class, parent,...) -when the varargs style argument specifies the name XtVaTypedArg in place of -a resource name, the second argument following this argument is not XtRString, -and the fourth argument is more than sizeof(XtArgVal) shall initialize the -resource specified by the first argument following the XtVaTypedArg name to -the value pointed to by the third argument following the XtVaTypedArg name -argument. ->>ASSERTION Good B 0 -A call to -Widget XtVaCreateWidget(name, object_class, parent,...) -when the varargs style argument specifies the name XtVaTypedArg in place of -a resource name and the type conversion fails during the resource initialization -using the arguments following the XtVaTypedArg argument shall issue a warning -message. diff --git a/xts5/Xt4/XtWidgetToApplicationContext.m b/xts5/Xt4/XtWidgetToApplicationContext.m new file mode 100644 index 00000000..f9760485 --- /dev/null +++ b/xts5/Xt4/XtWidgetToApplicationContext.m @@ -0,0 +1,97 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtWidgetToApplicationContext.m +>># +>># Description: +>># Tests for XtWidgetToApplicationContext() +>># +>># Modifications: +>># $Log: twdgttappl.m,v $ +>># Revision 1.1 2005-02-12 14:38:13 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:17 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:06 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:28 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:02 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:15:42 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:19:25 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtWidgetToApplicationContext Xt4 +XtAppContext +XtWidgetToApplicationContext(w) +>>ASSERTION Good A +A call to XtAppContext XtWidgetToApplicationContext(w) shall return the +application context of the widget w. +>>CODE +XtAppContext app_ctext_ret; + + avs_xt_hier("Twdgttappl1", "XtWidgetToApplicationContext"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Returns widget's application context"); + app_ctext_ret = XtWidgetToApplicationContext(topLevel); + if (app_ctext_ret == NULL) { + tet_infoline("ERROR: Expected valid application context returned NULL"); + tet_result(TET_FAIL); + } + if (app_ctext_ret != app_ctext) { + tet_infoline("ERROR: Incorrect application context returned"); + tet_result(TET_FAIL); + } + + app_ctext_ret = XtWidgetToApplicationContext(labelw); + if (app_ctext_ret == NULL) { + tet_infoline("ERROR: Expected valid application context returned NULL"); + tet_result(TET_FAIL); + } + + if (app_ctext_ret != app_ctext) { + tet_infoline("ERROR: Incorrect application context returned"); + tet_result(TET_FAIL); + } + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtWidgetToApplicationContext/XtWidgetToApplicationContext.m b/xts5/Xt4/XtWidgetToApplicationContext/XtWidgetToApplicationContext.m deleted file mode 100644 index 9c9c6531..00000000 --- a/xts5/Xt4/XtWidgetToApplicationContext/XtWidgetToApplicationContext.m +++ /dev/null @@ -1,97 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtWidgetToApplicationContext/XtWidgetToApplicationContext.m ->># ->># Description: ->># Tests for XtWidgetToApplicationContext() ->># ->># Modifications: ->># $Log: twdgttappl.m,v $ ->># Revision 1.1 2005-02-12 14:38:13 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:17 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:06 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:28 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:02 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:15:42 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:19:25 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtWidgetToApplicationContext Xt4 -XtAppContext -XtWidgetToApplicationContext(w) ->>ASSERTION Good A -A call to XtAppContext XtWidgetToApplicationContext(w) shall return the -application context of the widget w. ->>CODE -XtAppContext app_ctext_ret; - - avs_xt_hier("Twdgttappl1", "XtWidgetToApplicationContext"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Returns widget's application context"); - app_ctext_ret = XtWidgetToApplicationContext(topLevel); - if (app_ctext_ret == NULL) { - tet_infoline("ERROR: Expected valid application context returned NULL"); - tet_result(TET_FAIL); - } - if (app_ctext_ret != app_ctext) { - tet_infoline("ERROR: Incorrect application context returned"); - tet_result(TET_FAIL); - } - - app_ctext_ret = XtWidgetToApplicationContext(labelw); - if (app_ctext_ret == NULL) { - tet_infoline("ERROR: Expected valid application context returned NULL"); - tet_result(TET_FAIL); - } - - if (app_ctext_ret != app_ctext) { - tet_infoline("ERROR: Incorrect application context returned"); - tet_result(TET_FAIL); - } - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtWindow.m b/xts5/Xt4/XtWindow.m new file mode 100644 index 00000000..739ab799 --- /dev/null +++ b/xts5/Xt4/XtWindow.m @@ -0,0 +1,88 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtWindow.m +>># +>># Description: +>># Tests for XtWindow() +>># +>># Modifications: +>># $Log: twindow.m,v $ +>># Revision 1.1 2005-02-12 14:38:13 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:29 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:19 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:39 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:13 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:22 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:15 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtWindow Xt4 +Window +XtWindow(w) +>>ASSERTION Good A +A call to Window XtWindow(w) shall return the window of the widget w. +>>CODE +Window window_good; +Widget widget_good, labelw_good; +Display *display_good; + + avs_xt_hier("Twindow1", "XtWindow"); + tet_infoline("PREP: Create test label widget `Hello' in box widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: XtWindow shall return the window of the test label widget"); + if ((window_good = XtWindow(labelw_good)) <= 0) { + sprintf(ebuf, "ERROR: Expected Valid window id returned %d", window_good); + tet_result(TET_FAIL); + } + tet_infoline("TEST: The window id is indeed of label widget Hello"); + display_good = XtDisplay(labelw_good); + widget_good = XtWindowToWidget(display_good, window_good); + check_str("Hello", XtName(widget_good), "widget name"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtWindow/XtWindow.m b/xts5/Xt4/XtWindow/XtWindow.m deleted file mode 100644 index e56b4aa8..00000000 --- a/xts5/Xt4/XtWindow/XtWindow.m +++ /dev/null @@ -1,88 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtWindow/XtWindow.m ->># ->># Description: ->># Tests for XtWindow() ->># ->># Modifications: ->># $Log: twindow.m,v $ ->># Revision 1.1 2005-02-12 14:38:13 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:29 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:19 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:39 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:13 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:22 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:15 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtWindow Xt4 -Window -XtWindow(w) ->>ASSERTION Good A -A call to Window XtWindow(w) shall return the window of the widget w. ->>CODE -Window window_good; -Widget widget_good, labelw_good; -Display *display_good; - - avs_xt_hier("Twindow1", "XtWindow"); - tet_infoline("PREP: Create test label widget `Hello' in box widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: XtWindow shall return the window of the test label widget"); - if ((window_good = XtWindow(labelw_good)) <= 0) { - sprintf(ebuf, "ERROR: Expected Valid window id returned %d", window_good); - tet_result(TET_FAIL); - } - tet_infoline("TEST: The window id is indeed of label widget Hello"); - display_good = XtDisplay(labelw_good); - widget_good = XtWindowToWidget(display_good, window_good); - check_str("Hello", XtName(widget_good), "widget name"); - tet_result(TET_PASS); diff --git a/xts5/Xt4/XtWindowOfObject.m b/xts5/Xt4/XtWindowOfObject.m new file mode 100644 index 00000000..a9a9af0f --- /dev/null +++ b/xts5/Xt4/XtWindowOfObject.m @@ -0,0 +1,112 @@ +Copyright (c) 2005 X.Org Foundation LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 +Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 +All Rights Reserved. + +>># +>># Project: VSW5 +>># +>># File: xts/Xt4/XtWindowOfObject.m +>># +>># Description: +>># Tests for XtWindowOfObject() +>># +>># Modifications: +>># $Log: twindwofo.m,v $ +>># Revision 1.1 2005-02-12 14:38:13 anderson +>># Initial revision +>># +>># Revision 8.0 1998/12/23 23:36:31 mar +>># Branch point for Release 5.0.2 +>># +>># Revision 7.0 1998/10/30 22:59:21 mar +>># Branch point for Release 5.0.2b1 +>># +>># Revision 6.0 1998/03/02 05:27:40 tbr +>># Branch point for Release 5.0.1 +>># +>># Revision 5.0 1998/01/26 03:24:14 tbr +>># Branch point for Release 5.0.1b1 +>># +>># Revision 4.0 1995/12/15 09:16:24 tbr +>># Branch point for Release 5.0.0 +>># +>># Revision 3.1 1995/12/15 01:20:20 andy +>># Prepare for GA Release +>># +>>EXTERN +#include +#include +#include + +XtAppContext app_ctext; +Widget topLevel, panedw, boxw1, boxw2; +Widget labelw, rowcolw, click_quit; +>>TITLE XtWindowOfObject Xt4 +Window +XtWindowOfObject(object) +>>ASSERTION Good A +A call to Window XtWindowOfObject(object) when object is a widget shall +return the window for the widget. +>>CODE +Window window_good; +Widget widget_good, labelw_good; +Display *display_good; + + avs_xt_hier("Twindwofo2", "XtWindowOfObject"); + tet_infoline("PREP: Create test label widget `Hello' in box widget"); + labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Call XtWindowOfObject for label widget Hello"); + if ((window_good = XtWindow(labelw_good)) <= 0) { + sprintf(ebuf, "ERROR: Expected Valid window id returned %d", window_good); + tet_result(TET_FAIL); + } + tet_infoline("TEST: The window id is indeed of label widget Hello"); + display_good = XtDisplay(labelw_good); + widget_good = XtWindowToWidget(display_good, window_good); + check_str("Hello", XtName(widget_good), "widget name"); + tet_result(TET_PASS); +>>ASSERTION Good A +A call to Window XtWindowOfObject(object) when object is not a widget +shall return the window of the nearest ancestor of object that +belongs to class widget or a subclass thereof. +>>CODE +Widget widget_good; +Display *display_good; +Window window_good; + + avs_xt_hier("Twindwofo2", "XtWindowToWidget"); + tet_infoline("PREP: Create windows for widgets and map them"); + XtRealizeWidget(topLevel); + tet_infoline("TEST: Call XtWindow for push button gadget"); + if ((window_good = XtWindowOfObject(click_quit)) <= 0) { + sprintf(ebuf, "ERROR: Expected valid window id returned %d",window_good); + tet_infoline(ebuf); + tet_result(TET_FAIL); + } + tet_infoline("TEST: Window id is valid for specified rowcol widget"); + display_good = XtDisplayOfObject(click_quit); + widget_good = XtWindowToWidget(display_good, window_good); + check_str("Quit", XtName(widget_good), "widget name"); + tet_result(TET_PASS); diff --git a/xts5/Xt4/XtWindowOfObject/XtWindowOfObject.m b/xts5/Xt4/XtWindowOfObject/XtWindowOfObject.m deleted file mode 100644 index 85e16ee9..00000000 --- a/xts5/Xt4/XtWindowOfObject/XtWindowOfObject.m +++ /dev/null @@ -1,112 +0,0 @@ -Copyright (c) 2005 X.Org Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -Copyright (c) Applied Testing and Technology, Inc. 1993, 1994, 1995 -Copyright (c) 88open Consortium, Ltd. 1990, 1991, 1992, 1993 -All Rights Reserved. - ->># ->># Project: VSW5 ->># ->># File: xts/Xt4/XtWindowOfObject/XtWindowOfObject.m ->># ->># Description: ->># Tests for XtWindowOfObject() ->># ->># Modifications: ->># $Log: twindwofo.m,v $ ->># Revision 1.1 2005-02-12 14:38:13 anderson ->># Initial revision ->># ->># Revision 8.0 1998/12/23 23:36:31 mar ->># Branch point for Release 5.0.2 ->># ->># Revision 7.0 1998/10/30 22:59:21 mar ->># Branch point for Release 5.0.2b1 ->># ->># Revision 6.0 1998/03/02 05:27:40 tbr ->># Branch point for Release 5.0.1 ->># ->># Revision 5.0 1998/01/26 03:24:14 tbr ->># Branch point for Release 5.0.1b1 ->># ->># Revision 4.0 1995/12/15 09:16:24 tbr ->># Branch point for Release 5.0.0 ->># ->># Revision 3.1 1995/12/15 01:20:20 andy ->># Prepare for GA Release ->># ->>EXTERN -#include -#include -#include - -XtAppContext app_ctext; -Widget topLevel, panedw, boxw1, boxw2; -Widget labelw, rowcolw, click_quit; ->>TITLE XtWindowOfObject Xt4 -Window -XtWindowOfObject(object) ->>ASSERTION Good A -A call to Window XtWindowOfObject(object) when object is a widget shall -return the window for the widget. ->>CODE -Window window_good; -Widget widget_good, labelw_good; -Display *display_good; - - avs_xt_hier("Twindwofo2", "XtWindowOfObject"); - tet_infoline("PREP: Create test label widget `Hello' in box widget"); - labelw_good = (Widget) CreateLabelWidget("Hello", boxw1); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Call XtWindowOfObject for label widget Hello"); - if ((window_good = XtWindow(labelw_good)) <= 0) { - sprintf(ebuf, "ERROR: Expected Valid window id returned %d", window_good); - tet_result(TET_FAIL); - } - tet_infoline("TEST: The window id is indeed of label widget Hello"); - display_good = XtDisplay(labelw_good); - widget_good = XtWindowToWidget(display_good, window_good); - check_str("Hello", XtName(widget_good), "widget name"); - tet_result(TET_PASS); ->>ASSERTION Good A -A call to Window XtWindowOfObject(object) when object is not a widget -shall return the window of the nearest ancestor of object that -belongs to class widget or a subclass thereof. ->>CODE -Widget widget_good; -Display *display_good; -Window window_good; - - avs_xt_hier("Twindwofo2", "XtWindowToWidget"); - tet_infoline("PREP: Create windows for widgets and map them"); - XtRealizeWidget(topLevel); - tet_infoline("TEST: Call XtWindow for push button gadget"); - if ((window_good = XtWindowOfObject(click_quit)) <= 0) { - sprintf(ebuf, "ERROR: Expected valid window id returned %d",window_good); - tet_infoline(ebuf); - tet_result(TET_FAIL); - } - tet_infoline("TEST: Window id is valid for specified rowcol widget"); - display_good = XtDisplayOfObject(click_quit); - widget_good = XtWindowToWidget(display_good, window_good); - check_str("Quit", XtName(widget_good), "widget name"); - tet_result(TET_PASS); diff --git a/xts5/scenarios/Xt4_scen b/xts5/scenarios/Xt4_scen index 839562b3..09d18387 100644 --- a/xts5/scenarios/Xt4_scen +++ b/xts5/scenarios/Xt4_scen @@ -61,68 +61,68 @@ # "VSW5TESTSUITE CASE XtToolkitInitialize 1" - /Xt4/XtToolkitInitialize/XtToolkitInitialize + /Xt4/XtToolkitInitialize "VSW5TESTSUITE CASE XtCreateApplicationContext 1" - /Xt4/XtCreateApplicationContext/XtCreateApplicationContext + /Xt4/XtCreateApplicationContext "VSW5TESTSUITE CASE XtDestoryApplicationContext 2" - /Xt4/XtDestroyApplicationContext/XtDestroyApplicationContext + /Xt4/XtDestroyApplicationContext "VSW5TESTSUITE CASE XtWidgetToApplicationContext 1" - /Xt4/XtWidgetToApplicationContext/XtWidgetToApplicationContext + /Xt4/XtWidgetToApplicationContext "VSW5TESTSUITE CASE XtDisplayInitialize 20" - /Xt4/XtDisplayInitialize/XtDisplayInitialize + /Xt4/XtDisplayInitialize "VSW5TESTSUITE CASE XtOpenDisplay 28" - /Xt4/XtOpenDisplay/XtOpenDisplay + /Xt4/XtOpenDisplay "VSW5TESTSUITE CASE XtCloseDisplay 2" - /Xt4/XtCloseDisplay/XtCloseDisplay + /Xt4/XtCloseDisplay "VSW5TESTSUITE CASE XtSetLanguageProc 8" - /Xt4/XtSetLanguageProc/XtSetLanguageProc + /Xt4/XtSetLanguageProc "VSW5TESTSUITE CASE XtScreenDatabase 1" - /Xt4/XtScreenDatabase/XtScreenDatabase + /Xt4/XtScreenDatabase "VSW5TESTSUITE CASE XtDatabase 2" - /Xt4/XtDatabase/XtDatabase + /Xt4/XtDatabase "VSW5TESTSUITE CASE XtAppSetFallbackResources 2" - /Xt4/XtAppSetFallbackResources/XtAppSetFallbackResources + /Xt4/XtAppSetFallbackResources "VSW5TESTSUITE CASE XtSetArg 2" - /Xt4/XtSetArg/XtSetArg + /Xt4/XtSetArg "VSW5TESTSUITE CASE XtMergeArgLists 3" - /Xt4/XtMergeArgLists/XtMergeArgLists + /Xt4/XtMergeArgLists "VSW5TESTSUITE CASE XtVaCreateArgsList 2" - /Xt4/XtCreateVarArgsList/XtCreateVarArgsList + /Xt4/XtCreateVarArgsList "VSW5TESTSUITE CASE XtCreateWidget 4" - /Xt4/XtCreateWidget/XtCreateWidget + /Xt4/XtCreateWidget "VSW5TESTSUITE CASE XtVaCreateWidget 8" - /Xt4/XtVaCreateWidget/XtVaCreateWidget + /Xt4/XtVaCreateWidget "VSW5TESTSUITE CASE XtAppCreateShell 7" - /Xt4/XtAppCreateShell/XtAppCreateShell + /Xt4/XtAppCreateShell "VSW5TESTSUITE CASE XtVaAppCreateShell 7" - /Xt4/XtVaAppCreateShell/XtVaAppCreateShell + /Xt4/XtVaAppCreateShell "VSW5TESTSUITE CASE XtAppInitialize 29" - /Xt4/XtAppInitialize/XtAppInitialize + /Xt4/XtAppInitialize "VSW5TESTSUITE CASE XtVaAppInitialize 29" - /Xt4/XtVaAppInitialize/XtVaAppInitialize + /Xt4/XtVaAppInitialize "VSW5TESTSUITE CASE XtRealizeWidget 11" - /Xt4/XtRealizeWidget/XtRealizeWidget + /Xt4/XtRealizeWidget "VSW5TESTSUITE CASE XtIsRealized 3" - /Xt4/XtIsRealized/XtIsRealized + /Xt4/XtIsRealized "VSW5TESTSUITE CASE XtCreateWindow 1" - /Xt4/XtCreateWindow/XtCreateWindow + /Xt4/XtCreateWindow "VSW5TESTSUITE CASE XtDisplay 1" - /Xt4/XtDisplay/XtDisplay + /Xt4/XtDisplay "VSW5TESTSUITE CASE XtParent 1" - /Xt4/XtParent/XtParent + /Xt4/XtParent "VSW5TESTSUITE CASE XtScreen 1" - /Xt4/XtScreen/XtScreen + /Xt4/XtScreen "VSW5TESTSUITE CASE XtWindow 1" - /Xt4/XtWindow/XtWindow + /Xt4/XtWindow "VSW5TESTSUITE CASE XtDisplayOfObject 2" - /Xt4/XtDisplayOfObject/XtDisplayOfObject + /Xt4/XtDisplayOfObject "VSW5TESTSUITE CASE XtScreenOfObject 2" - /Xt4/XtScreenOfObject/XtScreenOfObject + /Xt4/XtScreenOfObject "VSW5TESTSUITE CASE XtWindowOfObject 2" - /Xt4/XtWindowOfObject/XtWindowOfObject + /Xt4/XtWindowOfObject "VSW5TESTSUITE CASE XtName 1" - /Xt4/XtName/XtName + /Xt4/XtName "VSW5TESTSUITE CASE XtUnrealizeWidget 4" - /Xt4/XtUnrealizeWidget/XtUnrealizeWidget + /Xt4/XtUnrealizeWidget "VSW5TESTSUITE CASE XtDestroyWidget 3" - /Xt4/XtDestroyWidget/XtDestroyWidget + /Xt4/XtDestroyWidget diff --git a/xts5/tet_scen b/xts5/tet_scen index 07fdcea7..7d1edb29 100644 --- a/xts5/tet_scen +++ b/xts5/tet_scen @@ -3680,135 +3680,135 @@ XtInitializeWidgetClass XtToolkitInitialize "VSW5TESTSUITE CASE XtToolkitInitialize 1" - /Xt4/XtToolkitInitialize/XtToolkitInitialize + /Xt4/XtToolkitInitialize XtCreateApplicationContext "VSW5TESTSUITE CASE XtCreateApplicationContext 1" - /Xt4/XtCreateApplicationContext/XtCreateApplicationContext + /Xt4/XtCreateApplicationContext XtDestroyApplicationContext "VSW5TESTSUITE CASE XtDestoryApplicationContext 2" - /Xt4/XtDestroyApplicationContext/XtDestroyApplicationContext + /Xt4/XtDestroyApplicationContext XtWidgetToApplicationContext "VSW5TESTSUITE CASE XtWidgetToApplicationContext 1" - /Xt4/XtWidgetToApplicationContext/XtWidgetToApplicationContext + /Xt4/XtWidgetToApplicationContext XtDisplayInitialize "VSW5TESTSUITE CASE XtDisplayInitialize 20" - /Xt4/XtDisplayInitialize/XtDisplayInitialize + /Xt4/XtDisplayInitialize XtOpenDisplay "VSW5TESTSUITE CASE XtOpenDisplay 28" - /Xt4/XtOpenDisplay/XtOpenDisplay + /Xt4/XtOpenDisplay XtCloseDisplay "VSW5TESTSUITE CASE XtCloseDisplay 2" - /Xt4/XtCloseDisplay/XtCloseDisplay + /Xt4/XtCloseDisplay XtSetLanguageProc "VSW5TESTSUITE CASE XtSetLanguageProc 8" - /Xt4/XtSetLanguageProc/XtSetLanguageProc + /Xt4/XtSetLanguageProc XtScreenDatabase "VSW5TESTSUITE CASE XtScreenDatabase 1" - /Xt4/XtScreenDatabase/XtScreenDatabase + /Xt4/XtScreenDatabase XtDatabase "VSW5TESTSUITE CASE XtDatabase 2" - /Xt4/XtDatabase/XtDatabase + /Xt4/XtDatabase XtAppSetFallbackResources "VSW5TESTSUITE CASE XtAppSetFallbackResources 2" - /Xt4/XtAppSetFallbackResources/XtAppSetFallbackResources + /Xt4/XtAppSetFallbackResources XtSetArg "VSW5TESTSUITE CASE XtSetArg 2" - /Xt4/XtSetArg/XtSetArg + /Xt4/XtSetArg XtMergeArgLists "VSW5TESTSUITE CASE XtMergeArgLists 3" - /Xt4/XtMergeArgLists/XtMergeArgLists + /Xt4/XtMergeArgLists XtVaCreateArgsList "VSW5TESTSUITE CASE XtVaCreateArgsList 2" - /Xt4/XtCreateVarArgsList/XtCreateVarArgsList + /Xt4/XtCreateVarArgsList XtCreateWidget "VSW5TESTSUITE CASE XtCreateWidget 4" - /Xt4/XtCreateWidget/XtCreateWidget + /Xt4/XtCreateWidget XtVaCreateWidget "VSW5TESTSUITE CASE XtVaCreateWidget 8" - /Xt4/XtVaCreateWidget/XtVaCreateWidget + /Xt4/XtVaCreateWidget XtAppCreateShell "VSW5TESTSUITE CASE XtAppCreateShell 7" - /Xt4/XtAppCreateShell/XtAppCreateShell + /Xt4/XtAppCreateShell XtVaAppCreateShell "VSW5TESTSUITE CASE XtVaAppCreateShell 7" - /Xt4/XtVaAppCreateShell/XtVaAppCreateShell + /Xt4/XtVaAppCreateShell XtAppInitialize "VSW5TESTSUITE CASE XtAppInitialize 29" - /Xt4/XtAppInitialize/XtAppInitialize + /Xt4/XtAppInitialize XtVaAppInitialize "VSW5TESTSUITE CASE XtVaAppInitialize 29" - /Xt4/XtVaAppInitialize/XtVaAppInitialize + /Xt4/XtVaAppInitialize XtRealizeWidget "VSW5TESTSUITE CASE XtRealizeWidget 11" - /Xt4/XtRealizeWidget/XtRealizeWidget + /Xt4/XtRealizeWidget XtIsRealized "VSW5TESTSUITE CASE XtIsRealized 3" - /Xt4/XtIsRealized/XtIsRealized + /Xt4/XtIsRealized XtCreateWindow "VSW5TESTSUITE CASE XtCreateWindow 1" - /Xt4/XtCreateWindow/XtCreateWindow + /Xt4/XtCreateWindow XtDisplay "VSW5TESTSUITE CASE XtDisplay 1" - /Xt4/XtDisplay/XtDisplay + /Xt4/XtDisplay XtParent "VSW5TESTSUITE CASE XtParent 1" - /Xt4/XtParent/XtParent + /Xt4/XtParent XtScreen "VSW5TESTSUITE CASE XtScreen 1" - /Xt4/XtScreen/XtScreen + /Xt4/XtScreen XtWindow "VSW5TESTSUITE CASE XtWindow 1" - /Xt4/XtWindow/XtWindow + /Xt4/XtWindow XtDisplayOfObject "VSW5TESTSUITE CASE XtDisplayOfObject 2" - /Xt4/XtDisplayOfObject/XtDisplayOfObject + /Xt4/XtDisplayOfObject XtScreenOfObject "VSW5TESTSUITE CASE XtScreenOfObject 2" - /Xt4/XtScreenOfObject/XtScreenOfObject + /Xt4/XtScreenOfObject XtWindowOfObject "VSW5TESTSUITE CASE XtWindowOfObject 2" - /Xt4/XtWindowOfObject/XtWindowOfObject + /Xt4/XtWindowOfObject XtName "VSW5TESTSUITE CASE XtName 1" - /Xt4/XtName/XtName + /Xt4/XtName XtUnrealizeWidget "VSW5TESTSUITE CASE XtUnrealizeWidget 4" - /Xt4/XtUnrealizeWidget/XtUnrealizeWidget + /Xt4/XtUnrealizeWidget XtDestroyWidget "VSW5TESTSUITE CASE XtDestroyWidget 3" - /Xt4/XtDestroyWidget/XtDestroyWidget + /Xt4/XtDestroyWidget #Discrete tests for Xt Chapter 5 -- cgit v1.2.3