twain2/hugaotwainds/TWAIN_UI.h

132 lines
4.8 KiB
C++
Raw Permalink Blame History

/***************************************************************************
* 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__