home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / MotifApp / ch2 / Password.C < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-03  |  2.3 KB  |  75 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //////////////////////////////////////////////////////////////////////////////
  3. //         This example code is from the book:
  4. //
  5. //           Object-Oriented Programming with C++ and OSF/Motif
  6. //         by
  7. //           Douglas Young
  8. //           Prentice Hall, 1992
  9. //           ISBN 0-13-630252-1    
  10. //
  11. //         Copyright 1991 by Prentice Hall
  12. //         All Rights Reserved
  13. //
  14. //  Permission to use, copy, modify, and distribute this software for 
  15. //  any purpose except publication and without fee is hereby granted, provided 
  16. //  that the above copyright notice appear in all copies of the software.
  17. ///////////////////////////////////////////////////////////////////////////////
  18. //////////////////////////////////////////////////////////////////////////////
  19.  
  20.  
  21. ///////////////////////////////////////////////////////
  22. // Password.C: A simple C++ component class
  23. //////////////////////////////////////////////////////// 
  24. #include "Password.h"
  25. #include <Xm/Xm.h>
  26. #include <Xm/RowColumn.h>
  27. #include <Xm/Label.h>
  28. #include <Xm/TextF.h>
  29.  
  30. // A callback function used by the Password class
  31.  
  32. void checkPasswordCallback ( Widget, XtPointer, XtPointer );
  33.  
  34. Password::Password ( Widget parent , char * name )
  35. {
  36.     // Use an XmRowColumn widget to manage a label  
  37.     // and a single line text field
  38.     
  39.     _rowColumn = XtCreateManagedWidget ( name, 
  40.                     xmRowColumnWidgetClass, 
  41.                     parent, NULL, 0 );
  42.     _label     = XtCreateManagedWidget ( "label", 
  43.                     xmLabelWidgetClass,
  44.                     _rowColumn,  NULL, 0 );
  45.     _text      = XtCreateManagedWidget ( "text", 
  46.                     xmTextFieldWidgetClass,
  47.                     _rowColumn,  NULL, 0 );
  48.     
  49.     // Register a callback function on the text widget's
  50.     // XmNactivateCallback. Pass "this" as clientData
  51.     
  52.     XtAddCallback ( _text,
  53.            XmNactivateCallback,
  54.            checkPasswordCallback,
  55.            (XtPointer) this );
  56. }
  57.  
  58. void checkPasswordCallback ( Widget, XtPointer clientData, XtPointer )
  59. {
  60.     // Cast the clientData to the expected object type
  61.     
  62.     Password *obj = (Password *) clientData;
  63.     obj->checkPassword(); // Call the corresponding member function
  64. }
  65.  
  66. void Password::checkPassword()
  67. {
  68.     // Retrieve password from text widget
  69.     
  70.     char *passwd = XmTextFieldGetString ( _text );
  71.     
  72.     // Validate password here
  73. }
  74.  
  75.