void MenuTalker::createActionBuffer() { createActionButtons(-1); int button_height = 0; if (!actions.empty()) { button_height = static_cast<int>(actions.size()) * actions[0].btn->pos.h; } for (size_t i = 0; i < actions.size(); ++i) { actions[i].btn->pos.x = text_offset.x; actions[i].btn->pos.y = (static_cast<int>(i) * actions[i].btn->pos.h); actions[i].btn->refresh(); } label_name->setText(npc->name); label_name->setFont(font_who); textbox->resize(textbox->pos.w, button_height); align(); closeButton->enabled = true; advanceButton->enabled = false; setupTabList(); }
//create an XmRowColumns containing //a scrolled list for the parts in questions //and a couple of buttons to take some actions //with the parts whenn pressed void InvPartEditor::createGuiRowCol(Widget parent) { Arg args[5]; XtSetArg(args[0], XmNorientation, XmVERTICAL); Widget guiRowCol = XtCreateManagedWidget("guiRowCol", xmRowColumnWidgetClass, parent, args, 1); XtSetArg(args[0], XmNscrollingPolicy, XmAUTOMATIC); XtSetArg(args[1], XmNvisualPolicy, XmCONSTANT); XtSetArg(args[2], XmNheight, 300); XtSetArg(args[3], XmNwidth, 300); Widget scrolled = XmCreateScrolledWindow(guiRowCol, (char *)"Beispiel", args, 4); XtManageChild(scrolled); createPartsButtons(scrolled); createActionButtons(guiRowCol); }
DbTreeViewPanel::DbTreeViewPanel(QWidget *parent) : QWidget(parent), selectLinkedObjectsDialog(0) { QVBoxLayout *mainLayout = new QVBoxLayout(); dbTree=new DbTreeView(); mainLayout->addWidget(dbTree); createActionButtons(mainLayout); mainLayout->setContentsMargins(0,0,0,0); setLayout(mainLayout); connect(dbTree, SIGNAL(treeViewReady()), this, SLOT(treeReady())); }
/****************************************************** maskCreateDialog ******************************************************/ static void maskCreateDialog(ALINK *area) { struct maskWindow *maskWindow; Widget maskDialogShell, maskDialog; Widget form; Widget nameLabelW, nameTextW; Widget labelW, pushButtonW, prev; int i,j; static ActionAreaItem buttonItems[] = { { "Dismiss", maskDismissCallback, NULL }, { "Help", maskHelpCallback, NULL }, }; static maskItem maskItem[] = { { "Add/Cancel Alarms", {{"Add", 0},{"Cancel", 1},{"Reset", 2}}}, { "Enable/Disable Alarms", {{"Enable",10},{"Disable",11},{"Reset",12}}}, { "Ack/NoAck Alarms", {{"Ack", 20},{"NoAck", 21},{"Reset",22}}}, { "Ack/NoAck Transient Alarms",{{"AckT", 30},{"NoAckT", 31},{"Reset",32}}}, { "Log/NoLog Alarms", {{"Log", 40},{"NoLog", 41},{"Reset",42}}}, }; int num_buttons = 3; int num_rows = 5; if (!area) return; maskWindow = (struct maskWindow *)area->maskWindow; if (maskWindow && maskWindow->maskDialog){ if (XtIsManaged(maskWindow->maskDialog)) return; else XtManageChild(maskWindow->maskDialog); } maskWindow = (struct maskWindow *)calloc(1,sizeof(struct maskWindow)); area->maskWindow = (void *)maskWindow; maskWindow->area = (void *)area; maskDialogShell = XtVaCreatePopupShell("Modify Mask Settings", transientShellWidgetClass, area->toplevel, XmNallowShellResize, TRUE, NULL); /* Modify the window manager menu "close" callback */ { Atom WM_DELETE_WINDOW; XtVaSetValues(maskDialogShell, XmNdeleteResponse, XmDO_NOTHING, NULL); WM_DELETE_WINDOW = XmInternAtom(XtDisplay(maskDialogShell), "WM_DELETE_WINDOW", False); XmAddWMProtocolCallback(maskDialogShell,WM_DELETE_WINDOW, (XtCallbackProc)maskDismissCallback, (XtPointer)maskWindow); } maskDialog = XtVaCreateWidget("maskDialog", xmPanedWindowWidgetClass, maskDialogShell, XmNallowResize, TRUE, XmNsashWidth, 1, XmNsashHeight, 1, XmNuserData, area, NULL); form = XtVaCreateWidget("control_area", xmFormWidgetClass, maskDialog, XmNfractionBase, TIGHTNESS*(num_buttons+3) - 1, XmNallowResize, TRUE, NULL); /* --------------------------------- Group/Channel Name --------------------------------- */ nameLabelW = XtVaCreateManagedWidget("nameLabelW", xmLabelGadgetClass, form, XmNalignment, XmALIGNMENT_END, XmNtopAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_POSITION, XmNrightPosition, (TIGHTNESS*(num_buttons+3) - 1)/2, XmNrecomputeSize, True, (XtPointer)NULL); nameTextW = XtVaCreateManagedWidget("nameTextW", xmLabelGadgetClass, form, XmNalignment, XmALIGNMENT_BEGINNING, XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, nameLabelW, XmNrightAttachment, XmATTACH_NONE, XmNrecomputeSize, True, NULL); prev = nameLabelW; for (i = 0; i < num_rows; i++){ labelW = XtVaCreateManagedWidget(maskItem[i].label, xmLabelGadgetClass, form, XmNleftAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, prev, XmNtopOffset, 10, NULL); for (j = 0; j < num_buttons; j++){ long index=maskItem[i].choice[j].index; pushButtonW = XtVaCreateManagedWidget( maskItem[i].choice[j].label, xmPushButtonWidgetClass, form, XmNuserData, (XtPointer)area, XmNleftAttachment, XmATTACH_POSITION, XmNleftPosition, TIGHTNESS*(j+3), XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, prev, XmNtopOffset, 5, XmNrightAttachment, j != num_buttons-1? XmATTACH_POSITION : XmATTACH_FORM, XmNrightPosition, TIGHTNESS*(j+3) + (TIGHTNESS-1), NULL); XtAddCallback(pushButtonW, XmNactivateCallback, (XtCallbackProc)maskActivateCallback, (XtPointer)index); if (_passive_flag && i == ALARMACKT ) { /* ACKT */ XtVaSetValues(pushButtonW, XmNsensitive, FALSE, NULL); } } prev=labelW; } XtManageChild(form); /* Set the client data "Dismiss" and "Help" button's callbacks. */ buttonItems[0].data = (XtPointer)maskWindow; buttonItems[1].data = (XtPointer)maskWindow; (void)createActionButtons(maskDialog, buttonItems, XtNumber(buttonItems)); XtManageChild(maskDialog); maskWindow->maskDialog = maskDialog; maskWindow->nameLabelW = nameLabelW; maskWindow->nameTextW = nameTextW; XtRealizeWidget(maskDialogShell); }
/****************************************************** audioSetupCreateDialog ******************************************************/ static void audioSetupCreateDialog(Widget menuButton) { Widget audioSetupDialogShell; Widget form,form1; Widget filename; Widget scale; Widget button; Widget toggleButton; Widget frame, rowcol; Widget label; Pixel textBackground; XmString string; static ActionAreaItem audioSetup_items[] = { { "Dismiss", audioSetupDismissCallback, NULL} }; ALINK *area; if (!audioSetup.paudioInfo) initAudioSetup(); textBackground = bg_pixel[3]; XtVaGetValues(menuButton, XmNuserData, &area, NULL); if (audioSetup.audioSetupDialog){ if (XtIsManaged(audioSetup.audioSetupDialog)) return; else XtManageChild(audioSetup.audioSetupDialog); } audioSetupDialogShell = XtVaCreatePopupShell("ALH Audio Setup", transientShellWidgetClass, area->toplevel, NULL, 0); /* Modify the window manager menu "close" callback */ { Atom WM_DELETE_WINDOW; XtVaSetValues(audioSetupDialogShell, XmNdeleteResponse, XmDO_NOTHING, NULL); WM_DELETE_WINDOW = XmInternAtom(XtDisplay(audioSetupDialogShell), "WM_DELETE_WINDOW", False); XmAddWMProtocolCallback(audioSetupDialogShell,WM_DELETE_WINDOW, (XtCallbackProc)audioSetupDismissCallback, (XtPointer)menuButton); } form = XtVaCreateWidget("audioSetupDialog", xmFormWidgetClass, audioSetupDialogShell, NULL); audioSetup.audioSetupDialog = form; string = XmStringCreateSimple("Audio Beep Output Port"); label = XtVaCreateManagedWidget("audioOutputLabel", xmLabelGadgetClass, form, XmNlabelString, string, XmNtopAttachment, XmATTACH_FORM, XmNtopWidget, form, NULL); XmStringFree(string); frame = XtVaCreateWidget("frame", xmFrameWidgetClass, form, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, label, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); rowcol = XtVaCreateWidget("rowcol", xmRowColumnWidgetClass, frame, XmNspacing, 0, XmNmarginWidth, 10, XmNmarginHeight, 10, XmNradioBehavior, TRUE, XmNbackground, textBackground, NULL); toggleButton = XtVaCreateManagedWidget("None (Use keyboard speaker)", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, NULL); XmToggleButtonSetState(toggleButton, ((audioSetup.port==AUDIO_NONE)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupOutputChangeCallback, (XtPointer)AUDIO_NONE); toggleButton = XtVaCreateManagedWidget("Internal speaker", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, NULL); XmToggleButtonSetState(toggleButton, ((audioSetup.port==AUDIO_SPEAKER)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupOutputChangeCallback, (XtPointer)AUDIO_SPEAKER); toggleButton = XtVaCreateManagedWidget("Headphone", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, NULL); XmToggleButtonSetState(toggleButton, ((audioSetup.port==AUDIO_HEADPHONE)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupOutputChangeCallback, (XtPointer)AUDIO_HEADPHONE); toggleButton = XtVaCreateManagedWidget("Line out", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, NULL); XmToggleButtonSetState(toggleButton, ((audioSetup.port==AUDIO_LINE_OUT)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupOutputChangeCallback, (XtPointer)AUDIO_LINE_OUT); XtManageChild(rowcol); XtManageChild(frame); string = XmStringCreateSimple("Audio Source"); label = XtVaCreateManagedWidget("audioAudioSourceLabel", xmLabelGadgetClass, form, XmNlabelString, string, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, frame, NULL); XmStringFree(string); frame = XtVaCreateWidget("frame", xmFrameWidgetClass, form, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, label, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); audioSetup.audioSourceFrameWidget = frame; if (audioSetup.port==AUDIO_NONE) XtSetSensitive(frame, FALSE); else XtSetSensitive(frame, TRUE); rowcol = XtVaCreateWidget("rowcol", xmRowColumnWidgetClass, frame, XmNspacing, 0, XmNmarginWidth, 10, XmNmarginHeight, 10, XmNradioBehavior, TRUE, XmNbackground, textBackground, NULL); toggleButton = XtVaCreateManagedWidget("alh internal Hi pitch beep", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, /*1XmNalignment,XmALIGNMENT_CENTER*/ NULL); XmToggleButtonSetState(toggleButton, ((audioSetup.audioSource==AUDIO_SOURCE_HI)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupAudioSourceChangeCallback, (XtPointer)AUDIO_SOURCE_HI); toggleButton = XtVaCreateManagedWidget("alh internal Lo pitch beep", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, NULL); XmToggleButtonSetState(toggleButton, ((audioSetup.audioSource==AUDIO_SOURCE_LO)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupAudioSourceChangeCallback, (XtPointer)AUDIO_SOURCE_LO); toggleButton = XtVaCreateManagedWidget("Au/u-law (.au) file", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, NULL); XmToggleButtonSetState(toggleButton, ((audioSetup.audioSource==AUDIO_SOURCE_FILE)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupAudioSourceChangeCallback, (XtPointer)AUDIO_SOURCE_FILE); XtManageChild(rowcol); XtManageChild(frame); string = XmStringCreateSimple("Au/u-law (.au) filename"); label = XtVaCreateManagedWidget("audioFilenamelabel", xmLabelGadgetClass, form, XmNlabelString, string, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, frame, NULL); XmStringFree(string); button = XtVaCreateManagedWidget("Browse", xmPushButtonWidgetClass, form, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, frame, XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, label, XmNrightAttachment, XmATTACH_FORM, XmNshadowThickness, 1, NULL); filename = XtVaCreateManagedWidget("filename", xmTextFieldWidgetClass, form, XmNbackground, textBackground, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, button, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); XtAddCallback(button, XmNactivateCallback, audioSetupFilenameBrowseCallback, filename); XmTextFieldSetString(filename,audioSetup.paudioInfo->filename); XtAddCallback(filename, XmNactivateCallback, audioSetupFilenameChangeCallback, NULL); string = XmStringCreateSimple("Audio Beep Volume"); label = XtVaCreateManagedWidget("audioVolumelabel", xmLabelGadgetClass, form, XmNlabelString, string, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, filename, NULL); XmStringFree(string); frame = XtVaCreateWidget("frame", xmFrameWidgetClass, form, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, label, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); scale = XtVaCreateManagedWidget("VolumeScale", xmScaleWidgetClass, frame, XmNmaximum, AUDIO_MAX_GAIN, XmNminimum, AUDIO_MIN_GAIN, XmNvalue, audioSetup.volume, XmNshowValue, True, XmNorientation, XmHORIZONTAL, XmNbackground, textBackground, NULL); XtAddCallback(scale, XmNvalueChangedCallback, audioSetupVolumeChangeCallback, NULL); XtManageChild(frame); string = XmStringCreateSimple("Test Beep"); label = XtVaCreateManagedWidget("audioTestlabel", xmLabelGadgetClass, form, XmNlabelString, string, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, frame, XmNleftAttachment, XmATTACH_FORM, NULL); XmStringFree(string); button = XtVaCreateManagedWidget("Beep", xmPushButtonWidgetClass, form, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, label, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNshadowThickness, 2, NULL); XtAddCallback(button, XmNactivateCallback, audioSetupTestBeepCallback, NULL); /* Set the client data "Dismiss" button's callbacks. */ audioSetup_items[0].data = (XtPointer)menuButton; form1 = createActionButtons(form, audioSetup_items, XtNumber(audioSetup_items)); if (form1) XtVaSetValues(form1, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, button, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); XtManageChild(form); XtRealizeWidget(audioSetupDialogShell); }
void MenuTalker::createBuffer() { clearActionButtons(); if (static_cast<unsigned>(dialog_node) >= npc->dialog.size() || event_cursor >= npc->dialog[dialog_node].size()) return; createActionButtons(dialog_node); int button_height = 0; if (!actions.empty()) { button_height = static_cast<int>(actions.size()) * actions[0].btn->pos.h; } std::string line; // speaker name int etype = npc->dialog[dialog_node][event_cursor].type; std::string who; if (etype == EventComponent::NPC_DIALOG_THEM) { who = npc->name; } else if (etype == EventComponent::NPC_DIALOG_YOU) { who = hero_name; } label_name->setText(who); label_name->setFont(font_who); line = Utils::substituteVarsInString(npc->dialog[dialog_node][event_cursor].s, pc); // render dialog text to the scrollbox buffer Point line_size = font->calc_size(line,textbox->pos.w-(text_offset.x*2)); textbox->resize(textbox->pos.w, line_size.y + button_height); font->setFont(font_dialog); font->render( line, text_offset.x, 0, FontEngine::JUSTIFY_LEFT, textbox->contents->getGraphics(), text_pos.w - text_offset.x*2, font->getColor(FontEngine::COLOR_MENU_NORMAL) ); for (size_t i = 0; i < actions.size(); ++i) { actions[i].btn->pos.x = text_offset.x; actions[i].btn->pos.y = line_size.y + (static_cast<int>(i) * actions[i].btn->pos.h); actions[i].btn->refresh(); } align(); if (!actions.empty()) { advanceButton->enabled = false; closeButton->enabled = false; } else if (!npc->dialog[dialog_node].empty() && event_cursor < npc->dialog[dialog_node].size()-1 && npc->dialog[dialog_node][event_cursor+1].type != EventComponent::NONE) { advanceButton->enabled = true; closeButton->enabled = false; } else { advanceButton->enabled = false; closeButton->enabled = true; } setupTabList(); }
/****************************************************** audioSetupCreateDialog ******************************************************/ static void audioSetupCreateDialog(Widget menuButton) { Widget audioSetupDialogShell; Widget form,form1; Widget filename; Widget button; Widget toggleButton; Widget frame, rowcol; Widget label; Pixel textBackground; XmString string; static ActionAreaItem audioSetup_items[] = { { "Dismiss", audioSetupDismissCallback, NULL} }; ALINK *area; textBackground = bg_pixel[3]; XtVaGetValues(menuButton, XmNuserData, &area, NULL); if (audioSetup.audioSetupDialog){ if (XtIsManaged(audioSetup.audioSetupDialog)) return; else XtManageChild(audioSetup.audioSetupDialog); } audioSetupDialogShell = XtVaCreatePopupShell("ALH Audio Setup", transientShellWidgetClass, area->toplevel, NULL, 0); /* Modify the window manager menu "close" callback */ { Atom WM_DELETE_WINDOW; XtVaSetValues(audioSetupDialogShell, XmNdeleteResponse, XmDO_NOTHING, NULL); WM_DELETE_WINDOW = XmInternAtom(XtDisplay(audioSetupDialogShell), "WM_DELETE_WINDOW", False); XmAddWMProtocolCallback(audioSetupDialogShell,WM_DELETE_WINDOW, (XtCallbackProc)audioSetupDismissCallback, (XtPointer)menuButton); } form = XtVaCreateWidget("audioSetupDialog", xmFormWidgetClass, audioSetupDialogShell, NULL); audioSetup.audioSetupDialog = form; string = XmStringCreateSimple("Audio Beep Output"); label = XtVaCreateManagedWidget("audioOutputLabel", xmLabelGadgetClass, form, XmNlabelString, string, XmNtopAttachment, XmATTACH_FORM, XmNtopWidget, form, NULL); XmStringFree(string); frame = XtVaCreateWidget("frame", xmFrameWidgetClass, form, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, label, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); rowcol = XtVaCreateWidget("rowcol", xmRowColumnWidgetClass, frame, XmNspacing, 0, XmNmarginWidth, 10, XmNmarginHeight, 10, XmNradioBehavior, TRUE, XmNbackground, textBackground, NULL); toggleButton = XtVaCreateManagedWidget("Internal speaker", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, NULL); XmToggleButtonSetState(toggleButton, (Boolean)((audioSetup.port==AUDIO_INTERNAL_SPEAKER)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupOutputChangeCallback, (XtPointer)AUDIO_INTERNAL_SPEAKER); toggleButton = XtVaCreateManagedWidget("Default digital audio output", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, NULL); XmToggleButtonSetState(toggleButton, (Boolean)((audioSetup.port==AUDIO_DEFAULT_OUTPUT)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupOutputChangeCallback, (XtPointer)AUDIO_DEFAULT_OUTPUT); XtManageChild(rowcol); XtManageChild(frame); string = XmStringCreateSimple("Audio Beep Source"); label = XtVaCreateManagedWidget("audioBeepSourceLabel", xmLabelGadgetClass, form, XmNlabelString, string, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, frame, NULL); XmStringFree(string); frame = XtVaCreateWidget("frame", xmFrameWidgetClass, form, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, label, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); audioSetup.beepSourceFrameWidget = frame; if (audioSetup.port==AUDIO_INTERNAL_SPEAKER) XtSetSensitive(frame, FALSE); else XtSetSensitive(frame, TRUE); rowcol = XtVaCreateWidget("rowcol", xmRowColumnWidgetClass, frame, XmNspacing, 0, XmNmarginWidth, 10, XmNmarginHeight, 10, XmNradioBehavior, TRUE, XmNbackground, textBackground, NULL); toggleButton = XtVaCreateManagedWidget("alh internal beep", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, /*1XmNalignment,XmALIGNMENT_CENTER*/ NULL); XmToggleButtonSetState(toggleButton, (Boolean)((audioSetup.beepSource==BEEP_AUDIO_SOURCE_INTERNAL)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupBeepSourceChangeCallback, (XtPointer)BEEP_AUDIO_SOURCE_INTERNAL); if ( audioSetup.beep==0 ) { audioSetup.beep = beep; audioSetup.beepLength = beepLength; } toggleButton = XtVaCreateManagedWidget("WAV (.wav) file", xmToggleButtonGadgetClass, rowcol, XmNmarginHeight, 0, XmNbackground, textBackground, NULL); XmToggleButtonSetState(toggleButton, (Boolean)((audioSetup.beepSource==BEEP_AUDIO_SOURCE_FILE)?TRUE:FALSE),FALSE); XtAddCallback(toggleButton, XmNvalueChangedCallback, audioSetupBeepSourceChangeCallback, (XtPointer)BEEP_AUDIO_SOURCE_FILE); XtManageChild(rowcol); XtManageChild(frame); string = XmStringCreateSimple("WAVE (.wav) filename"); label = XtVaCreateManagedWidget("audioFilenamelabel", xmLabelGadgetClass, form, XmNlabelString, string, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, frame, NULL); XmStringFree(string); button = XtVaCreateManagedWidget("Browse", xmPushButtonWidgetClass, form, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, frame, XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, label, XmNrightAttachment, XmATTACH_FORM, XmNshadowThickness, 1, NULL); filename = XtVaCreateManagedWidget("filename", xmTextFieldWidgetClass, form, XmNbackground, textBackground, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, button, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); XtAddCallback(button, XmNactivateCallback, audioSetupFilenameBrowseCallback, filename); XmTextFieldSetString(filename,audioSetup.beepFileName); XtAddCallback(filename, XmNactivateCallback, audioSetupFilenameChangeCallback, NULL); string = XmStringCreateSimple("Test Beep"); label = XtVaCreateManagedWidget("audioTestlabel", xmLabelGadgetClass, form, XmNlabelString, string, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, filename, XmNleftAttachment, XmATTACH_FORM, NULL); XmStringFree(string); button = XtVaCreateManagedWidget("Beep", xmPushButtonWidgetClass, form, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, label, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNshadowThickness, 2, NULL); XtAddCallback(button, XmNactivateCallback, audioSetupTestBeepCallback, NULL); /* Set the client data "Dismiss" button's callbacks. */ audioSetup_items[0].data = (XtPointer)menuButton; form1 = createActionButtons(form, audioSetup_items, XtNumber(audioSetup_items)); if (form1) XtVaSetValues(form1, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, button, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); XtManageChild(form); XtRealizeWidget(audioSetupDialogShell); }