First GUI patch
Thomas Arendsen Hein <[email protected]>
| Newsgroups | gmane.comp.security.nessus.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi! Attached is the first GUI redesign patch for nessus-core. GTK2.x is required, because I removed all the GTK_VERSION checks, though I don't think I used something special to GTK2 yet. Thomas Arendsen Hein -- Email: [email protected] http://intevation.de/~thomas/ _______________________________________________ Nessus-devel mailing list [email protected] http://mail.nessus.org/mailman/listinfo/nessus-devel
nessusd-firstgui.patch
(text/plain, 9.8 KB)
Index: nessus/prefs_dialog/prefs_dialog.c
===================================================================
RCS file: /usr/local/cvs/nessus-core/nessus/prefs_dialog/prefs_dialog.c,v
retrieving revision 1.48
diff -u -r1.48 prefs_dialog.c
--- nessus/prefs_dialog/prefs_dialog.c 15 Aug 2004 14:18:06 -0000 1.48
+++ nessus/prefs_dialog/prefs_dialog.c 19 Aug 2004 17:54:26 -0000
@@ -71,11 +71,15 @@
struct arglist * preferences;
{
GtkWidget * window;
+ GtkWidget * mainmenu;
+ GtkWidget * menuitem;
+ GtkWidget * submenu;
GtkWidget * notebook;
GtkWidget * label;
GtkWidget * frame;
GtkWidget * box, * hbox;
- GtkWidget * ok, * loadrep, * cancel;
+ GtkWidget * statusbar;
+ GtkAccelGroup * accel_group;
struct arglist * prefs_scan;
struct arglist * prefs_target;
struct arglist * prefs_user;
@@ -85,7 +89,6 @@
#ifdef ENABLE_SAVE_KB
struct arglist * prefs_kb;
#endif
- struct arglist * prefs_about;
struct arglist * ctrls = emalloc(sizeof(struct arglist));
@@ -99,8 +102,7 @@
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
(GtkSignalFunc)close_display,NULL);
- gtk_container_border_width(GTK_CONTAINER(window), 10);
- gtk_window_set_title(GTK_WINDOW(window), "Nessus Setup");
+ gtk_window_set_title(GTK_WINDOW(window), "Nessus Client");
arg_add_value(ctrls, "WINDOW", ARG_PTR, -1, window);
arg_add_value(ctrls, "PREFERENCES", ARG_ARGLIST, -1, preferences);
/*
@@ -109,12 +111,99 @@
box = gtk_vbox_new(FALSE, 10);
gtk_container_add(GTK_CONTAINER(window), box);
gtk_widget_show(box);
+
+/*
+ * Main menu
+ */
+ accel_group = gtk_accel_group_new();
+ gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);
+
+ mainmenu = gtk_menu_bar_new();
+ gtk_widget_show(mainmenu);
+ gtk_box_pack_start(GTK_BOX(box), mainmenu, FALSE, FALSE, 0);
+
+ /* File menu */
+
+ menuitem = gtk_menu_item_new_with_mnemonic("_File");
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(mainmenu), menuitem);
+
+ submenu = gtk_menu_new();
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
+
+ menuitem = gtk_menu_item_new_with_mnemonic("_Connect");
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(submenu), menuitem);
+ gtk_widget_set_sensitive(menuitem, FALSE);
+
+ menuitem = gtk_menu_item_new_with_mnemonic("_Disconnect");
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(submenu), menuitem);
+ gtk_widget_set_sensitive(menuitem, FALSE);
+
+ menuitem = gtk_menu_item_new();
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(submenu), menuitem);
+ gtk_widget_set_sensitive(menuitem, FALSE);
+
+ menuitem = gtk_image_menu_item_new_from_stock("gtk-quit", accel_group);
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(submenu), menuitem);
+ gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
+ GTK_SIGNAL_FUNC(close_display), NULL);
+
+ /* Scope menu */
+
+ menuitem = gtk_menu_item_new_with_mnemonic("_Scope");
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(mainmenu), menuitem);
+
+ submenu = gtk_menu_new();
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
+
+ menuitem = gtk_image_menu_item_new_from_stock("gtk-execute", accel_group);
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(submenu), menuitem);
+ gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
+ GTK_SIGNAL_FUNC(prefs_dialog_ok), ctrls);
+
+ /* Report menu */
+
+ menuitem = gtk_menu_item_new_with_mnemonic("_Report");
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(mainmenu), menuitem);
+
+ submenu = gtk_menu_new();
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
+
+ menuitem = gtk_menu_item_new_with_mnemonic("_Import");
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(submenu), menuitem);
+ gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
+ GTK_SIGNAL_FUNC(open_report_selectfile), NULL);
+
+ /* Help menu */
+
+ menuitem = gtk_menu_item_new_with_mnemonic("_Help");
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(mainmenu), menuitem);
+
+ submenu = gtk_menu_new();
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
+
+ menuitem = gtk_menu_item_new_with_mnemonic("_About");
+ gtk_widget_show(menuitem);
+ gtk_container_add(GTK_CONTAINER(submenu), menuitem);
+ gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
+ GTK_SIGNAL_FUNC(prefs_dialog_about), ctrls);
+
+
/*
* We set up the notebook
*/
notebook = gtk_notebook_new();
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP);
- gtk_box_pack_start(GTK_BOX(box), notebook, TRUE, TRUE, 5);
+ gtk_box_pack_start(GTK_BOX(box), notebook, TRUE, TRUE, 0);
gtk_widget_show(notebook);
arg_add_value(ctrls, "NOTEBOOK", ARG_PTR, -1, notebook);
@@ -130,8 +219,7 @@
#ifdef ENABLE_SAVE_KB
prefs_kb = prefs_dialog_kb();
#endif
- prefs_about = prefs_dialog_about(window);
-
+
arg_add_value(ctrls, "SCAN_OPTIONS", ARG_ARGLIST, -1, prefs_scan);
arg_add_value(ctrls, "TARGET", ARG_ARGLIST, -1, prefs_target);
arg_add_value(prefs_target, "MAIN", ARG_ARGLIST, -1, ctrls);
@@ -142,7 +230,6 @@
#ifdef ENABLE_SAVE_KB
arg_add_value(ctrls, "SAVE_KB", ARG_ARGLIST, -1, prefs_kb);
#endif
- arg_add_value(ctrls, "ABOUT", ARG_ARGLIST, -1, prefs_about);
/*
* and we append them to it
*/
@@ -198,39 +285,33 @@
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, label);
#endif
- label = gtk_label_new("Credits");
- frame = arg_get_value(prefs_about, "FRAME");
- gtk_widget_show(frame);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, label);
-
-
- hbox = gtk_hbox_new(TRUE, 10);
- gtk_box_pack_end(GTK_BOX(box), hbox, FALSE, FALSE, 0);
+
+/*
+ * Status bar
+ */
+
+ hbox = gtk_hbox_new(FALSE, 8);
gtk_widget_show(hbox);
-
-
- ok = gtk_button_new_with_label("Start the scan");
- gtk_signal_connect(GTK_OBJECT(ok), "clicked",
- GTK_SIGNAL_FUNC(prefs_dialog_ok), ctrls);
- gtk_box_pack_start(GTK_BOX(hbox), ok,TRUE, TRUE, 0);
- gtk_widget_show(ok);
-
- loadrep = gtk_button_new_with_label("Load report");
- gtk_signal_connect(GTK_OBJECT(loadrep), "clicked",
- GTK_SIGNAL_FUNC(open_report_selectfile), NULL );
- gtk_box_pack_start(GTK_BOX(hbox), loadrep,TRUE, TRUE, 0);
- gtk_widget_show(loadrep);
+ gtk_box_pack_end(GTK_BOX(box), hbox, FALSE, TRUE, 0);
+
+ statusbar = gtk_statusbar_new ();
+ gtk_widget_show(statusbar);
+ gtk_box_pack_start(GTK_BOX(hbox), statusbar, TRUE, TRUE, 0);
+ gtk_statusbar_set_has_resize_grip(GTK_STATUSBAR(statusbar), FALSE);
+
+ statusbar = gtk_statusbar_new ();
+ gtk_widget_show(statusbar);
+ gtk_box_pack_start(GTK_BOX(hbox), statusbar, FALSE, TRUE, 0);
+ gtk_widget_set_size_request(statusbar, 200, -1);
+
+/*
+ * Final
+ */
- cancel = gtk_button_new_with_label("Quit");
- gtk_signal_connect(GTK_OBJECT(cancel), "clicked",
- GTK_SIGNAL_FUNC(close_display), NULL);
- gtk_box_pack_end(GTK_BOX(hbox), cancel,TRUE, TRUE, 0);
- gtk_widget_show(cancel);
-
prefs_dialog_set_defaults(ctrls, preferences);
prefs_dialog_set_tooltips(ctrls);
gtk_widget_show(window);
-
+
}
@@ -992,7 +1073,6 @@
/*
* Set up the GUI for the attack, and start it !
*/
- close_window(w, arg_get_value(ctrls, "WINDOW"));
monitor_dialog_setup(hostname, 0);
return(0);
Index: nessus/prefs_dialog/prefs_about.h
===================================================================
RCS file: /usr/local/cvs/nessus-core/nessus/prefs_dialog/prefs_about.h,v
retrieving revision 1.1
diff -u -r1.1 prefs_about.h
--- nessus/prefs_dialog/prefs_about.h 6 Nov 1999 13:35:46 -0000 1.1
+++ nessus/prefs_dialog/prefs_about.h 19 Aug 2004 17:54:26 -0000
@@ -1,6 +1,6 @@
#ifndef PREFS_ABOUT_H__
#define PREFS_ABOUT_H__
-struct arglist * prefs_dialog_about(GtkWidget *);
+void prefs_dialog_about(GtkMenuItem *, gpointer);
#endif
Index: nessus/prefs_dialog/prefs_about.c
===================================================================
RCS file: /usr/local/cvs/nessus-core/nessus/prefs_dialog/prefs_about.c,v
retrieving revision 1.15
diff -u -r1.15 prefs_about.c
--- nessus/prefs_dialog/prefs_about.c 21 Jan 2003 23:26:49 -0000 1.15
+++ nessus/prefs_dialog/prefs_about.c 19 Aug 2004 17:54:26 -0000
@@ -35,12 +35,14 @@
#include "../xstuff.h"
#include "../xpm/nessus.xpm"
#include "globals.h"
-struct arglist *
-prefs_dialog_about(window)
- GtkWidget* window;
+
+void
+prefs_dialog_about(menuitem, ctrls)
+ GtkMenuItem * menuitem;
+ gpointer ctrls;
{
- struct arglist * ctrls = emalloc(sizeof(struct arglist));
- GtkWidget * frame;
+ GtkWindow * window;
+ GtkWidget * dialog;
GtkWidget * vbox;
GtkWidget * pixmapwid;
GdkPixmap * pixmap;
@@ -49,21 +51,24 @@
GtkWidget * label;
GtkWidget * table;
GtkWidget * hr;
-
- frame = gtk_frame_new("Credits");
- gtk_container_border_width(GTK_CONTAINER(frame), 10);
- gtk_widget_show(frame);
- arg_add_value(ctrls, "FRAME", ARG_PTR, -1, frame);
-
- vbox = gtk_vbox_new(FALSE, FALSE);
- gtk_container_add(GTK_CONTAINER(frame), vbox);
- gtk_widget_show(vbox);
-
-
+
+ window = GTK_WINDOW(arg_get_value(ctrls, "WINDOW"));
+
+ dialog = gtk_dialog_new_with_buttons("About Nessus",
+ window,
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
+ NULL);
+ gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE);
+ // gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
+ gtk_widget_realize(dialog);
+
+ vbox = GTK_DIALOG(dialog)->vbox;
+
if(F_show_pixmaps)
{
- style = gtk_widget_get_style(frame);
- pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask,
+ style = gtk_widget_get_style(dialog);
+ pixmap = gdk_pixmap_create_from_xpm_d(dialog->window, &mask,
&style->bg[GTK_STATE_NORMAL],
(gchar **)nessus_xpm);
pixmapwid = gtk_pixmap_new(pixmap, mask);
@@ -116,6 +121,8 @@
label = gtk_label_new("Mailing list : http://list.nessus.org");
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 10);
gtk_widget_show(label);
- return(ctrls);
+
+ gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy(dialog);
}
#endif
signature.asc
(application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQFBJOsSW7P1GVgWeRoRAjHfAKCivxS45MGrSog0RFgsvLDxeLOfiwCgpKTR R8TSKKih4VvMUa51mHYbnf0= =2cgM -----END PGP SIGNATURE-----