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-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.