Example #1
0
static void ResizeGadget( p_gadget gadget, ORD length, ORD anchor,
                          bool set_range )
{
    GUIInitGadget( gadget, gadget->start, length, anchor );
    if( !set_range ) {
        gadget->total_size = length - 1 + gadget->pos;
    }
    GUISetShowGadget( gadget, TRUE, TRUE, gadget->pos );
}
Example #2
0
static void InitScroll( p_gadget gadget, int pos )
{
    if( pos < 0 ) {
        return;
    }
    if( pos > ( gadget->total_size - gadget->page_size ) ) {
        pos = gadget->total_size - gadget->page_size;
    }
    if( pos < 0 ) {
        pos = 0;
    }
    GUISetShowGadget( gadget, true, true, pos );
}
Example #3
0
void GUIScroll( int change, p_gadget gadget )
{
    gui_window  *wnd;
    bool        range_set;
    int         pos;

    wnd = (gui_window *)gadget->win;

    if( ( wnd != NULL ) && ( gadget != NULL )  ) {
        if( ( gadget->pos + change ) < 0 ) {
            pos = 0;
        } else {
            pos = gadget->pos + change;
        }
        if( pos != gadget->pos ) {
            if( gadget->dir == VERTICAL ) {
                range_set = GUI_VRANGE_SET( wnd );
            } else {
                range_set = GUI_HRANGE_SET( wnd );
            }
            if( range_set ) {
                if( ( gadget->total_size != 0 ) &&
                    ( pos > ( gadget->total_size - gadget->page_size ) ) ) {
                    pos = gadget->total_size - gadget->page_size;
                    if( pos < 0 ) {
                        pos = 0;
                    }
                    change = pos - gadget->pos;
                }
            } else {
                gadget->total_size = gadget->page_size + pos;
            }
            GUISetShowGadget( gadget, true, true, pos );
            if( gadget->dir == VERTICAL ) {
                GUIDoVScroll( wnd, change );
            } else {
                GUIDoHScroll( wnd, change );
            }
        }
    }
}