void XETP::send_objects(OutStreamP out,const PtrList &physicals, Turn turn,const PtrList &tickTypes) { assert(physicals.length() == tickTypes.length()); u_int totalLen = 0; int n; for (n = 0; n < physicals.length(); n++) { totalLen += XETP::add_header(compute_object_length((PhysicalP)physicals.get(n))); } // length passed into UDP prepare_packet is bigger than the lengths // passed into each XETP packet. if (out->get_protocol() == GenericStream::UDP) { ((UDPOutStreamP)out)->prepare_packet(totalLen); } // Send each object in turn. for (n = 0; n < physicals.length(); n++) { PhysicalP p = (PhysicalP)physicals.get(n); // computing object_length twice, but who cares. _send_object(out,p,turn,(TickType)(size_t)tickTypes.get(n), compute_object_length(p)); } if (out->get_protocol() == GenericStream::UDP) { ((UDPOutStreamP)out)->done_packet(); } }
void LAgreementDlg::redraw() { XClearWindow(xvars->dpy[dpyNum],window); // Loop over all lines on current page. Page* page = (Page*)pages.get(currentPage); const PtrList& lines = page->get_lines(); for (int n = 0; n < lines.length(); n++) { int length; const char* text = ((Line*)lines.get(n))->get_text(length); if (length > 0) { XDrawString(xvars->dpy[dpyNum],window,xvars->gc[dpyNum], TEXT_PADDING, TEXT_PADDING + xvars->font[dpyNum]->max_bounds.ascent + fontSize.height * n, text,length); } } // Draw separators. XDrawLine(xvars->dpy[dpyNum],window,xvars->gc[dpyNum], 0,separatorY_1,windowSize.width - 1,separatorY_1); XDrawLine(xvars->dpy[dpyNum],window,xvars->gc[dpyNum], 0,separatorY_2,windowSize.width - 1,separatorY_2); // Buttons will redraw themselves. }