cdk_binding man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]

cdk_display(3)					   cdk_display(3)

NAME
       bindCDKObject,	  unbindCDKObject,    checkCDKObjectBind,
       cleanCDKObjectBindings - Curses Development Kit	Character
       Binding Capabilities.

SYNOPSIS
       cc [ flag ... ] file ...	 -lcdk [ library ... ]

       #include <cdk.h>

       void   bindCDKObject  (EObjectTypecdkType,  void	 *object,
       chtype key, BINDFN function, void *data);

       void unbindCDKObject (EObjectType cdkType,  void	 *object,
       chtype key);

       void   checkCDKObjectBind   (EObjectType	  cdkType,   void
       *object, chtype key);

       void  cleanCDKObjectBindings  (EObjectType  cdkType,  void
       *object);

DESCRIPTION
       Cdk has the ability to create user definable key bindings.
       This ability makes Cdk more dynamic and usable for a  wide
       variety of tasks. The following section outlines the bind
       ing functions, their use, and their purpose.

       void bindCDKObject  (EObjectType	 cdkType,  void	 *object,
       chtype key, BINDFN function, void *data);
	  This	function creates a key binding between a specific
	  Cdk widget (object) given key (key). The parameter cdk_
	  Type is of type EObjectType which is one of the follow
	  ing values.

	  EObjectType_Value   Corresponding_Widget	   Widget_Manual_Page
	  vALPHALIST	      Alphalist Widget		   cdk_alphalist (3)
	  vCALENDAR	      Calendar Widget		   cdk_calendar (3)
	  vDIALOG	      Dialog Widget		   cdk_dialog (3)
	  vENTRY	      Entry Widget		   cdk_entry (3)
	  vFSELECT	      File Selector Widget	   cdk_fselect (3)
	  vGRAPH	      Graph Widget		   cdk_graph (3)
	  vHISTOGRAM	      Histogram Widget		   cdk_histogram (3)
	  vITEMLIST	      Item List Widget		   cdk_itemlist (3)
	  vLABEL	      Label Widget		   cdk_label (3)
	  vMARQUEE	      Marquee Widget		   cdk_marquee (3)
	  vMATRIX	      Matrix Widget		   cdk_matrix (3)
	  vMENTRY	      Multiple Line Entry Widget   cdk_mentry (3)
	  vMENU		      Menu Widget		   cdk_menu (3)
	  vRADIO	      Radio List Widget		   cdk_radio (3)
	  vSCALE	      Numeric Scale Widget	   cdk_scale (3)
	  vSCROLL	      Scrolling List Widget	   cdk_scroll (3)
	  vSELECTION	      Selection List Widget	   cdk_selection (3)
	  vSLIDER	      Slider Widget		   cdk_slider (3)
	  vSWINDOW	      Scrolling Window Widget	   cdk_swindow (3)
	  vTEMPLATE	      Template Entry Widget	   cdk_template (3)
	  vVIEWER	      Viewer Widget		   cdk_viewer (3)
	     The parameter function is of type BINDFN  which  has
	     the following prototype:

	  void	function (EObjectType cdktype, void *object, void
			 *clientData, chtype key);

	     The parameter data is a void * pointer  to	 whatever
	     data  the call-back function may need. The parameter
	     key is the key hit which triggered this call-back.

	  void	 unbindCDKObject   (EObjectType	  cdkType,   void
	  *object, chtype key);
	     This  function  removes  a	 specific  binding  to an
	     object. The parameter names  are  the  same  as  the
	     description of the function bindCDKObject.

	  int	checkCDKObjectBind   (EObjectType  cdkType,  void
	  *object, chtype key);
	     This  function  returns  an  integer  value  stating
	     whether the key key has been bound to the given wid
	     get, object.

	  void cleanCDKObjectBindings (EObjectType cdkType,  void
	  *object);
	     This  function removes all user defined key bindings
	     from the given widget.

EXAMPLE
       To help demonstrate how to use the  key	bindings  I  will
       demonstrate  a simple dialog box widget with help for each
       button. The following code segment creates  a  dialog  box
       and a call-back function named dialogHelpCB.

		________________________________________

       #include "cdk.h"

       void dialogHelpCB (EObjectType cdktype, void *object, void *clientData)
       {
	  CDKDIALOG *dialog = (CDKDIALOG *)object;
	  char *mesg[5];

	  /* Check which button we are on.	    */
	  if (dialog->currentButton == 0)
	  {
	     mesg[0] = "<C></U>Help for </U>Who<!U>.";
	     mesg[1] = "<C>When this button is picked the name of the current";
	     mesg[2] = "<C>user is displayed on the screen in a pop-up window.";
	     popupLabel (dialog->screen, mesg, 3);
	  }
	  else if (dialog->currentButton == 1)
	  {
	     mesg[0] = "<C></U>Help for </U>Time<!U>.";
	     mesg[1] = "<C>When this button is picked the current time is";
	     mesg[2] = "<C>displayed on the screen in a pop-up window.";
	     popupLabel (dialog->screen, mesg, 3);
	  }
	  else if (dialog->currentButton == 2)
	  {
	     mesg[0] = "<C></U>Help for </U>Date<!U>.";
	     mesg[1] = "<C>When this button is picked the current date is";
	     mesg[2] = "<C>displayed on the screen in a pop-up window.";
	     popupLabel (dialog->screen, mesg, 3);
	  }
	  else if (dialog->currentButton == 3)
	  {
	     mesg[0] = "<C></U>Help for </U>Quit<!U>.";
	     mesg[1] = "<C>When this button is picked the dialog box is exited.";
	     popupLabel (dialog->screen, mesg, 2);
	  }
       }

       void main()
       {
	  /* Declare variables.		  */
	  CDKSCREEN   *cdkscreen;
	  CDKDIALOG   *question;
	  WINDOW *cursesWin;
	  char	      *buttons[40];
	  char	      *message[40], *info[5], *loginName;
	  char	      temp[256];
	  int	      selection;
	  int	      x;
	  time_t clck;
	  struct tm   *currentTime;

	  /* Set up CDK			  */
	  cursesWin = initscr();
	  cdkscreen = initCDKScreen (cursesWin);

	  /* Start color.		       */
	  initCDKColor();

	  /* Set up the dialog box.	       */
	  message[0] = "<C></U>Simple Command Interface";
	  message[1] = "Pick the command you wish to run.";
	  message[2] = "<C>Press </R>?<!R> for help.";
	  buttons[0] = "Who";
	  buttons[1] = "Time";
	  buttons[2] = "Date";
	  buttons[3] = "Quit";

	  /* Create the dialog box.	       */
	  question    = newCDKDialog (cdkscreen, CENTER, CENTER,
			   message, 3, buttons, 4, A_REVERSE,
			   TRUE, TRUE, FALSE);

	  /* Check if we got a null value back.	    */
	  if (question == (CDKDIALOG *)NULL)
	  {
	     destroyCDKScreen (cdkscreen);

	     /* End curses...		       */
	     endCDK();

	     /* Spit out a message.	       */
	     printf ("Oops. Can't seem to create the dialog box. Is the window too small?0);
	     exit (1);
	  }

	  /* Create the key binding.	       */
	  bindCDKObject (vDIALOG, question, '?', dialogHelpCB, NULL);

	  /* Activate the dialog box.		    */
	  selection = 0;
	  while (selection != 3)
	  {
	     /* Get the users button selection.	    */
	     selection = activateCDKDialog (question, (chtype *)NULL);

	     /* Check the results.	       */
	     if (selection == 0)
	     {
		/* Get the users login name.	    */
		info[0] = "<C>	   </U>Login Name<!U>	  ";
		loginName = getlogin();
		if (loginName == (char *)NULL)
		{
		   info[1] = "<C></R>Unknown";
		}
		else
		{
		    sprintf (temp, "<C><%s>", loginName); info[1] = strdup (temp);
		}
		popupLabel (question->screen, info, 2);
		free (info[1]);
	     }
	     else if (selection == 1)
	     {
		/* Print out the time.		    */
		time(&clck);
		currentTime = localtime(&clck);
		sprintf (temp, "<C>%d:%d:%d", currentTime->tm_hour,
				currentTime->tm_min,
				currentTime->tm_sec);
		info[0] = "<C>	 </U>Current Time<!U>	";
		info[1] = strdup (temp);
		popupLabel (question->screen, info, 2);
		free (info[1]);
	     }
	     else if (selection == 2)
	     {
		/* Print out the date.		    */
		time(&clck);
		currentTime = localtime(&clck);
		sprintf (temp, "<C>%d/%d/%d", currentTime->tm_mday,
				currentTime->tm_mon,
				currentTime->tm_year);
		info[0] = "<C>	 </U>Current Date<!U>	";
		info[1] = strdup (temp);
		popupLabel (question->screen, info, 2);
		free (info[1]);
	     }
	  }

	  /* Clean up			  */
	  destroyCDKDialog (question);
	  destroyCDKScreen (cdkscreen);
	  endCDK();
	  delwin (cursesWin);
       }
		________________________________________

SEE ALSO
       cdk(3), cdk_display(3), cdk_screen(3)

NOTES
       The  header file <cdk.h> automatically includes the header
       files  <curses.h>,  <stdlib.h>,	 <string.h>,   <ctype.h>,
       <unistd.h>,   <dirent.h>,  <time.h>,  <errno.h>,	 <pwd.h>,
       <grp.h>, <sys/stat.h>, and <sys/types.h>.  The  <curses.h>
       header file includes <stdio.h> and <unctrl.h>.

			   05 Dec 1995		   cdk_display(3)
[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net