Curses-Devkit
view release on metacpan or search on metacpan
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
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);
}
{
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
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
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);
}
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);
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 )