Exemple #1
0
/* selectable : Whether this node can be selected by the user. */
int
clip_GTK_CTREENODESETSELECTABLE(ClipMachine * cm)
{
	C_widget    *cctree = _fetch_cw_arg(cm);
	C_object     *cnode = _fetch_cobject(cm,_clip_spar(cm,2));
	gboolean selectable = _clip_parl(cm,3);
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	CHECKOPT(3,LOGICAL_t);
	if (_clip_parinfo(cm,3)==UNDEF_t) selectable = TRUE;
	gtk_ctree_node_set_selectable(GTK_CTREE(cctree->widget),
			GTK_CTREE_NODE(cnode->object), selectable);
	return 0;
err:
	return 1;
}
Exemple #2
0
/*
 * Create a node that will contain all sampled symbol information.
 */
static void
gdisp_createSymbolNode(Kernel_T     *kernel,
		       GtkWidget    *parent,
		       GtkWidget    *tree,
		       GtkCTreeNode *sampledSymbolNode,
		       Symbol_T     *symbol)
{

  GtkCTreeNode *iNode                       = (GtkCTreeNode*)NULL;
  GList        *iExtInfoItem                = (GList*)NULL;
  Pixmap_T     *pPixmap                     = (Pixmap_T*)NULL;
  gchar        *iNames [GD_TREE_NB_COLUMNS] = { (gchar*)NULL,  (gchar*)NULL };
  gchar         iInfo  [128];
  gchar         iMin   [128];
  gchar         iMax   [128];

  /*
   * The name of the node is the name of the symbol.
   */
  iNames[0] = symbol->sInfo.name;
  iNames[1] = iInfo;
  if (symbol->sInfo.dimension == 1) {
    sprintf(iNames[1],
	    "Type %s",
	    gdisp_getTypeAsString(symbol));
  }
  else {
    sprintf(iNames[1],
	    "Type %s [%d]",
	    gdisp_getTypeAsString(symbol),
	    symbol->sInfo.dimension);
  }

  symbol->sNode = gtk_ctree_insert_node(GTK_CTREE(tree),
					sampledSymbolNode,
					(GtkCTreeNode*)NULL, /* no sibling */
					iNames,
					GD_TREE_SPACING,
					(GdkPixmap*)NULL,
					(GdkBitmap*)NULL,
					(GdkPixmap*)NULL,
					(GdkBitmap*)NULL,
					FALSE, /* is a leave  */
					FALSE); /* is expanded */

  gtk_ctree_node_set_row_data(GTK_CTREE(tree),
			      symbol->sNode,
			      (gpointer)symbol);

  /*
   * Insert information node : PERIOD.
   */
  iNames[0] = "Period";
  iNames[1] = iInfo;
  sprintf(iNames[1],"%d",symbol->sInfo.period);

  iNode = gtk_ctree_insert_node(GTK_CTREE(tree),
				symbol->sNode, /* symbol node is the parent */
				(GtkCTreeNode*)NULL, /* no sibling node */
				iNames,
				GD_TREE_SPACING,
				(GdkPixmap*)NULL,
				(GdkBitmap*)NULL,
				(GdkPixmap*)NULL,
				(GdkBitmap*)NULL,
				TRUE,   /* is a leave  */
				FALSE); /* is expanded */

  gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				iNode,
				FALSE); /* not selectable */


  /*
   * Insert information node : PHASE.
   */
  iNames[0] = "Phase";
  iNames[1] = iInfo;
  sprintf(iNames[1],"%d",symbol->sInfo.phase);

  iNode = gtk_ctree_insert_node(GTK_CTREE(tree),
				symbol->sNode, /* symbol node is the parent */
				(GtkCTreeNode*)NULL, /* no sibling node */
				iNames,
				GD_TREE_SPACING,
				(GdkPixmap*)NULL,
				(GdkBitmap*)NULL,
				(GdkPixmap*)NULL,
				(GdkBitmap*)NULL,
				TRUE,   /* is a leave  */
				FALSE); /* is expanded */

  gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				iNode,
				FALSE); /* not selectable */


  /*
   * Insert information node : RANGE.
   */
  iNames[0] = "Range";
  iNames[1] = iInfo;
  if (symbol->sMinimum > (- G_MAXDOUBLE)) {
    sprintf(iMin,"%f",symbol->sMinimum);
  }
  else {
    sprintf(iMin,"n/a");
  }
  if (symbol->sMaximum < (+ G_MAXDOUBLE)) {
    sprintf(iMax,"%f",symbol->sMaximum);
  }
  else {
    sprintf(iMax,"n/a");
  }
  sprintf(iNames[1],"[ %s .. %s ]",iMin,iMax);

  iNode = gtk_ctree_insert_node(GTK_CTREE(tree),
				symbol->sNode, /* symbol node is the parent */
				(GtkCTreeNode*)NULL, /* no sibling node */
				iNames,
				GD_TREE_SPACING,
				(GdkPixmap*)NULL,
				(GdkBitmap*)NULL,
				(GdkPixmap*)NULL,
				(GdkBitmap*)NULL,
				TRUE,   /* is a leave  */
				FALSE); /* is expanded */

  gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				iNode,
				FALSE); /* not selectable */


  /*
   * Insert information node : REFERENCE.
   */
  iNames[0] = "Reference";
  iNames[1] = iInfo;
  sprintf(iNames[1],"%d",symbol->sReference);

  iNode = gtk_ctree_insert_node(GTK_CTREE(tree),
				symbol->sNode, /* symbol node is the parent */
				(GtkCTreeNode*)NULL, /* no sibling node */
				iNames,
				GD_TREE_SPACING,
				(GdkPixmap*)NULL,
				(GdkBitmap*)NULL,
				(GdkPixmap*)NULL,
				(GdkBitmap*)NULL,
				TRUE,   /* is a leave  */
				FALSE); /* is expanded */

  gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				iNode,
				FALSE); /* not selectable */

  gtk_ctree_node_set_row_data(GTK_CTREE(tree),
			      iNode,
			      (gpointer)"sReference");


  /*
   * Insert extended information.
   */
  pPixmap = gdisp_getPixmapById(kernel,
				GD_PIX_info,
				parent);

  iExtInfoItem = g_list_first(symbol->sExtInfoList);
  while (iExtInfoItem != (GList*)NULL) {

    iNames[0] = ((gchar**)(iExtInfoItem->data))[0];
    iNames[1] = ((gchar**)(iExtInfoItem->data))[1];

    iNode = gtk_ctree_insert_node(GTK_CTREE(tree),
				  symbol->sNode, /* the parent */
				  (GtkCTreeNode*)NULL, /* no sibling node */
				  iNames,
				  GD_TREE_SPACING,
				  pPixmap->pixmap,
				  pPixmap->mask,
				  pPixmap->pixmap,
				  pPixmap->mask,
				  TRUE,   /* is a leave  */
				  FALSE); /* is expanded */

    gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				  iNode,
				  FALSE); /* not selectable */

    iExtInfoItem = g_list_next(iExtInfoItem);

  }

}
Exemple #3
0
/*
 * Create a node that will contain all provider information.
 */
static void
gdisp_createProviderNode(Kernel_T      *kernel,
			 GtkWidget     *parent,
			 GtkWidget     *tree,
			 Provider_T    *provider,
			 GtkCTreeNode **providerNode,
			 GtkCTreeNode **sampledSymbolNode)
{

  gchar        *pNames [GD_TREE_NB_COLUMNS] = { (gchar*)NULL,  (gchar*)NULL };
  GtkCTreeNode *iNode                       = (GtkCTreeNode*)NULL;
  GtkCTreeNode *sNode                       = (GtkCTreeNode*)NULL;
  Pixmap_T     *pPixmap                     = (Pixmap_T*)NULL;

  /*
   * The name of the node is the URL of the provider.
   * Get back provider pixmap according to its identity.
   */
  pNames[0] = provider->pUrl->str;

  pPixmap = gdisp_getProviderIdPixmap(kernel,
				      parent,
				      provider->pIdentity);

  provider->pNode = gtk_ctree_insert_node(GTK_CTREE(tree),
					  (GtkCTreeNode*)NULL, /* parent  */
					  (GtkCTreeNode*)NULL, /* sibling */
					  pNames,
					  GD_TREE_SPACING,
					  pPixmap->pixmap,
					  pPixmap->mask,
					  pPixmap->pixmap,
					  pPixmap->mask,
					  FALSE, /* is a leave  */
					  TRUE); /* is expanded */

  gtk_ctree_node_set_row_data(GTK_CTREE(tree),
			      provider->pNode,
			      (gpointer)provider);

  gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				provider->pNode,
				FALSE); /* not selectable */

  /*
   * Insert information node.
   */
  pNames[0] = "Information";

  pPixmap = gdisp_getPixmapById(kernel,
				GD_PIX_info,
				parent);

  iNode = gtk_ctree_insert_node(GTK_CTREE(tree),
				provider->pNode, /* provider is the parent */
				(GtkCTreeNode*)NULL, /* no sibling node */
				pNames,
				GD_TREE_SPACING,
				pPixmap->pixmap,
				pPixmap->mask,
				pPixmap->pixmap,
				pPixmap->mask,
  /* FIXME for the moment */    TRUE, /* is a leave  */
				FALSE); /* is expanded */

  gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				iNode,
				FALSE); /* not selectable */

  /*
   * Insert sampled symbol node.
   */
  pNames[0] = "Sampled Symbols";
  sNode = gtk_ctree_insert_node(GTK_CTREE(tree),
				provider->pNode, /* provider is the parent */
				(GtkCTreeNode*)NULL, /* no sibling node */
				pNames,
				GD_TREE_SPACING,
				kernel->widgets.collapsedNodePixmap->pixmap,
				kernel->widgets.collapsedNodePixmap->mask,
				kernel->widgets.expandedNodePixmap->pixmap,
				kernel->widgets.expandedNodePixmap->mask,
				FALSE, /* is a leave  */
				FALSE); /* is expanded */

  gtk_ctree_node_set_row_data(GTK_CTREE(tree),
			      sNode,
			      (gpointer)"sAnchor");

  gtk_ctree_node_set_text(GTK_CTREE(tree),
			  sNode,
			  0, /* column */
			  pNames[0]);

  gtk_ctree_node_set_selectable(GTK_CTREE(tree),
				sNode,
				FALSE); /* not selectable */

  if (gdisp_getProviderNumber(kernel) == 1) {

    /*
     * Expand that node if there is only one provider.
     */
    gtk_ctree_expand(GTK_CTREE(tree),sNode);

  }

  /*
   * Return.
   */
  *providerNode      = provider->pNode;
  *sampledSymbolNode = sNode;

}