예제 #1
0
Boolequation *
load_boolequation(ObjectNode obj_node,
                  const gchar *attrname,
                  const gchar *defaultvalue,
                  DiaFont *font,
                  real fontheight, Color *color)
{
    gchar *value = NULL;
    Boolequation *booleq;
    AttributeNode attr;

    booleq = boolequation_create(NULL,font,fontheight,color);
    attr = object_find_attribute(obj_node,attrname);
    if (attr)
        value = data_string(attribute_first_data(attr));
    else if (defaultvalue)
        value = g_strdup (defaultvalue);
    if (value)
        boolequation_set_value(booleq,value);
    g_free(value);

    return booleq;
}
예제 #2
0
파일: transition.c 프로젝트: UIKit0/dia
static DiaObject *
transition_create(Point *startpoint,
		  void *user_data,
		  Handle **handle1,
		  Handle **handle2)
{
  Transition *transition;
  DiaObject *obj;
  int i;
  Element *elem;
  DiaFont *default_font = NULL; 
  real default_fontheight;
  Color fg_color;

  transition = g_malloc0(sizeof(Transition));
  elem = &transition->element;
  obj = &elem->object;
  
  obj->type = &transition_type;
  obj->ops = &transition_ops;
  
  elem->corner = *startpoint;
  elem->width = TRANSITION_DECLAREDWIDTH;
  elem->height = TRANSITION_DECLAREDHEIGHT;

  element_init(elem, 10,2);

  attributes_get_default_font(&default_font,&default_fontheight);
  fg_color = attributes_get_foreground();
  
  transition->receptivity = 
    boolequation_create("",
                        default_font,
                        default_fontheight,
                        &fg_color);

  transition->rcep_value = g_strdup("");
  transition->rcep_font = dia_font_ref(default_font);
  transition->rcep_fontheight = default_fontheight;
  transition->rcep_color = fg_color;

  dia_font_unref(default_font);
  

  for (i=0;i<8;i++) {
    obj->handles[i]->type = HANDLE_NON_MOVABLE;
  }
  obj->handles[8] = &transition->north;
  obj->handles[9] = &transition->south;
  transition->north.connect_type = HANDLE_CONNECTABLE;
  transition->north.type = HANDLE_MAJOR_CONTROL;
  transition->north.id = HANDLE_NORTH;
  transition->south.connect_type = HANDLE_CONNECTABLE;
  transition->south.type = HANDLE_MAJOR_CONTROL;
  transition->south.id = HANDLE_SOUTH;
  transition->north.pos.x = -65536.0; /* magic */

  for (i=0;i<2;i++) {
    obj->connections[i] = &transition->connections[i];
    obj->connections[i]->object = obj;
    obj->connections[i]->connected = NULL;
  }

  transition_update_data(transition);

  *handle1 = NULL;
  *handle2 = obj->handles[0];  

  return &transition->element.object;
}