# $XConsortium: StringParse.scr /main/4 1995/07/17 20:47:16 drk $ # Motif # # Copyright (c) 1987-2012, The Open Group. All rights reserved. # # These libraries and programs are free software; you can # redistribute them and/or modify them under the terms of the GNU # Lesser General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) # any later version. # # These libraries and programs are distributed in the hope that # they will be useful, but WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public # License along with these librararies and programs; if not, write # to the Free Software Foundation, Inc., 51 Franklin Street, Fifth # Floor, Boston, MA 02110-1301 USA # # # HISTORY # @) The following panels tests the XmParseMapping and XmStringParse API. # An empty drawing area widget should be displayed in the test window. # C) Continue # #) In this first panel, the character string \"One./Two/>Tab\" is parsed # replacing the patterns \"/" with a separator and \">" with a tab. # #) XmStringParse() is called with XmNincludeStatus = XmTERMINATE for # each of the XmParseMapping entries of the XmParseTable. # The XmString should terminate after the first pattern is encountered. # Verify that the XmString displayed matches the text below: # @) One. # #) XmStringParse() is called with XmNincludeStatus = XmINSERT for # each of the XmParseMapping entries and the delimiter is a \".\". # The XmString should terminate prior to the \".\" character. # Verify that the XmString displayed matches the text below: # @) One # #) XmStringParse() is called with XmNincludeStatus = XmINSERT for # each of the XmParseMapping entries and no delimiter is specified. # The XmString should terminate after the entire character string is parsed. # Verify that the XmString displayed matches the text below, where the word # \"Tab\" is indented by one inch: # @) One. # @) Two # @) Tab # C) CompareVisual DrawArea Continue # #) Call XmStringUnparse() to retrieve the original character string # which was parsed to create an XmString. # A message will be printed to the terminal indicating whether or not # XmStringUnparse() was successful in generating the original character # string. # C) Continue # @) A parse proc is assigned to the XmParseMapping which converts the # pattern \"/\" to a string. Now when the pattern \"/\" is encountered, # the word \"String\" is inserted into the string prior to the separator. # #) When XmStringParse() is called, the XmString should terminate after # the first pattern is encountered. # Verify that the XmString displayed matches the text below: # @) One. String # C) CompareVisual DrawArea Continue # #) When XmStringParse() is called, the XmString should terminate at # the end of the character string. # Verify that the XmString displayed matches the text below: # @) One. String # @) Two String # @) Tab # C) CompareVisual DrawArea Continue # #) A new parse table is created which replaces the pattern \">\" # with an XmString direction component with direction set to # XmSTRING_DIRECTION_L_TO_R and replaces the pattern \"<\" with # the an XmString direction component with direction set to # XmSTRING_DIRECTION_R_TO_L. # XmStringTableParseStringArray() is called to parse an array # of character strings containing these patterns and returns # a table of XmStrings. # The following strings should be displayed: # @) Left To Right # @) Right To Left # @) Left To Right # @) Right To Left # #) Call XmStringTableUnparse() to retrieve the original character string # which was parsed to create the XmStrings. # A message will be printed to the terminal indicating whether or not # XmStringTableUnparse() was successful in generating the original character # string. # C) Continue # #) XmStringTableToXmString() is called to convert an array of XmStrings to # one XmString with a specified break component inserted between each # of the original XmStrings. # XmStringGetNextComponent() is then called to traverse the new XmString # to ensure each of the components is correct. # A message will be printed to the terminal indicating whether or not # XmStringTableToXmString() was successful in building the one XmString. # #) XmStringToXmStringTable() is then called to convert the one XmString # back to a table of XmStrings. Each XmString in the returned table is # compared with its corresponding XmString in the original table. # If all the XmStrings match, the function was successful. # A message will be printed to the terminal indicating whether or not # XmStringToXmStringTable() was successful or not. # C) Continue # E) Exit