X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/3149c1e2b844685497d87db1a031197527101766..eb80584d53f63ccdcbbcf6068d5c74e53613f5a4:/disobedience/misc.c diff --git a/disobedience/misc.c b/disobedience/misc.c index b1558d3..aaff4ae 100644 --- a/disobedience/misc.c +++ b/disobedience/misc.c @@ -1,6 +1,6 @@ /* * This file is part of DisOrder - * Copyright (C) 2006 Richard Kettlewell + * Copyright (C) 2006, 2007 Richard Kettlewell * * 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 @@ -112,9 +112,13 @@ GdkPixbuf *find_image(const char *name) { /** @brief Pop up a message */ void popup_msg(GtkMessageType mt, const char *msg) { + popup_submsg(toplevel, mt, msg); +} + +void popup_submsg(GtkWidget *parent, GtkMessageType mt, const char *msg) { GtkWidget *w; - w = gtk_message_dialog_new(GTK_WINDOW(toplevel), + w = gtk_message_dialog_new(GTK_WINDOW(parent), GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT, mt, GTK_BUTTONS_CLOSE, @@ -161,23 +165,32 @@ GtkWidget *iconbutton(const char *path, const char *tip) { return button; } -/** @brief Create buttons and pack them into an hbox */ -GtkWidget *create_buttons(const struct button *buttons, - size_t nbuttons) { +/** @brief Create buttons and pack them into a box, which is returned */ +GtkWidget *create_buttons_box(struct button *buttons, + size_t nbuttons, + GtkWidget *box) { size_t n; - GtkWidget *const hbox = gtk_hbox_new(FALSE, 1); for(n = 0; n < nbuttons; ++n) { - GtkWidget *const button = gtk_button_new_from_stock(buttons[n].stock); - gtk_widget_set_style(button, tool_style); - g_signal_connect(G_OBJECT(button), "clicked", + buttons[n].widget = gtk_button_new_from_stock(buttons[n].stock); + gtk_widget_set_style(buttons[n].widget, tool_style); + g_signal_connect(G_OBJECT(buttons[n].widget), "clicked", G_CALLBACK(buttons[n].clicked), 0); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); - gtk_tooltips_set_tip(tips, button, buttons[n].tip, ""); + gtk_box_pack_start(GTK_BOX(box), buttons[n].widget, FALSE, FALSE, 1); + gtk_tooltips_set_tip(tips, buttons[n].widget, buttons[n].tip, ""); } - return hbox; + return box; +} + +/** @brief Create buttons and pack them into an hbox */ +GtkWidget *create_buttons(struct button *buttons, + size_t nbuttons) { + return create_buttons_box(buttons, nbuttons, + gtk_hbox_new(FALSE, 1)); } + + /* Local Variables: c-basic-offset:2