Mike Emmel wrote:
> Attached is the patch for window properties.
>
> Comments suggestions ?
Code shape is broken as Ville pointed out already,
> Index: src/core/wm.c
> ===================================================================
> RCS file: /cvs/directfb/DirectFB/src/core/wm.c,v
> retrieving revision 1.12
> diff -u -r1.12 wm.c
> --- src/core/wm.c 16 Jul 2006 10:15:29 -0000 1.12
> +++ src/core/wm.c 1 Aug 2006 20:14:02 -0000
> @@ -563,6 +563,7 @@
>
> return wm_local->funcs->GetInsets(stack,window,insets);
> }
> +
but I don't mind cosmetic changes along the way :)
> /**
> Give the wm a chance to override the windows configuration
> **/
> @@ -652,6 +653,65 @@
> return ret;
> }
>
> +/**
> + * Let the wm set a property on a window
> + */
> +DFBResult
> +dfb_wm_set_window_property( CoreWindowStack *stack,
> + CoreWindow *window,
> + char *key,
> + void *value,
> + void **old_value)
> +{
> + D_ASSERT( wm_local != NULL );
> + D_ASSERT( wm_local->funcs != NULL );
> + D_ASSERT( wm_local->funcs->SetWindowProperty != NULL );
> +
> + D_ASSERT( stack != NULL );
D_ASSERT( window != NULL );
D_ASSERT( key != NULL );
D_ASSERT( value != NULL );
These were missing :)
> +
> + return
> wm_local->funcs->SetWindowProperty(stack,wm_local->data,stack->stack_data,
> +
> window,window->window_data,
> + key,value,old_value);
> +}
> +
> +/**
> + * get the wm property on a window
> + */
> +DFBResult
> +dfb_wm_get_window_property( CoreWindowStack *stack,
> + CoreWindow *window,
> + char *key,
> + void **value)
> +{
> + D_ASSERT( wm_local != NULL );
> + D_ASSERT( wm_local->funcs != NULL );
> + D_ASSERT( wm_local->funcs->GetWindowProperty != NULL );
> +
> + D_ASSERT( stack != NULL );
D_ASSERT( window != NULL );
D_ASSERT( key != NULL );
D_ASSERT( value != NULL );
> + return
> wm_local->funcs->GetWindowProperty(stack,wm_local->data,stack->stack_data,
> +
> window,window->window_data,key,value);
> +}
> +
> +/**
> + * remove th wm property on a window
> + */
> +DFBResult
> +dfb_wm_remove_window_property( CoreWindowStack *stack,
> + CoreWindow *window,
> + char *key,
> + void **value)
> +{
> + D_ASSERT( wm_local != NULL );
> + D_ASSERT( wm_local->funcs != NULL );
> + D_ASSERT( wm_local->funcs->RemoveWindowProperty != NULL );
> +
> + D_ASSERT( stack != NULL );
D_ASSERT( window != NULL );
D_ASSERT( key != NULL );
D_ASSERT( value != NULL );
> + return
> wm_local->funcs->RemoveWindowProperty(stack,wm_local->data,stack->stack_data,
> +
> window,window->window_data,key,value);
> +}
> +
> DFBResult
> dfb_wm_set_window_config( CoreWindow *window,
> const CoreWindowConfig *config,
> Index: src/core/wm.h
> ===================================================================
> RCS file: /cvs/directfb/DirectFB/src/core/wm.h,v
> retrieving revision 1.11
> diff -u -r1.11 wm.h
> --- src/core/wm.h 16 Jul 2006 10:15:29 -0000 1.11
> +++ src/core/wm.h 1 Aug 2006 20:14:02 -0000
> @@ -185,6 +185,30 @@
>
>
> /** Window **/
> + DFBResult (*SetWindowProperty)( CoreWindowStack *stack,
> + void *wm_data,
> + void *stack_data,
> + CoreWindow
> *window,
> + void *window_data,
> + char *key,
> + void *value,
> + void **old_value);
I prefer to give return (output) parameters the prefix ret_. I didn't do
that in the past so don't expect it to be in my old code :)
DFBResult (*SetWindowProperty)( CoreWindowStack *stack,
void *wm_data,
void *stack_data,
CoreWindow *window,
void *window_data,
char *key,
void *value,
void **ret_old_value );
> + DFBResult (*GetWindowProperty)( CoreWindowStack *stack,
> + void *wm_data,
> + void *stack_data,
> + CoreWindow
> *window,
> + void *window_data,
> + char *key,
> + void **value);
...,
void **ret_value );
> Index: wm/default/default.c
> ===================================================================
> RCS file: /cvs/directfb/DirectFB/wm/default/default.c,v
> retrieving revision 1.31
> diff -u -r1.31 default.c
> --- wm/default/default.c 16 Jul 2006 10:15:29 -0000 1.31
> +++ wm/default/default.c 1 Aug 2006 20:14:04 -0000
> @@ -2795,6 +2795,7 @@
> return DFB_OK;
> }
>
> +
> static DFBResult
> wm_preconfigure_window( CoreWindowStack *stack,
> void *wm_data,
> @@ -2806,6 +2807,44 @@
> }
>
> static DFBResult
> +wm_set_window_property( CoreWindowStack *stack,
> + void *wm_data,
> + void *stack_data,
> + CoreWindow *window,
> + void *window_data,
> + char *key,
> + void *value,
> + void **old_value)
> +{
> + return DFB_OK;
> +}
No default implementation, yet?
--
Best regards,
Denis Oliver Kropp
.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/ |
"------------------------------------------"
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev