list_17_29_a.c

来自「This source code has been tested under O」· C语言 代码 · 共 76 行

C
76
字号
/*************************************************************************                                                                    ****  listing_17_29_A.c                                                 ****                                                                    ****  Selection example, advertiser. This program acquires ownership    ****  of the selection "MyOwnSelection" when its button is pushed. It   ****  also responds to client message events with a data type of        ****  "WINDOW" (XA_WINDOW), by displaying the passed window ID.         ****                                                                    *************************************************************************/#include <Xm/PushB.h>#include <X11/Xatom.h>void	ButtonCB();			/* FORWARD Definitions	      */void	ClientEvt();Widget	appshell,	the_btn;Atom	a_sel_name;void main( argc, argv )    int     argc;    char    *argv[];{    appshell = XtInitialize( argv[0], "Listing_17_29", NULL, 0, &argc, argv );    a_sel_name = XmInternAtom( XtDisplay(appshell),                                "_KDG_PRIVATE_SELECTION", FALSE );    the_btn = XmCreatePushButton( appshell, "TheBtn", NULL, 0 );    XtManageChild( the_btn );    XtAddCallback( the_btn, XmNactivateCallback, ButtonCB, NULL );    XtAddEventHandler( the_btn, 0, TRUE, ClientEvt, NULL );    XtRealizeWidget( appshell );    XtMainLoop();}void ButtonCB( w, client_data, call_data )    Widget		w;    caddr_t		client_data;    XmAnyCallbackStruct	*call_data;{    XSetSelectionOwner( XtDisplay(w), a_sel_name, XtWindow(w),                         call_data->event->xbutton.time );}void ClientEvt( w, client_data, event )    Widget		w;    caddr_t		client_data;    XClientMessageEvent	*event;{    char		lcl_str[32];    XmString		xms;    Arg			the_arg;    if ((event->type != ClientMessage) || (event->message_type != XA_WINDOW))        return;    sprintf( lcl_str, "%d", event->data.l[0] );    xms = XmStringCreate( lcl_str, XmSTRING_DEFAULT_CHARSET );    XtSetArg( the_arg, XmNlabelString, xms );    XtSetValues( w, &the_arg, 1 );    XmStringFree( xms );}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?