* ecore_cocoa: Improve Mac OS X support.
SVN revision: 43196
This commit is contained in:
parent
6f4b45e296
commit
298147556b
|
@ -412,13 +412,6 @@ if test "x${have_iconv}" = "xno" ; then
|
|||
])
|
||||
fi
|
||||
|
||||
# force the iconv library on mac os x
|
||||
case "$host_os" in
|
||||
darwin*)
|
||||
iconv_libs="/usr/lib/libiconv.la"
|
||||
have_iconv="yes"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_MSG_CHECKING(for explicit iconv link options)
|
||||
AC_MSG_RESULT($iconv_libs)
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct _Ecore_Cocoa_Window Ecore_Cocoa_Window;
|
||||
|
||||
EAPI extern int ECORE_QUARTZ_EVENT_GOT_FOCUS;
|
||||
EAPI extern int ECORE_QUARTZ_EVENT_LOST_FOCUS;
|
||||
EAPI extern int ECORE_QUARTZ_EVENT_RESIZE;
|
||||
|
@ -35,10 +37,99 @@ struct _Ecore_Quartz_Event_Video_Resize
|
|||
int h;
|
||||
};
|
||||
|
||||
|
||||
/* Core */
|
||||
|
||||
EAPI int ecore_quartz_init(const char *name);
|
||||
EAPI int ecore_quartz_shutdown(void);
|
||||
EAPI void ecore_quartz_feed_events(void);
|
||||
|
||||
/* Window */
|
||||
|
||||
EAPI Ecore_Cocoa_Window *ecore_cocoa_window_new(int x,
|
||||
int y,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
EAPI void ecore_cocoa_window_free(Ecore_Cocoa_Window *window);
|
||||
|
||||
EAPI void *ecore_cocoa_window_hwnd_get(Ecore_Cocoa_Window *window);
|
||||
|
||||
EAPI void ecore_cocoa_window_move(Ecore_Cocoa_Window *window,
|
||||
int x,
|
||||
int y);
|
||||
|
||||
EAPI void ecore_cocoa_window_resize(Ecore_Cocoa_Window *window,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
EAPI void ecore_cocoa_window_move_resize(Ecore_Cocoa_Window *window,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
EAPI void ecore_cocoa_window_geometry_get(Ecore_Cocoa_Window *window,
|
||||
int *x,
|
||||
int *y,
|
||||
int *width,
|
||||
int *height);
|
||||
|
||||
EAPI void ecore_cocoa_window_size_get(Ecore_Cocoa_Window *window,
|
||||
int *width,
|
||||
int *height);
|
||||
|
||||
EAPI void ecore_cocoa_window_size_min_set(Ecore_Cocoa_Window *window,
|
||||
unsigned int min_width,
|
||||
unsigned int min_height);
|
||||
|
||||
EAPI void ecore_cocoa_window_size_min_get(Ecore_Cocoa_Window *window,
|
||||
unsigned int *min_width,
|
||||
unsigned int *min_height);
|
||||
|
||||
EAPI void ecore_cocoa_window_size_max_set(Ecore_Cocoa_Window *window,
|
||||
unsigned int max_width,
|
||||
unsigned int max_height);
|
||||
|
||||
EAPI void ecore_cocoa_window_size_max_get(Ecore_Cocoa_Window *window,
|
||||
unsigned int *max_width,
|
||||
unsigned int *max_height);
|
||||
|
||||
EAPI void ecore_cocoa_window_size_base_set(Ecore_Cocoa_Window *window,
|
||||
unsigned int base_width,
|
||||
unsigned int base_height);
|
||||
|
||||
EAPI void ecore_cocoa_window_size_base_get(Ecore_Cocoa_Window *window,
|
||||
unsigned int *base_width,
|
||||
unsigned int *base_height);
|
||||
|
||||
EAPI void ecore_cocoa_window_size_step_set(Ecore_Cocoa_Window *window,
|
||||
unsigned int step_width,
|
||||
unsigned int step_height);
|
||||
|
||||
EAPI void ecore_cocoa_window_size_step_get(Ecore_Cocoa_Window *window,
|
||||
unsigned int *step_width,
|
||||
unsigned int *step_height);
|
||||
|
||||
EAPI void ecore_cocoa_window_show(Ecore_Cocoa_Window *window);
|
||||
|
||||
EAPI void ecore_cocoa_window_hide(Ecore_Cocoa_Window *window);
|
||||
|
||||
EAPI void ecore_cocoa_window_raise(Ecore_Cocoa_Window *window);
|
||||
|
||||
EAPI void ecore_cocoa_window_lower(Ecore_Cocoa_Window *window);
|
||||
|
||||
EAPI void ecore_cocoa_window_title_set(Ecore_Cocoa_Window *window,
|
||||
const char *title);
|
||||
|
||||
EAPI void ecore_cocoa_window_focus_set(Ecore_Cocoa_Window *window);
|
||||
|
||||
EAPI void ecore_cocoa_window_iconified_set(Ecore_Cocoa_Window *window,
|
||||
int on);
|
||||
|
||||
EAPI void ecore_cocoa_window_borderless_set(Ecore_Cocoa_Window *window,
|
||||
int on);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -16,7 +16,8 @@ Ecore_Quartz.h \
|
|||
Ecore_Quartz_Keys.h
|
||||
|
||||
libecore_quartz_la_SOURCES = \
|
||||
ecore_quartz.m
|
||||
ecore_quartz.m \
|
||||
ecore_cocoa_window.m
|
||||
|
||||
libecore_quartz_la_LIBADD = \
|
||||
$(top_builddir)/src/lib/ecore/libecore.la \
|
||||
|
@ -27,3 +28,5 @@ $(top_builddir)/src/lib/ecore_input/libecore_input.la \
|
|||
libecore_quartz_la_LDFLAGS = @quartz_ldflags@ -version-info @version_info@ @ecore_quartz_release_info@
|
||||
|
||||
endif
|
||||
|
||||
EXTRA_DIST = ecore_cocoa_private.h
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef _ECORE_COCOA_PRIVATE_H
|
||||
#define _ECORE_COCOA_PRIVATE_H
|
||||
|
||||
|
||||
struct _Ecore_Cocoa_Window
|
||||
{
|
||||
NSWindow *window;
|
||||
|
||||
unsigned int borderless : 1;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
|
@ -0,0 +1,110 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <Cocoa/Cocoa.h>
|
||||
|
||||
#include "Ecore_Quartz.h"
|
||||
|
||||
Ecore_Cocoa_Window *
|
||||
ecore_cocoa_window_new(int x,
|
||||
int y,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
NSWindow *window;
|
||||
|
||||
window = [[NSWindow alloc]
|
||||
initWithContentRect:NSMakeRect(x, y, width, height)
|
||||
styleMask:(NSTitledWindowMask |
|
||||
NSClosableWindowMask |
|
||||
NSResizableWindowMask |
|
||||
NSMiniaturizableWindowMask)
|
||||
backing:NSBackingStoreBuffered
|
||||
defer:NO
|
||||
screen:nil
|
||||
];
|
||||
if (!window)
|
||||
return NULL;
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
void
|
||||
ecore_cocoa_window_free(Ecore_Cocoa_Window *window)
|
||||
{
|
||||
if (!window)
|
||||
return;
|
||||
|
||||
[window release];
|
||||
}
|
||||
|
||||
void
|
||||
ecore_cocoa_window_move(Ecore_Cocoa_Window *window,
|
||||
int x,
|
||||
int y)
|
||||
{
|
||||
if (!window)
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
ecore_cocoa_window_resize(Ecore_Cocoa_Window *window,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
if (!window)
|
||||
return;
|
||||
|
||||
[window setContentSize: NSMakeSize(width, height)];
|
||||
}
|
||||
|
||||
void
|
||||
ecore_cocoa_window_move_resize(Ecore_Cocoa_Window *window,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
if (!window)
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
ecore_cocoa_window_title_set(Ecore_Cocoa_Window *window, const char *title)
|
||||
{
|
||||
if (!window || !title)
|
||||
return;
|
||||
|
||||
[window setTitle:[NSString stringWithUTF8String:title]];
|
||||
}
|
||||
|
||||
void
|
||||
ecore_cocoa_window_show(Ecore_Cocoa_Window *window)
|
||||
{
|
||||
if (!window || [window isVisible])
|
||||
return;
|
||||
|
||||
[window orderFront:NSApp];
|
||||
}
|
||||
|
||||
void
|
||||
ecore_cocoa_window_hide(Ecore_Cocoa_Window *window)
|
||||
{
|
||||
if (!window || ![window isVisible])
|
||||
return;
|
||||
|
||||
[window orderOut:NSApp];
|
||||
}
|
||||
|
||||
void
|
||||
ecore_cocoa_window_borderless_set(Ecore_Cocoa_Window *window,
|
||||
int on)
|
||||
{
|
||||
if (!window)
|
||||
return;
|
||||
|
||||
if (on)
|
||||
[window setContentBorderThickness:0.0
|
||||
forEdje:NSMinXEdge | NSMinYEdge | NSMaxXEdge | NSMaxYEdge];
|
||||
}
|
Loading…
Reference in New Issue