Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_evas Modified Files: Tag: SPLIT Ecore_Evas.h ecore_evas.c Log Message: more work on ecore =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/Ecore_Evas.h,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -u -3 -r1.1.2.6 -r1.1.2.7 --- Ecore_Evas.h 8 Feb 2003 05:05:03 -0000 1.1.2.6 +++ Ecore_Evas.h 8 Feb 2003 07:03:41 -0000 1.1.2.7 @@ -48,24 +48,24 @@ const char *ecore_evas_title_get(Ecore_Evas *ee); void ecore_evas_name_class_set(Ecore_Evas *ee, const char *n, const char *c); void ecore_evas_name_class_get(Ecore_Evas *ee, const char **n, const char **c); - void ecore_evas_size_min_set(Ecore_Evas *ee, int w, int h); - void ecore_evas_size_min_get(Ecore_Evas *ee, int *w, int *h); - void ecore_evas_size_max_set(Ecore_Evas *ee, int w, int h); - void ecore_evas_size_max_get(Ecore_Evas *ee, int *w, int *h); - void ecore_evas_size_base_set(Ecore_Evas *ee, int w, int h); - void ecore_evas_size_base_get(Ecore_Evas *ee, int *w, int *h); - void ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h); - void ecore_evas_size_step_get(Ecore_Evas *ee, int *w, int *h); - void ecore_evas_cursor_set(Ecore_Evas *ee, const char *file, int layer, int hot_x, int hot_y); - void ecore_evas_cursor_get(Ecore_Evas *ee, char **file, int *layer, int *hot_x, int *hot_y); - void ecore_evas_layer_set(Ecore_Evas *ee, int layer); - int ecore_evas_layer_get(Ecore_Evas *ee); + void ecore_evas_size_min_set(Ecore_Evas *ee, int w, int h); + void ecore_evas_size_min_get(Ecore_Evas *ee, int *w, int *h); + void ecore_evas_size_max_set(Ecore_Evas *ee, int w, int h); + void ecore_evas_size_max_get(Ecore_Evas *ee, int *w, int *h); + void ecore_evas_size_base_set(Ecore_Evas *ee, int w, int h); + void ecore_evas_size_base_get(Ecore_Evas *ee, int *w, int *h); + void ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h); + void ecore_evas_size_step_get(Ecore_Evas *ee, int *w, int *h); + void ecore_evas_cursor_set(Ecore_Evas *ee, const char *file, int layer, int +hot_x, int hot_y); + void ecore_evas_cursor_get(Ecore_Evas *ee, char **file, int *layer, int +*hot_x, int *hot_y); + void ecore_evas_layer_set(Ecore_Evas *ee, int layer); + int ecore_evas_layer_get(Ecore_Evas *ee); void ecore_evas_focus_set(Ecore_Evas *ee, int on); int ecore_evas_focus_get(Ecore_Evas *ee); void ecore_evas_iconified_set(Ecore_Evas *ee, int on); int ecore_evas_iconified_get(Ecore_Evas *ee); - void ecore_evas_borderless_set(Ecore_Evas *ee, int on); - int ecore_evas_borderless_get(Ecore_Evas *ee); + void ecore_evas_borderless_set(Ecore_Evas *ee, int on); + int ecore_evas_borderless_get(Ecore_Evas *ee); void ecore_evas_override_set(Ecore_Evas *ee, int on); int ecore_evas_override_get(Ecore_Evas *ee); void ecore_evas_maximized_set(Ecore_Evas *ee, int on); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/ecore_evas.c,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -u -3 -r1.1.2.6 -r1.1.2.7 --- ecore_evas.c 8 Feb 2003 05:05:04 -0000 1.1.2.6 +++ ecore_evas.c 8 Feb 2003 07:03:41 -0000 1.1.2.7 @@ -416,6 +416,10 @@ ee->driver = strdup("software_x11"); if (disp_name) ee->name = strdup(disp_name); + ee->prop.max.w = 32767; + ee->prop.max.h = 32767; + ee->prop.layer = 4; + /* init evas here */ ee->evas = evas_new(); evas_output_method_set(ee->evas, rmethod); @@ -571,6 +575,7 @@ int ecore_evas_rotation_get(Ecore_Evas *ee) { + return ee->rotation; } void @@ -581,6 +586,7 @@ int ecore_evas_shaped_get(Ecore_Evas *ee) { + return ee->shaped; } void @@ -650,61 +656,135 @@ void ecore_evas_size_min_set(Ecore_Evas *ee, int w, int h) { + if (w < 0) w = 0; + if (h < 0) h = 0; + if ((ee->prop.min.w == w) && (ee->prop.min.h == h)) return; + ee->prop.min.w = w; + ee->prop.min.h = h; + ecore_x_window_prop_min_size_set(ee->x11.win_container, ee->prop.min.w, +ee->prop.min.h); } void ecore_evas_size_min_get(Ecore_Evas *ee, int *w, int *h) { + if (w) *w = ee->prop.min.w; + if (h) *h = ee->prop.min.h; } void ecore_evas_size_max_set(Ecore_Evas *ee, int w, int h) { + if (w < 0) w = 0; + if (h < 0) h = 0; + if ((ee->prop.max.w == w) && (ee->prop.max.h == h)) return; + ee->prop.max.w = w; + ee->prop.max.h = h; + ecore_x_window_prop_max_size_set(ee->x11.win_container, ee->prop.max.w, +ee->prop.max.h); } void ecore_evas_size_max_get(Ecore_Evas *ee, int *w, int *h) { + if (w) *w = ee->prop.max.w; + if (h) *h = ee->prop.max.h; } void ecore_evas_size_base_set(Ecore_Evas *ee, int w, int h) { + if (w < 0) w = 0; + if (h < 0) h = 0; + if ((ee->prop.base.w == w) && (ee->prop.base.h == h)) return; + ee->prop.base.w = w; + ee->prop.base.h = h; + ecore_x_window_prop_base_size_set(ee->x11.win_container, ee->prop.base.w, +ee->prop.base.h); } void ecore_evas_size_base_get(Ecore_Evas *ee, int *w, int *h) { + if (w) *w = ee->prop.base.w; + if (h) *h = ee->prop.base.h; } void ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h) { + if (w < 1) w = 1; + if (h < 1) h = 1; + if ((ee->prop.step.w == w) && (ee->prop.step.h == h)) return; + ee->prop.step.w = w; + ee->prop.step.h = h; + ecore_x_window_prop_step_size_set(ee->x11.win_container, ee->prop.step.w, +ee->prop.step.h); } void ecore_evas_size_step_get(Ecore_Evas *ee, int *w, int *h) { + if (w) *w = ee->prop.step.w; + if (h) *h = ee->prop.step.h; } void ecore_evas_cursor_set(Ecore_Evas *ee, const char *file, int layer, int hot_x, int hot_y) { + int x, y; + + if (!file) + { + if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object); + if (ee->prop.cursor.file) free(ee->prop.cursor.file); + ee->prop.cursor.object = NULL; + ee->prop.cursor.file = NULL; + ee->prop.cursor.layer = 0; + ee->prop.cursor.hot.x = 0; + ee->prop.cursor.hot.y = 0; + ecore_x_window_cursor_show(ee->x11.win, 1); + return; + } + ecore_x_window_cursor_show(ee->x11.win, 0); + if (!ee->prop.cursor.object) ee->prop.cursor.object = +evas_object_image_add(ee->evas); + if (ee->prop.cursor.file) free(ee->prop.cursor.file); + ee->prop.cursor.file = strdup(file); + ee->prop.cursor.layer = layer; + ee->prop.cursor.hot.x = hot_x; + ee->prop.cursor.hot.y = hot_y; + evas_pointer_output_xy_get(ee->evas, &x, &y); + evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer); + evas_object_color_set(ee->prop.cursor.object, 255, 255, 255, 255); + evas_object_move(ee->prop.cursor.object, + x - ee->prop.cursor.hot.x, + y - ee->prop.cursor.hot.y); + evas_object_image_file_set(ee->prop.cursor.object, ee->prop.cursor.file, NULL); + evas_object_image_size_get(ee->prop.cursor.object, &x, &y); + evas_object_resize(ee->prop.cursor.object, x, y); + evas_object_image_fill_set(ee->prop.cursor.object, 0, 0, x, y); + evas_object_pass_events_set(ee->prop.cursor.object, 1); + if (evas_pointer_inside_get(ee->evas)) + evas_object_show(ee->prop.cursor.object); } void ecore_evas_cursor_get(Ecore_Evas *ee, char **file, int *layer, int *hot_x, int *hot_y) { + if (file) *file = ee->prop.cursor.file; + if (layer) *layer = ee->prop.cursor.layer; + if (hot_x) *hot_x = ee->prop.cursor.hot.x; + if (hot_y) *hot_y = ee->prop.cursor.hot.y; } void ecore_evas_layer_set(Ecore_Evas *ee, int layer) { + if (ee->prop.layer == layer) return; + ee->prop.layer = layer; + ecore_x_window_prop_layer_set(ee->x11.win_container, ee->prop.layer); } int ecore_evas_layer_get(Ecore_Evas *ee) { + return ee->prop.layer; } void @@ -722,21 +802,28 @@ void ecore_evas_iconified_set(Ecore_Evas *ee, int on) { + printf("ecore_evas_iconified_set() does not do anything yet.\n"); } int ecore_evas_iconified_get(Ecore_Evas *ee) { + return ee->prop.iconified; } void ecore_evas_borderless_set(Ecore_Evas *ee, int on) { + if (((ee->prop.borderless) && (on)) || + ((!ee->prop.borderless) && (!on))) return; + ee->prop.borderless = on; + ecore_x_window_prop_borderless_set(ee->x11.win_container, ee->prop.borderless); } int ecore_evas_borderless_get(Ecore_Evas *ee) { + return ee->prop.borderless; } void @@ -756,6 +843,12 @@ ecore_x_window_prop_name_class_set(ee->x11.win_container, ee->prop.name, ee->prop.clas); if (ee->func.fn_delete_request) ecore_x_window_prop_delete_request_set(ee->x11.win_container, 1); + ecore_x_window_prop_min_size_set(ee->x11.win_container, ee->prop.min.w, +ee->prop.min.h); + ecore_x_window_prop_max_size_set(ee->x11.win_container, ee->prop.max.w, +ee->prop.max.h); + ecore_x_window_prop_base_size_set(ee->x11.win_container, ee->prop.base.w, +ee->prop.base.h); + ecore_x_window_prop_step_size_set(ee->x11.win_container, ee->prop.step.w, +ee->prop.step.h); + ecore_x_window_prop_borderless_set(ee->x11.win_container, ee->prop.borderless); + ecore_x_window_prop_layer_set(ee->x11.win_container, ee->prop.layer); } ecore_x_window_reparent(ee->x11.win, ee->x11.win_container, 0, 0); ecore_x_window_show(ee->x11.win); @@ -820,9 +913,30 @@ void ecore_evas_avoid_damage_set(Ecore_Evas *ee, int on) { + Evas_Engine_Info_Software_X11 *einfo; + + ee->prop.avoid_damage = on; + einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas); + if (einfo) + { + if (ee->prop.avoid_damage) + { + einfo->info.drawable = ee->x11.pmap; + einfo->info.drawable = ee->x11.mask; + evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); + evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h); + } + else + { + einfo->info.drawable = ee->x11.win; + einfo->info.drawable = ee->x11.mask; + evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); + } + } } int ecore_evas_avoid_damage_get(Ecore_Evas *ee) { + return ee->prop.avoid_damage; } ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs