/*************************************************************************** * Copyright (C) 2003 by Sébastien Laoût * * slaout@linux62.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. * * * * 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 Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef NEWBASKETDIALOG_H #define NEWBASKETDIALOG_H #include #include #include class KIconButton; class TQLineEdit; class TQDragObject; class TQListViewItem; class Basket; class KColorCombo2; /** The class KIconView allow to drag items. We don't want to, so we disable it. * This class also unselect the selected item when the user right click an empty space. We don't want to, so we reselect it if that happens. * @author Sébastien Laoût */ class SingleSelectionKIconView : public KIconView { Q_OBJECT TQ_OBJECT public: SingleSelectionKIconView(TQWidget *tqparent = 0, const char *name = 0, WFlags f = 0); TQDragObject* dragObject(); TQIconViewItem* selectedItem() { return m_lastSelected; } private slots: void slotSelectionChanged(TQIconViewItem *item); void slotSelectionChanged(); private: TQIconViewItem *m_lastSelected; }; /** Struct to store default properties of a new basket. * When the dialog shows up, the @p icon is used, as well as the @p backgroundColor. * A template is choosen depending on @p freeLayout and @p columnLayout. * If @p columnLayout is too high, the template with the more columns will be chosen instead. * If the user change the background color in the dialog, then @p backgroundImage and @p textColor will not be used! * @author Sébastien Laoût */ struct NewBasketDefaultProperties { TQString icon; TQString backgroundImage; TQColor backgroundColor; TQColor textColor; bool freeLayout; int columnCount; NewBasketDefaultProperties(); }; /** The dialog to create a new basket from a template. * @author Sébastien Laoût */ class NewBasketDialog : public KDialogBase { Q_OBJECT TQ_OBJECT public: NewBasketDialog(Basket *tqparentBasket, const NewBasketDefaultProperties &defaultProperties, TQWidget *tqparent = 0); ~NewBasketDialog(); void polish(); protected slots: void slotOk(); void returnPressed(); void manageTemplates(); void nameChanged(const TQString &newName); private: int populateBasketsList(TQListViewItem *item, int indent, int index); NewBasketDefaultProperties m_defaultProperties; KIconButton *m_icon; TQLineEdit *m_name; KColorCombo2 *m_backgroundColor; KIconView *m_templates; TQComboBox *m_createIn; TQMap m_basketsMap; }; #endif // NEWBASKETDIALOG_H