delay a few things on startup, such as setting the visibility mode, which ensures...
[personal-kdebase.git] / apps / kwrite / kwritemain.h
blob34e69077f4d220a8b3f64b1b44466878b1bed497
1 /* This file is part of the KDE project
2 Copyright (C) 2001 Christoph Cullmann <cullmann@kde.org>
3 Copyright (C) 2001 Joseph Wenninger <jowenn@kde.org>
4 Copyright (C) 2001 Anders Lund <anders.lund@lund.tdcadsl.dk>
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public
8 License version 2 as published by the Free Software Foundation.
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
21 #ifndef KWRITE_MAIN_H
22 #define KWRITE_MAIN_H
24 #include <ktexteditor/view.h>
25 #include <ktexteditor/document.h>
27 #include <kparts/mainwindow.h>
29 #include <kdialog.h>
31 #include <QtGui/QKeyEvent>
33 class QLabel;
35 namespace KTextEditor { class EditorChooser; }
37 class KToggleAction;
38 class KRecentFilesAction;
39 class KSqueezedTextLabel;
41 class KWrite : public KParts::MainWindow
43 Q_OBJECT
45 public:
46 KWrite(KTextEditor::Document * = 0L);
47 ~KWrite();
49 void loadURL(const KUrl &url);
51 KTextEditor::View *view() const { return m_view; }
53 static bool noWindows () { return winList.isEmpty(); }
55 private:
56 void setupActions();
57 void setupStatusBar();
59 bool queryClose();
61 void dragEnterEvent( QDragEnterEvent * );
62 void dropEvent( QDropEvent * );
64 public Q_SLOTS:
65 void slotNew();
66 void slotFlush ();
67 void slotOpen();
68 void slotOpen( const KUrl& url);
69 void newView();
70 void toggleStatusBar();
71 void editKeys();
72 void editToolbars();
73 void aboutEditor();
75 private Q_SLOTS:
76 void slotNewToolbarConfig();
78 public Q_SLOTS:
79 void slotDropEvent(QDropEvent *);
81 void slotEnableActions( bool enable );
83 /**
84 * adds a changed URL to the recent files
86 void urlChanged();
88 //config file functions
89 public:
90 void readConfig (KSharedConfigPtr);
91 void writeConfig (KSharedConfigPtr);
93 void readConfig ();
94 void writeConfig ();
96 //session management
97 public:
98 void restore(KConfig *,int);
99 static void restore();
101 private:
102 void readProperties(KSharedConfigPtr);
103 void saveProperties(KSharedConfigPtr);
104 void saveGlobalProperties(KConfig *);
106 private:
107 KTextEditor::View * m_view;
109 KRecentFilesAction * m_recentFiles;
110 KToggleAction * m_paShowPath;
111 KToggleAction * m_paShowStatusBar;
113 QString encoding;
115 static QList<KTextEditor::Document*> docList;
116 static QList<KWrite*> winList;
119 * Stuff for the status bar
121 public Q_SLOTS:
122 void updateStatus ();
124 void viewModeChanged ( KTextEditor::View *view );
126 void modeChanged ( KTextEditor::Document *document );
128 void cursorPositionChanged ( KTextEditor::View *view );
130 void selectionChanged (KTextEditor::View *view);
132 void modifiedChanged();
134 void documentNameChanged ();
136 void informationMessage (KTextEditor::View *view, const QString &message);
138 private:
139 QLabel* m_lineColLabel;
140 QLabel* m_modifiedLabel;
141 QLabel* m_insertModeLabel;
142 QLabel* m_selectModeLabel;
143 QLabel* m_modeLabel;
144 KSqueezedTextLabel* m_fileNameLabel;
145 QPixmap m_modPm; //, m_modDiscPm, m_modmodPm;
148 class KWriteEditorChooser: public KDialog
150 Q_OBJECT
152 public:
153 KWriteEditorChooser(QWidget *parent);
154 virtual ~KWriteEditorChooser();
156 private:
157 KTextEditor::EditorChooser *m_chooser;
159 protected Q_SLOTS:
160 void slotOk();
163 #endif
164 // kate: space-indent on; indent-width 2; replace-tabs on; mixed-indent off;