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(); } }
Boolean LAgreementDlg::get_button_sensitive(int button) { switch (button) { case PREV: // If not the first page. return currentPage > 0; case NEXT: // If not the last page. return currentPage < pages.length() - 1; case ACCEPT: case REJECT: // If the last page or if user has already seen the dialog at least // once. return viewedBefore || (currentPage == pages.length() - 1); case SHAREWARE_1: case SHAREWARE_2: return True; default: assert(0); return False; } }
void LAgreementDlg::_button_callback(Panel* panel) { // Which button was pressed. Search through four buttons, big deal. int button; for (button = 0; button < BUTTONS_MAX; button++) { if (buttons[button] == panel) { break; } } assert(button < BUTTONS_MAX); switch (button) { case PREV: assert(currentPage > 0); currentPage--; break; case NEXT: assert(currentPage < pages.length() - 1); currentPage++; break; case ACCEPT: // So user won't have to click through it again. mark_as_viewed(); status = ACCEPTED; // Don't bother with a redraw. return; case REJECT: status = REJECTED; // Don't bother with a redraw. return; default: assert(0); } // Update whether buttons are sensitive or not. for (int n = 0; n < BUTTONS_MAX; n++) { buttons[n]->set_sensitive(get_button_sensitive(n)); } redraw(); }