*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> Vk/VkNameList (3)              
Title
Content
Arch
Section
 

Contents


VkNameList(3x)							VkNameList(3x)


NAME    [Toc]    [Back]

     VkNameList	- A class that supports	and manipulates	lists of strings

HEADER FILE    [Toc]    [Back]

     #include <Vk/VkNameList.h>

PUBLIC PROTOCOL	SUMMARY
   Constructor/Destructor
	   VkNameList(void);

	   VkNameList(const VkNameList&	givenList);

	   VkNameList(char* name);

	   void	~VkNameList(void);



   Adding and Removing Items    [Toc]    [Back]
	   void	add(char* name);

	   void	add(const VkNameList& givenList);

	   void	getIndex(const char* name);

	   void	remove(char* name);

	   void	remove(int index, int count=1);

	   VkNameList& operator=(const VkNameList& givenList);



   Manipulating	The List
	   void	sort(void);

	   void	reverse(void);

	   void	removeDuplicates(void);



   Access Functions    [Toc]    [Back]
	   int size(void);

	   int exists(char* name);

	   char* operator[](int	index);

	   VkNameList operator[](char* subString);

	   int operator==(const	VkNameList& givenList);



									Page 1






VkNameList(3x)							VkNameList(3x)



	   char* mostCommonString(void);

	   VkNameList* completeName(char* name,
				    char&* completedName,
				    int& nMatching);

	   char** operator char	**(void);

	   XmStringTable operator unsigned char	**(void);

	   char*  getString(int	index);

	   char*  getSubStrings(char *subString);

	   char** getStringTable();

	   XmStringTable getXmStringTable();

	   static void freeXmStringTable (XmStringTable);


CLASS DESCRIPTION    [Toc]    [Back]

	  VkNameList provides a	convenient way to maintain a list of character
	  strings. Strings can be added	or removed individually, the list can
	  be sorted or reversed, duplications can be removed, the best
	  completion of	a substring can	be found, the most common occurrence
	  can be computed, and so on. The list can also	be automatically
	  converted to a XmStringTable,	making this a useful class for use
	  with Motif widgets that require a list of compound strings.

	  Some of the VkNameList operators allocate memory that	must later be
	  freed	by the caller. This can	be counter-intuitive, and a source of
	  memory leaks.	 To avoid that,	alternate conventional functions are
	  also provided.  The conventional functions make it more clear	that
	  there	is something to	be freed.  In one case (getSubStrings()), the
	  conventional function	is also	considerably more efficient.

	  The operators	to be careful of are:  operator[](int) (prefer
	  getString(int)); operator[](char*) (prefer getSubStrings(char*));
	  operator char**() (prefer getStringTable()); operator
	  XmStringTable() (prefer getXmStringTable());

FUNCTION DESCRIPTIONS    [Toc]    [Back]

   VkNameList()
	   VkNameList(void);

	   VkNameList(char* name);

	   VkNameList(const VkNameList&	givenList);




									Page 2






VkNameList(3x)							VkNameList(3x)



	  Initialize a VkNameList object. The first form initializes an	empty
	  list,	while the second allows	allows an initial member of the	list
	  to be	specified. The copy constructor	produces a clone of an
	  existing VkNameList object.


   ~VkNameList()
	   void	~VkNameList(void);


	  Free all memory allocated by a VkNameList object.


   add()
	   void	add(char *item);

	   void	add(const VkNameList& list);


	  Add an item or a VkNameList to the list.


   getIndex()
	   int getIndex(const char *item) const;


	  Gets the index of the	first occurrence of the	given item from	the
	  list.	 If the	item does not exist, the index returned	is -1.


   remove()
	   void	remove(char *item);


	  Remove the first occurrence, if any, of the given item from the
	  list.


   remove()
	   void	remove(int index, count=1);


	  Remove the items index through index+count-1 from the	list.  Count
	  items, beginning with	a named	item, can be removed with the idiom
	  remove(getIndex(item),count);


   sort()
	   void	sort(void);






									Page 3






VkNameList(3x)							VkNameList(3x)



	  Sort the items on the	list alphanumerically.


   reverse()
	   void	reverse(void);


	  Reverse the order of the items on the	list.


   removeDuplicates()
	   void	removeDuplicates(void);


	  Remove all exact duplicates from the list.


   size()
	   int size(void);


	  Returns the number of	elements in the	list.


   exists()
	   int exists(char *item);


	  Returns non-zero if the specified string is a	member of the list.



   operator=()
	   VkNameList& operator=(const VkNameList&);


	  Assign the members of	one list to another.  Note that	this frees any
	  strings that were in the old object.	Any references to them,	such
	  as those returned by a previous call to operator char	**(), now
	  point	to free'd memory.


   operator[]()
	   char* operator[](int	index);


	  Retrieve a copy of an	item from the list by index.  The returned
	  string must be freed by the caller.

	  For clarity in the application code, getString(int index) is
	  preferred.




									Page 4






VkNameList(3x)							VkNameList(3x)



   getString()
	   char* getString(int index);

	       Retrieve	a copy of an item from the list	by index.
	       The returned string must	be freed by the	caller.



   operator[]()
	   VkNameList operator[](char* substring);


	  Return a list	of items that match the	given substring.  The returned
	  object must be delete'd by the caller.

	  Both for clarity in the application code, and	for efficiency,
	  getSubStrings(char *)	is preferred.


   getSubStrings()
	   VkNameList* getSubStrings(char* substring);


	  Return a pointer to a	list of	items that match the given substring.
	  The returned VkNameList must be delete'd by the caller.


   operator==()
	   int operator==(const	VkNameList&);


	  Text for equivalence of two VkNameList objects. The lists must have
	  identical contents in	the same order for the test to return success.


   mostCommonString()
	   char* mostCommonString(void);


	  Return a copy	of the most common string in a list.  The returned
	  string must be freed by the caller.


   completeName()
	   VkNameList* completeName(char  *name,
				    char &*completed name,
				    int&   numMatching);


	  Given	a string, this function	returns	a VkNameList object containing
	  all strings in the original list that	could be completions of	the
	  given	string.	Upon returning,	the completedName argument contains



									Page 5






VkNameList(3x)							VkNameList(3x)



	  the matched substring	common to all members of the returned list.
	  Finally, the numMatching reports the number of matched elements.


   operator()
	   char** operator char	**(void);


	  This operator	returns	a pointer to the members of a VkNameList
	  object as as an array	of strings.  The strings in the	returned array
	  MUST NOT be freed by the caller.  The	array itself must be freed by
	  the caller.

	  For clarity in the application code, getStringTable()	is preferred.


   getStringTable()
	   char** getStringTable(void);


	  This operator	returns	a pointer to the members of a VkNameList
	  object as as an array	of strings.  The strings in the	returned array
	  MUST NOT be freed by the caller.  The	array itself must be freed by
	  the caller.


   operator()
	   XmStringTable operator unsigned char	**(void);


	  This operator	provides access	to the members of a VkNameList object
	  as as	an array of compound strings.  The returned XmStringTable must
	  be freed by the caller.  (See	freeXmStringTable).

	  For clarity in the application code, getXmStringTable() is
	  preferred.


   getXmStringTable()
	   XmStringTable getXmStringTable(void);


	  This operator	provides access	to the members of a VkNameList object
	  as as	an array of compound strings.  The returned XmStringTable must
	  be freed by the caller.  (See	freeXmStringTable).


   freeXmStringTable
	   static void freeXmStringTable (XmStringTable)






									Page 6






VkNameList(3x)							VkNameList(3x)



	  This function	frees the memory returned by XmStringTable operator
	  (), or by getXmStringTable().

EXAMPLES    [Toc]    [Back]

     The following example uses	a VkNameList to	construct a list
     incrementally, and	display	the resulting list in reverse sorted order in
     a Motif XmList widget.


	   #include <Vk/VkApp.h>
	   #include <Vk/VkSimpleWindow.h>
	   #include <Xm/List.h>
	   #include <Vk/VkNameList.h>

	   // Define a top-level window	class

	   class MyWindow: public VkSimpleWindow {

	    protected:

	      Widget _list;    // Hang on to widget as a data member

	    public:

	      MyWindow ( const char *name );
	      ~MyWindow();
	      virtual const char* className();	// Identify this class
	   };

	   // The MyWindow constructor provides	a place	in which
	   // to create	a widget tree to be installed as a
	   // "view" in	the window.

	   MyWindow::MyWindow (	const char *name ) :
			    VkSimpleWindow ( name )
	   {
	      _list =  XmCreateList ( mainWindowWidget(),
				      "list", NULL, 0 );

	      // Create	a name list object

	      VkNameList *items	= new VkNameList();

	      // Add some items

	      items->add("One");
	      items->add("Two");
	      items->add("Three");
	      items->add("Four");
	      items->add("One");

	      items->removeDuplicates();  // Get rid of	duplications



									Page 7






VkNameList(3x)							VkNameList(3x)



	      items->sort();		  // sort the list
	      items->reverse();		  // Now reverse it

	      // Display the items in the list widget

	      XtVaSetValues(_list,
			    XmNitems, (XmStringTable) (*items),
			    XmNitemCount, items->size(),
			    NULL);

	      addView(_list);
	   }

	   const char *	MyWindow::className()
	   {
	      return "MyWindow";
	   }

	   MyWindow::~MyWindow()
	   {
	      // Empty
	   }

	   // Main driver. Just	instantiate a VkApp and	a
	   // top-level	window,	"show" the window and then
	   // "run" the	application.

	   void	main ( int argc, char **argv )
	   {
	      VkApp	*app = new VkApp("Hello", &argc, argv);
	      MyWindow	*win = new MyWindow("hello");

	      win->show();
	      app->run();
	   }


KNOWN CLASSES THAT USE THIS CLASS    [Toc]    [Back]

     VkCompletionField

SEE ALSO    [Toc]    [Back]

      
      
     VkCompletionField
     ViewKit Programmer's Guide
     The X Window System, DEC Press, Bob Sheifler and Jim Gettys
     The X Window System Toolkit, DEC Press, Paul Asente and Ralph Swick
     The OSF/Motif Programmers Reference, Prentice Hall, OSF


									PPPPaaaaggggeeee 8888
[ Back ]
 Similar pages
Name OS Title
dcecp_attrlist HP-UX A dcecp task object that manipulates attribute lists
VkPrefItem IRIX Abstract class that supports preference items
VkGenericDialog IRIX An abstract class that supports custom dialog managers
VkGangedGroup IRIX Utility class that supports ganged scrollbars and scales
VkDoubleBuffer IRIX Abstract class supports classes that draw doublebuffered graphics
VkCallbackObject IRIX An abstract class that supports classes that use C++ member function callbacks
VkDialogManager IRIX An abstract manager class that caches and supports Motif dialogs
VkModel IRIX An abstract class that supports Model-View-Controller style applications
dmParamsFlatten IRIX convert digital media parameter lists to and from byte strings
tar Tru64 Manipulates tape archives
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service