/* Copyright (c) 1999 Alexander Yukhimets. All rights reserved. */
#define XM_NOTEBOOK 0
#include<stdio.h>
#include<signal.h>
#include<stdlib.h>
#include<Xm/Xm.h>
#include<X11/IntrinsicP.h>
#include<X11/Core.h>
#include<X11/CoreP.h>
#include<Xm/PushB.h>
#include<Xm/Label.h>
#include<Xm/List.h>
#include<Xm/Form.h>
#include<Xm/Frame.h>
#include<Xm/PushBG.h>
#if XM_NOTEBOOK
#include<Xm/Notebook.h>
#endif
#include<XmAxy/Notebook.h>
#include<XmAxy/List.h>
#include<X11/xpm.h>
#include"link.xpm"
Pixmap trans,tranm;
XtAppContext appcontext;
Widget toplevel;
String labels[4]={"^","Name","Date","Size"};
short widths[4]={4,8,8,8};
static void button_cb(Widget w,XtPointer app,XtPointer call){
CoreWidget xm,axy;
xm=(CoreWidget)XtParent(XtNameToWidget((Widget)app,"*Xm"));
axy=(CoreWidget)XtParent(XtNameToWidget((Widget)app,"*Axy"));
printf("%s: w=%d h=%d b=%d x=%d y=%d managed=%s\n",xm->core.name,
xm->core.width,xm->core.height, xm->core.border_width,xm->core.x,
xm->core.y, XtIsManaged((Widget)xm)?"yes":"no");
printf("%s: w=%d h=%d b=%d x=%d y=%d managed=%s\n",axy->core.name,
axy->core.width,axy->core.height, axy->core.border_width,axy->core.x,
axy->core.y, XtIsManaged((Widget)axy)?"yes":"no");
/*
if(XmAxyNotebookGetCurrentPage((Widget)app)==1){
XmAxyNotebookSetCurrentPage((Widget)app,2,FALSE);
} else {
XmAxyNotebookSetCurrentPage((Widget)app,1,FALSE);
}
XtVaGetValues(XtNameToWidget((Widget)app,"*Xm"),
XmNvisibleItemCount,&count,NULL);
XtVaSetValues(XtNameToWidget((Widget)app,"*Xm"),
XmNvisibleItemCount,count+1,NULL);
*/
}
static void default_cb(Widget w,XtPointer app,XtPointer call){
XmAxyListDefaultActionCallbackStruct *cbs=
(XmAxyListDefaultActionCallbackStruct*)call;
printf("Default Action on row=%d column=%d\n",cbs->row,cbs->column);
}
XmString xxx;
static void draw_cell_cb(Widget w,XtPointer app,XtPointer call){
XmAxyListDrawCellCallbackStruct* cbs=(XmAxyListDrawCellCallbackStruct*)call;
if(cbs->column==0){
cbs->type=XmPIXMAP;
cbs->pixmap=trans;
cbs->pixmask=tranm;
cbs->pixwidth=0;
cbs->pixheight=0;
cbs->pixdepth=0;
} else {
cbs->type=XmSTRING;
/*cbs->string="Hello, Worlds!";*/
cbs->is_xm_string=TRUE;
cbs->string=(String)xxx;
}
}
int main(int argc, char* argv[]){
Widget form,button,frame,axylist,xmlist;
Arg args[80];
Cardinal n;
XpmAttributes attr;
toplevel=XtAppInitialize(&appcontext,"XmAxyListTest",
NULL,0,&argc,argv,NULL,NULL,0);
XtVaSetValues(toplevel,XmNforeground,BlackPixelOfScreen(XtScreen(toplevel)),
XmNtitle,"XmAxyListTest",NULL);
attr.valuemask=XpmExactColors|XpmCloseness;
attr.exactColors=FALSE;
attr.closeness=10000;
XpmCreatePixmapFromData(XtDisplay(toplevel),
DefaultRootWindow(XtDisplay(toplevel)),
link_p,&trans,&tranm,&attr);
xxx=XmStringCreateSimple("Hello, Worlds!");
n=0;
XtSetArg(args[n],XmNverticalSpacing,10);n++;
form=XmCreateForm(toplevel,"Form",args,n);
XtManageChild(form);
n=0;
XtSetArg(args[n],XmNtopAttachment,XmATTACH_FORM);n++;
XtSetArg(args[n],XmNbottomAttachment,XmATTACH_NONE);n++;
XtSetArg(args[n],XmNleftAttachment,XmATTACH_FORM);n++;
XtSetArg(args[n],XmNrightAttachment,XmATTACH_NONE);n++;
button=XmCreatePushButton(form,"Switch",args,n);
XtManageChild(button);
n=0;
XtSetArg(args[n],XmNtopAttachment,XmATTACH_WIDGET);n++;
XtSetArg(args[n],XmNtopWidget,button);n++;
XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM);n++;
XtSetArg(args[n],XmNleftAttachment,XmATTACH_FORM);n++;
XtSetArg(args[n],XmNrightAttachment,XmATTACH_FORM);n++;
/*
XtSetArg(args[n],XmNshadowThickness,0);n++;
XtSetArg(args[n],XmNmarginWidth,0);n++;
XtSetArg(args[n],XmNmarginHeight,0);n++;
XtSetArg(args[n],XmNinnerMarginWidth,0);n++;
XtSetArg(args[n],XmNinnerMarginHeight,0);n++;
*/
#if !XM_NOTEBOOK
/*XtSetArg(args[n],XmNbackground,WhitePixelOfScreen(XtScreen(form)));n++;*/
/*XtSetArg(args[n],XmNhideTabs,TRUE);n++;*/
/*
XtSetArg(args[n],XmNtabRaise,2);n++;
XtSetArg(args[n],XmNtabSpacing,0);n++;
XtSetArg(args[n],XmNshadowThickness,2);n++;
XtSetArg(args[n],XmNhighlightThickness,1);n++;
*/
/*
XtSetArg(args[n],XmNlabelMarginHeight,5);n++;
XtSetArg(args[n],XmNlabelMarginWidth,5);n++;
XtSetArg(args[n],XmNtextMarginHeight,0);n++;
XtSetArg(args[n],XmNtextMarginWidth,0);n++;
*/
/*XtSetArg(args[n],XmNbackground,WhitePixelOfScreen(XtScreen(form)));n++;*/
/*XtSetArg(args[n],XmNbackgroundPixmap,trans);n++;*/
frame=XmAxyCreateNotebook(form,"Card",args,n);
XtManageChild(frame);
XtAddCallback(button,XmNactivateCallback,button_cb,frame);
#else
XtSetArg(args[n],XmNbackPagePlacement,XmTOP_RIGHT);n++;
XtSetArg(args[n],XmNmajorTabSpacing,0);n++;
XtSetArg(args[n],XmNorientation,XmVERTICAL);n++;
XtSetArg(args[n],XmNbindingType,XmNONE);n++;
XtSetArg(args[n],XmNbackPageNumber,1);n++;
XtSetArg(args[n],XmNbackPageSize,0);n++;
frame=XmCreateNotebook(form,"Card",args,n);
XtManageChild(frame);
n=0;
XtSetArg(args[n],XmNnotebookChildType,XmPAGE_SCROLLER);n++;
XtManageChild(XmCreateLabel(frame,"",args,n));
XtAddCallback(button,XmNactivateCallback,button_cb,frame);
#endif
/*
frame=XmCreateFrame(form,"Card",args,n);
XtManageChild(frame);
XtAddCallback(button,XmNactivateCallback,button_cb,frame);
*/
n=0;
XtManageChild(XmCreatePushButton(frame,"Bgutton",args,n));
n=0;
#if XM_NOTEBOOK
XtSetArg(args[n],XmNnotebookChildType,XmPAGE);n++;
#endif
XtSetArg(args[n],XmNshadowThickness,2);n++;
XtSetArg(args[n],XmNborderWidth,0);n++;
XtSetArg(args[n],XmNlistMarginWidth,15);n++;
XtSetArg(args[n],XmNlistMarginHeight,30);n++;
XtSetArg(args[n],XmNhighlightThickness,20);n++;
XtSetArg(args[n],XmNlistSpacing,10);n++;
XtSetArg(args[n],XmNvisibleItemCount,4);n++;
XtSetArg(args[n],XmNlistSizePolicy,XmRESIZE_IF_POSSIBLE);n++;
XtSetArg(args[n],XmNscrollBarDisplayPolicy,XmAS_NEEDED);n++;
XtSetArg(args[n],XmNselectionPolicy,XmEXTENDED_SELECT);n++;
xmlist=XmCreateScrolledList(frame,"Xm",args,n);/*frame*/
XmListAddItem(xmlist, XmStringCreateLocalized("ITEM 1 XXXXXXXXXXXX"),1);
XmListAddItem(xmlist, XmStringCreateLocalized("ITEM 2XXXXXXXXXXXXX"),2);
XmListAddItem(xmlist, XmStringCreateLocalized("ITEM 3YYYYYYYYYY"),3);
XmListAddItem(xmlist, XmStringCreateLocalized("ITEM 4"),4);
XmListAddItem(xmlist, XmStringCreateLocalized("ITEM 5"),5);
XmListAddItem(xmlist, XmStringCreateLocalized("ITEM 6DDDDDDDDDDDDD"),6);
XmListAddItem(xmlist, XmStringCreateLocalized("ITEM 7"),7);
XmListAddItem(xmlist, XmStringCreateLocalized("ITEM 8"),8);
XmListAddItem(xmlist, XmStringCreateLocalized("ITEM 9"),9);
XtManageChild(xmlist);
/*XtUnmanageChild(XtParent(xmlist));*/
#if XM_NOTEBOOK
n=0;
XtSetArg(args[n],XmNnotebookChildType,XmMAJOR_TAB);n++;
XtSetArg(args[n],XmNhighlightThickness,0);n++;
XtManageChild(XmCreatePushButton(frame,"XmP",args,n));
#endif
n=0;
#if XM_NOTEBOOK
XtSetArg(args[n],XmNnotebookChildType,XmPAGE);n++;
#endif
XtSetArg(args[n],XmNshowLabels,TRUE);n++;
XtSetArg(args[n],XmNborderWidth,20);n++;
XtSetArg(args[n],XmNshadowThickness,4);n++;
XtSetArg(args[n],XmNhighlightThickness,10);n++;
XtSetArg(args[n],XmNlistMarginWidth,15);n++;
XtSetArg(args[n],XmNlistMarginHeight,30);n++;
XtSetArg(args[n],XmNcellMarginWidth,6);n++;
XtSetArg(args[n],XmNcellMarginHeight,6);n++;
XtSetArg(args[n],XmNlabelMarginWidth,6);n++;
XtSetArg(args[n],XmNlabelMarginHeight,6);n++;
XtSetArg(args[n],XmNcolumnWidths,widths);n++;
XtSetArg(args[n],XmNcolumnLabels,labels);n++;
XtSetArg(args[n],XmNcolumnCount,4);n++;
/*XtSetArg(args[n],XmNcellBackground,WhitePixelOfScreen(XtScreen(form)));n++;*/
/*XtSetArg(args[n],XmNlabelBackground,WhitePixelOfScreen(XtScreen(form)));n++;*/
XtSetArg(args[n],XmNrowCount,5);n++;
XtSetArg(args[n],XmNrowSpacing,15);n++;
XtSetArg(args[n],XmNlistSizePolicy,XmRESIZE_IF_POSSIBLE);n++;
XtSetArg(args[n],XmNscrollBarDisplayPolicy,XmAS_NEEDED);n++;
XtSetArg(args[n],XmNselectionPolicy,XmEXTENDED_SELECT);n++;
axylist=XmAxyCreateScrolledList(frame, "Axy",args,n);
XtAddCallback(axylist,XmNdrawCellCallback,draw_cell_cb,(XtPointer)NULL);
XtAddCallback(axylist,XmNdefaultActionCallback,default_cb,(XtPointer)NULL);
XtManageChild(axylist);
#if XM_NOTEBOOK
n=0;
XtSetArg(args[n],XmNnotebookChildType,XmMAJOR_TAB);n++;
XtSetArg(args[n],XmNhighlightThickness,0);n++;
XtManageChild(XmCreatePushButton(frame,"AxyP",args,n));
#endif
#if !XM_NOTEBOOK
n=0;
XtManageChild(XmCreatePushButtonGadget(frame,"Gadget",args,n));
XmAxyNotebookSetCurrentPage(frame,3,FALSE);
#endif
XtRealizeWidget(toplevel);
XtAppMainLoop(appcontext);
return 0;
}
syntax highlighted by Code2HTML, v. 0.9.1