/* * bugmotif.c * Um primeiro programa Motif. */ #include #include /* XmLabel */ #include /* XmPushButton */ #include /* XmPanedWindow */ /* * Esta funcao tem o bug. */ void bugCB(Widget widget, XtPointer client_data, XtPointer call_data) { /* bugCB */ /* copia dados para dentro do ponteiro NULL. */ strcpy(client_data, "This is a string."); } /* bugCB */ /* * exitCB() e uma chamada (callback) para o * pushbutton widget que foi criado acima. */ void exitCB(Widget widget, XtPointer client_data, XtPointer call_data) { /* exitCB */ exit(0); } /* exitCB */ int main(int argc, char** argv) { /* main */ Widget parent; XtAppContext app_context; Widget pane, push, bug; Arg args[20]; int n; /* * inicializa o X ToolKit. */ n = 0; parent = XtAppInitialize(&app_context, "LinuxProgramming", (XrmOptionDescList) NULL, 0, &argc, argv, (String*) NULL, args, 0); /* * cria a janela com pane. */ n = 0; pane = XmCreatePanedWindow (parent, "pane", args, n); /* * cria um pushbutton como um filho da janela com pane. */ n = 0; push = XmCreatePushButton (pane, "sai", args, n); /* * Configura uma chamada (callback) para o pushbutton widget. */ XtAddCallback (push, XmNactivateCallback, (XtCallbackProc) exitCB, (XtPointer) NULL); /* * gerencia o pushbutton widget. */ XtManageChild(push); /* * cria o pushbutton para executar o bug */ n = 0; bug = XmCreatePushButton(pane, "Gera o bug", args, n); XtAddCallback(bug, XmNactivateCallback, (XtCallbackProc) bugCB, (XtPointer) NULL); XtManageChild(bug); XtManageChild(pane); XtRealizeWidget(parent); /* * processa eventos infinitamente. */ XtAppMainLoop(app_context); return 0; } /* main */ /* fim do arquivo bugmotif.c */ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Abaixo esta a descricao do resource file para voce usar em conjunto com o bugmotif.c: +++++++++++++++++++++++++++++++++++++++++++++++++++++ ! Resource file para o bugmotif.c ! ! Recursos globais ! ! Configura fonte. * fontList: lucidasans-12 ! Configura cor de fundo do programa. *Background: lightgrey ! Configura titulo da janela. *Title: Bug ! Recursos especificos do Widget ! ! Configura mensagem de saida *quit.labelString: Clique aqui para sair *bug.labelString: Gera bug ! fim do arquivo de recurso +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++