Exemplo n.º 1
0
Arquivo: menu.c Projeto: Cougar/pwm
void menu_motion(WThing *thing, XMotionEvent *ev, int dx, int dy,
				 WFunction *func, WFuncArg arg)
{
	WMenu *menu;
	int ret;
	
	if(!WTHING_IS(thing, WTHING_MENU))
		return;
	
	menu=(WMenu*)thing;
	
	if(!menu_select_at(menu, ev->x_root, ev->y_root)){
		thing=find_thing(ev->subwindow);
	
		if(thing==(WThing*)menu || thing==NULL ||
		   !WTHING_IS(thing, WTHING_MENU)){
			end_scroll();
			return;
		}
			
		wglobal.grab_holder=thing;
		menu=(WMenu*)thing;
		
		if(!menu_select_at(menu, ev->x_root, ev->y_root)){
			end_scroll();
			return;
		}
	}
	
	if(test_scroll(menu, ev->x_root, ev->y_root))
		start_scroll(menu);
}
Exemplo n.º 2
0
void qm_Scroller::leaveEvent ( QEvent * event )
{
    if (!b_scrolling || b_pause)
        return;
    b_fast = false;
    start_scroll();
    event->accept();
}
Exemplo n.º 3
0
void qm_Scroller::enterEvent ( QEvent * event )
{
    if (!b_scrolling || b_pause)
        return;
    b_fast = true;
    start_scroll();
    event->accept();
}
Exemplo n.º 4
0
void qm_Scroller::render()
{
    virtual_label->setText(new_string);
    W_text = (virtual_label->minimumSizeHint()).width ();
    virtual_label->setGeometry(QRect(0, 0, W_text, H_display));
    
    QPixmap qpx = virtual_label->grab();
    QImg_fulltext = qpx.toImage();
    
    if (QImg_fulltext.width() >  W_display)
        start_scroll();
    else
        setPixmap(qpx);
}
Exemplo n.º 5
0
Arquivo: menu.c Projeto: Cougar/pwm
static void scrollfunc()
{
	WMenu *menu=scrollmenu;
	int dx=scrollhoriz*SCROLL_AMOUNT;
	int dy=scrollvert*SCROLL_AMOUNT;
	Window win;
	
	if(menu->x+dx>0 && scrollhoriz==1)
		dx=-menu->x;
	else if(menu->x+menu->w+dx<SCREEN->width-SCROLL_BORDER && scrollhoriz==-1)
		dx=-(menu->x+menu->w-SCREEN->width+SCROLL_BORDER);

	if(menu->y+dy>0 && scrollvert==1)
		dy=-menu->y;
	else if(menu->y+menu->h+dy<SCREEN->height-SCROLL_BORDER && scrollvert==-1)
		dy=-(menu->y+menu->h-SCREEN->height+SCROLL_BORDER);

	move_menu(scrolltop, dx, dy);
	
	/* pointer root -> dx, dy */
	get_pointer_rootpos(&dx, &dy);

	if(menu_select_at(menu, dx, dy)){
		if(test_scroll(menu, dx, dy))
			return;
	}else if(test_scroll(menu, dx, dy)){
		return;
	}else{
		if(!find_window_at(dx, dy, &win))
			goto end;
		
		menu=(WMenu*)find_thing_t(win, WTHING_MENU);
		
		if(menu==NULL)
			goto end;
		
		if(test_scroll(menu, dx, dy))
			start_scroll(menu);
	}

end:
	end_scroll();
}