32#elif defined( CUPS_LIST_PRINTERS )
33 #include <cups/cups.h>
39static bool GetPrinterList(wxArrayString &aPrinterList, wxString &aDefaultPrinterName)
42 aDefaultPrinterName.Empty();
45 DWORD dwSize, dwPrinters;
50 GetDefaultPrinter(&c[0], &szz);
51 aDefaultPrinterName = c;
53 ::EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 5, NULL, 0, &dwSize, &dwPrinters);
55 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER || dwSize == 0)
58 pBuffer =
new BYTE[dwSize];
59 ::EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 5, pBuffer, dwSize, &dwSize, &dwPrinters);
63 PRINTER_INFO_5 *pPrnInfo = (PRINTER_INFO_5 *)pBuffer;
65 for (UINT i = 0; i < dwPrinters; i++)
67 aPrinterList.Add(pPrnInfo->pPrinterName);
78#elif defined( CUPS_LIST_PRINTERS )
80 int num_dests = cupsGetDests(&dests);
82 for (
int i = 0; i < num_dests; i++)
86 if (dests[i].instance)
87 sz = wxString::Format(
"%s%s", dests[i].
name, dests[i].instance);
89 sz = wxString::Format(
"%s", dests[i].
name);
91 if (dests[i].is_default)
92 aDefaultPrinterName = sz;
98 cupsFreeDests(num_dests, dests);
100 if(aPrinterList.GetCount())
113 const wxPoint& pos,
const wxSize& size,
long style,
114 const wxString&
name ):
125 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)