void AddPrinterDialog::MessageReceived(BMessage* msg) { switch(msg->what) { case B_OK: _AddPrinter(msg); PostMessage(B_QUIT_REQUESTED); break; case B_CANCEL: PostMessage(B_QUIT_REQUESTED); break; case kNameChangedMsg: fNameText = fName->Text(); _Update(); break; case kPrinterSelectedMsg: _StorePrinter(msg); break; case kTransportSelectedMsg: _HandleChangedTransport(msg); break; default: Inherited::MessageReceived(msg); } }
void PrinterListView::BuildPrinterList() { // clear list while (!IsEmpty()) delete RemoveItem((int32)0); // Find directory containing printer definition nodes BPath path; if (find_directory(B_USER_PRINTERS_DIRECTORY, &path) != B_OK) return; BDirectory dir(path.Path()); if (dir.InitCheck() != B_OK) return; BEntry entry; while(dir.GetNextEntry(&entry) == B_OK) { BDirectory printer(&entry); _AddPrinter(printer, false); } _LayoutPrinterItems(); }
void PrinterListView::AttributeChanged(node_ref* node) { BDirectory printer(node); _AddPrinter(printer, true); }
void PrinterListView::EntryCreated(node_ref* node, entry_ref* entry) { BDirectory printer(node); _AddPrinter(printer, true); }