unauthorizedAccept option
[dyskinesia.git] / src / chatjsapi.h
blobcd62c5546c3377275403ffe48b0e7294b19591ce
1 /* coded by Ketmar // Vampire Avalon (psyc://ketmar.no-ip.org/~Ketmar)
2 * Understanding is not required. Only obedience.
4 * This program is free software. It comes without any warranty, to
5 * the extent permitted by applicable law. You can redistribute it
6 * and/or modify it under the terms of the Do What The Fuck You Want
7 * To Public License, Version 2, as published by Sam Hocevar. See
8 * http://sam.zoy.org/wtfpl/COPYING for more details.
9 */
10 #ifndef CHATJSAPI_H
11 #define CHATJSAPI_H
13 #include <QIcon>
14 #include <QHash>
15 #include <QString>
16 #include <QVariant>
19 class ChatForm;
20 class QWebFrame;
23 ///////////////////////////////////////////////////////////////////////////////
24 class ChatJSAPI : public QObject {
25 Q_OBJECT
26 //Q_PROPERTY(bool isMainFrame READ isMainFrame);
28 public:
29 ChatJSAPI (QWebFrame *frame, ChatForm *cform);
30 ~ChatJSAPI ();
32 public slots:
33 void print (const QString &str);
34 void printLn (const QString &str);
35 void refresh ();
36 void scrollToBottom ();
38 void startChat (const QString &uni);
40 bool hasOption (const QString &name);
41 bool hasOption (const QString &name, const QString &uni);
42 bool removeOption (const QString &name);
43 bool removeOption (const QString &name, const QString &uni);
44 QVariant getOption (const QString &name);
45 QVariant getOption (const QString &name, const QString &uni);
46 bool setOption (const QString &name, const QVariant &v);
47 bool setOption (const QString &name, const QString &uni, const QVariant &v);
49 void requestAuth (const QString &uni);
50 void cancelAuth (const QString &uni);
51 void sendAuth (const QString &uni);
53 void deleteContact (const QString &uni);
55 void enterPlace (const QString &uni);
56 void leavePlace (const QString &uni);
58 QVariant test (const QVariant &v);
60 QVariant contactInfo (const QString &uni);
61 void setContactVerbatim (const QString &uni, const QString &v);
62 void setContactHidden (const QString &uni, bool v);
64 void setStatus (int newStatus);
65 int status ();
67 void markAsRead (const QString &aUNI);
70 // 'text' should be properly escaped!
71 void showPopupMessage (const QString &uni, const QString &text);
72 void showPopupSystem (const QString &text);
73 void showPopupError (const QString &text);
74 void showPopupStatus (const QString &uni, int status);
76 void sendMessage (const QString &uni, const QString &text);
77 void sendMessage (const QString &uni, const QString &text, const QString &action);
79 void addMessageToHistory (const QString &dest, const QString &src, const QString &text,
80 const QString &action, uint unixtime, bool isUnread);
81 bool addMessageToChat (const QString &from, const QString &msg, const QString &action, uint unixtime);
84 void selectedText (const QString &s);
86 QString editorText ();
87 void setEditorText (const QString &s);
88 void insertEditorText (const QString &s);
90 int editorCurPos ();
91 void setEditorCurPos (int pos);
93 void setClipboardText (const QString &s);
95 void setWasBottom (bool bflag);
97 // OTR
98 void otrStart (const QString &aUNI);
99 void otrEnd (const QString &aUNI);
100 void otrSetTrust (const QString &aUNI, bool tflag);
101 void otrForget (const QString &aUNI);
102 void otrInitiateSMP (const QString &aUNI, const QString &secret, const QString &question);
104 void doPSYC (const QString &cmdNargs);
105 void doPSYC (const QString &cmdNargs, const QString &destUni);
107 // this will return an UNI or ""
108 QString chattingWith ();
109 // this can be done in JS code, but who really cares?
110 bool isInPlace ();
112 void invite (const QString &uni, const QString &place);
114 bool addMessage (const QString &placeUni, const QString &userUni, uint time, const QString &text,
115 const QString &action);
117 bool addMessageEx (const QString &placeUni, const QString &userUni, uint time, const QString &text,
118 const QString &action, const QString &popupMsg);
120 private:
121 QWebFrame *mFrame;
122 ChatForm *mForm;
126 #endif