|
From: <mi...@us...> - 2009-09-24 14:20:38
|
Revision: 45
http://twain-samples.svn.sourceforge.net/twain-samples/?rev=45&view=rev
Author: mihailm
Date: 2009-09-24 14:20:30 +0000 (Thu, 24 Sep 2009)
Log Message:
-----------
Fixed bugs: 2858756
Version changed to 2.1
Modified Paths:
--------------
trunk/TWAIN-Samples/Twain_DS_sample01/src/CTWAINDS_Base.cpp
trunk/TWAIN-Samples/Twain_DS_sample01/src/CTWAINDS_FreeImage.cpp
trunk/TWAIN-Samples/Twain_DS_sample01/visual_studio/TWAINDS_GUI.rc
Modified: trunk/TWAIN-Samples/Twain_DS_sample01/src/CTWAINDS_Base.cpp
===================================================================
--- trunk/TWAIN-Samples/Twain_DS_sample01/src/CTWAINDS_Base.cpp 2009-09-10 18:56:25 UTC (rev 44)
+++ trunk/TWAIN-Samples/Twain_DS_sample01/src/CTWAINDS_Base.cpp 2009-09-24 14:20:30 UTC (rev 45)
@@ -1140,8 +1140,11 @@
bool CTWAINDS_Base::ConstrainFrameToScanner(InternalFrame& _frame)
{
bool bChanged = false;
- float fMaxValue;
- float fMinValue;
+ int nMaxHValue = 0x7FFFFFFF; //max frame size fit in InternalFrame
+ int nMinHValue = 0;
+ int nMaxWValue = 0x7FFFFFFF; //max frame size fit in InternalFrame
+ int nMinWValue = 0;
+ float fTemp;
// ICAP_PHYSICALWIDTH and ICAP_PHYSICALHEIGHT are required Caps while
// ICAP_MINIMUMWIDTH and ICAP_MINIMUMHEIGHT are not required caps.
@@ -1149,6 +1152,35 @@
CTWAINContainerFix32* pPhysicalHeight = dynamic_cast<CTWAINContainerFix32*>(findCapability(ICAP_PHYSICALHEIGHT));
CTWAINContainerFix32* pMinWidth = dynamic_cast<CTWAINContainerFix32*>(findCapability(ICAP_MINIMUMWIDTH));
CTWAINContainerFix32* pMinHeight = dynamic_cast<CTWAINContainerFix32*>(findCapability(ICAP_MINIMUMHEIGHT));
+
+ if(pPhysicalWidth)
+ {
+ if(pPhysicalWidth->GetCurrent(fTemp))
+ {
+ nMaxWValue = (int)(fTemp*1000.0);
+ }
+ }
+ if(pPhysicalHeight)
+ {
+ if(pPhysicalHeight->GetCurrent(fTemp))
+ {
+ nMaxHValue = (int)(fTemp*1000.0);
+ }
+ }
+ if(pMinWidth)
+ {
+ if(pMinWidth->GetCurrent(fTemp))
+ {
+ nMinWValue = (int)(fTemp*1000.0);
+ }
+ }
+ if(pMinHeight)
+ {
+ if(pMinHeight->GetCurrent(fTemp))
+ {
+ nMinHValue = (int)(fTemp*1000.0);
+ }
+ }
// Constrain the width
if(_frame.nLeft < 0)
@@ -1156,34 +1188,47 @@
_frame.nLeft = 0;
bChanged = true;
}
- if(pPhysicalWidth && true == pPhysicalWidth->GetCurrent(fMaxValue) && (int)fMaxValue*1000 < _frame.nRight)
+ if(_frame.nRight <= 0 || _frame.nRight > nMaxWValue)
{
- _frame.nRight = (int)fMaxValue;
+ _frame.nRight = nMaxWValue;
bChanged = true;
}
- if(pMinWidth && true == pMinWidth->GetCurrent(fMinValue) && (int)fMinValue*1000 > _frame.nRight-_frame.nLeft)
+ if(_frame.nLeft >= _frame.nRight)
{
- _frame.nLeft = max( 0, _frame.nLeft - ((int)fMinValue - (_frame.nRight-_frame.nLeft)) );
- _frame.nRight = _frame.nLeft + max((int)fMinValue, _frame.nRight-_frame.nLeft);
+ _frame.nLeft = 0;
+ _frame.nRight = nMaxWValue;
bChanged = true;
}
+ if((_frame.nRight-_frame.nLeft) < nMinWValue)
+ {
+ _frame.nLeft = max( 0, _frame.nLeft - (nMinWValue - (_frame.nRight-_frame.nLeft)) );
+ _frame.nRight = _frame.nLeft + max(nMinWValue, _frame.nRight-_frame.nLeft);
+ bChanged = true;
+ }
+
// Constrain the height
if(_frame.nTop < 0)
{
_frame.nTop = 0;
bChanged = true;
}
- if(pPhysicalHeight && true == pPhysicalHeight->GetCurrent(fMaxValue) && (int)fMaxValue*1000 < _frame.nBottom)
+ if(_frame.nBottom <= 0 || _frame.nBottom>nMaxHValue)
{
- _frame.nBottom = (int)fMaxValue;
+ _frame.nBottom = nMaxHValue;
bChanged = true;
}
- if(pMinHeight && true == pMinHeight->GetCurrent(fMinValue) && (int)fMinValue*1000 > _frame.nBottom-_frame.nTop)
+ if(_frame.nTop >= _frame.nBottom)
{
- _frame.nTop = max( 0, _frame.nTop - ((int)fMinValue - (_frame.nBottom-_frame.nTop)) );
- _frame.nBottom = _frame.nTop + max((int)fMinValue, _frame.nBottom-_frame.nTop);
+ _frame.nTop = 0;
+ _frame.nBottom = nMaxHValue;
bChanged = true;
+ }
+ if(( _frame.nBottom-_frame.nTop)< nMinHValue)
+ {
+ _frame.nTop = max( 0, _frame.nTop - (nMinHValue - (_frame.nBottom-_frame.nTop)) );
+ _frame.nBottom = _frame.nTop + max(nMinHValue, _frame.nBottom-_frame.nTop);
+ bChanged = true;
}
return bChanged;
Modified: trunk/TWAIN-Samples/Twain_DS_sample01/src/CTWAINDS_FreeImage.cpp
===================================================================
--- trunk/TWAIN-Samples/Twain_DS_sample01/src/CTWAINDS_FreeImage.cpp 2009-09-10 18:56:25 UTC (rev 44)
+++ trunk/TWAIN-Samples/Twain_DS_sample01/src/CTWAINDS_FreeImage.cpp 2009-09-24 14:20:30 UTC (rev 45)
@@ -65,11 +65,11 @@
{
0, // TW_UINT32 Id; Unique number. In Windows, application hWnd
{ // TW_VERSION Version; Identifies the piece of code
- 1, // TW_UINT16 MajorNum; Major revision number of the software
- 0, // TW_UINT16 MinorNum; Incremental revision number of the software
+ 2, // TW_UINT16 MajorNum; Major revision number of the software
+ 1, // TW_UINT16 MinorNum; Incremental revision number of the software
TWLG_ENGLISH, // TW_UINT16 Language; e.g. TWLG_SWISSFRENCH
TWCY_USA, // TW_UINT16 Country; e.g. TWCY_SWITZERLAND
- "1.0 sample" // TW_STR32 Info; e.g. "1.0b3 Beta release"
+ "2.1 sample" // TW_STR32 Info; e.g. "1.0b3 Beta release"
#ifdef _DEBUG
" debug"
#else
Modified: trunk/TWAIN-Samples/Twain_DS_sample01/visual_studio/TWAINDS_GUI.rc
===================================================================
--- trunk/TWAIN-Samples/Twain_DS_sample01/visual_studio/TWAINDS_GUI.rc 2009-09-10 18:56:25 UTC (rev 44)
+++ trunk/TWAIN-Samples/Twain_DS_sample01/visual_studio/TWAINDS_GUI.rc 2009-09-24 14:20:30 UTC (rev 45)
@@ -63,8 +63,8 @@
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,0,9,0
- PRODUCTVERSION 2,0,9,0
+ FILEVERSION 2,1,0,0
+ PRODUCTVERSION 2,1,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -81,12 +81,12 @@
BEGIN
VALUE "CompanyName", "TWAIN Working Group"
VALUE "FileDescription", "SAMPLE Data Source"
- VALUE "FileVersion", "2.0.9.0"
+ VALUE "FileVersion", "2.1.0.0"
VALUE "InternalName", "TWAINDS.dll"
VALUE "LegalCopyright", "(c) TWAIN Working Group. All rights reserved."
VALUE "OriginalFilename", "TWAINDS.dll"
VALUE "ProductName", "SampleDS01"
- VALUE "ProductVersion", "2.0.9.0"
+ VALUE "ProductVersion", "2.1.0.0"
END
END
BLOCK "VarFileInfo"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|