summaryrefslogtreecommitdiffstats
path: root/knotes/KNotesAppIface.h
blob: dea2881ea9b9b12c1b86315a16390f9b64829db7 (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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
/*******************************************************************
 KNotesIface.h  --  This file defines the DCOP interface for KNotes.

 Copyright (C) 2004 by Michael Brade <brade@kde.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.

 In addition, as a special exception, the copyright holders give
 permission to link the code of this program with any edition of
 the TQt library by Trolltech AS, Norway (or with modified versions
 of TQt that use the same license as TQt), and distribute linked
 combinations including the two.  You must obey the GNU General
 Public License in all respects for all of the code used other than
 TQt.  If you modify this file, you may extend this exception to
 your version of the file, but you are not obligated to do so.  If
 you do not wish to do so, delete this exception statement from
 your version.
*******************************************************************/

#ifndef __KNotesAppIface_h__
#define __KNotesAppIface_h__

#include <tqstring.h>
#include <tqmap.h>
#include <tqdatetime.h>

#include <dcopobject.h>


class KNotesAppIface : virtual public DCOPObject
{
    K_DCOP
k_dcop:
    /**
     * Create a new note.
     * @param name the name (title) of the new note, if it is empty,
     *        KNotes will choose an appropriate name
     * @param text the body of the new note
     * @return the new notes' id
     */
    virtual TQString newNote( const TQString& name = TQString(),
                             const TQString& text = TQString() ) = 0;

    /**
     * Create a new note and inserts the current text in the clipboard
     * as text.
     *
     * @param name the name (title) of the new note, if it is empty,
     *        KNotes will choose an appropriate name
     * @return the new notes' id
     */
    virtual TQString newNoteFromClipboard( const TQString& name = TQString() ) = 0;

    /**
     * Deletes a note forever.
     * @param noteId the id of the note to kill
     */
    virtual ASYNC killNote( const TQString& noteId ) = 0;

    /**
     * Deletes a note forever.
     * @param noteId the id of the note to kill
     * @param force do not request confirmation
     */
    virtual ASYNC killNote( const TQString& noteId, bool force ) = 0;

    /**
     * Get all the notes including their ids.
     * @return a TQMap that maps the id of a note to its name
     */
    virtual TQMap<TQString,TQString> notes() const = 0;

    /**
     * Changes the title/name of a note.
     * @param noteId the id of the note to be modified
     * @param newName the new title
     */
    virtual ASYNC setName( const TQString& noteId, const TQString& newName ) = 0;

    /**
     * Sets the text of a note. This will delete the old text!
     * @param noteId the id of the note
     * @param newText the new text for the note
     */
    virtual ASYNC setText( const TQString& noteId, const TQString& newText ) = 0;

    /**
     * Returns the foreground/text color of a note.
     * @param noteId the id of the note in question
     * @return the foreground/text color as a TQString
     */
    virtual TQString fgColor( const TQString& noteId ) const = 0;

    /**
     * Returns the background color of a note.
     * @param noteId the id of the note in question
     * @return the background color as a TQString
     */
    virtual TQString bgColor( const TQString& noteId ) const = 0;

    /**
     * Sets the color (foreground and background color) of a note.
     * @param noteId the id of the note
     * @param fgColor the new text color for the note
     * @param bgColor the new background color for the note
     */
    virtual ASYNC setColor( const TQString& noteId, const TQString& fgColor,
                                                   const TQString& bgColor ) = 0;

    /**
     * Returns the title/name of a note.
     * @param noteId the id of the note in question
     * @return the name as a TQString
     */
    virtual TQString name( const TQString& noteId ) const = 0;

    /**
     * Returns the text of a note.
     * @param noteId the id of the note in question
     * @return the body as a TQString
     */
    virtual TQString text( const TQString& noteId ) const = 0;


    /******** HERE STARTS THE KNotesAppIface DCOP INTERFACE EXTENSION ********/

    /**
     * Show a note as if it had been selected from the "notes" menu.
     * @param noteId the id of the note to show
     */
    virtual ASYNC showNote( const TQString& noteId ) const = 0;

    /**
     * Hide a note.
     * @param noteId the id of the note to hide
     */
    virtual ASYNC hideNote( const TQString& noteId ) const = 0;

    /**
     * Show all notes on their respective desktops.
     */
    virtual ASYNC showAllNotes() const = 0;

    /**
     * Hide all notes.
     */
    virtual ASYNC hideAllNotes() const = 0;

    /**
     * Returns the width of a note.
     * @param noteId the id of the note in question
     * @return the width as a uint
     */
    virtual int width( const TQString& noteId ) const = 0;

    /**
     * Returns the height of a note.
     * @param noteId the id of the note in question
     * @return the height as a uint
     */
    virtual int height( const TQString& noteId ) const = 0;

    /**
     * Repositions a note.
     * @param noteId the id of the note to be moved
     * @param x the new x-coordinate of the note
     * @param y the new y-coordinate of the note
     */
    virtual ASYNC move( const TQString& noteId, int x, int y ) const = 0;

    /**
     * Changes the size of a note.
     * @param noteId the id of the note to be resized
     * @param width the new width of the note
     * @param height the new height of the note
     */
    virtual ASYNC resize( const TQString& noteId, int width, int height ) const = 0;

    /**
     * This tells KNotes that a specific app has synchronized with all the notes.
     * @param app the app that has synced with KNotes
     */
    virtual ASYNC sync( const TQString& app ) = 0;

    /**
     * Test if a note was created new after the last sync.
     * @param app the app that wants to get the status since the last sync
     * @param noteId the id of the note
     * @return true if the note is new, false if not or if the note does
     *         not exist
     */
    virtual bool isNew( const TQString& app, const TQString& noteId ) const = 0;

    /**
     * Test if a note was modified since the last sync.
     * @param app the app that wants to get the status since the last sync
     * @param noteId the id of the note
     * @return true if modified (note that this will return true if the note is
     *         new as well!) and false if the note is not modified or doesn't exist
     */
    virtual bool isModified( const TQString& app, const TQString& noteId ) const = 0;

    /**
     * Get the last modified time of a note
     * @return the last modified time as a TQDateTime
     */
    virtual TQDateTime getLastModified( const TQString& noteId ) const = 0;
};

#endif