Example #1
0
void PrintDialog::SelComm()
{
	/* PFJ - 29.02.04 - removed OthText, Command and PrintDest from switch */
	bool test = OtherCom->isChecked() ? true : false;
	OthText->setEnabled(test);
	Command->setEnabled(test);
	PrintDest->setEnabled(!test);
	if (OtherCom->isChecked())
	{
		DateiT->setEnabled(false);
		LineEdit1->setEnabled(false);
		ToolButton1->setEnabled(false);
		OptButton->setEnabled(false);
	}
	else
	{
		SelPrinter(PrintDest->currentText());
		if (PrintDest->currentText() != tr("File"))
			OptButton->setEnabled(true);
	}
}
Example #2
0
void PrintDialog::setStoredValues(const QString& fileName, bool gcr)
{
	if (m_doc->Print_Options.firstUse)
		getDefaultPrintOptions(m_doc->Print_Options, gcr);
	
	int selectedDest = PrintDest->findText(m_doc->Print_Options.printer);
	if ((selectedDest > -1) && (selectedDest < PrintDest->count()))
	{
		PrintDest->setCurrentIndex(selectedDest);
		prefs->set("CurrentPrn", PrintDest->currentText());
		if (PrintDest->currentText() == tr("File"))
			LineEdit1->setText(fileName);
		SelPrinter(PrintDest->currentText());
	}
	OtherCom->setChecked(m_doc->Print_Options.useAltPrintCommand);
	if (OtherCom->isChecked())
	{
		SelComm();
		Command->setText(m_doc->Print_Options.printerCommand);
	}
	RadioButton1->setChecked(prefs->getBool("PrintAll", true));
	CurrentPage->setChecked(prefs->getBool("CurrentPage", false));
	bool printRangeChecked=prefs->getBool("PrintRange", false);
	RadioButton2->setChecked(printRangeChecked);
	pageNr->setEnabled(printRangeChecked);
	pageNr->setText(prefs->get("PageNr", "1-1"));
	Copies->setValue(1);
	PrintSep->setCurrentIndex(m_doc->Print_Options.outputSeparations);
	colorType->setCurrentIndex(m_doc->Print_Options.useColor ? 0 : 1);
	ColorList usedSpots;
	m_doc->getUsedColors(usedSpots, true);
	QStringList spots = usedSpots.keys();
	spots.prepend( tr("Black"));
	spots.prepend( tr("Yellow"));
	spots.prepend( tr("Magenta"));
	spots.prepend( tr("Cyan"));
	spots.prepend( tr("All"));
	int selectedSep = spots.indexOf(m_doc->Print_Options.separationName);
	if ((selectedSep > -1) && (selectedSep < SepArt->count()))
		SepArt->setCurrentIndex(selectedSep);
	if (PrintSep->currentIndex() == 1)
		SepArt->setEnabled(true);
	setPrintEngine(m_doc->Print_Options.prnEngine);
	MirrorHor->setChecked(m_doc->Print_Options.mirrorH);
	MirrorVert->setChecked(m_doc->Print_Options.mirrorV);
	devPar->setChecked(m_doc->Print_Options.setDevParam);
	GcR->setChecked(m_doc->Print_Options.doGCR);
	ClipMarg->setChecked(m_doc->Print_Options.doClip);
	spotColors->setChecked(!m_doc->Print_Options.useSpotColors);
	bool iccInUse  = m_doc->HasCMS ? m_doc->Print_Options.useICC : false;
	bool psPrinter = PrinterUtil::isPostscriptPrinter(PrintDest->currentText()) || outputToFile();
	UseICC->setChecked( psPrinter ? iccInUse : false );
	UseICC->setEnabled( psPrinter );
	docBleeds->setChecked(m_doc->Print_Options.useDocBleeds);
	if (docBleeds->isChecked())
	{
		BleedTop->setValue(m_doc->bleeds()->Top*unitRatio);
		BleedBottom->setValue(m_doc->bleeds()->Bottom*unitRatio);
		BleedRight->setValue(m_doc->bleeds()->Right*unitRatio);
		BleedLeft->setValue(m_doc->bleeds()->Left*unitRatio);
	}
	else
	{
		BleedTop->setValue(m_doc->Print_Options.bleeds.Top*unitRatio);
		BleedBottom->setValue(m_doc->Print_Options.bleeds.Bottom*unitRatio);
		BleedRight->setValue(m_doc->Print_Options.bleeds.Right*unitRatio);
		BleedLeft->setValue(m_doc->Print_Options.bleeds.Left*unitRatio);
	}
	BleedTop->setEnabled(!docBleeds->isChecked());
	BleedBottom->setEnabled(!docBleeds->isChecked());
	BleedRight->setEnabled(!docBleeds->isChecked());
	BleedLeft->setEnabled(!docBleeds->isChecked());
	markLength->setValue(m_doc->Print_Options.markLength*unitRatio);
	markOffset->setValue(m_doc->Print_Options.markOffset*unitRatio);
	cropMarks->setChecked(m_doc->Print_Options.cropMarks);
	bleedMarks->setChecked(m_doc->Print_Options.bleedMarks);
	registrationMarks->setChecked(m_doc->Print_Options.registrationMarks);
	colorMarks->setChecked(m_doc->Print_Options.colorMarks);
	usePDFMarks->setChecked(m_doc->Print_Options.includePDFMarks);
}
Example #3
0
LRESULT CALLBACK MyPrintProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){
  switch(message){
  case WM_INITDIALOG:
    {
      hDialog = hDlg;

      SetDlgItemText(hDlg,IDC_PM_LEFT,"15");
      SetDlgItemText(hDlg,IDC_PM_RIGHT,"15");
      SetDlgItemText(hDlg,IDC_PM_TOP,"21");
      SetDlgItemText(hDlg,IDC_PM_BOTTOM,"21");
      SetDlgItemText(hDlg,IDC_BAIRITU,"100");
      HWND hOk = GetDlgItem(hDlg,IDOK);
      if(hPrintDC == NULL){
        EnableWindow(hOk,FALSE);
      }
      SendDlgItemMessage(hDlg,IDOK,WM_COMMAND,(WPARAM)(BN_DISABLE),(LPARAM)0);
      HWND hPreview = GetDlgItem(hDlg,IDC_PREVIEW);
      oldMyPrintPreviewProc = (WNDPROC)SetWindowLongPtr(hPreview,GWL_WNDPROC,(LONG)MyPrintPreviewProc);
      char printername[256];
      GetCurrentPrinterName(printername);
      SetDlgItemText(hDlg,IDC_SELECTEDPRINTER,printername);
    }
    break;
  case WM_VSCROLL:
    {
      int iId = LOWORD(wParam);

      int id = GetDlgCtrlID((HWND)lParam);

      HWND hChange = NULL;
      int maximum = -1;
      int minimum = -1;
      if(id == IDC_SCR_BAIRITU){
        hChange = GetDlgItem(hDlg,IDC_BAIRITU);
        minimum = 1;
      }else if(id == IDC_PM_SCR_LEFT){
        hChange = GetDlgItem(hDlg,IDC_PM_LEFT);
        minimum = 0;
      }else if(id == IDC_PM_SCR_RIGHT){
        hChange = GetDlgItem(hDlg,IDC_PM_RIGHT);
        minimum = 0;
      }else if(id == IDC_PM_SCR_TOP){
        hChange = GetDlgItem(hDlg,IDC_PM_TOP);
        minimum = 0;
      }else if(id == IDC_PM_SCR_BOTTOM){
        hChange = GetDlgItem(hDlg,IDC_PM_BOTTOM);
        minimum = 0;
      }
      if(hChange != NULL){
        DoWhenVscroll(hChange,iId,minimum,maximum);
      }
    }
    break;
  case WM_COMMAND:
    {
      int iEvent = HIWORD(wParam);
      int iId = LOWORD(wParam);
      switch(iId){
      case IDC_SETTOKYOUGI:
        {
          char buf[32];
          double bai = 74.0 / (double)currentdesign.height * 600.0;
          sprintf(buf,"%.4f",bai);
          SetDlgItemText(hDlg,IDC_BAIRITU,buf);
        }
        break;
      case IDC_PM_LEFT: case IDC_PM_RIGHT: case IDC_PM_TOP: case IDC_PM_BOTTOM:
      case IDC_BAIRITU:
        {
          if(iEvent == EN_CHANGE && hPrintDC != NULL){
            HWND h = GetDlgItem(hDlg,IDC_PREVIEW);
            InvalidateRect(h,NULL,FALSE);
            UpdateWindow(h);
            int pages = CountPages(hDlg,hPrintDC);
            char buf[16];
            wsprintf(buf,"%d",pages);
            SetDlgItemText(hDlg,IDC_PAGENUM,buf);
          }
        }
        break;
      case IDC_SELPRINTER:
        {
          SelPrinter(hDlg);

          HWND hPreview = GetDlgItem(hDlg,IDC_PREVIEW);
          InvalidateRect(hPreview,NULL,TRUE);
          UpdateWindow(hPreview);

          HWND hOk = GetDlgItem(hDlg,IDOK);
          if(hPrintDC != NULL){
            EnableWindow(hOk,TRUE);
            int pages = CountPages(hDlg,hPrintDC);
            char buf[16];
            wsprintf(buf,"%d",pages);
            SetDlgItemText(hDlg,IDC_PAGENUM,buf);
          }else{
            EnableWindow(hOk,FALSE);
          }
          char printername[256];
          GetCurrentPrinterName(printername);
          SetDlgItemText(hDlg,IDC_SELECTEDPRINTER,printername);
        }
        break;
      case IDOK:
        {
          if(hPrintDC == NULL){
            break;
          }
          char buf[512];
          char printername[256];
          GetCurrentPrinterName(printername);
          int pages = CountPages(hDlg,hPrintDC);
          int nCopies = GetCurrentPrinterCopies();
          wsprintf(buf,"プリンタ名: [ %s ]\r\n一部当たり [ %d ページ ] で\r\n全部で [ %d 部 ] 印刷します\r\nよろしいですか?",printername,pages,nCopies);
          if(MessageBox(hDlg,buf,"確認",MB_YESNO)==IDYES){

            ChangeDisplayColorToMax();
            DOCINFO di;
            ZeroMemory(&di,sizeof(DOCINFO));
            di.cbSize = sizeof(DOCINFO);
            di.lpszDocName = "KAZESOMISO";
            double dotpermm_x = GetDeviceCaps(hPrintDC,LOGPIXELSX) / 25.4;
            double dotpermm_y = GetDeviceCaps(hPrintDC,LOGPIXELSY) / 25.4;
            double bairitu = GetFudaBairitu(hDlg);

            fudascale_x = bairitu * dotpermm_x;
            fudascale_y = bairitu * dotpermm_y;

            if(!gdiplus_useable){
              fudascale = fudascale_y;
            }else{
              fudascale = bairitu;
            }
            LoadImageToDC(hPrintDC,currentdesign);

            fudaunit = Gdiplus::UnitMillimeter;

            StartDoc(hPrintDC,&di);
            int rows,cols,sukima_x,sukima_y;
            CountOnePageFudaNum(hDlg,hPrintDC,&cols,&rows);
            GetFudaSukima(hDlg,hPrintDC,&sukima_x,&sukima_y);
            int left,right,top,bottom;
            GetPrintMargin(hDlg,&left,&top,&right,&bottom);

            int maxfudanum = 0;
            if(tori_or_yomi == TORI){
              maxfudanum = torifuda.size();
            }else{
              maxfudanum = yomifuda.size();
            }
            int fudanum = 0;
            for(int p = 0; p < pages; p++){
              StartPage(hPrintDC);
              for(int i = cols -1 ; i >= 0; i --){
                for(int j = 0; j < rows; j ++){
                  for(; fudanum < maxfudanum; fudanum++){
                    if(tori_or_yomi == TORI && torifuda[fudanum].saveasimage ||
                       tori_or_yomi == YOMI && yomifuda[fudanum].saveasimage
                    ){
                      break;
                    }
                  }
                  if(fudanum >= maxfudanum){
                    break;
                  }
                  class ToriYomiDesign design;
                  if(tori_or_yomi == TORI){
                    design.simonoku = torifuda[fudanum].simonoku;
                    design.kimariji = torifuda[fudanum].kimariji;
                    design.tori = currentdesign.tori;
                  }else{
                    design.waka = yomifuda[fudanum].waka;
                    design.yomi = currentdesign.yomi;
                  }
                  design.UpdateSize();
                  double x,y;
                  if(!gdiplus_useable){
                    x = left / bairitu + i * ( design.width + sukima_x / (bairitu * dotpermm_x) );
                    y = top / bairitu + j * ( design.height + sukima_y / (bairitu * dotpermm_y));
                  }else{
                    x = left / fudascale+ i * ( design.width + sukima_x / (dotpermm_x*fudascale) );
                    y = top / fudascale + j * ( design.height + sukima_y / (dotpermm_y*fudascale));
                  }
                  MYRECT rect;
                  rect.left = x;
                  rect.top = y;
                  rect.right = -1;
                  rect.bottom = -1;
                  DrawFuda(design,hPrintDC,&rect);
                  fudanum++;
                }
              }
              EndPage(hPrintDC);
            }

            EndDoc(hPrintDC);

            fudaunit = Gdiplus::UnitDisplay;
            fudascale = -1.0;
            HDC hdc = GetDC(hWndMain);
            LoadImageToDC(hdc,currentdesign);
            ReleaseDC(hWndMain,hdc);

            MessageBox(hDlg,"プリンタに出力しました。","完了",MB_OK);
          }
        }
        break;
      case IDCANCEL:
        {
          EndDialog(hDlg,0);
        }
        break;
      }
    }
    break;
  }
  return FALSE;
}