Now inbound_cap_ls() can enable extensions when a bouncer uses a namespace for the...
[rofl0r-ixchat.git] / src / common / fe.h
blob16526581e2e390efdd9d93eebcc412499053ad5b
1 #include "userlist.h"
2 #include "dcc.h"
4 #ifndef XCHAT_FE_H
5 #define XCHAT_FE_H
7 /* for storage of /menu entries */
8 typedef struct
10 gint32 pos; /* position */
11 gint16 modifier; /* keybinding */
12 gint16 root_offset; /* bytes to offset ->path */
14 char is_main; /* is part of the Main menu? (not a popup) */
15 char state; /* state of toggle items */
16 char markup; /* use pango markup? */
17 char enable; /* enabled? sensitivity */
19 int key;
20 char *path;
21 char *label;
22 char *cmd;
23 char *ucmd; /* unselect command (toggles) */
24 char *group; /* for radio items or NULL */
25 char *icon; /* filename */
26 } menu_entry;
28 int fe_args (int argc, char *argv[]);
29 void fe_init (void);
30 void fe_main (void);
31 void fe_cleanup (void);
32 void fe_exit (void);
33 int fe_timeout_add (int interval, void *callback, void *userdata);
34 void fe_timeout_remove (int tag);
35 void fe_new_window (struct session *sess, int focus);
36 void fe_new_server (struct server *serv);
37 void fe_add_rawlog (struct server *serv, char *text, int len, int outbound);
38 #define FE_MSG_WAIT 1
39 #define FE_MSG_INFO 2
40 #define FE_MSG_WARN 4
41 #define FE_MSG_ERROR 8
42 #define FE_MSG_MARKUP 16
43 void fe_message (char *msg, int flags);
44 #define FIA_READ 1
45 #define FIA_WRITE 2
46 #define FIA_EX 4
47 #define FIA_FD 8
48 int fe_input_add (int sok, int flags, void *func, void *data);
49 void fe_input_remove (int tag);
50 void fe_idle_add (void *func, void *data);
51 void fe_set_topic (struct session *sess, char *topic, char *stripped_topic);
52 void fe_set_hilight (struct session *sess);
53 void fe_set_tab_color (struct session *sess, int col);
54 void fe_flash_window (struct session *sess);
55 void fe_update_mode_buttons (struct session *sess, char mode, char sign);
56 void fe_update_channel_key (struct session *sess);
57 void fe_update_channel_limit (struct session *sess);
58 int fe_is_chanwindow (struct server *serv);
59 void fe_add_chan_list (struct server *serv, char *chan, char *users,
60 char *topic);
61 void fe_chan_list_end (struct server *serv);
62 int fe_is_banwindow (struct session *sess);
63 void fe_add_ban_list (struct session *sess, char *mask, char *who, char *when, int is_exemption);
64 void fe_ban_list_end (struct session *sess, int is_exemption);
65 void fe_notify_update (char *name);
66 void fe_notify_ask (char *name, char *networks);
67 void fe_text_clear (struct session *sess, int lines);
68 void fe_close_window (struct session *sess);
69 void fe_progressbar_start (struct session *sess);
70 void fe_progressbar_end (struct server *serv);
71 void fe_print_text (struct session *sess, char *text, time_t stamp);
72 void fe_userlist_insert (struct session *sess, struct User *newuser, int row, int sel);
73 int fe_userlist_remove (struct session *sess, struct User *user);
74 void fe_userlist_rehash (struct session *sess, struct User *user);
75 void fe_userlist_update (struct session *sess, struct User *user);
76 void fe_userlist_move (struct session *sess, struct User *user, int new_row);
77 void fe_userlist_numbers (struct session *sess);
78 void fe_userlist_clear (struct session *sess);
79 void fe_userlist_set_selected (struct session *sess);
80 void fe_uselect (session *sess, char *word[], int do_clear, int scroll_to);
81 void fe_dcc_add (struct DCC *dcc);
82 void fe_dcc_update (struct DCC *dcc);
83 void fe_dcc_remove (struct DCC *dcc);
84 int fe_dcc_open_recv_win (int passive);
85 int fe_dcc_open_send_win (int passive);
86 int fe_dcc_open_chat_win (int passive);
87 void fe_clear_channel (struct session *sess);
88 void fe_session_callback (struct session *sess);
89 void fe_server_callback (struct server *serv);
90 void fe_url_add (const char *text);
91 void fe_pluginlist_update (void);
92 void fe_buttons_update (struct session *sess);
93 void fe_dlgbuttons_update (struct session *sess);
94 void fe_dcc_send_filereq (struct session *sess, char *nick, int maxcps, int passive);
95 void fe_set_channel (struct session *sess);
96 void fe_set_title (struct session *sess);
97 void fe_set_nonchannel (struct session *sess, int state);
98 void fe_set_nick (struct server *serv, char *newnick);
99 void fe_ignore_update (int level);
100 void fe_beep (void);
101 void fe_lastlog (session *sess, session *lastlog_sess, char *sstr, gboolean regexp);
102 void fe_set_lag (server *serv, int lag);
103 void fe_set_throttle (server *serv);
104 void fe_set_away (server *serv);
105 void fe_serverlist_open (session *sess);
106 void fe_get_str (char *prompt, char *def, void *callback, void *ud);
107 void fe_get_int (char *prompt, int def, void *callback, void *ud);
108 #define FRF_WRITE 1 /* save file */
109 #define FRF_MULTIPLE 2 /* multi-select */
110 #define FRF_ADDFOLDER 4 /* add ~/.xchat2 to favourites */
111 #define FRF_CHOOSEFOLDER 8 /* choosing a folder only */
112 #define FRF_FILTERISINITIAL 16 /* unused */
113 #define FRF_NOASKOVERWRITE 32 /* don't ask to overwrite existing files */
114 void fe_get_file (const char *title, char *initial,
115 void (*callback) (void *userdata, char *file), void *userdata,
116 int flags);
117 typedef enum {
118 FE_GUI_HIDE,
119 FE_GUI_SHOW,
120 FE_GUI_FOCUS,
121 FE_GUI_FLASH,
122 FE_GUI_COLOR,
123 FE_GUI_ICONIFY,
124 FE_GUI_MENU,
125 FE_GUI_ATTACH,
126 FE_GUI_APPLY,
127 } fe_gui_action;
128 void fe_ctrl_gui (session *sess, fe_gui_action action, int arg);
129 int fe_gui_info (session *sess, int info_type);
130 void *fe_gui_info_ptr (session *sess, int info_type);
131 void fe_confirm (const char *message, void (*yesproc)(void *), void (*noproc)(void *), void *ud);
132 char *fe_get_inputbox_contents (struct session *sess);
133 int fe_get_inputbox_cursor (struct session *sess);
134 void fe_set_inputbox_contents (struct session *sess, char *text);
135 void fe_set_inputbox_cursor (struct session *sess, int delta, int pos);
136 void fe_open_url (const char *url);
137 void fe_menu_del (menu_entry *);
138 char *fe_menu_add (menu_entry *);
139 void fe_menu_update (menu_entry *);
140 #define FE_SE_CONNECT 0
141 #define FE_SE_LOGGEDIN 1
142 #define FE_SE_DISCONNECT 2
143 #define FE_SE_RECONDELAY 3
144 #define FE_SE_CONNECTING 4
145 void fe_server_event (server *serv, int type, int arg);
146 /* pass NULL filename2 for default xchat icon */
147 void fe_tray_set_flash (const char *filename1, const char *filename2, int timeout);
148 /* pass NULL filename for default xchat icon */
149 void fe_tray_set_file (const char *filename);
150 typedef enum
152 FE_ICON_NORMAL = 0,
153 FE_ICON_MESSAGE = 2,
154 FE_ICON_HIGHLIGHT = 5,
155 FE_ICON_PRIVMSG = 8,
156 FE_ICON_FILEOFFER = 11
157 } feicon;
158 void fe_tray_set_icon (feicon icon);
159 void fe_tray_set_tooltip (const char *text);
160 void fe_tray_set_balloon (const char *title, const char *text);
162 #endif