Files
Work/printman/PICKDLG.CPP
2024-08-07 09:16:27 -04:00

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)
{
}