Exemplo n.º 1
0
Widget CreateScrolledText ( Widget parent, char name[] )
/************************************************************************
 * CreateScrolledText							*
 *									*
 * Widget  CreateScrolledText( parent, name )				*
 *									*
 * Input parameters:							*
 *	parent		Widget						*
 *	name[]		char						*
 *									*
 * Output parameters:							*
 *	CreateScrolledText	Widget					*
 **									*
 ************************************************************************/
{

	Widget	text_widget;
	Arg	args[10];
	int	n;

/*---------------------------------------------------------------------*/

	n = 0;
	XtSetArg( args[n], XmNrows , 24 ); n++;
	XtSetArg( args[n], XmNcolumns, 80 ); n++;
	XtSetArg( args[n], XmNscrollHorizontal , True ); n++;
	XtSetArg( args[n], XmNscrollVertical , True ); n++;
	XtSetArg( args[n], XmNeditable , False ); n++;
	XtSetArg( args[n], XmNeditMode , XmMULTI_LINE_EDIT ); n++;

	text_widget = XmCreateScrolledText( parent, name, args, n);
	XtManageChild( text_widget );
	return( text_widget );

}
Exemplo n.º 2
0
Widget make_text_widget(char *name, Widget parent, Arg *args, int n)
{
  /* white background when active, emacs translations */
  /* used only for comment widget in file data box (snd-xfile.c), but needs to be in this file to pick up actions etc */
  Widget df;
  if (!actions_loaded) 
    {
      XtAppAddActions(MAIN_APP(ss), acts, NUM_ACTS); 
      actions_loaded = true;
    }
  XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
  /* XmNblinkRate 0 turns off the cursor blink */
  XtSetArg(args[n], XmNcursorPositionVisible, false); n++;
  XtSetArg(args[n], XmNhighlightThickness, 1); n++;
  df = XmCreateScrolledText(parent, name, args, n);
  XtManageChild(df);
  XtAddCallback(df, XmNfocusCallback, textfield_focus_callback, NULL);
  XtAddCallback(df, XmNlosingFocusCallback, textfield_unfocus_callback, NULL);
  XtAddEventHandler(df, EnterWindowMask, false, mouse_enter_text_callback, NULL);
  XtAddEventHandler(df, LeaveWindowMask, false, mouse_leave_text_callback, NULL);
  if (!transTable3) 
    transTable3 = XtParseTranslationTable(TextTrans3);
  XtOverrideTranslations(df, transTable3);
  return(df);
}
Exemplo n.º 3
0
static void make_command_widget(int height)
{
  if (!listener_text)
    {
      Arg args[32];
      Widget wv, wh;
      int n;

      if (!actions_loaded) {XtAppAddActions(MAIN_APP(ss), acts, NUM_ACTS); actions_loaded = true;}

      n = attach_all_sides(args, 0);
      XtSetArg(args[n], XmNheight, height); n++;
      if ((sound_style(ss) == SOUNDS_IN_NOTEBOOK) || (sound_style(ss) == SOUNDS_HORIZONTAL))
	listener_pane = XtCreateManagedWidget("frm", xmFormWidgetClass, SOUND_PANE_BOX(ss), args, n);
      else listener_pane = XtCreateManagedWidget("frm", xmFormWidgetClass, SOUND_PANE(ss), args, n);
      /* this widget is not redundant at least in Metroworks Motif */

      n = 0;
      XtSetArg(args[n], XmNbackground, ss->sgx->listener_color); n++;
      XtSetArg(args[n], XmNforeground, ss->sgx->listener_text_color); n++;
      if (ss->sgx->listener_fontlist) {XtSetArg(args[n], XM_FONT_RESOURCE, ss->sgx->listener_fontlist); n++;}
      n = attach_all_sides(args, n);
      XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
      XtSetArg(args[n], XmNskipAdjust, true); n++;
      XtSetArg(args[n], XmNvalue, listener_prompt(ss)); n++;
      XtSetArg(args[n], XmNpendingDelete, false); n++; /* don't cut selection upon paste */
      XtSetArg(args[n], XmNpositionIndex, XmLAST_POSITION); n++;
      XtSetArg(args[n], XmNhighlightThickness, 1); n++;
      listener_text = XmCreateScrolledText(listener_pane, "lisp-listener", args, n);
      ss->sgx->listener_pane = listener_text;

      XtVaSetValues(MAIN_SHELL(ss), XmNallowShellResize, false, NULL);

      XtManageChild(listener_text);
      XmTextSetCursorPosition(listener_text, 1);
      if (!transTable4) 
	transTable4 = XtParseTranslationTable(TextTrans4);
      XtOverrideTranslations(listener_text, transTable4);
      printout_end = 0;
      XtAddCallback(listener_text, XmNactivateCallback, command_return_callback, NULL);
      XtAddCallback(listener_text, XmNmodifyVerifyCallback, command_modify_callback, NULL);
      XtAddCallback(listener_text, XmNmotionVerifyCallback, command_motion_callback, NULL);

      lisp_window = XtParent(listener_text);
      XtAddEventHandler(lisp_window, EnterWindowMask, false, listener_focus_callback, NULL);
      XtAddEventHandler(lisp_window, LeaveWindowMask, false, listener_unfocus_callback, NULL);
      
      XmChangeColor(lisp_window, ss->sgx->basic_color);
      XtVaGetValues(lisp_window, XmNverticalScrollBar, &wv, XmNhorizontalScrollBar, &wh, NULL);
      XmChangeColor(wv, ss->sgx->basic_color);
      XmChangeColor(wh, ss->sgx->basic_color);
      map_over_children(SOUND_PANE(ss), color_sashes);

      if (auto_resize(ss))
	XtVaSetValues(MAIN_SHELL(ss), XmNallowShellResize, true, NULL);
    }
}
Exemplo n.º 4
0
	int main(int argc, char *argv[])
	{
		int i, n;
		Arg args[10];
		XtAppContext app;
		Widget toplevel, rowcol, sep, button;
		XmString str_months[12];

		setlocale(LC_ALL, "");

		//建立顶级窗口
		toplevel = XtVaAppInitialize(&app, "Text", NULL, 0,
			&argc, argv, NULL, NULL);

		//建立rowcolumn 布局
		n = 0;
		XtSetArg(args[n], XmNpacking, XmPACK_TIGHT);   n++;
		rowcol = XmCreateRowColumn(toplevel, "rowcol", args, n);
		XtManageChild(rowcol);

		//建立输入条
		n = 0;
		XtSetArg(args[n], XmNvalue, "输入条");	n++;
		textf = XmCreateTextField(rowcol, "textf", args, n);
		XtManageChild(textf);
		//建立回调
		XtAddCallback(textf, XmNactivateCallback, 
			(XtCallbackProc)checkit, NULL);

		//建立输入区
		n = 0;
		XtSetArg(args[n], XmNrows, 10);				n++;
		XtSetArg(args[n], XmNcolumns, 40);			n++;
		XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT);	n++;
		XtSetArg(args[n], XmNvalue, "输入区域\n请测试");	n++;
		text = XmCreateScrolledText(rowcol, "text", args, n);
		//text = XmCreateText(rowcol, "text", args, n);
		XtManageChild(text);
		
		//建立分隔符
		sep = XmCreateSeparator(rowcol, "separator", NULL, 0);
		XtManageChild(sep);

		//建立一个普通按钮
		button = XmCreatePushButton(rowcol, 
			"打印输入条和文本区内容", NULL, 0);
		XtManageChild(button);
		XtAddCallback(button, XmNactivateCallback,
			(XtCallbackProc)checkit, NULL);

		//显示窗口
		XtRealizeWidget(toplevel);

		//进入事件循环
		XtAppMainLoop(app);

	}
Exemplo n.º 5
0
MainWindow::MainWindow()
    : QtMotifWidget("mainwindow", xmMainWindowWidgetClass, 0)
{
    Widget menubar = XmCreateMenuBar( motifWidget(), const_cast<char*>("menubar"), NULL, 0 );
    Widget filemenu = XmCreatePulldownMenu( menubar, const_cast<char*>("filemenu"), NULL, 0 );
    Widget item;

    item = XtVaCreateManagedWidget( "Motif Dialog...",
                                    xmPushButtonGadgetClass, filemenu,
                                    XmNmnemonic, 'C',
                                    NULL );
    XtAddCallback( item, XmNactivateCallback, motifDialogCallback, this );

    item = XtVaCreateManagedWidget( "Qt Dialog...",
                                    xmPushButtonGadgetClass, filemenu,
                                    XmNmnemonic, 'Q',
                                    NULL );
    XtAddCallback( item, XmNactivateCallback, qtDialogCallback, this );

    item = XtVaCreateManagedWidget( "sep",
                                    xmSeparatorGadgetClass, filemenu,
                                    NULL );

    item = XtVaCreateManagedWidget( "Exit",
                                    xmPushButtonGadgetClass, filemenu,
                                    XmNmnemonic, 'x',
                                    NULL );
    XtAddCallback( item, XmNactivateCallback, quitCallback, this );

    XmString str = XmStringCreateLocalized( const_cast<char*>("File") );
    item = XtVaCreateManagedWidget( "File",
                                    xmCascadeButtonWidgetClass, menubar,
                                    XmNlabelString, str,
                                    XmNmnemonic, 'F',
                                    XmNsubMenuId, filemenu,
                                    NULL );
    XmStringFree( str );

    Arg args[2];
    XtSetArg( args[0], XmNeditMode, XmMULTI_LINE_EDIT );
    Widget texteditor =
        XmCreateScrolledText( motifWidget(), const_cast<char*>("texteditor"),
                              args, 1 );

    XtManageChild( menubar );
    XtManageChild( texteditor );

    // pick a nice default size
    XtVaSetValues( motifWidget(),
                   XmNwidth, 400,
                   XmNheight, 300,
                   NULL );

    setWindowTitle(tr("QtMotif Dialog Example"));

}
Exemplo n.º 6
0
	int main(int argc, char *argv[])
	{
		int i, n;
		Arg args[10];
		XtAppContext app;
		Widget toplevel, rowcol, textf, text;
		XmString str_months[12];

		setlocale(LC_ALL, "");

		//建立顶级窗口
		toplevel = XtVaAppInitialize(&app, "Edit", NULL, 0,
			&argc, argv, NULL, NULL);

		//建立rowcolumn 布局
		n = 0;
		XtSetArg(args[n], XmNpacking, XmPACK_TIGHT);   n++;
		rowcol = XmCreateRowColumn(toplevel, "rowcol", args, n);
		XtManageChild(rowcol);

		//建立输入条
		n = 0;
		XtSetArg(args[n], XmNvalue, "输入条");	n++;
		textf = XmCreateTextField(rowcol, "textf", args, n);
		XtManageChild(textf);

		//建立文本区
		n = 0;
		XtSetArg(args[n], XmNrows, 10);				n++;
		XtSetArg(args[n], XmNcolumns, 40);			n++;
		XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT);	n++;
		XtSetArg(args[n], XmNwordWrap, True);			n++;
		XtSetArg(args[n], XmNvalue, "输入区域\n请测试");	n++;
		text = XmCreateScrolledText(rowcol, "text", args, n);
		XtManageChild(text);
		
		//显示窗口
		XtRealizeWidget(toplevel);

		//edit
		XmTextSetInsertionPosition(text, 3);
		XmTextInsert(text, 5, "测试插入");
		XmTextSetSelection(text, 5, 8, CurrentTime);
		XmTextCopy(text, CurrentTime);
		XmTextSetInsertionPosition(text, 1);
		XmTextPaste(text);
		

		//进入事件循环
		XtAppMainLoop(app);

	}
Exemplo n.º 7
0
	int main(int argc, char *argv[])
	{
		int i, n;
		Arg args[10];
		char buf[80];
		XtAppContext app;
		Widget toplevel, notebook, page[6], label[6], frame[6], text[6];

		setlocale(LC_ALL, "");

		//建立顶级窗口
		toplevel = XtVaAppInitialize(&app, "Notebook", NULL, 0,
			&argc, argv, NULL, NULL);

		//建立Notebook
		n = 0;
		XtSetArg(args[n], XmNwidth, 600 ); 			n++;
		XtSetArg(args[n], XmNheight, 400 ); 			n++;
		XtSetArg(args[n], XmNfirstPageNumber, 1); 		n++;
		XtSetArg(args[n], XmNlastPageNumber, 6); 		n++;

		notebook  = XmCreateNotebook(toplevel, "notebook", args, n);
		XtManageChild(notebook);

		//建立页面
		for(i=0; i<6; i++){
			n = 0;
			sprintf(buf, "页面 %d", i + 1);
			label[i] = XmCreateLabel(notebook, buf, args, n);
			page[i] = XmCreatePushButton(notebook, buf, args, n);
		}
		XtManageChildren(label, 6);
		XtManageChildren(page, 6);

		for(i=0; i<6; i++){
			XtSetArg(args[n], XmNpageNumber, i + 1); n++;
			text[i] = XmCreateScrolledText(notebook, buf, args, n);
			XtManageChild(text[i]);
		}


		//显示窗口
		XtRealizeWidget(toplevel);

		//进入事件循环
		XtAppMainLoop(app);

	}
Exemplo n.º 8
0
void InitClientsTab()
{
  Widget clients_form, out_scroll;

  clients_frame = XtVaCreateWidget( "clients_frame", xmFrameWidgetClass, 
				    tab_form,
				    XmNtopAttachment, XmATTACH_WIDGET,
				    XmNtopWidget, main_tab,
				    XmNbottomAttachment, XmATTACH_FORM,
				    XmNleftAttachment, XmATTACH_FORM,	
				    XmNrightAttachment, XmATTACH_FORM,
				    XmNchildType, XmFRAME_WORKAREA_CHILD,
				    XmNshadowType, XmSHADOW_ETCHED_OUT,
				    XmNmarginHeight, 3,
				    XmNmarginWidth, 3,		
				    NULL );

  clients_form = XtVaCreateManagedWidget( "clients_form", xmFormWidgetClass, 
					  clients_frame,
					  XmNtopAttachment, XmATTACH_FORM,
					  XmNbottomAttachment, XmATTACH_FORM,
					  XmNleftAttachment, XmATTACH_FORM,
					  XmNrightAttachment, XmATTACH_FORM,
					  NULL );
  
  clients_out = XmCreateScrolledText( clients_form, "clients_out", NULL, 0 );
  XtManageChild( clients_out );

  out_scroll = XtParent( clients_out );

  XtVaSetValues( out_scroll,
		 XmNtopAttachment, XmATTACH_FORM,
		 XmNbottomAttachment, XmATTACH_FORM,
		 XmNleftAttachment, XmATTACH_FORM,	
		 XmNrightAttachment, XmATTACH_FORM,
		 NULL );

  XtVaSetValues( clients_out,
		 XmNshadowThickness, 0,		 
		 XmNwordWrap, TRUE,
		 XmNeditMode, XmMULTI_LINE_EDIT,
		 XmNeditable, FALSE,  			/* can't edit */
		 XmNcursorPositionVisible, FALSE, 	/* no cursor */
		 XmNautoShowCursorPosition, FALSE,
		 XmNscrollingPolicy, XmAUTOMATIC,
		 NULL );

}
Exemplo n.º 9
0
static Widget createPanelHelp(Widget parent, const char *helpText, const char *title)
{
    Arg al[20];
    int ac;
    Widget form, text, button;
    XmString st1;
    
    ac = 0;
    form = CreateFormDialog(parent, "helpForm", al, ac);

    ac = 0;
    XtSetArg (al[ac], XmNbottomAttachment, XmATTACH_FORM);  ac++;
    XtSetArg (al[ac], XmNtopAttachment, XmATTACH_NONE);  ac++;
    XtSetArg(al[ac], XmNlabelString, st1=XmStringCreateLtoR ("OK", 
                      XmSTRING_DEFAULT_CHARSET)); ac++;
    XtSetArg (al[ac], XmNmarginWidth, BUTTON_WIDTH_MARGIN);  ac++;
    button = XmCreatePushButtonGadget(form, "ok", al, ac);
    XtAddCallback(button, XmNactivateCallback, (XtCallbackProc)helpDismissCB,
    	    (char *)form);
    XmStringFree(st1);
    XtManageChild(button);
    SET_ONE_RSRC(form, XmNdefaultButton, button);
    
    ac = 0;
    XtSetArg(al[ac], XmNrows, 15);  ac++;
    XtSetArg(al[ac], XmNcolumns, 60);  ac++;
    XtSetArg(al[ac], XmNresizeHeight, False);  ac++;
    XtSetArg(al[ac], XmNtraversalOn, False); ac++;
    XtSetArg(al[ac], XmNwordWrap, True);  ac++;
    XtSetArg(al[ac], XmNscrollHorizontal, False);  ac++;
    XtSetArg(al[ac], XmNeditMode, XmMULTI_LINE_EDIT);  ac++;
    XtSetArg(al[ac], XmNeditable, False);  ac++;
    XtSetArg(al[ac], XmNvalue, helpText);  ac++;
    XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM);  ac++;
    XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM);  ac++;
    XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_WIDGET);  ac++;
    XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM);  ac++;
    XtSetArg(al[ac], XmNbottomWidget, button);  ac++;
    text = XmCreateScrolledText(form, "helpText", al, ac);
    AddMouseWheelSupport(text);
    XtManageChild(text);
    
    SET_ONE_RSRC(XtParent(form), XmNtitle, title);
    
    return form;
}
Exemplo n.º 10
0
   static void createBrowserHeadDump()
{
    Arg args[50];
    int ac;
    XmString s1;
    Widget dismissBtn;

    ac = 0;
    XtSetArg(args[ac], XmNautoUnmanage, False); ac++; 
    XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_NONE); ac++; 
    DumpHeadFormW = XmCreateFormDialog(McfioMainPanelW, "form", args, ac);
    DumpHeadShellW = XtParent(DumpHeadFormW);
    XtVaSetValues(DumpHeadShellW, XmNtitle,
                                "File Header Information", 0);
    AddMotifCloseCallback(XtParent(DumpHeadFormW),
                         (XtCallbackProc)dismissHeadDumpCB, NULL);
                         
                         
    dismissBtn = XtVaCreateManagedWidget("dismissBtn",
    	    xmPushButtonGadgetClass, DumpHeadFormW,
    	    XmNlabelString, s1=XmStringCreateSimple("Dismiss"),
    	    XmNbottomAttachment, XmATTACH_FORM,
    	    XmNbottomOffset, 4,
    	    XmNleftAttachment, XmATTACH_POSITION,
    	    XmNleftPosition, 25,
    	    XmNrightAttachment, XmATTACH_POSITION,
    	    XmNrightPosition, 75, 0);
    XmStringFree(s1);
    XtAddCallback(dismissBtn, XmNactivateCallback,
    	    (XtCallbackProc)dismissHeadDumpCB, NULL); 
    
    ac = 0;
    XtSetArg(args[ac], XmNrows, 8); ac++;
    XtSetArg(args[ac], XmNcolumns, 80); ac++;
    XtSetArg(args[ac], XmNeditMode, XmMULTI_LINE_EDIT); ac++;
    XtSetArg(args[ac], XmNleftAttachment, XmATTACH_POSITION); ac++;
    XtSetArg(args[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
    XtSetArg(args[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
    XtSetArg(args[ac], XmNbottomAttachment, XmATTACH_WIDGET); ac++;
    XtSetArg(args[ac], XmNbottomWidget, dismissBtn); ac++;
    XtSetArg(args[ac], XmNdeleteResponse, XmDO_NOTHING); ac++;
    DumpHeadTextW = XmCreateScrolledText(DumpHeadFormW,
                                          "HeaderText", args, ac);
    XtManageChild(DumpHeadTextW);
    XtManageChild(DumpHeadFormW);
}
Exemplo n.º 11
0
/* -------------------------------------------------------------------- */
static void CreateStatsWindow()
{
  Arg         args[8];
  Cardinal    n;
  Widget      drFrame, drRC, b[3];

  n = 0;
  StatsShell = XtCreatePopupShell("statsShell",
                  topLevelShellWidgetClass, AppShell, args, n);

  n = 0;
  StatsWindow = XmCreateForm(StatsShell, (char *)"statsForm", args, n);

  n = 0;
  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;
  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
  drFrame = XmCreateFrame(StatsWindow, (char *)"buttonFrame", args, n);
  XtManageChild(drFrame);

  n = 0;
  drRC = XmCreateRowColumn(drFrame, (char *)"buttonRC", args, n);
  XtManageChild(drRC);


  n = 0;
  b[0] = XmCreatePushButton(drRC, (char *)"dismissButton", args, n);
  b[1] = XmCreatePushButton(drRC, (char *)"printButton", args, n);
  b[2] = XmCreatePushButton(drRC, (char *)"parmsButton", args, n);
  XtManageChildren(b, 3);
  XtAddCallback(b[0], XmNactivateCallback, DismissStats, StatsWindow);
  XtAddCallback(b[1], XmNactivateCallback, PrintStats, NULL);
  XtAddCallback(b[2], XmNactivateCallback, EditStatsParms, NULL);


  n = 0;
  XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
  XtSetArg(args[n], XmNtopWidget, drFrame); n++;
  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;
  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
  statsText = XmCreateScrolledText(StatsWindow, (char *)"statsText", args, n);
  XtManageChild(statsText);

}	/* END CREATESTATSWINDOW */
Exemplo n.º 12
0
Arquivo: motif.c Projeto: E-LLP/QuIP
void make_edit_box(QSP_ARG_DECL  Screen_Obj *sop)
{
#ifdef HAVE_MOTIF
	Arg al[8];
	int ac = 0;

	sop->so_frame = generic_frame(curr_panel->po_panel_obj,
		sop, XmSHADOW_IN);

	XtSetArg(al[ac], XmNeditable, TRUE); ac++;
	XtSetArg(al[ac], XmNrecomputeSize, FALSE); ac++;
	XtSetArg(al[ac], XmNwidth, PO_WIDTH(curr_panel)-30 ); ac++;
	/* BUG do something sensible about the height... */
	//XtSetArg(al[ac], XmNheight, PO_HEIGHT(curr_panel)-30 ); ac++;
#define EDIT_BOX_HEIGHT 100	// height of editable area?
#define EDIT_BOX_EXTRA 30	// add for total height - this value is guessed!?
	XtSetArg(al[ac], XmNheight, EDIT_BOX_HEIGHT); ac++;

	XtSetArg(al[ac], XmNscrollHorizontal, FALSE); ac++;
	XtSetArg(al[ac], XmNwordWrap, TRUE); ac++;

	//sop->so_obj = XmCreateTextField(sop->so_frame, (char *)sop->so_name, al, ac);
	sop->so_obj = XmCreateScrolledText(sop->so_frame, (char *)sop->so_name, al, ac);

	XtAddCallback(sop->so_obj, XmNvalueChangedCallback, text_func, NULL);
	XtAddCallback(sop->so_obj, XmNlosingFocusCallback, text_func2, NULL);

	XtManageChild(sop->so_obj);

	/* this works for a TextField, but not ScrolledText!? */
	//XmTextFieldSetString(sop->so_obj, (char *)sop->so_content_text );

	/* this works! */
	XmTextSetString(sop->so_obj, (char *)sop->so_content_text );

	SET_SOB_HEIGHT(sop,EDIT_BOX_HEIGHT+EDIT_BOX_EXTRA);
#endif /* HAVE_MOTIF */
}
Exemplo n.º 13
0
  int
main( int argc, char *argv[] )
{
  int      n;
  Arg      Args[MAX_ARGS];
  int      i;
  Widget   Text;
  Widget   Window;
  Pixmap   WindPixmap;
  Pixmap   TextPixmap;

  CommonTestInit(argc, argv);

  /* Get the pixmaps for the backgrounds */
  WindPixmap = XmGetPixmap(screen, WINDOW_PIXMAP, BlackPixelOfScreen(screen),
		WhitePixelOfScreen(screen));
  TextPixmap = XmGetPixmap(screen, TEXT_PIXMAP, BlackPixelOfScreen(screen),
		WhitePixelOfScreen(screen));

  if (!WindPixmap)
  {
    (void)printf("Can't make pixmap for file %s!\n", WINDOW_PIXMAP );
    exit(1);
  }

  if (!TextPixmap)
  {
    (void)printf("Can't make pixmap for file %s!\n", TEXT_PIXMAP );
    exit(1);
  }

  /* Make the ScrolledWindow and Text */
  n = 0;
  XtSetArg( Args[n], XmNvalue, Strings ); n++;
  XtSetArg( Args[n], XmNeditable, False ); n++;
  XtSetArg( Args[n], XmNeditMode, XmMULTI_LINE_EDIT ); n++;
  Text = XmCreateScrolledText(Shell1, "Text", Args, n );

  /* Get the Widget for the parent Scrolled Window */
  Window = XtParent(Text);

  /* Set the Text Pixmap and color */
  n = 0;
  XtSetArg(Args[n], XmNbackgroundPixmap, TextPixmap ); n++;
  XtSetValues( Text, Args, n );
  SetWidgetColor( Text, "white" );

  /* Set the Window Pixmap and color */
  n = 0;
  XtSetArg(Args[n], XmNbackgroundPixmap, WindPixmap ); n++;
  XtSetValues( Window, Args, n );
  SetWidgetColor( Window, "pink" );

  XtManageChild(Text);
  XtManageChild(Window);


  /*************
   * Assertion 1.  Now that the text and window have differing pixmaps,
   * lets dump the values for the child scrollbar values.
   */
  PrintValues( Window, "Assertion 1" );
  CommonPause();


  /*************
   * Assertion 2.  Now that the text and window have differing pixmaps,
   * lets dump the values for the child scrollbar values.
   */
  SetWidgetColor( Text, "green" );
  PrintValues( Window, "Assertion 2" );
  CommonPause();
  
  /* Cleanup Time */
  XmDestroyPixmap( screen, WindPixmap );
  XmDestroyPixmap( screen, TextPixmap );
  XtDestroyWidget( XtParent(Text) );

  CommonPause();

  XtAppMainLoop(app_context);
  return 0;
}
Exemplo n.º 14
0
Arquivo: mon_info.c Projeto: hfs/afd
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ main() $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
int
main(int argc, char *argv[])
{
   int             i;
   char            window_title[100],
                   work_dir[MAX_PATH_LENGTH],
                   str_line[MAX_INFO_STRING_LENGTH],
                   tmp_str_line[MAX_INFO_STRING_LENGTH];
   static String   fallback_res[] =
                   {
                      "*mwmDecorations : 42",
                      "*mwmFunctions : 12",
                      ".mon_info.form*background : NavajoWhite2",
                      ".mon_info.form.msa_box.?.?.?.text_wl.background : NavajoWhite1",
                      ".mon_info.form.msa_box.?.?.?.text_wr.background : NavajoWhite1",
                      ".mon_info.form.host_infoSW.host_info.background : NavajoWhite1",
                      ".mon_info.form.buttonbox*background : PaleVioletRed2",
                      ".mon_info.form.buttonbox*foreground : Black",
                      ".mon_info.form.buttonbox*highlightColor : Black",
                      NULL
                   };
   Widget          form_w,
                   msa_box_w,
                   msa_box1_w,
                   msa_box2_w,
                   msa_text_w,
                   button_w,
                   buttonbox_w,
                   rowcol1_w,
                   rowcol2_w,
                   h_separator1_w,
                   h_separator2_w,
                   v_separator_w;
   XmFontListEntry entry;
   XmFontList      fontlist;
   Arg             args[MAXARGS];
   Cardinal        argcount;
   uid_t           euid, /* Effective user ID. */
                   ruid; /* Real user ID. */

   CHECK_FOR_VERSION(argc, argv);

   /* Initialise global values. */
   p_work_dir = work_dir;
   init_mon_info(&argc, argv);

   /*
    * SSH uses wants to look at .Xauthority and with setuid flag
    * set we cannot do that. So when we initialize X lets temporaly
    * disable it. After XtAppInitialize() we set it back.
    */
   euid = geteuid();
   ruid = getuid();
   if (euid != ruid)
   {
      if (seteuid(ruid) == -1)
      {
         (void)fprintf(stderr, "Failed to seteuid() to %d : %s\n",
                       ruid, strerror(errno));
      }
   }

   (void)strcpy(window_title, afd_name);
   (void)strcat(window_title, " Info");
   argcount = 0;
   XtSetArg(args[argcount], XmNtitle, window_title); argcount++;
   appshell = XtAppInitialize(&app, "AFD", NULL, 0,
                              &argc, argv, fallback_res, args, argcount);
   disable_drag_drop(appshell);

   if (euid != ruid)
   {
      if (seteuid(euid) == -1)
      {
         (void)fprintf(stderr, "Failed to seteuid() to %d : %s\n",
                       euid, strerror(errno));
      }
   }

   display = XtDisplay(appshell);

#ifdef HAVE_XPM
   /* Setup AFD logo as icon. */
   setup_icon(display, appshell);
#endif

   /* Create managing widget. */
   form_w = XmCreateForm(appshell, "form", NULL, 0);

   entry = XmFontListEntryLoad(XtDisplay(form_w), font_name,
                               XmFONT_IS_FONT, "TAG1");
   fontlist = XmFontListAppendEntry(NULL, entry);
   XmFontListEntryFree(&entry);

   argcount = 0;
   XtSetArg(args[argcount], XmNtopAttachment,  XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNleftAttachment, XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNrightAttachment, XmATTACH_FORM);
   argcount++;
   msa_box_w = XmCreateForm(form_w, "msa_box", args, argcount);
   XtManageChild(msa_box_w);

   argcount = 0;
   XtSetArg(args[argcount], XmNtopAttachment,  XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNleftAttachment, XmATTACH_FORM);
   argcount++;
   msa_box1_w = XmCreateForm(msa_box_w, "msa_box1", args, argcount);
   XtManageChild(msa_box1_w);

   rowcol1_w = XtVaCreateWidget("rowcol1", xmRowColumnWidgetClass,
                                 msa_box1_w, NULL);
   for (i = 0; i < NO_OF_MSA_ROWS; i++)
   {
      msa_text_w = XtVaCreateWidget("msa_text", xmFormWidgetClass,
                                     rowcol1_w,
                                     XmNfractionBase, 41,
                                     NULL);
      label_l_widget[i] = XtVaCreateManagedWidget(label_l[i],
                              xmLabelGadgetClass,  msa_text_w,
                              XmNfontList,         fontlist,
                              XmNtopAttachment,    XmATTACH_POSITION,
                              XmNtopPosition,      1,
                              XmNbottomAttachment, XmATTACH_POSITION,
                              XmNbottomPosition,   40,
                              XmNleftAttachment,   XmATTACH_POSITION,
                              XmNleftPosition,     1,
                              XmNalignment,        XmALIGNMENT_END,
                              NULL);
      text_wl[i] = XtVaCreateManagedWidget("text_wl",
                              xmTextWidgetClass,        msa_text_w,
                              XmNfontList,              fontlist,
                              XmNcolumns,               MON_INFO_LENGTH,
                              XmNtraversalOn,           False,
                              XmNeditable,              False,
                              XmNcursorPositionVisible, False,
                              XmNmarginHeight,          1,
                              XmNmarginWidth,           1,
                              XmNshadowThickness,       1,
                              XmNhighlightThickness,    0,
                              XmNrightAttachment,       XmATTACH_FORM,
                              XmNleftAttachment,        XmATTACH_POSITION,
                              XmNleftPosition,          22,
                              NULL);
      XtManageChild(msa_text_w);
   }
   XtManageChild(rowcol1_w);

   /* Fill up the text widget with some values. */
   (void)sprintf(str_line, "%*s", MON_INFO_LENGTH,
                 prev.real_hostname[(int)prev.afd_toggle]);
   XmTextSetString(text_wl[0], str_line);
   (void)sprintf(str_line, "%*d",
                 MON_INFO_LENGTH, prev.port[(int)prev.afd_toggle]);
   XmTextSetString(text_wl[1], str_line);
   (void)strftime(tmp_str_line, MAX_INFO_STRING_LENGTH, "%d.%m.%Y  %H:%M:%S",
                  localtime(&prev.last_data_time));
   (void)sprintf(str_line, "%*s", MON_INFO_LENGTH, tmp_str_line);
   XmTextSetString(text_wl[2], str_line);
   (void)sprintf(str_line, "%*d", MON_INFO_LENGTH, prev.max_connections);
   XmTextSetString(text_wl[3], str_line);
   (void)sprintf(str_line, "%*s", MON_INFO_LENGTH, prev.afd_version);
   XmTextSetString(text_wl[4], str_line);
   if (prev.top_tr > 1048576)
   {
      (void)sprintf(str_line, "%*u MB/s",
                    MON_INFO_LENGTH - 5, prev.top_tr / 1048576);
   }
   else if (prev.top_tr > 1024)               
        {
           (void)sprintf(str_line, "%*u KB/s",
                         MON_INFO_LENGTH - 5, prev.top_tr / 1024);
        }
        else
        {
           (void)sprintf(str_line, "%*u Bytes/s",
                         MON_INFO_LENGTH - 8, prev.top_tr);
        }
   XmTextSetString(text_wl[5], str_line);

   /* Create the first horizontal separator. */
   argcount = 0;
   XtSetArg(args[argcount], XmNorientation,     XmHORIZONTAL);
   argcount++;
   XtSetArg(args[argcount], XmNtopAttachment,   XmATTACH_WIDGET);
   argcount++;
   XtSetArg(args[argcount], XmNtopWidget,       msa_box_w);
   argcount++;
   XtSetArg(args[argcount], XmNleftAttachment,  XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNrightAttachment, XmATTACH_FORM);
   argcount++;
   h_separator1_w = XmCreateSeparator(form_w, "h_separator1_w", args, argcount);
   XtManageChild(h_separator1_w);

   /* Create the vertical separator. */
   argcount = 0;
   XtSetArg(args[argcount], XmNorientation,      XmVERTICAL);
   argcount++;
   XtSetArg(args[argcount], XmNleftAttachment,   XmATTACH_WIDGET);
   argcount++;
   XtSetArg(args[argcount], XmNleftWidget,       msa_box1_w);
   argcount++;
   XtSetArg(args[argcount], XmNtopAttachment,    XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNbottomAttachment, XmATTACH_FORM);
   argcount++;
   v_separator_w = XmCreateSeparator(msa_box_w, "v_separator", args, argcount);
   XtManageChild(v_separator_w);

   argcount = 0;
   XtSetArg(args[argcount], XmNtopAttachment,   XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNleftAttachment,  XmATTACH_WIDGET);
   argcount++;
   XtSetArg(args[argcount], XmNleftWidget,      v_separator_w);
   argcount++;
   msa_box2_w = XmCreateForm(msa_box_w, "msa_box2", args, argcount);
   XtManageChild(msa_box2_w);

   rowcol2_w = XtVaCreateWidget("rowcol2", xmRowColumnWidgetClass,
                                msa_box2_w, NULL);
   for (i = 0; i < NO_OF_MSA_ROWS; i++)
   {
      msa_text_w = XtVaCreateWidget("msa_text", xmFormWidgetClass,
                                    rowcol2_w,
                                    XmNfractionBase, 41,
                                    NULL);
      label_r_widget[i] = XtVaCreateManagedWidget(label_r[i],
                              xmLabelGadgetClass,  msa_text_w,
                              XmNfontList,         fontlist,
                              XmNtopAttachment,    XmATTACH_POSITION,
                              XmNtopPosition,      1,
                              XmNbottomAttachment, XmATTACH_POSITION,
                              XmNbottomPosition,   40,
                              XmNleftAttachment,   XmATTACH_POSITION,
                              XmNleftPosition,     1,
                              XmNalignment,        XmALIGNMENT_END,
                              NULL);
      text_wr[i] = XtVaCreateManagedWidget("text_wr",
                              xmTextWidgetClass,        msa_text_w,
                              XmNfontList,              fontlist,
                              XmNcolumns,               MON_INFO_LENGTH,
                              XmNtraversalOn,           False,
                              XmNeditable,              False,
                              XmNcursorPositionVisible, False,
                              XmNmarginHeight,          1,
                              XmNmarginWidth,           1,
                              XmNshadowThickness,       1,
                              XmNhighlightThickness,    0,
                              XmNrightAttachment,       XmATTACH_FORM,
                              XmNleftAttachment,        XmATTACH_POSITION,
                              XmNleftPosition,          20,
                              NULL);
      XtManageChild(msa_text_w);
   }
   XtManageChild(rowcol2_w);

   /* Fill up the text widget with some values. */
   get_ip_no(msa[afd_position].hostname[(int)prev.afd_toggle], tmp_str_line);
   (void)sprintf(str_line, "%*s", MON_INFO_LENGTH, tmp_str_line);
   XmTextSetString(text_wr[0], str_line);
   (void)sprintf(str_line, "%*s", MON_INFO_LENGTH, prev.r_work_dir);
   XmTextSetString(text_wr[1], str_line);
   (void)sprintf(str_line, "%*d", MON_INFO_LENGTH, prev.poll_interval);
   XmTextSetString(text_wr[2], str_line);
   (void)sprintf(str_line, "%*d", MON_INFO_LENGTH, prev.top_not);
   XmTextSetString(text_wr[3], str_line);
   (void)sprintf(str_line, "%*d", MON_INFO_LENGTH, prev.no_of_hosts);
   XmTextSetString(text_wr[4], str_line);
   (void)sprintf(str_line, "%*u files/s", MON_INFO_LENGTH - 8, prev.top_fr);
   XmTextSetString(text_wr[5], str_line);

   argcount = 0;
   XtSetArg(args[argcount], XmNleftAttachment,   XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNrightAttachment,  XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNbottomAttachment, XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNfractionBase,     21);
   argcount++;
   buttonbox_w = XmCreateForm(form_w, "buttonbox", args, argcount);

   /* Create the second horizontal separator. */
   argcount = 0;
   XtSetArg(args[argcount], XmNorientation,           XmHORIZONTAL);
   argcount++;
   XtSetArg(args[argcount], XmNbottomAttachment,      XmATTACH_WIDGET);
   argcount++;
   XtSetArg(args[argcount], XmNbottomWidget,          buttonbox_w);
   argcount++;
   XtSetArg(args[argcount], XmNleftAttachment,        XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNrightAttachment,       XmATTACH_FORM);
   argcount++;
   h_separator2_w = XmCreateSeparator(form_w, "h_separator2", args, argcount);
   XtManageChild(h_separator2_w);

   if (editable == YES)
   {
      button_w = XtVaCreateManagedWidget("Save",
                                         xmPushButtonWidgetClass, buttonbox_w,
                                         XmNfontList,         fontlist,
                                         XmNtopAttachment,    XmATTACH_POSITION,
                                         XmNtopPosition,      2,
                                         XmNbottomAttachment, XmATTACH_POSITION,
                                         XmNbottomPosition,   19,
                                         XmNleftAttachment,   XmATTACH_POSITION,
                                         XmNleftPosition,     1,
                                         XmNrightAttachment,  XmATTACH_POSITION,
                                         XmNrightPosition,    9,
                                         NULL);
      XtAddCallback(button_w, XmNactivateCallback,
                    (XtCallbackProc)save_button, (XtPointer)0);
      button_w = XtVaCreateManagedWidget("Close",
                                         xmPushButtonWidgetClass, buttonbox_w,
                                         XmNfontList,         fontlist,     
                                         XmNtopAttachment,    XmATTACH_POSITION,
                                         XmNtopPosition,      2,                
                                         XmNbottomAttachment, XmATTACH_POSITION,
                                         XmNbottomPosition,   19,
                                         XmNleftAttachment,   XmATTACH_POSITION,
                                         XmNleftPosition,     10,
                                         XmNrightAttachment,  XmATTACH_POSITION,
                                         XmNrightPosition,    20,
                                         NULL);
      XtAddCallback(button_w, XmNactivateCallback,
                    (XtCallbackProc)close_button, (XtPointer)0);
   }
   else
   {
      button_w = XtVaCreateManagedWidget("Close",
                                         xmPushButtonWidgetClass, buttonbox_w,
                                         XmNfontList,         fontlist,
                                         XmNtopAttachment,    XmATTACH_POSITION,
                                         XmNtopPosition,      2,
                                         XmNbottomAttachment, XmATTACH_POSITION,
                                         XmNbottomPosition,   19,
                                         XmNleftAttachment,   XmATTACH_POSITION,
                                         XmNleftPosition,     1,
                                         XmNrightAttachment,  XmATTACH_POSITION,
                                         XmNrightPosition,    20,
                                         NULL);
      XtAddCallback(button_w, XmNactivateCallback,
                    (XtCallbackProc)close_button, (XtPointer)0);
   }
   XtManageChild(buttonbox_w);

   /* Create log_text as a ScrolledText window. */
   argcount = 0;
   XtSetArg(args[argcount], XmNfontList,               fontlist);
   argcount++;
   XtSetArg(args[argcount], XmNrows,                   10);
   argcount++;
   XtSetArg(args[argcount], XmNcolumns,                80);
   argcount++;
   if (editable == YES)
   {
      XtSetArg(args[argcount], XmNeditable,               True);
      argcount++;
      XtSetArg(args[argcount], XmNcursorPositionVisible,  True);
      argcount++;
      XtSetArg(args[argcount], XmNautoShowCursorPosition, True);
   }
   else
   {
      XtSetArg(args[argcount], XmNeditable,               False);
      argcount++;
      XtSetArg(args[argcount], XmNcursorPositionVisible,  False);
      argcount++;
      XtSetArg(args[argcount], XmNautoShowCursorPosition, False);
   }
   argcount++;
   XtSetArg(args[argcount], XmNeditMode,               XmMULTI_LINE_EDIT);
   argcount++;
   XtSetArg(args[argcount], XmNwordWrap,               False);
   argcount++;
   XtSetArg(args[argcount], XmNscrollHorizontal,       False);
   argcount++;
   XtSetArg(args[argcount], XmNcursorPositionVisible,  False);
   argcount++;
   XtSetArg(args[argcount], XmNautoShowCursorPosition, False);
   argcount++;
   XtSetArg(args[argcount], XmNtopAttachment,          XmATTACH_WIDGET);
   argcount++;
   XtSetArg(args[argcount], XmNtopWidget,              h_separator1_w);
   argcount++;
   XtSetArg(args[argcount], XmNtopOffset,              3);
   argcount++;
   XtSetArg(args[argcount], XmNleftAttachment,         XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNleftOffset,             3);
   argcount++;
   XtSetArg(args[argcount], XmNrightAttachment,        XmATTACH_FORM);
   argcount++;
   XtSetArg(args[argcount], XmNrightOffset,            3);
   argcount++;
   XtSetArg(args[argcount], XmNbottomAttachment,       XmATTACH_WIDGET);
   argcount++;
   XtSetArg(args[argcount], XmNbottomWidget,           h_separator2_w);
   argcount++;
   XtSetArg(args[argcount], XmNbottomOffset,           3);
   argcount++;
   info_w = XmCreateScrolledText(form_w, "host_info", args, argcount);
   XtManageChild(info_w);
   XtManageChild(form_w);

   /* Free font list. */
   XmFontListFree(fontlist);

#ifdef WITH_EDITRES
   XtAddEventHandler(appshell, (EventMask)0, True,
                     _XEditResCheckMessages, NULL);
#endif

   /* Realize all widgets. */
   XtRealizeWidget(appshell);
   wait_visible(appshell);

   /* Read and display the information file. */
   (void)check_info_file(afd_name, AFD_INFO_FILE, YES);
   XmTextSetString(info_w, NULL);  /* Clears old entry. */
   XmTextSetString(info_w, info_data);

   /* Call update_info() after UPDATE_INTERVAL ms. */
   interval_id_host = XtAppAddTimeOut(app, UPDATE_INTERVAL,
                                      (XtTimerCallbackProc)update_info,
                                      form_w);

   /* We want the keyboard focus on the Done button. */
   XmProcessTraversal(button_w, XmTRAVERSE_CURRENT);

   /* Write window ID, so mon_ctrl can set focus if it is called again. */
   write_window_id(XtWindow(appshell), getpid(), MON_INFO);

   /* Start the main event-handling loop. */
   XtAppMainLoop(app);

   exit(SUCCESS);
}
Exemplo n.º 15
0
Widget XmCreateScrolledText_TNK(Widget parent, String name, ArgList arglist,Cardinal argcount) { return XmCreateScrolledText(parent, name, arglist, argcount);}
Exemplo n.º 16
0
void CoWowMotif::DisplayLicense()
{
    char text[20000];
    Arg	    arg[11];
    Widget  question_widget;
    XmString CStr2, TitleStr, cancelstr;
    XmFontList fontlist;
    XFontStruct *font;
    XmFontListEntry fontentry;
    char title[80];
    Widget w;
    FILE *fp;
    char fname[200];
    int i;
    Widget wcancel;

    strcpy( title, lng_translate("License"));

    sprintf( fname, "$pwr_exe/%s/license.txt", lng_get_language_str());
    dcli_translate_filename( fname, fname);

    fp = fopen( fname, "r");
    if ( !fp) {
      strcpy( fname, "$pwr_exe/en_us/lincense.txt");
      dcli_translate_filename( fname, fname);
      fp = fopen( fname, "r");
      if ( !fp)
	return;
    }

    for ( i = 0; i < (int)sizeof(text) - 1; i++) {
      text[i] = fgetc( fp);
      if ( text[i] == EOF)
	break;
    }
    fclose( fp);
    text[i] = 0;

    // Set default fontlist
    font = XLoadQueryFont( XtDisplay(m_parent),
	      "-*-Helvetica-Bold-R-Normal--12-*-*-*-P-*-ISO8859-1");
    fontentry = XmFontListEntryCreate( (char*) "tag1", XmFONT_IS_FONT, font);
    fontlist = XmFontListAppendEntry( NULL, fontentry);
    XtFree( (char *)fontentry);

    CStr2 = XmStringCreateLtoR( (char*) "", XmSTRING_DEFAULT_CHARSET);
    TitleStr = XmStringCreateLtoR( title, XmSTRING_DEFAULT_CHARSET);    
    cancelstr = XmStringCreateLtoR( (char*) " Close ", XmSTRING_DEFAULT_CHARSET );    
    XtSetArg(arg[0],XmNheight,400);
    XtSetArg(arg[1],XmNwidth,600);
    XtSetArg(arg[2],XmNmessageString, CStr2);
    XtSetArg(arg[3],XmNx,400);
    XtSetArg(arg[4],XmNy,300);
    XtSetArg(arg[5],XmNdialogTitle,TitleStr);
    XtSetArg(arg[6], XmNcancelLabelString, cancelstr);
    XtSetArg(arg[7], XmNbuttonFontList, fontlist);
    XtSetArg(arg[8], XmNlabelFontList, fontlist);

    question_widget = XmCreateMessageDialog( m_parent,(char*) "questionDialog",arg,9);
    XmStringFree( CStr2);
    XmStringFree( TitleStr);
    XmStringFree( cancelstr);
    XmFontListFree( fontlist);
    wcancel = XmMessageBoxGetChild(question_widget, XmDIALOG_CANCEL_BUTTON);
   

    XtSetArg(arg[0], XmNscrollHorizontal, True);
    XtSetArg(arg[1], XmNscrollVertical, True);
    XtSetArg(arg[2], XmNeditMode, XmMULTI_LINE_EDIT);
    XtSetArg(arg[3], XmNeditable, False);
    XtSetArg(arg[4], XmNcursorPositionVisible, False);
    XtSetArg(arg[5], XmNrows, 30);
    XtSetArg(arg[6], XmNvalue, text);
    XtSetArg(arg[7], XmNfontList, fontlist);
    w = XmCreateScrolledText( question_widget, (char*) "text", arg, 7);
    XtVaSetValues( XtParent(w), 
		   XmNleftAttachment, XmATTACH_FORM,
		   XmNrightAttachment, XmATTACH_FORM,
		   XmNtopAttachment, XmATTACH_FORM,
		   XmNbottomAttachment, XmATTACH_WIDGET,
		   XmNbottomWidget, wcancel,
		   NULL);
    XtManageChild(w);

    w = XmMessageBoxGetChild(question_widget, XmDIALOG_OK_BUTTON);
    XtUnmanageChild( w);    
    
    w = XmMessageBoxGetChild(question_widget, XmDIALOG_HELP_BUTTON);
    XtUnmanageChild( w);    

    XtManageChild( question_widget);	       
}
Exemplo n.º 17
0
void 
MakeDialog( DialogType dtype )
{
    register int i, j;

    int		width;
    
    FILE	*fp, *fopen();
    char	buffer[128];
    char	*str;

    Widget	w, text;
    Dimension	txt_width, txt_height;
    XmString	ok, cancel, nw, sv;

    Widget      tlev;

    /*
     *  do things common to all dialogs...
     */

    ok     = ReadCatalogXms(MC_LABEL_SET, MC_OK_LABEL, MC_DEF_OK_LABEL);
    cancel = ReadCatalogXms(MC_LABEL_SET, MC_CANCEL_LABEL, MC_DEF_CANCEL_LABEL);

    i = InitArg(MessageBox);
    XtSetArg(argt[i], XmNmarginHeight,		MBOX_MARGIN_HEIGHT	); i++;
    XtSetArg(argt[i], XmNmarginWidth,		MBOX_MARGIN_WIDTH	); i++;
    XtSetArg(argt[i], XmNshadowThickness,	SHADOW_THICKNESS	); i++;
    XtSetArg(argt[i], XmNokLabelString,		ok			); i++;
    XtSetArg(argt[i], XmNcancelLabelString,	cancel			); i++;
    XtSetArg(argt[i], XmNnoResize,		False			); i++;
    XtSetArg(argt[i], XmNresizePolicy,		XmRESIZE_ANY		); i++;

    /*
     *  create the various dialogs...
     */

    /* JET - check the matte widget, and if non-null, well use that as
     * the parent for dialogs.  Otherwise use table (the original
     * toplevel widget for this func).  This is useful for Xinerama so
     * that child dialogs are centered on the matte, and not the whole
     * SLS screen.
     */
    if (matte != (Widget)NULL)
      tlev = matte;
    else
      tlev = table;


    switch (dtype) {

    case error:
	xmstr = ReadCatalogXms(MC_ERROR_SET, MC_LOGIN, "");
	XtSetArg(argt[i], XmNmessageString,		xmstr		); i++;

	w = XmCreateErrorDialog(tlev, "error_message", argt, i);
	XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_CANCEL_BUTTON));
	XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));

	error_message = w;
	break;


    case help:
	xmstr = ReadCatalogXms(MC_HELP_SET, MC_HELP, MC_DEF_HELP);
	XtSetArg(argt[i], XmNmessageString,		xmstr		); i++;
	w = XmCreateInformationDialog(tlev, "help_message", argt, i);
	XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_CANCEL_BUTTON));
        XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));

        txt_width = DisplayWidth (XtDisplay(w), DefaultScreen(XtDisplay(w)));
        txt_height = DisplayHeight (XtDisplay(w), DefaultScreen(XtDisplay(w)));
        txt_width = (txt_width > 850) ? 800 : txt_width - 50;
        txt_height = (txt_height > 900) ? 750 : txt_height - 150;
        i = InitArg(Text);
        XtSetArg(argt[i], XmNheight, txt_height); i++;
        XtSetArg(argt[i], XmNwidth, txt_width); i++;
        XtSetArg(argt[i], XmNeditMode, XmMULTI_LINE_EDIT); i++;
        XtSetArg(argt[i], XmNscrollBarDisplayPolicy, XmAS_NEEDED); i++;
        XtSetArg(argt[i], XmNscrollingPolicy, XmAUTOMATIC); i++;
        XtSetArg(argt[i], XmNeditable, False); i++;
	str = (char*) ReadCatalog(MC_HELP_SET, MC_HELP, MC_DEF_HELP);
        XtSetArg(argt[i], XmNvalue, strdup(str)); i++;
        text = XmCreateScrolledText(w, "help_message_text", argt, i);

        XtManageChild(text);
        XtManageChild(w);
        help_message = w;
	break;


    case copyright:
	if ((fp = fopen(COPYRIGHT,"r")) == NULL)
#if defined( __hp_osf )
	    xmstr = XmStringCreate("Cannot open copyright file '/usr/X11/copyright'.",
				XmFONTLIST_DEFAULT_TAG);
#else
	    xmstr = XmStringCreate("Cannot open copyright file '/etc/copyright'.",
				XmFONTLIST_DEFAULT_TAG);
#endif
	else {
	    xmstr = (XmString) NULL;
	
	    while (fgets(buffer, 128, fp) != NULL) {
		j = strlen(buffer);
		if ( buffer[j-1] == '\n' ) buffer[j-1] = '\0';
	    
		if ( xmstr != NULL )
		    xmstr = XmStringConcat(xmstr, XmStringSeparatorCreate());

		xmstr = XmStringConcat(xmstr,
	    			       XmStringCreate(buffer,
				       XmFONTLIST_DEFAULT_TAG));
	    }	    
	}

	fclose(fp);
	XtSetArg(argt[i], XmNmessageString,		xmstr		); i++;

	w = XmCreateInformationDialog(tlev, "copyright_msg", argt, i);
	XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_CANCEL_BUTTON));
	XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));
	
	XtAddCallback(w, XmNokCallback, CopyrightCB, (XtPointer) 0);    

	copyright_msg = w;
	break;
    

    case hostname:
	    
	nw = ReadCatalogXms(MC_LABEL_SET, MC_NW_LABEL,  MC_DEF_NW_LABEL);
	sv = ReadCatalogXms(MC_LABEL_SET, MC_START_LABEL, MC_DEF_START_LABEL);

	xmstr = ReadCatalogXms(MC_HELP_SET, MC_SYSTEM, MC_DEF_SYSTEM);
	XtSetArg(argt[i], XmNmessageString,		xmstr		); i++;
	XtSetArg(argt[i], XmNokLabelString,		nw		); i++;
	XtSetArg(argt[i], XmNcancelLabelString,		sv		); i++;

	w = XmCreateWarningDialog(tlev, "hostname_msg", argt, i);

	XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));

	XmStringFree(nw);
	XmStringFree(sv);

	hostname_message = w;
	break;


    case expassword:

	xmstr = ReadCatalogXms(MC_ERROR_SET, MC_PASSWD_EXPIRED, 
			    MC_DEF_PASSWD_EXPIRED);
	XtSetArg(argt[i], XmNmessageString,		xmstr		); i++;

	w = XmCreateQuestionDialog(tlev, "password_msg", argt, i);

	XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));

	passwd_message = w;
	break;


    case help_chooser:
	xmstr = ReadCatalogXms(MC_HELP_SET, MC_HELP_CHOOSER, MC_DEF_HELP_CHOOSER);

	w = XmCreateInformationDialog(tlev, "help_message", argt, i);
        XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_CANCEL_BUTTON));
        XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));

        txt_width = DisplayWidth (XtDisplay(w), DefaultScreen(XtDisplay(w)));
        txt_height = DisplayHeight (XtDisplay(w), DefaultScreen(XtDisplay(w)));
        txt_width = (txt_width > 850) ? 800 : txt_width - 50;
        txt_height = (txt_height > 900) ? 750 : txt_height - 150;
        i = InitArg(Text);
        XtSetArg(argt[i], XmNheight, txt_height); i++;
        XtSetArg(argt[i], XmNwidth, txt_width); i++;
        XtSetArg(argt[i], XmNeditMode, XmMULTI_LINE_EDIT); i++;
        XtSetArg(argt[i], XmNscrollBarDisplayPolicy, XmAS_NEEDED); i++;
        XtSetArg(argt[i], XmNscrollingPolicy, XmAUTOMATIC); i++;
        XtSetArg(argt[i], XmNeditable, False); i++;
        str = (char*)
	      ReadCatalog(MC_HELP_SET, MC_HELP_CHOOSER, MC_DEF_HELP_CHOOSER);
        XtSetArg(argt[i], XmNvalue, strdup(str)); i++;
        text = XmCreateScrolledText(w, "help_message_text", argt, i);

        XtManageChild(text);
        XtManageChild(w);
        help_message = w;
        break;
    }
Exemplo n.º 18
0
extern void
build_dssw(
	DSSW 		*dssw, 
	Calendar 	*c, 
	Widget 		 parent, 
	Boolean 	 show_notime, 
	Boolean 	 show_allday)
{
	Props		*p;
	DisplayType	 dt;
	Arg		 args[20];
	int		 n;
	Dimension	max_left_label_width;
	Widget		child[2];
	XmString	label_str;
	Dimension	highest, widest;
	Widget		prev, curr;
	Dimension	_toLabel, _toText, _toMenu, _toRC;

	dssw->cal = c;
	dssw->parent = parent;
	p = (Props *)c->properties;

	dt = get_int_prop(p, CP_DEFAULTDISP);

	dssw->show_notime_selection = show_notime;
	dssw->show_allday_selection = show_allday;

	/*
	**  One form manager for the widget
	*/
	dssw->dssw_form_mgr = XtVaCreateWidget("dssw_form_mgr",
		xmFormWidgetClass, 	parent,
		XmNautoUnmanage, 	False,
		NULL);

	label_str = XmStringCreateLocalized(catgets(c->DT_catd, 1, 828, "Date:"));
        dssw->date_label = XtVaCreateWidget("date_label",
		xmLabelGadgetClass, 	dssw->dssw_form_mgr,
		XmNlabelString,		label_str,
                NULL);
	XmStringFree(label_str);

	label_str = XmStringCreateLocalized(catgets(c->DT_catd, 1, 829, "Start:"));
        dssw->start_label = XtVaCreateWidget("start_label",
		xmLabelGadgetClass, 	dssw->dssw_form_mgr,
		XmNlabelString,		label_str,
                NULL);
	XmStringFree(label_str);

	label_str = XmStringCreateLocalized(catgets(c->DT_catd, 1, 832, "End:"));
        dssw->stop_label = XtVaCreateWidget("stop_label",
		xmLabelGadgetClass, 	dssw->dssw_form_mgr,
		XmNlabelString,		label_str,
                NULL);
	XmStringFree(label_str);

	label_str = XmStringCreateLocalized(catgets(c->DT_catd, 1, 835, "What:"));
        dssw->what_label = XtVaCreateWidget("what_label",
		xmLabelGadgetClass, 	dssw->dssw_form_mgr,
		XmNlabelString,		label_str,
                NULL);
	XmStringFree(label_str);
 
        dssw->date_text = XtVaCreateWidget("date_text",
		xmTextWidgetClass, 	dssw->dssw_form_mgr,
                XmNeditMode, 		XmSINGLE_LINE_EDIT,
		XmNmaxLength, 		DATE_LEN - 1,
                NULL);
 
	/*
	**  Radio button behavior for AM/PM selection for start time
	*/
	dssw->start_text = XtVaCreateWidget("start_text",
		xmTextWidgetClass, 	dssw->dssw_form_mgr,
		XmNeditMode, 		XmSINGLE_LINE_EDIT,
		XmNmaxLength, 		START_STOP_LEN - 1,
		NULL);

        dssw->start_menu = create_start_stop_time_menu(dssw->dssw_form_mgr,
		NULL, dssw_set_start_hour, (XtPointer)dssw, p, show_notime, 
		show_allday, &dssw->start_menu_widget_list, 
		&dssw->start_menu_widget_count);

	XtVaSetValues(dssw->start_menu,
		XmNnavigationType, 	XmTAB_GROUP,
		NULL);

        dssw->start_ampm_rc_mgr = XtVaCreateWidget("start_ampm_rc_mgr",
		xmRowColumnWidgetClass, dssw->dssw_form_mgr,
		XmNpacking, 		XmPACK_COLUMN,
		XmNorientation, 	XmHORIZONTAL,
		XmNradioBehavior, 	True,
		XmNisHomogeneous, 	True,
		XmNentryClass, 		xmToggleButtonGadgetClass,
		NULL);

	label_str = XmStringCreateLocalized(catgets(c->DT_catd, 1, 830, "AM"));
        child[0] = dssw->start_am = XtVaCreateWidget("start_am",
		xmToggleButtonGadgetClass, dssw->start_ampm_rc_mgr,
		XmNlabelString,		label_str,
		XmNsensitive, 		(dt == HOUR12) ? True : False,
		NULL);      
	XmStringFree(label_str);

	label_str = XmStringCreateLocalized(catgets(c->DT_catd, 1, 831, "PM"));
        child[1] = dssw->start_pm = XtVaCreateWidget("start_pm",
		xmToggleButtonGadgetClass, dssw->start_ampm_rc_mgr,
		XmNlabelString,		label_str,
		XmNsensitive, 		(dt == HOUR12) ? True : False,
		NULL);      
	XmStringFree(label_str);

	XtManageChildren(child, 2);

	/*
	**  Last and near the end, the stop stuff
	**  Radio button behavior for AM/PM selection for stop time
	*/
	dssw->stop_text = XtVaCreateWidget("stop_text",
		xmTextWidgetClass, 	dssw->dssw_form_mgr,
		XmNeditMode, 		XmSINGLE_LINE_EDIT,
		XmNmaxLength, 		START_STOP_LEN - 1,
		NULL);

        dssw->stop_menu = create_start_stop_time_menu(dssw->dssw_form_mgr,
		NULL, dssw_set_stop_hour, (XtPointer)dssw, p, show_notime, 
		False, &dssw->stop_menu_widget_list, 
		&dssw->stop_menu_widget_count);

	XtVaSetValues(dssw->stop_menu,
		XmNnavigationType, 	XmTAB_GROUP,
		NULL);

        dssw->stop_ampm_rc_mgr = XtVaCreateWidget("stop_ampm_rc_mgr",
		xmRowColumnWidgetClass, dssw->dssw_form_mgr,
		XmNpacking, 		XmPACK_COLUMN,
		XmNorientation, 	XmHORIZONTAL,
		XmNradioBehavior, 	True,
		XmNisHomogeneous, 	True,
		XmNentryClass, 		xmToggleButtonGadgetClass,
		NULL);

	label_str = XmStringCreateLocalized(catgets(c->DT_catd, 1, 833, "AM"));
        child[0] = dssw->stop_am = XtVaCreateWidget("stop_am",
		xmToggleButtonGadgetClass, dssw->stop_ampm_rc_mgr,
		XmNlabelString,		label_str,
		XmNsensitive, 		(dt == HOUR12) ? True : False,
		NULL);      
	XmStringFree(label_str);

	label_str = XmStringCreateLocalized(catgets(c->DT_catd, 1, 834, "PM"));
        child[1] = dssw->stop_pm = XtVaCreateWidget("stop_pm",
		xmToggleButtonGadgetClass, dssw->stop_ampm_rc_mgr,
		XmNlabelString,		label_str,
		XmNsensitive, 		(dt == HOUR12) ? True : False,
		NULL);      
	XmStringFree(label_str);

	XtManageChildren(child, 2);


	/*
	**  Finally the what text field
	*/
	n = 0;
        XtSetArg(args[n], XmNeditMode, 		XmMULTI_LINE_EDIT), n++;
/*	XtSetArg(args[n], XmNscrollVertical, 	True), n++;  */
	XtSetArg(args[n], XmNscrollHorizontal,	False), n++; 
	XtSetArg(args[n], XmNscrollingPolicy, 	XmAUTOMATIC), n++; 
	XtSetArg(args[n], XmNscrollBarDisplayPolicy, XmAS_NEEDED), n++;
	XtSetArg(args[n], XmNrows, 		3), n++;
	XtSetArg(args[n], XmNmaxLength, 	WHAT_LEN - 1), n++;

	dssw->what_text = XmCreateScrolledText(dssw->dssw_form_mgr, 
					       "what_text", args, n);

	dssw->what_scrollwindow = XtParent(dssw->what_text);
	XtManageChild(dssw->what_text);

	/*
	 * Do a layout
	 */
	_i18n_WidestWidget( 4, &prev, &max_left_label_width,
		dssw->date_label, dssw->start_label, dssw->stop_label,
		dssw->what_label );
	_toText = max_left_label_width + 2 * GAP;

	/*
	 * dssw->date_label, dssw->date_text
	 */
	_i18n_WidestWidget( 1, &curr, &widest, dssw->date_label );
	_toLabel = _toText - GAP - widest;
	_i18n_HighestWidgetAdjust( 2, &curr, &highest, dssw->date_label,
					dssw->date_text );
	XtVaSetValues( curr,
			XmNtopAttachment, XmATTACH_FORM,
			XmNtopOffset, GAP,
			NULL );
	XtVaSetValues( dssw->date_label,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toLabel,
			NULL );
	XtVaSetValues( dssw->date_text,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toText,
			XmNrightAttachment, XmATTACH_FORM,
			NULL );
	prev = curr;

	/*
	 * dssw->start_label, dssw->start_text, dssw->start_menu,
	 * dssw->start_ampm_rc_mgr
	 */
	_i18n_WidestWidget( 1, &curr, &widest, dssw->start_label );
	_toLabel = _toText - GAP - widest;
	_i18n_WidestWidget( 1, &curr, &widest, dssw->start_text );
	_toMenu = _toText + widest + GAP;
	_i18n_WidestWidget( 1, &curr, &widest, dssw->start_menu );
	_toRC = _toMenu + widest + GAP;
	_i18n_HighestWidgetAdjust( 4, &curr, &highest, dssw->start_label,
		dssw->start_text, dssw->start_menu, dssw->start_ampm_rc_mgr );
	XtVaSetValues( curr,
			XmNtopAttachment, XmATTACH_WIDGET,
			XmNtopWidget, prev,
			XmNtopOffset, GAP,
			NULL );
	XtVaSetValues( dssw->start_label,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toLabel,
			NULL );
	XtVaSetValues( dssw->start_text,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toText,
			NULL );
	XtVaSetValues( dssw->start_menu,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toMenu,
			NULL );
	XtVaSetValues( dssw->start_ampm_rc_mgr,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toRC,
			NULL );
	prev = curr;

	/*
	 * dssw->stop_label, dssw->stop_text, dssw->stop_menu,
	 * dssw->stop_ampm_rc_mgr
	 */
	_i18n_WidestWidget( 1, &curr, &widest, dssw->stop_label );
	_toLabel = _toText - GAP - widest;
	_i18n_WidestWidget( 1, &curr, &widest, dssw->stop_text );
	_toMenu = _toText + widest + GAP;
	_i18n_WidestWidget( 1, &curr, &widest, dssw->stop_menu );
	_toRC = _toMenu + widest + GAP;
	_i18n_HighestWidgetAdjust( 4, &curr, &highest, dssw->stop_label,
		dssw->stop_text, dssw->stop_menu, dssw->stop_ampm_rc_mgr );
	XtVaSetValues( curr,
			XmNtopAttachment, XmATTACH_WIDGET,
			XmNtopWidget, prev,
			XmNtopOffset, GAP,
			NULL );
	XtVaSetValues( dssw->stop_label,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toLabel,
			NULL );
	XtVaSetValues( dssw->stop_text,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toText,
			NULL );
	XtVaSetValues( dssw->stop_menu,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toMenu,
			NULL );
	XtVaSetValues( dssw->stop_ampm_rc_mgr,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toRC,
			NULL );
	prev = curr;

	/*
	 * dssw->what_label, dssw->what_scrollwindow
	 */
	_i18n_WidestWidget( 1, &curr, &widest, dssw->what_label );
	_toLabel = _toText - GAP - widest;
	XtVaSetValues( dssw->what_label,
			XmNtopAttachment, XmATTACH_WIDGET,
			XmNtopWidget, prev,
			XmNtopOffset, GAP,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toLabel,
			NULL );
	XtVaSetValues( dssw->what_scrollwindow,
			XmNtopAttachment, XmATTACH_WIDGET,
			XmNtopWidget, prev,
			XmNtopOffset, GAP,
			XmNleftAttachment, XmATTACH_FORM,
			XmNleftOffset, _toText,
			XmNrightAttachment, XmATTACH_FORM,
			XmNbottomAttachment, XmATTACH_FORM,
			NULL );
}
Exemplo n.º 19
0
bool wxTextCtrl::Create(wxWindow *parent,
                        wxWindowID id,
                        const wxString& value,
                        const wxPoint& pos,
                        const wxSize& size,
                        long style,
                        const wxValidator& validator,
                        const wxString& name)
{
    if( !CreateControl( parent, id, pos, size, style, validator, name ) )
        return false;
    PreCreation();

    m_tempCallbackStruct = NULL;
    m_modified = false;
    m_processedDefault = false;

    Widget parentWidget = (Widget) parent->GetClientWidget();

    Bool wantHorizScroll = (m_windowStyle & wxHSCROLL) != 0 ? True : False;
    // If we don't have horizontal scrollbars, we want word wrap.
    // OpenMotif 2.1 crashes if wantWordWrap is True in Japanese
    // locale (and probably other multibyte locales). The check might be
    // more precise
#if wxCHECK_LESSTIF() || wxCHECK_MOTIF_VERSION( 2, 2 )
    Bool wantWordWrap = wantHorizScroll == True ? False : True;
#else
    Bool wantWordWrap = False;
#endif

    if (m_windowStyle & wxTE_MULTILINE)
    {
        Arg args[8];
        int count = 0;
        XtSetArg (args[count], XmNscrollHorizontal, wantHorizScroll); ++count;
        if( m_font.IsOk() )
            XtSetArg (args[count], (String) wxFont::GetFontTag(),
                      m_font.GetFontType( XtDisplay(parentWidget) ) ); ++count;
        XtSetArg (args[count], XmNwordWrap, wantWordWrap); ++count;
        XtSetArg (args[count], XmNvalue, (const char*)value.mb_str()); ++count;
        XtSetArg (args[count], XmNeditable,
                  style & wxTE_READONLY ? False : True); ++count;
        XtSetArg (args[count], XmNeditMode, XmMULTI_LINE_EDIT ); ++count;

        m_mainWidget =
            (WXWidget) XmCreateScrolledText(parentWidget,
                                            name.char_str(),
                                            args, count);

        XtManageChild ((Widget) m_mainWidget);
    }
    else
    {
        m_mainWidget = (WXWidget)XtVaCreateManagedWidget
                                 (
                                  name.mb_str(),
                                  xmTextWidgetClass,
                                  parentWidget,
                                  wxFont::GetFontTag(), m_font.GetFontType( XtDisplay(parentWidget) ),
                                  XmNvalue, (const char*)value.mb_str(),
                                  XmNeditable, (style & wxTE_READONLY) ?
                                      False : True,
                                  NULL
                                 );

#if 0
        // TODO: Is this relevant? What does it do?
        int noCols = 2;
        if (!value.IsNull() && (value.length() > (unsigned int) noCols))
            noCols = value.length();
        XtVaSetValues((Widget) m_mainWidget,
                      XmNcolumns, noCols,
                      NULL);
#endif
    }

    // remove border if asked for
    if ( style & wxNO_BORDER )
    {
        XtVaSetValues((Widget)m_mainWidget,
                      XmNshadowThickness, 0,
                      NULL);
    }

    // install callbacks
    XtAddCallback((Widget) m_mainWidget, XmNvalueChangedCallback, (XtCallbackProc)wxTextWindowChangedProc, (XtPointer)this);

    XtAddCallback((Widget) m_mainWidget, XmNmodifyVerifyCallback, (XtCallbackProc)wxTextWindowModifyProc, (XtPointer)this);

    XtAddCallback((Widget) m_mainWidget, XmNactivateCallback, (XtCallbackProc)wxTextWindowActivateProc, (XtPointer)this);

    XtAddCallback((Widget) m_mainWidget, XmNfocusCallback, (XtCallbackProc)wxTextWindowGainFocusProc, (XtPointer)this);

    XtAddCallback((Widget) m_mainWidget, XmNlosingFocusCallback, (XtCallbackProc)wxTextWindowLoseFocusProc, (XtPointer)this);

    PostCreation();
    AttachWidget (parent, m_mainWidget, (WXWidget) NULL,
                  pos.x, pos.y, size.x, size.y);

    return true;
}
Exemplo n.º 20
0
Arquivo: ssX.c Projeto: q3k/ski
void scrnInitX(void)
{
    Widget toplevel, control;
    Widget mb, fileMenu, viewMenu, confMenu, helpMenu;
    Widget procFrame = NULL, bboxFrame = NULL;
#ifdef ICON_DEFINED
    Pixmap icon;
#endif
    XmString s;
    Arg args[10];
    unsigned i, n;
    int argc = 0;

    addRegwRsrcOpts();
    addDatwRsrcOpts();
    toplevel = XtAppInitialize(&app_context, "XSki",
			       options, topopts, &argc, NULL,
			       NULL, NULL, 0);
    top_level = toplevel;	/* XXX - temporary for Platform only */
    XtGetApplicationResources(toplevel, &app_data,
			      resources, toprsrc, NULL, 0);
    XtAppAddActions(app_context, actions, XtNumber(actions));
    dpy = XtDisplay(toplevel);

#ifdef ICON_DEFINED
    /* set default icon */
    icon = XCreateBitmapFromData(dpy, RootWindowOfScreen(XtScreen(toplevel)),
				 icon_bits, icon_width, icon_height);
    XtSetArg(args[0], XmNiconPixmap, icon);
    XtSetValues(toplevel, args, 1);
#endif

#if 0
    XSynchronize(dpy, True);
#endif

    /* create control window manager */
    control = XmCreateForm(toplevel, "control", NULL, 0);
    XtManageChild(control);

    /* Control window menubar */
    n = 0;
    XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM);		n++;
    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM);	n++;
    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM);	n++;
    mb = XmCreateMenuBar(control, "mb", args, n);
    XtManageChild(mb);
    fileMenu = createMBitem(mb, "File");
    viewMenu = createMBitem(mb, "View");
    confMenu = createMBitem(mb, "Configure");
    helpMenu = createMBitem(mb, "Help");

#if 0
    createSubmenuItem(fileMenu, "load", loadCallback);
#else
    createSubmenuItem(fileMenu, "load", 0);
#endif
    createSubmenuItem(fileMenu, "save", 0);
    createSubmenuItem(fileMenu, "trace", 0);
    createSubmenuItem(fileMenu, "traceOn", 0);
    createSubmenuItem(fileMenu, "traceOff", 0);
    createSubmenuItem(fileMenu, "read", 0);
    XtManageChild(XmCreateSeparatorGadget(fileMenu, "", NULL, 0));
    createSubmenuItem(fileMenu, "quit", simCmdCallback);

    createSubmenuItem(viewMenu, "program", programCallback);
    createSubmenuItem(viewMenu, "data", dataCallback);
    createSubmenuItem(viewMenu, "registers", regCallback);
    createSubmenuItem(viewMenu, "cache", 0);
    createSubmenuItem(viewMenu, "tlb", sdtCallback);
    XtManageChild(XmCreateSeparatorGadget(viewMenu, "", NULL, 0));
    createSubmenuItem(viewMenu, "callstack", cstCallback);
    createSubmenuItem(viewMenu, "statistics", 0);
    createSubmenuItem(viewMenu, "breakpoints", blistCallback);
    createSubmenuItem(viewMenu, "branches", 0);
    createSubmenuItem(viewMenu, "symbols", symlistCallback);
    createSubmenuItem(viewMenu, "macros", 0);

#if 0
/* No support for window format yet */
    createSubmenuItem(confMenu, "program", prgFmtCallback);
#else
    createSubmenuItem(confMenu, "program", 0);
#endif

    createSubmenuItem(confMenu, "data", 0);

#if 0
/* No support for window format yet */
    createSubmenuItem(confMenu, "registers", regFmtCallback);
#else
    createSubmenuItem(confMenu, "registers", 0);
#endif

    createSubmenuItem(helpMenu, "context", 0);
    createSubmenuItem(helpMenu, "overview", 0);
    createSubmenuItem(helpMenu, "commands", cmdHelpCallback);
    createSubmenuItem(helpMenu, "product", prodInfoCallback);

    /* Control window processor option menu */
    if (nproc > 1) {
	Widget procMenu, proc[NPROC];

	n = 0;
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET);	n++;
	XtSetArg(args[n], XmNtopWidget, mb);			n++;
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM);	n++;
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM);	n++;
	procFrame = XmCreateFrame(control, "", args, n);
	XtManageChild(procFrame);

	procMenu = XmCreatePulldownMenu(procFrame, "", NULL, 0);
	for (i = 0; i < nproc; i++) {
	    char name[4];

	    (void)sprintf(name, "p%d", i);
	    proc[i] = XmCreatePushButton(procMenu, name, NULL, 0);
	    XtAddCallback(proc[i], XmNactivateCallback,
			  changeCprocCallback, (XtPointer)i);
	}
	XtManageChildren(proc, nproc);
	n = 0;
	XtSetArg(args[n], XmNsubMenuId, procMenu);		n++;
	XtManageChild(XmCreateOptionMenu(procFrame, "procOption", args, n));
    }

    /* Control window button box */
    if (app_data.numButtons) {
	Widget bbox, btns[20];

	/* create button box manager */
	n = 0;
	XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET);		n++;
	XtSetArg(args[n], XmNtopWidget, procFrame ? procFrame : mb);	n++;
	XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM);		n++;
	XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM);		n++;
	bboxFrame = XmCreateFrame(control, "", args, n);
	XtManageChild(bboxFrame);

	/* create button box window */
	bbox = XmCreateRowColumn(bboxFrame, "bbox", NULL, 0);
	XtManageChild(bbox);
	/* create each button */
	for (i = 0; i < app_data.numButtons; i++) {
	    char name[8];

	    (void)sprintf(name, "bb%d", i);
	    btns[i] = XmCreatePushButton(bbox, name, NULL, 0);
	}
	XtManageChildren(btns, app_data.numButtons);
    }

    /* Control window command area */
    n = 0;
    XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET);		n++;
    XtSetArg(args[n], XmNtopWidget,
	     bboxFrame ? bboxFrame : procFrame ? procFrame : mb);	n++;
    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM);		n++;
    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM);		n++;
    cmd = XmCreateCommand(control, "cmd", args, n);
    XtManageChild(cmd);
    XtAddCallback(cmd, XmNcommandEnteredCallback, simCmdCallback, 0);

    /* command history box */
    n = 0;
    XtSetArg(args[0], XmNinitialFocus, cmd);	n++;
    XtSetValues(control, args, n);
    cmdHist = XmCommandGetChild(cmd, XmDIALOG_HISTORY_LIST);

    /* message window */
    msgs = XmCreateScrolledText(control, "msgs", NULL, 0);
    XtManageChild(msgs);
    n = 0;
    XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET);		n++;
    XtSetArg(args[n], XmNtopWidget, cmd);				n++;
    XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM);		n++;
    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM);		n++;
    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM);		n++;
    XtSetValues(XtParent(msgs), args, n);

    /* create stop simulation dialog */
	/* Consider changing this to a button.  This would allow other
	   functionality to still be active when simulation is going on.
	   For example, Help, Quit, opening and closing windows, etc. */
    stopsim = XmCreateWorkingDialog(control, "stopsim", NULL, 0);
    n = 0;
    XtSetArg(args[n], XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL);	n++;
    s = XmStringCreateLocalized("Running...");
    XtSetArg(args[n], XmNdialogTitle, s);				n++;
    s = XmStringCreateLocalized(" icnt: 0 ");
    XtSetArg(args[n], XmNmessageString, s);				n++;
    s = XmStringCreateLocalized("Stop");
    XtSetArg(args[n], XmNcancelLabelString, s);				n++;
    XtSetValues(stopsim, args, n);
    XtAddCallback(stopsim, XmNcancelCallback, stop_execLoopXCB, NULL);
    XtUnmanageChild(XmMessageBoxGetChild(stopsim, XmDIALOG_OK_BUTTON));
    XtUnmanageChild(XmMessageBoxGetChild(stopsim, XmDIALOG_HELP_BUTTON));
    XmStringFree(s);

    /* XXX - This should probably be inside regwInit */
    for (i = 0; i < topregw; i++)
	regwtbl[i].show = app_data.showRs[i];

    /* XXX - This should probably be inside datwInit */
    for (i = 0; i < topdatw; i++)
	datwtbl[i].show = app_data.viewDw[i];

    prgwInit();
    datwInit();
    regwInit();
    if (app_data.viewProg)
	prgwDrawX();
    datwDrawX();
    if (app_data.viewRegs)
	regwDrawX();

    noscreen = NO;
    XtRealizeWidget(toplevel);
}
Exemplo n.º 21
0
int main (int argc, char *argv[])
{
    Widget topWidget;
    Widget mainForm;
    Widget userForm;

    /* Menu Stuff */
    Widget menuBar, helpMenu;

    static String fallback_resources[] = { 
    	"*sgiMode: True",
    	"*useSchemes: all",
    	NULL }; 

    topWidget = XtVaAppInitialize(&nebulaIrcAppContext, "Nebula IRC",
	    NULL, 0, /* no command line options */
	    &argc, argv,
	    fallback_resources, /* fallback resource list */
	    NULL);

    mainWindow = XtVaCreateManagedWidget("main_window",
    	xmMainWindowWidgetClass, topWidget,
    	XmNcommandWindowLocation, XmCOMMAND_BELOW_WORKSPACE,
	XmNwidth, 600,
	XmNheight, 500,
    	NULL);

    /* create menu bar */
    {
	XmString fileMenuStr, userMenuStr, helpMenuStr;
	
    	fileMenuStr = XM_STRING_CREATE("File");
	userMenuStr = XM_STRING_CREATE("User");
    	helpMenuStr = XM_STRING_CREATE("Help");

    	menuBar = XmVaCreateSimpleMenuBar(mainWindow, "menubar",
    	    XmVaCASCADEBUTTON, fileMenuStr, 'F',
	    XmVaCASCADEBUTTON, userMenuStr, 'U',
    	    NULL);

    	XmStringFree(fileMenuStr);
	XmStringFree(userMenuStr);
    	XmStringFree(helpMenuStr);
    }
    
    /* File Menu */
    {
    	XmString prefStr;
    	XmString saveConvStr;
	XmString quitStr;
    	
    	prefStr = XM_STRING_CREATE("Preferences...");
	saveConvStr = XM_STRING_CREATE("Save Conversation...");
    	quitStr = XM_STRING_CREATE("Quit");
    	XmVaCreateSimplePulldownMenu(menuBar, "file_menu", 0,
    	    fileMenuCall,
	    XmVaPUSHBUTTON, prefStr, 'P', NULL, NULL,
	    XmVaPUSHBUTTON, saveConvStr, 'S', NULL, NULL,
    	    XmVaPUSHBUTTON, quitStr, 'Q', NULL, NULL,
    	    NULL);
    	XmStringFree(prefStr);
	XmStringFree(saveConvStr);
	XmStringFree(quitStr);
    }
    /* User Menu */
    {
    	XmString whoisStr;
    	XmString versionStr;
	XmString opStr;
	XmString deopStr;
    	
    	whoisStr = XM_STRING_CREATE("Whois");
	versionStr = XM_STRING_CREATE("Client version");
    	opStr = XM_STRING_CREATE("Op");
	deopStr = XM_STRING_CREATE("Deop");
    	XmVaCreateSimplePulldownMenu(menuBar, "user_menu", 1,
    	    userMenuCall,
	    XmVaPUSHBUTTON, whoisStr, 'W', NULL, NULL,
	    XmVaPUSHBUTTON, versionStr, '\0', NULL, NULL,
    	    XmVaPUSHBUTTON, opStr, 'O', NULL, NULL,
	    XmVaPUSHBUTTON, deopStr, 'D', NULL, NULL,
    	    NULL);
    	XmStringFree(whoisStr);
	XmStringFree(versionStr);
	XmStringFree(opStr);
	XmStringFree(deopStr);
    }
    /* Help Menu */
    {
	XmString helpCommandStr;
	XmString aboutStr;
	
	helpCommandStr = XM_STRING_CREATE("Commands...");
	aboutStr = XM_STRING_CREATE("About...");
   	helpMenu = XtVaCreateManagedWidget("Help",
    	    xmCascadeButtonWidgetClass, menuBar,
    	    XmNmnemonic, 'H',
    	    NULL);
   	XmVaCreateSimplePulldownMenu(menuBar, "Help", 2,
    	    helpMenuCall,
    	    XmVaPUSHBUTTON, aboutStr, 'A', NULL, NULL,
	    XmVaPUSHBUTTON, helpCommandStr, 'C', NULL, NULL,
    	    NULL);
	XmStringFree(helpCommandStr);
	XmStringFree(aboutStr);

	/* now set the help button */
    	XtVaSetValues(menuBar, XmNmenuHelpWidget, helpMenu, NULL);
    }
    
    /* now manage the menu bar */ 
    XtManageChild(menuBar);
    
    /* create a form */
    mainForm = XtVaCreateWidget("form", xmFormWidgetClass, mainWindow, XmNfractionBase, 3, NULL);

    /* vertical split user form */
    userForm = XtVaCreateWidget("userform", xmFormWidgetClass, mainForm,
    	    XmNfractionBase, 5,
	    XmNtopAttachment, XmATTACH_FORM,
	    XmNleftAttachment, XmATTACH_FORM,
	    XmNbottomAttachment, XmATTACH_FORM,
	    XmNrightAttachment, XmATTACH_FORM,
	    NULL);
    
    /* output area */
    {
   	Arg args[12];

    	XtSetArg(args[0], XmNeditable, False);
	XtSetArg(args[1], XmNeditMode, XmMULTI_LINE_EDIT);
	XtSetArg(args[2], XmNscrollHorizontal, False);
	XtSetArg(args[3], XmNwordWrap, True);
	XtSetArg(args[4], XmNtopAttachment, XmATTACH_POSITION);
	XtSetArg(args[5], XmNtopPosition, 0);
	XtSetArg(args[6], XmNbottomAttachment, XmATTACH_POSITION);
	XtSetArg(args[7], XmNbottomPosition, 5);
	XtSetArg(args[8], XmNleftAttachment, XmATTACH_POSITION);
	XtSetArg(args[9], XmNleftPosition, 0);
	XtSetArg(args[10], XmNrightAttachment, XmATTACH_POSITION);
	XtSetArg(args[11], XmNrightPosition, 4);
    	outputArea = XmCreateScrolledText(userForm, "output", args, 12);
	
	if (outputArea == NULL)
	    perror("outputArea: ");
	XtManageChild(outputArea);
    }
    
    /* user list at left */
    {
    	Arg args[9];
	
    	XtSetArg(args[0], XmNtopAttachment, XmATTACH_POSITION);
	XtSetArg(args[1], XmNtopPosition, 0);
	XtSetArg(args[2], XmNbottomAttachment, XmATTACH_POSITION);
	XtSetArg(args[3], XmNbottomPosition, 5);
	XtSetArg(args[4], XmNleftAttachment, XmATTACH_POSITION);
	XtSetArg(args[5], XmNleftPosition, 4);
	XtSetArg(args[6], XmNrightAttachment, XmATTACH_POSITION);
	XtSetArg(args[7], XmNrightPosition, 5);
	XtSetArg(args[8], XmNselectionPolicy, XmSINGLE_SELECT);
    	userList = XmCreateScrolledList(userForm, "list", args, 9);
	XtAddCallback(userList, XmNsingleSelectionCallback, userListSelectCbk, NULL);
	XtManageChild(userList);
    }
    XtManageChild(userForm);
    XtManageChild(mainForm);
    
    /* Command line area */
    commandInput = XtVaCreateWidget("command",
    	xmTextFieldWidgetClass, mainWindow,
    	XmNmaxLength, MAX_INPUT_LEN,
    	NULL);
    XtAddCallback(commandInput, XmNactivateCallback, commandInputCall, NULL);
    XtManageChild(commandInput);
    
    XtVaSetValues(mainWindow,
	    XmNmenuBar, menuBar,
	    XmNworkWindow, mainForm,
	    XmNcommandWindow, commandInput,
	    NULL);
    
    XtManageChild(mainWindow);
    XtRealizeWidget(topWidget);

    /* initialize System Status */
    sysState.isConnected = NO;
    
    /* get some preferences */
    getStartupPrefs(mainWindow);
    
    /* set focus to input area */
    /* For Motif 1.0 we should use _XmGrabTheFocus(target) according to FAQ */
    XmProcessTraversal(commandInput, XmTRAVERSE_CURRENT);
    
    /* initialize hostname and system info */
    /* should switch back to ARCHOS if uname not available */
    {
    	struct utsname sysInfo;
	char           tempName[2*SYSINFO_LEN];
	
    	gethostname(sysState.myHostName, MAXHOSTNAMELEN);
    	uname(&sysInfo);
	sprintf(tempName, "%s %s running on %s", sysInfo.sysname, sysInfo.release, sysInfo.machine);
	tempName[SYSINFO_LEN] = '\0';
	strcpy(sysState.systemInfo, tempName);
    }
    
    /* get the user login name from unix */
    {
        char *tempName;

        tempName = getenv("USER");
        if (tempName == NULL)
            tempName = getenv("LOGNAME");
        if (strlen(tempName) > MAX_NAME_LEN || tempName == NULL)
        {
            strcpy(sysState.myUnixname, "joesmith");
            printf("Failed to get a proper Unix login name. Using: %s\n", sysState.myUnixname); 
        }
        strcpy(sysState.myUnixname, tempName);
    }
 
    /* create unmanaged dialogs */
    createAboutBox(mainWindow);
    createCommandsHelpBox(mainWindow);  
    
    while(1)
    {
    	XEvent theEvent;
	XtAppNextEvent(nebulaIrcAppContext, &theEvent);
	XtDispatchEvent(&theEvent);
    }
}
Exemplo n.º 22
0
/* ARGSUSED */
void show_textCb ( Widget w, XtPointer clnt, 
					XmDrawingAreaCallbackStruct *call )
/********************************************************************************
*										*
**										*
*										*	
* T. Piper/SAIC          1/02   Freed xfle, xmfl, & text_font as necessary	*
* T. Piper/SAIC		 2/02	Added 2nd argument, XtPointer client_data	*
*										*
********************************************************************************/
{
static Widget textpane, textform, textdialog_cancel, textbutton_form, textdialog_save;
XmString tstr;
XmFontList xmfl;
XmFontListEntry xfle;
Arg args[10];
Cardinal argcnt;

/*----------------------------------------------------------------------------*/

if( ! text_dialog)
   {
   text_dialog = XmCreateBulletinBoardDialog(toplevel, "textdialog_panel", NULL, 0);

   tstr = XmStringCreateLocalized( "Sounding Text" );
   XtVaSetValues( text_dialog, XmNdialogTitle, tstr, NULL);
   XmStringFree(tstr);

   textpane = XtVaCreateManagedWidget("text_pane",
                                xmPanedWindowWidgetClass,
                                text_dialog,
                                XmNsashWidth, 1,
                                XmNsashHeight, 1,
                                NULL);


   textform = XtVaCreateWidget("textform", xmFormWidgetClass,
                                textpane, XmNwidth, 650, XmNheight, 800,
                                XmNfractionBase, 10, NULL );
   argcnt = 0;
   XtSetArg(args[argcnt],XmNscrollBarDisplayPolicy,XmAS_NEEDED); argcnt++;
   XtSetArg(args[argcnt],XmNscrollingPolicy,XmAUTOMATIC); argcnt++;
   XtSetArg(args[argcnt],XmNheight,800); argcnt++;
   XtSetArg(args[argcnt],XmNwidth,650); argcnt++;
   textfield = XmCreateScrolledText(textform,"textform_text",
				args, argcnt);
   if ( text_font ) XFreeFont ( XtDisplay(toplevel), text_font );
   text_font = XLoadQueryFont(XtDisplay(toplevel),"-adobe-courier-bold-r-normal--14-100-100-100-m-90-iso8859-1");
   xfle = XmFontListEntryCreate(XmFONTLIST_DEFAULT_TAG, XmFONT_IS_FONT, (XtPointer)text_font );
   xmfl = XmFontListAppendEntry(NULL, xfle);
   XtFree ( (XtPointer)xfle );
   XtVaSetValues(textfield, XmNeditMode, XmMULTI_LINE_EDIT,
                                XmNeditable, False,
				XmNfontList, xmfl,
                                NULL );
   XmFontListFree ( xmfl );
   XtManageChild ( textfield );
   XtManageChild ( textform );

   textbutton_form = XtVaCreateWidget("textbuttonform", xmFormWidgetClass,
                                textpane, XmNwidth, 650, XmNfractionBase, 10, NULL );

   textdialog_save = XtVaCreateManagedWidget ("SAVE",
                        xmPushButtonWidgetClass, textbutton_form,
                        XmNleftAttachment, XmATTACH_POSITION,
                        XmNleftPosition, 3,
                        XmNtopAttachment, XmATTACH_FORM,
                        XmNbottomAttachment, XmATTACH_FORM,
                        XmNrightAttachment, XmATTACH_POSITION,
                        XmNrightPosition, 5,
                        NULL );
   XtAddCallback(textdialog_save, XmNactivateCallback,
                        (XtCallbackProc)textdialog_save_cb, NULL);

   textdialog_cancel = XtVaCreateManagedWidget ("CLOSE",
                        xmPushButtonWidgetClass, textbutton_form,
                        XmNleftAttachment, XmATTACH_POSITION,
                        XmNleftPosition, 5,
                        XmNtopAttachment, XmATTACH_FORM,
                        XmNbottomAttachment, XmATTACH_FORM,
                        XmNrightAttachment, XmATTACH_POSITION,
                        XmNrightPosition, 7,
                        NULL );
   XtAddCallback(textdialog_cancel, XmNactivateCallback,
                        (XtCallbackProc)textdialog_cancel_cb, NULL);

   XtManageChild ( textbutton_form );

   XtManageChild ( textpane );
   XtManageChild ( text_dialog );
   
   }
else
   XtManageChild ( text_dialog );

update_text_values();

}
Exemplo n.º 23
0
Widget Browser::createWorkArea(Widget parent)
{
    Widget form1;
    Widget hsb;
    Widget label;
    Pixel bg;
    Arg wargs[50];
    int n;

    form1 = XtVaCreateManagedWidget("browForm", xmFormWidgetClass, parent,NULL);

    n = 0;
    XtSetArg(wargs[n], XmNwordWrap, False); n++;
    XtSetArg(wargs[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
    XtSetArg(wargs[n], XmNtopAttachment, XmATTACH_FORM); n++;
    XtSetArg(wargs[n], XmNleftAttachment, XmATTACH_FORM); n++;
    XtSetArg(wargs[n], XmNrightAttachment, XmATTACH_FORM); n++;
    XtSetArg(wargs[n], XmNeditable, False); n++;
    XtSetArg(wargs[n], XmNcolumns, 80); n++;
    XtSetArg(wargs[n], XmNrows, 16); n++;
    this->text = XmCreateScrolledText(form1, "Btext", wargs, n);
    XtManageChild(this->text);

    XtAddCallback(this->text, 
		  XmNmotionVerifyCallback, 
		  Browser::motionCB, 
		  (XtPointer)this);

    XtVaGetValues(XtParent(this->text),
		  XmNverticalScrollBar, &this->vsb,
		  XmNhorizontalScrollBar, &hsb,
		  NULL);
    XtVaGetValues(this->text,
		  XmNbackground, &bg,
		  NULL);
    XtVaSetValues(this->vsb, XmNforeground, bg, NULL);
    XtVaSetValues(hsb, XmNforeground, bg, NULL);

    XtAddCallback(this->vsb, 
		  XmNincrementCallback, 
		  Browser::pageIncCB, 
		  (XtPointer)this);

    XtAddCallback(this->vsb, 
		  XmNdecrementCallback, 
		  Browser::pageDecCB, 
		  (XtPointer)this);

    XtAddCallback(this->vsb, 
		  XmNpageIncrementCallback, 
		  Browser::pageIncCB, 
		  (XtPointer)this);

    XtAddCallback(this->vsb, 
		  XmNpageDecrementCallback, 
		  Browser::pageDecCB, 
		  (XtPointer)this);

    XtAddCallback(this->vsb, 
		  XmNtoTopCallback, 
		  Browser::pageDecCB, 
		  (XtPointer)this);

    XtAddCallback(this->vsb, 
		  XmNtoBottomCallback, 
		  Browser::pageIncCB, 
		  (XtPointer)this);

    XtAddCallback(this->vsb, 
		  XmNvalueChangedCallback, 
		  Browser::pageControlCB, 
		  (XtPointer)this);

    label = XtVaCreateManagedWidget(
		"browFromMark", xmLabelWidgetClass, form1,
		XmNbottomAttachment, XmATTACH_FORM,
		XmNbottomOffset, 20,
		XmNrightAttachment, XmATTACH_POSITION,
		XmNrightPosition, 20,
		NULL);
	
    this->byte_mark_offset = XtVaCreateManagedWidget(
		"byte_mark_offset", xmTextWidgetClass, form1,
		XmNleftAttachment, XmATTACH_WIDGET,
		XmNleftWidget, label,
		XmNleftOffset, 10,
		XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNtopOffset, -2,
		XmNtopWidget, label,
		XmNcolumns, 8,
		NULL);

    XtAddCallback(this->byte_mark_offset, 
		  XmNactivateCallback, 
		  Browser::gotoByteMarkOffsetCB, 
		  (XtPointer)this);

    XtAddCallback(this->byte_mark_offset,
		  XmNmodifyVerifyCallback,
		  Browser::integerMVCB,
		  (XtPointer)this);

    label = XtVaCreateManagedWidget(
		"browFromMark", xmLabelWidgetClass, form1,
		XmNbottomAttachment, XmATTACH_FORM,
		XmNbottomOffset, 20,
		XmNrightAttachment, XmATTACH_POSITION,
		XmNrightPosition, 70,
		NULL);
	
    this->line_mark_offset = XtVaCreateManagedWidget(
		"line_mark_offset", xmTextWidgetClass, form1,
		XmNleftAttachment, XmATTACH_WIDGET,
		XmNleftWidget, label,
		XmNleftOffset, 10,
		XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNtopOffset, -2,
		XmNtopWidget, label,
		XmNcolumns, 8,
		NULL);

    XtAddCallback(this->line_mark_offset, 
		  XmNactivateCallback, 
		  Browser::gotoLineMarkOffsetCB, 
		  (XtPointer)this);

    XtAddCallback(this->line_mark_offset,
		  XmNmodifyVerifyCallback,
		  Browser::integerMVCB,
		  (XtPointer)this);

    label = XtVaCreateManagedWidget(
		"browFromStartOfLine", xmLabelWidgetClass, form1,
		XmNbottomAttachment, XmATTACH_WIDGET,
		XmNbottomWidget, label,
		XmNbottomOffset, 10,
		XmNrightAttachment, XmATTACH_POSITION,
		XmNrightPosition, 20,
		NULL);

    this->byte_start_offset = XtVaCreateManagedWidget(
		"byte_start_offset", xmTextWidgetClass, form1,
		XmNleftAttachment, XmATTACH_WIDGET,
		XmNleftWidget, label,
		XmNleftOffset, 10,
		XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNtopWidget, label,
		XmNtopOffset, -2,
		XmNcolumns, 8,
		NULL);

    XtAddCallback(this->byte_start_offset, 
		  XmNactivateCallback, 
		  Browser::gotoByteStartOffsetCB, 
		  (XtPointer)this);

    XtAddCallback(this->byte_start_offset,
		  XmNmodifyVerifyCallback,
		  Browser::integerMVCB,
		  (XtPointer)this);

    label = XtVaCreateManagedWidget(
		"browFromTopOfFile", xmLabelWidgetClass, form1,
		XmNbottomAttachment, XmATTACH_WIDGET,
		XmNbottomWidget, label,
		XmNbottomOffset, 10,
		XmNrightAttachment, XmATTACH_POSITION,
		XmNrightPosition, 20,
		NULL);

    this->byte_top_offset = XtVaCreateManagedWidget(
		"byte_top_offset", xmTextWidgetClass, form1,
		XmNleftAttachment, XmATTACH_WIDGET,
		XmNleftWidget, label,
		XmNleftOffset, 10,
		XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNtopWidget, label,
		XmNtopOffset, -2,
		XmNcolumns, 8,
		NULL);

    XtAddCallback(this->byte_top_offset, 
		  XmNactivateCallback, 
		  Browser::gotoByteTopOffsetCB, 
		  (XtPointer)this);

    XtAddCallback(this->byte_top_offset,
		  XmNmodifyVerifyCallback,
		  Browser::integerMVCB,
		  (XtPointer)this);

    label = XtVaCreateManagedWidget(
		"browFromTopOfFile", xmLabelWidgetClass, form1,
		XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNbottomWidget, label,
		XmNrightAttachment, XmATTACH_POSITION,
		XmNrightPosition, 70,
		NULL);

    this->line_top_offset = XtVaCreateManagedWidget(
		"line_top_offset", xmTextWidgetClass, form1,
		XmNleftAttachment, XmATTACH_WIDGET,
		XmNleftWidget, label,
		XmNleftOffset, 10,
		XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNtopWidget, label,
		XmNtopOffset, -2,
		XmNcolumns, 8,
		NULL);
	
    XtAddCallback(this->line_top_offset, 
		  XmNactivateCallback, 
		  Browser::gotoLineTopOffsetCB, 
		  (XtPointer)this);

    XtAddCallback(this->line_top_offset,
		  XmNmodifyVerifyCallback,
		  Browser::integerMVCB,
		  (XtPointer)this);

    label = XtVaCreateManagedWidget(
		"browByteOffsets", xmLabelWidgetClass, form1,
		XmNbottomAttachment, XmATTACH_WIDGET,
		XmNbottomWidget, label,
		XmNbottomOffset, 10,
		XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNrightWidget, this->byte_top_offset,
		XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNleftWidget, this->byte_top_offset,
		XmNleftOffset, -10,
		XmNrightOffset, -10,
		NULL);
	
    label = XtVaCreateManagedWidget(
		"browLineOffsets", xmLabelWidgetClass, form1,
		XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNbottomWidget, label,
		XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNrightWidget, this->line_top_offset,
		XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
		XmNleftWidget, this->line_top_offset,
		XmNleftOffset, -10,
		XmNrightOffset, -10,
		NULL);

    XtVaSetValues(XtParent(this->text), 
		XmNbottomAttachment, XmATTACH_WIDGET,
		XmNbottomWidget, label,
		XmNbottomOffset, 10,
		NULL);

    Browser::AddHelpCallbacks(form1);
    return form1;
}
Exemplo n.º 24
0
/***************************************************************************
  Creates the process message dialog and callbacks.  Although many
  static items like signal names are set up, values for various fields
  like the priority and and process information are reassigned only
  after a particular process is selected.
***************************************************************************/
Widget
create_process_menu(Widget parent, char *name)
{
  Widget form;

#include "help/process_window.h"
#ifdef HAVE_KILL
  int i;
  XmStringTable xmstr;

  xmstr = ( XmString * ) XtMalloc (sizeof ( XmString ) * sigmap_elts ) ;
  for  ( i = 0; i < sigmap_elts; i++ ) {
    xmstr[i] = XmStringCreateLtoR ( signal_map[i].signal_name, 
				    XmFONTLIST_DEFAULT_TAG );
  }
#endif

  /* Create the dialog widget. */
  process_dialog = XmCreateMessageDialog ( parent, name, NULL, 0 );

  XtAddCallback(process_dialog, XmNokCallback, do_process_action_callback, 
		&dialog_signal_pos);

  XtAddCallback(process_dialog, XmNcancelCallback, do_process_cancel_callback, 
		NULL);

  XtAddCallback(process_dialog, XmNhelpCallback, help_callback, 
		process_window_help);

  /* 
     Remove unneeded buttons and children. 
   */

  /* This is something along the top line */
  XtUnmanageChild( XmMessageBoxGetChild ( process_dialog, 
					  XmDIALOG_SYMBOL_LABEL ) );
  XtUnmanageChild( XmMessageBoxGetChild ( process_dialog, 
					  XmDIALOG_MESSAGE_LABEL ) );
  /* Create a manager widget as a child of the dialog, to be used
     as the work area of the dialog, replacing the label and icon. 
  */

  process_form = XtVaCreateManagedWidget( "form", xmFormWidgetClass, 
					  process_dialog, NULL ) ;

  form = 
    XtVaCreateManagedWidget("processForm", xmFormWidgetClass,
			    process_form,
			    XmNorientation,       XmVERTICAL,
			    XmNtopAttachment,     XmATTACH_NONE,
			    XmNleftAttachment,    XmATTACH_FORM,
			    XmNrightAttachment,   XmATTACH_FORM,
			    XmNbottomAttachment,  XmATTACH_FORM,
			    NULL);

  /* Widget for ps info. XmCreateText doesn't do variable args.
     So set up a local temp argument array. Uck! Motif sucks. */
  {
    Arg args[20];
    int n = 0;
    
    XtSetArg(args[n], XmNeditable, False); n++;
    XtSetArg(args[n], XmNcursorPositionVisible, False); n++;
    XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
    XtSetArg(args[n], XmNscrollHorizontal, True); n++;
    XtSetArg(args[n], XmNscrollVertical, True); n++;
    XtSetArg(args[n], XmNtraversalOn, True); n++;
    XtSetArg(args[n], XmNtopAttachment,      XmATTACH_FORM); n++;
    XtSetArg(args[n], XmNleftAttachment,     XmATTACH_FORM); n++;
    XtSetArg(args[n], XmNrightAttachment,    XmATTACH_FORM); n++;
    XtSetArg(args[n], XmNbottomAttachment,   XmATTACH_WIDGET); n++;
    XtSetArg(args[n], XmNbottomWidget,       form); n++;
    /* done as X resource, but must be done. 
    XtSetArg(args[n], XmNwidth,              8000); n++;
    XtSetArg(args[n], XmNheight,             1000); n++; 
    XtSetArg(args[n], XmNunitType,           Xm100TH_FONT_UNITS); n++; 
    */
    XtSetArg(args[n], XmNvisualPolicy,       XmVARIABLE); n++;
    XtSetArg(args[n], XmNscrollingPolicy,    XmAUTOMATIC); n++;
    XtSetArg(args[n], XmNscrollBarDisplayPolicy, XmAS_NEEDED); n++;
    
    ps_info = XmCreateScrolledText(process_form, "PsInfo", args, n);
    XmTextSetString(ps_info, "");
  }
    
#ifdef HAVE_KILL
  signal_list = XmCreateScrolledList( form, "signal_list", NULL, 0 );

  XtManageChild(signal_list);
  XtVaSetValues(signal_list, 
		 XmNitems, xmstr,
		 XmNitemCount, sigmap_elts,
		 XmNvisibleItemCount, 6, 
		 XmNselectionPolicy,   XmSINGLE_SELECT, 
		 XmNtopAttachment,     XmATTACH_WIDGET,
		 XmNtopWidget,         ps_info, 
		 XmNtopAttachment,     XmATTACH_NONE,
		 XmNleftAttachment,    XmATTACH_FORM,
		 XmNrightAttachment,   XmATTACH_NONE,
		 XmNbottomAttachment,  XmATTACH_FORM,
		 NULL );

  for  ( i = 0; i < sigmap_elts; i++ ) {
    XmStringFree ( xmstr[i] );
  }
  XtFree((char *) xmstr);
  
  XtAddCallback( signal_list, XmNdefaultActionCallback, 
		 SignalListCallback, &dialog_signal_pos);
  XtAddCallback( signal_list, XmNsingleSelectionCallback, 
		 SignalListCallback, &dialog_signal_pos);

#endif
  
  /* Priority slider */
  priority_slider = 
    XtVaCreateManagedWidget ("priority", xmScaleWidgetClass, form,
			     XtVaTypedArg, XmNtitleString, 
			     XmRString, "priority",
			     10,
			     XmNmaximum, PRIO_MAX,
			     XmNminimum, PRIO_MIN,
			     XmNvalue, 10,  /* Will be reset later */
			     XmNshowValue,         True,
			     XmNorientation,       XmVERTICAL,
			     XmNtopAttachment,     XmATTACH_FORM,
			     XmNbottomAttachment,  XmATTACH_FORM,
			     XmNleftAttachment,    XmATTACH_WIDGET,

   /* We use XtParent() below because of some (all?) Lesstif 
      complaints. XmCreateScrolledList seems to creates
      a scrolled widgets parent and a list widget child and returns
      the list widget. */
#ifdef HAVE_KILL
			     XmNleftWidget,        XtParent(signal_list),
#endif

			     XmNrightAttachment,   XmATTACH_NONE,
			     XmNbottomAttachment,  XmATTACH_NONE,
			     NULL);

  XtAddCallback(priority_slider, XmNdragCallback, 
		set_priority_callback,  NULL);
  XtAddCallback(priority_slider, XmNvalueChangedCallback, 
		set_priority_callback,  NULL);

  /* Process group identifier */
  process_group_button = 
      XtVaCreateManagedWidget ("process group", xmToggleButtonWidgetClass, 
			       form, 
			       XmNtopAttachment,     XmATTACH_FORM,
			       XmNleftAttachment,    XmATTACH_WIDGET,
			       XmNleftWidget,        priority_slider,
			       XmNrightAttachment,   XmATTACH_NONE,
			       XmNbottomAttachment,  XmATTACH_NONE,
			       NULL);
  XtAddCallback(process_group_button, XmNvalueChangedCallback, 
		toggle_button_callback, &do_process_group);

#ifdef HAVE_SETPRIORITY
  priority_button = 
      XtVaCreateManagedWidget ("set priority", xmToggleButtonWidgetClass, 
			       form, 
			       XmNtopAttachment,     XmATTACH_WIDGET,
			       XmNtopWidget,         process_group_button,
			       XmNleftAttachment,    XmATTACH_WIDGET,
			       XmNleftWidget,        priority_slider,
			       XmNrightAttachment,   XmATTACH_NONE,
			       XmNbottomAttachment,  XmATTACH_FORM,
			       NULL);
  XtAddCallback(priority_button, XmNvalueChangedCallback, 
		toggle_button_callback, &do_priority);
#endif
    
  return(process_dialog);
  
}
Exemplo n.º 25
0
main (int argc, char *argv[])
{
    Widget         top, main_w, rc, text_w, label_w;
    XtAppContext   app;
    XmString       file, open, exit;
    Arg            args[10];
    int            n;

    //XtSetLanguageProc (NULL, NULL, NULL);

    /* initialize toolkit and create toplevel shell */
    top = XtVaOpenApplication (&app, "Demos", NULL, 0, &argc, argv, NULL,
                               sessionShellWidgetClass, NULL);



    /*
    main_w = XmCreateMainWindow (top, "main_w", NULL, 0);
    rc = XmCreateRowColumn (main_w, "work_area", NULL, 0);
    */

#if 0
    n = 0;
    XtSetArg (args[n], XmNorientation, XmVERTICAL/*XmHORIZONTAL*/);
    n++;
    XtSetArg (args[n], XmNresizeHeight, True);
    n++;
    rc = XmCreateRowColumn (top, "work_area", args, n);
#endif


    n = 0;
    rc = XmCreateFrame (top, "work_area", args, n);



    /*
    n = 0;
    //XtSetArg (args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++;
    XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
    label_w = XmCreateLabel (rc, "Filename:", args, n);
    XtManageChild (label_w);
    */


    n = 0;
    XtSetArg (args[n], XmNframeChildType, XmFRAME_TITLE_CHILD);
    n++;
    XtSetArg (args[n], XmNchildVerticalAlignment, XmALIGNMENT_CENTER);
    n++;
    label_w = XmCreateLabelGadget (rc, "!!! TITLE !!!", args, n);
    XtManageChild (label_w);



    /* Create ScrolledText -- this is work area for the MainWindow */
#if 1
    n = 0;
    XtSetArg (args[n], XmNrows, 12);
    n++;
    XtSetArg (args[n], XmNcolumns, 70);
    n++;
    XtSetArg (args[n], XmNeditMode, XmMULTI_LINE_EDIT);
    n++;
    XtSetArg (args[n], XmNtopAttachment, label_w/*XmATTACH_FORM*/);
    n++;
    text_w = XmCreateScrolledText (rc, "text_w", args, n);
    XtManageChild (text_w);
#endif



    XtManageChild (rc);
    XtRealizeWidget (top);
    XtAppMainLoop (app);
}
Exemplo n.º 26
0
int main(int argc, char *argv[])
{
    Arg             al[20];
    int             ac;
    int             canvaswidth, canvasheight;

    /* read command line options */
    if (Read_options (argc, argv) != 0)
	exit (-1);

    /* create the toplevel shell */
    toplevel = XtAppInitialize(&context, "", NULL, 0,
			       &argc, argv, NULL, NULL, 0);

    CS_error((void (*) ()) printf);

    printf("We serve line %d\n", Cur_link_ind);

    SIM_init (In_lb, Out_lb);

    /* default window size. */
    ac = 0;
    canvaswidth = 400;
    canvasheight = 700;
    XtSetArg(al[ac], XmNheight, canvaswidth);
    ac++;
    XtSetArg(al[ac], XmNwidth, canvasheight);
    ac++;
    XtSetValues(toplevel, al, ac);

    /* create a form widget. */
    ac = 0;
    form = XmCreateForm(toplevel, "form", al, ac);
    XtManageChild(form);

    /* 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(form, "menu_bar", al, ac);
    XtManageChild(menu_bar);

    /* create a textshow widget and attach it to the form. */
    ac = 0;
    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_POSITION);
    ac++;
    XtSetArg(al[ac], XmNleftPosition, 0);
    ac++;
    XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_POSITION);
    ac++;
    XtSetArg(al[ac], XmNbottomPosition, 93);
    ac++;
    XtSetArg(al[ac], XmNeditMode, XmMULTI_LINE_EDIT);
    ac++;
    textshow = XmCreateScrolledText(form, "text", al, ac);
    XtManageChild(textshow);
    XmTextSetEditable(textshow, False);

    Create_menus(menu_bar); 

    XtAppAddTimeOut(context,
		    950,
		    (XtTimerCallbackProc) timer_callback,
		    (XtPointer) NULL);

    XtRealizeWidget(toplevel);
    XtAppMainLoop(context);

    return (0);
}
Exemplo n.º 27
0
/*
** Create a dialog for the output of a shell command.  The dialog lives until
** the user presses the Dismiss button, and is then destroyed
*/
static void createOutputDialog(Widget parent, char *text)
{
    Arg al[50];
    int ac, rows, cols, hasScrollBar, wrapped;
    Widget form, textW, button;
    XmString st1;

    /* measure the width and height of the text to determine size for dialog */
    measureText(text, MAX_OUT_DIALOG_COLS, &rows, &cols, &wrapped);
    if (rows > MAX_OUT_DIALOG_ROWS) {
    	rows = MAX_OUT_DIALOG_ROWS;
    	hasScrollBar = True;
    } else
    	hasScrollBar = False;
    if (cols > MAX_OUT_DIALOG_COLS)
    	cols = MAX_OUT_DIALOG_COLS;
    if (cols == 0)
    	cols = 1;
    /* Without completely emulating Motif's wrapping algorithm, we can't
       be sure that we haven't underestimated the number of lines in case
       a line has wrapped, so let's assume that some lines could be obscured
       */
    if (wrapped)
	hasScrollBar = True;
    ac = 0;
    form = CreateFormDialog(parent, "shellOutForm", al, ac);

    ac = 0;
    XtSetArg(al[ac], XmNlabelString, st1=MKSTRING("OK")); ac++;
    XtSetArg(al[ac], XmNmarginWidth, BUTTON_WIDTH_MARGIN); ac++;
    XtSetArg(al[ac], XmNhighlightThickness, 0);  ac++;
    XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM);  ac++;
    XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE);  ac++;
    button = XmCreatePushButtonGadget(form, "ok", al, ac);
    XtManageChild(button);
    XtVaSetValues(form, XmNdefaultButton, button, NULL);
    XtVaSetValues(form, XmNcancelButton, button, NULL);
    XmStringFree(st1);
    XtAddCallback(button, XmNactivateCallback, destroyOutDialogCB,
    	    XtParent(form));
    
    ac = 0;
    XtSetArg(al[ac], XmNrows, rows);  ac++;
    XtSetArg(al[ac], XmNcolumns, cols);  ac++;
    XtSetArg(al[ac], XmNresizeHeight, False);  ac++;
    XtSetArg(al[ac], XmNtraversalOn, False); ac++;
    XtSetArg(al[ac], XmNwordWrap, True);  ac++;
    XtSetArg(al[ac], XmNscrollHorizontal, False);  ac++;
    XtSetArg(al[ac], XmNscrollVertical, hasScrollBar);  ac++;
    XtSetArg(al[ac], XmNhighlightThickness, 0);  ac++;
    XtSetArg(al[ac], XmNspacing, 0);  ac++;
    XtSetArg(al[ac], XmNeditMode, XmMULTI_LINE_EDIT);  ac++;
    XtSetArg(al[ac], XmNeditable, False);  ac++;
    XtSetArg(al[ac], XmNvalue, text);  ac++;
    XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM);  ac++;
    XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM);  ac++;
    XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_WIDGET);  ac++;
    XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM);  ac++;
    XtSetArg(al[ac], XmNbottomWidget, button);  ac++;
    textW = XmCreateScrolledText(form, "outText", al, ac);
    AddMouseWheelSupport(textW);
    XtManageChild(textW);
    
    XtVaSetValues(XtParent(form), XmNtitle, "Output from Command", NULL);
    ManageDialogCenteredOnPointer(form);
}
Exemplo n.º 28
0
void view_all_messages( /*@unused@*/ Widget w, /*@unused@*/ XtPointer clientData, /*@unused@*/ XtPointer callData) {
    Widget pane, my_form, button_close, dist, dist_units;
    Widget option_box, tnc_data, net_data, tnc_net_data,
        read_mine_only_button;
    unsigned int n;
#define NCNT 50
#define IncN(n) if (n< NCNT) n++; else fprintf(stderr, "Oops, too many arguments for array!\a")
    Arg args[NCNT];
    Atom delw;
    char temp[10];

    if (!All_messages_dialog) {

begin_critical_section(&All_messages_dialog_lock, "view_message_gui.c:view_all_messages" );

        All_messages_dialog = XtVaCreatePopupShell(langcode("AMTMW00001"),
                xmDialogShellWidgetClass, appshell,
                XmNdeleteResponse, XmDESTROY,
                XmNdefaultPosition, FALSE,
                XmNfontList, fontlist1,
                NULL);

        pane = XtVaCreateWidget("view_all_messages pane",
                xmPanedWindowWidgetClass, 
                All_messages_dialog,
                MY_FOREGROUND_COLOR,
                MY_BACKGROUND_COLOR,
                NULL);

        my_form =  XtVaCreateWidget("view_all_messages my_form",
                xmFormWidgetClass, 
                pane,
                XmNfractionBase, 5,
                XmNautoUnmanage, FALSE,
                XmNshadowThickness, 1,
                MY_FOREGROUND_COLOR,
                MY_BACKGROUND_COLOR,
                NULL);

        dist = XtVaCreateManagedWidget(langcode("AMTMW00002"),
                xmLabelWidgetClass, 
                my_form,
                XmNtopAttachment, XmATTACH_FORM,
                XmNtopOffset, 10,
                XmNbottomAttachment, XmATTACH_NONE,
                XmNleftAttachment, XmATTACH_FORM,
                XmNleftOffset, 10,
                XmNrightAttachment, XmATTACH_NONE,
                XmNtraversalOn, FALSE,
                MY_FOREGROUND_COLOR,
                MY_BACKGROUND_COLOR,
                XmNfontList, fontlist1,
                NULL);

        vm_dist_data = XtVaCreateManagedWidget("view_all_messages dist_data", 
                xmTextFieldWidgetClass, 
                my_form,
                XmNeditable,   TRUE,
                XmNcursorPositionVisible, TRUE,
                XmNsensitive, TRUE,
                XmNshadowThickness,    1,
                XmNcolumns, 8,
                XmNwidth, ((8*7)+2),
                XmNmaxLength, 8,
                XmNbackground, colors[0x0f],
                XmNtopAttachment, XmATTACH_FORM,
                XmNtopOffset, 5,
                XmNbottomAttachment,XmATTACH_NONE,
                XmNleftAttachment, XmATTACH_WIDGET,
                XmNleftWidget, dist,
                XmNleftOffset, 10,
                XmNrightAttachment,XmATTACH_NONE,
                XmNfontList, fontlist1,
                NULL);

        dist_units = XtVaCreateManagedWidget((english_units?langcode("UNIOP00004"):langcode("UNIOP00005")),
                xmLabelWidgetClass, 
                my_form,
                XmNtopAttachment, XmATTACH_FORM,
                XmNtopOffset, 10,
                XmNbottomAttachment, XmATTACH_NONE,
                XmNleftAttachment, XmATTACH_WIDGET,
                XmNleftWidget, vm_dist_data,
                XmNleftOffset, 10,
                XmNrightAttachment, XmATTACH_NONE,
                XmNtraversalOn, FALSE,
                MY_FOREGROUND_COLOR,
                MY_BACKGROUND_COLOR,
                XmNfontList, fontlist1,
                NULL);

        button_range = XtVaCreateManagedWidget(langcode("BULMW00003"),
                xmPushButtonGadgetClass, 
                my_form,
                XmNtopAttachment, XmATTACH_FORM,
                XmNtopOffset, 5,
                XmNbottomAttachment, XmATTACH_NONE,
                XmNleftAttachment, XmATTACH_WIDGET,
                XmNleftWidget, dist_units,
                XmNleftOffset, 10,
                XmNrightAttachment, XmATTACH_NONE,
                XmNnavigationType, XmTAB_GROUP,
                MY_FOREGROUND_COLOR,
                MY_BACKGROUND_COLOR,
                XmNfontList, fontlist1,
                NULL);

        XtAddCallback(button_range, XmNactivateCallback, All_messages_change_range, All_messages_dialog);

        button_close = XtVaCreateManagedWidget(langcode("UNIOP00003"),
                xmPushButtonGadgetClass, 
                my_form,
                XmNtopAttachment, XmATTACH_FORM,
                XmNtopOffset, 5,
                XmNbottomAttachment, XmATTACH_NONE,
                XmNleftAttachment, XmATTACH_WIDGET,
                XmNleftWidget, button_range,
                XmNleftOffset, 10,
                XmNrightAttachment, XmATTACH_FORM,
                XmNnavigationType, XmTAB_GROUP,
                MY_FOREGROUND_COLOR,
                MY_BACKGROUND_COLOR,
                XmNfontList, fontlist1,
                NULL);

        XtAddCallback(button_close, XmNactivateCallback, All_messages_destroy_shell, All_messages_dialog);

        n=0;
        XtSetArg(args[n],XmNforeground, MY_FG_COLOR); n++;
        XtSetArg(args[n],XmNbackground, MY_BG_COLOR); n++;
        XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
        XtSetArg(args[n], XmNtopWidget, dist); n++;
        XtSetArg(args[n], XmNtopOffset, 5); n++;
        XtSetArg(args[n], XmNbottomAttachment, XmATTACH_NONE); n++;
        XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;
        XtSetArg(args[n], XmNleftOffset, 5); n++;
        XtSetArg(args[n], XmNrightAttachment, XmATTACH_NONE); n++;
        XtSetArg(args[n], XmNfontList, fontlist1); n++;

        option_box = XmCreateRadioBox(my_form,
                "Vew Messages option box",
                args,
                n);

        XtVaSetValues(option_box,
                XmNpacking, XmPACK_TIGHT,
                XmNorientation, XmHORIZONTAL,
                NULL);

        tnc_data = XtVaCreateManagedWidget(langcode("WPUPDPD002"),
                xmToggleButtonGadgetClass,
                option_box,
                MY_FOREGROUND_COLOR,
                MY_BACKGROUND_COLOR,
                XmNfontList, fontlist1,
                NULL);

        XtAddCallback(tnc_data,XmNvalueChangedCallback,Read_messages_packet_toggle,"1");

        net_data = XtVaCreateManagedWidget(langcode("WPUPDPD003"),
                xmToggleButtonGadgetClass,
                option_box,
                MY_FOREGROUND_COLOR,
                MY_BACKGROUND_COLOR,
                XmNfontList, fontlist1,
                NULL);

        XtAddCallback(net_data,XmNvalueChangedCallback,Read_messages_packet_toggle,"2");

        tnc_net_data = XtVaCreateManagedWidget(langcode("WPUPDPD004"),
                xmToggleButtonGadgetClass,
                option_box,
                MY_FOREGROUND_COLOR,
                MY_BACKGROUND_COLOR,
                XmNfontList, fontlist1,
                NULL);

        XtAddCallback(tnc_net_data,XmNvalueChangedCallback,Read_messages_packet_toggle,"0");

        read_mine_only_button = XtVaCreateManagedWidget(langcode("WPUPDPD008"),
                xmToggleButtonGadgetClass,
                my_form,
                XmNvisibleWhenOff, TRUE,
                XmNindicatorSize, 12,
                XmNtopAttachment, XmATTACH_WIDGET,
                XmNtopWidget, dist,
                XmNtopOffset, 10,
                XmNbottomAttachment, XmATTACH_NONE,
                XmNleftAttachment, XmATTACH_WIDGET,
                XmNleftWidget, option_box,
                XmNleftOffset, 20,
                XmNrightAttachment, XmATTACH_NONE,
                MY_FOREGROUND_COLOR,
                MY_BACKGROUND_COLOR,
                XmNfontList, fontlist1,
                NULL);
 
        XtAddCallback(read_mine_only_button,XmNvalueChangedCallback,Read_messages_mine_only_toggle,"1");

        n=0;
        XtSetArg(args[n], XmNrows, 15); IncN(n);
        XtSetArg(args[n], XmNcolumns, 85); IncN(n);
        XtSetArg(args[n], XmNeditable, FALSE); IncN(n);
        XtSetArg(args[n], XmNtraversalOn, TRUE); IncN(n);
        XtSetArg(args[n], XmNlistSizePolicy, XmVARIABLE); IncN(n);
        XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); IncN(n);
        XtSetArg(args[n], XmNwordWrap, TRUE); IncN(n);
        XtSetArg(args[n], XmNscrollHorizontal, TRUE); IncN(n);
        XtSetArg(args[n], XmNscrollVertical, TRUE); IncN(n);
//        XtSetArg(args[n], XmNscrollBarDisplayPolicy, XmSTATIC); IncN(n);
        XtSetArg(args[n], XmNselectionPolicy, XmMULTIPLE_SELECT); IncN(n);
        XtSetArg(args[n], XmNcursorPositionVisible, FALSE); IncN(n);
        XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); IncN(n);
        XtSetArg(args[n], XmNtopWidget, option_box); IncN(n);
        XtSetArg(args[n], XmNtopOffset, 5); IncN(n);
        XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); IncN(n);
        XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); IncN(n);
        XtSetArg(args[n], XmNleftOffset, 5); IncN(n);
        XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); IncN(n);
        XtSetArg(args[n], XmNrightOffset, 5); IncN(n);
        XtSetArg(args[n], XmNforeground, MY_FG_COLOR); IncN(n);
        XtSetArg(args[n], XmNbackground, MY_BG_COLOR); IncN(n);
        XtSetArg(args[n], XmNfontList, fontlist1); n++;
 
        view_messages_text = XmCreateScrolledText(my_form,
                "view_all_messages text",
                args,
                n);

// It's hard to get tab groups working with ScrolledText widgets.  Tab'ing in is
// fine, but then I'm stuck in insert mode and it absorbs the tabs and beeps.

        pos_dialog(All_messages_dialog);

        delw = XmInternAtom(XtDisplay(All_messages_dialog),"WM_DELETE_WINDOW", FALSE);
        XmAddWMProtocolCallback(All_messages_dialog, delw, All_messages_destroy_shell, (XtPointer)All_messages_dialog);

        sprintf(temp,"%d",vm_range);
        XmTextFieldSetString(vm_dist_data,temp);

        switch (Read_messages_packet_data_type) {
            case(0):
                XmToggleButtonSetState(tnc_net_data,TRUE,FALSE);
                break;

            case(1):
                XmToggleButtonSetState(tnc_data,TRUE,FALSE);
                break;

            case(2):
                XmToggleButtonSetState(net_data,TRUE,FALSE);
                break;

            default:
                XmToggleButtonSetState(tnc_net_data,TRUE,FALSE);
                break;
        }

        if (Read_messages_mine_only) {
            XmToggleButtonSetState(read_mine_only_button,TRUE,FALSE);
            XtSetSensitive(vm_dist_data, FALSE);
        }
        else {
            XmToggleButtonSetState(read_mine_only_button,FALSE,FALSE);
            XtSetSensitive(vm_dist_data, TRUE);
        }

        XtManageChild(option_box);
        XtManageChild(view_messages_text);
        XtVaSetValues(view_messages_text, XmNbackground, colors[0x0f], NULL);
        XtManageChild(my_form);
        XtManageChild(pane);

        redraw_on_new_packet_data=1;

        // Dump all currently active messages to the new window
        view_message_display_file('M');

end_critical_section(&All_messages_dialog_lock, "view_message_gui.c:view_all_messages" );

        XtPopup(All_messages_dialog,XtGrabNone);
//        fix_dialog_vsize(All_messages_dialog);

        // Move focus to the Close button.  This appears to highlight the
        // button fine, but we're not able to hit the <Enter> key to
        // have that default function happen.  Note:  We _can_ hit the
        // <SPACE> key, and that activates the option.
//        XmUpdateDisplay(All_messages_dialog);
        XmProcessTraversal(button_close, XmTRAVERSE_CURRENT); 


    }
    else {
        (void)XRaiseWindow(XtDisplay(All_messages_dialog), XtWindow(All_messages_dialog));
    }
}
Exemplo n.º 29
0
void showtextwin(Widget parent)
{
    Widget pane, text_w, form, button, toggle;
    Arg    args[10];
    int    n=0;
    char  *textptr=NULL;

    if (!textdialog) {

        /* Create dialog */
        textdialog = XtVaCreatePopupShell("text_win",
                                          topLevelShellWidgetClass, parent, NULL);

        /* Create a pane to hold things (dialogs can only have 1 manager) */
        pane = XtVaCreateWidget("text_pane", xmPanedWindowWidgetClass,
                                textdialog, XmNsashWidth, 1, XmNsashHeight, 1, NULL);

        /* Create a form to hold the text area */
        form = XtVaCreateWidget("text_form1", xmFormWidgetClass, pane, NULL);

        /* Create text area */
        XtSetArg(args[n], XmNrows,     20);
        n++;
        XtSetArg(args[n], XmNcolumns,  70);
        n++;
        XtSetArg(args[n], XmNeditable, False);
        n++;
        XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT);
        n++;

        text_w = XmCreateScrolledText(form, "text_w", args, n);

        /* Attach text area Note the parent here */
        XtVaSetValues(XtParent(text_w),
                      XmNleftAttachment,   XmATTACH_FORM,
                      XmNrightAttachment,  XmATTACH_FORM,
                      XmNtopAttachment,    XmATTACH_FORM,
                      XmNbottomAttachment, XmATTACH_FORM,
                      NULL);
        XtManageChild(text_w);
        XtManageChild(form);

        /* A form to hold our toggle button */
        form = XtVaCreateWidget("text_form2", xmFormWidgetClass, pane, NULL);

        /* make a radio button for editing */
        toggle = XtVaCreateManagedWidget("Editable",
                                         xmToggleButtonWidgetClass, form, NULL);

        /* Store the text area */
        XtVaSetValues(toggle, XmNuserData, text_w, NULL);

        XtVaSetValues(toggle,
                      XmNleftAttachment,   XmATTACH_FORM,
                      XmNtopAttachment,    XmATTACH_FORM,
                      XmNbottomAttachment, XmATTACH_FORM,
                      NULL);

        /*
         * We'll add the callback below since we need the Apply button
         * to be passed to the callback
         */

        XtManageChild(form);

        /* Create a form to hold the buttons */
        form = XtVaCreateWidget("text_form3", xmFormWidgetClass, pane,
                                XmNfractionBase, 9, NULL);

        /* Create Buttons at the bottom */
        /* OK, Apply, Cancel, Reset, Save */

        button = XtVaCreateManagedWidget("OK", xmPushButtonWidgetClass,
                                         form, XmNtopAttachment, XmATTACH_FORM,
                                         XmNbottomAttachment,    XmATTACH_FORM,
                                         XmNleftAttachment,      XmATTACH_POSITION,
                                         XmNleftPosition,        1,
                                         XmNrightAttachment,     XmATTACH_POSITION,
                                         XmNrightPosition,       2, NULL);
        XtAddCallback(button, XmNactivateCallback, text_ok, NULL);

        button = XtVaCreateManagedWidget("Apply", xmPushButtonWidgetClass,
                                         form, XmNtopAttachment, XmATTACH_FORM,
                                         XmNbottomAttachment,    XmATTACH_FORM,
                                         XmNleftAttachment,      XmATTACH_POSITION,
                                         XmNleftPosition,        2,
                                         XmNrightAttachment,     XmATTACH_POSITION,
                                         XmNrightPosition,       3, NULL);
        XtAddCallback(button, XmNactivateCallback, text_apply, NULL);
        XtSetSensitive(button, False);
        XtAddCallback(toggle, XmNvalueChangedCallback, text_toggled, button);

        button = XtVaCreateManagedWidget("Cancel", xmPushButtonWidgetClass,
                                         form, XmNtopAttachment, XmATTACH_FORM,
                                         XmNbottomAttachment,    XmATTACH_FORM,
                                         XmNleftAttachment,      XmATTACH_POSITION,
                                         XmNleftPosition,        3,
                                         XmNrightAttachment,     XmATTACH_POSITION,
                                         XmNrightPosition,       4, NULL);
        XtAddCallback(button, XmNactivateCallback, text_cancel, NULL);

        button = XtVaCreateManagedWidget("Reset", xmPushButtonWidgetClass,
                                         form, XmNtopAttachment, XmATTACH_FORM,
                                         XmNbottomAttachment,    XmATTACH_FORM,
                                         XmNleftAttachment,      XmATTACH_POSITION,
                                         XmNleftPosition,        4,
                                         XmNrightAttachment,     XmATTACH_POSITION,
                                         XmNrightPosition,       5, NULL);
        XtAddCallback(button, XmNactivateCallback, text_reset, NULL);

        button = XtVaCreateManagedWidget("Save", xmPushButtonWidgetClass,
                                         form, XmNtopAttachment, XmATTACH_FORM,
                                         XmNbottomAttachment,    XmATTACH_FORM,
                                         XmNleftAttachment,      XmATTACH_POSITION,
                                         XmNleftPosition,        5,
                                         XmNrightAttachment,     XmATTACH_POSITION,
                                         XmNrightPosition,       6, NULL);
        XtAddCallback(button, XmNactivateCallback, text_save, NULL);

        button = XtVaCreateManagedWidget("Print", xmPushButtonWidgetClass,
                                         form, XmNtopAttachment, XmATTACH_FORM,
                                         XmNbottomAttachment,    XmATTACH_FORM,
                                         XmNleftAttachment,      XmATTACH_POSITION,
                                         XmNleftPosition,        6,
                                         XmNrightAttachment,     XmATTACH_POSITION,
                                         XmNrightPosition,       7, NULL);
        XtAddCallback(button, XmNactivateCallback, text_print, NULL);

        button = XtVaCreateManagedWidget("CSV", xmPushButtonWidgetClass,
                                         form, XmNtopAttachment, XmATTACH_FORM,
                                         XmNbottomAttachment,    XmATTACH_FORM,
                                         XmNleftAttachment,      XmATTACH_POSITION,
                                         XmNleftPosition,        7,
                                         XmNrightAttachment,     XmATTACH_POSITION,
                                         XmNrightPosition,       8, NULL);
        XtAddCallback(button, XmNactivateCallback, text_cvf, NULL);

        XtManageChild(form);

        /* Manage the pane or else nothing will show up */
        XtManageChild(pane);

    }

    /* Populate the text window in case it is visible */
    textptr = createtextsounding();
    set_textareatext(textptr);
    free(textptr);

    /* Make it visible */
    XtPopup(textdialog, XtGrabNone);
}
Exemplo n.º 30
0
int
main(int argc, char **argv)
{
  Widget	toplevel, form, mb, tf, sl, st, cb, menu, pb;
  XtAppContext	app;
  Arg		al[10];
  int		ac;

  XtSetLanguageProc(NULL, NULL, NULL);

  toplevel = XtVaAppInitialize(&app, "Phone", NULL, 0, &argc, argv, NULL, NULL);

  form = XtVaCreateManagedWidget("form", xmFormWidgetClass, toplevel,
		XmNwidth,		450,
		XmNheight,		300,
		XmNresizable,		True,
		XmNfractionBase,	3,
	NULL);

  mb = XtVaCreateManagedWidget("mb", xmRowColumnWidgetClass, form,
		XmNtopAttachment,	XmATTACH_FORM,
		XmNtopOffset,		0,
		XmNleftAttachment,	XmATTACH_FORM,
		XmNleftOffset,		0,
		XmNrightAttachment,	XmATTACH_FORM,
		XmNrightOffset,		0,
		XmNrowColumnType,	XmMENU_BAR,
	NULL);

  tf = XtVaCreateManagedWidget("tf", xmTextFieldWidgetClass, form,
		XmNtopAttachment,	XmATTACH_WIDGET,
		XmNtopOffset,		0,
		XmNtopWidget,		mb,
		XmNleftAttachment,	XmATTACH_FORM,
		XmNleftOffset,		0,
		XmNrightAttachment,	XmATTACH_FORM,
		XmNrightOffset,		0,
	NULL);

  ac = 0;
  XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
  XtSetArg(al[ac], XmNtopWidget, tf); ac++;
  XtSetArg(al[ac], XmNtopOffset, 0); ac++;
  XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
  XtSetArg(al[ac], XmNleftOffset, 0); ac++;
  XtSetArg(al[ac], XmNrightAttachment, XmATTACH_POSITION); ac++;
  XtSetArg(al[ac], XmNrightPosition, 1); ac++;
  XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
  XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
  sl = XmCreateScrolledList(form, "sl", al, ac);
  XtManageChild(sl);

  ac = 0;
  XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
  XtSetArg(al[ac], XmNtopWidget, tf); ac++;
  XtSetArg(al[ac], XmNtopOffset, 0); ac++;
  XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++;
  XtSetArg(al[ac], XmNleftWidget, XtParent(sl)); ac++;
  XtSetArg(al[ac], XmNleftOffset, 0); ac++;
  XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
  XtSetArg(al[ac], XmNrightOffset, 0); ac++;
  XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
  XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
  st = XmCreateScrolledText(form, "st", al, ac);
  XtManageChild(st);

  ac = 0;
  menu = XmCreatePulldownMenu(mb, "menu", al, ac);

  cb = XtVaCreateManagedWidget("cb", xmCascadeButtonGadgetClass, mb,
		XmNsubMenuId,	menu,
	NULL);

  pb = XtVaCreateManagedWidget("quit", xmPushButtonGadgetClass, menu,
	NULL);
  XtAddCallback(pb, XmNactivateCallback, Quit, NULL);

  XtRealizeWidget(toplevel);
  {
  static XtWidgetGeometry Expected[] = {
  	{CWWidth | CWHeight,		0,	0,	450,	300,	0,0,0,	/* Form */},
  	{CWWidth | CWHeight | CWX | CWY,	0,	0,	450,	31,	0,0,0,	/* two */},
  	{CWWidth | CWHeight | CWX | CWY,	5,	5,	28,	21,	0,0,0,	/* two */},
  	{CWWidth | CWHeight | CWX | CWY,	0,	31,	450,	31,	0,0,0,	/* two */},
  	{CWWidth | CWHeight | CWX | CWY,	0,	62,	150,	238,	0,0,0,	/* two */},
  	{CWWidth | CWHeight | CWX | CWY,	0,	0,	150,	238,	0,0,0,	/* two */},
  	{CWWidth | CWHeight | CWX | CWY,	150,	62,	300,	238,	0,0,0,	/* two */},
  	{CWWidth | CWHeight | CWX | CWY,	0,	223,	300,	15,	0,0,0,	/* two */},
  	{CWWidth | CWHeight | CWX | CWY,	0,	0,	300,	219,	0,0,0,	/* two */},
  	{CWWidth | CWHeight | CWX | CWY,	0,	0,	0,	0,	0,0,0,	/* two */},
};

  PrintDetails(toplevel, Expected);
  }

  XtAddCallback(st, XmNfocusCallback, Focus, "in");
  XtAddCallback(st, XmNlosingFocusCallback, Focus, "out");
  XtAddCallback(tf, XmNfocusCallback, Focus, "in");
  XtAddCallback(tf, XmNlosingFocusCallback, Focus, "out");

      LessTifTestMainLoop(toplevel);

  exit(0);
}