generate pkgconfig file (don't commit yet i fucked it up)
Some checks failed
pyrite-dev/milsko/pipeline/head There was a failure building this commit
Some checks failed
pyrite-dev/milsko/pipeline/head There was a failure building this commit
This commit is contained in:
parent
4b6eae99dc
commit
c705d2b98c
375 changed files with 203503 additions and 203476 deletions
|
|
@ -1,229 +1,229 @@
|
|||
/*!
|
||||
* @file Mw/LowLevel/Cairo.h
|
||||
* @brief Cairo Backend
|
||||
* @warning This is used MEGA internally.
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_CAIRO_H__
|
||||
#define __MW_LOWLEVEL_CAIRO_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
#include <Mw/LowLevel.h>
|
||||
#include <Mw/Abstract/Dynamic.h>
|
||||
|
||||
#include <cairo/cairo.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
MWDECL int MwLLCairoCallInit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#define CSD_BORDER_FRAME_LEFT 5
|
||||
#define CSD_BORDER_FRAME_RIGHT 5
|
||||
#define CSD_BORDER_FRAME_TOP 23
|
||||
#define CSD_BORDER_FRAME_BOTTOM 4
|
||||
|
||||
typedef struct cairo_call_table {
|
||||
void* cairo_lib;
|
||||
|
||||
void (*cairo_set_line_width)(cairo_t* cr,
|
||||
double width);
|
||||
void (*cairo_scale)(cairo_t* cr,
|
||||
double sx,
|
||||
double sy);
|
||||
cairo_t* (*cairo_create)(cairo_surface_t* target);
|
||||
void (*cairo_move_to)(cairo_t* cr,
|
||||
double x,
|
||||
double y);
|
||||
|
||||
void (*cairo_rectangle)(cairo_t* cr,
|
||||
double x,
|
||||
double y,
|
||||
double width,
|
||||
double height);
|
||||
void (*cairo_new_path)(cairo_t* cr);
|
||||
void (*cairo_set_line_cap)(cairo_t* cr,
|
||||
cairo_line_cap_t line_cap);
|
||||
void (*cairo_set_source_rgba)(cairo_t* cr,
|
||||
double red,
|
||||
double green,
|
||||
double blue,
|
||||
double alpha);
|
||||
void (*cairo_set_source_rgb)(cairo_t* cr,
|
||||
double red,
|
||||
double green,
|
||||
double blue);
|
||||
void (*cairo_reset_clip)(cairo_t* cr);
|
||||
unsigned char* (*cairo_image_surface_get_data)(cairo_surface_t* surface);
|
||||
void (*cairo_line_to)(cairo_t* cr,
|
||||
double x,
|
||||
double y);
|
||||
cairo_status_t (*cairo_surface_write_to_png)(cairo_surface_t* surface, const char* filename);
|
||||
void (*cairo_surface_destroy)(cairo_surface_t* surface);
|
||||
cairo_surface_t* (*cairo_image_surface_create_for_data)(unsigned char* data,
|
||||
cairo_format_t format,
|
||||
int width,
|
||||
int height,
|
||||
int stride);
|
||||
cairo_surface_t* (*cairo_image_surface_create)(cairo_format_t format,
|
||||
int width,
|
||||
int height);
|
||||
void (*cairo_destroy)(cairo_t* cr);
|
||||
cairo_pattern_t* (*cairo_get_source)(cairo_t* cr);
|
||||
void (*cairo_close_path)(cairo_t* cr);
|
||||
void (*cairo_paint)(cairo_t* cr);
|
||||
void (*cairo_surface_flush)(cairo_surface_t* surface);
|
||||
void (*cairo_clip)(cairo_t* cr);
|
||||
void (*cairo_save)(cairo_t* cr);
|
||||
void (*cairo_restore)(cairo_t* cr);
|
||||
void (*cairo_surface_mark_dirty)(cairo_surface_t* surface);
|
||||
void (*cairo_stroke)(cairo_t* cr);
|
||||
void (*cairo_set_source_surface)(cairo_t* cr,
|
||||
cairo_surface_t* surface,
|
||||
double x,
|
||||
double y);
|
||||
void (*cairo_fill)(cairo_t* cr);
|
||||
void (*cairo_pattern_set_filter)(cairo_pattern_t* pattern,
|
||||
cairo_filter_t filter);
|
||||
void (*cairo_set_antialias)(cairo_t*, cairo_antialias_t);
|
||||
void (*cairo_set_operator)(cairo_t* cr, cairo_operator_t op);
|
||||
|
||||
} cairo_call_table_t;
|
||||
|
||||
extern cairo_call_table_t cairo_call_tbl;
|
||||
|
||||
/* defined inline right here so that it doesn't conflict with the other macros */
|
||||
MwInline int cairo_load_funcs() {
|
||||
#ifdef __APPLE__
|
||||
cairo_call_tbl.cairo_lib = MwDynamicOpen("libcairo.dylib");
|
||||
#else
|
||||
cairo_call_tbl.cairo_lib = MwDynamicOpen("libcairo.so");
|
||||
#endif
|
||||
if(!cairo_call_tbl.cairo_lib) {
|
||||
printf("(libcairo not found, cannot use Wayland or Cairo backend.)\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
#define CAIRO_FUNC(x) \
|
||||
cairo_call_tbl.x = MwDynamicSymbol(cairo_call_tbl.cairo_lib, #x); \
|
||||
if(!cairo_call_tbl.x) { \
|
||||
printf("WARNING: Could use Wayland/Cairo backend if " #x " was not found. Do you have libcairo?\n"); \
|
||||
return 1; \
|
||||
};
|
||||
|
||||
CAIRO_FUNC(cairo_set_line_width);
|
||||
CAIRO_FUNC(cairo_scale);
|
||||
CAIRO_FUNC(cairo_create);
|
||||
CAIRO_FUNC(cairo_move_to);
|
||||
CAIRO_FUNC(cairo_rectangle);
|
||||
CAIRO_FUNC(cairo_new_path);
|
||||
CAIRO_FUNC(cairo_set_line_cap);
|
||||
CAIRO_FUNC(cairo_set_antialias);
|
||||
CAIRO_FUNC(cairo_set_source_rgba);
|
||||
CAIRO_FUNC(cairo_set_source_rgb);
|
||||
CAIRO_FUNC(cairo_reset_clip);
|
||||
CAIRO_FUNC(cairo_image_surface_get_data);
|
||||
CAIRO_FUNC(cairo_line_to);
|
||||
CAIRO_FUNC(cairo_surface_write_to_png);
|
||||
CAIRO_FUNC(cairo_surface_destroy);
|
||||
CAIRO_FUNC(cairo_image_surface_create_for_data);
|
||||
CAIRO_FUNC(cairo_image_surface_create);
|
||||
CAIRO_FUNC(cairo_destroy);
|
||||
CAIRO_FUNC(cairo_get_source);
|
||||
CAIRO_FUNC(cairo_close_path);
|
||||
CAIRO_FUNC(cairo_paint);
|
||||
CAIRO_FUNC(cairo_surface_flush);
|
||||
CAIRO_FUNC(cairo_clip);
|
||||
CAIRO_FUNC(cairo_save);
|
||||
CAIRO_FUNC(cairo_restore);
|
||||
CAIRO_FUNC(cairo_surface_mark_dirty);
|
||||
CAIRO_FUNC(cairo_stroke);
|
||||
CAIRO_FUNC(cairo_set_source_surface);
|
||||
CAIRO_FUNC(cairo_fill);
|
||||
CAIRO_FUNC(cairo_set_operator);
|
||||
CAIRO_FUNC(cairo_pattern_set_filter);
|
||||
#undef CAIRO_FUNC
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define cairo_set_line_width cairo_call_tbl.cairo_set_line_width
|
||||
#define cairo_scale cairo_call_tbl.cairo_scale
|
||||
#define cairo_create cairo_call_tbl.cairo_create
|
||||
#define cairo_move_to cairo_call_tbl.cairo_move_to
|
||||
#define cairo_rectangle cairo_call_tbl.cairo_rectangle
|
||||
#define cairo_new_path cairo_call_tbl.cairo_new_path
|
||||
#define cairo_set_line_cap cairo_call_tbl.cairo_set_line_cap
|
||||
#define cairo_set_antialias cairo_call_tbl.cairo_set_antialias
|
||||
#define cairo_set_source_rgba cairo_call_tbl.cairo_set_source_rgba
|
||||
#define cairo_set_source_rgb cairo_call_tbl.cairo_set_source_rgb
|
||||
#define cairo_reset_clip cairo_call_tbl.cairo_reset_clip
|
||||
#define cairo_image_surface_get_data cairo_call_tbl.cairo_image_surface_get_data
|
||||
#define cairo_line_to cairo_call_tbl.cairo_line_to
|
||||
#define cairo_surface_write_to_png cairo_call_tbl.cairo_surface_write_to_png
|
||||
#define cairo_surface_destroy cairo_call_tbl.cairo_surface_destroy
|
||||
#define cairo_image_surface_create_for_data cairo_call_tbl.cairo_image_surface_create_for_data
|
||||
#define cairo_image_surface_create cairo_call_tbl.cairo_image_surface_create
|
||||
#define cairo_destroy cairo_call_tbl.cairo_destroy
|
||||
#define cairo_get_source cairo_call_tbl.cairo_get_source
|
||||
#define cairo_close_path cairo_call_tbl.cairo_close_path
|
||||
#define cairo_paint cairo_call_tbl.cairo_paint
|
||||
#define cairo_surface_flush cairo_call_tbl.cairo_surface_flush
|
||||
#define cairo_clip cairo_call_tbl.cairo_clip
|
||||
#define cairo_save cairo_call_tbl.cairo_save
|
||||
#define cairo_restore cairo_call_tbl.cairo_restore
|
||||
#define cairo_surface_mark_dirty cairo_call_tbl.cairo_surface_mark_dirty
|
||||
#define cairo_stroke cairo_call_tbl.cairo_stroke
|
||||
#define cairo_set_source_surface cairo_call_tbl.cairo_set_source_surface
|
||||
#define cairo_fill cairo_call_tbl.cairo_fill
|
||||
#define cairo_set_operator cairo_call_tbl.cairo_set_operator
|
||||
#define cairo_pattern_set_filter cairo_call_tbl.cairo_pattern_set_filter
|
||||
|
||||
struct _MwLLCairo {
|
||||
struct _MwLLCommon common;
|
||||
|
||||
cairo_surface_t* front_cs;
|
||||
cairo_surface_t* back_cs;
|
||||
cairo_t* front_cairo;
|
||||
cairo_t* back_cairo;
|
||||
/* The cairo to actually use for draw operations. Typically is front_cairo, but wayland's MwLLBeginDraw can change this to the back_cairo so it can be used to draw window decorations. */
|
||||
cairo_t* selected_cairo;
|
||||
|
||||
int x;
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
|
||||
MwBool toplevel;
|
||||
MwLL parent;
|
||||
};
|
||||
|
||||
struct _MwLLCairoColor {
|
||||
struct _MwLLCommonColor common;
|
||||
};
|
||||
|
||||
struct _MwLLCairoPixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
|
||||
cairo_surface_t* cs;
|
||||
};
|
||||
|
||||
void MwLLCairoFrontSetup(struct _MwLLCairo* cairo, MwU8* data, MwU32 width, MwU32 height);
|
||||
void MwLLCairoBackSetup(struct _MwLLCairo* cairo, MwU8* data, MwU32 width, MwU32 height);
|
||||
void MwLLCairoFrontDestroy(struct _MwLLCairo* cairo);
|
||||
void MwLLCairoBackDestroy(struct _MwLLCairo* cairo);
|
||||
void MwLLCairoPolygon(struct _MwLLCairo handle, MwPoint* points, int points_count, MwLLColor color);
|
||||
void MwLLCairoLine(struct _MwLLCairo handle, MwPoint* points, MwLLColor color);
|
||||
MwLLPixmap MwLLCairoCreatePixmap(struct _MwLLCairo handle, unsigned char* data, int width, int height);
|
||||
void MwLLCairoPixmapUpdate(MwLLPixmap handle);
|
||||
void MwLLCairoDestroyPixmap(MwLLPixmap pixmap);
|
||||
void MwLLCairoDrawPixmap(struct _MwLLCairo handle, MwRect* rect, MwLLPixmap pixmap);
|
||||
|
||||
void MwLLCairoDestroy(struct _MwLLCairo handle);
|
||||
|
||||
#endif
|
||||
/*!
|
||||
* @file Mw/LowLevel/Cairo.h
|
||||
* @brief Cairo Backend
|
||||
* @warning This is used MEGA internally.
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_CAIRO_H__
|
||||
#define __MW_LOWLEVEL_CAIRO_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
#include <Mw/LowLevel.h>
|
||||
#include <Mw/Abstract/Dynamic.h>
|
||||
|
||||
#include <cairo/cairo.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
MWDECL int MwLLCairoCallInit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#define CSD_BORDER_FRAME_LEFT 5
|
||||
#define CSD_BORDER_FRAME_RIGHT 5
|
||||
#define CSD_BORDER_FRAME_TOP 23
|
||||
#define CSD_BORDER_FRAME_BOTTOM 4
|
||||
|
||||
typedef struct cairo_call_table {
|
||||
void* cairo_lib;
|
||||
|
||||
void (*cairo_set_line_width)(cairo_t* cr,
|
||||
double width);
|
||||
void (*cairo_scale)(cairo_t* cr,
|
||||
double sx,
|
||||
double sy);
|
||||
cairo_t* (*cairo_create)(cairo_surface_t* target);
|
||||
void (*cairo_move_to)(cairo_t* cr,
|
||||
double x,
|
||||
double y);
|
||||
|
||||
void (*cairo_rectangle)(cairo_t* cr,
|
||||
double x,
|
||||
double y,
|
||||
double width,
|
||||
double height);
|
||||
void (*cairo_new_path)(cairo_t* cr);
|
||||
void (*cairo_set_line_cap)(cairo_t* cr,
|
||||
cairo_line_cap_t line_cap);
|
||||
void (*cairo_set_source_rgba)(cairo_t* cr,
|
||||
double red,
|
||||
double green,
|
||||
double blue,
|
||||
double alpha);
|
||||
void (*cairo_set_source_rgb)(cairo_t* cr,
|
||||
double red,
|
||||
double green,
|
||||
double blue);
|
||||
void (*cairo_reset_clip)(cairo_t* cr);
|
||||
unsigned char* (*cairo_image_surface_get_data)(cairo_surface_t* surface);
|
||||
void (*cairo_line_to)(cairo_t* cr,
|
||||
double x,
|
||||
double y);
|
||||
cairo_status_t (*cairo_surface_write_to_png)(cairo_surface_t* surface, const char* filename);
|
||||
void (*cairo_surface_destroy)(cairo_surface_t* surface);
|
||||
cairo_surface_t* (*cairo_image_surface_create_for_data)(unsigned char* data,
|
||||
cairo_format_t format,
|
||||
int width,
|
||||
int height,
|
||||
int stride);
|
||||
cairo_surface_t* (*cairo_image_surface_create)(cairo_format_t format,
|
||||
int width,
|
||||
int height);
|
||||
void (*cairo_destroy)(cairo_t* cr);
|
||||
cairo_pattern_t* (*cairo_get_source)(cairo_t* cr);
|
||||
void (*cairo_close_path)(cairo_t* cr);
|
||||
void (*cairo_paint)(cairo_t* cr);
|
||||
void (*cairo_surface_flush)(cairo_surface_t* surface);
|
||||
void (*cairo_clip)(cairo_t* cr);
|
||||
void (*cairo_save)(cairo_t* cr);
|
||||
void (*cairo_restore)(cairo_t* cr);
|
||||
void (*cairo_surface_mark_dirty)(cairo_surface_t* surface);
|
||||
void (*cairo_stroke)(cairo_t* cr);
|
||||
void (*cairo_set_source_surface)(cairo_t* cr,
|
||||
cairo_surface_t* surface,
|
||||
double x,
|
||||
double y);
|
||||
void (*cairo_fill)(cairo_t* cr);
|
||||
void (*cairo_pattern_set_filter)(cairo_pattern_t* pattern,
|
||||
cairo_filter_t filter);
|
||||
void (*cairo_set_antialias)(cairo_t*, cairo_antialias_t);
|
||||
void (*cairo_set_operator)(cairo_t* cr, cairo_operator_t op);
|
||||
|
||||
} cairo_call_table_t;
|
||||
|
||||
extern cairo_call_table_t cairo_call_tbl;
|
||||
|
||||
/* defined inline right here so that it doesn't conflict with the other macros */
|
||||
MwInline int cairo_load_funcs() {
|
||||
#ifdef __APPLE__
|
||||
cairo_call_tbl.cairo_lib = MwDynamicOpen("libcairo.dylib");
|
||||
#else
|
||||
cairo_call_tbl.cairo_lib = MwDynamicOpen("libcairo.so");
|
||||
#endif
|
||||
if(!cairo_call_tbl.cairo_lib) {
|
||||
printf("(libcairo not found, cannot use Wayland or Cairo backend.)\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
#define CAIRO_FUNC(x) \
|
||||
cairo_call_tbl.x = MwDynamicSymbol(cairo_call_tbl.cairo_lib, #x); \
|
||||
if(!cairo_call_tbl.x) { \
|
||||
printf("WARNING: Could use Wayland/Cairo backend if " #x " was not found. Do you have libcairo?\n"); \
|
||||
return 1; \
|
||||
};
|
||||
|
||||
CAIRO_FUNC(cairo_set_line_width);
|
||||
CAIRO_FUNC(cairo_scale);
|
||||
CAIRO_FUNC(cairo_create);
|
||||
CAIRO_FUNC(cairo_move_to);
|
||||
CAIRO_FUNC(cairo_rectangle);
|
||||
CAIRO_FUNC(cairo_new_path);
|
||||
CAIRO_FUNC(cairo_set_line_cap);
|
||||
CAIRO_FUNC(cairo_set_antialias);
|
||||
CAIRO_FUNC(cairo_set_source_rgba);
|
||||
CAIRO_FUNC(cairo_set_source_rgb);
|
||||
CAIRO_FUNC(cairo_reset_clip);
|
||||
CAIRO_FUNC(cairo_image_surface_get_data);
|
||||
CAIRO_FUNC(cairo_line_to);
|
||||
CAIRO_FUNC(cairo_surface_write_to_png);
|
||||
CAIRO_FUNC(cairo_surface_destroy);
|
||||
CAIRO_FUNC(cairo_image_surface_create_for_data);
|
||||
CAIRO_FUNC(cairo_image_surface_create);
|
||||
CAIRO_FUNC(cairo_destroy);
|
||||
CAIRO_FUNC(cairo_get_source);
|
||||
CAIRO_FUNC(cairo_close_path);
|
||||
CAIRO_FUNC(cairo_paint);
|
||||
CAIRO_FUNC(cairo_surface_flush);
|
||||
CAIRO_FUNC(cairo_clip);
|
||||
CAIRO_FUNC(cairo_save);
|
||||
CAIRO_FUNC(cairo_restore);
|
||||
CAIRO_FUNC(cairo_surface_mark_dirty);
|
||||
CAIRO_FUNC(cairo_stroke);
|
||||
CAIRO_FUNC(cairo_set_source_surface);
|
||||
CAIRO_FUNC(cairo_fill);
|
||||
CAIRO_FUNC(cairo_set_operator);
|
||||
CAIRO_FUNC(cairo_pattern_set_filter);
|
||||
#undef CAIRO_FUNC
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define cairo_set_line_width cairo_call_tbl.cairo_set_line_width
|
||||
#define cairo_scale cairo_call_tbl.cairo_scale
|
||||
#define cairo_create cairo_call_tbl.cairo_create
|
||||
#define cairo_move_to cairo_call_tbl.cairo_move_to
|
||||
#define cairo_rectangle cairo_call_tbl.cairo_rectangle
|
||||
#define cairo_new_path cairo_call_tbl.cairo_new_path
|
||||
#define cairo_set_line_cap cairo_call_tbl.cairo_set_line_cap
|
||||
#define cairo_set_antialias cairo_call_tbl.cairo_set_antialias
|
||||
#define cairo_set_source_rgba cairo_call_tbl.cairo_set_source_rgba
|
||||
#define cairo_set_source_rgb cairo_call_tbl.cairo_set_source_rgb
|
||||
#define cairo_reset_clip cairo_call_tbl.cairo_reset_clip
|
||||
#define cairo_image_surface_get_data cairo_call_tbl.cairo_image_surface_get_data
|
||||
#define cairo_line_to cairo_call_tbl.cairo_line_to
|
||||
#define cairo_surface_write_to_png cairo_call_tbl.cairo_surface_write_to_png
|
||||
#define cairo_surface_destroy cairo_call_tbl.cairo_surface_destroy
|
||||
#define cairo_image_surface_create_for_data cairo_call_tbl.cairo_image_surface_create_for_data
|
||||
#define cairo_image_surface_create cairo_call_tbl.cairo_image_surface_create
|
||||
#define cairo_destroy cairo_call_tbl.cairo_destroy
|
||||
#define cairo_get_source cairo_call_tbl.cairo_get_source
|
||||
#define cairo_close_path cairo_call_tbl.cairo_close_path
|
||||
#define cairo_paint cairo_call_tbl.cairo_paint
|
||||
#define cairo_surface_flush cairo_call_tbl.cairo_surface_flush
|
||||
#define cairo_clip cairo_call_tbl.cairo_clip
|
||||
#define cairo_save cairo_call_tbl.cairo_save
|
||||
#define cairo_restore cairo_call_tbl.cairo_restore
|
||||
#define cairo_surface_mark_dirty cairo_call_tbl.cairo_surface_mark_dirty
|
||||
#define cairo_stroke cairo_call_tbl.cairo_stroke
|
||||
#define cairo_set_source_surface cairo_call_tbl.cairo_set_source_surface
|
||||
#define cairo_fill cairo_call_tbl.cairo_fill
|
||||
#define cairo_set_operator cairo_call_tbl.cairo_set_operator
|
||||
#define cairo_pattern_set_filter cairo_call_tbl.cairo_pattern_set_filter
|
||||
|
||||
struct _MwLLCairo {
|
||||
struct _MwLLCommon common;
|
||||
|
||||
cairo_surface_t* front_cs;
|
||||
cairo_surface_t* back_cs;
|
||||
cairo_t* front_cairo;
|
||||
cairo_t* back_cairo;
|
||||
/* The cairo to actually use for draw operations. Typically is front_cairo, but wayland's MwLLBeginDraw can change this to the back_cairo so it can be used to draw window decorations. */
|
||||
cairo_t* selected_cairo;
|
||||
|
||||
int x;
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
|
||||
MwBool toplevel;
|
||||
MwLL parent;
|
||||
};
|
||||
|
||||
struct _MwLLCairoColor {
|
||||
struct _MwLLCommonColor common;
|
||||
};
|
||||
|
||||
struct _MwLLCairoPixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
|
||||
cairo_surface_t* cs;
|
||||
};
|
||||
|
||||
void MwLLCairoFrontSetup(struct _MwLLCairo* cairo, MwU8* data, MwU32 width, MwU32 height);
|
||||
void MwLLCairoBackSetup(struct _MwLLCairo* cairo, MwU8* data, MwU32 width, MwU32 height);
|
||||
void MwLLCairoFrontDestroy(struct _MwLLCairo* cairo);
|
||||
void MwLLCairoBackDestroy(struct _MwLLCairo* cairo);
|
||||
void MwLLCairoPolygon(struct _MwLLCairo handle, MwPoint* points, int points_count, MwLLColor color);
|
||||
void MwLLCairoLine(struct _MwLLCairo handle, MwPoint* points, MwLLColor color);
|
||||
MwLLPixmap MwLLCairoCreatePixmap(struct _MwLLCairo handle, unsigned char* data, int width, int height);
|
||||
void MwLLCairoPixmapUpdate(MwLLPixmap handle);
|
||||
void MwLLCairoDestroyPixmap(MwLLPixmap pixmap);
|
||||
void MwLLCairoDrawPixmap(struct _MwLLCairo handle, MwRect* rect, MwLLPixmap pixmap);
|
||||
|
||||
void MwLLCairoDestroy(struct _MwLLCairo handle);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,43 +1,43 @@
|
|||
/*!
|
||||
* @file Mw/LowLevel/ClassicMacOS.h
|
||||
* @brief ClassicMacOS Backend
|
||||
* @warning This is used internally
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_ClassicMacOS_H__
|
||||
#define __MW_LOWLEVEL_ClassicMacOS_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
#include <Mw/LowLevel.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _MwLLClassicMacOS {
|
||||
struct _MwLLCommon common;
|
||||
|
||||
MwLL parent;
|
||||
|
||||
WindowRef window;
|
||||
ControlHandle control;
|
||||
EventRecord event;
|
||||
Rect winRect;
|
||||
};
|
||||
|
||||
struct _MwLLClassicMacOSColor {
|
||||
struct _MwLLCommonColor common;
|
||||
};
|
||||
|
||||
struct _MwLLClassicMacOSPixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
BitMap bmp;
|
||||
};
|
||||
|
||||
MWDECL int MwLLClassicMacOSCallInit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/*!
|
||||
* @file Mw/LowLevel/ClassicMacOS.h
|
||||
* @brief ClassicMacOS Backend
|
||||
* @warning This is used internally
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_ClassicMacOS_H__
|
||||
#define __MW_LOWLEVEL_ClassicMacOS_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
#include <Mw/LowLevel.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _MwLLClassicMacOS {
|
||||
struct _MwLLCommon common;
|
||||
|
||||
MwLL parent;
|
||||
|
||||
WindowRef window;
|
||||
ControlHandle control;
|
||||
EventRecord event;
|
||||
Rect winRect;
|
||||
};
|
||||
|
||||
struct _MwLLClassicMacOSColor {
|
||||
struct _MwLLCommonColor common;
|
||||
};
|
||||
|
||||
struct _MwLLClassicMacOSPixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
BitMap bmp;
|
||||
};
|
||||
|
||||
MWDECL int MwLLClassicMacOSCallInit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,189 +1,189 @@
|
|||
/*!
|
||||
* @file Mw/LowLevel/Cocoa.h
|
||||
* @brief Work in progress Cocoa Backend
|
||||
* @warning This is used internally.
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_COCOA_H__
|
||||
#define __MW_LOWLEVEL_COCOA_H__
|
||||
|
||||
#include <Mw/LowLevel.h>
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
|
||||
typedef struct {
|
||||
enum {
|
||||
COCOA_DRAW_COMMAND_POLY = 0,
|
||||
COCOA_DRAW_COMMAND_LINES,
|
||||
COCOA_DRAW_COMMAND_PIXMAP,
|
||||
} type;
|
||||
union {
|
||||
struct {
|
||||
MwPoint* points;
|
||||
int points_count;
|
||||
struct _MwLLCommonColor color;
|
||||
} poly;
|
||||
struct {
|
||||
MwPoint* points;
|
||||
struct _MwLLCommonColor color;
|
||||
} lines;
|
||||
struct {
|
||||
MwRect rect;
|
||||
MwLLPixmap pixmap;
|
||||
} pixmap;
|
||||
};
|
||||
} draw_command;
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <AppKit/AppKit.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <Foundation/NSGeometry.h>
|
||||
|
||||
@interface MilskoCocoaApplication : NSApplication {
|
||||
MwBool doPending;
|
||||
}
|
||||
- (MwBool)pending;
|
||||
@end
|
||||
|
||||
// Note: implements NSApplicationDelegate
|
||||
@interface MilskoCocoaApplicationDelegate : NSObject {
|
||||
MilskoCocoaApplication* appl;
|
||||
}
|
||||
- (MilskoCocoaApplicationDelegate*)initWithAppl:(MilskoCocoaApplication*)appl;
|
||||
@end
|
||||
|
||||
@interface MilskoCocoaWindow : NSWindow {
|
||||
}
|
||||
@end
|
||||
|
||||
// Note: implements NSWindowDelegate
|
||||
@interface MilskoCocoaWindowDelegate : NSObject {
|
||||
NSWindow* w;
|
||||
}
|
||||
- (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win;
|
||||
@end
|
||||
|
||||
/*
|
||||
So we want to associate each NSWindow with its corresponding MwLL handle. The
|
||||
conventional way of doing this is through "associative pointers", however
|
||||
this is a feature that Apple added in 10.6 (marketted back then as "Objective
|
||||
C 2" iirc). For 10.4 compatibility, we have to do a bit of an ugly hack that
|
||||
might seem like horrifically undefined behavior, but I've tested this on
|
||||
both 10.4 and modern Mac OS and as long as we're careful there's no
|
||||
problems: we override NSView, use NSView's "frame" property to store the
|
||||
pointer, and then override functions appropriately so that this frame is never
|
||||
actually used. This can then be attached to an NSWindow with addSubview and
|
||||
retrieved appropriately.
|
||||
*/
|
||||
@interface MilskoFakePointer : NSView {
|
||||
void* ptr;
|
||||
}
|
||||
|
||||
- (void)setPointer:(void*)ptr;
|
||||
- (void*)pointer;
|
||||
|
||||
@end
|
||||
|
||||
@interface MilskoCocoaPixmap : NSObject {
|
||||
@public
|
||||
MwBool valid;
|
||||
int width;
|
||||
int height;
|
||||
unsigned char* buf;
|
||||
NSImage* image;
|
||||
NSBitmapImageRep* rep;
|
||||
}
|
||||
|
||||
+ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height;
|
||||
- (void)updateWithData:(unsigned char*)data;
|
||||
- (void)destroy;
|
||||
|
||||
/* using @property to create instance variables fucks up 10.4 gcc for some
|
||||
* reason? */
|
||||
- (NSImage*)image;
|
||||
|
||||
@end
|
||||
|
||||
@interface MilskoCocoaView : NSView {
|
||||
MwBool _child;
|
||||
|
||||
@public
|
||||
draw_command* commands;
|
||||
}
|
||||
|
||||
- (void)destroy;
|
||||
- (void)setChild;
|
||||
@end
|
||||
|
||||
@interface MilskoCocoaSubView : MilskoCocoaView {
|
||||
}
|
||||
@end
|
||||
|
||||
@interface MilskoCocoa : NSObject {
|
||||
@public
|
||||
MilskoCocoaApplication* application;
|
||||
MwBool _forceRender;
|
||||
MwBool _eventsPending;
|
||||
MwBool isClosing;
|
||||
NSWindow* window;
|
||||
NSRect rect;
|
||||
MilskoCocoaView* view;
|
||||
MwLL parent;
|
||||
MilskoFakePointer* handle;
|
||||
unsigned int strHash;
|
||||
NSEvent* lastEvent;
|
||||
|
||||
MilskoCocoaPixmap* cursorPixmap;
|
||||
NSCursor* cursor;
|
||||
NSModalSession modalSession;
|
||||
|
||||
MwBool pointerLocked;
|
||||
MwBool mouseMoved;
|
||||
|
||||
MwBool rejectFirstTest;
|
||||
}
|
||||
- (void)destroy;
|
||||
- (void)sendClipboardEvent;
|
||||
|
||||
- (MwLL)getParent;
|
||||
- (NSView*)getView;
|
||||
- (NSWindow*)getWindow;
|
||||
- (void)nudge;
|
||||
|
||||
- (void)pushCursor;
|
||||
- (void)popCursor;
|
||||
|
||||
- (MilskoFakePointer*)getHandle;
|
||||
|
||||
@end
|
||||
#define OBJC(x) x
|
||||
#else
|
||||
#define OBJC(x) void*
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _MwLLCocoa {
|
||||
struct _MwLLCommon common;
|
||||
OBJC(MilskoCocoa*)
|
||||
real;
|
||||
};
|
||||
|
||||
struct _MwLLCocoaColor {
|
||||
struct _MwLLCommonColor common;
|
||||
};
|
||||
|
||||
struct _MwLLCocoaPixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
OBJC(MilskoCocoaPixmap*)
|
||||
real;
|
||||
};
|
||||
|
||||
MWDECL int MwLLCocoaCallInit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/*!
|
||||
* @file Mw/LowLevel/Cocoa.h
|
||||
* @brief Work in progress Cocoa Backend
|
||||
* @warning This is used internally.
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_COCOA_H__
|
||||
#define __MW_LOWLEVEL_COCOA_H__
|
||||
|
||||
#include <Mw/LowLevel.h>
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
|
||||
typedef struct {
|
||||
enum {
|
||||
COCOA_DRAW_COMMAND_POLY = 0,
|
||||
COCOA_DRAW_COMMAND_LINES,
|
||||
COCOA_DRAW_COMMAND_PIXMAP,
|
||||
} type;
|
||||
union {
|
||||
struct {
|
||||
MwPoint* points;
|
||||
int points_count;
|
||||
struct _MwLLCommonColor color;
|
||||
} poly;
|
||||
struct {
|
||||
MwPoint* points;
|
||||
struct _MwLLCommonColor color;
|
||||
} lines;
|
||||
struct {
|
||||
MwRect rect;
|
||||
MwLLPixmap pixmap;
|
||||
} pixmap;
|
||||
};
|
||||
} draw_command;
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <AppKit/AppKit.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <Foundation/NSGeometry.h>
|
||||
|
||||
@interface MilskoCocoaApplication : NSApplication {
|
||||
MwBool doPending;
|
||||
}
|
||||
- (MwBool)pending;
|
||||
@end
|
||||
|
||||
// Note: implements NSApplicationDelegate
|
||||
@interface MilskoCocoaApplicationDelegate : NSObject {
|
||||
MilskoCocoaApplication* appl;
|
||||
}
|
||||
- (MilskoCocoaApplicationDelegate*)initWithAppl:(MilskoCocoaApplication*)appl;
|
||||
@end
|
||||
|
||||
@interface MilskoCocoaWindow : NSWindow {
|
||||
}
|
||||
@end
|
||||
|
||||
// Note: implements NSWindowDelegate
|
||||
@interface MilskoCocoaWindowDelegate : NSObject {
|
||||
NSWindow* w;
|
||||
}
|
||||
- (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win;
|
||||
@end
|
||||
|
||||
/*
|
||||
So we want to associate each NSWindow with its corresponding MwLL handle. The
|
||||
conventional way of doing this is through "associative pointers", however
|
||||
this is a feature that Apple added in 10.6 (marketted back then as "Objective
|
||||
C 2" iirc). For 10.4 compatibility, we have to do a bit of an ugly hack that
|
||||
might seem like horrifically undefined behavior, but I've tested this on
|
||||
both 10.4 and modern Mac OS and as long as we're careful there's no
|
||||
problems: we override NSView, use NSView's "frame" property to store the
|
||||
pointer, and then override functions appropriately so that this frame is never
|
||||
actually used. This can then be attached to an NSWindow with addSubview and
|
||||
retrieved appropriately.
|
||||
*/
|
||||
@interface MilskoFakePointer : NSView {
|
||||
void* ptr;
|
||||
}
|
||||
|
||||
- (void)setPointer:(void*)ptr;
|
||||
- (void*)pointer;
|
||||
|
||||
@end
|
||||
|
||||
@interface MilskoCocoaPixmap : NSObject {
|
||||
@public
|
||||
MwBool valid;
|
||||
int width;
|
||||
int height;
|
||||
unsigned char* buf;
|
||||
NSImage* image;
|
||||
NSBitmapImageRep* rep;
|
||||
}
|
||||
|
||||
+ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height;
|
||||
- (void)updateWithData:(unsigned char*)data;
|
||||
- (void)destroy;
|
||||
|
||||
/* using @property to create instance variables fucks up 10.4 gcc for some
|
||||
* reason? */
|
||||
- (NSImage*)image;
|
||||
|
||||
@end
|
||||
|
||||
@interface MilskoCocoaView : NSView {
|
||||
MwBool _child;
|
||||
|
||||
@public
|
||||
draw_command* commands;
|
||||
}
|
||||
|
||||
- (void)destroy;
|
||||
- (void)setChild;
|
||||
@end
|
||||
|
||||
@interface MilskoCocoaSubView : MilskoCocoaView {
|
||||
}
|
||||
@end
|
||||
|
||||
@interface MilskoCocoa : NSObject {
|
||||
@public
|
||||
MilskoCocoaApplication* application;
|
||||
MwBool _forceRender;
|
||||
MwBool _eventsPending;
|
||||
MwBool isClosing;
|
||||
NSWindow* window;
|
||||
NSRect rect;
|
||||
MilskoCocoaView* view;
|
||||
MwLL parent;
|
||||
MilskoFakePointer* handle;
|
||||
unsigned int strHash;
|
||||
NSEvent* lastEvent;
|
||||
|
||||
MilskoCocoaPixmap* cursorPixmap;
|
||||
NSCursor* cursor;
|
||||
NSModalSession modalSession;
|
||||
|
||||
MwBool pointerLocked;
|
||||
MwBool mouseMoved;
|
||||
|
||||
MwBool rejectFirstTest;
|
||||
}
|
||||
- (void)destroy;
|
||||
- (void)sendClipboardEvent;
|
||||
|
||||
- (MwLL)getParent;
|
||||
- (NSView*)getView;
|
||||
- (NSWindow*)getWindow;
|
||||
- (void)nudge;
|
||||
|
||||
- (void)pushCursor;
|
||||
- (void)popCursor;
|
||||
|
||||
- (MilskoFakePointer*)getHandle;
|
||||
|
||||
@end
|
||||
#define OBJC(x) x
|
||||
#else
|
||||
#define OBJC(x) void*
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _MwLLCocoa {
|
||||
struct _MwLLCommon common;
|
||||
OBJC(MilskoCocoa*)
|
||||
real;
|
||||
};
|
||||
|
||||
struct _MwLLCocoaColor {
|
||||
struct _MwLLCommonColor common;
|
||||
};
|
||||
|
||||
struct _MwLLCocoaPixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
OBJC(MilskoCocoaPixmap*)
|
||||
real;
|
||||
};
|
||||
|
||||
MWDECL int MwLLCocoaCallInit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,56 +1,56 @@
|
|||
/*!
|
||||
* @file Mw/LowLevel/GDI.h
|
||||
* @brief GDI Backend
|
||||
* @warning This is used internally
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_GDI_H__
|
||||
#define __MW_LOWLEVEL_GDI_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
#include <Mw/LowLevel.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _MwLLGDI {
|
||||
struct _MwLLCommon common;
|
||||
|
||||
HINSTANCE hInstance;
|
||||
HWND hWnd;
|
||||
HDC hDC;
|
||||
HCURSOR cursor;
|
||||
HICON icon;
|
||||
|
||||
HRGN clip;
|
||||
|
||||
int grabbed;
|
||||
int force_render;
|
||||
int get_clipboard;
|
||||
int get_darktheme;
|
||||
};
|
||||
|
||||
struct _MwLLGDIColor {
|
||||
struct _MwLLCommonColor common;
|
||||
|
||||
HBRUSH brush;
|
||||
};
|
||||
|
||||
struct _MwLLGDIPixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
|
||||
RGBQUAD* quad;
|
||||
HBITMAP hBitmap;
|
||||
HBITMAP hMask;
|
||||
HBITMAP hMask2;
|
||||
};
|
||||
|
||||
MWDECL int MwLLGDICallInit(void);
|
||||
MWDECL HCURSOR MwLLGDICreateCursor(MwCursor* image, MwCursor* mask);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/*!
|
||||
* @file Mw/LowLevel/GDI.h
|
||||
* @brief GDI Backend
|
||||
* @warning This is used internally
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_GDI_H__
|
||||
#define __MW_LOWLEVEL_GDI_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
#include <Mw/LowLevel.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _MwLLGDI {
|
||||
struct _MwLLCommon common;
|
||||
|
||||
HINSTANCE hInstance;
|
||||
HWND hWnd;
|
||||
HDC hDC;
|
||||
HCURSOR cursor;
|
||||
HICON icon;
|
||||
|
||||
HRGN clip;
|
||||
|
||||
int grabbed;
|
||||
int force_render;
|
||||
int get_clipboard;
|
||||
int get_darktheme;
|
||||
};
|
||||
|
||||
struct _MwLLGDIColor {
|
||||
struct _MwLLCommonColor common;
|
||||
|
||||
HBRUSH brush;
|
||||
};
|
||||
|
||||
struct _MwLLGDIPixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
|
||||
RGBQUAD* quad;
|
||||
HBITMAP hBitmap;
|
||||
HBITMAP hMask;
|
||||
HBITMAP hMask2;
|
||||
};
|
||||
|
||||
MWDECL int MwLLGDICallInit(void);
|
||||
MWDECL HCURSOR MwLLGDICreateCursor(MwCursor* image, MwCursor* mask);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,173 +1,173 @@
|
|||
/*!
|
||||
* @file Mw/LowLevel/Haiku.h
|
||||
* @brief Haiku Backend
|
||||
* @warning This is used internally
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_HAIKU_H__
|
||||
#define __MW_LOWLEVEL_HAIKU_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
#include <Mw/LowLevel.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
class MwApplication;
|
||||
class MwView;
|
||||
class MwWindow;
|
||||
|
||||
class MwApplication : public BApplication {
|
||||
public:
|
||||
MwApplication(MwRect rc, MwLL handle);
|
||||
~MwApplication();
|
||||
|
||||
void MessageReceived(BMessage* message);
|
||||
};
|
||||
|
||||
class MwView : public BView {
|
||||
public:
|
||||
MwLL handle;
|
||||
BLocker* locker;
|
||||
uint32 buttons;
|
||||
BBitmap* bitmap;
|
||||
|
||||
MwView(MwLL handle, BRect rc, uint32 resizingMode, uint32 flags);
|
||||
~MwView();
|
||||
|
||||
void MessageReceived(BMessage* message);
|
||||
void PostMessage(BMessage* message);
|
||||
void PostMessage(uint32 command);
|
||||
status_t SendMessage(BMessage* message);
|
||||
status_t SendMessage(uint32 command);
|
||||
void Invalidate();
|
||||
|
||||
void AttachedToWindow();
|
||||
void Draw(BRect updateRect);
|
||||
void FrameResized(float width, float height);
|
||||
void MouseDown(BPoint point);
|
||||
void MouseUp(BPoint point);
|
||||
void MouseMoved(BPoint point, uint32 transit, const BMessage* message);
|
||||
|
||||
void SetColor(MwLLColor color);
|
||||
};
|
||||
|
||||
class MwWindow : public BWindow {
|
||||
public:
|
||||
MwWindow(BRect rc, window_type type, uint32 flags);
|
||||
|
||||
void MessageReceived(BMessage* message);
|
||||
|
||||
void FrameMoved(BPoint newLocation);
|
||||
bool QuitRequested();
|
||||
};
|
||||
|
||||
typedef BBitmap MwBBitmap;
|
||||
#else
|
||||
typedef void MwApplication;
|
||||
typedef void MwView;
|
||||
typedef void MwWindow;
|
||||
typedef void MwBBitmap;
|
||||
#endif
|
||||
|
||||
typedef union _MwLLHaikuEvent MwLLHaikuEvent;
|
||||
|
||||
enum BAPP_MW_WHAT {
|
||||
BAPP_MW_DESTROY = 0
|
||||
};
|
||||
|
||||
enum BVIEW_MW_WHAT {
|
||||
BVIEW_MW_DESTROY = 0,
|
||||
BVIEW_MW_DETACH,
|
||||
BVIEW_MW_RESIZE,
|
||||
BVIEW_MW_MOVE,
|
||||
BVIEW_MW_SHOW,
|
||||
BVIEW_MW_HIDE,
|
||||
BVIEW_MW_SET_COLOR,
|
||||
BVIEW_MW_POLYGON,
|
||||
BVIEW_MW_LINE,
|
||||
BVIEW_MW_BITMAP,
|
||||
BVIEW_MW_RENDER,
|
||||
BVIEW_MW_RAISE,
|
||||
BVIEW_MW_GET_MOUSE
|
||||
};
|
||||
|
||||
enum BWIN_MW_WHAT {
|
||||
BWIN_MW_DESTROY = 0,
|
||||
BWIN_MW_SET_TITLE,
|
||||
BWIN_MW_SET_TYPE
|
||||
};
|
||||
|
||||
enum MwLLHAIKU_EVENT {
|
||||
MwLLHAIKU_EVENT_DRAW = 0,
|
||||
MwLLHAIKU_EVENT_CLOSE,
|
||||
MwLLHAIKU_EVENT_FRAMERESIZED,
|
||||
MwLLHAIKU_EVENT_FRAMEMOVED,
|
||||
MwLLHAIKU_EVENT_MOUSEDOWN,
|
||||
MwLLHAIKU_EVENT_MOUSEUP,
|
||||
MwLLHAIKU_EVENT_MOUSEMOVED
|
||||
};
|
||||
|
||||
struct _MwLLHaikuEventMouse {
|
||||
int type;
|
||||
MwPoint point;
|
||||
int button;
|
||||
};
|
||||
|
||||
struct _MwLLHaikuEventFrameResized {
|
||||
int type;
|
||||
float width;
|
||||
float height;
|
||||
};
|
||||
|
||||
struct _MwLLHaikuEventFrameMoved {
|
||||
int type;
|
||||
MwPoint point;
|
||||
};
|
||||
|
||||
union _MwLLHaikuEvent {
|
||||
int type;
|
||||
struct _MwLLHaikuEventMouse mouse;
|
||||
struct _MwLLHaikuEventFrameResized frame_resized;
|
||||
struct _MwLLHaikuEventFrameMoved frame_moved;
|
||||
};
|
||||
|
||||
struct _MwLLHaiku {
|
||||
struct _MwLLCommon common;
|
||||
|
||||
int type;
|
||||
|
||||
int x;
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
|
||||
MwLL parent;
|
||||
MwApplication* app;
|
||||
MwWindow* window;
|
||||
MwView* view;
|
||||
thread_id app_thread;
|
||||
int force_render;
|
||||
|
||||
MwLLHaikuEvent* events;
|
||||
};
|
||||
|
||||
struct _MwLLHaikuColor {
|
||||
struct _MwLLCommonColor common;
|
||||
};
|
||||
|
||||
struct _MwLLHaikuPixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
|
||||
MwBBitmap* bitmap;
|
||||
};
|
||||
|
||||
MWDECL int MwLLHaikuCallInit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/*!
|
||||
* @file Mw/LowLevel/Haiku.h
|
||||
* @brief Haiku Backend
|
||||
* @warning This is used internally
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_HAIKU_H__
|
||||
#define __MW_LOWLEVEL_HAIKU_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
#include <Mw/LowLevel.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
class MwApplication;
|
||||
class MwView;
|
||||
class MwWindow;
|
||||
|
||||
class MwApplication : public BApplication {
|
||||
public:
|
||||
MwApplication(MwRect rc, MwLL handle);
|
||||
~MwApplication();
|
||||
|
||||
void MessageReceived(BMessage* message);
|
||||
};
|
||||
|
||||
class MwView : public BView {
|
||||
public:
|
||||
MwLL handle;
|
||||
BLocker* locker;
|
||||
uint32 buttons;
|
||||
BBitmap* bitmap;
|
||||
|
||||
MwView(MwLL handle, BRect rc, uint32 resizingMode, uint32 flags);
|
||||
~MwView();
|
||||
|
||||
void MessageReceived(BMessage* message);
|
||||
void PostMessage(BMessage* message);
|
||||
void PostMessage(uint32 command);
|
||||
status_t SendMessage(BMessage* message);
|
||||
status_t SendMessage(uint32 command);
|
||||
void Invalidate();
|
||||
|
||||
void AttachedToWindow();
|
||||
void Draw(BRect updateRect);
|
||||
void FrameResized(float width, float height);
|
||||
void MouseDown(BPoint point);
|
||||
void MouseUp(BPoint point);
|
||||
void MouseMoved(BPoint point, uint32 transit, const BMessage* message);
|
||||
|
||||
void SetColor(MwLLColor color);
|
||||
};
|
||||
|
||||
class MwWindow : public BWindow {
|
||||
public:
|
||||
MwWindow(BRect rc, window_type type, uint32 flags);
|
||||
|
||||
void MessageReceived(BMessage* message);
|
||||
|
||||
void FrameMoved(BPoint newLocation);
|
||||
bool QuitRequested();
|
||||
};
|
||||
|
||||
typedef BBitmap MwBBitmap;
|
||||
#else
|
||||
typedef void MwApplication;
|
||||
typedef void MwView;
|
||||
typedef void MwWindow;
|
||||
typedef void MwBBitmap;
|
||||
#endif
|
||||
|
||||
typedef union _MwLLHaikuEvent MwLLHaikuEvent;
|
||||
|
||||
enum BAPP_MW_WHAT {
|
||||
BAPP_MW_DESTROY = 0
|
||||
};
|
||||
|
||||
enum BVIEW_MW_WHAT {
|
||||
BVIEW_MW_DESTROY = 0,
|
||||
BVIEW_MW_DETACH,
|
||||
BVIEW_MW_RESIZE,
|
||||
BVIEW_MW_MOVE,
|
||||
BVIEW_MW_SHOW,
|
||||
BVIEW_MW_HIDE,
|
||||
BVIEW_MW_SET_COLOR,
|
||||
BVIEW_MW_POLYGON,
|
||||
BVIEW_MW_LINE,
|
||||
BVIEW_MW_BITMAP,
|
||||
BVIEW_MW_RENDER,
|
||||
BVIEW_MW_RAISE,
|
||||
BVIEW_MW_GET_MOUSE
|
||||
};
|
||||
|
||||
enum BWIN_MW_WHAT {
|
||||
BWIN_MW_DESTROY = 0,
|
||||
BWIN_MW_SET_TITLE,
|
||||
BWIN_MW_SET_TYPE
|
||||
};
|
||||
|
||||
enum MwLLHAIKU_EVENT {
|
||||
MwLLHAIKU_EVENT_DRAW = 0,
|
||||
MwLLHAIKU_EVENT_CLOSE,
|
||||
MwLLHAIKU_EVENT_FRAMERESIZED,
|
||||
MwLLHAIKU_EVENT_FRAMEMOVED,
|
||||
MwLLHAIKU_EVENT_MOUSEDOWN,
|
||||
MwLLHAIKU_EVENT_MOUSEUP,
|
||||
MwLLHAIKU_EVENT_MOUSEMOVED
|
||||
};
|
||||
|
||||
struct _MwLLHaikuEventMouse {
|
||||
int type;
|
||||
MwPoint point;
|
||||
int button;
|
||||
};
|
||||
|
||||
struct _MwLLHaikuEventFrameResized {
|
||||
int type;
|
||||
float width;
|
||||
float height;
|
||||
};
|
||||
|
||||
struct _MwLLHaikuEventFrameMoved {
|
||||
int type;
|
||||
MwPoint point;
|
||||
};
|
||||
|
||||
union _MwLLHaikuEvent {
|
||||
int type;
|
||||
struct _MwLLHaikuEventMouse mouse;
|
||||
struct _MwLLHaikuEventFrameResized frame_resized;
|
||||
struct _MwLLHaikuEventFrameMoved frame_moved;
|
||||
};
|
||||
|
||||
struct _MwLLHaiku {
|
||||
struct _MwLLCommon common;
|
||||
|
||||
int type;
|
||||
|
||||
int x;
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
|
||||
MwLL parent;
|
||||
MwApplication* app;
|
||||
MwWindow* window;
|
||||
MwView* view;
|
||||
thread_id app_thread;
|
||||
int force_render;
|
||||
|
||||
MwLLHaikuEvent* events;
|
||||
};
|
||||
|
||||
struct _MwLLHaikuColor {
|
||||
struct _MwLLCommonColor common;
|
||||
};
|
||||
|
||||
struct _MwLLHaikuPixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
|
||||
MwBBitmap* bitmap;
|
||||
};
|
||||
|
||||
MWDECL int MwLLHaikuCallInit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
2
include/Mw/LowLevel/Wayland/.gitignore
vendored
2
include/Mw/LowLevel/Wayland/.gitignore
vendored
|
|
@ -1 +1 @@
|
|||
*protocol.h
|
||||
*protocol.h
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Folder for wayland-scanner to place any of its files.
|
||||
Folder for wayland-scanner to place any of its files.
|
||||
|
|
|
|||
|
|
@ -1,97 +1,97 @@
|
|||
/*!
|
||||
* @file Mw/LowLevel/X11.h
|
||||
* @brief X11 Backend
|
||||
* @warning This is used internally
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_X11_H__
|
||||
#define __MW_LOWLEVEL_X11_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
#include <Mw/LowLevel.h>
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/Xatom.h>
|
||||
#ifdef USE_XRENDER
|
||||
#include <X11/extensions/Xrender.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _MwLLX11 {
|
||||
struct _MwLLCommon common;
|
||||
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
|
||||
Display* display;
|
||||
Window window;
|
||||
Pixmap pixmap;
|
||||
GC gc;
|
||||
Colormap colormap;
|
||||
Atom wm_delete;
|
||||
Atom wm_protocols;
|
||||
Atom utf8_string;
|
||||
Atom compound_text;
|
||||
Atom text;
|
||||
Atom clipboard;
|
||||
Atom selection;
|
||||
XIM xim;
|
||||
XIC xic;
|
||||
|
||||
long clipboard_time;
|
||||
int clipboard_pending; /* 1 if UTF8_STRING, 2 if COMPOUND_TEXT, 3 if TEXT, 4 if STRING, otherwise 0 */
|
||||
|
||||
int top;
|
||||
int toplevel;
|
||||
int grabbed;
|
||||
int force_render;
|
||||
|
||||
unsigned long red_mask;
|
||||
unsigned long red_max;
|
||||
unsigned long red_shift;
|
||||
|
||||
unsigned long green_mask;
|
||||
unsigned long green_max;
|
||||
unsigned long green_shift;
|
||||
|
||||
unsigned long blue_mask;
|
||||
unsigned long blue_max;
|
||||
unsigned long blue_shift;
|
||||
|
||||
#ifdef USE_DBUS
|
||||
MwLLDBusContext dbus;
|
||||
#endif
|
||||
|
||||
MwBool dark_theme_detection;
|
||||
};
|
||||
|
||||
struct _MwLLX11Color {
|
||||
struct _MwLLCommonColor common;
|
||||
|
||||
unsigned long pixel;
|
||||
};
|
||||
|
||||
struct _MwLLX11Pixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
|
||||
int depth;
|
||||
unsigned char* data;
|
||||
MwLL handle;
|
||||
int use_xrender;
|
||||
Display* display;
|
||||
XImage* image;
|
||||
XImage* mask;
|
||||
};
|
||||
|
||||
MWDECL int MwLLX11CallInit(void);
|
||||
MWDECL Cursor MwLLX11CreateCursor(Display* display, MwCursor* image, MwCursor* mask);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/*!
|
||||
* @file Mw/LowLevel/X11.h
|
||||
* @brief X11 Backend
|
||||
* @warning This is used internally
|
||||
*/
|
||||
#ifndef __MW_LOWLEVEL_X11_H__
|
||||
#define __MW_LOWLEVEL_X11_H__
|
||||
|
||||
#include <Mw/MachDep.h>
|
||||
#include <Mw/TypeDefs.h>
|
||||
#include <Mw/LowLevel.h>
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/Xatom.h>
|
||||
#ifdef USE_XRENDER
|
||||
#include <X11/extensions/Xrender.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _MwLLX11 {
|
||||
struct _MwLLCommon common;
|
||||
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
|
||||
Display* display;
|
||||
Window window;
|
||||
Pixmap pixmap;
|
||||
GC gc;
|
||||
Colormap colormap;
|
||||
Atom wm_delete;
|
||||
Atom wm_protocols;
|
||||
Atom utf8_string;
|
||||
Atom compound_text;
|
||||
Atom text;
|
||||
Atom clipboard;
|
||||
Atom selection;
|
||||
XIM xim;
|
||||
XIC xic;
|
||||
|
||||
long clipboard_time;
|
||||
int clipboard_pending; /* 1 if UTF8_STRING, 2 if COMPOUND_TEXT, 3 if TEXT, 4 if STRING, otherwise 0 */
|
||||
|
||||
int top;
|
||||
int toplevel;
|
||||
int grabbed;
|
||||
int force_render;
|
||||
|
||||
unsigned long red_mask;
|
||||
unsigned long red_max;
|
||||
unsigned long red_shift;
|
||||
|
||||
unsigned long green_mask;
|
||||
unsigned long green_max;
|
||||
unsigned long green_shift;
|
||||
|
||||
unsigned long blue_mask;
|
||||
unsigned long blue_max;
|
||||
unsigned long blue_shift;
|
||||
|
||||
#ifdef USE_DBUS
|
||||
MwLLDBusContext dbus;
|
||||
#endif
|
||||
|
||||
MwBool dark_theme_detection;
|
||||
};
|
||||
|
||||
struct _MwLLX11Color {
|
||||
struct _MwLLCommonColor common;
|
||||
|
||||
unsigned long pixel;
|
||||
};
|
||||
|
||||
struct _MwLLX11Pixmap {
|
||||
struct _MwLLCommonPixmap common;
|
||||
|
||||
int depth;
|
||||
unsigned char* data;
|
||||
MwLL handle;
|
||||
int use_xrender;
|
||||
Display* display;
|
||||
XImage* image;
|
||||
XImage* mask;
|
||||
};
|
||||
|
||||
MWDECL int MwLLX11CallInit(void);
|
||||
MWDECL Cursor MwLLX11CreateCursor(Display* display, MwCursor* image, MwCursor* mask);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue