//--------------------------------------------------------------------------- #include #pragma hdrstop #include "RawParamsDialog.h" #include "MainForm.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TRawParamsDlg *RawParamsDlg; //--------------------------------------------------------------------------- __fastcall TRawParamsDlg::TRawParamsDlg(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- int TRawParamsDlg::GetIndexFromSelFormat(int nFormat) { switch (nFormat) { case FILE_RAW: return 0; case FILE_FAX_G3_1D_NOEOL: return 1; case FILE_FAX_G3_1D: return 2; case FILE_FAX_G3_2D: return 3; case FILE_FAX_G4: return 4; case FILE_ABIC: return 5; } return 0; } int TRawParamsDlg::GetFormatFromSelIndex(int nIndex) { switch (nIndex) { case 0: return FILE_RAW; case 1: return FILE_FAX_G3_1D_NOEOL; case 2: return FILE_FAX_G3_1D; case 3: return FILE_FAX_G3_2D; case 4: return FILE_FAX_G4; case 5: return FILE_ABIC; } return FILE_RAW; } int TRawParamsDlg::GetIndexFromSelViewPerspective(int nViewPerspective) { switch (nViewPerspective) { case LOADINFO_TOPLEFT: return 0; case LOADINFO_REVERSE: return 1; case LOADINFO_BOTTOMLEFT180: return 2; case LOADINFO_TOPLEFT180: return 3; case LOADINFO_TOPLEFT90: return 4; case LOADINFO_TOPLEFT270: return 5; case LOADINFO_BOTTOMLEFT90: return 6; case LOADINFO_BOTTOMLEFT270: return 7; } return 0; } int TRawParamsDlg::GetViewPerspectiveFromSelIndex(int nIndex) { switch (nIndex) { case 0: return LOADINFO_TOPLEFT; case 1: return LOADINFO_REVERSE; case 2: return LOADINFO_BOTTOMLEFT180; case 3: return LOADINFO_TOPLEFT180; case 4: return LOADINFO_TOPLEFT90; case 5: return LOADINFO_TOPLEFT270; case 6: return LOADINFO_BOTTOMLEFT90; case 7: return LOADINFO_BOTTOMLEFT270; } return LOADINFO_TOPLEFT; } int TRawParamsDlg::GetIndexFromSelColorOrder(int nColorOrder) { switch (nColorOrder) { case LOADINFO_ORDERRGB: return 0; case 0: return 1; case LOADINFO_ORDERGRAY: return 2; } return 0; } int TRawParamsDlg::GetColorOrderFromSelIndex(int nIndex) { switch (nIndex) { case 0: return LOADINFO_ORDERRGB; case 1://LOADINFO_ORDERRGB return 0; //BGR case 2: return LOADINFO_ORDERGRAY; } return LOADINFO_ORDERRGB; } int TRawParamsDlg::GetIndexFromSelPalette(int nPalette) { switch (nPalette) { case 0: // GrayScale return 0; case 1: // LEAD Fixed return 1; } return 0; } int TRawParamsDlg::GetPaletteFromSelIndex(int nIndex) { switch (nIndex) { case 0: return 0; // GrayScale case 1: return 1; // LEAD Fixed } return 0; } void TRawParamsDlg::EnableRawParamsDlgControls(bool bEnable, bool bOrder) { int nBPP; bool bEnablePalette; _gbColor->Enabled= !bEnable; _rbBlackOnWhite->Enabled= !bEnable; _rbWhiteOnBlack->Enabled= !bEnable; _gbFillOrder->Enabled = bOrder; _rbLSBFirst->Enabled = bOrder; _rbMSBFirst->Enabled = bOrder; _gbBitsPerPixel->Enabled= bEnable; _edtBitsPerPixel->Enabled= bEnable; _chkPadLine4Bytes->Enabled= bEnable; _gbColorOrder->Enabled= ((bEnable) && (bOrder)); _cmbColorOrder->Enabled= ((bEnable) && (bOrder)); bEnablePalette= bEnable; if((_edtBitsPerPixel->Enabled) && (_edtBitsPerPixel->Text != "")) { nBPP= StrToInt(_edtBitsPerPixel->Text); bEnablePalette= (bEnablePalette && (nBPP <= 8)); } else _edtBitsPerPixel->Text= "1"; _gbPalette->Enabled= bEnablePalette; _cmbPalette->Enabled= bEnablePalette; } void __fastcall TRawParamsDlg::FormCreate(TObject * Sender) { FLoadInfoFormat= MainFrm->LoadInfoFormat; FLoadInfoWidth= MainFrm->LoadInfoWidth; FLoadInfoHeight= MainFrm->LoadInfoHeight; FLoadInfoXRes= MainFrm->LoadInfoXRes; FLoadInfoYRes= MainFrm->LoadInfoYRes; FLoadInfoOffset= MainFrm->LoadInfoOffset; FLoadInfoWhiteOnBlack= MainFrm->LoadInfoWhiteOnBlack; FLoadInfoLSBFirst= MainFrm->LoadInfoLSBFirst; FLoadInfoViewPerspective= MainFrm->LoadInfoViewPerspective; FLoadInfoColorOrder= MainFrm->LoadInfoColorOrder; FLoadInfoBitsPerPixel= MainFrm->LoadInfoBitsPerPixel; FLoadInfoPalette= MainFrm->LoadInfoPalette; FLoadInfoPadding= MainFrm->LoadInfoPadding; // Format _cmbFormat->Clear(); _cmbFormat->Items->Add("RAW"); _cmbFormat->Items->Add("Group 3-1D (No EOL) Fax"); _cmbFormat->Items->Add("Group 3-1D Fax"); _cmbFormat->Items->Add("Group 3-2D Fax"); _cmbFormat->Items->Add("Group 4 Fax"); _cmbFormat->Items->Add("ABIC Raw"); _cmbFormat->ItemIndex= GetIndexFromSelFormat(FLoadInfoFormat); // Width And Height _edtWidth->Text= IntToStr(FLoadInfoWidth); _edtHeight->Text= IntToStr(FLoadInfoHeight); // XRes And YRes _edtHorizontal->Text= IntToStr(FLoadInfoXRes); _edtVertical->Text= IntToStr(FLoadInfoYRes); // Offset _edtOffset->Text= IntToStr(FLoadInfoOffset); // Black And White _rbBlackOnWhite->Checked= !FLoadInfoWhiteOnBlack; _rbWhiteOnBlack->Checked= FLoadInfoWhiteOnBlack; // MSB and LSB _rbMSBFirst->Checked= !FLoadInfoLSBFirst; _rbLSBFirst->Checked= FLoadInfoLSBFirst; //View Perspective _cmbViewPerspective->Clear(); _cmbViewPerspective->Items->Add("Top Left"); _cmbViewPerspective->Items->Add("Bottom Left"); _cmbViewPerspective->Items->Add("Top Right (Bottom Left 180)"); _cmbViewPerspective->Items->Add("Bottom Right (Top Left 180)"); _cmbViewPerspective->Items->Add("Right Top (Top Left 90)"); _cmbViewPerspective->Items->Add("Left Bottom (Top Left 270)"); _cmbViewPerspective->Items->Add("Left Top (Bottom Left 90)"); _cmbViewPerspective->Items->Add("Right Bottom (Bottom Left 270)"); _cmbViewPerspective->ItemIndex= GetIndexFromSelViewPerspective(FLoadInfoViewPerspective); //Order _cmbColorOrder->Clear(); _cmbColorOrder->Items->Add("Order RGB"); _cmbColorOrder->Items->Add("Order BGR"); _cmbColorOrder->Items->Add("Grayscale"); _cmbColorOrder->ItemIndex= GetIndexFromSelColorOrder(FLoadInfoColorOrder); //Bits Per Pixel _edtBitsPerPixel->Text= IntToStr(FLoadInfoBitsPerPixel); //Palette _cmbPalette->Clear(); _cmbPalette->Items->Add("Grayscale"); _cmbPalette->Items->Add("LEAD Fixed Palette"); _cmbPalette->ItemIndex= GetIndexFromSelPalette(FLoadInfoPalette); //Padding _chkPadLine4Bytes->Checked= FLoadInfoPadding; EnableRawParamsDlgControls(((_cmbFormat->ItemIndex == 0) || (_cmbFormat->ItemIndex == 5)), (_cmbFormat->ItemIndex != 5)); } void __fastcall TRawParamsDlg::_btnOKClick(TObject * Sender) { FLoadInfoFormat= GetFormatFromSelIndex(_cmbFormat->ItemIndex); FLoadInfoWidth= StrToInt(_edtWidth->Text); FLoadInfoHeight= StrToInt(_edtHeight->Text); FLoadInfoXRes= StrToInt(_edtHorizontal->Text); FLoadInfoYRes= StrToInt(_edtVertical->Text); FLoadInfoOffset= StrToInt(_edtOffset->Text); FLoadInfoWhiteOnBlack= _rbWhiteOnBlack->Checked; FLoadInfoLSBFirst= _rbLSBFirst->Checked; FLoadInfoViewPerspective= GetViewPerspectiveFromSelIndex(_cmbViewPerspective->ItemIndex); FLoadInfoColorOrder= GetColorOrderFromSelIndex(_cmbColorOrder->ItemIndex); FLoadInfoBitsPerPixel= StrToInt(_edtBitsPerPixel->Text); FLoadInfoPalette= GetPaletteFromSelIndex(_cmbPalette->ItemIndex); FLoadInfoPadding= _chkPadLine4Bytes->Checked; } void __fastcall TRawParamsDlg::_edtChange(TObject * Sender) { CheckOKButton(); } void __fastcall TRawParamsDlg::_edtKeyPress(TObject * Sender, char &Key) { if (!((Key >= '0') && (Key <= '9')) && (Key != ' ') && (Key != '\b')) Key = NULL; } void TRawParamsDlg::CheckOKButton() { if(_edtBitsPerPixel->Enabled) _btnOK->Enabled= ! ((_edtWidth->Text == "") || (_edtHeight->Text == "") || (_edtHorizontal->Text == "") || (_edtVertical->Text == "") || (_edtOffset->Text == "") || (_edtBitsPerPixel->Text == "")); else _btnOK->Enabled= ! ((_edtWidth->Text == "") || (_edtHeight->Text == "") || (_edtHorizontal->Text == "") || (_edtVertical->Text == "") || (_edtOffset->Text == "")); } void __fastcall TRawParamsDlg::_cmbFormatChange(TObject * Sender) { EnableRawParamsDlgControls(((_cmbFormat->ItemIndex == 0) || (_cmbFormat->ItemIndex == 5)), (_cmbFormat->ItemIndex != 5)); CheckOKButton(); }