Example #1
0
/* this macro puts a version check function into the module */
GLADE_MODULE_CHECK_INIT void
glade_module_register_widgets (void)
{
   glade_require ("gtk");

   glade_register_widget (GTK_TYPE_DATABOX, glade_standard_build_widget, NULL,
			  NULL);
   glade_register_widget (GTK_DATABOX_TYPE_RULER, glade_standard_build_widget,
			  NULL, NULL);
   glade_provide ("databox");
}
Example #2
0
/* this macro puts a version check function into the module */
GLADE_MODULE_CHECK_INIT

void
glade_module_register_widgets (void)
{
	glade_require ("gtk");

	glade_register_custom_prop (BONOBO_TYPE_DOCK, "allow_floating", dock_allow_floating);
	glade_register_custom_prop (BONOBO_TYPE_DOCK_ITEM, "shadow_type", dock_item_set_shadow_type);
	glade_register_custom_prop (BONOBO_TYPE_DOCK_ITEM, "behavior", dock_item_set_behavior);

	glade_register_widget (BONOBO_TYPE_WIDGET,
			       glade_bonobo_widget_new,
			       NULL, NULL);
	glade_register_widget (BONOBO_TYPE_WINDOW,
			       NULL, glade_standard_build_children,
			       bonobo_window_find_internal_child);
	glade_register_widget (BONOBO_TYPE_DOCK,
			       NULL, dock_build_children,
			       NULL);
	glade_register_widget (BONOBO_TYPE_DOCK_ITEM,
			       dock_item_build, glade_standard_build_children, NULL);
	glade_provide ("bonobo");
}
/* this macro puts a version check function into the module */
GLADE_MODULE_CHECK_INIT

void
glade_module_register_widgets (void)
{
    glade_require ("matecomponent");

    glade_register_custom_prop (MATE_TYPE_APP, "enable_layout_config", app_enable_layout_config);
    glade_register_custom_prop (MATE_TYPE_PIXMAP_ENTRY, "preview", pixmap_entry_set_preview);
    glade_register_custom_prop (MATE_TYPE_ICON_LIST, "selection_mode", icon_list_set_selection_mode);
    glade_register_custom_prop (MATE_TYPE_ICON_LIST, "icon_width", custom_noop);
    glade_register_custom_prop (MATE_TYPE_ICON_LIST, "row_spacing", icon_list_set_row_spacing);
    glade_register_custom_prop (MATE_TYPE_ICON_LIST, "column_spacing", icon_list_set_col_spacing);
    glade_register_custom_prop (MATE_TYPE_ICON_LIST, "text_spacing", icon_list_set_text_spacing);
    glade_register_custom_prop (MATE_TYPE_ICON_LIST, "text_editable", custom_noop);
    glade_register_custom_prop (MATE_TYPE_ICON_LIST, "text_static", custom_noop);
    glade_register_custom_prop (MATE_TYPE_DIALOG, "auto_close", dialog_set_auto_close);
    glade_register_custom_prop (MATE_TYPE_DIALOG, "hide_on_close", dialog_set_hide_on_close);
    glade_register_custom_prop (MATE_TYPE_MESSAGE_BOX, "message", custom_noop);
    glade_register_custom_prop (MATE_TYPE_MESSAGE_BOX, "message_box_type", custom_noop);
    glade_register_custom_prop (MATE_TYPE_ABOUT, "authors", about_set_authors);
    glade_register_custom_prop (MATE_TYPE_ABOUT, "translator_credits", about_set_translator_credits);
    glade_register_custom_prop (MATE_TYPE_ABOUT, "documenters", about_set_documentors);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "title", druid_page_edge_set_title);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "text", druid_page_edge_set_text);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "title_color", druid_page_edge_set_title_color);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "text_color", druid_page_edge_set_text_color);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "background_color", druid_page_edge_set_bg_color);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "logo_background_color", druid_page_edge_set_logo_bg_color);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "textbox_color", druid_page_edge_set_textbox_color);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "logo", druid_page_edge_set_logo);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "watermark", druid_page_edge_set_watermark);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "top_watermark", druid_page_edge_set_top_watermark);
    glade_register_custom_prop (MATE_TYPE_DRUID_PAGE_EDGE, "position", custom_noop);
    glade_register_custom_prop (GTK_TYPE_IMAGE_MENU_ITEM, "stock_item", custom_noop);
    glade_register_custom_prop (GTK_TYPE_MENU_ITEM, "stock_item", custom_noop);
    glade_register_custom_prop (MATE_TYPE_PIXMAP, "filename", pixmap_set_filename);
    glade_register_custom_prop (MATE_TYPE_ENTRY, "max_saved", entry_set_max_saved);
    glade_register_custom_prop (MATE_TYPE_FILE_ENTRY, "max_saved", file_entry_set_max_saved);
    glade_register_custom_prop (MATE_TYPE_FILE_ENTRY, "use_filechooser", file_entry_set_use_filechooser);
    glade_register_custom_prop (MATE_TYPE_ICON_ENTRY, "max_saved", icon_entry_set_max_saved);

    glade_register_widget (MATE_TYPE_ABOUT, NULL, NULL, NULL);
    glade_register_widget (MATE_TYPE_APP, app_build, app_build_children,
			   app_find_internal_child);
    glade_register_widget (MATE_TYPE_APPBAR, glade_standard_build_widget,
			   NULL, NULL);
    glade_register_widget (MATE_TYPE_COLOR_PICKER,glade_standard_build_widget,
			   NULL, NULL);
    glade_register_widget (MATE_TYPE_DATE_EDIT, date_edit_new,
			   NULL, NULL);
    glade_register_widget (MATE_TYPE_DIALOG, dialog_new,
			   dialog_build_children, dialog_find_internal_child);
    glade_register_widget (MATE_TYPE_DRUID, glade_standard_build_widget,
			   glade_standard_build_children, NULL);
    glade_register_widget (MATE_TYPE_DRUID_PAGE, glade_standard_build_widget,
			   glade_standard_build_children, NULL);
    glade_register_widget (MATE_TYPE_DRUID_PAGE_EDGE, druid_page_edge_new,
			   NULL, NULL);
    glade_register_widget (MATE_TYPE_DRUID_PAGE_STANDARD, glade_standard_build_widget,
			   glade_standard_build_children, druidpagestandard_find_internal_child);
    glade_register_widget (MATE_TYPE_ENTRY, glade_standard_build_widget,
			   glade_standard_build_children, entry_find_internal_child);
    glade_register_widget (MATE_TYPE_FILE_ENTRY, glade_standard_build_widget,
			   glade_standard_build_children, file_entry_find_internal_child);
    glade_register_widget (MATE_TYPE_HREF, glade_standard_build_widget,
			   NULL, NULL);
    glade_register_widget (MATE_TYPE_ICON_ENTRY, glade_standard_build_widget,
			   NULL, NULL);
    glade_register_widget (MATE_TYPE_ICON_LIST, icon_list_new,
			   NULL, NULL);
    glade_register_widget (MATE_TYPE_ICON_SELECTION, glade_standard_build_widget,
			   NULL, NULL);
    glade_register_widget (MATE_TYPE_MESSAGE_BOX, message_box_new,
			   glade_standard_build_children, dialog_find_internal_child);
    glade_register_widget (MATE_TYPE_PIXMAP_ENTRY, glade_standard_build_widget,
			   NULL, NULL);
    glade_register_widget (MATE_TYPE_PROPERTY_BOX, glade_standard_build_widget,
			   glade_standard_build_children, propertybox_find_internal_child);
    glade_register_widget (MATE_TYPE_SCORES, glade_standard_build_widget,
			   NULL, NULL);
    glade_register_widget (MATE_TYPE_PIXMAP, glade_standard_build_widget, NULL, NULL);
    glade_register_widget (MATE_TYPE_FONT_PICKER, NULL, NULL, NULL);

    /* things we need to override */
    glade_register_widget (MATECOMPONENT_TYPE_DOCK, NULL, mate_dock_build_children, NULL);
    glade_register_widget (GTK_TYPE_MENU_BAR, NULL, menushell_build_children, NULL);
    glade_register_widget (GTK_TYPE_MENU, NULL, menushell_build_children, NULL);
    
    glade_provide ("mate");
}
Example #4
0
/***************************************************************************
 *
 * implementation
 *
 **************************************************************************/
int
main (int argc, char *argv[])
{
  GtkWidget *widget;
  GnomeClient *client;
  gchar *mode_string = NULL;
  gchar *cl_filter = NULL;
  gchar *cl_interface = NULL;
  gchar *cl_input_file = NULL;
  gchar *export_file_final = NULL;
  gchar *export_file_signal = NULL;
  gboolean cl_numeric = FALSE;
  glong midelay = 0;
  glong madelay = G_MAXLONG;
  gchar *version;
  gchar *cl_glade_file = NULL;
  poptContext poptcon;

  struct poptOption optionsTable[] = {
    {"diagram-only", 'd', POPT_ARG_NONE, &(pref.diagram_only), 0,
     N_("don't display any node text identification"), NULL},
    {"replay-file", 'r', POPT_ARG_STRING, &cl_input_file, 0,
     N_("replay packets from file"), N_("<file to replay>")},
    {"filter", 'f', POPT_ARG_STRING, &cl_filter, 0,
     N_("set capture filter"), N_("<capture filter>")},
    {"interface", 'i', POPT_ARG_STRING, &cl_interface, 0,
     N_("set interface to listen to"), N_("<interface name>")},
    {"final-export", 0, POPT_ARG_STRING, &export_file_final, 0,
     N_("export to named file at end of replay"), N_("<file to export to>")},
    {"signal-export", 0, POPT_ARG_STRING, &export_file_signal, 0,
     N_("export to named file on receiving USR1"), N_("<file to export to>")},
    {"stationary", 's', POPT_ARG_NONE, &(pref.stationary), 0,  
     N_("don't move nodes around (deprecated)"), NULL}, 
    {"node-limit", 'l', POPT_ARG_INT, &(appdata.node_limit), 0,
     N_("limits nodes displayed"), N_("<number of nodes>")},
    {"mode", 'm', POPT_ARG_STRING, &mode_string, 0,
     N_("mode of operation"), N_("<link|ip|tcp>")},
    {"numeric", 'n', POPT_ARG_NONE, &cl_numeric, 0,
     N_("don't convert addresses to names"), NULL},
    {"quiet", 'q', POPT_ARG_NONE, &quiet, 0,
     N_("Disable informational messages"), NULL},
    {"min-delay", 0, POPT_ARG_LONG, &midelay,  0,
     N_("minimum packet delay in ms for reading capture files [cli only]"),
      N_("<delay>")},
    {"max-delay", 0, POPT_ARG_LONG, &madelay,  0,
     N_("maximum packet delay in ms for reading capture files [cli only]"),
      N_("<delay>")},
    {"glade-file", 0, POPT_ARG_STRING, &(cl_glade_file), 0,
     N_("uses the named libglade file for widgets"), N_("<glade file>")},

    POPT_AUTOHELP {NULL, 0, 0, NULL, 0, NULL, NULL}
  };

#ifdef ENABLE_NLS
  bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR);
  bind_textdomain_codeset(PACKAGE, "UTF-8"); /* force UTF-8 conversion */
  textdomain (PACKAGE);
#endif

  /* We set the window icon to use */
  if (!getenv ("GNOME_DESKTOP_ICON"))
    putenv ("GNOME_DESKTOP_ICON=" PIXMAPS_DIR "/etherape.png");

#ifdef PACKAGE_SCM_REV
  /* We initiate the application and read command line options */
  version = g_strdup_printf("%s (hg id %s)", VERSION, 
                            (*PACKAGE_SCM_REV) ? PACKAGE_SCM_REV : 
                              _("-unknown-"));
#else
  version = g_strdup(VERSION);
#endif
  gnome_program_init ("EtherApe", version, 
                      LIBGNOMEUI_MODULE, argc, argv,
		      GNOME_PARAM_POPT_TABLE, optionsTable, GNOME_PARAM_NONE);
  g_free(version);

  appdata_init(&appdata);

  /* We obtain application parameters 
   * First, absolute defaults
   * Second, values saved in the config file
   * Third, whatever given in the command line */
  init_config(&pref);

  set_debug_level();

  /* Config file */
  load_config();

  /* Command line */
  cl_numeric = !pref.name_res;
  poptcon =
    poptGetContext ("Etherape", argc, (const char **) argv, optionsTable, 0);
  while (poptGetNextOpt (poptcon) > 0);

  if (cl_interface)
    {
      if (appdata.interface)
	g_free (appdata.interface);
      appdata.interface = g_strdup (cl_interface);
    }

  if (export_file_final)
    {
      if (appdata.export_file_final)
	g_free (appdata.export_file_final);
      appdata.export_file_final = g_strdup (export_file_final);
    }
  if (export_file_signal)
    {
      if (appdata.export_file_signal)
	g_free (appdata.export_file_signal);
      appdata.export_file_signal = g_strdup (export_file_signal);
    }

  pref.name_res = !cl_numeric;

  if (cl_input_file)
    {
      if (appdata.input_file)
	g_free (appdata.input_file);
      appdata.input_file = g_strdup (cl_input_file);
    }

  /* Find mode of operation */
  if (mode_string)
    {
      if (strstr (mode_string, "link"))
	appdata.mode = LINK6;
      else if (strstr (mode_string, "ip"))
	appdata.mode = IP;
      else if (strstr (mode_string, "tcp"))
	appdata.mode = TCP;
      else
	g_warning (_
		   ("Unrecognized mode. Do etherape --help for a list of modes"));
      g_free(pref.filter);
      pref.filter = get_default_filter(appdata.mode);
    }

  if (cl_filter)
    {
      if (pref.filter)
	g_free (pref.filter);
      pref.filter = g_strdup (cl_filter);
    }

  if (midelay >= 0 && midelay <= G_MAXLONG)
    {
       appdata.min_delay = midelay;
       if (appdata.min_delay != 0)
         g_message("Minimum delay set to %lu ms", appdata.min_delay);
    }
  else
      g_message("Invalid minimum delay %ld, ignored", midelay);
  
  if (madelay >= 0 && madelay <= G_MAXLONG)
    {
      if (madelay < appdata.min_delay)
        {
          g_message("Maximum delay must be less of minimum delay");
          appdata.max_delay = appdata.min_delay;
        }
      else
        appdata.max_delay = madelay;
      if (appdata.max_delay != G_MAXLONG)
        g_message("Maximum delay set to %lu ms", appdata.max_delay);
    }
  else
      g_message("Invalid maximum delay %ld, ignored", madelay);
  
  /* Glade */
  glade_gnome_init ();
  glade_require("gnome");
  glade_require("canvas");
  if (!appdata_init_glade(cl_glade_file))
    return 1;

  /* prepare decoders */
  services_init();
  
  /* Sets controls to the values of variables and connects signals */
  init_diagram (appdata.xml);

  /* Session handling */
  client = gnome_master_client ();
  g_signal_connect (G_OBJECT (client), "save_yourself",
		    GTK_SIGNAL_FUNC (save_session), argv[0]);
  g_signal_connect (G_OBJECT (client), "die",
		    GTK_SIGNAL_FUNC (session_die), NULL);
  gtk_widget_show (appdata.app1);

  install_handlers();

  /* With this we force an update of the diagram every x ms 
   * Data in the diagram is updated, and then the canvas redraws itself when
   * the gtk loop is idle. If the CPU can't handle the set refresh_period,
   * then it will just do a best effort */

  widget = glade_xml_get_widget (appdata.xml, "canvas1");
  destroying_idle (widget);

  /* This other timeout makes sure that the info windows are updated */
  g_timeout_add (500, (GtkFunction) update_info_windows, NULL);

  /* another timeout to handle IP-cache timeouts */
  g_timeout_add (10000, (GtkFunction) ipcache_tick, NULL);

  init_menus ();
  
  gui_start_capture ();

  /* MAIN LOOP */
  gtk_main ();

  free_static_data();
  return 0;
}				/* main */