Files
ncmpcpp/src/menu.cpp
Andrzej Rybczak d73230cdb2 if GetStringHelper is set in Menu<std::string>, invoke it
previously it always returned raw string and ignored this
helper function, but there might be cases when one would
want to use its own function e.g. to parse the string somehow.
2009-09-16 19:26:56 +00:00

61 lines
2.1 KiB
C++

/***************************************************************************
* Copyright (C) 2008-2009 by Andrzej Rybczak *
* electricityispower@gmail.com *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program 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 General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#include "menu.h"
using namespace NCurses;
void List::SelectCurrent()
{
if (Empty())
return;
size_t i = Choice();
Select(i, !isSelected(i));
}
void List::ReverseSelection(size_t beginning)
{
for (size_t i = beginning; i < Size(); ++i)
Select(i, !isSelected(i) && !isStatic(i));
}
bool List::Deselect()
{
if (!hasSelected())
return false;
for (size_t i = 0; i < Size(); ++i)
Select(i, 0);
return true;
}
template <> std::string Menu<std::string>::GetOption(size_t pos)
{
if (itsOptionsPtr->at(pos))
{
if (itsGetStringFunction)
return itsGetStringFunction((*itsOptionsPtr)[pos]->Item, itsGetStringFunctionUserData);
else
return (*itsOptionsPtr)[pos]->Item;
}
else
return "";
}