Enlightenment CVS committal Author : moom Project : e17 Module : proto
Dir : e17/proto/etk/src/lib Modified Files: etk_engine.c etk_engine.h etk_window.c etk_window.h Log Message: * Remove the "#ifdef HAVE_ECORE_X" since we don't need them anymore with the engines * Big API break in Etk_Window: - etk_window_[de]iconify() --> etk_window_iconified_set/get() - etk_window_[un]maximize() --> etk_window_maximized_set/get() - etk_window_[un]fullscreen() --> etk_window_fullsreen_set/get() - etk_window_[un]focus() --> etk_window_focused_set/get() =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_engine.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- etk_engine.c 27 Jul 2006 18:19:29 -0000 1.4 +++ etk_engine.c 28 Jul 2006 00:57:05 -0000 1.5 @@ -333,67 +333,46 @@ _engine->window_modal_for_window(window_to_modal, window); } -void etk_engine_window_iconify(Etk_Window *window) +void etk_engine_window_iconified_set(Etk_Window *window, Etk_Bool iconified) { - if (!_engine || !_engine->window_iconify) - return; - _engine->window_iconify(window); -} - -void etk_engine_window_deiconify(Etk_Window *window) -{ - if (!_engine || !_engine->window_deiconify) - return; - _engine->window_deiconify(window); + if (!_engine || !_engine->window_iconified_set) + return; + _engine->window_iconified_set(window, iconified); } -Etk_Bool etk_engine_window_is_iconified(Etk_Window *window) +Etk_Bool etk_engine_window_iconified_get(Etk_Window *window) { - if (!_engine || !_engine->window_is_iconified) + if (!_engine || !_engine->window_iconified_get) return ETK_FALSE; - return _engine->window_is_iconified(window); -} - -void etk_engine_window_maximize(Etk_Window *window) -{ - if (!_engine || !_engine->window_maximize) - return; - _engine->window_maximize(window); + return _engine->window_iconified_get(window); } -void etk_engine_window_unmaximize(Etk_Window *window) +void etk_engine_window_maximized_set(Etk_Window *window, Etk_Bool maximized) { - if (!_engine || !_engine->window_unmaximize) - return; - _engine->window_unmaximize(window); + if (!_engine || !_engine->window_maximized_set) + return; + _engine->window_maximized_set(window, maximized); } -Etk_Bool etk_engine_window_is_maximized(Etk_Window *window) +Etk_Bool etk_engine_window_maximized_get(Etk_Window *window) { - if (!_engine || !_engine->window_is_maximized) + if (!_engine || !_engine->window_maximized_get) return ETK_FALSE; - return _engine->window_is_maximized(window); -} - -void etk_engine_window_fullscreen(Etk_Window *window) -{ - if (!_engine || !_engine->window_fullscreen) - return; - _engine->window_fullscreen(window); + return _engine->window_maximized_get(window); } -void etk_engine_window_unfullscreen(Etk_Window *window) +void etk_engine_window_fullscreen_set(Etk_Window *window, Etk_Bool fullscreen) { - if (!_engine || !_engine->window_unfullscreen) + if (!_engine || !_engine->window_fullscreen_set) return; - _engine->window_unfullscreen(window); + _engine->window_fullscreen_set(window, fullscreen); } -Etk_Bool etk_engine_window_is_fullscreen(Etk_Window *window) +Etk_Bool etk_engine_window_fullscreen_get(Etk_Window *window) { - if (!_engine || !_engine->window_is_fullscreen) - return ETK_FALSE; - return _engine->window_is_fullscreen(window); + if (!_engine || !_engine->window_fullscreen_get) + return ETK_FALSE; + return _engine->window_fullscreen_get(window); } void etk_engine_window_raise(Etk_Window *window) @@ -410,11 +389,11 @@ _engine->window_lower(window); } -void etk_engine_window_sticky_set(Etk_Window *window, Etk_Bool on) +void etk_engine_window_sticky_set(Etk_Window *window, Etk_Bool sticky) { if (!_engine || !_engine->window_sticky_set) return; - _engine->window_sticky_set(window, on); + _engine->window_sticky_set(window, sticky); } Etk_Bool etk_engine_window_sticky_get(Etk_Window *window) @@ -424,25 +403,18 @@ return _engine->window_sticky_get(window); } -void etk_engine_window_focus(Etk_Window *window) -{ - if (!_engine || !_engine->window_focus) - return; - _engine->window_focus(window); -} - -void etk_engine_window_unfocus(Etk_Window *window) +void etk_engine_window_focused_set(Etk_Window *window, Etk_Bool focused) { - if (!_engine || !_engine->window_unfocus) + if (!_engine || !_engine->window_focused_set) return; - _engine->window_unfocus(window); + _engine->window_focused_set(window, focused); } -Etk_Bool etk_engine_window_is_focused(Etk_Window *window) +Etk_Bool etk_engine_window_focused_get(Etk_Window *window) { - if (!_engine || !_engine->window_is_focused) + if (!_engine || !_engine->window_focused_get) return ETK_FALSE; - return _engine->window_is_focused(window); + return _engine->window_focused_get(window); } void etk_engine_window_decorated_set(Etk_Window *window, Etk_Bool decorated) @@ -508,11 +480,18 @@ _engine->window_dnd_aware_set(window, on); } -void etk_engine_window_pointer_set(Etk_Toplevel_Widget *toplevel_widget, Etk_Pointer_Type pointer_type) +Etk_Bool etk_engine_window_dnd_aware_get(Etk_Window *window) +{ + if (!_engine || !_engine->window_dnd_aware_get) + return ETK_FALSE; + return _engine->window_dnd_aware_get(window); +} + +void etk_engine_window_pointer_set(Etk_Window *window, Etk_Pointer_Type pointer_type) { if (!_engine || !_engine->window_pointer_set) return; - _engine->window_pointer_set(toplevel_widget, pointer_type); + _engine->window_pointer_set(window, pointer_type); } void etk_engine_popup_window_constructor(Etk_Popup_Window *popup_window) @@ -525,7 +504,7 @@ void etk_engine_popup_window_popup_at_xy(Etk_Popup_Window *popup_window, int x, int y) { if (!_engine || !_engine->popup_window_popup_at_xy) - return; + return; _engine->popup_window_popup_at_xy(popup_window, x, y); } @@ -642,22 +621,18 @@ INHERIT(window_center_on_window); INHERIT(window_move_to_mouse); INHERIT(window_modal_for_window); - INHERIT(window_iconify); - INHERIT(window_deiconify); - INHERIT(window_is_iconified); - INHERIT(window_maximize); - INHERIT(window_unmaximize); - INHERIT(window_is_maximized); - INHERIT(window_fullscreen); - INHERIT(window_unfullscreen); - INHERIT(window_is_fullscreen); + INHERIT(window_iconified_set); + INHERIT(window_iconified_get); + INHERIT(window_maximized_set); + INHERIT(window_maximized_get); + INHERIT(window_fullscreen_set); + INHERIT(window_fullscreen_get); INHERIT(window_raise); INHERIT(window_lower); INHERIT(window_sticky_set); INHERIT(window_sticky_get); - INHERIT(window_focus); - INHERIT(window_unfocus); - INHERIT(window_is_focused); + INHERIT(window_focused_set); + INHERIT(window_focused_get); INHERIT(window_decorated_set); INHERIT(window_decorated_get); INHERIT(window_shaped_set); @@ -667,6 +642,7 @@ INHERIT(window_skip_pager_hint_set); INHERIT(window_skip_pager_hint_get); INHERIT(window_dnd_aware_set); + INHERIT(window_dnd_aware_get); INHERIT(window_pointer_set); INHERIT(popup_window_constructor); =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_engine.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- etk_engine.h 27 Jul 2006 21:07:52 -0000 1.5 +++ etk_engine.h 28 Jul 2006 00:57:05 -0000 1.6 @@ -34,22 +34,18 @@ void (*window_center_on_window)(Etk_Window *window_to_center, Etk_Window *window); void (*window_move_to_mouse)(Etk_Window *window); void (*window_modal_for_window)(Etk_Window *window_to_modal, Etk_Window *window); - void (*window_iconify)(Etk_Window *window); - void (*window_deiconify)(Etk_Window *window); - Etk_Bool (*window_is_iconified)(Etk_Window *window); - void (*window_maximize)(Etk_Window *window); - void (*window_unmaximize)(Etk_Window *window); - Etk_Bool (*window_is_maximized)(Etk_Window *window); - void (*window_fullscreen)(Etk_Window *window); - void (*window_unfullscreen)(Etk_Window *window); - Etk_Bool (*window_is_fullscreen)(Etk_Window *window); + void (*window_iconified_set)(Etk_Window *window, Etk_Bool iconified); + Etk_Bool (*window_iconified_get)(Etk_Window *window); + void (*window_maximized_set)(Etk_Window *window, Etk_Bool maximized); + Etk_Bool (*window_maximized_get)(Etk_Window *window); + void (*window_fullscreen_set)(Etk_Window *window, Etk_Bool fullscreen); + Etk_Bool (*window_fullscreen_get)(Etk_Window *window); void (*window_raise)(Etk_Window *window); void (*window_lower)(Etk_Window *window); - void (*window_sticky_set)(Etk_Window *window, Etk_Bool on); + void (*window_sticky_set)(Etk_Window *window, Etk_Bool sticky); Etk_Bool (*window_sticky_get)(Etk_Window *window); - void (*window_focus)(Etk_Window *window); - void (*window_unfocus)(Etk_Window *window); - Etk_Bool (*window_is_focused)(Etk_Window *window); + void (*window_focused_set)(Etk_Window *window, Etk_Bool focused); + Etk_Bool (*window_focused_get)(Etk_Window *window); void (*window_decorated_set)(Etk_Window *window, Etk_Bool decorated); Etk_Bool (*window_decorated_get)(Etk_Window *window); void (*window_shaped_set)(Etk_Window *window, Etk_Bool shaped); @@ -57,8 +53,9 @@ void (*window_skip_taskbar_hint_set)(Etk_Window *window, Etk_Bool skip_taskbar_hint); Etk_Bool (*window_skip_taskbar_hint_get)(Etk_Window *window); void (*window_skip_pager_hint_set)(Etk_Window *window, Etk_Bool skip_pager_hint); - Etk_Bool (*window_skip_pager_hint_get)(Etk_Window *window); + Etk_Bool (*window_skip_pager_hint_get)(Etk_Window *window); void (*window_dnd_aware_set)(Etk_Window *window, Etk_Bool on); + Etk_Bool (*window_dnd_aware_get)(Etk_Window *window); void (*window_pointer_set)(Etk_Window *window, Etk_Pointer_Type pointer_type); void (*popup_window_constructor)(Etk_Popup_Window *popup_window); @@ -107,22 +104,18 @@ void etk_engine_window_center_on_window(Etk_Window *window_to_center, Etk_Window *window); void etk_engine_window_move_to_mouse(Etk_Window *window); void etk_engine_window_modal_for_window(Etk_Window *window_to_modal, Etk_Window *window); -void etk_engine_window_iconify(Etk_Window *window); -void etk_engine_window_deiconify(Etk_Window *window); -Etk_Bool etk_engine_window_is_iconified(Etk_Window *window); -void etk_engine_window_maximize(Etk_Window *window); -void etk_engine_window_unmaximize(Etk_Window *window); -Etk_Bool etk_engine_window_is_maximized(Etk_Window *window); -void etk_engine_window_fullscreen(Etk_Window *window); -void etk_engine_window_unfullscreen(Etk_Window *window); -Etk_Bool etk_engine_window_is_fullscreen(Etk_Window *window); +void etk_engine_window_iconified_set(Etk_Window *window, Etk_Bool iconified); +Etk_Bool etk_engine_window_iconified_get(Etk_Window *window); +void etk_engine_window_maximized_set(Etk_Window *window, Etk_Bool maximized); +Etk_Bool etk_engine_window_maximized_get(Etk_Window *window); +void etk_engine_window_fullscreen_set(Etk_Window *window, Etk_Bool fullscreen); +Etk_Bool etk_engine_window_fullscreen_get(Etk_Window *window); void etk_engine_window_raise(Etk_Window *window); void etk_engine_window_lower(Etk_Window *window); void etk_engine_window_sticky_set(Etk_Window *window, Etk_Bool on); Etk_Bool etk_engine_window_sticky_get(Etk_Window *window); -void etk_engine_window_focus(Etk_Window *window); -void etk_engine_window_unfocus(Etk_Window *window); -Etk_Bool etk_engine_window_is_focused(Etk_Window *window); +void etk_engine_window_focused_set(Etk_Window *window, Etk_Bool focused); +Etk_Bool etk_engine_window_focused_get(Etk_Window *window); void etk_engine_window_decorated_set(Etk_Window *window, Etk_Bool decorated); Etk_Bool etk_engine_window_decorated_get(Etk_Window *window); void etk_engine_window_shaped_set(Etk_Window *window, Etk_Bool shaped); @@ -132,7 +125,8 @@ void etk_engine_window_skip_pager_hint_set(Etk_Window *window, Etk_Bool skip_pager_hint); Etk_Bool etk_engine_window_skip_pager_hint_get(Etk_Window *window); void etk_engine_window_dnd_aware_set(Etk_Window *window, Etk_Bool on); -void etk_engine_window_pointer_set(Etk_Toplevel_Widget *toplevel_widget, Etk_Pointer_Type pointer_type); +Etk_Bool etk_engine_window_dnd_aware_get(Etk_Window *window); +void etk_engine_window_pointer_set(Etk_Window *window, Etk_Pointer_Type pointer_type); void etk_engine_popup_window_constructor(Etk_Popup_Window *popup_window); void etk_engine_popup_window_popup_at_xy(Etk_Popup_Window *popup_window, int x, int y); =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_window.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- etk_window.c 27 Jul 2006 21:07:52 -0000 1.29 +++ etk_window.c 28 Jul 2006 00:57:05 -0000 1.30 @@ -14,19 +14,17 @@ * @{ */ -enum _Etk_Widget_Signal_Id +enum Etk_Widget_Signal_Id { ETK_WINDOW_MOVE_SIGNAL, ETK_WINDOW_RESIZE_SIGNAL, ETK_WINDOW_FOCUS_IN_SIGNAL, ETK_WINDOW_FOCUS_OUT_SIGNAL, - ETK_WINDOW_STICKY_SIGNAL, - ETK_WINDOW_UNSTICKY_SIGNAL, ETK_WINDOW_DELETE_EVENT_SIGNAL, ETK_WINDOW_NUM_SIGNALS }; -enum _Etk_Window_Property_Id +enum Etk_Window_Property_Id { ETK_WINDOW_TITLE_PROPERTY, ETK_WINDOW_ICONIFIED_PROPERTY, @@ -56,8 +54,7 @@ static void _etk_window_resize_cb(Etk_Window *window); static void _etk_window_focus_in_cb(Etk_Window *window); static void _etk_window_focus_out_cb(Etk_Window *window); -static void _etk_window_sticky_cb(Etk_Window *window); -static void _etk_window_unsticky_cb(Etk_Window *window); +static void _etk_window_sticky_changed_cb(Etk_Window *window); static void _etk_window_delete_request_cb(Etk_Window *window); static Etk_Signal *_etk_window_signals[ETK_WINDOW_NUM_SIGNALS]; @@ -78,14 +75,12 @@ if (!window_type) { - window_type = etk_type_new("Etk_Window", ETK_TOPLEVEL_WIDGET_TYPE, sizeof(Etk_Window), ETK_CONSTRUCTOR(_etk_window_constructor), ETK_DESTRUCTOR(_etk_window_destructor)); + window_type = etk_type_new("Etk_Window", ETK_TOPLEVEL_WIDGET_TYPE, sizeof(Etk_Window), ETK_CONSTRUCTOR(_etk_window_constructor), ETK_DESTRUCTOR(_etk_window_destructor)); _etk_window_signals[ETK_WINDOW_MOVE_SIGNAL] = etk_signal_new("move", window_type, -1, etk_marshaller_VOID__VOID, NULL, NULL); _etk_window_signals[ETK_WINDOW_RESIZE_SIGNAL] = etk_signal_new("resize", window_type, -1, etk_marshaller_VOID__VOID, NULL, NULL); _etk_window_signals[ETK_WINDOW_FOCUS_IN_SIGNAL] = etk_signal_new("focus_in", window_type, -1, etk_marshaller_VOID__VOID, NULL, NULL); _etk_window_signals[ETK_WINDOW_FOCUS_OUT_SIGNAL] = etk_signal_new("focus_out", window_type, -1, etk_marshaller_VOID__VOID, NULL, NULL); - _etk_window_signals[ETK_WINDOW_STICKY_SIGNAL] = etk_signal_new("sticky", window_type, -1, etk_marshaller_VOID__VOID, NULL, NULL); - _etk_window_signals[ETK_WINDOW_UNSTICKY_SIGNAL] = etk_signal_new("unsticky", window_type, -1, etk_marshaller_VOID__VOID, NULL, NULL); _etk_window_signals[ETK_WINDOW_DELETE_EVENT_SIGNAL] = etk_signal_new("delete_event", window_type, ETK_MEMBER_OFFSET(Etk_Window, delete_event), etk_marshaller_BOOL__VOID, etk_accumulator_bool_or, NULL); etk_type_property_add(window_type, "title", ETK_WINDOW_TITLE_PROPERTY, ETK_PROPERTY_STRING, ETK_PROPERTY_READABLE_WRITABLE, etk_property_value_string(NULL)); @@ -125,7 +120,6 @@ if (!window) return; etk_engine_window_title_set(window, title); - etk_object_notify(ETK_OBJECT(window), "title"); } /** @@ -176,7 +170,6 @@ { if (!window) return; - etk_engine_window_resize(window, w, h); } @@ -192,7 +185,6 @@ { if (!window) return; - etk_engine_window_geometry_get(window, x, y, w, h); } @@ -226,63 +218,61 @@ } /** - * @brief Iconifies (i.e. minimize) the window + * @brief Raises the window. * @param window a window */ -void etk_window_iconify(Etk_Window *window) +void etk_window_raise(Etk_Window *window) { if (!window) return; - etk_engine_window_iconify(window); - etk_object_notify(ETK_OBJECT(window), "iconified"); + etk_engine_window_raise(window); } /** - * @brief Deiconifies (i.e. unminimize) the window + * @brief Lowers the window. * @param window a window */ -void etk_window_deiconify(Etk_Window *window) +void etk_window_lower(Etk_Window *window) { if (!window) return; - etk_engine_window_deiconify(window); - etk_object_notify(ETK_OBJECT(window), "iconified"); + etk_engine_window_lower(window); } /** - * @brief Gets whether the window is iconified + * @brief Sets whether or not the window is iconified (i.e. minimized) * @param window a window - * @return Returns ETK_TRUE if the window is iconified, ETK_FALSE otherwise + * @param iconified ETK_TRUE to iconify the window, ETK_FALSE to deiconify it */ -Etk_Bool etk_window_is_iconified(Etk_Window *window) +void etk_window_iconified_set(Etk_Window *window, Etk_Bool iconified) { if (!window) - return ETK_FALSE; - return etk_engine_window_is_iconified(window); + return; + etk_engine_window_iconified_set(window, iconified); } /** - * @brief Maximizes the window + * @brief Gets whether the window is iconified * @param window a window + * @return Returns ETK_TRUE if the window is iconified, ETK_FALSE otherwise */ -void etk_window_maximize(Etk_Window *window) +Etk_Bool etk_window_iconified_get(Etk_Window *window) { if (!window) - return; - etk_engine_window_maximize(window); - etk_object_notify(ETK_OBJECT(window), "maximized"); + return ETK_FALSE; + return etk_engine_window_iconified_get(window); } /** - * @brief Unmaximizes the window + * @brief Sets whether or not the window is maximized * @param window a window + * @param maximized ETK_TRUE to maximize the window, ETK_FALSE to unmaximize it */ -void etk_window_unmaximize(Etk_Window *window) +void etk_window_maximized_set(Etk_Window *window, Etk_Bool maximized) { if (!window) return; - etk_engine_window_unmaximize(window); - etk_object_notify(ETK_OBJECT(window), "maximized"); + etk_engine_window_maximized_set(window, maximized); } /** @@ -290,35 +280,23 @@ * @param window a window * @return Returns ETK_TRUE if the window is maximized, ETK_FALSE otherwise */ -Etk_Bool etk_window_is_maximized(Etk_Window *window) +Etk_Bool etk_window_maximized_get(Etk_Window *window) { if (!window) return ETK_FALSE; - return etk_engine_window_is_maximized(window); + return etk_engine_window_maximized_get(window); } /** * @brief Places the window in the fullscreen state * @param window a window + * @param fullscreen ETK_TRUE to place the window in the fullscreen state, ETK_FALSE to toggle off the fullscreen state */ -void etk_window_fullscreen(Etk_Window *window) -{ - if (!window) - return; - etk_engine_window_fullscreen(window); - etk_object_notify(ETK_OBJECT(window), "fullscreen"); -} - -/** - * @brief Toggles off the fullscreen state for the window - * @param window a window - */ -void etk_window_unfullscreen(Etk_Window *window) +void etk_window_fullscreen_set(Etk_Window *window, Etk_Bool fullscreen) { if (!window) return; - etk_engine_window_unfullscreen(window); - etk_object_notify(ETK_OBJECT(window), "fullscreen"); + etk_engine_window_fullscreen_set(window, fullscreen); } /** @@ -326,45 +304,47 @@ * @param window a window * @return Returns ETK_TRUE if the window is in the fullscreen state, ETK_FALSE otherwise */ -Etk_Bool etk_window_is_fullscreen(Etk_Window *window) +Etk_Bool etk_window_fullscreen_get(Etk_Window *window) { if (!window) return ETK_FALSE; - return etk_engine_window_is_fullscreen(window); + return etk_engine_window_fullscreen_get(window); } /** - * @brief Raises a window. + * @brief Sets whether or not the window is focused * @param window a window + * @param focused ETK_TRUE to focus the window, ETK_FALSE to unfocus it */ -void etk_window_raise(Etk_Window *window) +void etk_window_focused_set(Etk_Window *window, Etk_Bool focused) { if (!window) return; - etk_engine_window_raise(window); + etk_engine_window_focused_set(window, focused); } /** - * @brief Lowers a window. + * @brief Gets whether the window is focused * @param window a window + * @return Returns ETK_TRUE if the window is focused, ETK_FALSE otherwise */ -void etk_window_lower(Etk_Window *window) +Etk_Bool etk_window_focused_get(Etk_Window *window) { if (!window) - return; - etk_engine_window_lower(window); + return ETK_FALSE; + return etk_engine_window_focused_get(window); } /** * @brief Sticks / unsticks the window: it will appear / disappear on all the virtual desktops * @param window a window - * @param on boolean value to stick / unstick + * @param sticky ETK_TRUE to stick the window, ETK_FALSE to unstick it */ -void etk_window_sticky_set(Etk_Window *window, Etk_Bool on) +void etk_window_sticky_set(Etk_Window *window, Etk_Bool sticky) { if (!window) return; - etk_engine_window_sticky_set(window, on); + etk_engine_window_sticky_set(window, sticky); } /** @@ -380,40 +360,6 @@ } /** - * @brief Focuses the window - * @param window a window - */ -void etk_window_focus(Etk_Window *window) -{ - if (!window) - return; - etk_engine_window_focus(window); -} - -/** - * @brief Unfocuses the window - * @param window a window - */ -void etk_window_unfocus(Etk_Window *window) -{ - if (!window) - return; - etk_engine_window_unfocus(window); -} - -/** - * @brief Gets whether the window is focused - * @param window a window - * @return Returns ETK_TRUE if the window is focused, ETK_FALSE otherwise - */ -Etk_Bool etk_window_is_focused(Etk_Window *window) -{ - if (!window) - return ETK_FALSE; - return etk_engine_window_is_focused(window); -} - -/** * @brief Sets wheter the window is decorated * @param window a window * @param decorated if @a decorated is ETK_FALSE, the border of the window will be hidden @@ -423,7 +369,6 @@ if (!window) return; etk_engine_window_decorated_set(window, decorated); - etk_object_notify(ETK_OBJECT(window), "decorated"); } /** @@ -506,7 +451,7 @@ /** * @brief Sets whether the window is dnd-aware (true by default) * @param window a window - * @param on ETK_TTUE if to set the window dnd-aware + * @param on ETK_TRUE to set the window dnd-aware, ETK_FALSE otherwise */ void etk_window_dnd_aware_set(Etk_Window *window, Etk_Bool on) { @@ -514,6 +459,16 @@ } /** + * @brief Gets whether the window is dnd-aware + * @param window a window + * @return Returns ETK_TRUE if the window is dnd-aware, ETK_FALSE otherwise + */ +Etk_Bool etk_window_dnd_aware_get(Etk_Window *window) +{ + return etk_engine_window_dnd_aware_get(window); +} + +/** * @brief A utility function to use as a callback for the "delete_event" signal. It will hide the window and return ETK_TRUE to prevent the program to quit * @param window the window to hide * @param data the data passed when the signal is emitted - unused @@ -536,10 +491,7 @@ { if (!window) return; - - window->delete_event = _etk_window_delete_event_handler; - - etk_engine_window_constructor(window); + window->width = 0; window->height = 0; window->wait_size_request = ETK_TRUE; @@ -548,14 +500,16 @@ window->modal = ETK_FALSE; window->modal_for_window = NULL; + window->delete_event = _etk_window_delete_event_handler; window->move_cb = _etk_window_move_cb; window->resize_cb = _etk_window_resize_cb; window->focus_in_cb = _etk_window_focus_in_cb; window->focus_out_cb = _etk_window_focus_out_cb; - window->sticky_cb = _etk_window_sticky_cb; - window->unsticky_cb = _etk_window_unsticky_cb; + window->sticky_changed_cb = _etk_window_sticky_changed_cb; window->delete_request_cb = _etk_window_delete_request_cb; + etk_engine_window_constructor(window); + ETK_TOPLEVEL_WIDGET(window)->pointer_set = _etk_window_pointer_set; ETK_TOPLEVEL_WIDGET(window)->geometry_get = _etk_window_toplevel_geometry_get; ETK_TOPLEVEL_WIDGET(window)->object_geometry_get = _etk_window_toplevel_object_geometry_get; @@ -576,6 +530,7 @@ return; etk_engine_window_destructor(window); + if (window->center_on_window) etk_object_weak_pointer_remove(ETK_OBJECT(window->center_on_window), (void **)(&window->center_on_window)); if (window->modal_for_window) @@ -596,31 +551,19 @@ etk_window_title_set(window, etk_property_value_string_get(value)); break; case ETK_WINDOW_ICONIFIED_PROPERTY: - if (etk_property_value_bool_get(value)) - etk_window_iconify(window); - else - etk_window_deiconify(window); + etk_window_iconified_set(window, etk_property_value_bool_get(value)); break; case ETK_WINDOW_MAXIMIZED_PROPERTY: - if (etk_property_value_bool_get(value)) - etk_window_maximize(window); - else - etk_window_unmaximize(window); + etk_window_maximized_set(window, etk_property_value_bool_get(value)); break; case ETK_WINDOW_FULLSCREEN_PROPERTY: - if (etk_property_value_bool_get(value)) - etk_window_fullscreen(window); - else - etk_window_unfullscreen(window); + etk_window_fullscreen_set(window, etk_property_value_bool_get(value)); break; case ETK_WINDOW_STICKY_PROPERTY: etk_window_sticky_set(window, etk_property_value_bool_get(value)); break; case ETK_WINDOW_FOCUSED_PROPERTY: - if (etk_property_value_bool_get(value)) - etk_window_focus(window); - else - etk_window_unfocus(window); + etk_window_focused_set(window, etk_property_value_bool_get(value)); break; case ETK_WINDOW_DECORATED_PROPERTY: etk_window_decorated_set(window, etk_property_value_bool_get(value)); @@ -653,19 +596,19 @@ etk_property_value_string_set(value, etk_window_title_get(window)); break; case ETK_WINDOW_ICONIFIED_PROPERTY: - etk_property_value_bool_set(value, etk_window_is_iconified(window)); + etk_property_value_bool_set(value, etk_window_iconified_get(window)); break; case ETK_WINDOW_MAXIMIZED_PROPERTY: - etk_property_value_bool_set(value, etk_window_is_maximized(window)); + etk_property_value_bool_set(value, etk_window_maximized_get(window)); break; case ETK_WINDOW_FULLSCREEN_PROPERTY: - etk_property_value_bool_set(value, etk_window_is_fullscreen(window)); + etk_property_value_bool_set(value, etk_window_fullscreen_get(window)); break; case ETK_WINDOW_STICKY_PROPERTY: etk_property_value_bool_set(value, etk_window_sticky_get(window)); break; case ETK_WINDOW_FOCUSED_PROPERTY: - etk_property_value_bool_set(value, etk_window_is_focused(window)); + etk_property_value_bool_set(value, etk_window_focused_get(window)); break; case ETK_WINDOW_DECORATED_PROPERTY: etk_property_value_bool_set(value, etk_window_decorated_get(window)); @@ -777,48 +720,47 @@ etk_engine_window_pointer_set(window, pointer_type); } -/** @} */ - +/* Called when the window is moved by the engine */ static void _etk_window_move_cb(Etk_Window *window) { etk_signal_emit(_etk_window_signals[ETK_WINDOW_MOVE_SIGNAL], ETK_OBJECT(window), NULL); } +/* Called when the window is resized by the engine */ static void _etk_window_resize_cb(Etk_Window *window) { etk_signal_emit(_etk_window_signals[ETK_WINDOW_RESIZE_SIGNAL], ETK_OBJECT(window), NULL); etk_widget_redraw_queue(ETK_WIDGET(window)); } +/* Called when the window is focused by the engine */ static void _etk_window_focus_in_cb(Etk_Window *window) { etk_signal_emit(_etk_window_signals[ETK_WINDOW_FOCUS_IN_SIGNAL], ETK_OBJECT(window), NULL); etk_object_notify(ETK_OBJECT(window), "focused"); } +/* Called when the window is unfocused by the engine */ static void _etk_window_focus_out_cb(Etk_Window *window) { etk_signal_emit(_etk_window_signals[ETK_WINDOW_FOCUS_OUT_SIGNAL], ETK_OBJECT(window), NULL); etk_object_notify(ETK_OBJECT(window), "focused"); } -static void _etk_window_sticky_cb(Etk_Window *window) +/* Called when the window's sticky setting has changed */ +static void _etk_window_sticky_changed_cb(Etk_Window *window) { - etk_signal_emit(_etk_window_signals[ETK_WINDOW_STICKY_SIGNAL], ETK_OBJECT(window), NULL); - etk_object_notify(ETK_OBJECT(window), "sticky"); -} - -static void _etk_window_unsticky_cb(Etk_Window *window) -{ - etk_signal_emit(_etk_window_signals[ETK_WINDOW_UNSTICKY_SIGNAL], ETK_OBJECT(window), NULL); etk_object_notify(ETK_OBJECT(window), "sticky"); } +/* Called when the engine asks to delete the window */ static void _etk_window_delete_request_cb(Etk_Window *window) { Etk_Bool result; etk_signal_emit(_etk_window_signals[ETK_WINDOW_DELETE_EVENT_SIGNAL], ETK_OBJECT(window), &result); if (!result) - etk_object_destroy(ETK_OBJECT(window)); + etk_object_destroy(ETK_OBJECT(window)); } + +/** @} */ =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_window.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- etk_window.h 27 Jul 2006 16:28:01 -0000 1.13 +++ etk_window.h 28 Jul 2006 00:57:05 -0000 1.14 @@ -44,8 +44,7 @@ void (*resize_cb)(Etk_Window *window); void (*focus_in_cb)(Etk_Window *window); void (*focus_out_cb)(Etk_Window *window); - void (*sticky_cb)(Etk_Window *window); - void (*unsticky_cb)(Etk_Window *window); + void (*sticky_changed_cb)(Etk_Window *window); void (*delete_request_cb)(Etk_Window *window); }; @@ -61,29 +60,23 @@ void etk_window_geometry_get(Etk_Window *window, int *x, int *y, int *w, int *h); void etk_window_center_on_window(Etk_Window *window_to_center, Etk_Window *window); void etk_window_move_to_mouse(Etk_Window *window); - -void etk_window_iconify(Etk_Window *window); -void etk_window_deiconify(Etk_Window *window); -Etk_Bool etk_window_is_iconified(Etk_Window *window); - -void etk_window_maximize(Etk_Window *window); -void etk_window_unmaximize(Etk_Window *window); -Etk_Bool etk_window_is_maximized(Etk_Window *window); - -void etk_window_fullscreen(Etk_Window *window); -void etk_window_unfullscreen(Etk_Window *window); -Etk_Bool etk_window_is_fullscreen(Etk_Window *window); +void etk_window_modal_for_window(Etk_Window *window_to_modal, Etk_Window *window); void etk_window_raise(Etk_Window *window); -void etk_window_lower(Etk_Window *window); +void etk_window_lower(Etk_Window *window); -void etk_window_sticky_set(Etk_Window *window, Etk_Bool on); -Etk_Bool etk_window_sticky_get(Etk_Window *window); +void etk_window_iconified_set(Etk_Window *window, Etk_Bool iconified); +Etk_Bool etk_window_iconified_get(Etk_Window *window); +void etk_window_maximized_set(Etk_Window *window, Etk_Bool maximized); +Etk_Bool etk_window_maximized_get(Etk_Window *window); +void etk_window_fullscreen_set(Etk_Window *window, Etk_Bool fullscreen); +Etk_Bool etk_window_fullscreen_get(Etk_Window *window); -void etk_window_focus(Etk_Window *window); -void etk_window_unfocus(Etk_Window *window); -Etk_Bool etk_window_is_focused(Etk_Window *window); +void etk_window_focused_set(Etk_Window *window, Etk_Bool focused); +Etk_Bool etk_window_focused_get(Etk_Window *window); +void etk_window_sticky_set(Etk_Window *window, Etk_Bool sticky); +Etk_Bool etk_window_sticky_get(Etk_Window *window); void etk_window_decorated_set(Etk_Window *window, Etk_Bool decorated); Etk_Bool etk_window_decorated_get(Etk_Window *window); void etk_window_shaped_set(Etk_Window *window, Etk_Bool shaped); @@ -95,6 +88,8 @@ Etk_Bool etk_window_skip_pager_hint_get(Etk_Window *window); void etk_window_dnd_aware_set(Etk_Window *window, Etk_Bool on); +Etk_Bool etk_window_dnd_aware_get(Etk_Window *window); + Etk_Bool etk_window_hide_on_delete(Etk_Object *window, void *data); ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs