/*
* This file is part of DisOrder.
- * Copyright (C) 2006 Richard Kettlewell
+ * Copyright (C) 2006, 2007, 2008 Richard Kettlewell
*
- * This program is free software; you can redistribute it and/or modify
+ * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- * USA
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file disobedience/client.c
* @brief GLIB integration for @ref lib/eclient.c client
gint *timeout) {
const struct eclient_source *esource = (struct eclient_source *)source;
D(("gtkclient_prepare"));
- if(time(0) > esource->last_poll + 10)
+ if(xtime(0) > esource->last_poll + 10)
return TRUE; /* timed out */
*timeout = 3000/*milliseconds*/;
return FALSE; /* please poll */
mode |= DISORDER_POLL_READ;
if(revents & (G_IO_OUT|G_IO_HUP|G_IO_ERR))
mode |= DISORDER_POLL_WRITE;
- time(&esource->last_poll);
+ xtime(&esource->last_poll);
disorder_eclient_polled(esource->client, mode);
return TRUE; /* ??? not documented */
}
static void gtkclient_comms_error(void attribute((unused)) *u,
const char *msg) {
D(("gtkclient_comms_error %s", msg));
- menu_update(-1);
gtk_label_set_text(GTK_LABEL(report_label), msg);
}
/** @brief Report a protocol-level error
*
* The error will not be retried. We offer a callback to the submitter of the
- * original command and if none is supplied we pop up an error box.
+ * original command and if none is supplied we drop the error message in the
+ * status bar.
*/
static void gtkclient_protocol_error(void attribute((unused)) *u,
- void *v,
- int code,
+ void attribute((unused)) *v,
+ int attribute((unused)) code,
const char *msg) {
- struct callbackdata *cbd = v;
-
D(("gtkclient_protocol_error %s", msg));
- if(cbd && cbd->onerror)
- cbd->onerror(cbd, code, msg);
- else
- popup_protocol_error(code, msg);
+ gtk_label_set_text(GTK_LABEL(report_label), msg);
}
/** @brief Report callback from eclient */
if(!msg)
/* We're idle - clear the report line */
gtk_label_set_text(GTK_LABEL(report_label), "");
- menu_update(-1);
}
/** @brief Repoort an unhandled protocol-level error to the user */
void popup_protocol_error(int attribute((unused)) code,
const char *msg) {
gtk_label_set_text(GTK_LABEL(report_label), msg);
- popup_error(msg);
+ popup_msg(GTK_MESSAGE_ERROR, msg);
}
/** @brief Table of eclient callbacks */
gtkclient_report
};
-/** @brief Create a @ref disorder_ecliient using the GLib main loop */
+/** @brief Create a @ref disorder_eclient using the GLib main loop */
disorder_eclient *gtkclient(void) {
GSource *source;
struct eclient_source *esource;