Ejemplo n.º 1
0
FtkDisplay* ftk_display_android_create(void)
{
	FtkDisplay* thiz = NULL;

	thiz = (FtkDisplay*)FTK_ZALLOC(sizeof(FtkDisplay) + sizeof(PrivInfo));
	if(thiz != NULL)
	{
		FtkColor bg;
		DECL_PRIV(thiz, priv);
		thiz->update   = ftk_display_android_update;
		thiz->width    = ftk_display_android_width;
		thiz->height   = ftk_display_android_height;
		thiz->snap     = ftk_display_android_snap;
		thiz->destroy  = ftk_display_android_destroy;

		bg.a = 0xff;
		bg.r = 0xff;
		bg.g = 0xff;
		bg.b = 0xff;
		priv->bitmap = ftk_bitmap_create(screen_width, screen_height, bg);

		ftk_wnd_manager_add_global_listener(ftk_default_wnd_manager(),
			(FtkListener)ftk_display_android_handle_event, thiz);

		Android_InitEGL();
	}

	return thiz;
}
Ejemplo n.º 2
0
static void ftk_init_panel(void)
{
	FtkGc gc;
	FtkWidget* item = NULL;	
	FtkWidget* panel = ftk_status_panel_create(FTK_STATUS_PANEL_HEIGHT);
	size_t width = ftk_widget_width(panel);

	ftk_set_status_panel(panel);
	quit_if_fail(ftk_default_status_panel(), "Init status panel failed.\n");

	memset(&gc, 0x00, sizeof(gc));
	gc.mask   = FTK_GC_BITMAP;
	gc.bitmap = ftk_theme_load_image(ftk_default_theme(), "status-bg"FTK_STOCK_IMG_SUFFIX);
	ftk_widget_set_gc(panel, FTK_WIDGET_NORMAL, &gc);
	ftk_widget_set_gc(panel, FTK_WIDGET_ACTIVE, &gc);
	ftk_widget_set_gc(panel, FTK_WIDGET_FOCUSED, &gc);
	ftk_gc_reset(&gc);
	
	item = ftk_status_item_create(panel, -100, 32);
	ftk_widget_set_id(item, IDC_CLOSE_ITEM);
	gc.bitmap = ftk_theme_load_image(ftk_default_theme(), "close-32"FTK_STOCK_IMG_SUFFIX);
	if(gc.bitmap != NULL)
	{
		gc.mask = FTK_GC_BITMAP;
		ftk_widget_set_gc(item, FTK_WIDGET_NORMAL, &gc);
		ftk_widget_set_gc(item, FTK_WIDGET_FOCUSED, &gc);
		ftk_gc_reset(&gc);
		gc.mask = FTK_GC_BITMAP;
		gc.bitmap = ftk_theme_load_image(ftk_default_theme(), "close-pressed-32"FTK_STOCK_IMG_SUFFIX);
		ftk_widget_set_gc(item, FTK_WIDGET_ACTIVE, &gc);
		ftk_gc_reset(&gc);
	}
	ftk_status_item_set_clicked_listener(item, button_close_top_clicked, NULL);

	gc.bitmap = ftk_theme_load_image(ftk_default_theme(), "flag-32"FTK_STOCK_IMG_SUFFIX);
	item = ftk_status_item_create(panel, 1, gc.bitmap ? min(ftk_bitmap_width(gc.bitmap), 100) : 32);
	ftk_widget_set_id(item, IDC_ICON_ITEM);
	if(gc.bitmap != NULL)
	{
		gc.mask = FTK_GC_BITMAP;
		ftk_widget_set_gc(item, FTK_WIDGET_NORMAL, &gc);
		ftk_widget_set_gc(item, FTK_WIDGET_ACTIVE, &gc);
		ftk_widget_set_gc(item, FTK_WIDGET_FOCUSED, &gc);
		ftk_gc_reset(&gc);
	}
	ftk_widget_show(item, 1);

	item = ftk_status_item_create(panel, 2, width/2);
	ftk_widget_set_id(item, IDC_TITLE_ITEM);
	ftk_widget_show(item, 1);

	ftk_wnd_manager_add_global_listener(ftk_default_wnd_manager(), on_wnd_manager_global_event, NULL);
	ftk_widget_show(panel, 1);
	
	return;
}
Ejemplo n.º 3
0
static Ret ftk_enable_curosr(void)
{
	FtkSprite* sprite = ftk_sprite_create();
	FtkBitmap* icon = ftk_theme_load_image(ftk_default_theme(), "cursor"FTK_STOCK_IMG_SUFFIX);
	ftk_sprite_set_icon(sprite, icon);
	ftk_sprite_show(sprite, 1);
	ftk_wnd_manager_add_global_listener(ftk_default_wnd_manager(), ftk_move_cursor, sprite);

	return RET_OK;
}
Ejemplo n.º 4
0
static Ret  ftk_input_method_win32_activate(FtkInputMethod* thiz)
{
	ftk_input_method_win32_init(thiz);

	ftk_wnd_manager_add_global_listener(ftk_default_wnd_manager(),
		(FtkListener)ftk_input_method_win32_handle_event, thiz);

	ftk_logd("%s\n", __func__);

	return RET_OK;
}
Ejemplo n.º 5
0
static Ret  ftk_input_method_hw_activate(FtkInputMethod* thiz)
{
	DECL_PRIV(thiz, priv);

	ftk_input_method_hw_init(thiz);
	ftk_input_method_hw_reset(thiz);
	ftk_hand_write_engine_activate(priv->engine);

	ftk_wnd_manager_add_global_listener(ftk_default_wnd_manager(),
		(FtkListener)ftk_input_method_hw_handle_event, thiz);

	ftk_logd("%s\n", __func__);

	return RET_OK;
}
Ejemplo n.º 6
0
/*
 * guest the mouse event is a click event or handwrite stroke.
 * click: during specified time, the mouse don't move out of specified range.
 */
static Ret  ftk_input_method_hw_click_check(FtkInputMethod* thiz)
{
	int i = 0;
	DECL_PRIV(thiz, priv);

	if(priv->points_nr < 3)
	{
		priv->hand_write_state = FTK_HW_NONE;
	}
	else
	{
		priv->hand_write_state = FTK_HW_NONE;
		for(i = 1; i < priv->points_nr; i++)
		{
			if(FTK_ABS(priv->points[0].x - priv->points[i].x) > FTK_HW_CLICK_RANGE
				|| FTK_ABS(priv->points[0].y - priv->points[i].y) > FTK_HW_CLICK_RANGE)
			{
				priv->hand_write_state = FTK_HW_WRITING;
				break;
			}
		}
	}

	/*It is click event, re-dispatch the events.*/
	if(priv->hand_write_state == FTK_HW_NONE)
	{
		FtkEvent event = {0};
		int points_nr = priv->points_nr;
		
		ftk_wnd_manager_remove_global_listener(ftk_default_wnd_manager(), 
			(FtkListener)ftk_input_method_hw_handle_event, thiz);

		event.type = FTK_EVT_MOUSE_DOWN;
		event.u.mouse.x = priv->points[0].x;
		event.u.mouse.y = priv->points[0].y;
		ftk_wnd_manager_dispatch_event(ftk_default_wnd_manager(), &event);
		
		for(i = 1; i < (points_nr - 1); i++)
		{
			event.type = FTK_EVT_MOUSE_MOVE;
			event.u.mouse.x = priv->points[i].x;
			event.u.mouse.y = priv->points[i].y;
			ftk_wnd_manager_dispatch_event(ftk_default_wnd_manager(), &event);
		}
		
		if(points_nr > 1)
		{
			event.type = priv->pen_down ? FTK_EVT_MOUSE_MOVE : FTK_EVT_MOUSE_UP;
			event.u.mouse.x = priv->points[i].x;
			event.u.mouse.y = priv->points[i].y;
			ftk_wnd_manager_dispatch_event(ftk_default_wnd_manager(), &event);
		}
		ftk_wnd_manager_add_global_listener(ftk_default_wnd_manager(), 
			(FtkListener)ftk_input_method_hw_handle_event, thiz);

		ftk_input_method_hw_end(thiz);
		ftk_input_method_hw_reset(thiz);
		ftk_logd("%s: it is click event.\n", __func__);
	}
	else
	{
		ftk_stroke_painter_show(priv->painter, 1);
		ftk_stroke_painter_update(priv->painter, NULL);
		ftk_logd("%s: it is handwrite stroke\n", __func__);
	}

	return RET_REMOVE;
}