Ejemplo n.º 1
0
int SDL_WidgetSetDims(SDL_Widget *widget,short x, short y, short w, short h)
{
    SDL_Window *window;

    if(widget == NULL)
        return 0;

    widget->Rect.x = x;
    widget->Rect.y = y;
    widget->Rect.w = w;
    widget->Rect.h = h;

    window = SDL_WindowManagerGetWindow(widget);

    if(window)
    {
        if(widget->Surface)
            SDL_FreeSurface(widget->Surface);
        
        widget->Surface = SDL_GetSubSurface(window->surface,widget);
    }

    SDL_SignalEmit(widget,"realize",NULL);
    return 1;

}
Ejemplo n.º 2
0
int SDL_ProgressBarEventHandler(SDL_Widget *widget, SDL_Event *event)
{

    SDL_ProgressBar *ProgressBar=(SDL_ProgressBar*)widget;

    switch(event->type)
    {
    case SDL_MOUSEBUTTONDOWN:
        if(SDL_WidgetIsInside(widget,event->motion.x,event->motion.y))
        {
            if(ProgressBar->Orientation == HORIZONTAL)
            {
                ProgressBar->State=PROGRESSBAR_DRAG;
                ProgressBar->CurrentLine = event->motion.x - widget->Rect.x;
                ProgressBar_CurrentValue(ProgressBar);
                SDL_WidgetRedrawEvent(widget);
            }
        }
        break;
    case SDL_MOUSEMOTION:
        if(ProgressBar->Orientation == HORIZONTAL)
        {
            if(ProgressBar->State==PROGRESSBAR_DRAG)
            {
                ProgressBar->CurrentLine = event->motion.x - widget->Rect.x;
                ProgressBar_CurrentValue(ProgressBar);
                SDL_WidgetRedrawEvent(widget);
            }
        }
        break;
    case SDL_MOUSEBUTTONUP:
        if(ProgressBar->State == PROGRESSBAR_DRAG ||
                SDL_WidgetIsInside(widget,event->motion.x,event->motion.y))
        {
            if(ProgressBar->Orientation == VERTICAL)
            {
                ProgressBar->CurrentLine = event->motion.y - widget->Rect.y;
                ProgressBar_CurrentValue(ProgressBar);
                SDL_WidgetRedrawEvent(widget);
            }
            else if(ProgressBar->Orientation == HORIZONTAL)
            {
                ProgressBar->CurrentLine = event->motion.x - widget->Rect.x;
                ProgressBar_CurrentValue(ProgressBar);
                SDL_WidgetRedrawEvent(widget);
            }
            ProgressBar->State=PROGRESSBAR_NORMAL;
            SDL_SignalEmit(widget,"clicked");
        }
        break;
    default:
        break;
    }
    return 0;

}
Ejemplo n.º 3
0
int SDL_WidgetEvent(SDL_Widget *widget,SDL_Event *event)
{
    switch(event->type)
    {
    case SDL_KEYDOWN:
        SDL_SignalEmit(widget,"keydown",event);
        break;
    case SDL_KEYUP:
        SDL_SignalEmit(widget,"keyup",event);
        break;
    case SDL_MOUSEMOTION:
        SDL_SignalEmit(widget,"mousemotion",event);
        break;
    case SDL_MOUSEBUTTONDOWN:
        SDL_SignalEmit(widget,"mousebuttondown",event);
        break;
    case SDL_MOUSEBUTTONUP:
        SDL_SignalEmit(widget,"mousebuttonup",event);
        break;
    case SDL_MOUSEDOUBLECLICK:
        SDL_SignalEmit(widget,"mousedoubleclick",event);
        break;
    default:
        break;
    }
    return 1;
}
Ejemplo n.º 4
0
static int SDL_ScrollbarPixeloffset(SDL_Scrollbar *Scrollbar)
{
    SDL_Widget *widget=(SDL_Widget*)Scrollbar;
    int retval = 0;

    if(Scrollbar->CurrentValue < Scrollbar->MinValue)
        Scrollbar->CurrentValue = Scrollbar->MinValue;

    if(Scrollbar->CurrentValue > Scrollbar->MaxValue)
        Scrollbar->CurrentValue = Scrollbar->MaxValue;


    if(Scrollbar->Orientation == VERTICAL)
    {
        int height =  widget->Rect.h * Scrollbar->NormalStepValue / Scrollbar->MaxValue;   /* Height is the button height */
            
        if(height < 6)
            height = 6;

        Scrollbar->PixelValue = Scrollbar->CurrentValue * (widget->Rect.h - height) / Scrollbar->MaxValue;
        

        if(Scrollbar->PixelValue >  widget->Rect.h - height)
            Scrollbar->PixelValue = widget->Rect.h - height;

        retval = 1;

    }
    else
    {
        int width =  widget->Rect.w * Scrollbar->NormalStepValue / Scrollbar->MaxValue;   /* Width is the button height */
            
        if(width < 6)
            width = 6;

        Scrollbar->PixelValue = Scrollbar->CurrentValue * (widget->Rect.w - width) / Scrollbar->MaxValue;
        

        if(Scrollbar->PixelValue >  widget->Rect.w - width)
            Scrollbar->PixelValue = widget->Rect.w - width;

        retval = 1;

    }
    SDL_SignalEmit(widget,"value-changed",widget);
    SDL_WidgetRedrawEvent(widget);
    return retval;
}
Ejemplo n.º 5
0
static void SDL_ButtonSignalMouseButtonDown(SDL_Object *object,void *signaldata,void *userdata)
{
    SDL_Button *Button = (SDL_Button*) object;
    SDL_Event  *event  = (SDL_Event *) signaldata;
    SDL_Widget *widget = (SDL_Widget*) object;

    if(SDL_WidgetIsInside(widget,event->motion.x,event->motion.y) &&
       event->button.button == 1)
    {
        Button->State = SDL_BUTTON_STATE_DOWN;
        SDL_SignalEmit(widget,"clicked",NULL);
        SDL_WidgetRedrawEvent(widget);
    }
    else
        Button->State = SDL_BUTTON_STATE_UP;        
}
Ejemplo n.º 6
0
//---------------------------------------------------------------
void processKeyInput(SDL_KeyboardEvent *key)
{
	extern SDL_Widget *button_ok;
	extern int answer;
	extern char has_char;
	extern fresh_display;
	
	printf("Scancode: 0x%02X\t", key->keysym.scancode);
	printf("Key Name: %s\n", SDL_GetKeyName(key->keysym.sym));
        printf( "key unicode: %d, %c\n", key->keysym.unicode, key->keysym.unicode);
        	
//	printf("button_ok: %x\n", button_ok);
//	printf("button_ensure: %x\n", button_ensure);
	has_char = SDL_GetKeyName(key->keysym.sym)[0];
	
	switch (key->keysym.sym) {
/*	case SDLK_ESCAPE:
		SDL_SignalEmit( button_leave, "clicked", NULL);
		break;
*/	case SDLK_RETURN:
		if (button_ok) {
			SDL_SignalEmit( button_ok, "clicked", NULL);
		}
		else if (button_ensure) {
			SDL_SignalEmit( button_ensure, "clicked", NULL);
		}
		else if (button_poweroff) {
			SDL_SignalEmit( button_poweroff, "clicked", NULL);
		}
		break;
	case SDLK_y:
		if (!answer) {
			SDL_SignalEmit( button_yes, "clicked", NULL);
		}
		break;
	case SDLK_n:
		if (!answer) {
			SDL_SignalEmit( button_no, "clicked", NULL);
		}
		break;
	case SDLK_r:
		if (button_retest) {
			SDL_SignalEmit( button_retest, "clicked", NULL );
		}
		break;
        case SDLK_ESCAPE:
                fresh_display = 0;
		break;
	default:
		break;
	}
}
Ejemplo n.º 7
0
void SDL_ScrollbarSetCurrentValue(SDL_Widget *widget,int CurrentValue)
{
    SDL_Scrollbar *Scrollbar=(SDL_Scrollbar*)widget;
    if(CurrentValue < 0)
        CurrentValue = 0;

    if(CurrentValue >= Scrollbar->MaxValue)
        CurrentValue = Scrollbar->MaxValue - 1;

    if(Scrollbar->CurrentValue != CurrentValue)
    {
        Scrollbar->CurrentValue = CurrentValue;
        Scrollbar->PixelValue   = Scrollbar->CurrentValue * widget->Rect.h / Scrollbar->MaxValue;

        SDL_SignalEmit(widget,"value-changed",widget);
        SDL_WidgetRedrawEvent(widget);
    }
}
Ejemplo n.º 8
0
int SDL_ScrollbarSetMaxValue(SDL_Widget *widget,int MaxValue)
{
    SDL_Scrollbar *Scrollbar=(SDL_Scrollbar*)widget;

    if(MaxValue == 0)
        return 0;

    if(MaxValue < Scrollbar->CurrentValue)
    {
        Scrollbar->CurrentValue = MaxValue;
        SDL_SignalEmit(widget,"value-changed",widget);
    }

    Scrollbar->MaxValue     = MaxValue;

    SDL_ScrollbarPixeloffset(Scrollbar);
    SDL_WidgetRedrawEvent(widget);
    return 1;
}
Ejemplo n.º 9
0
int go_thread(void *data)
{
	extern SDL_Window *window;
	extern int flow_count;
	extern lua_State *L;
	extern char *radios[];
	extern int ITEM_NUMBER;	
	extern SDL_Widget *button_ensure;
	extern int all_pass;
        
	int r;
	char buf[128] = {0};
	char run_file[1024] = {0};
	char log_file[1024] = {0};	
	char *path, *tmp;
	
	sprintf(buf, "%s test", radios[flow_count]);
	printItemHead(buf);
	
	// record log
	tmp = (char *)getTableElement(L, "self", "STAT");
	sprintf(buf, "%slog", tmp);
	path = (char *)getTableElement(L, "logs", buf);
	sprintf( log_file, "%s", path);
//	sprintf( buf, "%s test start", radios[flow_count]);	
//	recordlog( log_file, buf);

	
	path = (char *)getTableElement(L, "con", "PATH");
	sprintf( run_file, "%sfunction/%s/run.lua",path,radios[flow_count]);
        printf( "go-run.lua: %s\n", run_file);
        	
//	printf("Current dir: %s\n", getcwd(NULL, 0));
//	chdir(radios[flow_count]);
//	printf("Current dir: %s\n", getcwd(NULL, 0));
//	r = run(L, "run.lua"); 
	r = run(L, run_file); 
//	chdir("..");
//	printf("Current dir: %s\n", getcwd(NULL, 0));
	
	if (r == 0) {
		printPass("This item test PASS.");
		if (flow_count >= ITEM_NUMBER - 1) {
			all_pass = 1;
		}
		sprintf( buf, "%s test PASS!", radios[flow_count]);	
		
	}
	else {
		printFail("This item test FAIL.");
		sprintf( buf, "%s test FAILED!", radios[flow_count]);	

	}

	recordlog( log_file, buf);
	
	if ( r == 0 ) {
		drawButtonEnsure();
		SDL_Delay(500);
		flow_count++;
		refreshWin();
		if (getTableBooleanElement(L, "con", "AUTOTEST"))
			SDL_SignalEmit( button_ensure, "clicked", NULL);	
	}
	else {
		if (getTableBooleanElement(L, "con", "RETEST_IF_FAIL"))
			drawButtonRetest();
		if (getTableBooleanElement(L, "con", "GJ_IF_FAIL"))
			drawButtonPoweroff();
		else {
			drawButtonEnsure();
			flow_count++;
		}
		refreshWin();
	}


}
Ejemplo n.º 10
0
static void SDL_ScrollbarSignalMouseMotion(SDL_Object *object,void *signaldata,void *userdata)
{
    SDL_Scrollbar *Scrollbar=(SDL_Scrollbar*)object;    
    SDL_Widget *widget=(SDL_Widget*)object;
    SDL_Event *Event=(SDL_Event*)signaldata;


    if(Scrollbar->State == SCROLLBAR_DRAG)
    {
        if(Scrollbar->Orientation == VERTICAL)
        {
            int height;
            height = widget->Rect.h * Scrollbar->NormalStepValue / Scrollbar->MaxValue;   /* Height is the button height */
            if(height < 6)
                height = 6;

            Scrollbar->PixelValue   = Event->motion.y - widget->Rect.y - Scrollbar->offset;

            if(Scrollbar->PixelValue >  widget->Rect.h - height)
                Scrollbar->PixelValue = widget->Rect.h - height;
            if(Scrollbar->PixelValue < 0)
                Scrollbar->PixelValue = 0;


            Scrollbar->CurrentValue = ((Scrollbar->MaxValue - Scrollbar->MinValue)* Scrollbar->PixelValue) 
                / (widget->Rect.h - height);

            if(Scrollbar->CurrentValue < 0)
                Scrollbar->CurrentValue = 0;            
            
            SDL_SignalEmit(widget,"value-changed",widget);
            SDL_WidgetRedrawEvent(widget);
        }
        else
        {
            int width;
            width = widget->Rect.w  *Scrollbar->NormalStepValue / Scrollbar->MaxValue;   /* Height is the button height */

            if(width < 6)
                width = 6;
            
            Scrollbar->PixelValue   = Event->motion.x - widget->Rect.x - Scrollbar->offset;

            if(Scrollbar->PixelValue >  widget->Rect.w - width)
                Scrollbar->PixelValue = widget->Rect.w - width;
            
            if(Scrollbar->PixelValue < 0)
                Scrollbar->PixelValue = 0;
            
            Scrollbar->CurrentValue = ((Scrollbar->MaxValue - Scrollbar->MinValue) * Scrollbar->PixelValue) 
                / (widget->Rect.w - width);
            
            if(Scrollbar->CurrentValue < 0)
                Scrollbar->CurrentValue = 0;
            SDL_SignalEmit(widget,"value-changed",widget);
            SDL_WidgetRedrawEvent(widget);

        }
    }

}