void vector_table_options_dialog_reflect_state (vector_table_options_D *dialog)
  {
  char *pszTitle = NULL ;
  int *sim_type = NULL ;
  VectorTable *pvt = NULL ;
  BUS_LAYOUT *bus_layout = NULL ;

  if (NULL == dialog) return ;
  if (NULL == (pvt = g_object_get_data (G_OBJECT (dialog->dialog), "user_pvt"))) return ;
  if (NULL == (sim_type = g_object_get_data (G_OBJECT (dialog->dialog), "user_sim_type"))) return ;
  if (NULL == (bus_layout = g_object_get_data (G_OBJECT (dialog->dialog), "user_bus_layout"))) return ;

  if (VECTOR_TABLE == (*sim_type) && bus_layout->inputs->icUsed > 0)
    {
    gtk_widget_set_sensitive (dialog->btnSave, TRUE) ;
    gtk_widget_set_sensitive (dialog->btnOpen, TRUE) ;
    gtk_widget_show (dialog->tblVT) ;
    scrolled_window_set_size (GTK_SCROLLED_WINDOW (dialog->sw), dialog->tv, 0.8, 0.8) ;
    gtk_window_set_resizable (GTK_WINDOW (dialog->dialog), TRUE) ;

    gtk_window_set_title (GTK_WINDOW (dialog->dialog), 
      pszTitle = g_strdup_printf ("%s - %s", 
        (NULL == pvt->pszFName ? _("Untitled") : base_name (pvt->pszFName)), _("Vector Table Setup"))) ;
    }
  else // EXHAUSTIVE_VERIFICATION
    {
    gtk_window_set_title (GTK_WINDOW (dialog->dialog),
      pszTitle = g_strdup_printf ("%s - %s", _("Exhaustive Verification"), _("Vector Table Setup"))) ;

    gtk_widget_set_sensitive (dialog->btnOpen, FALSE) ;
    gtk_widget_set_sensitive (dialog->btnSave, FALSE) ;
    gtk_window_set_resizable (GTK_WINDOW (dialog->dialog), FALSE) ;
    gtk_widget_hide (dialog->tblVT) ;
    }
  g_free (pszTitle) ;

  gtk_widget_set_sensitive (dialog->tbtnVT, (bus_layout->inputs->icUsed > 0)) ;

  if (pvt->vectors->icUsed <= 0)
    {
    gtk_widget_set_sensitive (dialog->btnInsert, FALSE) ;
    gtk_widget_set_sensitive (dialog->btnDelete, FALSE) ;
    }
  else
    {
    gtk_widget_set_sensitive (dialog->btnInsert, TRUE) ;
    gtk_widget_set_sensitive (dialog->btnDelete, TRUE) ;
    }
  }
Esempio n. 2
0
static void BusLayoutToDialog (bus_layout_D *dialog, BUS_LAYOUT *bus_layout)
  {
  GtkTreeStore *ts = NULL ;

  ts = design_bus_layout_tree_store_new (bus_layout, ROW_TYPE_ANY, 0) ;

  gtk_widget_set_sensitive (dialog->btnCreateBus, FALSE) ;
  gtk_widget_set_sensitive (dialog->btnDeleteBus, FALSE) ;
  gtk_widget_set_sensitive (dialog->btnMoveBusUp, FALSE) ;
  gtk_widget_set_sensitive (dialog->btnMoveBusDown, FALSE) ;
  gtk_widget_set_sensitive (dialog->btnMoveCellsUp, FALSE) ;
  gtk_widget_set_sensitive (dialog->btnMoveCellsDown, FALSE) ;
  gtk_widget_set_sensitive (dialog->lblBusName, FALSE) ;
  gtk_widget_set_sensitive (dialog->txtBusName, FALSE) ;
  gtk_entry_set_text (GTK_ENTRY (dialog->txtBusName), "") ;

  gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->tview), GTK_TREE_MODEL (ts)) ;

  // Unref the tree store after giving it to the TreeView.  This way, the next time we give
  // a tree store to the tree view, the current tree store will be destroyed
  g_object_unref (ts) ;

  scrolled_window_set_size (GTK_SCROLLED_WINDOW (dialog->sw), dialog->tview, 0.8, 0.4) ;
  }