Example #1
0
void XFE_Dialog::show()
{
	XP_ASSERT(m_chrome);
	fe_NukeBackingStore(m_chrome);
	XtManageChild(m_chrome);
}
Example #2
0
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);
}