00001 /* $Id:chat_window.h jjs $ */ 00002 /* 00003 Copyright (C) 2007 by Jurjen Stellingwerff <jurjen@stwerff.xs4all.nl> 00004 Part of the Moros Project http://moros.sourceforge.net/ 00005 00006 This program is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License. 00008 This program is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY. 00010 00011 See the COPYING file for more details. 00012 */ 00013 00014 #ifndef CHAT_WINDOW_H 00015 #define CHAT_WINDOW_H 00016 00017 #include <gtkmm.h> 00018 #include <libglademm.h> 00019 #include "chatview.h" 00020 #include "chatlist.h" 00021 #include "memberlist.h" 00022 #include "../general/channel.h" 00023 #include "../general/communicate.h" 00024 00026 00027 class chat_window : public Gtk::Window { 00028 private: 00029 std::string cuser; 00030 public: 00031 chat_window(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml> refGlade); 00032 virtual ~chat_window(); 00033 Glib::RefPtr<Gtk::TextBuffer> buffer; 00034 Gtk::Notebook* chat_book; 00035 memberlist *members; 00036 00037 protected: 00038 Glib::RefPtr<Gnome::Glade::Xml> m_refGlade; 00039 Gtk::Entry* chat_entry; 00040 virtual void finished_entry(); 00041 Glib::SignalTimeout* timeout; 00042 channel *chan; 00043 chatlist *chanlist; 00044 Gtk::CheckMenuItem* chat_busy; 00045 virtual void busy_toggle(); 00046 Gtk::MenuItem* chat_autoreply; 00047 virtual void autoreply_select(); 00048 virtual void do_autoreply(std::string text); 00049 Gtk::MenuItem* chat_memberlist; 00050 virtual void memberlist_select(); 00051 Gtk::MenuItem* chat_channellist; 00052 virtual void channellist_select(); 00053 Gtk::MenuItem* chat_joinchannel; 00054 virtual void joinchannel_select(); 00055 virtual void do_joinchannel(std::string text); 00056 Gtk::MenuItem* chat_quit; 00057 virtual void quit_select(); 00058 Gtk::MenuItem* chat_descr; 00059 virtual void descr_select(); 00060 virtual void do_title(std::string text); 00061 Gtk::CheckMenuItem* chat_private; 00062 virtual void do_open(); 00063 virtual void do_invitation(); 00064 virtual void do_private(); 00065 virtual void private_toggle(); 00066 Gtk::CheckMenuItem* chat_invitation; 00067 virtual void invitation_toggle(); 00068 Gtk::MenuItem* chat_passwd; 00069 virtual void passwd_select(); 00070 virtual void do_passwd(std::string text); 00071 Gtk::CheckMenuItem* chat_silence; 00072 virtual void silence_toggle(); 00073 Gtk::MenuItem* chat_invite; 00074 virtual void invite_select(); 00075 Gtk::Menu* context_menu; 00076 virtual void open_context_menu(GdkEventButton* event); 00077 Gtk::MenuItem* chat_memberlabel; 00078 Gtk::CheckMenuItem* chat_ignore; 00079 virtual void ignore_toggle(); 00080 Gtk::MenuItem* chat_whisper; 00081 virtual void whisper_select(); 00082 virtual void do_whisper(std::string text); 00083 Gtk::MenuItem* chat_kick; 00084 virtual void kick_select(); 00085 Gtk::CheckMenuItem* chat_mute; 00086 virtual void mute_toggle(); 00087 Gtk::CheckMenuItem* chat_moderator; 00088 virtual void moderator_toggle(); 00089 Gtk::CheckMenuItem* chat_leader; 00090 virtual void leader_toggle(); 00091 virtual void do_leader(); 00092 virtual void handler(channel *ch); 00093 virtual void define_text(std::string tab_name); 00094 virtual void switch_page(GtkNotebookPage* widget, guint page); 00095 }; 00096 00097 #endif //CHAT_WINDOW_H