Beispiel #1
0
static int explorer_cb(Quark *q, int etype, void *udata)
{
    ExplorerUI *eui = (ExplorerUI *) udata;
    TreeItem *item = quark_get_udata(q);
    TreeItem *parent_item;

    switch (etype) {
    case QUARK_ETYPE_DELETE:
        TreeDeleteItem(eui->tree, item);
        break;
    case QUARK_ETYPE_MODIFY:
        init_item(eui, item, q);
        break;
    case QUARK_ETYPE_NEW:
        create_hook(q, eui, NULL);
        break;
    case QUARK_ETYPE_MOVE:
        explorer_save_quark_state(eui);
        TreeDeleteItem(eui->tree, item);

        parent_item = quark_get_udata(quark_parent_get(q));
        item = TreeInsertItem(eui->tree, parent_item, q, quark_get_id(q));
        init_item(eui, item, q);
        quark_set_udata(q, item);
        storage_traverse(quark_get_children(q), create_children_hook, eui);

        explorer_restore_quark_state(eui);
        break;
    }

    TreeRefresh(eui->tree);

    return TRUE;
}
Beispiel #2
0
/*! \brief Register function with Scheme.
 *  \par Function Description
 *  Creates <B>subr</B> objects to make <B>g_rc_*</B> functions that are defined *  #g_rc.c, #g_keys.c and #g_funcs.c visible to Scheme.
 */
void g_register_funcs (void)
{
  struct gsubr_t *tmp = gschem_funcs;

  while (tmp->name != NULL) {
    scm_c_define_gsubr (tmp->name, tmp->req, tmp->opt, tmp->rst, tmp->fnc);
    tmp++;
  }

  /* Hook stuff */
  complex_place_list_changed_hook = create_hook ("complex-place-list-changed-hook", 1);
}