1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
/*
* Copyright (c) 2002-2003 Jesper K. Pedersen <blackie@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License version 2 as published by the Free Software Foundation.
*
* 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; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
**/
// ------------------------------- Description ----------------------------
// This is the KMultiFormListBox Widget. You do not need to inheret from this class,
// your interface to it will be through the methods `append` and `elements'.
//
// To make an instance of the widget, you need to inherit the classes
// `KMultiFormListBoxFactory' and `KMultiFormListBoxEntry'.
// ------------------------------------------------------------------------
#ifndef __kmultiformlistboxmultivisble
#define __kmultiformlistboxmultivisble
// -------------------------------- includes ------------------------------
#include "kmultiformlistbox.h"
//-------------------------------------------------------------------------
/**
@internal
*/
class KMultiFormListBoxMultiVisible :public QScrollView, KMultiFormListBoxShower {
Q_OBJECT
friend class KMultiFormListBox;
private:
/**
@param factory A factory used to generate the instances of KMultiFormListBoxEntry
class which is repeated in the KMultiFormListBox
@param parent A pointer to the parent widget
*/
KMultiFormListBoxMultiVisible(KMultiFormListBoxFactory *factory, QWidget *parent = 0, const char *name = 0);
/**
@return The elements in the KMultiFormListBox
*/
KMultiFormListBoxEntryList elements();
void append(KMultiFormListBoxEntry *);
QWidget* qWidget() { return this; }
public slots:
/**
This slot should be connected to a button which lets the user know that
he may get more elements in this KMultiFormListBox by pressing it.
The button should be labeled ``More Entries'' or something similar.
*/
void addElement(); // Adds an empty element to the KMultiFormListBox
protected slots:
/**
When this slot is invoked then the Idx menu will be shown.
@param elm The KMultiFormListBoxEntry element where the Idx button was
pressed. This information is necessary to be able to calculate the
location where the drop down menu should be shown
*/
void showIndexList(KMultiFormListBoxEntry *elm);
protected:
/**
Copies the element pointed to by which to the clipboard and removes it
from the interface.
This function is accessed from the class @ref CCP.
@param which A pointer to the element to cut.
*/
void cut(KMultiFormListBoxEntry *which);
/**
Copies the element pointed to by which to the clipboard.
This function is accessed from the class @ref CCP.
@param which A pointer to the element to copied.
*/
void copy(KMultiFormListBoxEntry *which);
/**
Paste the element from the clipboard to the KMultiFormListBox
This function is accessed from the class @ref CCP.
@param which A pointer to the KMultiFormListBoxEntry element which the
clipboard element should be inserted before,.
*/
void paste(KMultiFormListBoxEntry *which);
/**
Inserts an empty KMultiFormListBoxEntry into the widget.
@param which A pointer to the element which the new empty widget
should be inserted before.
*/
void addElement(KMultiFormListBoxEntry *);
friend class CCP;
virtual void resizeEvent(QResizeEvent *);
void addElemBefore(KMultiFormListBoxEntry *newElm, QWidget *existing);
void insertElmIntoWidget(KMultiFormListBoxEntry *elm, KMultiFormListBoxEntry *after);
void showWidget(KMultiFormListBoxEntry *elm);
void delElement(QWidget *);
void delAnElement();
void addElemBefore(KMultiFormListBoxEntry *newElm, KMultiFormListBoxEntry *existing);
void updateClipperContent();
int countElements(WidgetList *);
private:
// Instance variables
KMultiFormListBoxFactory *factory;
WidgetList *elms;
QPushButton *addBut;
QByteArray clipboard;
};
#endif /* kmultiformlistboxmultivisble */
|