void chkpn(void) { pto = *(pnp++); pfrom = pto>=0 ? pto : -pto; if (pto == -INT_MAX) { flusho(); done1(0); } if (pto < 0) { pto = -pto; print++; pfrom = 0; } }
void done(int x) { register int i; error |= x; dl = app = ds = lgf = 0; if (pgchars && !pglines) { donep = 1; tbreak(); donep = 0; } if ((i = em)) { donef = -1; em = 0; if (control(i, 0)) longjmp(sjbuf, 1); } if (!nfo) done3(0); mflg = 0; dip = &d[0]; if (woff) wbt((tchar)0); if (pendw) getword(1); pendnf = 0; if (donef == 1) done1(0); donef = 1; ip = 0; frame = stk; nxf = calloc(1, sizeof *nxf); if (!ejf) tbreak(); nflush++; eject((struct s *)0); longjmp(sjbuf, 1); }
/** * See QMessageBox for details. */ QIMessageBox::QIMessageBox (const QString &aCaption, const QString &aText, Icon aIcon, int aButton0, int aButton1, int aButton2, QWidget *aParent, const char *aName, bool aModal) : QIDialog (aParent) , mText (aText) , mDetailsIndex (-1) , mWasDone (false) , mWasPolished (false) { #ifdef Q_WS_MAC /* No sheets in another mode than normal for now. Firstly it looks ugly and * secondly in some cases it is broken. */ if (vboxGlobal().isSheetWindowsAllowed(aParent)) setWindowFlags(Qt::Sheet); #endif /* Q_WS_MAC */ setWindowTitle (aCaption); /* Necessary to later find some of the message boxes */ setObjectName (aName); setModal (aModal); mButton0 = aButton0; mButton1 = aButton1; mButton2 = aButton2; QVBoxLayout *layout = new QVBoxLayout (this); #ifdef Q_WS_MAC layout->setContentsMargins (40, 11, 40, 11); #else /* !Q_WS_MAC */ VBoxGlobal::setLayoutMargin (layout, 11); #endif /* !Q_WS_MAC */ layout->setSpacing (10); layout->setSizeConstraint (QLayout::SetMinimumSize); QWidget *main = new QWidget(); QHBoxLayout *hLayout = new QHBoxLayout (main); VBoxGlobal::setLayoutMargin (hLayout, 0); hLayout->setSpacing (10); layout->addWidget (main); mIconLabel = new QLabel(); mIconLabel->setPixmap (standardPixmap (aIcon)); mIconLabel->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Minimum); mIconLabel->setAlignment (Qt::AlignHCenter | Qt::AlignTop); hLayout->addWidget (mIconLabel); QVBoxLayout* messageVBoxLayout = new QVBoxLayout(); VBoxGlobal::setLayoutMargin (messageVBoxLayout, 0); messageVBoxLayout->setSpacing (10); hLayout->addLayout (messageVBoxLayout); mTextLabel = new QILabel (aText); mTextLabel->setAlignment (Qt::AlignLeft | Qt::AlignTop); mTextLabel->setWordWrap (true); QSizePolicy sp (QSizePolicy::Minimum, QSizePolicy::Minimum); sp.setHeightForWidth (true); mTextLabel->setSizePolicy (sp); messageVBoxLayout->addWidget (mTextLabel); mFlagCB_Main = new QCheckBox(); mFlagCB_Main->hide(); messageVBoxLayout->addWidget (mFlagCB_Main); mDetailsVBox = new QWidget(); layout->addWidget (mDetailsVBox); QVBoxLayout* detailsVBoxLayout = new QVBoxLayout (mDetailsVBox); VBoxGlobal::setLayoutMargin (detailsVBoxLayout, 0); detailsVBoxLayout->setSpacing (10); mDetailsText = new QTextEdit(); { /* Calculate the minimum size dynamically, approx. * for 40 chars, 4 lines & 2 <table> margins */ QFontMetrics fm = mDetailsText->fontMetrics(); mDetailsText->setMinimumSize (fm.width ('m') * 40, fm.lineSpacing() * 4 + 4 * 2); } mDetailsText->setReadOnly (true); mDetailsText->setSizePolicy (QSizePolicy::Expanding, QSizePolicy::MinimumExpanding); mDetailsSplitter = new QIArrowSplitter (mDetailsText); connect (mDetailsSplitter, SIGNAL (showBackDetails()), this, SLOT (detailsBack())); connect (mDetailsSplitter, SIGNAL (showNextDetails()), this, SLOT (detailsNext())); detailsVBoxLayout->addWidget (mDetailsSplitter); mFlagCB_Details = new QCheckBox(); mFlagCB_Details->hide(); detailsVBoxLayout->addWidget (mFlagCB_Details); mSpacer = new QSpacerItem (0, 0); layout->addItem (mSpacer); mButtonBox = new QIDialogButtonBox; mButtonBox->setCenterButtons (true); layout->addWidget (mButtonBox); mButtonEsc = 0; mButton0PB = createButton (aButton0); if (mButton0PB) connect (mButton0PB, SIGNAL (clicked()), SLOT (done0())); mButton1PB = createButton (aButton1); if (mButton1PB) connect (mButton1PB, SIGNAL (clicked()), SLOT (done1())); mButton2PB = createButton (aButton2); if (mButton2PB) connect (mButton2PB, SIGNAL (clicked()), SLOT (done2())); /* If this is an error message add an "Copy to clipboard" button for easier * bug reports. */ if (aIcon == QIMessageBox::Critical) { QPushButton *pCopyButton = createButton(Copy); pCopyButton->setToolTip(tr("Copy all errors to the clipboard")); connect(pCopyButton, SIGNAL(clicked()), SLOT(copy())); } /* this call is a must -- it initializes mFlagCB and mSpacer */ setDetailsShown (false); }
void newline(int a) { int i, j, nlss; int opn; nlss = 0; if (a) goto nl1; if (dip != d) { j = lss; pchar1((Tchar)FLSS); if (flss) lss = flss; i = lss + dip->blss; dip->dnl += i; pchar1((Tchar)i); pchar1((Tchar)'\n'); lss = j; dip->blss = flss = 0; if (dip->alss) { pchar1((Tchar)FLSS); pchar1((Tchar)dip->alss); pchar1((Tchar)'\n'); dip->dnl += dip->alss; dip->alss = 0; } if (dip->ditrap && !dip->ditf && dip->dnl >= dip->ditrap && dip->dimac) if (control(dip->dimac, 0)) { trap++; dip->ditf++; } return; } j = lss; if (flss) lss = flss; nlss = dip->alss + dip->blss + lss; numtabp[NL].val += nlss; if (TROFF && ascii) { dip->alss = dip->blss = 0; } pchar1((Tchar)'\n'); flss = 0; lss = j; if (numtabp[NL].val < pl) goto nl2; nl1: ejf = dip->hnl = numtabp[NL].val = 0; ejl = frame; if (donef) { if ((!nc && !wch) || ndone) done1(0); ndone++; donef = 0; if (frame == stk) nflush++; } opn = numtabp[PN].val; numtabp[PN].val++; if (npnflg) { numtabp[PN].val = npn; npn = npnflg = 0; } nlpn: if (numtabp[PN].val == pfrom) { print++; pfrom = -1; } else if (opn == pto) { print = 0; opn = -1; chkpn(); goto nlpn; } if (print) ptpage(numtabp[PN].val); /* supposedly in a clean state so can pause */ if (stop && print) { dpn++; if (dpn >= stop) { dpn = 0; ptpause(); } } nl2: trap = 0; if (numtabp[NL].val == 0) { if ((j = findn(0)) != NTRAP) trap = control(mlist[j], 0); } else if ((i = findt(numtabp[NL].val - nlss)) <= nlss) { if ((j = findn1(numtabp[NL].val - nlss + i)) == NTRAP) { flusho(); ERROR "Trap botch." WARN; done2(-5); } trap = control(mlist[j], 0); } }
int dodone() { done1(0); return 0; }
int done2(void) { done1(0); return(0); }