Esempio n. 1
0
/**
 * allocate new element
 */
NiftyconfLed *led_register_to_gui(Led * l,
                                  NiftyconfChain * chain, LedCount pos)
{
        NiftyconfLed *n;
        if(!(n = calloc(1, sizeof(NiftyconfLed))))
        {
                g_error("calloc: %s", strerror(errno));
                return NULL;
        }

        /* save descriptor */
        n->l = l;
        n->chain = chain;
        n->pos = pos;

        /* allocate renderer */
        if(!(n->renderer = renderer_led_new(n)))
        {
                g_error("Failed to allocate renderer for Led");
                led_unregister_from_gui(n);
                return NULL;
        }

        /* initially draw led */
        renderer_led_damage(n);

        /* register descriptor as niftyled privdata */
        led_set_privdata(l, n);

        return n;
}
Esempio n. 2
0
/** function to process an element that is currently selected */
static void _element_selected(
        GtkTreeModel * m,
        GtkTreePath * p,
        GtkTreeIter * i,
        gpointer data)
{
        /* get element represented by this row */
        gpointer *element;
        LedCount n;
        gtk_tree_model_get(m, i, C_CHAIN_LED, &n, C_CHAIN_ELEMENT, &element,
                           -1);
        NiftyconfLed *l = (NiftyconfLed *) element;

        led_set_highlighted(l, true);
        renderer_led_damage(l);
}
Esempio n. 3
0
/** build list of Leds */
static void _build(
        NiftyconfChain * c)
{
        /* rebuild */
        LedCount i;
        for(i = 0; i < led_chain_get_ledcount(chain_niftyled(c)); i++)
        {
                Led *led = led_chain_get_nth(chain_niftyled(c), i);
                GtkTreeIter iter;
                gtk_list_store_append(GTK_LIST_STORE(UI("liststore")), &iter);
                gtk_list_store_set(GTK_LIST_STORE(UI("liststore")), &iter,
                                   C_CHAIN_LED, i,
                                   C_CHAIN_ELEMENT, led_get_privdata(led),
                                   -1);

                led_set_highlighted(led_get_privdata(led), false);
                renderer_led_damage(led_get_privdata(led));
        }

        gtk_widget_show(GTK_WIDGET(UI("treeview")));
}
Esempio n. 4
0
/** deselect all Leds */
static void _foreach_unhighlight(
        NiftyconfLed * led)
{
        led_set_highlighted(led, false);
        renderer_led_damage(led);
}