Exemple #1
0
struct guiObject *GUI_GetNextSelectable(struct guiObject *origObj)
{
    struct guiObject *obj = origObj, *foundObj = NULL;

    if (! objHEAD)
        return NULL;
    struct guiObject *modalObj = GUI_IsModal();
    if (obj && OBJ_IS_SCROLLABLE(obj)) {
        //The current selected object is scrollable
        guiScrollable_t *scroll = GUI_FindScrollableParent(obj);
        obj = GUI_ScrollableGetNextSelectable(scroll, obj);
        if (obj)
            return obj;
        obj = (guiObject_t *)scroll; 
    }
    obj = obj ? obj->next : modalObj ? modalObj : objHEAD;
    while(obj) {
        if (! OBJ_IS_HIDDEN(obj) && OBJ_IS_SELECTABLE(obj))
        {
            if(obj->Type == Scrollable) {
                foundObj = GUI_ScrollableGetNextSelectable((guiScrollable_t *)obj, NULL);
            } else {
                foundObj = obj;
            }
            break;
        }
        obj = obj->next;
    }
    if (! foundObj && origObj) {
        return GUI_GetNextSelectable(NULL);
    }
    return foundObj;
}
Exemple #2
0
static void notify_cb(guiObject_t * obj)
{
    if(obj && mp->cur_template == MIXERTEMPLATE_EXPO_DR && OBJ_IS_SCROLLABLE(obj)) {
        /* We exploit the fact that each row has only one selecteable object */
        int row_offset = GUI_ScrollableGetObjRowOffset(&gui->scrollable, obj);
        int idx = (row_offset >> 8) + (row_offset & 0xff);
        if(idx >= EXPO_SWITCH1 && idx <= EXPO_SCALE1) {
            if(mp->cur_mixer != &mp->mixer[1]) {
                sync_mixers();
                mp->cur_mixer = &mp->mixer[1];
                GUI_Redraw(&gui->graph);
            }
        } else if(idx >= EXPO_SWITCH2 && idx <= EXPO_SCALE2) {
            if(mp->cur_mixer != &mp->mixer[2]) {
                sync_mixers();
                mp->cur_mixer = &mp->mixer[2];
                GUI_Redraw(&gui->graph);
            }
        } else {
            if(mp->cur_mixer != &mp->mixer[0]) {
                mp->cur_mixer = &mp->mixer[0];
                GUI_Redraw(&gui->graph);
            }
        }
    }
Exemple #3
0
struct guiObject *GUI_GetPrevSelectable(struct guiObject *origObj)
{
    struct guiObject *obj, *objLast = NULL;
    struct guiObject *modalObj;
    if (origObj && OBJ_IS_SCROLLABLE(origObj)) {
        //The current selected object is scrollable
        guiScrollable_t *scroll = GUI_FindScrollableParent(origObj);
        origObj = GUI_ScrollableGetPrevSelectable(scroll, origObj);
        if (origObj)
            return origObj;
        origObj = (guiObject_t *)scroll; 
    }
    modalObj = GUI_IsModal();
    obj = modalObj ? modalObj : objHEAD;
    while(obj) {
        if (obj == origObj)
            break;
        if (! OBJ_IS_HIDDEN(obj) && OBJ_IS_SELECTABLE(obj)) {
            objLast = obj;
        }
        obj = obj->next;
    }
    if (obj && ! objLast) {
        obj = obj->next;
        while(obj) {
            if (obj == origObj)
                break;
            if (! OBJ_IS_HIDDEN(obj) && OBJ_IS_SELECTABLE(obj)) {
                objLast = obj;
            }
            obj = obj->next;
        }
    }
    if (! objLast)
        objLast = origObj;
    if (objLast && objLast->Type == Scrollable)
        return GUI_ScrollableGetPrevSelectable((guiScrollable_t *)objLast, NULL);
    return objLast;
}