// -*- C++ -*- /* This file is part of * ====================================================== * * LyX, The Document Processor * * Copyright 2001 The LyX Team. * * ====================================================== * * \file ControlCitation.h * \author Angus Leeming */ #ifndef HELPERFUNCS_H #define HELPERFUNCS_H #include // pair #ifdef __GNUG__ #pragma interface #endif /** Functions to convert a string to/from a vector. */ /// string const getStringFromVector(std::vector const & vec, string const & delim=","); /// std::vector const getVectorFromString(string const & str, string const & delim=","); class LyXView; /** Launch a file dialog and return the chosen file. filename: a suggested filename. title: the title of the dialog. pattern: *.ps etc. dir1 = (name, dir), dir2 = (name, dir): extra buttons on the dialog. */ string const browseFile(LyXView *lv, string const & filename, string const & title, string const & pattern, std::pair const & dir1, std::pair const & dir2); /** Functions to extract vectors of the first and second elems from a vector > */ template struct firster { typedef typename Pair::first_type first_type; first_type const & operator()(Pair const & p) { return p.first; } }; template struct seconder { typedef typename Pair::second_type second_type; second_type const & operator()(Pair const & p) { return p.second; } }; /// template std::vector const getFirst(std::vector const & pr) { std::vector tmp(pr.size()); std::transform(pr.begin(), pr.end(), tmp.begin(), firster()); return tmp; } /// template std::vector const getSecond(std::vector const & pr) { std::vector tmp(pr.size()); std::transform(pr.begin(), pr.end(), tmp.begin(), seconder()); return tmp; } #endif // HELPERFUNCS_H