/* * "$Id: notifytxt.cc,v 1.1 2007-02-19 20:08:30 rmf24 Exp $" * * RetroShare C++ Interface. * * Copyright 2004-2006 by Robert Fernie. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License Version 2 as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. * * Please report all bugs and problems to "retroshare@lunamutt.com". * */ #include "notifytxt.h" #include #include #include #include #ifdef WINDOWS_SYS #include #include #define PASS_MAX 512 char *getpass (const char *prompt) { static char getpassbuf [PASS_MAX + 1]; size_t i = 0; int c; if (prompt) { fputs (prompt, stderr); fflush (stderr); } for (;;) { c = _getch (); if (c == '\r') { getpassbuf [i] = '\0'; break; } else if (i < PASS_MAX) { getpassbuf[i++] = c; } if (i >= PASS_MAX) { getpassbuf [i] = '\0'; break; } } if (prompt) { fputs ("\r\n", stderr); fflush (stderr); } return getpassbuf; } #endif void NotifyTxt::notifyErrorMsg(int list, int type, std::string msg) { return; } void NotifyTxt::notifyChat() { return; } std::string NotifyTxt::askForPassword(const std::string& key_details,bool prev_is_bad) { char *password = getpass(("Please enter GPG password for key "+key_details+": ").c_str()) ; return std::string(password); } void NotifyTxt::notifyListChange(int list, int type) { std::cerr << "NotifyTxt::notifyListChange()" << std::endl; switch(list) { // case NOTIFY_LIST_NEIGHBOURS: // displayNeighbours(); // break; case NOTIFY_LIST_FRIENDS: displayFriends(); break; case NOTIFY_LIST_DIRLIST_FRIENDS: displayDirectories(); break; case NOTIFY_LIST_SEARCHLIST: displaySearch(); break; case NOTIFY_LIST_MESSAGELIST: displayMessages(); break; case NOTIFY_LIST_CHANNELLIST: displayChannels(); break; case NOTIFY_LIST_TRANSFERLIST: displayTransfers(); break; default: break; } return; } void NotifyTxt::displayNeighbours() { std::list neighs; std::list::iterator it; rsPeers->getGPGAllList(neighs); std::ostringstream out; for(it = neighs.begin(); it != neighs.end(); it++) { RsPeerDetails detail; rsPeers->getPeerDetails(*it, detail); out << "Neighbour: "; out << detail; out << std::endl; } std::cerr << out.str(); } void NotifyTxt::displayFriends() { std::list ids; std::list::iterator it; rsPeers->getFriendList(ids); std::ostringstream out; for(it = ids.begin(); it != ids.end(); it++) { RsPeerDetails detail; rsPeers->getPeerDetails(*it, detail); out << "Neighbour: "; out << detail; out << std::endl; } std::cerr << out.str(); } void NotifyTxt::displayDirectories() { iface->lockData(); /* Lock Interface */ std::ostringstream out; std::cerr << out.str(); iface->unlockData(); /* UnLock Interface */ } void NotifyTxt::displaySearch() { iface->lockData(); /* Lock Interface */ std::ostringstream out; std::cerr << out.str(); iface->unlockData(); /* UnLock Interface */ } void NotifyTxt::displayMessages() { iface->lockData(); /* Lock Interface */ iface->unlockData(); /* UnLock Interface */ } void NotifyTxt::displayChannels() { iface->lockData(); /* Lock Interface */ std::ostringstream out; std::cerr << out.str(); iface->unlockData(); /* UnLock Interface */ } void NotifyTxt::displayTransfers() { iface->lockData(); /* Lock Interface */ std::ostringstream out; std::cerr << out.str(); iface->unlockData(); /* UnLock Interface */ }