summaryrefslogtreecommitdiffstats
path: root/kverbos/kverbos/kerfassen.h
blob: 7916d7123bd57c0077c0132ab0249430e9868de7 (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
137
138
139
140
141
142
143
144
145
146
147
148
/***************************************************************************
                          kerfassen.h  -  description
                             -------------------
    begin                : Sat Dec 15 2001
    copyright            : (C) 2001 by Arnold Kraschinski
    email                : arnold.k67@gmx.de
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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 KERFASSEN_H
#define KERFASSEN_H

#include <klocale.h>

#include "qerfassen.h"
#include "verbspanish.h"

class TQLineEdit;


/** This class overloads the class QErfassen which was created with the TQt-designer.
  * The dialog is used to edit existing verbs and to add new verbs.
  *
  *@author Arnold Kraschinski
  */

class KErfassen : public QErfassen  {
public:
  /** An die Dialogklasse wird ein Zeiger auf eine Verbliste �bergeben, damit
   *  Verben in die Liste eingef�gt werden k�nnen. Es wird auch ein Iterator �bergeben, der
   *  anzeigt, wo mit dem editieren begonnen werden soll.
   */
  KErfassen(spanishVerbList& l, int pos = -1, TQWidget* tqparent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0);
  /** der Destruktor */
  virtual ~KErfassen();
  /** Gibt zur�ck, ob durch den Ablauf des Dialoges eine �nderung an der
   *  bearbeiteten Verbliste entstanden ist (list = true).
   *  Wird als Parameter false �bergeben, erf�hrt man, ob das Fenster des Dialoges
   *  ge�ndert wurde.
   */
  bool wasChanged();
  /** The dialog works on his own copy of the verblist. So after the end of the dialog
    * the caling function has to fetch the list from the dialog with this function.
    */
  spanishVerbList getList();

private:
  /** Ein Verb befindet sich in den Eingabefeldern des Dialoges und
    * dieses soll nun in die Liste aufgenommen werden.
    */
  spanishVerbList::Iterator verbErfassen();
  /** The verb in the edit boxes is transfered to a verbSpanish object
    */
  verbSpanish verbFromWidget();
  /** Ein Verb aus der aktuellen Listenposition soll in dem Dialog dargestellt
   *  werden.
   */
  void verbToWidget();
  /** Deaktiviert die Eingabefelder f�r die Gerund-Form und f�r das Partizip
    * und die Karteikarten f�r die ganzen Formen. Au�erdem wird der Radiobutton
    * wieder auf den Ausgangszustand zur�ckgesetzt.
    */
  void deaktivieren();
  /** Aktiviert die Eingabefelder f�r die Gerund-Form und f�r das Partizip
    * und die Karteikarten f�r die ganzen Formen. Au�erdem wird der Radiobutton
    * in den gesetzten Zustand gebracht.
    */
  void aktivieren();
  /** In dem Dialog sollen ein Teil der Eingabefelder oder aber alle
    * Eingabefelder gel�scht werden.
    */
  void clearPage(int s);
  void clearAllPages();
  void clearAll();
  /** Es wird gepr�ft, ob der Inhalt des Eingabefensters ver�ndert wurde.
   */
  bool widgetChanged();

public slots:
  /** Dieser Slot bearbeitet den Wechsel am RadioButtonIrregular
    * Wird der Knopf ausgew�hlt, dann m�ssen alle Felder f�r die
    * unregelm��igen Formen aktiviert werden.
    * Wird der Button gel�scht, dann m�ssen die Felder deaktiviert
    * werden.
    */
  // virtual void slotToggleIrregular(bool b);
  virtual void slotTypChanged(int);
  /** Die folgenden Slots werden von den einzelnen L�schen-Buttons des
    * Dialoges aufgerufen.
    */
  virtual void slotClearPage1();
  virtual void slotClearPage2();
  virtual void slotClearPage3();
  virtual void slotClearPage4();
  virtual void slotClearPage5();
  virtual void slotClearPage6();
  virtual void slotClearPage7();
  virtual void slotClearPage8();
  virtual void slotClearAll();
  /** Wird aufgerufen, wenn der 'beenden'-Button gedr�ckt wurde.
   */
  virtual void slotDlgEnde();
  /** Die Eingabe eines Verbes wurde abgeschlossen und es wurde der
    * weiter Button gedr�ckt, um weitere Verben einzugeben.
    */
  virtual void slotWeiter();
  /** Es wurde an einer Position in der Liste der zur�ck-Button bet�tigt.
   *  Das gerade eingegebene Verb muss in die Liste �bernommen werden und der
   *  Positionszeiger in der Liste muss eine Position nach hinten r�cken, falls
   *  es ein Verb weiter vorne in der Liste gibt. Dieses Verb muss eventuell in
   *  den Dialog geladen werden.
   */
  virtual void slotZurueck();
  /** The dilog shows a verb but this verb shouldn't be changed. The user wants to
    * enter a new verb. So he can use this button to get an empty dialog window for his
    * new verb
    */
  virtual void slotNewVerb();
  /** Die folgenden Slots werden aufgerufen, wenn ein Button mit einem
   *  spanischen Sonderzeichen gedr�ckt wird.
   *  Das Zeichen wird dann dem Eingabefeld, das den Focus hat zugef�gt.
   */
  virtual void slotN();
  virtual void slotA();
  virtual void slotE();
  virtual void slotI();
  virtual void slotO();
  virtual void slotU();

private:
  /** Der Zeiger auf das Dokumenten-Objekt des Programmes. */
  spanishVerbList liste;
  spanishVerbList::Iterator position;
  /** changed zeigt an, ob etwas ge�ndert wurde. */
  bool         changed;
  /** Are pointers to the GUI elements for an easier use */
  TQLineEdit* formEdit[6][MAX_TIEMPOS];
};

#endif