mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-12 09:36:33 +01:00
remove empty sigc++2 directory
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
2f3f697bb8
commit
9c0d7d72d7
2797 changed files with 0 additions and 992363 deletions
|
|
@ -1,165 +0,0 @@
|
|||
// -*- c++ -*-
|
||||
#ifndef _GLIBMM_HELPERLIST_H
|
||||
#define _GLIBMM_HELPERLIST_H
|
||||
/* $Id: helperlist.h 386 2007-03-23 17:31:16Z murrayc $ */
|
||||
|
||||
/* helperlist.h
|
||||
*
|
||||
* Copyright 2002 The gtkmm Development Team
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <glibmm/containers.h>
|
||||
|
||||
namespace Glib
|
||||
{
|
||||
|
||||
// This class has some pure virtual methods which need to be implemented by derived classes.
|
||||
template< typename T_Child, typename T_CppElement, typename T_Iterator >
|
||||
class HelperList
|
||||
{
|
||||
public:
|
||||
HelperList()
|
||||
: gparent_(0)
|
||||
{}
|
||||
|
||||
HelperList(GObject* gp) //We use gp instead of gparent because that can cause warnings about a shadowed member.
|
||||
: gparent_(gp)
|
||||
{}
|
||||
|
||||
virtual ~HelperList()
|
||||
{}
|
||||
|
||||
typedef T_Child value_type;
|
||||
typedef value_type& reference;
|
||||
typedef const value_type& const_reference;
|
||||
|
||||
typedef T_Iterator iterator;
|
||||
typedef List_ConstIterator<iterator> const_iterator;
|
||||
typedef List_ReverseIterator<iterator> reverse_iterator;
|
||||
typedef List_ConstIterator<reverse_iterator> const_reverse_iterator;
|
||||
|
||||
typedef T_CppElement element_type;
|
||||
|
||||
typedef size_t difference_type;
|
||||
typedef size_t size_type;
|
||||
|
||||
//These are implemented differently for each Helper List.
|
||||
virtual iterator erase(iterator) = 0;
|
||||
|
||||
virtual void erase(iterator start, iterator stop)
|
||||
{
|
||||
while(start != stop)
|
||||
start = erase(start); //Implemented in derived class.
|
||||
}
|
||||
|
||||
virtual void remove(const_reference) = 0;
|
||||
|
||||
size_type size() const
|
||||
{
|
||||
return g_list_length(glist());
|
||||
}
|
||||
|
||||
inline size_type max_size() { return size_type(-1); }
|
||||
inline bool empty() { return glist() == 0; }
|
||||
|
||||
inline iterator begin()
|
||||
{return begin_();}
|
||||
inline iterator end()
|
||||
{return end_();}
|
||||
|
||||
inline const_iterator begin() const
|
||||
{ return const_iterator(begin_()); }
|
||||
inline const_iterator end() const
|
||||
{ return const_iterator(end_()); }
|
||||
|
||||
inline reverse_iterator rbegin()
|
||||
{ return reverse_iterator(end_()); }
|
||||
inline reverse_iterator rend()
|
||||
{ return reverse_iterator(begin_()); }
|
||||
|
||||
inline const_reverse_iterator rbegin() const
|
||||
{ return const_reverse_iterator(reverse_iterator(end_())); }
|
||||
inline const_reverse_iterator rend() const
|
||||
{ return const_reverse_iterator(reverse_iterator(begin_())); }
|
||||
|
||||
reference front() const
|
||||
{
|
||||
return *begin();
|
||||
}
|
||||
|
||||
reference back() const
|
||||
{
|
||||
return *(--end());
|
||||
}
|
||||
|
||||
reference operator[](size_type l) const
|
||||
{
|
||||
size_type j = 0;
|
||||
iterator i;
|
||||
for(i = begin(), j = 0; i != end(), j < l; ++i, ++j);
|
||||
return (*i);
|
||||
}
|
||||
|
||||
// iterator find(const_reference w)
|
||||
// {
|
||||
// iterator i = begin();
|
||||
// for(i = begin(); i != end() && (*i != w); i++);
|
||||
// return i;
|
||||
// }
|
||||
//
|
||||
// iterator find(Widget& w)
|
||||
// {
|
||||
// iterator i;
|
||||
// for (i = begin(); i != end() && ((*i)->$1() != &w); i++);
|
||||
// return i;
|
||||
// }
|
||||
|
||||
//Derived classes might choose to reimplement these as public:
|
||||
inline void pop_front()
|
||||
{ erase(begin()); }
|
||||
inline void pop_back()
|
||||
{ erase(--end()); }
|
||||
|
||||
void clear()
|
||||
{ erase(begin(), end()); }
|
||||
|
||||
GObject* gparent()
|
||||
{ return gparent_; };
|
||||
const GObject* gparent() const
|
||||
{ return gparent_; };
|
||||
|
||||
protected:
|
||||
virtual GList*& glist() const = 0; // front of list
|
||||
|
||||
iterator begin_() const
|
||||
{
|
||||
return iterator(glist(), glist());
|
||||
}
|
||||
|
||||
iterator end_() const
|
||||
{
|
||||
return iterator(glist(), (GList*)0);
|
||||
}
|
||||
|
||||
GObject* gparent_;
|
||||
};
|
||||
|
||||
|
||||
} /* namespace Glib */
|
||||
|
||||
#endif /* _GLIBMM_HELPERLIST_H */
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue