📄 motif_i.c
字号:
ac=0; XtSetArg(al[ac],XmNtopAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac],XmNbottomAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac],XmNrightAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac],XmNleftAttachment,XmATTACH_FORM); ac++; mainForm=XmCreateForm(toplevel,"form",al,ac); XtManageChild(mainForm); CreatePixmaps(mainForm); /* create a menu bar and attach it to the form. */ ac=0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; menu_bar=XmCreateMenuBar(mainForm,"menu_bar",al,ac); XtManageChild(menu_bar); create_dialog_boxes(); create_menus(menu_bar); /*******************/ /* Message window */ /*******************/ ac=0; XtSetArg(al[ac], XmNleftOffset, 10); ac++; XtSetArg(al[ac], XmNrightOffset, 10); ac++; XtSetArg(al[ac], XmNtopOffset, 10); ac++; XtSetArg(al[ac], XmNbottomOffset, 10); ac++; XtSetArg(al[ac],XmNtopAttachment,XmATTACH_WIDGET); ac++; XtSetArg(al[ac],XmNtopWidget, menu_bar); ac++; XtSetArg(al[ac],XmNrightAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac],XmNleftAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac],XmNeditMode,XmMULTI_LINE_EDIT); ac++; XtSetArg(al[ac],XmNrows,10); ac++; XtSetArg(al[ac],XmNcolumns,10); ac++; XtSetArg(al[ac],XmNeditable, False); ac++; XtSetArg(al[ac],XmNwordWrap, True); ac++; XtSetArg(al[ac],XmNvalue, "TIMIDIY RUNNING...\n"); ac++; wpr_position+= strlen("TIMIDIY RUNNING...\n"); text=XmCreateScrolledText(mainForm,"text",al,ac); XtManageChild(text); /********************/ /* File_name label */ /********************/ ac = 0; XtSetArg(al[ac], XmNleftOffset, 20); ac++; XtSetArg(al[ac], XmNrightOffset, 10); ac++; XtSetArg(al[ac], XmNtopOffset, 20); ac++; XtSetArg(al[ac], XmNbottomOffset, 20); ac++; XtSetArg(al[ac], XmNlabelType, XmSTRING); ac++; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, text); ac++; XtSetArg(al[ac], XmNleftAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNtraversalOn, False); ac++; XtSetArg(al[ac], XmNhighlightThickness,0); ac++; XtSetArg(al[ac], XmNalignment,XmALIGNMENT_END); ac++; XtSetArg(al[ac], XmNlabelString, XmStringCreate("Playing:",char_set)); ac++; file_headlbl = XmCreateLabel(mainForm,"fileheadlbl",al,ac); XtManageChild(file_headlbl); ac = 0; XtSetArg(al[ac], XmNrightOffset, 10); ac++; XtSetArg(al[ac], XmNtopOffset, 20); ac++; XtSetArg(al[ac], XmNbottomOffset, 20); ac++; XtSetArg(al[ac], XmNlabelType, XmSTRING); ac++; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, text); ac++; XtSetArg(al[ac], XmNleftAttachment,XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget,file_headlbl); ac++; XtSetArg(al[ac], XmNtraversalOn, False); ac++; XtSetArg(al[ac], XmNhighlightThickness,0); ac++; XtSetArg(al[ac], XmNalignment,XmALIGNMENT_BEGINNING); ac++; XtSetArg(al[ac], XmNlabelString, XmStringCreate("NONE ",char_set)); ac++; file_namelbl = XmCreateLabel(mainForm,"filenameLbl",al,ac); XtManageChild(file_namelbl); /*****************************/ /* TIME LABELS IN A FORM */ /*****************************/ /* Counters frame */ ac=0; XtSetArg(al[ac], XmNtopOffset, 10); ac++; XtSetArg(al[ac], XmNbottomOffset, 10); ac++; XtSetArg(al[ac], XmNleftOffset, 10); ac++; XtSetArg(al[ac], XmNrightOffset, 10); ac++; XtSetArg(al[ac],XmNtopAttachment,XmATTACH_WIDGET); ac++; XtSetArg(al[ac],XmNtopWidget,text); ac++; XtSetArg(al[ac],XmNrightAttachment,XmATTACH_FORM); ac++; /* XtSetArg(al[ac],XmNleftAttachment,XmATTACH_WIDGET); ac++; XtSetArg(al[ac],XmNleftWidget,file_namelbl); ac++; */ XtSetArg(al[ac],XmNshadowType,XmSHADOW_OUT); ac++; countFrame=XmCreateFrame(mainForm,"countframe",al,ac); XtManageChild(countFrame); /* Counters form */ ac=0; XtSetArg(al[ac],XmNtopAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac],XmNbottomAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac],XmNrightAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac],XmNleftAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac],XmNleftAttachment,XmATTACH_FORM); ac++; countForm=XmCreateForm(countFrame,"countform",al,ac); XtManageChild(countForm); /* HEADER label */ ac = 0; XtSetArg(al[ac], XmNtopOffset, 10); ac++; XtSetArg(al[ac], XmNlabelType, XmSTRING); ac++; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNtraversalOn, False); ac++; XtSetArg(al[ac], XmNhighlightThickness,0); ac++; XtSetArg(al[ac], XmNlabelString, XmStringCreate("Time:",char_set)); ac++; count_headlbl = XmCreateLabel(countForm,"countheadLbl",al,ac); XtManageChild(count_headlbl); /* current Time label */ ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, count_headlbl); ac++; XtSetArg(al[ac], XmNleftAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNbottomAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNtraversalOn, False); ac++; XtSetArg(al[ac], XmNhighlightThickness,0); ac++; XtSetArg(al[ac], XmNalignment,XmALIGNMENT_END); ac++; XtSetArg(al[ac], XmNlabelString, XmStringCreate("00:00",char_set)); ac++; counterlbl = XmCreateLabel(countForm,"counterLbl",al,ac); XtManageChild(counterlbl); /* Total time label */ ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, count_headlbl); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, counterlbl); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNbottomAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNtraversalOn, False); ac++; XtSetArg(al[ac], XmNhighlightThickness,0); ac++; XtSetArg(al[ac], XmNalignment,XmALIGNMENT_BEGINNING); ac++; XtSetArg(al[ac], XmNlabelString, XmStringCreate("/ 00:00",char_set)); ac++; totlbl = XmCreateLabel(countForm,"TotalTimeLbl",al,ac); XtManageChild(totlbl); /******************/ /* Locator Scale */ /******************/ { /* * We need to add an xevent manager for buton pressing since * locator_scale is a critical ressource that can be modified * by shared by the handle input function */ WidgetList WList; Cardinal Card; ac = 0; XtSetArg(al[ac], XmNleftOffset, 10); ac++; XtSetArg(al[ac], XmNrightOffset, 10); ac++; XtSetArg(al[ac], XmNtopOffset, 10); ac++; XtSetArg(al[ac], XmNbottomOffset, 10); ac++; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, countForm); ac++; XtSetArg(al[ac], XmNleftAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNmaximum, 100); ac++; XtSetArg(al[ac], XmNminimum, 0); ac++; XtSetArg(al[ac], XmNshowValue, True); ac++; XtSetArg(al[ac], XmNdecimalPoints, 0); ac++; XtSetArg(al[ac], XmNorientation, XmHORIZONTAL); ac++; XtSetArg(al[ac], XmNtraversalOn, False); ac++; XtSetArg(al[ac], XmNhighlightThickness,0); ac++; locator_scale = XmCreateScale(mainForm,"locator",al,ac); XtManageChild(locator_scale); XtAddCallback(locator_scale,XmNvalueChangedCallback, (XtCallbackProc) Generic_scaleCB, (XtPointer) MOTIF_CHANGE_LOCATOR); /* Reach the scrollbar child in the scale */ ac = 0; XtSetArg(al[ac], XtNchildren, &WList); ac++; XtSetArg(al[ac], XtNnumChildren, &Card); ac++; XtGetValues(locator_scale,al,ac); if ((Card!=2)|| strcmp(XtName(WList[1]),"Scrollbar")) fprintf(stderr,"PANIC: Scale has be redefined.. may cause bugs\n"); XtAddEventHandler(WList[1],ButtonPressMask|ButtonReleaseMask, FALSE,Locator_btn,NULL); } /*****************************/ /* Control buttons in a form */ /*****************************/ /* create form for the row of control buttons */ ac = 0; XtSetArg(al[ac], XmNtopOffset, 10); ac++; XtSetArg(al[ac], XmNbottomOffset, 10); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;/* XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; */ XtSetArg(al[ac],XmNtopAttachment,XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, locator_scale); ac++; btnForm = XmCreateForm(mainForm,"btnForm", al, ac); XtManageChild(btnForm); /* Previous Button */ ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftOffset, 10); ac++; XtSetArg(al[ac], XmNshadowType, XmSHADOW_OUT); ac++; XtSetArg(al[ac], XmNshadowThickness, 2); ac++; XtSetArg(al[ac], XmNlabelType, XmPIXMAP); ac++; XtSetArg(al[ac], XmNlabelPixmap, prevPixmap); ac++; XtSetArg(al[ac], XmNhighlightThickness, 2); ac++; prevBtn = XmCreatePushButton(btnForm, "previous",al, ac); XtManageChild(prevBtn); XtAddCallback(prevBtn, XmNactivateCallback, (XtCallbackProc) GenericCB, (XtPointer) MOTIF_PREV); /* Backward Button */ ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, prevBtn); ac++; XtSetArg(al[ac], XmNleftOffset, 2); ac++; XtSetArg(al[ac], XmNshadowType, XmSHADOW_OUT); ac++; XtSetArg(al[ac], XmNshadowThickness, 2); ac++; XtSetArg(al[ac], XmNlabelType, XmPIXMAP); ac++; XtSetArg(al[ac], XmNlabelPixmap, backPixmap); ac++; XtSetArg(al[ac], XmNhighlightThickness, 2); ac++; backBtn = XmCreatePushButton(btnForm, "backward",al, ac); XtManageChild(backBtn); XtAddCallback(backBtn, XmNactivateCallback, (XtCallbackProc) GenericCB, (XtPointer) MOTIF_RWD); /* Restart Button */ ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, backBtn); ac++; XtSetArg(al[ac], XmNleftOffset, 2); ac++; XtSetArg(al[ac], XmNshadowType, XmSHADOW_OUT); ac++; XtSetArg(al[ac], XmNshadowThickness, 2); ac++; XtSetArg(al[ac], XmNlabelType, XmPIXMAP); ac++; XtSetArg(al[ac], XmNlabelPixmap, restartPixmap); ac++; XtSetArg(al[ac], XmNhighlightThickness, 2); ac++; restartBtn = XmCreatePushButton(btnForm,"restartBtn", al, ac); XtManageChild(restartBtn); XtAddCallback(restartBtn, XmNactivateCallback, (XtCallbackProc) GenericCB, (XtPointer) MOTIF_RESTART); /* Quit Button */ ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, restartBtn); ac++; XtSetArg(al[ac], XmNleftOffset, 2); ac++; XtSetArg(al[ac], XmNshadowType, XmSHADOW_OUT); ac++; XtSetArg(al[ac], XmNshadowThickness, 2); ac++; XtSetArg(al[ac], XmNlabelType, XmPIXMAP); ac++; XtSetArg(al[ac], XmNlabelPixmap, quitPixmap); ac++; XtSetArg(al[ac], XmNhighlightThickness, 2); ac++; quitBtn = XmCreatePushButton(btnForm,"quitBtn", al, ac); XtManageChild(quitBtn); XtAddCallback(quitBtn, XmNactivateCallback, (XtCallbackProc) GenericCB, (XtPointer) MOTIF_QUIT); /* Pause Button */ ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, quitBtn); ac++; XtSetArg(al[ac], XmNshadowType, XmSHADOW_OUT); ac++; XtSetArg(al[ac], XmNshadowThickness, 2); ac++; XtSetArg(al[ac], XmNlabelType, XmPIXMAP); ac++; XtSetArg(al[ac], XmNlabelPixmap, pausePixmap); ac++; XtSetArg(al[ac], XmNhighlightThickness, 2); ac++; pauseBtn = XmCreatePushButton(btnForm,"pauseBtn", al, ac); XtManageChild(pauseBtn); XtAddCallback(pauseBtn, XmNactivateCallback, (XtCallbackProc) GenericCB,(XtPointer) MOTIF_PAUSE); /* Forward Button */ ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget,pauseBtn); ac++; XtSetArg(al[ac], XmNshadowType, XmSHADOW_OUT); ac++; XtSetArg(al[ac], XmNshadowThickness, 2); ac++; XtSetArg(al[ac], XmNlabelType, XmPIXMAP); ac++; XtSetArg(al[ac], XmNlabelPixmap, fwdPixmap); ac++; XtSetArg(al[ac], XmNhighlightThickness, 2); ac++; fwdBtn = XmCreatePushButton(btnForm,"fwdBtn", al, ac); XtManageChild(fwdBtn); XtAddCallback(fwdBtn, XmNactivateCallback, (XtCallbackProc) GenericCB, (XtPointer) MOTIF_FWD); /* Next Button */ ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, fwdBtn); ac++; XtSetArg(al[ac], XmNleftOffset, 2); ac++; XtSetArg(al[ac], XmNshadowType, XmSHADOW_OUT); ac++; XtSetArg(al[ac], XmNshadowThickness, 2); ac++; XtSetArg(al[ac], XmNlabelType, XmPIXMAP); ac++; XtSetArg(al[ac], XmNlabelPixmap, nextPixmap); ac++; XtSetArg(al[ac], XmNhighlightThickness, 2); ac++; nextBtn = XmCreatePushButton(btnForm,"nextBtn", al, ac); XtManageChild(nextBtn); XtAddCallback(nextBtn, XmNactivateCallback, (XtCallbackProc) GenericCB, (XtPointer) MOTIF_NEXT); /********************/ /* Volume scale */ /********************/ ac = 0; XtSetArg(al[ac], XmNleftOffset, 10); ac++; XtSetArg(al[ac], XmNrightOffset, 10); ac++; XtSetArg(al[ac], XmNtopOffset, 10); ac++; XtSetArg(al[ac], XmNbottomOffset, 10); ac++; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, btnForm); ac++; XtSetArg(al[ac], XmNleftAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNbottomAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNmaximum, MAX_AMPLIFICATION); ac++; XtSetArg(al[ac], XmNminimum, 0); ac++; XtSetArg(al[ac], XmNshowValue, True); ac++; XtSetArg(al[ac], XmNtraversalOn, False); ac++; XtSetArg(al[ac], XmNhighlightThickness,0); ac++; XtSetArg(al[ac], XmNtitleString, XmStringCreate("VOL",char_set)); ac++; volume_scale = XmCreateScale(mainForm,"volscale",al,ac); XtManageChild(volume_scale); XtAddCallback(volume_scale, XmNvalueChangedCallback, (XtCallbackProc) Generic_scaleCB, (XtPointer) MOTIF_CHANGE_VOLUME); /********************/ /* File list */ /********************/ ac = 0; XtSetArg(al[ac], XmNtopOffset, 10); ac++; XtSetArg(al[ac], XmNbottomOffset, 10); ac++; XtSetArg(al[ac], XmNleftOffset, 10); ac++; XtSetArg(al[ac], XmNrightOffset, 10); ac++; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNtopWidget, btnForm ); ac++; XtSetArg(al[ac], XmNleftAttachment,XmATTACH_WIDGET); ac++; XtSetArg(al[ac], XmNleftWidget, volume_scale); ac++; XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNbottomAttachment,XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNselectionPolicy ,XmSINGLE_SELECT); ac++; XtSetArg(al[ac], XmNscrollBarDisplayPolicy ,XmAS_NEEDED); ac++; XtSetArg(al[ac], XmNlistSizePolicy ,XmRESIZE_IF_POSSIBLE); ac++; XtSetArg(al[ac], XmNtraversalOn, False); ac++; XtSetArg(al[ac], XmNhighlightThickness,0); ac++; file_list = XmCreateScrolledList(mainForm,"File List",al,ac); XtManageChild(file_list); XtAddCallback(file_list, XmNsingleSelectionCallback, (XtCallbackProc) File_ListCB, NULL); /* * Last details on toplevel */ ac=0; /* XtSetArg(al[ac],XmNwidth,400); ac++; XtSetArg(al[ac],XmNheight,800); ac++; */ XtSetArg(al[ac], XmNtitle, "TiMidity"); ac++; XtSetArg(al[ac], XmNiconName, "NONE"); ac++; XtSetArg(al[ac], XmNiconPixmap, timidityPixmap); ac++; XtSetValues(toplevel,al,ac); /*******************************************************/ /* Plug the pipe ..... and heeere we go */ /*******************************************************/ XtAppAddInput(context,pipe_number, (XtPointer) XtInputReadMask,handle_input,NULL); XtRealizeWidget(toplevel); XtAppMainLoop(context);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -