Commit Graph

46 Commits

Author SHA1 Message Date
Jean Guyomarc'h e7dc1491a2 ecore_cocoa: rename width and height parameters
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:56:24 -08:00
Jean Guyomarc'h 3b61c2e07c ecore_cocoa: better naming of events
Lost and got focused have been renamed FOCUSED and UNFOCUSED to mirror
the focus API in Elementary.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:56:20 -08:00
Jean Guyomarc'h 84bbe500c5 ecore_cocoa: replace Ecore_Cocoa_Window_Id by Ecore_Cocoa_Object
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:56:16 -08:00
Jean Guyomarc'h 71199709db ecore_cocoa: unify API with Ecore_Evas
- Sizes are signed integers
- Width is named w
- Height is named h

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:56:12 -08:00
Jean Guyomarc'h 0abeacb8ce ecore_cocoa: introduce Ecore_Cocoa_Object
This type is used as a bridge between objective-c objects (which are
ALWAYS pointed to) and the C interface.
Ecore_Cocoa_Object* is a less ugly substitute for void*.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:56:08 -08:00
Jean Guyomarc'h 1528b8c6aa ecore_cocoa: use Eina_Bool instead of int
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:56:04 -08:00
Jean Guyomarc'h f85667c3fc ecore_cocoa: implement and const-correct window size step getter
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:56:01 -08:00
Jean Guyomarc'h 070430d51a ecore_cocoa: implement and const-correct window size max getter
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:55:57 -08:00
Jean Guyomarc'h 3eee82de31 ecore_cocoa: implement and const-correct window min size getter
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:55:53 -08:00
Jean Guyomarc'h 5deb157770 ecore_cocoa: implement and const-correct window size getter
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:55:49 -08:00
Jean Guyomarc'h 24a7209b51 ecore_cocoa: implement and const-correct window geometry getter
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-02 13:55:43 -08:00
Jean Guyomarc'h 8d364f56f4 ecore_cocoa: possibly avoid useless copies 2016-01-07 12:03:04 +01:00
Jaehyun Cho 91d9e7f83c Revert "ecore_cocoa: add support for system cursors"
This reverts commit 4623d57762.
This commit is duplicated with 2c93c73cbd.
2015-12-11 14:28:33 +09:00
Jean Guyomarc'h 4623d57762 ecore_cocoa: add support for system cursors
- Ecore_Cocoa_Cursor enum which references system cursors;
- API to show/hide cursor: ecore_cocoa_window_cursor_show();
- API to set system cursor: ecore_cocoa_window_cursor_set();
- Ecore_Evas interface to get Ecore_Cocoa_Window from Ecore_Evas.

@feature

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-03 12:07:20 -05:00
Jean Guyomarc'h 12db3c2213 ecore_cocoa: fix live resize of windows
This was a tricky little bastard!
When a window is live resized, the NSWindow which is the target of
the live resize will wait for a kevent from the window manager,
until live resizing is done. So... live resizing is synchronous
and blocks the main thread... hence ecore_main_loop.

- When live resize starts, the Ecore_Timer which polls NSRunLoop
is paused.
- When the window is resized, the ecore_main_loop is run manually
with ecore_main_loop_iterate() to process Ecore events (mostly
Ecore_Evas)
- When live resize finished, the Ecore_Timer which polls NSRunLoop
is resumed.

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:33 -08:00
Jean Guyomarc'h 907f14c003 ecore_cocoa: NSApp must be configured in the App wrapper
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h af19d15a78 ecore_cocoa_window: cosmetic changes
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h a8c9c9a60e ecore_cocoa: remove EINA_UNUSED because parameter is used
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h f83ece242e ecore_cocoa: remove debug log
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h 70a04ea746 ecore_cocoa: reindent file
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h 0bb310f2ad ecore_cocoa: add more safety checks
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h b61fc5814b ecore_cocoa: remove EINA_UNUSED because parameter is actually used
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h 916bf675e1 ecore_cocoa: use EAPI in implementation 2015-12-01 12:15:31 -08:00
Jean Guyomarc'h d48faf39bf ecore_cocoa: improve const-correctness 2015-12-01 12:15:31 -08:00
Jean Guyomarc'h 2c93c73cbd ecore_cocoa: add support for system cursors
- Ecore_Cocoa_Cursor enum which references system cursors;
- API to show/hide cursor: ecore_cocoa_window_cursor_show();
- API to set system cursor: ecore_cocoa_window_cursor_set();
- Ecore_Evas interface to get Ecore_Cocoa_Window from Ecore_Evas.

@feature

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:31 -08:00
pierre lamot c3f40bd0f9 ecore_cocoa: prevent mouse event loss when clicking in titlebar
fix
2015-11-02 20:15:59 +01:00
Nicolas Aguirre 51e0bc022b ecore_cocoa: fix a bug where event timestamp was not retrieved correctly.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-13 15:40:01 -07:00
Stefan Schmidt 56560329ae ecore: cocoa: convert dos to unix line endings 2015-09-04 14:54:07 +02:00
Jean Guyomarc'h 3a3b12d403 ecore_cocoa,ethumb: fix compiling after EAPI policy changes
Summary:
I went through a lot of undefined symbols while compiling ecore_evas_cocoa
module and ethumb-related binaries. E.g.:

  Undefined symbols for architecture x86_64:
    "_ECORE_COCOA_EVENT_EXPOSE", referenced from:
        _ecore_evas_cocoa_new_internal in modules_ecore_evas_engines_cocoa_module_la-ecore_evas_cocoa.o
    "_ECORE_COCOA_EVENT_GOT_FOCUS", referenced from:
        _ecore_evas_cocoa_new_internal in modules_ecore_evas_engines_cocoa_module_la-ecore_evas_cocoa.o
    "_ECORE_COCOA_EVENT_LOST_FOCUS", referenced from:
        _ecore_evas_cocoa_new_internal in modules_ecore_evas_engines_cocoa_module_la-ecore_evas_cocoa.o
    "_ECORE_COCOA_EVENT_RESIZE", referenced from:
        _ecore_evas_cocoa_new_internal in modules_ecore_evas_engines_cocoa_module_la-ecore_evas_cocoa.o
    "_ECORE_COCOA_EVENT_WINDOW_DESTROY", referenced from:
        _ecore_evas_cocoa_new_internal in modules_ecore_evas_engines_cocoa_module_la-ecore_evas_cocoa.o
    "_ecore_cocoa_init", referenced from:
        _ecore_evas_cocoa_new_internal in modules_ecore_evas_engines_cocoa_module_la-ecore_evas_cocoa.o
    "_ecore_cocoa_screen_size_get", referenced from:
        __ecore_evas_screen_geometry_get in modules_ecore_evas_engines_cocoa_module_la-ecore_evas_cocoa.o
    "_ecore_cocoa_shutdown", referenced from:
        _ecore_evas_cocoa_new_internal in modules_ecore_evas_engines_cocoa_module_la-ecore_evas_cocoa.o
        __ecore_evas_cocoa_free in modules_ecore_evas_engines_cocoa_module_la-ecore_evas_cocoa.o

  Undefined symbols for architecture x86_64:
    "_ethumb_calculate_aspect_from_ratio", referenced from:
        __resize_movie in modules_ethumb_emotion_module_la-emotion.o
    "_ethumb_calculate_fill_from_ratio", referenced from:
        __resize_movie in modules_ethumb_emotion_module_la-emotion.o
    "_ethumb_ecore_evas_get", referenced from:
        __frame_decode_cb in modules_ethumb_emotion_module_la-emotion.o
    "_ethumb_evas_get", referenced from:
        __thumb_generate in modules_ethumb_emotion_module_la-emotion.o
        __finish_thumb_generation in modules_ethumb_emotion_module_la-emotion.o
    "_ethumb_finished_callback_call", referenced from:
        __thumb_generate in modules_ethumb_emotion_module_la-emotion.o
        __frame_decode_cb in modules_ethumb_emotion_module_la-emotion.o
        __finish_thumb_generation in modules_ethumb_emotion_module_la-emotion.o
    "_ethumb_image_save", referenced from:
        __frame_decode_cb in modules_ethumb_emotion_module_la-emotion.o
    "_ethumb_plugin_image_resize", referenced from:
        __resize_movie in modules_ethumb_emotion_module_la-emotion.o
    "_ethumb_plugin_register", referenced from:
        __module_init in modules_ethumb_emotion_module_la-emotion.o
    "_ethumb_plugin_unregister", referenced from:
        __module_shutdown in modules_ethumb_emotion_module_la-emotion.o

EAPI was not well re-defined in both cases. It has been handled in
ecore_cocoa_private.h and ethumb_private.h. These files must be included
after a main library header (because EAPI is undef there).

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2483

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-10 22:58:14 +02:00
pierre lamot 59532c7d96 ecore_cocoa: add missing window state functions
implement missing window state functions:

  * raise
  * lower
  * activate
  * iconified_set
  * withdrawn_set
  * move

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-17 10:42:51 +01:00
pierre lamot ca3bd69485 ecore_cocoa: add functions to allow min/max window size
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-17 10:42:51 +01:00
pierre lamot ef7e8562a1 ecore_cocoa: don't reject mouse events outside the window
mouse events ouside the window where rejected. that was creating
interactions where half an event was created, the application was
then not able to process correctly following events.

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-17 10:42:51 +01:00
pierre lamot 6ea9b476ad ecore_cocoa: release resources on window close event
@fix this patch:

catch the window close event from cocoa and send an ecore event
this event is catched by a handler in ecore_evas wich will
call the registered fn_delete_request (from elementary for instance)

/!\ this patch is currently incomplete and leads to a segv when
closing the last window

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-17 10:42:51 +01:00
pierre lamot d9830a199f ecore_cocoa: handle right and other mouse events
right and other mouse events where missing in the patch
correcting mouse event handling

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:59 +01:00
pierre lamot c0aedc828a ecore_cocoa: move mouse event handling to NSWindow
Mouse events was broken after a resize of the window from the left
or the bottom. As I understand, theses resize were changing the origin
of Cocoa window independly from the origin of the EFL.

This has been resolved by moving mouse envents handling to our NSWindow
delegate. thus events are always in the right referential.

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:59 +01:00
Guilherme Lepsch 6749348325 ecore_cocoa: remove duplicated includes.
Summary: Remove duplicated includes in source file.

Reviewers: naguirre

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2001

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-20 11:29:34 +01:00
Nicolas Aguirre 72baccaf44 ecore_cocoa: create a log domain and use Eina_Log.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-05 16:38:07 +01:00
Romain Perier ff9eb2e8e7 ecore_cocoa: add new events type for multiple window support.
This commit adds a method in Ecore_Cocoa_Window to be able to retrieve an unique
identifier for each window. It adds new events type and modify existing ones to
pass these windows identifiers through the event call chain. Resize, GotFocus and
LotFocus events are also updated to pass these identifiers to event handlers.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-05 16:38:07 +01:00
Romain Perier c6945c075e ecore_cocoa: use the right Cocoa notification handlers for focus events
Don't use NSAppKitDefined events subtype for focus events, which contain NULL
window object most of the time. Use the NSWindowDelegate method designed for that
purpose instead. It fixes random focus issues in windows which was caused by
incorrect window identifier not found in ecore_evas_cocoa.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-05 16:38:07 +01:00
Romain Perier 382957c2b3 ecore_cocoa: add on the fly resizing support.
Until now, video_resize events was received only when application returned control
to the event loop. When a window is resized dynamically a lot of video_resize
events are emitted from EcoreCocoaWindow::windowDidResize and not handled
immediatly, only when the main thread is back to the ecore main loop. This is why
there are not refreshed window areas. Call ecore_main_loop_iterate() from
windowDidResize solves the issue.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-05 16:38:07 +01:00
Jean Guyomarc'h c03876d611 ecore_cocoa: NSRunLoop integration
Summary: Get rid of the old NSApplicationLoad() which was aimed to be use with Carbon. Unless the NSRunLoop is strictly integrated to the ecore_main_loop() (where cocoa events would be checked when entering the ecore_main_loop) I think the poller is the only option left.

Reviewers: raster, naguirre, raoulh, stefan_schmidt, cedric

@feature

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1222

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-09-03 20:34:57 +02:00
Jean Guyomarc'h f8235ff5c1 ecore_cocoa: Lion fullscreen workaround + warning fixes
Summary: Warnings and deprecated code fixes. I started to implement the OSX-Lion fullscreen style.

Reviewers: cedric, naguirre, raster, raoulh

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1175
2014-07-23 16:56:16 +02:00
Jean Guyomarc'h be077f079d ecore_cocoa: Introduce canvas resizing + warning fixes
Summary: Add support for canvas resizing: the window was resizable but its content was not resized.

Reviewers: raster, raoulh, naguirre, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1163
2014-07-10 20:04:24 +02:00
Raoul Hecky 6f2d060c80 ecore_cocoa: add code from old branch 2014-06-18 11:34:07 +02:00
Nicolas Aguirre 7e0d7a2c54 ecore_cocoa: indent with efl style 2014-06-18 11:34:06 +02:00
Vincent Torri 7d6010b12c merge: add escape ecore, fix several bugs
SVN revision: 79995
2012-12-02 22:35:45 +00:00