예제 #1
0
static int
create_test(Ewl_Container *box)
{
        Ewl_Widget *hseeker, *vseeker;

        hseeker = ewl_hseeker_new();
        ewl_object_position_request(EWL_OBJECT(hseeker), 30, 0);
        ewl_callback_append(hseeker, EWL_CALLBACK_VALUE_CHANGED,
                                                cb_print_value, NULL);
        ewl_container_child_append(box, hseeker);
        ewl_widget_show(hseeker);

        vseeker = ewl_vseeker_new();
        ewl_object_position_request(EWL_OBJECT(vseeker), 0, 30);
        ewl_callback_append(vseeker, EWL_CALLBACK_VALUE_CHANGED,
                                                cb_print_value, NULL);
        ewl_container_child_append(box, vseeker);
        ewl_widget_show(vseeker);

        return 1;
}
예제 #2
0
파일: madpdf.c 프로젝트: quickhand/madpdf
void resize_and_rescale(double scale)
{
    int docwidth,docheight;
    double docscale;
    int sp_inner;
    double ltrimpct=0.0,rtrimpct=0.0;
    
    //ewl_object_maximum_h_set(EWL_OBJECT(pdfwidget),99999);
    //ewl_object_minimum_h_set(EWL_OBJECT(pdfwidget),0);
    sp_inner=CURRENT_W(scrollpane)-INSET_HORIZONTAL(scrollpane)-PADDING_HORIZONTAL(scrollpane);
    //if(EWL_SCROLLPANE(scrollpane)->vflag)
    //    sp_inner-=CURRENT_W(EWL_OBJECT(EWL_SCROLLPANE(scrollpane)->vscrollbar));
        
    //ewl_pdf_size_get(EWL_PDF(pdfwidget),&docwidth,&docheight);
    epdf_page_size_get (EWL_PDF(pdfwidget)->pdf_page,&docwidth,&docheight);
    if(fitmode==0)
        docscale=((double)sp_inner)/((double)docwidth)*scale;
    else if(fitmode==1)
    {
        ltrimpct=((double)get_settings()->ltrimpad)/((double)docwidth);
        rtrimpct=((double)get_settings()->rtrimpad)/((double)docwidth);
        docscale=((double)sp_inner)/((1.0-leftmarge+ltrimpct-rightmarge+rtrimpct)*((double)docwidth))*scale;
        
    }
    ewl_pdf_scale_set(EWL_PDF(pdfwidget),docscale,docscale);
    //ewl_object_custom_w_set(EWL_OBJECT(pdfwidget),floor(((double)sp_inner)*scale));
    
    //ewl_object_custom_w_set(EWL_OBJECT(pdfwidget),floor(((double)sp_inner)*scale));
    //ewl_object_custom_h_set(EWL_OBJECT(pdfwidget),floor(((double)docheight)/((double)docwidth)*((double)sp_inner)*scale));
    ewl_object_custom_w_set(EWL_OBJECT(pdfwidget),floor(((double)docwidth)*docscale));
    ewl_object_custom_h_set(EWL_OBJECT(pdfwidget),floor(((double)docheight)*docscale));
    //ewl_object_position_request(EWL_OBJECT(pdfwidget),0,0);
    ewl_widget_configure(pdfwidget);
    
    //ewl_object_custom_w_set(EWL_OBJECT(trimpane),floor(((double)docwidth)*docscale));
    //ewl_object_custom_h_set(EWL_OBJECT(trimpane),floor(((double)docheight)*docscale));
    ewl_object_custom_w_set(EWL_OBJECT(trimpane),floor(((double)sp_inner)*scale));
    ewl_object_custom_h_set(EWL_OBJECT(trimpane),floor(((double)docheight)*docscale));
    ewl_object_position_request(EWL_OBJECT(trimpane),0,0);
    

    //ewl_object_place(EWL_OBJECT(pdfwidget),0,0,floor(((double)docwidth)*docscale),floor(((double)docheight)*docscale));
    ewl_widget_configure(trimpane);
    ewl_widget_configure(scrollpane);
    if(fitmode==0)
        ewl_scrollpane_hscrollbar_value_set(EWL_SCROLLPANE(trimpane),0.0);
    else if(fitmode==1)
        ewl_scrollpane_hscrollbar_value_set(EWL_SCROLLPANE(trimpane),(leftmarge-ltrimpct)/(leftmarge-ltrimpct+rightmarge-rtrimpct));
}
예제 #3
0
/**
 * popup menu for managing files in the project
 */
static EWL_CALLBACK_DEFN(project_file_menu)
{
	Ewl_Widget *item;
	Ewl_Event_Mouse_Up *ev = ev_data;

	if( file_menu ) {
		ewl_widget_destroy(file_menu);
		file_menu = NULL;
	} else if( ev->button == 3 ) {
		ewl_window_raise(EWL_WINDOW(project_win));

		file_menu = ewl_imenu_new(NULL, "File Options");
		ewl_object_position_request(EWL_OBJECT(file_menu), ev->x, ev->y);
		ewl_object_fill_policy_set(EWL_OBJECT(file_menu), EWL_FLAG_FILL_NONE);
		ewl_container_child_append(EWL_CONTAINER(project_win), file_menu);
		ewl_callback_append(file_menu, EWL_CALLBACK_CONFIGURE,
												project_file_menu_configure, NULL);
		ewl_callback_call(file_menu, EWL_CALLBACK_SELECT);
		ewl_widget_show(file_menu);

		item = ewl_menu_item_new(NULL, "Save");
		/* HACK FOR NON-STRING DATA HASHES */
		item->data = ecore_hash_new(ecore_str_hash, ecore_str_compare);
		ewl_widget_data_set(item, "Action", (void *) EWLER_FILE_SAVE);
		ewl_callback_append(item, EWL_CALLBACK_SELECT,
												project_file_menu_cb, user_data);
		ewl_container_child_append(EWL_CONTAINER(file_menu), item);
		ewl_widget_show(item);

		item = ewl_menu_item_new(NULL, "Settings...");
		/* HACK FOR NON-STRING DATA HASHES */
		item->data = ecore_hash_new(ecore_str_hash, ecore_str_compare);
		ewl_widget_data_set(item, "Action", (void *) EWLER_FILE_SETTINGS);
		ewl_callback_append(item, EWL_CALLBACK_SELECT,
												project_file_menu_cb, user_data);
		ewl_container_child_append(EWL_CONTAINER(file_menu), item);
		ewl_widget_show(item);

		item = ewl_menu_item_new(NULL, "Delete");
		/* HACK FOR NON-STRING DATA HASHES */
		item->data = ecore_hash_new(ecore_str_hash, ecore_str_compare);
		ewl_widget_data_set(item, "Action", (void *) EWLER_FILE_DELETE);
		ewl_callback_append(item, EWL_CALLBACK_SELECT,
												project_file_menu_cb, user_data);
		ewl_container_child_append(EWL_CONTAINER(file_menu), item);
		ewl_widget_show(item);
	}
}
예제 #4
0
static EWL_CALLBACK_DEFN(fg_mouse_move)
{
	Ewler_Widget *ewler_w = user_data;
	Ewl_Embed *embed;
	Ewl_Event_Mouse_Move *ev = ev_data;

	if( ewler_w->mouse.state & EWLER_WIDGET_MOUSE_DOWN &&
			ewler_w->mouse.button == 1 ) {
		int	dx = ev->x - ewler_w->mouse.state_x;
		int	dy = ev->y - ewler_w->mouse.state_y;
		
		if( ewler_w->source ) {
			int *x, *y, *u, *v;

			x = &ewler_w->corners.x;
			y = &ewler_w->corners.y;
			u = &ewler_w->corners.u;
			v = &ewler_w->corners.v;

			if( strstr( ewler_w->source, "left" ) )
				*x += dx;
			if( strstr( ewler_w->source, "right" ) )
				*u += dx;
			if( strstr( ewler_w->source, "top" ) ) {
				if( ev->modifiers & EWL_KEY_MODIFIER_CTRL )
					*y = *v - *u + *x;
				else
					*y += dy;
			}
			if( strstr( ewler_w->source, "bottom" ) ) {
				if( ev->modifiers & EWL_KEY_MODIFIER_CTRL )
					*v = *y + *u - *x;
				else
					*v += dy;
			}

			if( *u < *x )
				*u = *x;
			if( *v < *y )
				*v = *y;

			ewl_object_preferred_inner_size_set(EWL_OBJECT(ewler_w->fg),
																					*u - *x, *v - *y);
			ewl_object_minimum_size_set(EWL_OBJECT(ewler_w->fg), *u - *x, *v - *y);
			ewl_object_geometry_request(EWL_OBJECT(ewler_w->fg),
																	*x, *y, *u - *x, *v - *y);
			ewl_object_preferred_inner_size_set(EWL_OBJECT(ewler_w->bg),
																					*u - *x, *v - *y);
			ewl_object_minimum_size_set(EWL_OBJECT(ewler_w->fg), *u - *x, *v - *y);
			ewl_object_geometry_request(EWL_OBJECT(ewler_w->fg),
																	*x, *y, *u - *x, *v - *y);
			ewl_object_preferred_inner_size_set(EWL_OBJECT(ewler_w->w),
																					*u - *x, *v - *y);
			ewl_object_minimum_size_set(EWL_OBJECT(ewler_w->w), *u - *x, *v - *y);
			ewl_object_geometry_request(EWL_OBJECT(ewler_w->w),
																	*x, *y, *u - *x, *v - *y);

			ewler_w->mouse.state_x = ev->x;
			ewler_w->mouse.state_y = ev->y;
		} else {
			Ecore_List *selected;

			selected = form_selected();

			if( selected ) {
				ecore_list_first_goto(selected);

				while( (ewler_w = ecore_list_next(selected)) ) {
					ewl_object_position_request(EWL_OBJECT(ewler_w->bg),
																			CURRENT_X(ewler_w->bg) + dx,
																			CURRENT_Y(ewler_w->bg) + dy);
					ewl_object_position_request(EWL_OBJECT(ewler_w->fg),
																			CURRENT_X(ewler_w->fg) + dx,
																			CURRENT_Y(ewler_w->fg) + dy);
					ewl_object_position_request(EWL_OBJECT(ewler_w->w),
																			CURRENT_X(ewler_w->w) + dx,
																			CURRENT_Y(ewler_w->w) + dy);

					ewler_w->mouse.state_x = ev->x;
					ewler_w->mouse.state_y = ev->y;
				}
			}
		}
	}

	embed = ewl_embed_widget_find(w);
	if( embed )
		evas_event_feed_mouse_move(embed->evas, ev->x, ev->y, 0, NULL);
}
예제 #5
0
파일: madpdf.c 프로젝트: avm/madpdf
void resize_and_rescale(double scale)
{
    int docwidth,docheight;
    double docscale;
    double ltrimpct=0.0,rtrimpct=0.0;
    
    int sp_inner_w = CURRENT_W(scrollpane) - INSET_HORIZONTAL(scrollpane) -
        PADDING_HORIZONTAL(scrollpane);
    int sp_inner_h = CURRENT_H(scrollpane) - INSET_VERTICAL(scrollpane) -
        PADDING_VERTICAL(scrollpane);
        
    hide_hint(NULL);

    page_size_get(&docwidth, &docheight);

    int orientation_horizontal;
    switch(epdf_page_orientation_get(EWL_PDF(pdfwidget)->pdf_page)) {
        case EPDF_PAGE_ORIENTATION_PORTRAIT:
        case EPDF_PAGE_ORIENTATION_UPSIDEDOWN:
            orientation_horizontal = 0;
            break;
        case EPDF_PAGE_ORIENTATION_LANDSCAPE:
        case EPDF_PAGE_ORIENTATION_SEASCAPE:
            orientation_horizontal = 1;
    }

    if(fitmode==0) {
        if(orientation_horizontal)
            docscale = ((double)sp_inner_h)/((double)docheight)*scale;
        else // orientation vertical
            docscale = ((double)sp_inner_w)/((double)docwidth)*scale;
    }
    else if(fitmode==1)
    {
        ltrimpct=((double)get_settings()->ltrimpad)/((double)docwidth);
        rtrimpct=((double)get_settings()->rtrimpad)/((double)docwidth);
        docscale=((double)sp_inner_w)/((1.0-leftmarge+ltrimpct-rightmarge+rtrimpct)*((double)docwidth))*scale;
        
    }
    ewl_pdf_scale_set(EWL_PDF(pdfwidget),docscale,docscale);
    
    ewl_object_custom_w_set(EWL_OBJECT(pdfwidget),floor(((double)docwidth)*docscale));
    ewl_object_custom_h_set(EWL_OBJECT(pdfwidget),floor(((double)docheight)*docscale));
    ewl_widget_configure(pdfwidget);
    
    if(orientation_horizontal) {
        ewl_object_custom_w_set(EWL_OBJECT(trimpane),
                floor(((double)docwidth)*docscale));
        ewl_object_custom_h_set(EWL_OBJECT(trimpane),
                floor(((double)sp_inner_h)*scale));
    } else {
        ewl_object_custom_w_set(EWL_OBJECT(trimpane),
                floor(((double)sp_inner_w)*scale));
        ewl_object_custom_h_set(EWL_OBJECT(trimpane),
                floor(((double)docheight)*docscale));
    }
    ewl_object_position_request(EWL_OBJECT(trimpane),0,0);
    

    ewl_widget_configure(trimpane);
    ewl_widget_configure(scrollpane);
    if(fitmode==0)
        ewl_scrollpane_hscrollbar_value_set(EWL_SCROLLPANE(trimpane),0.0);
    else if(fitmode==1)
        ewl_scrollpane_hscrollbar_value_set(EWL_SCROLLPANE(trimpane),(leftmarge-ltrimpct)/(leftmarge-ltrimpct+rightmarge-rtrimpct));
}