1 /* 2 * Copyright (c)2004 The DragonFly Project. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 11 * Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in 13 * the documentation and/or other materials provided with the 14 * distribution. 15 * 16 * Neither the name of the DragonFly Project nor the names of its 17 * contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 24 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 25 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 29 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 31 * OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 /* 35 * uiutil.c 36 * $Id: uiutil.c,v 1.9 2005/03/04 21:26:20 cpressey Exp $ 37 */ 38 39 #include <stdarg.h> 40 #include <stdio.h> 41 #include <stdlib.h> 42 #include <string.h> 43 44 #include "libdfui/dfui.h" 45 46 #include "functions.h" 47 #include "uiutil.h" 48 49 void 50 inform(struct dfui_connection *c, const char *fmt, ...) 51 { 52 struct dfui_form *f; 53 struct dfui_response *r; 54 va_list args; 55 char *message; 56 57 va_start(args, fmt); 58 vasprintf(&message, fmt, args); 59 va_end(args); 60 61 f = dfui_form_create( 62 "inform", 63 "Information", 64 message, 65 "", 66 67 "p", "role", "informative", 68 69 "a", "ok", "OK", "", "", 70 NULL 71 ); 72 73 if (!dfui_be_present(c, f, &r)) 74 abort_backend(); 75 76 free(message); 77 dfui_form_free(f); 78 dfui_response_free(r); 79 } 80 81 int 82 confirm_dangerous_action(struct dfui_connection *c, const char *fmt, ...) 83 { 84 struct dfui_form *f; 85 struct dfui_response *r; 86 va_list args; 87 char *message; 88 int result = 0; 89 90 va_start(args, fmt); 91 vasprintf(&message, fmt, args); 92 va_end(args); 93 94 f = dfui_form_create( 95 "confirm_dangerous_action", 96 "Are you absolutely sure?", 97 message, 98 "", 99 100 "p", "role", "alert", 101 102 "a", "ok", "OK", "", "", 103 "a", "cancel", "Cancel", "", "", 104 NULL 105 ); 106 107 if (!dfui_be_present(c, f, &r)) 108 abort_backend(); 109 110 if (strcmp(dfui_response_get_action_id(r), "ok") == 0) 111 result = 1; 112 113 free(message); 114 dfui_form_free(f); 115 dfui_response_free(r); 116 117 return(result); 118 } 119