Exemplo n.º 1
0
static void facq_baf_view_plot_constructed(GObject *self)
{
	FacqBAFViewPlot *plot = FACQ_BAF_VIEW_PLOT(self);
	GdkColor color;
	GtkDataboxGraph *grid = NULL;

	gtk_databox_create_box_with_scrollbars_and_rulers(&plot->priv->databox,
							  &plot->priv->table,
							  FALSE,FALSE,TRUE,TRUE);

	color.red = color.green = color.blue = 0;
	gtk_widget_modify_bg(plot->priv->databox,GTK_STATE_NORMAL,&color);

	color.red = color.blue = 0;
	color.green = 65535;
	grid = gtk_databox_grid_new(7,7,&color,1);
	gtk_databox_graph_add(GTK_DATABOX(plot->priv->databox),grid);

	color.red = color.blue = 0;
	color.green = 32767;
	grid = gtk_databox_grid_new(15,15,&color,1);
	gtk_databox_graph_add(GTK_DATABOX(plot->priv->databox),grid);

	gtk_databox_set_total_limits(GTK_DATABOX(plot->priv->databox),0,10,10,-10);

	gtk_databox_set_enable_zoom(GTK_DATABOX(plot->priv->databox),TRUE);
        gtk_databox_set_enable_selection(GTK_DATABOX(plot->priv->databox),TRUE);

	gtk_widget_set_size_request(plot->priv->table,512,256);

	gtk_widget_show_all(plot->priv->table);
}
Exemplo n.º 2
0
static void
create_grid (void)
{
   GtkWidget *window = NULL;
   GtkWidget *box1;
   GtkWidget *box2;
   GtkWidget *close_button;
   GtkWidget *box;
   GtkWidget *label;
   GtkWidget *table;
   GtkWidget *separator;
   GtkDataboxGraph *graph;
   gfloat *X;
   gfloat *Y;
   GdkColor color;
   gint i;

   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_widget_set_size_request (window, 500, 500);

   g_signal_connect (GTK_OBJECT (window), "destroy",
		     G_CALLBACK (gtk_main_quit), NULL);

   gtk_window_set_title (GTK_WINDOW (window),
			 "GtkDatabox: Double Grid Example");
   gtk_container_set_border_width (GTK_CONTAINER (window), 0);

   box1 = gtk_vbox_new (FALSE, 0);
   gtk_container_add (GTK_CONTAINER (window), box1);

   label =
      gtk_label_new
      ("This is an example of two grids\nLove it or hate it.\nI love it...\n\nFor basic understanding see basics :-)");
   gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 0);
   separator = gtk_hseparator_new ();
   gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, FALSE, 0);

   /* Create a GtkDatabox widget along with scrollbars and rulers */
   gtk_databox_create_box_with_scrollbars_and_rulers (&box, &table,
						      TRUE, TRUE, TRUE, TRUE);
   gtk_box_pack_start (GTK_BOX (box1), table, TRUE, TRUE, 0);

   color.red = 8192;
   color.green = 8192;
   color.blue = 8192;
   gtk_widget_modify_bg (box, GTK_STATE_NORMAL, &color);

   X = g_new0 (gfloat, POINTS);
   Y = g_new0 (gfloat, POINTS);

   for (i = 0; i < POINTS; i++)
   {
      X[i] = i;
      Y[i] = 100. * sin (i * 2 * G_PI / POINTS);
   }
   color.red = 0;
   color.green = 65535;
   color.blue = 0;

   graph = gtk_databox_points_new (POINTS, X, Y, &color, 3);
   gtk_databox_graph_add (GTK_DATABOX (box), graph);

   Y = g_new0 (gfloat, POINTS);

   for (i = 0; i < POINTS; i++)
   {
      Y[i] = 100. * cos (i * 2 * G_PI / POINTS);
   }
   color.red = 65535;
   color.green = 0;
   color.blue = 0;

   graph = gtk_databox_points_new (POINTS, X, Y, &color, 3);
   gtk_databox_graph_add (GTK_DATABOX (box), graph);

   /* Here we start with the first grid */
   color.red = 0;
   color.green = 0;
   color.blue = 65535;

   graph = gtk_databox_grid_new (7, 7, &color, 2);
   gtk_databox_graph_add (GTK_DATABOX (box), graph);

   color.red = 51000;
   color.green = 0;
   color.blue = 0;

   graph = gtk_databox_grid_new (15, 15, &color, 2);
   gtk_databox_graph_add (GTK_DATABOX (box), graph);

   gtk_databox_auto_rescale (GTK_DATABOX (box), 0.05);

   separator = gtk_hseparator_new ();
   gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);

   box2 = gtk_vbox_new (FALSE, 10);
   gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
   gtk_box_pack_end (GTK_BOX (box1), box2, FALSE, TRUE, 0);
   close_button = gtk_button_new_with_label ("close");
   g_signal_connect_swapped (GTK_OBJECT (close_button), "clicked",
			     G_CALLBACK (gtk_main_quit),
			     GTK_OBJECT (box));
   gtk_box_pack_start (GTK_BOX (box2), close_button, TRUE, TRUE, 0);
   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
   gtk_widget_grab_default (close_button);

   gtk_widget_show_all (window);

}
Exemplo n.º 3
0
GtkWidget* tilt_display(struct tilt_data* td) {
  GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_widget_set_size_request (window, 1280, 800);

  GtkWidget* vbox1 = gtk_vbox_new (FALSE, 0);
  gtk_container_add (GTK_CONTAINER (window), vbox1);

  GtkWidget *frame = gtk_frame_new ("rate");
  gtk_container_set_border_width (GTK_CONTAINER (frame), 10);
  gtk_box_pack_start (GTK_BOX (vbox1), frame, TRUE, TRUE, 0);

  GtkWidget* databox = gtk_databox_new();
  gfloat* prate = g_new0 (gfloat, td->nb_samples);
  gfloat* p_m_rate = g_new0 (gfloat, td->nb_samples);
  gfloat* pt = g_new0 (gfloat, td->nb_samples);
  int idx;
  for (idx=0; idx<td->nb_samples; idx++) {
    prate[idx] = td->rate[idx];
    p_m_rate[idx] = td->gyro[idx];
    pt[idx] = td->t[idx];
  }
  GdkColor red = {0, 65535, 0, 0};
  GdkColor green = {0, 0, 65535, 0};
  GdkColor blue = {0, 0, 0, 65535};
  GdkColor pink = {0, 65535, 0, 65535};
  GdkColor black = {0, 0, 0, 0};

  GtkDataboxGraph *grate = gtk_databox_lines_new (td->nb_samples, pt, prate, &red, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), grate);

  GtkDataboxGraph *g_m_rate = gtk_databox_lines_new (td->nb_samples, pt, p_m_rate, &green, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), g_m_rate);

  GtkDataboxGraph *grid = gtk_databox_grid_new (10, 10, &black, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), grid);

  gtk_container_add (GTK_CONTAINER (frame), databox );
  gtk_databox_auto_rescale (GTK_DATABOX(databox), 0.);



  frame = gtk_frame_new ("angle");
  gtk_container_set_border_width (GTK_CONTAINER (frame), 10);
  gtk_box_pack_start (GTK_BOX (vbox1), frame, TRUE, TRUE, 0);

  databox = gtk_databox_new();
  gfloat* pangle = g_new0 (gfloat, td->nb_samples);
  gfloat* pm_angle = g_new0 (gfloat, td->nb_samples);
  gfloat* pe_angle = g_new0 (gfloat, td->nb_samples);
  for (idx=0; idx<td->nb_samples; idx++) {
    pangle[idx] = td->angle[idx];
    pm_angle[idx] = td->m_angle[idx];
    pe_angle[idx] = td->est_angle[idx];
  }

  GtkDataboxGraph *gangle = gtk_databox_lines_new (td->nb_samples, pt, pangle, &red, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), gangle);

  GtkDataboxGraph *ge_angle = gtk_databox_lines_new (td->nb_samples, pt, pe_angle, &blue, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), ge_angle);

  GtkDataboxGraph *gm_angle = gtk_databox_lines_new (td->nb_samples, pt, pm_angle, &green, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), gm_angle);

  grid = gtk_databox_grid_new (10, 10, &black, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), grid);

  gtk_container_add (GTK_CONTAINER (frame), databox );
  gtk_databox_auto_rescale (GTK_DATABOX(databox), 0.);


  frame = gtk_frame_new ("bias");
  gtk_container_set_border_width (GTK_CONTAINER (frame), 10);
  gtk_box_pack_start (GTK_BOX (vbox1), frame, TRUE, TRUE, 0);

  databox = gtk_databox_new();
  gfloat* pbias = g_new0 (gfloat, td->nb_samples);
  gfloat* pest_bias = g_new0 (gfloat, td->nb_samples);
  for (idx=0; idx<td->nb_samples; idx++) {
    pbias[idx] = td->bias[idx];
    pest_bias[idx] = td->est_bias[idx];
  }
  GtkDataboxGraph *gest_bias = gtk_databox_lines_new (td->nb_samples, pt, pest_bias, &blue, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), gest_bias);

  GtkDataboxGraph *gbias = gtk_databox_lines_new (td->nb_samples, pt, pbias, &red, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), gbias);

  grid = gtk_databox_grid_new (10, 10, &black, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), grid);

  gtk_container_add (GTK_CONTAINER (frame), databox );
  gtk_databox_auto_rescale (GTK_DATABOX(databox), 0.);


  frame = gtk_frame_new ("covariance");
  gtk_container_set_border_width (GTK_CONTAINER (frame), 10);
  gtk_box_pack_start (GTK_BOX (vbox1), frame, TRUE, TRUE, 0);

  databox = gtk_databox_new();
  gfloat* pP00 = g_new0 (gfloat, td->nb_samples);
  gfloat* pP01 = g_new0 (gfloat, td->nb_samples);
  gfloat* pP10 = g_new0 (gfloat, td->nb_samples);
  gfloat* pP11 = g_new0 (gfloat, td->nb_samples);
  for (idx=0; idx<td->nb_samples; idx++) {
    pP00[idx] = td->P00[idx];
    pP01[idx] = td->P01[idx];
    pP10[idx] = td->P10[idx];
    pP11[idx] = td->P11[idx];
  }
  GtkDataboxGraph *gP00 = gtk_databox_lines_new (td->nb_samples, pt, pP00, &red, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), gP00);

  GtkDataboxGraph *gP01 = gtk_databox_lines_new (td->nb_samples, pt, pP01, &green, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), gP01);

  GtkDataboxGraph *gP10 = gtk_databox_lines_new (td->nb_samples, pt, pP10, &blue, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), gP10);

  GtkDataboxGraph *gP11 = gtk_databox_lines_new (td->nb_samples, pt, pP11, &pink, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), gP11);

  grid = gtk_databox_grid_new (10, 10, &black, 1);
  gtk_databox_graph_add (GTK_DATABOX(databox), grid);

  gtk_container_add (GTK_CONTAINER (frame), databox );
  gtk_databox_auto_rescale (GTK_DATABOX(databox), 0.);


  gtk_widget_show_all(window);
  return window;
}