void XFE_ReadAttachPanel::setPaneHeight(int height) { if (!getBaseWidget() || height<1 || height==getPaneHeight()) return; int wasShown=isShown(); // if panel is shown, we need to hide/show to force XmPanedWindow to // notice the height change if (wasShown) hide(); // XmPaned window hack to set height of a pane XtVaSetValues(getBaseWidget(), XmNpaneMinimum, height, XmNpaneMaximum, height, NULL); if (wasShown) show(); XtVaSetValues(getBaseWidget(), XmNpaneMinimum, 1, XmNpaneMaximum, 10000, NULL); }
// update UI in response to selection change void XFE_ComposeAttachFolderView::updateSelectionUI() { // take Motif 'active' status away from Subject/text area so // that xfeCmdDelete gets routed appropriately. if (getBaseWidget()) _XmSetDestination(XtDisplay(getBaseWidget()),NULL); // update Delete menu entry getToplevel()->notifyInterested(XFE_View::chromeNeedsUpdating); }
int XFE_ReadAttachPanel::getPaneHeight() { if (!getBaseWidget()) return 0; Dimension height; XtVaGetValues(getBaseWidget(), XmNheight, &height, NULL); return (int)height; }
Viewer3D:: ~Viewer3D() { if(m_buttons) { QListIterator<QWidget*> i(*m_buttons); while (i.hasNext()) delete i.next(); delete m_buttons; } if(getBaseWidget()) { delete getBaseWidget(); } }
void XFE_ComposeAttachFolderView::attachLocation() { if (_attachLocationDialog==NULL) { _attachLocationDialog=new XFE_ComposeAttachLocationDialog(this); _attachLocationDialog->createWidgets(getBaseWidget()); } _attachLocationDialog->show(); }
// track viewable state of attachment folder tab void XFE_ComposeAttachFolderView::folderVisible(int visible) { _folderVisible=visible; if (visible) { // make sure pre-exisiting attachments are added addExistingAttachments(); // take Motif 'active' status away from Subject/text area so // that xfeCmdDelete gets routed appropriately. _XmSetDestination(XtDisplay(getBaseWidget()),NULL); } }
void Viewer3D:: setCamera( SoCamera *camera) { SoQtExaminerViewer::setCamera(camera); //call base class // forward to manager class the camera change ObjectSimpleViewer* objectViewer = qobject_cast <ObjectSimpleViewer*> (getBaseWidget()->parent()); if(objectViewer) { objectViewer->replacedCamera(camera); } }
int XFE_ComposeAttachFolderView::verifySafeToAttach() { #if 0 // this check is no longer needed - back end can handle // multiple simultaneous attachment operations if (MSG_DeliveryInProgress(getPane())) { char *msg=PR_smprintf(XP_GetString(XFE_MN_DELIVERY_IN_PROGRESS)); if (msg) { fe_Alert_2(getBaseWidget(),msg); XP_FREE(msg); } return FALSE; } #endif return TRUE; }
//////////////// // Protected //////////////// //! Set the GUI widgets. void rtEPDataObject::setupGUI() { m_optionsWidget.setupUi(getBaseWidget()); QBoxLayout *temp; // The cine widget temp = static_cast<QBoxLayout*>(m_optionsWidget.epTabs->widget(1)->layout()); temp->insertWidget(0, &m_cineWidget); temp = static_cast<QBoxLayout*>(m_optionsWidget.epTabs->widget(2)->layout()); temp->insertWidget(0, &m_objectSelectionBox); m_objectSelectionBox.addObjectType("OT_3DPointBuffer"); m_optionsWidget.surfaceOpacitySlider->setValue(100); m_optionsWidget.pointsOpacitySlider->setValue(100); m_optionsWidget.surfaceOpacityLabel->setText("100 %"); m_optionsWidget.pointsOpacityLabel->setText("100 %"); m_optionsWidget.repComboBox->insertItem(EP_SURFACE, "Surface"); m_optionsWidget.repComboBox->insertItem(EP_WIREFRAME, "Wireframe"); m_optionsWidget.repComboBox->insertItem(EP_POINTS, "Points"); m_optionsWidget.repComboBox->setCurrentIndex(EP_SURFACE); connect(m_optionsWidget.surfaceOpacitySlider, SIGNAL(valueChanged(int)), this, SLOT(surfaceOpacityChanged(int))); connect(m_optionsWidget.pointsOpacitySlider, SIGNAL(valueChanged(int)), this, SLOT(pointsOpacityChanged(int))); connect(m_optionsWidget.repComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(representationChanged(int))); connect(m_optionsWidget.minSliceSlider, SIGNAL(valueChanged(int)), this, SLOT(minSliceChanged(int))); connect(m_optionsWidget.maxSliceSlider, SIGNAL(valueChanged(int)), this, SLOT(maxSliceChanged(int))); connect(m_optionsWidget.applyAllNow, SIGNAL(clicked()), this, SLOT(updateObjectNow())); connect(&m_cineWidget, SIGNAL(triggerChanged(int)), this, SLOT(triggerChanged(int))); connect(&m_objectSelectionBox, SIGNAL(objectSelectionChanged(int)), this, SLOT(cartoPointObjectChanged(int))); connect(&m_objectSelectionBox, SIGNAL(selectedObjectModified(int)), this, SLOT(cartoPointObjectChanged(int))); connect(m_optionsWidget.inSliceSpace, SIGNAL(valueChanged(double)), this, SLOT(inSliceValueChanged(double))); connect(m_optionsWidget.betweenSliceSpace, SIGNAL(valueChanged(double)), this, SLOT(betweenSliceValueChanged(double))); connect(m_optionsWidget.colorByComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(colorByPropertyChanged(int))); connect(m_optionsWidget.effectSlider, SIGNAL(valueChanged(int)), this, SLOT(effectSizeChanged(int))); connect(m_optionsWidget.showPointsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showPointsChanged(bool))); }
//! Set the GUI widgets. void rtCathDataObject::setupGUI() { QWidget* wid = getBaseWidget(); m_cathGuiSetup.setupUi(wid); // Setup the points table. m_cathGuiSetup.pointsTable->setColumnWidth(0, 60); m_cathGuiSetup.pointsTable->setColumnWidth(1, 50); m_cathGuiSetup.pointsTable->setColumnWidth(2, 60); m_cathGuiSetup.pointsTable->setColumnWidth(3, 50); m_cathGuiSetup.pointsTable->setColumnWidth(4, 50); m_cathGuiSetup.pointsTable->setColumnWidth(5, 50); m_cathGuiSetup.pointsTable->setColumnWidth(6, 50); connect(m_cathGuiSetup.pointsTable, SIGNAL(cellChanged(int,int)), this, SLOT(tableCellChanged(int,int))); connect(m_cathGuiSetup.splinePropButton, SIGNAL(pressed()), this, SLOT(splinePropertyDialog())); connect(m_cathGuiSetup.pointPropButton, SIGNAL(pressed()), this, SLOT(pointPropertyDialog())); connect(m_cathGuiSetup.tipPropButton, SIGNAL(pressed()), this, SLOT(tipPropertyDialog())); connect(m_cathGuiSetup.pointSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(pointSizeChanged(int))); connect(m_splinePropertyDlg, SIGNAL(propertyChanged()), this, SLOT(Modified())); connect(m_pointPropertyDlg, SIGNAL(propertyChanged()), this, SLOT(Modified())); connect(m_tipPropertyDlg, SIGNAL(propertyChanged()), this, SLOT(Modified())); updatePropertyBox(); updateColorBox(); connect(m_cathGuiSetup.propertyBox, SIGNAL(currentIndexChanged(int)), this, SLOT(propertyChanged())); connect(m_cathGuiSetup.colorBox, SIGNAL(currentIndexChanged(int)), this, SLOT(colorChanged(int))); connect( m_cathGuiSetup.thicknessSpinBox, SIGNAL(valueChanged(double)), this, SLOT(splineThicknessChanged(double)) ); connect( m_cathGuiSetup.tensionSpinBox, SIGNAL(valueChanged(double)), this, SLOT(tensionChanged(double)) ); connect( m_cathGuiSetup.continuitySpinBox, SIGNAL(valueChanged(double)), this, SLOT(continuityChanged(double)) ); connect( m_cathGuiSetup.tipSpinBox, SIGNAL(valueChanged(double)), this, SLOT(tipValueChanged(double)) ); connect( m_cathGuiSetup.endSpinBox, SIGNAL(valueChanged(double)), this, SLOT(endValueChanged(double)) ); //gating connect(m_cathGuiSetup.minBox, SIGNAL(valueChanged(int)),this,SLOT(gateBoundsChanged())); }
void XFE_ComposeAttachFolderView::doCommand(CommandType command, void*,XFE_CommandInfo* info) { if (command==xfeCmdAttachFile) { attachFile(); } else if (command==xfeCmdAttachWebPage) { attachLocation(); } else if ((command==xfeCmdDelete || command==xfeCmdDeleteAttachment) && _folderVisible) { deleteAttach(); } else if (command==xfeCmdShowPopup) { // Handle popup menu XEvent *event = info->event; Widget w = XtWindowToWidget(event->xany.display, event->xany.window); if (w == NULL) w=getBaseWidget(); if (_xfePopup) { _xfePopup->position(event); _xfePopup->show(); } } }
void XFE_ReadAttachPanel::createWidgets(Widget parent) { // create panel UI XFE_AttachPanel::createWidgets(parent); // set up drag handler Widget dragWidget=XtNameToWidget(getBaseWidget(),"*pane"); if (dragWidget) _attachDrag=new XFE_ReadAttachDrag(dragWidget,this); // create popup Arg args[10]; int n=0; // disable keyboard accelerators and naviagtion in popup - they cause // crashes. In future, use XFE_PopupMenu when the menu items become real // xfeCmd's - it is more robust. XtSetArg(args[n],XmNtraversalOn,False);n++; _popupMenu = XFE_PopupMenu::CreatePopupMenu(_popupParent, "msgViewAttachPopup",args,n); _open=XmCreatePushButtonGadget(_popupMenu,"open",NULL,0); XtAddCallback(_open,XmNactivateCallback,OpenCb,this); XtManageChild(_open); _save=XmCreatePushButtonGadget(_popupMenu,"save",NULL,0); XtAddCallback(_save,XmNactivateCallback,SaveCb,this); XtManageChild(_save); _properties=XmCreatePushButtonGadget(_popupMenu,"properties",NULL,0); XtAddCallback(_properties,XmNactivateCallback,PropertiesCb,this); XtManageChild(_properties); initializePopupMenu(); }
void XFE_AddrBookView::abCall() { int count = 0; const int *indices = 0; m_outliner->getSelection(&indices, &count); if (count > 0 && indices) { #if defined(USE_ABCOM) #else /* Take the first one */ ABID type; ABID entry; entry = AB_GetEntryIDAt((AddressPane *) m_abPane, (uint32) indices[0]); if (entry == MSG_VIEWINDEXNONE) return; AB_GetType(m_dir, m_AddrBook, entry, &type); /* Select */ if (type != ABTypePerson) return; char a_line[AB_MAX_STRLEN]; a_line[0] = '\0'; char cmdstr[AB_MAX_STRLEN]; cmdstr[0] = '\0'; char *email= NULL; if ((AB_GetEmailAddress(m_dir, m_AddrBook, entry, a_line) != MSG_VIEWINDEXNONE)&& XP_STRLEN(a_line)) email = XP_STRDUP(a_line); else { /* Can not call w/o email */ // Prompt the user to enter the email address char tmp[128]; XP_SAFE_SPRINTF(tmp, sizeof(tmp), "%s", XP_GetString(MK_MSG_CALL_NEEDS_EMAILADDRESS)); fe_Message(m_contextData, tmp); return; }/* else */ char *coolAddr = NULL; if (AB_GetCoolAddress(m_dir, m_AddrBook, entry, a_line) != MSG_VIEWINDEXNONE) coolAddr = XP_STRDUP(a_line); short use; if (AB_GetUseServer(m_dir, m_AddrBook, entry, &use) == MSG_VIEWINDEXNONE) /* Can't determine which mode; use default */ use = kDefaultDLS; if (email && XP_STRLEN(email)) fe_showConference(getBaseWidget(), email, use, coolAddr); else { /* prompt user to enter email address for this person */ char tmp[128]; XP_SAFE_SPRINTF(tmp, sizeof(tmp), "%s", XP_GetString(MK_MSG_CALL_NEEDS_EMAILADDRESS)); fe_Message(m_contextData, tmp); }/* else */ if (email) XP_FREE((char *) email); if (coolAddr) XP_FREE((char *) coolAddr); #endif /* USE_ABCOM */ }/* if */ }
XFE_ABNameGenTabView::XFE_ABNameGenTabView(XFE_Component *top, XFE_View *view): XFE_PropertyTabView(top, view, XFE_AB_NAME_GENERAL_TAB) { int ac, numForms = AB_LAST+2; Arg av[20]; Widget topForm = getBaseWidget(), label = NULL, stripForm[AB_LAST+2]; char *genTabLabels[AB_LAST+1]; Dimension width; genTabLabels[AB_FIRST_NAME] = XP_GetString(XFE_AB_FIRSTNAME); genTabLabels[AB_LAST_NAME] = XP_GetString(XFE_AB_LASTNAME); genTabLabels[AB_DISPLAY_NAME] = XP_GetString(XFE_AB_DISPLAYNAME); genTabLabels[AB_EMAIL] = XP_GetString(XFE_AB_EMAIL); genTabLabels[AB_NICKNAME] = XP_GetString(XFE_AB_NICKNAME); genTabLabels[AB_TITLE] = XP_GetString(XFE_AB_TITLE); genTabLabels[AB_COMPANY_NAME] = XP_GetString(XFE_AB_COMPANY); genTabLabels[AB_LAST] = XP_GetString(XFE_AB_NOTES); int i; // for use in multiple for loops... // without breaking newer ANSI C++ rules for (i=0; i < numForms; i++) { ac = 0; stripForm[i] = XmCreateForm(topForm, "strip", av, ac); if (i < (AB_LAST+1)) { /* Create labels */ label = XtVaCreateManagedWidget (genTabLabels[i], xmLabelGadgetClass, stripForm[i], XmNalignment, XmALIGNMENT_END, NULL); m_labels[i] = label; XtVaSetValues(label, XmNleftAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_NONE, XmNbottomAttachment, XmATTACH_FORM, 0); XtVaGetValues(label, XmNwidth, &width, 0); m_labelWidth = (m_labelWidth < width)?width:m_labelWidth; /* TextF / Text */ if (i < AB_LAST) { /* TextF */ ac = 0; m_textFs[i] = fe_CreateTextField(stripForm[i], (char *) genTabLabels[i], av, ac); XtVaSetValues(m_textFs[i], XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, label, XmNtopAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, 0); XtManageChild(m_textFs[i]); }/* if */ else { /* Text */ ac = 0; XtSetArg (av[ac], XmNheight, 100); ac++; XtSetArg (av[ac], XmNeditMode, XmMULTI_LINE_EDIT); ac++; m_notesTxt = fe_CreateText(stripForm[i], "notesText", av, ac); XtVaSetValues(m_notesTxt, XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, label, XmNtopAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, 0); XtManageChild(m_notesTxt); }/* else */ }/* if */ else { /* the toggle */ XmString xmstr; xmstr = XmStringCreate(XP_GetString(XFE_AB_PREFHTML), XmFONTLIST_DEFAULT_TAG); ac = 0; XtSetArg (av[ac], XmNlabelString, xmstr); ac++; m_prefHTMLTog = XmCreateToggleButton(stripForm[i], "prefHTMLTog", av, ac); XtVaSetValues(m_prefHTMLTog, XmNleftAttachment, XmATTACH_FORM, XmNleftOffset, m_labelWidth, XmNtopAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_NONE, XmNbottomAttachment, XmATTACH_FORM, 0); XtManageChild(m_prefHTMLTog); }/* else */ if (i == 0) XtVaSetValues(stripForm[i], XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM, XmNtopOffset, 10, 0); else XtVaSetValues(stripForm[i], XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, stripForm[i-1], XmNtopOffset, (i == AB_TITLE || i == AB_EMAIL || i == AB_LAST)?10:3, 0); XtManageChild(stripForm[i]); }/* for i */ for (i=0; i < (AB_LAST+1); i++) { XtVaSetValues(m_labels[i], XmNwidth, m_labelWidth, 0); }/* for i */ }
XFE_ABDirGenTabView::XFE_ABDirGenTabView(XFE_Component *top, XFE_View *view): XFE_PropertyTabView(top, view, XFE_AB_NAME_GENERAL_TAB) { int ac, numForms = ABDIR_LAST+ABDIR_SECLAST; Arg av[20]; Widget topForm = getBaseWidget(), label = NULL, stripForm[ABDIR_LAST+ABDIR_SECLAST]; char *genTabLabels[ABDIR_LAST+ABDIR_SECLAST]; Dimension width, m_labelWidth = 0; genTabLabels[ABDIR_DESCRIPTION] = XP_GetString(XFE_ABDIR_DESCRIPT); genTabLabels[ABDIR_LDAPSERVER] = XP_GetString(XFE_ABDIR_SERVER); genTabLabels[ABDIR_SEARCHROOT] = XP_GetString(XFE_ABDIR_SERVER_ROOT); genTabLabels[ABDIR_PORTNUMBER] = XP_GetString(XFE_ABDIR_PORT_NUM); genTabLabels[ABDIR_MAXHITS] = XP_GetString(XFE_ABDIR_MAX_HITS); genTabLabels[ABDIR_LAST + ABDIR_SECUR] = XP_GetString(XFE_ABDIR_SECURE); genTabLabels[ABDIR_LAST + ABDIR_USEPASSWD] = XP_GetString(XFE_ABDIR_USE_PASSWD); genTabLabels[ABDIR_LAST + ABDIR_SAVEPASSWD] = XP_GetString(XFE_ABDIR_SAVE_PASSWD); int i; // for use in multiple for loops... // without breaking newer ANSI C++ rules Widget sep = NULL; for (i=0; i < numForms; i++) { sep = NULL; if (i == ABDIR_PORTNUMBER || i == ABDIR_LAST) { sep = XtVaCreateManagedWidget("sep", xmSeparatorGadgetClass, topForm, XmNleftAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, stripForm[i-1], XmNtopOffset, 3, XmNrightAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_NONE, 0); }/* if */ ac = 0; stripForm[i] = XmCreateForm(topForm, "strip", av, ac); if (i < ABDIR_LAST) { /* label/textF */ /* Create labels */ label = XtVaCreateManagedWidget(genTabLabels[i], xmLabelGadgetClass, stripForm[i], XmNalignment, XmALIGNMENT_BEGINNING, NULL); m_labels[i] = label; XtVaSetValues(label, XmNleftAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_NONE, XmNbottomAttachment, XmATTACH_FORM, 0); XtVaGetValues(label, XmNwidth, &width, 0); if (m_labelWidth < width) m_labelWidth = width; /* TextF */ ac = 0; m_textFs[i] = fe_CreateTextField(stripForm[i], (char *) genTabLabels[i], av, ac); XtVaSetValues(m_textFs[i], XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, label, XmNtopAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, 0); XtManageChild(m_textFs[i]); }/* if */ else { /* the toggle */ XmString xmstr; xmstr = XmStringCreate(genTabLabels[i], XmFONTLIST_DEFAULT_TAG); ac = 0; XtSetArg (av[ac], XmNlabelString, xmstr); ac++; m_toggles[i-ABDIR_LAST] = XmCreateToggleButton(stripForm[i], genTabLabels[i], av, ac); XtVaSetValues(m_toggles[i-ABDIR_LAST], XmNleftAttachment, XmATTACH_FORM, // XmNleftOffset, m_labelWidth, XmNtopAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_NONE, XmNbottomAttachment, XmATTACH_FORM, 0); if (i == (ABDIR_LAST+ABDIR_USEPASSWD)) { XtAddCallback(m_toggles[i-ABDIR_LAST], XmNvalueChangedCallback, XFE_ABDirGenTabView::usePasswdCallback, this); }/* if */ XtManageChild(m_toggles[i-ABDIR_LAST]); }/* else */ if (i == 0) XtVaSetValues(stripForm[i], XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM, XmNtopOffset, 10, XmNleftOffset, 3, XmNrightOffset, 3, 0); else if (sep) XtVaSetValues(stripForm[i], XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, sep, XmNtopOffset, 3, XmNleftOffset, 3, XmNrightOffset, 3, 0); else XtVaSetValues(stripForm[i], XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, stripForm[i-1], XmNtopOffset, 3, XmNleftOffset, i==(ABDIR_LAST+ABDIR_SAVEPASSWD)?25:3, XmNrightOffset, 3, 0); XtManageChild(stripForm[i]); if (i == ABDIR_SEARCHROOT) { for (int j=0; j <= ABDIR_SEARCHROOT;j++) XtVaSetValues(m_labels[j], XmNwidth, m_labelWidth, 0); m_labelWidth = 0; }/* if */ else if (i == ABDIR_MAXHITS) for (int j=ABDIR_PORTNUMBER; j <= ABDIR_MAXHITS; j++) XtVaSetValues(m_labels[j], XmNwidth, m_labelWidth, 0); }/* for i */ }
int XFE_ComposeAttachFolderView::addAttachments(const char **items,int numItems,int pre_existing,Boolean attach_binary) { // lock out addition of existing attachments after first time through _addedExistingAttachments=TRUE; // abort if attachment adding or delivery is in progress // (and not adding pre_exisiting attachments) if (!pre_existing && !verifySafeToAttach()) return FALSE; if (!items || numItems==0) return FALSE; int addStatus=FALSE; // desired type is NULL == as-is (used to read from format toggle buttons.) char *desiredType=NULL; // if an icon has focus, restore it when we remap the pane Widget focusWidget=XmGetFocusWidget(getBaseWidget()); if (focusWidget && XtParent(focusWidget)!=_attachPanel->pane()) focusWidget=NULL; _attachPanel->unmapPane(); for (int i=0;i<numItems;i++) { // is there space in the list? if (_numAttachments>=_maxAttachments) { char *msg=PR_smprintf(XP_GetString(XFE_MN_TOO_MANY_ATTACHMENTS)); if (msg) { fe_Alert_2(getBaseWidget(),msg); XP_FREE(msg); } break; } // is the item already attached? int duplicate=FALSE; for (int j=0;j<_numAttachments;j++) { if (strcmp(items[i],_attachments[j].url)==0) { char *msg=PR_smprintf(XP_GetString(XFE_MN_ITEM_ALREADY_ATTACHED),items[i]); if (msg) { fe_Alert_2(getBaseWidget(),msg); XP_FREE(msg); } duplicate=TRUE; break; } } if (duplicate) continue; // nyi - hack "addbook:add?vcard=" URL to be vcard data, and accept as attachment // (then turn back on dragging of addbook:add URL's in XFE_HTMLDrag) // WinFE does this already. // is it a valid attachment? if ((!pre_existing) && (!validateAttachment(getBaseWidget(),items[i]))) continue; // at least one attachment was accepted, return success status addStatus=TRUE; // add to internal attachment list struct MSG_AttachmentData m = { 0 }; m.url=XP_STRDUP(items[i]); m.desired_type=desiredType; if (attach_binary) m.real_type= "application/octet-stream"; else if (IsWebJumper(m.url)) m.real_type= "text/webjumper"; else m.real_type=NULL; _attachments[_numAttachments]=m; _numAttachments++; char *itemLabel=parseItemLabel(items[i]); // add icon to attachment panel _attachPanel->addItem(items[i],itemLabel); XP_FREE(itemLabel); } // always select last-added item if (addStatus && _attachPanel->numItems()>0) { _attachPanel->selectItem(_attachPanel->items()[_attachPanel->numItems()-1]); if (!pre_existing) { focusWidget=_attachPanel->items()[_attachPanel->numItems()-1]->image(); } } // update attachment panel _attachPanel->updateDisplay(); _attachPanel->mapPane(); // restore focus if we had it before the unmapPane() if (focusWidget) XmProcessTraversal(focusWidget,XmTRAVERSE_CURRENT); // update internal attachment list, if not adding pre-exisiting attachments if (addStatus && !pre_existing) updateAttachments(); // pop attachment folder to top, if not adding pre-exisiting attachments if (!pre_existing) { getParent()->doCommand(xfeCmdViewAttachments); } return addStatus; }
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); }
XFE_NewsServerPropGeneralTab::XFE_NewsServerPropGeneralTab(XFE_Component *top, XFE_View *view, MSG_NewsHost *host) : XFE_PropertyTabView(top, view, XFE_GENERAL) { int widest_width; char buf[100]; XmString str; Widget top_form, middle_form; Widget sep1; Widget name_label, name_value; Widget port_label, port_value; Widget security_label, security_value; Widget desc_label, desc_value; m_newshost = host; top_form = XtCreateManagedWidget("top_form", xmFormWidgetClass, getBaseWidget(), NULL, 0); middle_form = XtCreateManagedWidget("middle_form", xmFormWidgetClass, getBaseWidget(), NULL, 0); sep1 = XtCreateManagedWidget("sep1", xmSeparatorGadgetClass, getBaseWidget(), NULL, 0); name_label = XtCreateManagedWidget("name_label", xmLabelGadgetClass, top_form, NULL, 0); str = XmStringCreate((char*)MSG_GetNewsHostName(m_newshost), XmFONTLIST_DEFAULT_TAG); name_value = XtVaCreateManagedWidget("name_value", xmLabelGadgetClass, top_form, XmNlabelString, str, NULL); XmStringFree(str); port_label = XtCreateManagedWidget("port_label", xmLabelGadgetClass, top_form, NULL, 0); PR_snprintf(buf, sizeof(buf), "%d", MSG_GetNewsHostPort(m_newshost)); str = XmStringCreate(buf, XmFONTLIST_DEFAULT_TAG); port_value = XtVaCreateManagedWidget("port_value", xmLabelGadgetClass, top_form, XmNlabelString, str, NULL); XmStringFree(str); security_label = XtCreateManagedWidget("security_label", xmLabelGadgetClass, top_form, NULL, 0); str = XmStringCreate(MSG_IsNewsHostSecure(m_newshost) ? XP_GetString(XFE_SEC_ENCRYPTED) : XP_GetString(XFE_SEC_NONE), XmFONTLIST_DEFAULT_TAG); security_value = XtVaCreateManagedWidget("security_value", xmLabelGadgetClass, top_form, XmNlabelString, str, NULL); XmStringFree(str); desc_label = XtCreateManagedWidget("desc_label", xmLabelGadgetClass, top_form, NULL, 0); str = XmStringCreate("", XmFONTLIST_DEFAULT_TAG); // XXXX desc_value = XtVaCreateManagedWidget("desc_value", xmLabelGadgetClass, top_form, XmNlabelString, str, NULL); XmStringFree(str); m_prompt_toggle = XtCreateManagedWidget("prompt_toggle", xmToggleButtonWidgetClass, middle_form, NULL, 0); m_anonymous_toggle = XtCreateManagedWidget("anonymous_toggle", xmToggleButtonWidgetClass, middle_form, NULL, 0); XtVaSetValues(m_prompt_toggle, XmNalignment, XmALIGNMENT_BEGINNING, XmNindicatorType, XmONE_OF_MANY, XmNleftAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_NONE, XmNrightAttachment, XmATTACH_FORM, NULL); XtVaSetValues(m_anonymous_toggle, XmNalignment, XmALIGNMENT_BEGINNING, XmNindicatorType, XmONE_OF_MANY, XmNleftAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, m_prompt_toggle, XmNbottomAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); widest_width = XfeVaGetWidestWidget(name_label, port_label, security_label, desc_label, NULL); XtVaSetValues(name_label, XmNalignment, XmALIGNMENT_BEGINNING, XmNleftAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_NONE, XmNrightAttachment, XmATTACH_NONE, NULL); XtVaSetValues(port_label, XmNalignment, XmALIGNMENT_BEGINNING, XmNleftAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, name_label, XmNbottomAttachment, XmATTACH_NONE, XmNrightAttachment, XmATTACH_NONE, NULL); XtVaSetValues(security_label, XmNalignment, XmALIGNMENT_BEGINNING, XmNleftAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, port_label, XmNbottomAttachment, XmATTACH_NONE, XmNrightAttachment, XmATTACH_NONE, NULL); XtVaSetValues(desc_label, XmNalignment, XmALIGNMENT_BEGINNING, XmNleftAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, security_label, XmNbottomAttachment, XmATTACH_NONE, XmNrightAttachment, XmATTACH_NONE, NULL); XtVaSetValues(name_value, XmNalignment, XmALIGNMENT_BEGINNING, XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, name_label, XmNleftOffset, widest_width - XfeWidth(name_label), XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, name_label, XmNbottomAttachment, XmATTACH_NONE, XmNrightAttachment, XmATTACH_FORM, NULL); XtVaSetValues(port_value, XmNalignment, XmALIGNMENT_BEGINNING, XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, port_label, XmNleftOffset, widest_width - XfeWidth(port_label), XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, port_label, XmNbottomAttachment, XmATTACH_NONE, XmNrightAttachment, XmATTACH_FORM, NULL); XtVaSetValues(security_value, XmNalignment, XmALIGNMENT_BEGINNING, XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, security_label, XmNleftOffset, widest_width - XfeWidth(security_label), XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, security_label, XmNbottomAttachment, XmATTACH_NONE, XmNrightAttachment, XmATTACH_FORM, NULL); XtVaSetValues(desc_value, XmNalignment, XmALIGNMENT_BEGINNING, XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, desc_label, XmNleftOffset, widest_width - XfeWidth(desc_label), XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET, XmNtopWidget, desc_label, XmNbottomAttachment, XmATTACH_NONE, XmNrightAttachment, XmATTACH_FORM, NULL); XtVaSetValues(top_form, XmNalignment, XmALIGNMENT_BEGINNING, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_NONE, NULL); XtVaSetValues(sep1, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, top_form, XmNbottomAttachment, XmATTACH_NONE, NULL); XtVaSetValues(middle_form, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, sep1, XmNbottomAttachment, XmATTACH_FORM, NULL); #define setPromptToggle() \ if (MSG_GetNewsHostPushAuth(m_newshost)) { \ XmToggleButtonSetState(m_prompt_toggle, True, False); \ XmToggleButtonSetState(m_anonymous_toggle, False, False); \ } else { \ XmToggleButtonSetState(m_prompt_toggle, False, False); \ XmToggleButtonSetState(m_anonymous_toggle, True, False); \ } setPromptToggle(); XtAddCallback(m_prompt_toggle, XmNvalueChangedCallback, promptForPasswd_cb, this); XtAddCallback(m_anonymous_toggle, XmNvalueChangedCallback, promptForPasswd_cb, this); }
XFE_ABDirListView::XFE_ABDirListView(XFE_Component *toplevel_component, Widget parent, XFE_View *parent_view, MWContext *context, XP_List *directories): XFE_MNListView(toplevel_component, parent_view, context, (MSG_Pane *)NULL), #if !defined(USE_ABCOM) m_directories(directories) #else m_containerLine(NULL), m_activeContainer(NULL) #endif /* USE_ABCOM */ { /* initialize */ m_dir = 0; m_dirLine = 0; m_ancestorInfo = 0; m_deleted_directories = NULL; /* For outliner */ int num_columns = OUTLINER_COLUMN_LAST; static int column_widths[] = {23}; m_outliner = new XFE_Outliner("dirList", this, toplevel_component, parent, False, // constantSize True, // hasHeadings num_columns, num_columns,// num_visible column_widths, AB_DIR_OUTLINER_GEOMETRY_PREF); m_outliner->setHideColumnsAllowed(False); m_outliner->setPipeColumn(OUTLINER_COLUMN_NAME); /* BEGIN_3P: XmLGrid */ XtVaSetValues(m_outliner->getBaseWidget(), XtVaTypedArg, XmNblankBackground, XmRString, "white", 6, // XmNselectionPolicy, XmSELECT_MULTIPLE_ROW, XmNvisibleRows, 15, NULL); XtVaSetValues(m_outliner->getBaseWidget(), XmNcellDefaults, True, XtVaTypedArg, XmNcellBackground, XmRString, "white", 6, NULL); /* END_3P: XmLGrid */ #if defined(USE_ABCOM) // todo: check return val int error = AB_CreateContainerPane(&m_pane, context, fe_getMNMaster()); error = AB_SetShowPropertySheetForDirFunc(m_pane, &XFE_ABDirListView::ShowPropertySheetForDirFunc); error = AB_InitializeContainerPane(m_pane); m_nDirs = MSG_GetNumLines(m_pane); #if defined(DEBUG_tao) printf("\n MSG_GetNumLines, m_nDirs=%d\n", m_nDirs); #endif #else /* XFE_Outliner constructor does not allocate any content row * XFE_Outliner::change(int first, int length, int newnumrows) */ if (directories) { m_nDirs = XP_ListCount(directories); }/* if */ #endif /* USE_ABCOM */ m_outliner->change(0, m_nDirs, m_nDirs); m_outliner->show(); if (m_nDirs) m_outliner->selectItemExclusive(0); setBaseWidget(m_outliner->getBaseWidget()); XtVaSetValues(getBaseWidget(), XmNpaneMinimum, 1, XmNpaneMaximum, 10000, NULL); /* initialize the icons if they haven't already been */ Pixel bg_pixel; XtVaGetValues(m_outliner->getBaseWidget(), XmNbackground, &bg_pixel, 0); if (!m_openParentIcon.pixmap) fe_NewMakeIcon(getToplevel()->getBaseWidget(), /* umm. fix me */ BlackPixelOfScreen(XtScreen(m_outliner->getBaseWidget())), bg_pixel, &m_openParentIcon, NULL, oparent.width, oparent.height, oparent.mono_bits, oparent.color_bits, oparent.mask_bits, FALSE); if (!m_closedParentIcon.pixmap) fe_NewMakeIcon(getToplevel()->getBaseWidget(), /* umm. fix me */ BlackPixelOfScreen(XtScreen(m_outliner->getBaseWidget())), bg_pixel, &m_closedParentIcon, NULL, cparent.width, cparent.height, cparent.mono_bits, cparent.color_bits, cparent.mask_bits, FALSE); if (!m_pabIcon.pixmap) fe_NewMakeIcon(getToplevel()->getBaseWidget(), /* umm. fix me */ BlackPixelOfScreen(XtScreen(m_outliner->getBaseWidget())), bg_pixel, &m_pabIcon, NULL, MNC_AddressSmall.width, MNC_AddressSmall.height, MNC_AddressSmall.mono_bits, MNC_AddressSmall.color_bits, MNC_AddressSmall.mask_bits, FALSE); if (!m_ldapDirIcon.pixmap) fe_NewMakeIcon(getToplevel()->getBaseWidget(), /* umm. fix me */ BlackPixelOfScreen(XtScreen(m_outliner->getBaseWidget())), bg_pixel, &m_ldapDirIcon, NULL, MN_FolderServer.width, MN_FolderServer.height, MN_FolderServer.mono_bits, MN_FolderServer.color_bits, MN_FolderServer.mask_bits, FALSE); if (!m_mListIcon.pixmap) fe_NewMakeIcon(getToplevel()->getBaseWidget(), /* umm. fix me */ BlackPixelOfScreen(XtScreen(m_outliner->getBaseWidget())), bg_pixel, &m_mListIcon, NULL, MN_People.width, MN_People.height, MN_People.mono_bits, MN_People.color_bits, MN_People.mask_bits, FALSE); } XFE_ABDirListView::~XFE_ABDirListView() { } #if defined(USE_ABCOM) int XFE_ABDirListView::ShowPropertySheetForDirFunc(DIR_Server *server, MWContext *context, MSG_Pane *pane, XP_Bool newDirectory) { #if defined(DEBUG_tao) printf("\n XFE_ABDirListView::ShowPropertySheetForDirFunc, newDirectory=%d\n", newDirectory); #endif XFE_ABDirPropertyDlg* Dlg = new XFE_ABDirPropertyDlg(CONTEXT_WIDGET(context), "abDirProperties", True, context); Dlg->setDlgValues(server); Dlg->setPane(pane); Dlg->show(); return 1; }
False, /* haveMenuBar */ False, /* haveToolbars */ False, /* haveDashboard */ True /* destroyOnClose */) { XFE_HTMLView *htmlview; D(printf ("in XFE_HTMLDialogFrame::XFE_HTMLDialogFrame()\n");) htmlview = new XFE_HTMLView(this, getViewParent(), NULL, m_context); setView(htmlview); fe_set_scrolled_default_size(m_context); XtVaSetValues(htmlview->getBaseWidget(), XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, NULL); htmlview->show(); respectChrome(chrome_spec); } XFE_HTMLDialogFrame::~XFE_HTMLDialogFrame() { D(printf ("in XFE_HTMLDialogFrame::~XFE_HTMLDialogFrame()\n");) }