00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _VOSCHATGUI_PRIVMSG_H_
00021 #define _VOSCHATGUI_PRIVMSG_H_
00022
00023 #include <vos/corelibs/vos/vos.hh>
00024 #include <vos/metaobjects/property/property.hh>
00025 #include <vos/metaobjects/misc/talkative.hh>
00026 #include <vos/metaobjects/misc/avatar.hh>
00027 #include <vos/gui/gui/gui.hh>
00028
00029 #if defined(_WIN32) && defined(_MSC_VER)
00030 # ifdef CHATGUI_EXPORTS
00031 # define CHATGUI_API __declspec(dllexport)
00032 # else
00033 # define CHATGUI_API __declspec(dllimport)
00034 # endif
00035 #else
00036 # define CHATGUI_API
00037 #endif
00038
00039 namespace VOSChatGUI {
00040
00041
00042
00043
00044
00045
00046
00047 class CHATGUI_API PrivMsg : public virtual ObjectExciseListener,
00048 public virtual TalkListener,
00049 public virtual VOSGUI::LocalContainer,
00050 public virtual ChildChangeListener
00051 {
00052 private:
00053 int newMessagePos;
00054
00055 protected:
00056 vRef<VOSGUI::Container> preferences;
00057 vRef<Talkative> target;
00058 vRef<LocalTalkative> sender;
00059 vRef<VOSGUI::SelectList> messages;
00060 vRef<Property> replyInfo;
00061 vRef<Property> messageText;
00062 vRef<Property> priority;
00063
00064 VOSGUI_DEFINE_BUTTON(SendButton, PrivMsg, "Send")
00065
00066 public:
00067 friend void SendButton::push(const string& userid);
00068
00069
00070 public:
00071
00072
00073 static void registerExtenders();
00074
00075
00076 void setup(LocalTalkative* newSender, Talkative* newTarget = 0);
00077
00078
00079 void setTarget(Talkative* newTarget);
00080
00081
00082 void setMessagesAtTop(bool v = true);
00083
00084
00085 void setMessagesAtBottom(bool v = true);
00086
00087
00088 void notifyTalkMessage(TalkMessage& m);
00089
00090 PrivMsg(MetaObject* s);
00091 virtual ~PrivMsg();
00092 static MetaObject* new_PrivMsg(MetaObject* s, const string& type);
00093
00094 void notifyObjectExcise(RefCounted* obj);
00095
00096 void notifyChildInserted(VobjectEvent& e);
00097 void notifyChildRemoved(VobjectEvent& e);
00098 void notifyChildReplaced(VobjectEvent& e);
00099
00100 };
00101
00102
00103 }
00104
00105 #endif // _VOSCHATGUI_PRIVMSG_H_
00106