//
//  The contents of this file are subject to the Mozilla Public License
//  Version 1.0 (the "License"); you may not use this file except in
//  compliance with the License. You may obtain a copy of the License at
//  http://www.mozilla.org/MPL/
// 
//  Software distributed under the License is distributed on an "AS IS"
//  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
//  the License for the specific language governing rights and limitations
//  under the License.
// 
//  The Original Code is CPhone, a cross platform voip gui.
//
//  The Initial Developer of the Original Code is Derek Smithies.
//
//  Copyright (C) 2002 Indranet Technologies Ltd, 
//                                  http://www.indranet-technologies.com
//  All Rights Reserved.
//
//  Contributor(s): _______________

/*
 *
 *  $Log: addressbookSub.h,v $
 *  Revision 1.4  2003/08/26 04:48:02  dereksmithies
 *  Fixes to get statistics working right, add icons, add ok,cancel,apply buttons
 *
 *  Revision 1.3  2003/04/11 01:08:35  dereksmithies
 *  Add speed dial support for Quicknet cards.
 *
 *  Revision 1.2  2003/04/04 04:37:49  dereksmithies
 *  Major upgrade.
 *  Ixj & microtelco support added. Fix threading issues.
 *
 *  Revision 1.1.1.1  2002/05/12 22:55:01  dereksmithies
 *  Initial release.
 *
 *
 *
 *
 */


#ifndef ADDRESSBOOK_H
#define ADDRESSBOOK_H
#include "mainwindowSub.h"
#include "addressbook.h"
#include <ptlib.h>
#include "cpendpoint.h"


class AddressBook : public FormAddressBook
{ 
public:
    AddressBook();
    ~AddressBook();

    void AbAdd_slot();
    void AbApplySlot();
    void AbCancelAll_slot();
    void AbChange_slot();
    void AbConnectToItem_slot();
    void AbDeleteItem_slot();
    void AbDoubleClick_slot();
    void AbListViewSelectionChanged_slot();
    void AbOkSlot();
    void AbSearchForItem_slot();
    void closeEvent(QCloseEvent *ce);
    void customEvent(QCustomEvent *ce);

    void OnConnectionEstablished(bool isEstablished);

    static PString GetAddressForKey(PString key);
    static void GetNameAddressForSpeedDial(PString &name, PString &address, PString key);

 private: 
    void SaveCurrentEntries();
    void Setup();
    void ReadCurrentDisplayTable(PStringList &keys, PStringList &speeds, PStringList &addresses);

    static void GetKeysSpeedsAddresses(PStringList &keys, PStringList &speeds, PStringList &addresses);

    bool DuplicateNameCondition();
    bool DuplicateSpeedDialCondition();
    bool NullNameAddressCondition();
    
    static PMutex      accessMutex;
    bool        controlsSet;
};

#endif // ADDRESSBOOK_H


syntax highlighted by Code2HTML, v. 0.9.1