예제 #1
0
void
dialog_mass_show (Mass * m, Parameters * p, TransportParameters * tp, int n,
                  System * sys, GtkWindow * parent)
{
  int i;
  TableMass table[sys->nt + 2];
  DialogMass dlg[1];
  dlg->notebook = (GtkNotebook *) gtk_notebook_new ();
  table_mass_create (table, m, flow_mass_error (m, p, n));
  gtk_notebook_append_page (dlg->notebook, GTK_WIDGET (table->table),
                            gtk_label_new (gettext ("Flow")));
  for (i = 0; i <= sys->nt; ++i, tp += n + 1)
    {
      ++m;
      table_mass_create (table + i + 1, m, transport_mass_error (m, tp, n));
      gtk_notebook_append_page (dlg->notebook, GTK_WIDGET (table[i + 1].table),
                                gtk_label_new (sys->transport[i].name));
    }
  gtk_widget_show_all (GTK_WIDGET (dlg->notebook));
  dlg->window =
    (GtkDialog *) gtk_dialog_new_with_buttons (gettext ("Conservation error"),
                                               parent, GTK_DIALOG_MODAL,
                                               gettext ("_OK"), GTK_RESPONSE_OK,
                                               NULL);
  gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (dlg->window)),
                     GTK_WIDGET (dlg->notebook));
  gtk_dialog_run (dlg->window);
  gtk_widget_destroy (GTK_WIDGET (dlg->window));
}
예제 #2
0
void
dialog_simulator_actualize_bar (DialogSimulator * dlg)
{
  register JBDOUBLE k;
  k = tf - t0;
  if (k > 0.)
    k = fmin (t - t0, k) / k;
  else
    k = 1.;
  gtk_progress_bar_set_fraction (dlg->progress_simulation, k);
  snprintf (dlg->string_progress, 32, FGL " s", t - t0);
  gtk_progress_bar_set_text (dlg->progress_simulation, dlg->string_progress);
  if (simulating)
    jbw_int_entry_set_value_with_format (dlg->entry_cpu, "%ld s",
                                         time (0) - dlg->time0);
  jbw_float_entry_set_value_with_format
    (dlg->entry_error, FGL " %%", flow_mass_error (m, p, n));
  gtk_widget_queue_draw (GTK_WIDGET (dlg->box_bar));
}