113 lines
2.7 KiB
C++
113 lines
2.7 KiB
C++
#include <printman/pickdlg.hpp>
|
|
#include <common/keydata.hpp>
|
|
|
|
PickDlg::PickDlg(void)
|
|
{
|
|
}
|
|
|
|
PickDlg::PickDlg(const PickDlg &somePickDlg)
|
|
{ // private implementation
|
|
*this=somePickDlg;
|
|
}
|
|
|
|
PickDlg::~PickDlg()
|
|
{
|
|
destroy();
|
|
}
|
|
|
|
PickDlg &PickDlg::operator=(const PickDlg &somePickDlg)
|
|
{ // private implementation
|
|
return *this;
|
|
}
|
|
|
|
BOOL PickDlg::perform(GUIWindow &parentWindow,Block<Printer> &printers,String &strPrinter)
|
|
{
|
|
mParent=&parentWindow;
|
|
mPrinters=printers;
|
|
mPrinter=strPrinter;
|
|
mCancel=FALSE;
|
|
create(parentWindow);
|
|
if(!mCancel)strPrinter=mPrinter;
|
|
return !mCancel;
|
|
}
|
|
|
|
void PickDlg::create(GUIWindow &parentWindow)
|
|
{
|
|
DialogTemplate dlgTemplate;
|
|
DialogItemTemplate comboBox;
|
|
DialogItemTemplate okButton;
|
|
DialogItemTemplate cancelButton;
|
|
|
|
dlgTemplate.titleText("Choose Printer");
|
|
dlgTemplate.posRect(Rect(10,73,269,39));
|
|
dlgTemplate.pointSize(8);
|
|
dlgTemplate.typeFace("Helv");
|
|
dlgTemplate.style(WS_VISIBLE|WS_CAPTION|DS_SETFONT|WS_POPUP); // WS_SYSMENU|DS_SETFONT| DS_3DLOOK| WS_SYSMENU|
|
|
dlgTemplate.extendedStyle(WS_EX_TOPMOST);
|
|
|
|
okButton.className("BUTTON");
|
|
okButton.titleText("&Ok");
|
|
okButton.style(WS_VISIBLE|WS_CHILD|WS_TABSTOP|WS_GROUP|BS_DEFPUSHBUTTON);
|
|
okButton.posRect(Rect(216,3,50,14));
|
|
okButton.itemID(IDOK);
|
|
|
|
cancelButton.className("BUTTON");
|
|
cancelButton.titleText("Ca&ncel");
|
|
cancelButton.style(WS_VISIBLE|WS_CHILD|WS_TABSTOP|WS_GROUP);
|
|
cancelButton.posRect(Rect(216,17,50,14));
|
|
cancelButton.itemID(IDCANCEL);
|
|
|
|
comboBox.className("COMBOBOX");
|
|
comboBox.titleText("");
|
|
comboBox.style(WS_VISIBLE|WS_CHILD|WS_TABSTOP|WS_GROUP|CBS_DROPDOWNLIST);
|
|
comboBox.posRect(Rect(10,11,199,44));
|
|
comboBox.itemID(ComboBoxID);
|
|
|
|
dlgTemplate+=comboBox;
|
|
dlgTemplate+=okButton;
|
|
dlgTemplate+=cancelButton;
|
|
createDialog(parentWindow,dlgTemplate,DynamicDialog::ModalDialog);
|
|
parentWindow.enable(TRUE);
|
|
parentWindow.top();
|
|
}
|
|
|
|
WORD PickDlg::dlgCommand(DWORD commandID,CallbackData &someCallbackData)
|
|
{
|
|
switch(commandID)
|
|
{
|
|
case IDCANCEL :
|
|
mCancel=TRUE;
|
|
endDialog(false);
|
|
// destroy();
|
|
break;
|
|
case IDOK :
|
|
mCancel=FALSE;
|
|
sendMessage(ComboBoxID,WM_GETTEXT,String::MaxString,(LPARAM)(LPSTR)mPrinter);
|
|
endDialog(true);
|
|
// destroy();
|
|
break;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
BOOL PickDlg::dlgInitDialog(CallbackData &/*someCallbackData*/)
|
|
{
|
|
// ::SetParent(*this,*mParent);
|
|
for(int index=0;index<mPrinters.size();index++)sendMessage(ComboBoxID,CB_INSERTSTRING,-1,(LPARAM)(LPSTR)mPrinters[index].printerName());
|
|
if(!mPrinter.isNull())sendMessage(ComboBoxID,CB_SELECTSTRING,-1,(LPARAM)(LPSTR)mPrinter);
|
|
else sendMessage(ComboBoxID,CB_SETCURSEL,0,0L);
|
|
init();
|
|
return TRUE;
|
|
}
|
|
|
|
void PickDlg::dlgDestroyDialog(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return;
|
|
}
|
|
|
|
// virtuals
|
|
|
|
void PickDlg::init(void)
|
|
{
|
|
}
|