132 lines
4.8 KiB
C++
132 lines
4.8 KiB
C++
/***************************************************************************
|
||
* Copyright <20> 2007 TWAIN Working Group:
|
||
* Adobe Systems Incorporated, AnyDoc Software Inc., Eastman Kodak Company,
|
||
* Fujitsu Computer Products of America, JFL Peripheral Solutions Inc.,
|
||
* Ricoh Corporation, and Xerox Corporation.
|
||
* All rights reserved.
|
||
*
|
||
* Redistribution and use in source and binary forms, with or without
|
||
* modification, are permitted provided that the following conditions are met:
|
||
* * Redistributions of source code must retain the above copyright
|
||
* notice, this list of conditions and the following disclaimer.
|
||
* * Redistributions in binary form must reproduce the above copyright
|
||
* notice, this list of conditions and the following disclaimer in the
|
||
* documentation and/or other materials provided with the distribution.
|
||
* * Neither the name of the TWAIN Working Group nor the
|
||
* names of its contributors may be used to endorse or promote products
|
||
* derived from this software without specific prior written permission.
|
||
*
|
||
* THIS SOFTWARE IS PROVIDED BY TWAIN Working Group ``AS IS'' AND ANY
|
||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
* DISCLAIMED. IN NO EVENT SHALL TWAIN Working Group BE LIABLE FOR ANY
|
||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
*
|
||
***************************************************************************/
|
||
|
||
/**
|
||
* @file TWAIN_UI.h
|
||
* UI base class - framework independent
|
||
* @author TWAIN Working Group
|
||
* @date Nov 2009
|
||
*/
|
||
#ifndef __TWAIN_UI_H__
|
||
#define __TWAIN_UI_H__
|
||
|
||
#include <list>
|
||
//#include "UI_INI.h"
|
||
|
||
#define FILEEXTENTION ".DSP"
|
||
#ifdef TWNDS_OS_LINUX
|
||
#define PROFILELOCATION ".TWAIN Working Group/Sample2/"
|
||
#elif defined(TWNDS_OS_WIN)
|
||
#define PROFILELOCATION "TWAIN Working Group/Sample2/"
|
||
#elif defined(TWNDS_OS_APPLE)
|
||
#define PROFILELOCATION "TWAIN Working Group/Sample2/"
|
||
#else
|
||
|
||
#endif
|
||
|
||
CTWAIN_UI* CreateUI(CTWAINDS_FreeImage *pDS);
|
||
void DestroyUI(CTWAIN_UI* pUI);
|
||
|
||
typedef list<string> lstString;
|
||
|
||
class CTWAIN_UI
|
||
{
|
||
public:
|
||
CTWAIN_UI(CTWAINDS_FreeImage *pDS);
|
||
~CTWAIN_UI(){};
|
||
/**
|
||
* Will show the TWAIN GUI
|
||
* @param[in] _pData contains info about if the UI should be shown etc.
|
||
* @return a valid TWRC_xxxx return code.
|
||
*/
|
||
virtual TW_INT16 DisplayTWAINGUI(TW_USERINTERFACE Data, bool bSetup, bool bIndicators);
|
||
|
||
/**
|
||
* Close the user interface for TWAIN
|
||
*/
|
||
virtual void DestroyTWAINGUI();
|
||
virtual void UpdateProgress(bool bShow, unsigned char ucProgress, unsigned int unPageNo, string strProgressTitle);
|
||
virtual void Scan();
|
||
virtual void Cancel();
|
||
virtual void Save();
|
||
virtual unsigned int MessageBox(string strMessage,string strTitle, unsigned int unIconID);
|
||
virtual bool processEvent(pTW_EVENT _pEvent);
|
||
int GetCurrentCapIndex(const TW_UINT16 _unCap);
|
||
const IntVector* GetValidCap(const TW_UINT16 _unCap);
|
||
const FloatVector* GetValidCapFloat(const TW_UINT16 _unCap);
|
||
TW_FRAME GetCurrentFrame();
|
||
bool SetCurrentFrame(float fTop, float fLeft, float fBottom, float fRight);
|
||
bool GetCapRangeFloat(const TW_UINT16 _unCap, float &fMin, float &fMax, float &fStep);
|
||
float GetCapValueFloat(const TW_UINT16 _unCap);
|
||
bool SetCapValueFloat(const TW_UINT16 _unCap, float fVal);
|
||
bool SetCapValueInt(const TW_UINT16 _unCap, int nVal);
|
||
|
||
/**
|
||
* Initialize combobox with profile names
|
||
* @param[in] pcbxProfiles a pointer to CComboBox.
|
||
* @return true on success
|
||
*/
|
||
void TW_GetAllProfiles(lstString& strFileNames);
|
||
/**
|
||
* Save CustomDSdata to file
|
||
* @param[in] strFileName a CString. Name of the file
|
||
* @param[in] hData a HGLOBAL. Handle to CustomDSdata
|
||
* @param[in] dwDataSize a hData. Size of CustomDSdata
|
||
* @return true on success
|
||
*/
|
||
bool TW_SaveProfileToFile(string strFileName);
|
||
/**
|
||
* Load CustomDSdata from file
|
||
* @param[in] strFileName a CString. Name of the file
|
||
* @param[out] hData a pointer to HGLOBAL. Handle to CustomDSdata
|
||
* @param[out] dwDataSize a pointer to hData. Size of CustomDSdata
|
||
* @return true on success
|
||
*/
|
||
bool TW_LoadProfileFromFile(string strFileName);
|
||
/**
|
||
* Delete selected profile from the disk
|
||
* @param[in] pcbxProfiles a pointer to CComboBox.
|
||
* @return true on success
|
||
*/
|
||
bool TW_DeleteProfile(string strFileName);
|
||
|
||
bool ResetAllCaps();
|
||
|
||
CTWAINDS_FreeImage *m_pDS;
|
||
TW_USERINTERFACE m_EnableDSdata;
|
||
bool m_bScanning;
|
||
bool m_bSetup;
|
||
bool m_bIndicators;
|
||
string m_strProfilesDirectory;
|
||
};
|
||
|
||
#endif // __TWAIN_UI_H__
|