www.pudn.com > isync2[1].0.rar > showcard.h


/***************************************************************************
                          showcard.h  -  description
                             -------------------
    begin                : Tue May 14 2002
    copyright            : (C) 2002 by root
    email                : root@Zct
 ***************************************************************************/
#ifndef SHOWCARD_H
#define SHOWCARD_H

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include 
#include 
#include 
#include 
#include 

#include 
#include 
#include 
#include 

#include 
#include 
#include 
#include 

#include 
#include 
#include 
#include 
//#include 
//#include 

/******************Mac_Check控件***********************/
class Fl_MacCheck_Button : public Fl_Button
{
protected:
	virtual FL_EXPORT void 	 draw();

public:
	Fl_Pixmap		on_pix, off_pix;
	virtual FL_EXPORT int	 handle(int);
	FL_EXPORT	Fl_MacCheck_Button (int x, int y, int w, int h, const char *l = 0);
};

/******************************************************
    CDatabase 部分
******************************************************/
#define MAXLEN_FILENAME                64
#define MAXLEN_DBKEY                    12
#define MAXRECORD_OFENUSE		   15

#include "gdbm.h"

class CDatabase               //数据库类定义
{
public:
  CDatabase(const char *szFileName);
  ~CDatabase();

  //flag可以取这样几个值:GDBM_READER、GDBM_WRITER
  //GDBM_WRCREAT、GDBM_NEWDB、GDBM_SYNC、GDBM_NOLOCK
  bool Open(int flag, void (*fata_func)()=0);
  bool IsOpen();
  void Close();
  bool Insert(datum &key, datum data);
  bool Insertwithkey(datum key, datum data);
  bool Modify(datum key, datum data);
  bool Delete(datum key);
  datum Fetch(datum key);
  bool Exist(datum key);
  datum FindFirst();
  datum FindNext(datum key);

private:
  GDBM_FILE gdbm_file;
  char szDBFileName[MAXLEN_FILENAME];
};

/******************************************************
    CardPreview 部分
******************************************************/

#define dim(x) (int)(sizeof(x)/sizeof(x[0]))
#define DBPATH          DATAPATH
#define DETAILDB        DBPATH"/Detail.dbm"
#define NAMEDB          DBPATH"/Name.dbm"
#define TELDB            DBPATH"/Tel.dbm"
#define SETTINGDB       DBPATH"/Setting.dbm"
#define TYPESDB         DBPATH"/Types.dbm"
#define RECENTDB	  DBPATH"/Recent.dbm"

//下面的宏定义各变量的最大长度
#define CARD_MAX_COUNT			1000

//
#define MAXLEN_TEL          17            //

#define MAXLEN_NAME         15            //
#define MAXLEN_MOBILETEL    MAXLEN_TEL    //
#define MAXLEN_OFFICETEL    MAXLEN_TEL    //
#define MAXLEN_INTERIORTEL  MAXLEN_TEL    //
#define MAXLEN_OTHERTEL     MAXLEN_TEL    //

#define MAXLEN_BUSINESS     25            //
#define MAXLEN_COMPANYNAME	65            //
#define MAXLEN_EMAL         65            //
#define MAXLEN_COMMENT      253           //
#define MAXLEN_RING         33            //
#define MAXLEN_ANSWER       33            //

//------------------名片详细资料数据结构定义-------------------//
struct Detail
{
  char szName[MAXLEN_NAME];               //姓名
  char szMobileTel[MAXLEN_MOBILETEL];     //手机号码
  char szOfficeTel[MAXLEN_OFFICETEL];     //办公电话
  char szInteriorTel[MAXLEN_INTERIORTEL]; //内线电话
  char szOtherTel[MAXLEN_OTHERTEL];       //附加电话

  char szBusiness[MAXLEN_BUSINESS];       //职务
  char szCompanyName[MAXLEN_COMPANYNAME]; //单位名称
  char szEmail[MAXLEN_EMAL];              //邮件地址
  char szComment[MAXLEN_COMMENT];         //备注信息
  char szRing[MAXLEN_RING];               //特色震铃
  char szAnswer[MAXLEN_ANSWER];           //特色应答
  char temp[3];                           //
};

//------------------用于同步程序中的纪录结构-------------------//
struct TransferDetail
{
  Detail card;
  char szType[12];
};

//-----------------------供同步程序调用的接口--------------------------
void DeleteAllNamecard (void);
int SaveNameCard (TransferDetail *d);           //存储名片
int SaveNameCardComplete (void);                       //存储完毕

//从名片数据库读取所有的名片,这个接口供同步程序使用
// >0   已经读取的名片张数
// =0   读取过程完毕,成功读取了所有名片
// -1   读取名片数据库时发生错误
int LoadNameCard (TransferDetail *pRecord);

int SaveNamecardLogFile (int nCurCardNum, int nCurTypeNum, bool sendmsg);
void KillAllSRProg (void);

#endif