Mercurial > pidgin
comparison src/ft.c @ 11281:920a37a4c1be
[gaim-migrate @ 13478]
Patch from Sadrul Habib Chowdhury, with a bit of hacking from me, to add file transfer signals
committer: Tailor Script <tailor@pidgin.im>
author | Gary Kramlich <grim@reaperworld.com> |
---|---|
date | Tue, 16 Aug 2005 20:44:27 +0000 |
parents | 64e2c65ef650 |
children | 17142948653e |
comparison
equal
deleted
inserted
replaced
11280:65658ff2deb8 | 11281:920a37a4c1be |
---|---|
108 static void | 108 static void |
109 gaim_xfer_set_status(GaimXfer *xfer, GaimXferStatusType status) | 109 gaim_xfer_set_status(GaimXfer *xfer, GaimXferStatusType status) |
110 { | 110 { |
111 g_return_if_fail(xfer != NULL); | 111 g_return_if_fail(xfer != NULL); |
112 | 112 |
113 if(xfer->type == GAIM_XFER_SEND) { | |
114 switch(status) { | |
115 case GAIM_XFER_STATUS_ACCEPTED: | |
116 gaim_signal_emit(gaim_xfers_get_handle(), "file-send-accept", xfer); | |
117 break; | |
118 case GAIM_XFER_STATUS_STARTED: | |
119 gaim_signal_emit(gaim_xfers_get_handle(), "file-send-start", xfer); | |
120 break; | |
121 case GAIM_XFER_STATUS_DONE: | |
122 gaim_signal_emit(gaim_xfers_get_handle(), "file-send-complete", xfer); | |
123 break; | |
124 case GAIM_XFER_STATUS_CANCEL_LOCAL: | |
125 case GAIM_XFER_STATUS_CANCEL_REMOTE: | |
126 gaim_signal_emit(gaim_xfers_get_handle(), "file-send-cancel", xfer); | |
127 break; | |
128 default: | |
129 break; | |
130 } | |
131 } else if(xfer->type == GAIM_XFER_RECEIVE) { | |
132 switch(status) { | |
133 case GAIM_XFER_STATUS_ACCEPTED: | |
134 gaim_signal_emit(gaim_xfers_get_handle(), "file-recv-accept", xfer); | |
135 break; | |
136 case GAIM_XFER_STATUS_STARTED: | |
137 gaim_signal_emit(gaim_xfers_get_handle(), "file-recv-start", xfer); | |
138 break; | |
139 case GAIM_XFER_STATUS_DONE: | |
140 gaim_signal_emit(gaim_xfers_get_handle(), "file-recv-complete", xfer); | |
141 break; | |
142 case GAIM_XFER_STATUS_CANCEL_LOCAL: | |
143 case GAIM_XFER_STATUS_CANCEL_REMOTE: | |
144 gaim_signal_emit(gaim_xfers_get_handle(), "file-recv-cancel", xfer); | |
145 break; | |
146 default: | |
147 break; | |
148 } | |
149 } | |
150 | |
113 xfer->status = status; | 151 xfer->status = status; |
114 } | 152 } |
115 | 153 |
116 void gaim_xfer_conversation_write(GaimXfer *xfer, char *message, gboolean is_error) | 154 void gaim_xfer_conversation_write(GaimXfer *xfer, char *message, gboolean is_error) |
117 { | 155 { |
1101 | 1139 |
1102 | 1140 |
1103 /************************************************************************** | 1141 /************************************************************************** |
1104 * File Transfer Subsystem API | 1142 * File Transfer Subsystem API |
1105 **************************************************************************/ | 1143 **************************************************************************/ |
1106 | 1144 void * |
1107 void | 1145 gaim_xfers_get_handle(void) { |
1108 gaim_xfers_set_ui_ops(GaimXferUiOps *ops) | 1146 static int handle = 0; |
1109 { | 1147 |
1148 return &handle; | |
1149 } | |
1150 | |
1151 void | |
1152 gaim_xfers_init(void) { | |
1153 void *handle = gaim_xfers_get_handle(); | |
1154 | |
1155 /* register signals */ | |
1156 gaim_signal_register(handle, "file-recv-accept", | |
1157 gaim_marshal_VOID__POINTER, | |
1158 NULL, 1, | |
1159 gaim_value_new(GAIM_TYPE_POINTER)); | |
1160 gaim_signal_register(handle, "file-send-accept", | |
1161 gaim_marshal_VOID__POINTER, | |
1162 NULL, 1, | |
1163 gaim_value_new(GAIM_TYPE_POINTER)); | |
1164 gaim_signal_register(handle, "file-recv-start", | |
1165 gaim_marshal_VOID__POINTER, | |
1166 NULL, 1, | |
1167 gaim_value_new(GAIM_TYPE_POINTER)); | |
1168 gaim_signal_register(handle, "file-send-start", | |
1169 gaim_marshal_VOID__POINTER, | |
1170 NULL, 1, | |
1171 gaim_value_new(GAIM_TYPE_POINTER)); | |
1172 gaim_signal_register(handle, "file-send-cancel", | |
1173 gaim_marshal_VOID__POINTER, | |
1174 NULL, 1, | |
1175 gaim_value_new(GAIM_TYPE_POINTER)); | |
1176 gaim_signal_register(handle, "file-recv-cancel", | |
1177 gaim_marshal_VOID__POINTER, | |
1178 NULL, 1, | |
1179 gaim_value_new(GAIM_TYPE_POINTER)); | |
1180 gaim_signal_register(handle, "file-send-complete", | |
1181 gaim_marshal_VOID__POINTER, | |
1182 NULL, 1, | |
1183 gaim_value_new(GAIM_TYPE_POINTER)); | |
1184 gaim_signal_register(handle, "file-recv-complete", | |
1185 gaim_marshal_VOID__POINTER, | |
1186 NULL, 1, | |
1187 gaim_value_new(GAIM_TYPE_POINTER)); | |
1188 } | |
1189 | |
1190 void | |
1191 gaim_xfers_uninit(void) { | |
1192 gaim_signals_disconnect_by_handle(gaim_xfers_get_handle()); | |
1193 } | |
1194 | |
1195 void | |
1196 gaim_xfers_set_ui_ops(GaimXferUiOps *ops) { | |
1110 xfer_ui_ops = ops; | 1197 xfer_ui_ops = ops; |
1111 } | 1198 } |
1112 | 1199 |
1113 GaimXferUiOps * | 1200 GaimXferUiOps * |
1114 gaim_xfers_get_ui_ops(void) | 1201 gaim_xfers_get_ui_ops(void) { |
1115 { | |
1116 return xfer_ui_ops; | 1202 return xfer_ui_ops; |
1117 } | 1203 } |