示例#1
0
static GScrollBar *_GScrollBarCreate(GScrollBar *gsb, struct gwindow *base, GGadgetData *gd,void *data, GBox *def) {

    if ( !gscrollbar_inited )
	GScrollBarInit();
    gsb->g.funcs = &gscrollbar_funcs;
    gd->flags |= gg_pos_use0;
    _GGadget_Create(&gsb->g,base,gd,data,def);

    gsb->g.takes_input = true;
    if ( gd->flags & gg_sb_vert )
	gsb->g.vert = true;
    gsb->thumbbox = &thumb_box;

    GScrollBarFit(gsb);
    if ( gd->u.sbinit!=NULL )
	GScrollBarSetMustShow(&gsb->g,
		gd->u.sbinit->sb_min,
		gd->u.sbinit->sb_max,
		gd->u.sbinit->sb_pagesize,
		gd->u.sbinit->sb_pos);

    if ( gd->flags & gg_group_end )
	_GGadgetCloseGroup(&gsb->g);
return( gsb );
}
示例#2
0
GGadget *GLineCreate(struct gwindow *base, GGadgetData *gd,void *data) {
    GGadget *g = calloc(1,sizeof(GLine));

    if ( !ggroup_inited )
	_GGroup_Init();
    g->funcs = &gline_funcs;
    _GGadget_Create(g,base,gd,data,&_GGroup_LineBox);
    if ( gd->flags & gg_line_vert )
	g->vert = true;

    GLineFit(g);
    _GGadget_FinalPosition(g,base,gd);
return( g );
}
示例#3
0
GGadget *GGroupCreate(struct gwindow *base, GGadgetData *gd,void *data) {
    GGadget *g = calloc(1,sizeof(GGroup));

    if ( !ggroup_inited )
	_GGroup_Init();
    g->funcs = &ggroup_funcs;
    _GGadget_Create(g,base,gd,data,&group_box);

    if ( (gd->flags&gg_group_prevlabel) && g->prev!=NULL )
	g->prevlabel = true;
    if ( g->prevlabel && gd->pos.x==0 )
	g->r.x = g->prev->r.x - GDrawPointsToPixels(base,_GGadget_Skip);
    GGroupFit(g);
    _GGadget_FinalPosition(g,base,gd);
return( g );
}