Add makefile rules
This commit is contained in:
parent
2a6ffd9c3b
commit
aed74a008c
|
@ -333,6 +333,65 @@ OBJ += libretro-db/bintree.o \
|
||||||
tasks/task_database_cue.o
|
tasks/task_database_cue.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(C89_BUILD), 1)
|
||||||
|
HAVE_LIBUI = 0
|
||||||
|
HAVE_GTKPLUS = 0
|
||||||
|
|
||||||
|
ifeq ($(HAVE_LIBUI), 1)
|
||||||
|
ifeq ($(HAVE_GTKPLUS), 1)
|
||||||
|
CFLAGS += -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/atk-1.0
|
||||||
|
LIBS += -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
|
||||||
|
OBJ += deps/libui/gtk/alloc.o \
|
||||||
|
deps/libui/gtk/area.o \
|
||||||
|
deps/libui/gtk/box.o \
|
||||||
|
deps/libui/gtk/button.o \
|
||||||
|
deps/libui/gtk/cellrendererbutton.o \
|
||||||
|
deps/libui/gtk/checkbox.o \
|
||||||
|
deps/libui/gtk/child.o \
|
||||||
|
deps/libui/gtk/colorbutton.o \
|
||||||
|
deps/libui/gtk/combobox.o \
|
||||||
|
deps/libui/gtk/control.o \
|
||||||
|
deps/libui/gtk/datetimepicker.o \
|
||||||
|
deps/libui/gtk/debug.o \
|
||||||
|
deps/libui/gtk/draw.o \
|
||||||
|
deps/libui/gtk/drawmatrix.o \
|
||||||
|
deps/libui/gtk/drawpath.o \
|
||||||
|
deps/libui/gtk/drawtext.o \
|
||||||
|
deps/libui/gtk/editablecombo.o \
|
||||||
|
deps/libui/gtk/entry.o \
|
||||||
|
deps/libui/gtk/fontbutton.o \
|
||||||
|
deps/libui/gtk/form.o \
|
||||||
|
deps/libui/gtk/future.o \
|
||||||
|
deps/libui/gtk/graphemes.o \
|
||||||
|
deps/libui/gtk/grid.o \
|
||||||
|
deps/libui/gtk/group.o \
|
||||||
|
deps/libui/gtk/image.o \
|
||||||
|
deps/libui/gtk/label.o \
|
||||||
|
deps/libui/gtk/main.o \
|
||||||
|
deps/libui/gtk/menu.o \
|
||||||
|
deps/libui/gtk/multilineentry.o \
|
||||||
|
deps/libui/gtk/progressbar.o \
|
||||||
|
deps/libui/gtk/radiobuttons.o \
|
||||||
|
deps/libui/gtk/separator.o \
|
||||||
|
deps/libui/gtk/slider.o \
|
||||||
|
deps/libui/gtk/spinbox.o \
|
||||||
|
deps/libui/gtk/stddialogs.o \
|
||||||
|
deps/libui/gtk/tab.o \
|
||||||
|
deps/libui/gtk/text.o \
|
||||||
|
deps/libui/gtk/util.o \
|
||||||
|
deps/libui/gtk/window.o
|
||||||
|
endif
|
||||||
|
|
||||||
|
OBJ += deps/libui/common/areaevents.o \
|
||||||
|
deps/libui/common/control.o \
|
||||||
|
deps/libui/common/debug.o \
|
||||||
|
deps/libui/common/matrix.o \
|
||||||
|
deps/libui/common/shouldquit.o \
|
||||||
|
deps/libui/common/userbugs.o
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Miscellaneous
|
# Miscellaneous
|
||||||
|
|
||||||
ifeq ($(HAVE_STDIN_CMD), 1)
|
ifeq ($(HAVE_STDIN_CMD), 1)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 24 april 2016
|
/* 24 april 2016 */
|
||||||
|
|
||||||
#define uiAreaSignature 0x41726561
|
#define uiAreaSignature 0x41726561
|
||||||
#define uiBoxSignature 0x426F784C
|
#define uiBoxSignature 0x426F784C
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 11 october 2015
|
/* 11 october 2015 */
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "../ui.h"
|
#include "../ui.h"
|
||||||
#include "uipriv.h"
|
#include "uipriv.h"
|
||||||
|
@ -13,17 +13,17 @@ void uiDrawMatrixSetIdentity(uiDrawMatrix *m)
|
||||||
m->M32 = 0;
|
m->M32 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The rest of this file provides basic utilities in case the platform doesn't provide any of its own for these tasks.
|
/* The rest of this file provides basic utilities in case the platform doesn't provide any of its own for these tasks.
|
||||||
// Keep these as minimal as possible. They should generally not call other fallbacks.
|
* Keep these as minimal as possible. They should generally not call other fallbacks.
|
||||||
|
|
||||||
// see https://msdn.microsoft.com/en-us/library/windows/desktop/ff684171%28v=vs.85%29.aspx#skew_transform
|
* see https://msdn.microsoft.com/en-us/library/windows/desktop/ff684171%28v=vs.85%29.aspx#skew_transform
|
||||||
// TODO see if there's a way we can avoid the multiplication
|
* TODO see if there's a way we can avoid the multiplication */
|
||||||
void fallbackSkew(uiDrawMatrix *m, double x, double y, double xamount, double yamount)
|
void fallbackSkew(uiDrawMatrix *m, double x, double y, double xamount, double yamount)
|
||||||
{
|
{
|
||||||
uiDrawMatrix n;
|
uiDrawMatrix n;
|
||||||
|
|
||||||
uiDrawMatrixSetIdentity(&n);
|
uiDrawMatrixSetIdentity(&n);
|
||||||
// TODO explain this
|
/* TODO explain this */
|
||||||
n.M12 = tan(yamount);
|
n.M12 = tan(yamount);
|
||||||
n.M21 = tan(xamount);
|
n.M21 = tan(xamount);
|
||||||
n.M31 = -y * tan(xamount);
|
n.M31 = -y * tan(xamount);
|
||||||
|
@ -37,8 +37,9 @@ void scaleCenter(double xCenter, double yCenter, double *x, double *y)
|
||||||
*y = yCenter - (*y * yCenter);
|
*y = yCenter - (*y * yCenter);
|
||||||
}
|
}
|
||||||
|
|
||||||
// the basic algorithm is from cairo
|
/* the basic algorithm is from cairo
|
||||||
// but it's the same algorithm as the transform point, just without M31 and M32 taken into account, so let's just do that instead
|
* but it's the same algorithm as the transform point,
|
||||||
|
* just without M31 and M32 taken into account, so let's just do that instead */
|
||||||
void fallbackTransformSize(uiDrawMatrix *m, double *x, double *y)
|
void fallbackTransformSize(uiDrawMatrix *m, double *x, double *y)
|
||||||
{
|
{
|
||||||
uiDrawMatrix m2 = *m;
|
uiDrawMatrix m2 = *m;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 6 april 2015
|
/* 6 april 2015 */
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
@ -13,7 +13,7 @@ extern void *uiAlloc(size_t, const char *);
|
||||||
extern void *uiRealloc(void *, size_t, const char *);
|
extern void *uiRealloc(void *, size_t, const char *);
|
||||||
extern void uiFree(void *);
|
extern void uiFree(void *);
|
||||||
|
|
||||||
// ugh, this was only introduced in MSVC 2015...
|
/* ugh, this was only introduced in MSVC 2015... */
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#define __func__ __FUNCTION__
|
#define __func__ __FUNCTION__
|
||||||
#endif
|
#endif
|
||||||
|
@ -25,16 +25,17 @@ extern void _implbug(const char *file, const char *line, const char *func, const
|
||||||
extern void _userbug(const char *file, const char *line, const char *func, const char *format, ...);
|
extern void _userbug(const char *file, const char *line, const char *func, const char *format, ...);
|
||||||
#define userbug(...) _userbug(__FILE__, _ns(__LINE__), __func__, __VA_ARGS__)
|
#define userbug(...) _userbug(__FILE__, _ns(__LINE__), __func__, __VA_ARGS__)
|
||||||
|
|
||||||
// control.c
|
/* control.c */
|
||||||
extern uiControl *newControl(size_t size, uint32_t OSsig, uint32_t typesig, const char *typenamestr);
|
extern uiControl *newControl(size_t size, uint32_t OSsig, uint32_t typesig, const char *typenamestr);
|
||||||
|
|
||||||
// shouldquit.c
|
/* shouldquit.c */
|
||||||
extern int shouldQuit(void);
|
extern int shouldQuit(void);
|
||||||
|
|
||||||
// areaevents.c
|
/* areaevents.c */
|
||||||
typedef struct clickCounter clickCounter;
|
typedef struct clickCounter clickCounter;
|
||||||
// you should call Reset() to zero-initialize a new instance
|
|
||||||
// it doesn't matter that all the non-count fields are zero: the first click will fail the curButton test straightaway, so it'll return 1 and set the rest of the structure accordingly
|
/* you should call Reset() to zero-initialize a new instance
|
||||||
|
* it doesn't matter that all the non-count fields are zero: the first click will fail the curButton test straightaway, so it'll return 1 and set the rest of the structure accordingly */
|
||||||
struct clickCounter {
|
struct clickCounter {
|
||||||
int curButton;
|
int curButton;
|
||||||
int rectX0;
|
int rectX0;
|
||||||
|
@ -48,7 +49,7 @@ int clickCounterClick(clickCounter *c, int button, int x, int y, uintptr_t time,
|
||||||
extern void clickCounterReset(clickCounter *);
|
extern void clickCounterReset(clickCounter *);
|
||||||
extern int fromScancode(uintptr_t, uiAreaKeyEvent *);
|
extern int fromScancode(uintptr_t, uiAreaKeyEvent *);
|
||||||
|
|
||||||
// matrix.c
|
/* matrix.c */
|
||||||
extern void fallbackSkew(uiDrawMatrix *, double, double, double, double);
|
extern void fallbackSkew(uiDrawMatrix *, double, double, double, double);
|
||||||
extern void scaleCenter(double, double, double *, double *);
|
extern void scaleCenter(double, double, double *, double *);
|
||||||
extern void fallbackTransformSize(uiDrawMatrix *, double *, double *);
|
extern void fallbackTransformSize(uiDrawMatrix *, double *, double *);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 7 april 2015
|
/* 7 april 2015 */
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "uipriv_unix.h"
|
#include "uipriv_unix.h"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 22 april 2015
|
/* 22 april 2015 */
|
||||||
#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_40
|
#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_40
|
||||||
#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_40
|
#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_40
|
||||||
#define GDK_VERSION_MIN_REQUIRED GDK_VERSION_3_10
|
#define GDK_VERSION_MIN_REQUIRED GDK_VERSION_3_10
|
||||||
|
@ -18,19 +18,19 @@
|
||||||
#define gtkXPadding 12
|
#define gtkXPadding 12
|
||||||
#define gtkYPadding 6
|
#define gtkYPadding 6
|
||||||
|
|
||||||
// menu.c
|
/* menu.c */
|
||||||
extern GtkWidget *makeMenubar(uiWindow *);
|
extern GtkWidget *makeMenubar(uiWindow *);
|
||||||
extern void freeMenubar(GtkWidget *);
|
extern void freeMenubar(GtkWidget *);
|
||||||
extern void uninitMenus(void);
|
extern void uninitMenus(void);
|
||||||
|
|
||||||
// alloc.c
|
/* alloc.c */
|
||||||
extern void initAlloc(void);
|
extern void initAlloc(void);
|
||||||
extern void uninitAlloc(void);
|
extern void uninitAlloc(void);
|
||||||
|
|
||||||
// util.c
|
/* util.c */
|
||||||
extern void setMargined(GtkContainer *, int);
|
extern void setMargined(GtkContainer *, int);
|
||||||
|
|
||||||
// child.c
|
/* child.c */
|
||||||
extern struct child *newChild(uiControl *child, uiControl *parent, GtkContainer *parentContainer);
|
extern struct child *newChild(uiControl *child, uiControl *parent, GtkContainer *parentContainer);
|
||||||
extern struct child *newChildWithBox(uiControl *child, uiControl *parent, GtkContainer *parentContainer, int margined);
|
extern struct child *newChildWithBox(uiControl *child, uiControl *parent, GtkContainer *parentContainer, int margined);
|
||||||
extern void childRemove(struct child *c);
|
extern void childRemove(struct child *c);
|
||||||
|
@ -41,25 +41,25 @@ extern void childSetFlag(struct child *c, int flag);
|
||||||
extern GtkWidget *childBox(struct child *c);
|
extern GtkWidget *childBox(struct child *c);
|
||||||
extern void childSetMargined(struct child *c, int margined);
|
extern void childSetMargined(struct child *c, int margined);
|
||||||
|
|
||||||
// draw.c
|
/* draw.c */
|
||||||
extern uiDrawContext *newContext(cairo_t *);
|
extern uiDrawContext *newContext(cairo_t *);
|
||||||
extern void freeContext(uiDrawContext *);
|
extern void freeContext(uiDrawContext *);
|
||||||
|
|
||||||
// drawtext.c
|
/* drawtext.c */
|
||||||
extern uiDrawTextFont *mkTextFont(PangoFont *f, gboolean add);
|
extern uiDrawTextFont *mkTextFont(PangoFont *f, gboolean add);
|
||||||
extern PangoFont *pangoDescToPangoFont(PangoFontDescription *pdesc);
|
extern PangoFont *pangoDescToPangoFont(PangoFontDescription *pdesc);
|
||||||
|
|
||||||
// graphemes.c
|
/* graphemes.c */
|
||||||
extern ptrdiff_t *graphemes(const char *text, PangoContext *context);
|
extern ptrdiff_t *graphemes(const char *text, PangoContext *context);
|
||||||
|
|
||||||
// image.c
|
/* image.c */
|
||||||
/*TODO remove this*/typedef struct uiImage uiImage;
|
/*TODO remove this*/typedef struct uiImage uiImage;
|
||||||
extern cairo_surface_t *imageAppropriateSurface(uiImage *i, GtkWidget *w);
|
extern cairo_surface_t *imageAppropriateSurface(uiImage *i, GtkWidget *w);
|
||||||
|
|
||||||
// cellrendererbutton.c
|
/* cellrendererbutton.c */
|
||||||
extern GtkCellRenderer *newCellRendererButton(void);
|
extern GtkCellRenderer *newCellRendererButton(void);
|
||||||
|
|
||||||
// future.c
|
/* future.c */
|
||||||
extern void loadFutures(void);
|
extern void loadFutures(void);
|
||||||
extern PangoAttribute *FUTURE_pango_attr_foreground_alpha_new(guint16 alpha);
|
extern PangoAttribute *FUTURE_pango_attr_foreground_alpha_new(guint16 alpha);
|
||||||
extern gboolean FUTURE_gtk_widget_path_iter_set_object_name(GtkWidgetPath *path, gint pos, const char *name);
|
extern gboolean FUTURE_gtk_widget_path_iter_set_object_name(GtkWidgetPath *path, gint pos, const char *name);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// 6 april 2015
|
/* 6 april 2015 */
|
||||||
|
|
||||||
// TODO add a uiVerifyControlType() function that can be used by control implementations to verify controls
|
/* TODO add a uiVerifyControlType() function that can be used by control implementations to verify controls */
|
||||||
|
|
||||||
#ifndef __LIBUI_UI_H__
|
#ifndef __LIBUI_UI_H__
|
||||||
#define __LIBUI_UI_H__
|
#define __LIBUI_UI_H__
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// this macro is generated by cmake
|
/* this macro is generated by cmake */
|
||||||
#ifdef libui_EXPORTS
|
#ifdef libui_EXPORTS
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define _UI_EXTERN __declspec(dllexport) extern
|
#define _UI_EXTERN __declspec(dllexport) extern
|
||||||
|
@ -20,19 +20,19 @@ extern "C" {
|
||||||
#define _UI_EXTERN __attribute__((visibility("default"))) extern
|
#define _UI_EXTERN __attribute__((visibility("default"))) extern
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
// TODO add __declspec(dllimport) on windows, but only if not static
|
/* TODO add __declspec(dllimport) on windows, but only if not static */
|
||||||
#define _UI_EXTERN extern
|
#define _UI_EXTERN extern
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// C++ is really really really really really really dumb about enums, so screw that and just make them anonymous
|
/* C++ is really really really really really really dumb about enums, so screw that and just make them anonymous
|
||||||
// This has the advantage of being ABI-able should we ever need an ABI...
|
* This has the advantage of being ABI-able should we ever need an ABI... */
|
||||||
#define _UI_ENUM(s) typedef unsigned int s; enum
|
#define _UI_ENUM(s) typedef unsigned int s; enum
|
||||||
|
|
||||||
// This constant is provided because M_PI is nonstandard.
|
/* This constant is provided because M_PI is nonstandard.
|
||||||
// This comes from Go's math.Pi, which in turn comes from http://oeis.org/A000796.
|
* This comes from Go's math.Pi, which in turn comes from http://oeis.org/A000796. */
|
||||||
#define uiPi 3.14159265358979323846264338327950288419716939937510582097494459
|
#define uiPi 3.14159265358979323846264338327950288419716939937510582097494459
|
||||||
|
|
||||||
// TODO uiBool?
|
/* TODO uiBool? */
|
||||||
|
|
||||||
typedef struct uiInitOptions uiInitOptions;
|
typedef struct uiInitOptions uiInitOptions;
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ struct uiControl {
|
||||||
void (*Enable)(uiControl *);
|
void (*Enable)(uiControl *);
|
||||||
void (*Disable)(uiControl *);
|
void (*Disable)(uiControl *);
|
||||||
};
|
};
|
||||||
// TOOD add argument names to all arguments
|
/* TOOD add argument names to all arguments */
|
||||||
#define uiControl(this) ((uiControl *) (this))
|
#define uiControl(this) ((uiControl *) (this))
|
||||||
_UI_EXTERN void uiControlDestroy(uiControl *);
|
_UI_EXTERN void uiControlDestroy(uiControl *);
|
||||||
_UI_EXTERN uintptr_t uiControlHandle(uiControl *);
|
_UI_EXTERN uintptr_t uiControlHandle(uiControl *);
|
||||||
|
@ -90,7 +90,7 @@ _UI_EXTERN void uiControlDisable(uiControl *);
|
||||||
_UI_EXTERN uiControl *uiAllocControl(size_t n, uint32_t OSsig, uint32_t typesig, const char *typenamestr);
|
_UI_EXTERN uiControl *uiAllocControl(size_t n, uint32_t OSsig, uint32_t typesig, const char *typenamestr);
|
||||||
_UI_EXTERN void uiFreeControl(uiControl *);
|
_UI_EXTERN void uiFreeControl(uiControl *);
|
||||||
|
|
||||||
// TODO make sure all controls have these
|
/* TODO make sure all controls have these */
|
||||||
_UI_EXTERN void uiControlVerifySetParent(uiControl *, uiControl *);
|
_UI_EXTERN void uiControlVerifySetParent(uiControl *, uiControl *);
|
||||||
_UI_EXTERN int uiControlEnabledToUser(uiControl *);
|
_UI_EXTERN int uiControlEnabledToUser(uiControl *);
|
||||||
|
|
||||||
|
@ -174,10 +174,11 @@ _UI_EXTERN int uiGroupMargined(uiGroup *g);
|
||||||
_UI_EXTERN void uiGroupSetMargined(uiGroup *g, int margined);
|
_UI_EXTERN void uiGroupSetMargined(uiGroup *g, int margined);
|
||||||
_UI_EXTERN uiGroup *uiNewGroup(const char *title);
|
_UI_EXTERN uiGroup *uiNewGroup(const char *title);
|
||||||
|
|
||||||
// spinbox/slider rules:
|
/* spinbox/slider rules:
|
||||||
// setting value outside of range will automatically clamp
|
* setting value outside of range will automatically clamp
|
||||||
// initial value is minimum
|
* initial value is minimum
|
||||||
// complaint if min >= max?
|
* complaint if min >= max?
|
||||||
|
*/
|
||||||
|
|
||||||
typedef struct uiSpinbox uiSpinbox;
|
typedef struct uiSpinbox uiSpinbox;
|
||||||
#define uiSpinbox(this) ((uiSpinbox *) (this))
|
#define uiSpinbox(this) ((uiSpinbox *) (this))
|
||||||
|
@ -217,7 +218,7 @@ typedef struct uiEditableCombobox uiEditableCombobox;
|
||||||
_UI_EXTERN void uiEditableComboboxAppend(uiEditableCombobox *c, const char *text);
|
_UI_EXTERN void uiEditableComboboxAppend(uiEditableCombobox *c, const char *text);
|
||||||
_UI_EXTERN char *uiEditableComboboxText(uiEditableCombobox *c);
|
_UI_EXTERN char *uiEditableComboboxText(uiEditableCombobox *c);
|
||||||
_UI_EXTERN void uiEditableComboboxSetText(uiEditableCombobox *c, const char *text);
|
_UI_EXTERN void uiEditableComboboxSetText(uiEditableCombobox *c, const char *text);
|
||||||
// TODO what do we call a function that sets the currently selected item and fills the text field with it? editable comboboxes have no consistent concept of selected item
|
/* TODO what do we call a function that sets the currently selected item and fills the text field with it? editable comboboxes have no consistent concept of selected item */
|
||||||
_UI_EXTERN void uiEditableComboboxOnChanged(uiEditableCombobox *c, void (*f)(uiEditableCombobox *c, void *data), void *data);
|
_UI_EXTERN void uiEditableComboboxOnChanged(uiEditableCombobox *c, void (*f)(uiEditableCombobox *c, void *data), void *data);
|
||||||
_UI_EXTERN uiEditableCombobox *uiNewEditableCombobox(void);
|
_UI_EXTERN uiEditableCombobox *uiNewEditableCombobox(void);
|
||||||
|
|
||||||
|
@ -235,7 +236,7 @@ _UI_EXTERN uiDateTimePicker *uiNewDateTimePicker(void);
|
||||||
_UI_EXTERN uiDateTimePicker *uiNewDatePicker(void);
|
_UI_EXTERN uiDateTimePicker *uiNewDatePicker(void);
|
||||||
_UI_EXTERN uiDateTimePicker *uiNewTimePicker(void);
|
_UI_EXTERN uiDateTimePicker *uiNewTimePicker(void);
|
||||||
|
|
||||||
// TODO provide a facility for entering tab stops?
|
/* TODO provide a facility for entering tab stops? */
|
||||||
typedef struct uiMultilineEntry uiMultilineEntry;
|
typedef struct uiMultilineEntry uiMultilineEntry;
|
||||||
#define uiMultilineEntry(this) ((uiMultilineEntry *) (this))
|
#define uiMultilineEntry(this) ((uiMultilineEntry *) (this))
|
||||||
_UI_EXTERN char *uiMultilineEntryText(uiMultilineEntry *e);
|
_UI_EXTERN char *uiMultilineEntryText(uiMultilineEntry *e);
|
||||||
|
@ -291,7 +292,8 @@ struct uiAreaHandler {
|
||||||
|
|
||||||
// TODO RTL layouts?
|
// TODO RTL layouts?
|
||||||
// TODO reconcile edge and corner naming
|
// TODO reconcile edge and corner naming
|
||||||
_UI_ENUM(uiWindowResizeEdge) {
|
_UI_ENUM(uiWindowResizeEdge)
|
||||||
|
{
|
||||||
uiWindowResizeEdgeLeft,
|
uiWindowResizeEdgeLeft,
|
||||||
uiWindowResizeEdgeTop,
|
uiWindowResizeEdgeTop,
|
||||||
uiWindowResizeEdgeRight,
|
uiWindowResizeEdgeRight,
|
||||||
|
@ -299,10 +301,10 @@ _UI_ENUM(uiWindowResizeEdge) {
|
||||||
uiWindowResizeEdgeTopLeft,
|
uiWindowResizeEdgeTopLeft,
|
||||||
uiWindowResizeEdgeTopRight,
|
uiWindowResizeEdgeTopRight,
|
||||||
uiWindowResizeEdgeBottomLeft,
|
uiWindowResizeEdgeBottomLeft,
|
||||||
uiWindowResizeEdgeBottomRight,
|
uiWindowResizeEdgeBottomRight
|
||||||
// TODO have one for keyboard resizes?
|
/* TODO have one for keyboard resizes?
|
||||||
// TODO GDK doesn't seem to have any others, including for keyboards...
|
* TODO GDK doesn't seem to have any others, including for keyboards...
|
||||||
// TODO way to bring up the system menu instead?
|
* TODO way to bring up the system menu instead? */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define uiArea(this) ((uiArea *) (this))
|
#define uiArea(this) ((uiArea *) (this))
|
||||||
|
@ -346,29 +348,29 @@ _UI_ENUM(uiDrawBrushType) {
|
||||||
uiDrawBrushTypeSolid,
|
uiDrawBrushTypeSolid,
|
||||||
uiDrawBrushTypeLinearGradient,
|
uiDrawBrushTypeLinearGradient,
|
||||||
uiDrawBrushTypeRadialGradient,
|
uiDrawBrushTypeRadialGradient,
|
||||||
uiDrawBrushTypeImage,
|
uiDrawBrushTypeImage
|
||||||
};
|
};
|
||||||
|
|
||||||
_UI_ENUM(uiDrawLineCap) {
|
_UI_ENUM(uiDrawLineCap) {
|
||||||
uiDrawLineCapFlat,
|
uiDrawLineCapFlat,
|
||||||
uiDrawLineCapRound,
|
uiDrawLineCapRound,
|
||||||
uiDrawLineCapSquare,
|
uiDrawLineCapSquare
|
||||||
};
|
};
|
||||||
|
|
||||||
_UI_ENUM(uiDrawLineJoin) {
|
_UI_ENUM(uiDrawLineJoin) {
|
||||||
uiDrawLineJoinMiter,
|
uiDrawLineJoinMiter,
|
||||||
uiDrawLineJoinRound,
|
uiDrawLineJoinRound,
|
||||||
uiDrawLineJoinBevel,
|
uiDrawLineJoinBevel
|
||||||
};
|
};
|
||||||
|
|
||||||
// this is the default for botoh cairo and Direct2D (in the latter case, from the C++ helper functions)
|
/* this is the default for botoh cairo and Direct2D (in the latter case, from the C++ helper functions)
|
||||||
// Core Graphics doesn't explicitly specify a default, but NSBezierPath allows you to choose one, and this is the initial value
|
* Core Graphics doesn't explicitly specify a default, but NSBezierPath allows you to choose one, and this is the initial value
|
||||||
// so we're good to use it too!
|
* so we're good to use it too! */
|
||||||
#define uiDrawDefaultMiterLimit 10.0
|
#define uiDrawDefaultMiterLimit 10.0
|
||||||
|
|
||||||
_UI_ENUM(uiDrawFillMode) {
|
_UI_ENUM(uiDrawFillMode) {
|
||||||
uiDrawFillModeWinding,
|
uiDrawFillModeWinding,
|
||||||
uiDrawFillModeAlternate,
|
uiDrawFillModeAlternate
|
||||||
};
|
};
|
||||||
|
|
||||||
struct uiDrawMatrix {
|
struct uiDrawMatrix {
|
||||||
|
@ -383,13 +385,13 @@ struct uiDrawMatrix {
|
||||||
struct uiDrawBrush {
|
struct uiDrawBrush {
|
||||||
uiDrawBrushType Type;
|
uiDrawBrushType Type;
|
||||||
|
|
||||||
// solid brushes
|
/* solid brushes */
|
||||||
double R;
|
double R;
|
||||||
double G;
|
double G;
|
||||||
double B;
|
double B;
|
||||||
double A;
|
double A;
|
||||||
|
|
||||||
// gradient brushes
|
/* gradient brushes */
|
||||||
double X0; // linear: start X, radial: start X
|
double X0; // linear: start X, radial: start X
|
||||||
double Y0; // linear: start Y, radial: start Y
|
double Y0; // linear: start Y, radial: start Y
|
||||||
double X1; // linear: end X, radial: outer circle center X
|
double X1; // linear: end X, radial: outer circle center X
|
||||||
|
@ -502,13 +504,13 @@ _UI_ENUM(uiDrawTextWeight) {
|
||||||
uiDrawTextWeightBold,
|
uiDrawTextWeightBold,
|
||||||
uiDrawTextWeightUltraBold,
|
uiDrawTextWeightUltraBold,
|
||||||
uiDrawTextWeightHeavy,
|
uiDrawTextWeightHeavy,
|
||||||
uiDrawTextWeightUltraHeavy,
|
uiDrawTextWeightUltraHeavy
|
||||||
};
|
};
|
||||||
|
|
||||||
_UI_ENUM(uiDrawTextItalic) {
|
_UI_ENUM(uiDrawTextItalic) {
|
||||||
uiDrawTextItalicNormal,
|
uiDrawTextItalicNormal,
|
||||||
uiDrawTextItalicOblique,
|
uiDrawTextItalicOblique,
|
||||||
uiDrawTextItalicItalic,
|
uiDrawTextItalicItalic
|
||||||
};
|
};
|
||||||
|
|
||||||
_UI_ENUM(uiDrawTextStretch) {
|
_UI_ENUM(uiDrawTextStretch) {
|
||||||
|
@ -520,7 +522,7 @@ _UI_ENUM(uiDrawTextStretch) {
|
||||||
uiDrawTextStretchSemiExpanded,
|
uiDrawTextStretchSemiExpanded,
|
||||||
uiDrawTextStretchExpanded,
|
uiDrawTextStretchExpanded,
|
||||||
uiDrawTextStretchExtraExpanded,
|
uiDrawTextStretchExtraExpanded,
|
||||||
uiDrawTextStretchUltraExpanded,
|
uiDrawTextStretchUltraExpanded
|
||||||
};
|
};
|
||||||
|
|
||||||
struct uiDrawTextFontDescriptor {
|
struct uiDrawTextFontDescriptor {
|
||||||
|
@ -561,10 +563,10 @@ _UI_EXTERN void uiDrawTextLayoutSetColor(uiDrawTextLayout *layout, int startChar
|
||||||
_UI_EXTERN void uiDrawText(uiDrawContext *c, double x, double y, uiDrawTextLayout *layout);
|
_UI_EXTERN void uiDrawText(uiDrawContext *c, double x, double y, uiDrawTextLayout *layout);
|
||||||
|
|
||||||
_UI_ENUM(uiModifiers) {
|
_UI_ENUM(uiModifiers) {
|
||||||
uiModifierCtrl = 1 << 0,
|
uiModifierCtrl = 1 << 0,
|
||||||
uiModifierAlt = 1 << 1,
|
uiModifierAlt = 1 << 1,
|
||||||
uiModifierShift = 1 << 2,
|
uiModifierShift = 1 << 2,
|
||||||
uiModifierSuper = 1 << 3,
|
uiModifierSuper = 1 << 3
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO document drag captures
|
// TODO document drag captures
|
||||||
|
@ -626,7 +628,7 @@ _UI_ENUM(uiExtKey) {
|
||||||
uiExtKeyNAdd,
|
uiExtKeyNAdd,
|
||||||
uiExtKeyNSubtract,
|
uiExtKeyNSubtract,
|
||||||
uiExtKeyNMultiply,
|
uiExtKeyNMultiply,
|
||||||
uiExtKeyNDivide,
|
uiExtKeyNDivide
|
||||||
};
|
};
|
||||||
|
|
||||||
struct uiAreaKeyEvent {
|
struct uiAreaKeyEvent {
|
||||||
|
@ -641,9 +643,9 @@ struct uiAreaKeyEvent {
|
||||||
|
|
||||||
typedef struct uiFontButton uiFontButton;
|
typedef struct uiFontButton uiFontButton;
|
||||||
#define uiFontButton(this) ((uiFontButton *) (this))
|
#define uiFontButton(this) ((uiFontButton *) (this))
|
||||||
// TODO document this returns a new font
|
/* TODO document this returns a new font */
|
||||||
_UI_EXTERN uiDrawTextFont *uiFontButtonFont(uiFontButton *b);
|
_UI_EXTERN uiDrawTextFont *uiFontButtonFont(uiFontButton *b);
|
||||||
// TOOD SetFont, mechanics
|
/* TOOD SetFont, mechanics */
|
||||||
_UI_EXTERN void uiFontButtonOnChanged(uiFontButton *b, void (*f)(uiFontButton *, void *), void *data);
|
_UI_EXTERN void uiFontButtonOnChanged(uiFontButton *b, void (*f)(uiFontButton *, void *), void *data);
|
||||||
_UI_EXTERN uiFontButton *uiNewFontButton(void);
|
_UI_EXTERN uiFontButton *uiNewFontButton(void);
|
||||||
|
|
||||||
|
@ -666,14 +668,14 @@ _UI_ENUM(uiAlign) {
|
||||||
uiAlignFill,
|
uiAlignFill,
|
||||||
uiAlignStart,
|
uiAlignStart,
|
||||||
uiAlignCenter,
|
uiAlignCenter,
|
||||||
uiAlignEnd,
|
uiAlignEnd
|
||||||
};
|
};
|
||||||
|
|
||||||
_UI_ENUM(uiAt) {
|
_UI_ENUM(uiAt) {
|
||||||
uiAtLeading,
|
uiAtLeading,
|
||||||
uiAtTop,
|
uiAtTop,
|
||||||
uiAtTrailing,
|
uiAtTrailing,
|
||||||
uiAtBottom,
|
uiAtBottom
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct uiGrid uiGrid;
|
typedef struct uiGrid uiGrid;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 7 april 2015
|
/* 7 april 2015 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This file assumes that you have included <gtk/gtk.h> and "ui.h" beforehand. It provides API-specific functions for interfacing with foreign controls on Unix systems that use GTK+ to provide their UI (currently all except Mac OS X).
|
This file assumes that you have included <gtk/gtk.h> and "ui.h" beforehand. It provides API-specific functions for interfacing with foreign controls on Unix systems that use GTK+ to provide their UI (currently all except Mac OS X).
|
||||||
|
@ -19,7 +19,7 @@ struct uiUnixControl {
|
||||||
void (*SetContainer)(uiUnixControl *, GtkContainer *, gboolean);
|
void (*SetContainer)(uiUnixControl *, GtkContainer *, gboolean);
|
||||||
};
|
};
|
||||||
#define uiUnixControl(this) ((uiUnixControl *) (this))
|
#define uiUnixControl(this) ((uiUnixControl *) (this))
|
||||||
// TODO document
|
/* TODO document */
|
||||||
_UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gboolean);
|
_UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gboolean);
|
||||||
|
|
||||||
#define uiUnixControlDefaultDestroy(type) \
|
#define uiUnixControlDefaultDestroy(type) \
|
||||||
|
@ -80,7 +80,7 @@ _UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gbool
|
||||||
{ \
|
{ \
|
||||||
gtk_widget_set_sensitive(type(c)->widget, FALSE); \
|
gtk_widget_set_sensitive(type(c)->widget, FALSE); \
|
||||||
}
|
}
|
||||||
// TODO this whole addedBefore stuff is a MASSIVE HACK.
|
/* TODO this whole addedBefore stuff is a MASSIVE HACK. */
|
||||||
#define uiUnixControlDefaultSetContainer(type) \
|
#define uiUnixControlDefaultSetContainer(type) \
|
||||||
static void type ## SetContainer(uiUnixControl *c, GtkContainer *container, gboolean remove) \
|
static void type ## SetContainer(uiUnixControl *c, GtkContainer *container, gboolean remove) \
|
||||||
{ \
|
{ \
|
||||||
|
@ -112,7 +112,7 @@ _UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gbool
|
||||||
uiUnixControlDefaultDestroy(type) \
|
uiUnixControlDefaultDestroy(type) \
|
||||||
uiUnixControlAllDefaultsExceptDestroy(type)
|
uiUnixControlAllDefaultsExceptDestroy(type)
|
||||||
|
|
||||||
// TODO document
|
/* TODO document */
|
||||||
#define uiUnixNewControl(type, var) \
|
#define uiUnixNewControl(type, var) \
|
||||||
var = type(uiUnixAllocControl(sizeof (type), type ## Signature, #type)); \
|
var = type(uiUnixAllocControl(sizeof (type), type ## Signature, #type)); \
|
||||||
uiControl(var)->Destroy = type ## Destroy; \
|
uiControl(var)->Destroy = type ## Destroy; \
|
||||||
|
@ -127,10 +127,10 @@ _UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gbool
|
||||||
uiControl(var)->Enable = type ## Enable; \
|
uiControl(var)->Enable = type ## Enable; \
|
||||||
uiControl(var)->Disable = type ## Disable; \
|
uiControl(var)->Disable = type ## Disable; \
|
||||||
uiUnixControl(var)->SetContainer = type ## SetContainer;
|
uiUnixControl(var)->SetContainer = type ## SetContainer;
|
||||||
// TODO document
|
/* TODO document */
|
||||||
_UI_EXTERN uiUnixControl *uiUnixAllocControl(size_t n, uint32_t typesig, const char *typenamestr);
|
_UI_EXTERN uiUnixControl *uiUnixAllocControl(size_t n, uint32_t typesig, const char *typenamestr);
|
||||||
|
|
||||||
// uiUnixStrdupText() takes the given string and produces a copy of it suitable for being freed by uiFreeText().
|
/* uiUnixStrdupText() takes the given string and produces a copy of it suitable for being freed by uiFreeText(). */
|
||||||
_UI_EXTERN char *uiUnixStrdupText(const char *);
|
_UI_EXTERN char *uiUnixStrdupText(const char *);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 21 april 2016
|
/* 21 april 2016 */
|
||||||
#include "winapi.hpp"
|
#include "winapi.hpp"
|
||||||
#include "../ui.h"
|
#include "../ui.h"
|
||||||
#include "../ui_windows.h"
|
#include "../ui_windows.h"
|
||||||
|
@ -6,15 +6,15 @@
|
||||||
#include "resources.hpp"
|
#include "resources.hpp"
|
||||||
#include "compilerver.hpp"
|
#include "compilerver.hpp"
|
||||||
|
|
||||||
// ui internal window messages
|
/* ui internal window messages */
|
||||||
enum {
|
enum {
|
||||||
// redirected WM_COMMAND and WM_NOTIFY
|
/* redirected WM_COMMAND and WM_NOTIFY */
|
||||||
msgCOMMAND = WM_APP + 0x40, // start offset just to be safe
|
msgCOMMAND = WM_APP + 0x40, // start offset just to be safe
|
||||||
msgNOTIFY,
|
msgNOTIFY,
|
||||||
msgHSCROLL,
|
msgHSCROLL,
|
||||||
msgQueued,
|
msgQueued,
|
||||||
msgD2DScratchPaint,
|
msgD2DScratchPaint,
|
||||||
msgD2DScratchLButtonDown,
|
msgD2DScratchLButtonDown
|
||||||
};
|
};
|
||||||
|
|
||||||
// alloc.cpp
|
// alloc.cpp
|
||||||
|
|
Loading…
Reference in New Issue