summaryrefslogtreecommitdiffstats
path: root/kregexpeditor/KMultiFormListBox/tdemultiformlistbox-multivisible.h
blob: 5077496f997a5d542c6fd9100ea14a961db35ceb (plain)
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
136
/*
 *  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 __tdemultiformlistboxmultivisble
#define __tdemultiformlistboxmultivisble

// -------------------------------- includes ------------------------------
#include "tdemultiformlistbox.h"
//-------------------------------------------------------------------------

/**
   @internal
*/
class KMultiFormListBoxMultiVisible :public TQScrollView, 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, TQWidget *parent = 0, const char *name = 0);

  /**
		 @return The elements in the KMultiFormListBox
  */
  KMultiFormListBoxEntryList elements();
  void append(KMultiFormListBoxEntry *);

  TQWidget* 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(TQResizeEvent *);
  void addElemBefore(KMultiFormListBoxEntry *newElm, TQWidget *existing);
  void insertElmIntoWidget(KMultiFormListBoxEntry *elm, KMultiFormListBoxEntry *after);
  void showWidget(KMultiFormListBoxEntry *elm);
  void delElement(TQWidget *);
  void delAnElement();
  void addElemBefore(KMultiFormListBoxEntry *newElm, KMultiFormListBoxEntry *existing);
  void updateClipperContent();
  int countElements(WidgetList *);



private:
  // Instance variables

  KMultiFormListBoxFactory *factory;
  WidgetList *elms;
  TQPushButton *addBut;
  TQByteArray clipboard;
};


#endif /* tdemultiformlistboxmultivisble */