You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
piklab/src/common/gui/list_container.h

57 lines
2.4 KiB

/***************************************************************************
* Copyright (C) 2007 Nicolas Hadacek <hadacek@kde.org> *
* *
* 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. *
***************************************************************************/
#ifndef LIST_CONTAINER_H
#define LIST_CONTAINER_H
#include <tdepopupmenu.h>
#include <tdelistview.h>
//----------------------------------------------------------------------------
class ListContainer
{
public:
virtual ~ListContainer() {}
virtual ListContainer *appendBranch(const TQString &title) = 0;
enum ItemState { Normal, Checked, UnChecked, Disabled };
void appendItem(const TQString &label, uint id, ItemState state) { appendItem(TQPixmap(), label, id, state); }
virtual void appendItem(const TQPixmap &icon, const TQString &label, uint id, ItemState state) = 0;
};
//----------------------------------------------------------------------------
class PopupContainer : public TDEPopupMenu, public ListContainer
{
TQ_OBJECT
public:
PopupContainer(const TQString &title, TQWidget *parent = 0, const char *name = 0);
virtual ListContainer *appendBranch(const TQString &title);
virtual ListContainer *appendBranch(const TQPixmap &icon, const TQString &title);
virtual void appendItem(const TQPixmap &icon, const TQString &label, uint id, ItemState state);
};
//----------------------------------------------------------------------------
class ListViewItemContainer : public TDEListViewItem, public ListContainer
{
public:
ListViewItemContainer(const TQString &title, TDEListView *parent);
ListViewItemContainer(const TQString &title, ListViewItemContainer *parent);
virtual ~ListViewItemContainer();
void setColumn(uint column) { _column = column; }
virtual ListContainer *appendBranch(const TQString &title);
virtual void appendItem(const TQPixmap &icon, const TQString &label, uint id, ItemState state);
int id(const TQListViewItem* item) const; // -1 if not known
private:
ListViewItemContainer *_parent;
uint _column;
TQMap<const TQListViewItem *, uint> *_ids;
};
#endif