Curses-Devkit

 view release on metacpan or  search on metacpan

Cdk.xs  view on Meta::CPAN

constant(name,arg)
	char *		name
	int		arg

void
Beep()
	CODE:
	{
	   Beep();
	}

CDKSCREEN *
init()
	CODE:
	{
	   int x	= 0;
	   GCWINDOW	= initscr();
	   GCDKSCREEN 	= initCDKScreen (GCWINDOW);

	   /* Start the colors. */
	   initCDKColor();

	   RETVAL = GCDKSCREEN;
	}
	OUTPUT:
	   RETVAL

long
getColor(pair)
	int	pair
	CODE:
	{
	   RETVAL = COLOR_PAIR(pair);
	}

void
end()
	CODE:
	{
	   /* Kill the main screen. */
	   destroyCDKScreen (GCDKSCREEN);

	   /* Remove the curses window. */
	   delwin (GCWINDOW);

	   /* Shut down curses. */
	   endCDK();
	}

CDKSCREEN *
getCdkScreen()
	CODE:
	{
	   RETVAL = GCDKSCREEN;
	}
	OUTPUT:
	   RETVAL

void
getCdkScreenDim()
	PPCODE:
	{
	   XPUSHs (sv_2mortal(newSViv(GCDKSCREEN->window->_maxy)));
	   XPUSHs (sv_2mortal(newSViv(GCDKSCREEN->window->_maxx)));
	}

WINDOW *
getCdkWindow()
	CODE:
	{
	   RETVAL = GCDKSCREEN->window;
	}


void
refreshCdkScreen()
	CODE:
	{
	   refreshCDKScreen (GCDKSCREEN);
	}

void
eraseCdkScreen()
	CODE:
	{
	   eraseCDKScreen (GCDKSCREEN);
	}

void
destroyCdkScreen()
	CODE:
	{
	   destroyCDKScreen(GCDKSCREEN);
	}

void
DrawMesg(window,mesg,attrib=A_NORMAL,xpos=CENTER,ypos=CENTER,align=HORIZONTAL)
	WINDOW *	window
	char *		mesg
	chtype		attrib = sv2chtype ($arg);
	int		xpos = sv2int ($arg);
	int		ypos = sv2int ($arg);
	int		align = sv2int ($arg);
	CODE:
	{
	   int mesgLen = strlen (mesg);

	   writeChar (window, xpos, ypos, mesg, align, 0, mesgLen);
	}

chtype
getch()

void
raw()

void
noraw()

PROTOTYPES: DISABLE

Cdk.xs  view on Meta::CPAN

void
Delete(object,position)
	CDKSCROLL *	object
	int		position = sv2int ($arg);
	CODE:
	{
	   deleteCDKScrollItem (object,position);
	}

void
Bind(object,key,functionRef)
	CDKSCROLL *	object
	chtype		key = sv2chtype ($arg);
	SV *		functionRef
	CODE:
	{
	   SV *function = newSVsv (functionRef);
	   bindCDKObject (vSCROLL, object, key, PerlBindCB, function);
	}

int
PreProcess(object,functionRef)
	CDKSCROLL *	object
	SV *		functionRef
	CODE:
	{
	   SV *function = newSVsv (functionRef);
	   setCDKScrollPreProcess (object, PerlProcessCB, function);
	}

int
PostProcess(object,functionRef)
	CDKSCROLL *	object
	SV *		functionRef
	CODE:
	{
	   SV *function = newSVsv (functionRef);
	   setCDKScrollPostProcess (object, PerlProcessCB, function);
	}

void
Draw(object,Box=TRUE)
        CDKSCROLL *	object
        int		Box = sv2int ($arg);
        CODE:
        {
           drawCDKScroll (object,Box);
        }

void
Erase(object)
	CDKSCROLL *	object
	CODE:
	{
	   eraseCDKScroll(object);
	}

void
Info(object)
	CDKSCROLL *	object
	PPCODE:
	{
	   int currentItem = object->currentItem;
	   int size = object->listSize;

	   XPUSHs (sv_2mortal (newSViv(size)));
	   XPUSHs (sv_2mortal (newSViv(currentItem)));
	}

void
SetItems(object,items,numbers=FALSE)
	CDKSCROLL *	object
	SV *		items
	int		numbers = sv2int ($arg);
	CODE:
	{
	   char *Items[MAX_ITEMS];
	   int itemLength;
 
	   MAKE_CHAR_ARRAY(0,items,Items,itemLength);
	   Items[itemLength] = "";

	   setCDKScrollItems (object,Items,itemLength,numbers);
	}

void
SetHighlight(object,highlight)
	CDKSCROLL *	object
	chtype		highlight = sv2chtype ($arg);
	CODE:
	{
	   setCDKScrollHighlight (object,highlight);
	}

void
SetBox(object,box=TRUE)
	CDKSCROLL *	object
	int		box = sv2int ($arg);
	CODE:
	{
	   setCDKScrollBox (object,box);
	}

void
SetULChar(object,character=ACS_ULCORNER)
	CDKSCROLL *	object
	chtype		character = sv2chtype ($arg);
	CODE:
	{
	   setCDKScrollULChar (object,character);
	}

void
SetURChar(object,character=ACS_URCORNER)
	CDKSCROLL *	object
	chtype		character = sv2chtype ($arg);
	CODE:
	{
	   setCDKScrollURChar (object,character);
	}

Cdk.xs  view on Meta::CPAN

	{
	   CDKMATRIX * matrixWidget = (CDKMATRIX *)NULL;
	   char	*colTitles[MAX_MATRIX_COLS+1];
	   char *rowTitles[MAX_MATRIX_ROWS+1];
	   int	colWidths[MAX_MATRIX_COLS+1];
	   int	colTypes[MAX_MATRIX_COLS+1];
	   int	rows, cols, widths, dtype, x;
	   char Title[1000];

	   checkCdkInit();

	   /* Make the arrays. */
	   MAKE_CHAR_ARRAY (1,rowtitles,rowTitles,rows);
	   MAKE_CHAR_ARRAY (1,coltitles,colTitles,cols);
	   MAKE_INT_ARRAY (1,colwidths,colWidths,widths);
	   MAKE_DTYPE_ARRAY (1,coltypes,colTypes,dtype);
	   MAKE_TITLE (title,Title);

	   /* Now check them... */
	   if (cols != widths)
	   {
	      croak ("Cdk::Matrix The col title array size is not the same as the widths array size.");
	   }
	   if (cols != dtype)
	   {
	      croak ("Cdk::Matrix The col title array size is not the same as the column value array size.");
	   }
	   if (vrows > rows || vcols > cols)
	   {
	      croak ("Cdk::Matrix The virtual matrix size is larger then the physical size.");
	   }

	   /* OK, everything is ok. Lets make the matrix. */
	   matrixWidget = newCDKMatrix (GCDKSCREEN,
						xPos, yPos,
						rows, cols,
						vrows, vcols,
						Title, rowTitles, 
						colTitles,
						colWidths, colTypes,
						rowspace, colspace, filler,
						dominant,
						boxMatrix, boxCell, shadow);

	   /* Check the return type. */
	   if (matrixWidget == (CDKMATRIX *)NULL)
	   {
	      croak ("Cdk::Matrix Could not create widget. Is the window too small?\n");
	   }
	   else
	   {
	      RETVAL = matrixWidget;
	   }
	}
	OUTPUT:
	   RETVAL

void
Activate(object,...)
	CDKMATRIX *	object
	PPCODE:
	{
	   AV *cellInfo	= newAV();
	   char *info[MAX_MATRIX_ROWS][MAX_MATRIX_COLS];
	   int subSize[MAX_MATRIX_ROWS];
	   int x, y, value, arrayLen, matrixlen;
	   chtype Keys[300];

	   if (items > 1)
	   {
	      MAKE_CHTYPE_ARRAY(0,ST(1),Keys,arrayLen);

	      value = activateCDKMatrix (object, Keys);
	   }
	   else
	   {
	      value = activateCDKMatrix (object, NULL);
	   }

	   /* Check the exit status.	*/
	   if (object->exitType == vESCAPE_HIT ||
	       object->exitType == vEARLY_EXIT)
           {
	      XSRETURN_UNDEF;
           }

	   /* Take the info from the matrix and make an array out of it. */
	   for (x=1; x <= object->rows; x++)
	   {
	      AV * av	= newAV();

	      for (y=1; y <= object->cols; y++)
	      {
	         av_push (av, newSVpv (object->info[x][y], strlen (object->info[x][y])));
	      }

	      av_push (cellInfo, newRV((SV *)av));
	   }
	   
	   /* Push the values on the return stack.	*/
	   XPUSHs (sv_2mortal(newSViv(object->rows)));
	   XPUSHs (sv_2mortal(newSViv(object->cols)));
	   XPUSHs (sv_2mortal(newRV((SV*)cellInfo)));
	}

int
Inject(object,key)
	CDKMATRIX *	object
	chtype		key = sv2chtype ($arg);
	CODE:
	{
	   int selection = injectCDKMatrix (object,key);
	   if (selection == -1)
	   {
	      XSRETURN_UNDEF;
	   }
	   RETVAL = selection;
	}
	OUTPUT:
	   RETVAL

void
Bind(object,key,functionRef)
	CDKMATRIX *	object
	chtype		key = sv2chtype ($arg);
	SV *		functionRef
	CODE:
	{
	   SV *function = newSVsv (functionRef);
	   bindCDKObject (vMATRIX, object, key, PerlBindCB, function);
	}

int
PreProcess(object,functionRef)
	CDKMATRIX *	object
	SV *		functionRef
	CODE:
	{
	   SV *function = newSVsv (functionRef);
	   setCDKMatrixPreProcess (object, PerlProcessCB, function);
	}

int
PostProcess(object,functionRef)
	CDKMATRIX *	object
	SV *		functionRef
	CODE:
	{
	   SV *function = newSVsv (functionRef);
	   setCDKMatrixPostProcess (object, PerlProcessCB, function);
	}

void
GetDim(object)
	CDKMATRIX *	object
	PPCODE:
	{
	   XPUSHs (sv_2mortal(newSViv(object->rows)));
	   XPUSHs (sv_2mortal(newSViv(object->cols)));
	}

void
Draw(object,Box=TRUE)
        CDKMATRIX *	object
        int		Box = sv2int ($arg);
        CODE:
        {
           drawCDKMatrix (object,Box);
        }

void
Erase(object)
	CDKMATRIX *	object
	CODE:
	{
	   eraseCDKMatrix (object);
	}

void
Set(object,info)
	CDKMATRIX *	object
	SV *		info
	CODE:
	{
	   char *	Info[MAX_MATRIX_ROWS][MAX_MATRIX_COLS];
	   int		subSize[MAX_MATRIX_ROWS];
	   int		matrixlen;

	   MAKE_CHAR_MATRIX (1,info,Info,subSize,matrixlen);

	   setCDKMatrix (object,Info,matrixlen,subSize);
	}

void
SetCell(object,row,col,value)
	CDKMATRIX *	object
	int		row
	int		col
	char *		value
	CODE:
	{
	   setCDKMatrixCell (object,row,col,value);
	}

void
SetBoxAttribute(object,box=TRUE)
	CDKMATRIX *	object
	int		box = sv2int ($arg);
	CODE:
	{
	   setCDKMatrixBoxAttribute (object,box);
	}

void
SetULChar(object,character=ACS_ULCORNER)
	CDKMATRIX *	object

Cdk.xs  view on Meta::CPAN

	   lowerCDKObject (vMARQUEE, object);
	}

WINDOW *
GetWindow(object)
	CDKMARQUEE *	object
	CODE:
	{
	   RETVAL = object->win;
	}

MODULE	= Cdk	PACKAGE	= Cdk::Selection

CDKSELECTION *
New(title,list,choices,height,width,xPos=CENTER,yPos=CENTER,sPos=RIGHT,highlight=A_REVERSE,Box=TRUE,shadow=FALSE)
	SV *	title
	SV *	list
	SV *	choices
	int	height
	int	width
	int	xPos = sv2int ($arg);
	int	yPos = sv2int ($arg);
	int	sPos = sv2int ($arg);
	chtype	highlight = sv2chtype ($arg);
	int	Box = sv2int ($arg);
	int	shadow = sv2int ($arg);
	CODE:
	{
	   CDKSELECTION * selectionWidget = (CDKSELECTION *)NULL;
	   char *List[MAX_ITEMS], *Choices[MAX_ITEMS], Title[1000];
	   int listSize, choiceSize;

	   checkCdkInit();

	   MAKE_CHAR_ARRAY(0,list,List,listSize);
	   MAKE_CHAR_ARRAY(0,choices,Choices,choiceSize);
	   MAKE_TITLE (title,Title);

	   selectionWidget = newCDKSelection (GCDKSCREEN,xPos,yPos,sPos,
						height,width,
						Title,List,listSize,
						Choices,choiceSize,
						highlight,Box,shadow);

	   /* Check the return type. */
	   if (selectionWidget == (CDKSELECTION *)NULL)
	   {
	      croak ("Cdk::Selection Could not create widget. Is the window too small?\n");
	   }
	   else
	   {
	      RETVAL = selectionWidget;
	   }
	}
	OUTPUT:
	   RETVAL

void
Activate(object,...)
	CDKSELECTION *	object
	PPCODE:
	{
	   chtype Keys[300];
	   int arrayLen;
	   int value, x;

	   if (items > 1)
	   {
	      MAKE_CHTYPE_ARRAY(0,ST(1),Keys,arrayLen);

	      value = activateCDKSelection (object, Keys);
	   }
	   else
	   {
	      value = activateCDKSelection (object, NULL);
	   }

	   if (object->exitType == vEARLY_EXIT ||
	       object->exitType == vESCAPE_HIT)
	   {
              XSRETURN_UNDEF;
 	   }

	   /* Push the values on the return stack.	*/
	   for (x=0; x < object->listSize ; x++)
	   {
	      XPUSHs (sv_2mortal(newSViv(object->selections[x])));
 	   }
	}

int
Inject(object,key)
	CDKSELECTION *	object
	chtype		key = sv2chtype ($arg);
	CODE:
	{
	   int selection = injectCDKSelection (object,key);
	   if (selection == -1)
	   {
	      XSRETURN_UNDEF;
	   }
	   RETVAL = selection;
	}
	OUTPUT:
	   RETVAL

void
Bind(object,key,functionRef)
	CDKSELECTION *	object
	chtype		key = sv2chtype ($arg);
	SV *		functionRef
	CODE:
	{
	   SV *function = newSVsv (functionRef);
	   bindCDKObject (vSELECTION, object, key, PerlBindCB, function);
	}

int
PreProcess(object,functionRef)
	CDKSELECTION *	object
	SV *		functionRef

Cdk.xs  view on Meta::CPAN

void
SetHorizontalChar(object,character=ACS_HLINE)
	CDKSWINDOW *	object
	chtype		character = sv2chtype ($arg);
	CODE:
	{
	   setCDKSwindowHorizontalChar (object,character);
	}

void
SetBoxAttribute(object,character=ACS_HLINE)
	CDKSWINDOW *	object
	chtype		character = sv2chtype ($arg);
	CODE:
	{
	   setCDKSwindowBoxAttribute (object,character);
	}

void
SetBackgroundColor(object,color)
	CDKSWINDOW *	object
	char *		color
	CODE:
	{
	   setCDKSwindowBackgroundColor (object,color);
	}

void
Addline(object,info,insertpos)
	CDKSWINDOW *	object
	char *		info
	int		insertpos = sv2int ($arg);
	CODE:
	{
	   addCDKSwindow (object, info, insertpos);
	}

void
Trim(object,start,finish)
	CDKSWINDOW *	object
	int		start = sv2int ($arg);
	int		finish = sv2int ($arg);
	CODE:
	{
	   trimCDKSwindow (object, start, finish);
	}

int
Exec(object,command,insertPos=BOTTOM)
	CDKSWINDOW *	object
	char *		command
	int		insertPos = sv2int ($arg);
	CODE:
	{
	   RETVAL = execCDKSwindow (object, command, insertPos);
	}
	
void
Get(object)
	CDKSWINDOW *	object
	PPCODE:
	{
	   int x;
	   char *temp;

           /* Push each item onto the stack.		*/
	   for (x=0; x < object->itemCount ; x++)
	   {
	      /* We need to convert from chtype to char	*/
	      temp = chtype2Char (object->info[x]);

              /* Push it on the stack.			*/
	      XPUSHs (sv_2mortal(newSVpv(temp, strlen(temp))));
	      freeChar (temp);
	   }
	}

void
Save(object)
	CDKSWINDOW *	object
	CODE:
	{
           saveCDKSwindowInformation (object);
	}

void
Load(object)
	CDKSWINDOW *	object
	CODE:
	{
           loadCDKSwindowInformation (object);
	}

int
Dump(object,filename)
	CDKSWINDOW *	object
	char *		filename
	CODE:
	{
	   RETVAL = dumpCDKSwindow (object, filename);
	}
	OUTPUT:
	   RETVAL

void
Draw(object,Box=TRUE)
	CDKSWINDOW *	object
	int		Box = sv2int ($arg);
	CODE:
	{
	   drawCDKSwindow (object, Box);
	}

void
Erase(object)
	CDKSWINDOW *	object
	CODE:
	{
	   eraseCDKSwindow (object);
	}

Cdk.xs  view on Meta::CPAN


WINDOW *
GetWindow(object)
	CDKSLIDER *	object
	CODE:
	{
	   RETVAL = object->win;
	}

MODULE	= Cdk	PACKAGE	= Cdk::Alphalist
CDKALPHALIST *
New(title,label,list,height,width,xPos,yPos,highlight,filler,box,shadow)
	SV *	title
	char *	label
	SV *	list
	int	height
	int	width
	chtype	highlight = sv2chtype ($arg);
	chtype	filler = sv2chtype ($arg);
	int	xPos = sv2int ($arg);
	int	yPos = sv2int ($arg);
	int	box = sv2int ($arg);
	int	shadow = sv2int ($arg);
	CODE:
	{
	   CDKALPHALIST * alphalistWidget = (CDKALPHALIST *)NULL;
	   char *List[MAX_ITEMS];
	   char Title[1000];
	   int listSize;

	   checkCdkInit();

	   MAKE_CHAR_ARRAY(0,list,List,listSize);
           List[listSize] = "";

	   MAKE_TITLE(title,Title);

	   alphalistWidget = newCDKAlphalist (GCDKSCREEN,xPos,yPos,
						height,width,
						Title,label,
						List,listSize,
						filler,highlight,
						box,shadow);

	   /* Check the return type. */
	   if (alphalistWidget == (CDKALPHALIST *)NULL)
	   {
	      croak ("Cdk::Alphalist Could not create widget. Is the window too small?\n");
	   }
	   else
	   {
	      RETVAL = alphalistWidget;
	   }
	}
	OUTPUT:
	   RETVAL

void
Activate(object,...)
	CDKALPHALIST *	object
	PPCODE:
	{
	   SV *sv = (SV *)&sv_undef;
	   chtype Keys[300];
	   int arrayLen;
	   char *value;

	   if (items > 1)
	   {
	      MAKE_CHTYPE_ARRAY(0,ST(1),Keys,arrayLen);

	      value = activateCDKAlphalist (object, Keys);
	   }
	   else
	   {
	      value = activateCDKAlphalist (object, NULL);
	   }

	   if (object->exitType == vNORMAL)
	   {
	      sv = newSVpv (value, strlen (value));
 	   }
	   XPUSHs (sv);
	}

char *
Inject(object,key)
	CDKALPHALIST *	object
	chtype		key = sv2chtype ($arg);
	CODE:
	{
	   char *value = injectCDKAlphalist (object,key);
	   if (object->exitType == vESCAPE_HIT ||
	       object->exitType == vEARLY_EXIT)
	   {
	      XSRETURN_UNDEF;
	   }
	   RETVAL = value;
	}
	OUTPUT:
	   RETVAL

void
SetContents(object,list)
	CDKALPHALIST*	object
	SV *		list
	CODE:
	{
	   char *List[MAX_ITEMS];
	   int listSize;

	   MAKE_CHAR_ARRAY(0,list,List,listSize);
           List[listSize] = "";

	   setCDKAlphalistContents (object, List, listSize);
	}

void
SetFillerChar(object,fille)
	CDKALPHALIST*	object
	chtype  filler = sv2chtype ($arg);

Cdk.xs  view on Meta::CPAN

	CDKALPHALIST *	object
	CODE:
	{
	   lowerCDKObject (vALPHALIST, object);
	}

WINDOW *
GetWindow(object)
	CDKALPHALIST *	object
	CODE:
	{
	   RETVAL = object->win;
	}

MODULE	= Cdk	PACKAGE	= Cdk::Calendar

CDKCALENDAR *
New(title,day,month,year,dayAttrib,monthAttrib,yearAttrib,highlight,xPos=CENTER,yPos=CENTER,Box=TRUE,shadow=FALSE)
	SV *	title
	int	day
	int	month
	int	year
	chtype	dayAttrib = sv2chtype ($arg);
	chtype	monthAttrib = sv2chtype ($arg);
	chtype	yearAttrib = sv2chtype ($arg);
	chtype	highlight = sv2chtype ($arg);
	int	xPos = sv2int ($arg);
	int	yPos = sv2int ($arg);
	int	Box = sv2int ($arg);
	int	shadow = sv2int ($arg);
	CODE:
	{
	   CDKCALENDAR * calendarWidget = (CDKCALENDAR *)NULL;
	   char Title[1000];

	   checkCdkInit();

	   MAKE_TITLE (title,Title);

	   calendarWidget = newCDKCalendar (GCDKSCREEN,xPos,yPos,Title,
						day,month,year,
						dayAttrib,monthAttrib,yearAttrib,
						highlight,Box,shadow);

	   /* Check the return type. */
	   if (calendarWidget == (CDKCALENDAR *)NULL)
	   {
	      croak ("Cdk::Calendar Could not create widget. Is the window too small?\n");
	   }
	   else
	   {
	      RETVAL = calendarWidget;
	   }
	}
	OUTPUT:
	   RETVAL

void
Activate(object,...)
	CDKCALENDAR *	object
	PPCODE:
	{
	   chtype Keys[300];
	   int arrayLen;
	   
	   if (items > 1)
	   {
	      MAKE_CHTYPE_ARRAY(0,ST(1),Keys,arrayLen);
	      activateCDKCalendar (object, Keys);
	   }
	   else
	   {
	      activateCDKCalendar (object, NULL);
	   }

	   if (object->exitType == vEARLY_EXIT ||
	       object->exitType == vESCAPE_HIT)
	   {
              XSRETURN_UNDEF;
 	   }

	   XPUSHs (sv_2mortal(newSViv(object->day)));
	   XPUSHs (sv_2mortal(newSViv(object->month)));
	   XPUSHs (sv_2mortal(newSViv(object->year)));
	}

void
Inject(object,key)
	CDKCALENDAR *	object
	chtype		key = sv2chtype ($arg);
	PPCODE:
	{
	   int value = injectCDKCalendar (object,key);
           if (object->exitType == vESCAPE_HIT ||
	       object->exitType == vEARLY_EXIT)
           {
	      XSRETURN_UNDEF;
           }

	   XPUSHs (sv_2mortal(newSViv(object->day)));
	   XPUSHs (sv_2mortal(newSViv(object->month)));
	   XPUSHs (sv_2mortal(newSViv(object->year)));
	}

void
SetDate(object,day,month,year)
	CDKCALENDAR *	object
	int		day
	int		month
	int		year
	CODE:
	{
	   setCDKCalendarDate (object,day,month,year);
	}

void
GetDate(object)
	CDKCALENDAR *	object
	PPCODE:
	{
	   XPUSHs (sv_2mortal(newSViv(object->day)));
	   XPUSHs (sv_2mortal(newSViv(object->month)));
	   XPUSHs (sv_2mortal(newSViv(object->year)));
	}

void
SetMarker(object,day,month,year,marker)
	CDKCALENDAR *	object
	int		day
	int		month
	int		year
	chtype		marker = sv2chtype ($arg);
	CODE:
	{
	   setCDKCalendarMarker (object,day,month,year,marker);
	}

void
RemoveMarker(object,day,month,year)
	CDKCALENDAR *	object
	int		day
	int		month
	int		year
	CODE:
	{
	   removeCDKCalendarMarker (object,day,month,year);
	}

void
SetDayAttribute(object,attribute)
	CDKCALENDAR *	object
	chtype		attribute = sv2chtype ($arg);
	CODE:
	{
	   setCDKCalendarDayAttribute (object, attribute);
	}

void
Bind(object,key,functionRef)
	CDKCALENDAR *	object
	chtype		key = sv2chtype ($arg);
	SV *		functionRef
	CODE:
	{
	   SV *function = newSVsv (functionRef);
	   bindCDKObject (vCALENDAR, object, key, PerlBindCB, function);
	}

int
PreProcess(object,functionRef)
	CDKCALENDAR *	object
	SV *		functionRef
	CODE:
	{
	   SV *function = newSVsv (functionRef);
	   setCDKCalendarPreProcess (object, PerlProcessCB, function);
	}

int



( run in 0.524 second using v1.01-cache-2.11-cpan-71847e10f99 )