);
}
+EINTERN E_View_Client_Image_Filter
+_e_comp_image_view_client_filter_get(E_Comp_Image_Filter filter)
+{
+ switch (filter)
+ {
+ case E_COMP_IMAGE_FILTER_BLUR:
+ filter = E_VIEW_CLIENT_IMAGE_FILTER_BLUR;
+ break;
+ case E_COMP_IMAGE_FILTER_GRAYSCALE:
+ filter = E_VIEW_CLIENT_IMAGE_FILTER_GRAYSCALE;
+ break;
+ case E_COMP_IMAGE_FILTER_INVERSE:
+ filter = E_VIEW_CLIENT_IMAGE_FILTER_INVERSE;
+ break;
+ case E_COMP_IMAGE_FILTER_EDGE_DETECTION:
+ filter = E_VIEW_CLIENT_IMAGE_FILTER_EDGE_DETECTION;
+ break;
+ default:
+ filter = E_VIEW_CLIENT_IMAGE_FILTER_NONE;
+ break;
+ }
+
+ return filter;
+}
+
E_API Eina_Bool
e_comp_image_filter_set(E_Comp_Image_Filter filter)
{
E_ZONE_CLIENT_FOREACH(zone, ec)
{
view_client = e_client_view_get(ec);
- e_view_client_image_filter_set(view_client, filter);
+ e_view_client_image_filter_set(view_client, _e_comp_image_view_client_filter_get(filter));
e_view_client_damage(view_client, 0, 0, ec->w, ec->h);
e_view_client_dirty(view_client);
e_view_client_render(view_client);
}
EINTERN bool
-e_view_client_image_filter_set(E_View_Client *client, E_Comp_Image_Filter filter)
+e_view_client_image_filter_set(E_View_Client *client, E_View_Client_Image_Filter filter)
{
+ E_Comp_Image_Filter comp_filter;
+
if (client == NULL) return false;
- return e_comp_object_image_filter_set(client->view.eo, filter);
+ switch (filter)
+ {
+ case E_VIEW_CLIENT_IMAGE_FILTER_BLUR:
+ comp_filter = E_COMP_IMAGE_FILTER_BLUR;
+ break;
+ case E_VIEW_CLIENT_IMAGE_FILTER_GRAYSCALE:
+ comp_filter = E_COMP_IMAGE_FILTER_GRAYSCALE;
+ break;
+ case E_VIEW_CLIENT_IMAGE_FILTER_INVERSE:
+ comp_filter = E_COMP_IMAGE_FILTER_INVERSE;
+ break;
+ case E_VIEW_CLIENT_IMAGE_FILTER_EDGE_DETECTION:
+ comp_filter = E_COMP_IMAGE_FILTER_EDGE_DETECTION;
+ break;
+ default:
+ comp_filter = E_COMP_IMAGE_FILTER_NONE;
+ break;
+ }
+
+ return e_comp_object_image_filter_set(client->view.eo, comp_filter);
}
-EINTERN E_Comp_Image_Filter
+EINTERN E_View_Client_Image_Filter
e_view_client_image_filter_get(E_View_Client *client)
{
+ E_View_Client_Image_Filter filter;
+
if (client == NULL) return E_COMP_IMAGE_FILTER_NONE;
- return e_comp_object_image_filter_get(client->view.eo);
+ switch (e_comp_object_image_filter_get(client->view.eo))
+ {
+ case E_COMP_IMAGE_FILTER_BLUR:
+ filter = E_VIEW_CLIENT_IMAGE_FILTER_BLUR;
+ break;
+ case E_COMP_IMAGE_FILTER_GRAYSCALE:
+ filter = E_VIEW_CLIENT_IMAGE_FILTER_GRAYSCALE;
+ break;
+ case E_COMP_IMAGE_FILTER_INVERSE:
+ filter = E_VIEW_CLIENT_IMAGE_FILTER_INVERSE;
+ break;
+ case E_COMP_IMAGE_FILTER_EDGE_DETECTION:
+ filter = E_VIEW_CLIENT_IMAGE_FILTER_EDGE_DETECTION;
+ break;
+ default:
+ filter = E_VIEW_CLIENT_IMAGE_FILTER_NONE;
+ break;
+ }
+
+ return filter;
}
EINTERN void
#define TEMPORARY_CIRCULAR_REF_CLIENT 1
+typedef enum _E_View_Client_Image_Filter
+{
+ E_VIEW_CLIENT_IMAGE_FILTER_NONE = 0,
+ E_VIEW_CLIENT_IMAGE_FILTER_BLUR,
+ E_VIEW_CLIENT_IMAGE_FILTER_GRAYSCALE,
+ E_VIEW_CLIENT_IMAGE_FILTER_INVERSE,
+ E_VIEW_CLIENT_IMAGE_FILTER_EDGE_DETECTION,
+} E_View_Client_Image_Filter;
+
E_View_Client *e_view_client_create(E_Client *ec, E_View_Tree *parent);
void e_view_client_render_update_del(E_View_Client *view_client);
bool e_view_client_alpha_get(E_View_Client *client);
bool e_view_client_frame_theme_set(E_View_Client *client, const char *name);
void e_view_client_focus_set(E_View_Client *client, bool focus);
bool e_view_client_focus_get(E_View_Client *client);
-bool e_view_client_image_filter_set(E_View_Client *client, E_Comp_Image_Filter filter);
-E_Comp_Image_Filter e_view_client_image_filter_get(E_View_Client *client);
+bool e_view_client_image_filter_set(E_View_Client *client, E_View_Client_Image_Filter filter);
+E_View_Client_Image_Filter e_view_client_image_filter_get(E_View_Client *client);
void e_view_client_size_hint_max_get(E_View_Client *client, int *width, int *height);
void e_view_client_size_hint_min_get(E_View_Client *client, int *width, int *height);
void e_view_client_size_hint_padding_get(E_View_Client *client, int *l, int *r, int *t, int *b);
hwc_window = container_of(listener, E_Hwc_Window, image_filter_set_listener);
if (!hwc_window->ec) return;
- if (e_view_client_image_filter_get(e_client_view_get(hwc_window->ec)) != E_COMP_IMAGE_FILTER_NONE)
+ if (e_view_client_image_filter_get(e_client_view_get(hwc_window->ec)) != E_VIEW_CLIENT_IMAGE_FILTER_NONE)
e_hwc_window_restriction_set(hwc_window, E_HWC_WINDOW_RESTRICTION_IMAGE_FILTER);
else
e_hwc_window_restriction_unset(hwc_window, E_HWC_WINDOW_RESTRICTION_IMAGE_FILTER);
if (!hwc_window->ec) return;
- if (e_view_client_image_filter_get(e_client_view_get(hwc_window->ec)) != E_COMP_IMAGE_FILTER_NONE)
+ if (e_view_client_image_filter_get(e_client_view_get(hwc_window->ec)) != E_VIEW_CLIENT_IMAGE_FILTER_NONE)
e_hwc_window_restriction_set(hwc_window, E_HWC_WINDOW_RESTRICTION_IMAGE_FILTER);
else
e_hwc_window_restriction_unset(hwc_window, E_HWC_WINDOW_RESTRICTION_IMAGE_FILTER);