void XFE_Dialog::show() { XP_ASSERT(m_chrome); fe_NukeBackingStore(m_chrome); XtManageChild(m_chrome); }
void XFE_ReadAttachPanel::displayAttachmentProperties(int pos) { if (pos<0 || pos>=_numItems) return; if (!_propertiesDialog) { // create properties dialog Arg args[20]; int n; Visual *v=0; Colormap cmap=0; Cardinal depth=0; Widget shell=getBaseWidget(); while (!XtIsShell(shell)) shell=XtParent(shell); XtVaGetValues(shell,XtNvisual,&v,XtNcolormap,&cmap,XtNdepth,&depth,NULL); Pixel bg; XtVaGetValues(getBaseWidget(),XmNbackground,&bg,NULL); fe_icon attachIcon={ 0 }; fe_MakeIcon(_context,bg, &attachIcon, NULL, M_ToggleAttach.width, M_ToggleAttach.height, M_ToggleAttach.mono_bits, M_ToggleAttach.color_bits, M_ToggleAttach.mask_bits, FALSE); n=0; XtSetArg(args[n],XmNvisual,v); n++; XtSetArg(args[n],XmNdepth,depth); n++; XtSetArg(args[n],XmNcolormap,cmap); n++; XtSetArg(args[n],XmNdeleteResponse,XmUNMAP);n++; XtSetArg(args[n],XmNautoUnmanage,TRUE);n++; XtSetArg(args[n],XmNdialogStyle,XmDIALOG_MODELESS);n++; XtSetArg(args[n],XmNmwmFunctions,MWM_FUNC_MOVE|MWM_FUNC_CLOSE);n++; XtSetArg(args[n],XmNmwmDecorations,MWM_DECOR_BORDER|MWM_DECOR_TITLE|MWM_DECOR_MENU);n++; if (attachIcon.pixmap) { XtSetArg(args[n],XmNsymbolPixmap,attachIcon.pixmap);n++; } _propertiesDialog=XmCreateTemplateDialog(getBaseWidget(),"attachmentProps",args,n); fe_HackDialogTranslations(_propertiesDialog); fe_NukeBackingStore(_propertiesDialog); Widget form=XmCreateForm(_propertiesDialog,"form",NULL,0); XtManageChild(form); n=0; XtSetArg(args[n],XmNpacking,XmPACK_COLUMN); n++; XtSetArg(args[n],XmNnumColumns,1); n++; XtSetArg(args[n],XmNisAligned,FALSE); n++; XtSetArg(args[n],XmNalignment,XmVERTICAL); n++; XtSetArg(args[n],XmNleftAttachment,XmATTACH_FORM); n++; XtSetArg(args[n],XmNtopAttachment,XmATTACH_FORM); n++; XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM); n++; Widget labelRC=XmCreateRowColumn(form,"labelRC",args,n); XtManageChild(labelRC); n=0; XtSetArg(args[n],XmNalignment,XmALIGNMENT_END);n++; _nameLabel=XmCreateLabelGadget(labelRC,"nameLabel",args,n); _typeLabel=XmCreateLabelGadget(labelRC,"typeLabel",args,n); _encLabel=XmCreateLabelGadget(labelRC,"encLabel",args,n); _descLabel=XmCreateLabelGadget(labelRC,"descLabel",args,n); n=0; XtSetArg(args[n],XmNpacking,XmPACK_COLUMN); n++; XtSetArg(args[n],XmNnumColumns,1); n++; XtSetArg(args[n],XmNisAligned,FALSE); n++; XtSetArg(args[n],XmNalignment,XmVERTICAL); n++; XtSetArg(args[n],XmNleftAttachment,XmATTACH_WIDGET); n++; XtSetArg(args[n],XmNleftWidget,labelRC); n++; XtSetArg(args[n],XmNrightAttachment,XmATTACH_FORM); n++; XtSetArg(args[n],XmNtopAttachment,XmATTACH_FORM); n++; XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM); n++; Widget valueRC=XmCreateRowColumn(form,"valueRC",args,n); XtManageChild(valueRC); n=0; XtSetArg(args[n],XmNalignment,XmALIGNMENT_BEGINNING);n++; _nameValue=XmCreateLabelGadget(valueRC,"nameValue",args,n); _typeValue=XmCreateLabelGadget(valueRC,"typeValue",args,n); _encValue=XmCreateLabelGadget(valueRC,"encValue",args,n); _descValue=XmCreateLabelGadget(valueRC,"descValue",args,n); } // set value of data fields, manage/unmanage relevent fields XmString xs; // file name char *name=_attachments[pos].real_name; if (name) { xs=XmStringCreateLocalized(name); XtVaSetValues(_nameValue,XmNlabelString,xs,NULL); XmStringFree(xs); XtManageChild(_nameLabel); XtManageChild(_nameValue); } else { XtUnmanageChild(_nameLabel); XtUnmanageChild(_nameValue); } // mime type char *type=_attachments[pos].real_type; if (type) { xs=XmStringCreateLocalized(type); XtVaSetValues(_typeValue,XmNlabelString,xs,NULL); XmStringFree(xs); XtManageChild(_typeLabel); XtManageChild(_typeValue); } else { XtUnmanageChild(_typeLabel); XtUnmanageChild(_typeValue); } // encoding char *enc=_attachments[pos].real_encoding; if (enc) { xs=XmStringCreateLocalized(enc); XtVaSetValues(_encValue,XmNlabelString,xs,NULL); XmStringFree(xs); XtManageChild(_encLabel); XtManageChild(_encValue); } else { XtUnmanageChild(_encLabel); XtUnmanageChild(_encValue); } // long description char *desc=_attachments[pos].description; if (desc) { xs=XmStringCreateLocalized(desc); XtVaSetValues(_descValue,XmNlabelString,xs,NULL); XmStringFree(xs); XtManageChild(_descLabel); XtManageChild(_descValue); } else { XtUnmanageChild(_descLabel); XtUnmanageChild(_descValue); } // manage widget if not already managed XtManageChild(_propertiesDialog); }