33#elif defined( CUPS_LIST_PRINTERS )
34 #include <cups/cups.h>
40static bool GetPrinterList(wxArrayString &aPrinterList, wxString &aDefaultPrinterName)
43 aDefaultPrinterName.Empty();
46 DWORD dwSize, dwPrinters;
51 GetDefaultPrinter(&c[0], &szz);
52 aDefaultPrinterName = c;
54 ::EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 5, NULL, 0, &dwSize, &dwPrinters);
56 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER || dwSize == 0)
59 pBuffer =
new BYTE[dwSize];
60 ::EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 5, pBuffer, dwSize, &dwSize, &dwPrinters);
64 PRINTER_INFO_5 *pPrnInfo = (PRINTER_INFO_5 *)pBuffer;
66 for (UINT i = 0; i < dwPrinters; i++)
68 aPrinterList.Add(pPrnInfo->pPrinterName);
79#elif defined( CUPS_LIST_PRINTERS )
81 int num_dests = cupsGetDests(&dests);
83 for (
int i = 0; i < num_dests; i++)
87 if (dests[i].instance)
88 sz = wxString::Format(
"%s%s", dests[i].
name, dests[i].instance);
90 sz = wxString::Format(
"%s", dests[i].
name);
92 if (dests[i].is_default)
93 aDefaultPrinterName = sz;
99 cupsFreeDests(num_dests, dests);
101 if(aPrinterList.GetCount())
114 const wxPoint& pos,
const wxSize& size,
long style,
115 const wxString&
name ):
126 bool selected =
false;
Class PANEL_PRINTER_LIST_BASE.
wxStaticText * m_stPrinterState
wxChoice * m_choicePrinter
wxArrayString m_printer_list
wxString m_defaultPrinterName
PANEL_PRINTER_LIST(wxWindow *aParent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(378, 109), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
static wxString m_selectedPrinterName
wxString GetSelectedPrinterName()
void onPrinterChoice(wxCommandEvent &event) override
bool AsPrintersAvailable()
static bool GetPrinterList(wxArrayString &aPrinterList, wxString &aDefaultPrinterName)