diff --git a/.gitignore b/.gitignore
index 1dcc6d174..2ebdbc2a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ examples/*/*.exe
!examples/*/
!examples/*.*
!examples/*/*.*
+*.exe
*.o
*.so
*.dll
diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h
index 24418ec08..3c8bdf7b1 100644
--- a/include/Mw/LowLevel.h
+++ b/include/Mw/LowLevel.h
@@ -147,7 +147,7 @@ struct _MwLLHandler {
void (*key_released)(MwLL handle, void* data);
void (*focus_in)(MwLL handle, void* data);
void (*focus_out)(MwLL handle, void* data);
- void (*clipboard_received)(MwLL handle, void* data);
+ void (*clipboard)(MwLL handle, void* data);
};
#ifdef __cplusplus
diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h
index 6588be2da..5d6896598 100644
--- a/include/Mw/StringDefs.h
+++ b/include/Mw/StringDefs.h
@@ -71,5 +71,6 @@
#define MwNdirectoryChosenHandler "CdirectoryChosen" /* char* */
#define MwNcolorChosenHandler "CcolorChosen" /* MwRGB* */
#define MwNdrawHandler "Cdraw" /* NULL */
+#define MwNclipboardHandler "Cclipboard" /* char* */
#endif
diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h
index 043215e23..caf388797 100644
--- a/include/Mw/TypeDefs.h
+++ b/include/Mw/TypeDefs.h
@@ -212,7 +212,7 @@ struct _MwClass {
MwHandler resize;
MwHandler children_update;
MwHandlerChildrenProp children_prop_change;
- MwHandlerClipboardReceived clipboard_received;
+ MwHandlerClipboardReceived clipboard;
void* reserved1;
void* reserved2;
void* reserved3;
diff --git a/milsko.xml b/milsko.xml
index f7dcf2c78..dc980cd8d 100644
--- a/milsko.xml
+++ b/milsko.xml
@@ -122,6 +122,7 @@
+
diff --git a/src/backend/gdi.c b/src/backend/gdi.c
index 3308fdcac..764e9838d 100644
--- a/src/backend/gdi.c
+++ b/src/backend/gdi.c
@@ -404,7 +404,7 @@ static void MwLLNextEventImpl(MwLL handle) {
GlobalUnlock(hg);
CloseClipboard();
- MwLLDispatch(handle, clipboard_received, txt);
+ MwLLDispatch(handle, clipboard, txt);
free(txt);
}
diff --git a/src/core.c b/src/core.c
index 94ee54ead..3d41a3603 100644
--- a/src/core.c
+++ b/src/core.c
@@ -107,10 +107,11 @@ static void llfocusouthandler(MwLL handle, void* data) {
MwDispatchUserHandler(h, MwNfocusOutHandler, data);
}
-static void llclipboardreceivedhandler(MwLL handle, void* data) {
+static void llclipboardhandler(MwLL handle, void* data) {
MwWidget h = (MwWidget)handle->common.user;
- MwDispatch3(h, clipboard_received, data);
+ MwDispatch3(h, clipboard, data);
+ MwDispatchUserHandler(h, MwNclipboardHandler, data);
}
MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height) {
@@ -143,18 +144,18 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent,
if(parent == NULL) arrput(h->tick_list, h);
if(h->lowlevel != NULL) {
- h->lowlevel->common.user = h;
- h->lowlevel->common.handler->draw = lldrawhandler;
- h->lowlevel->common.handler->up = lluphandler;
- h->lowlevel->common.handler->down = lldownhandler;
- h->lowlevel->common.handler->resize = llresizehandler;
- h->lowlevel->common.handler->close = llclosehandler;
- h->lowlevel->common.handler->move = llmovehandler;
- h->lowlevel->common.handler->key = llkeyhandler;
- h->lowlevel->common.handler->key_released = llkeyrelhandler;
- h->lowlevel->common.handler->focus_in = llfocusinhandler;
- h->lowlevel->common.handler->focus_out = llfocusouthandler;
- h->lowlevel->common.handler->clipboard_received = llclipboardreceivedhandler;
+ h->lowlevel->common.user = h;
+ h->lowlevel->common.handler->draw = lldrawhandler;
+ h->lowlevel->common.handler->up = lluphandler;
+ h->lowlevel->common.handler->down = lldownhandler;
+ h->lowlevel->common.handler->resize = llresizehandler;
+ h->lowlevel->common.handler->close = llclosehandler;
+ h->lowlevel->common.handler->move = llmovehandler;
+ h->lowlevel->common.handler->key = llkeyhandler;
+ h->lowlevel->common.handler->key_released = llkeyrelhandler;
+ h->lowlevel->common.handler->focus_in = llfocusinhandler;
+ h->lowlevel->common.handler->focus_out = llfocusouthandler;
+ h->lowlevel->common.handler->clipboard = llclipboardhandler;
}
if(parent != NULL) arrput(parent->children, h);
diff --git a/src/widget/box.c b/src/widget/box.c
index 68f266e9d..99f3e0772 100644
--- a/src/widget/box.c
+++ b/src/widget/box.c
@@ -114,7 +114,7 @@ MwClassRec MwBoxClassRec = {
resize, /* resize */
children_update, /* children_update */
children_prop_change, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/button.c b/src/widget/button.c
index 677e30938..dac7739c6 100644
--- a/src/widget/button.c
+++ b/src/widget/button.c
@@ -107,7 +107,7 @@ MwClassRec MwButtonClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c
index 49264338c..1ccccd416 100644
--- a/src/widget/checkbox.c
+++ b/src/widget/checkbox.c
@@ -53,7 +53,7 @@ MwClassRec MwCheckBoxClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/combobox.c b/src/widget/combobox.c
index 20def29ef..6b5437335 100644
--- a/src/widget/combobox.c
+++ b/src/widget/combobox.c
@@ -204,7 +204,7 @@ MwClassRec MwComboBoxClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/entry.c b/src/widget/entry.c
index f85a1914f..34a90a36b 100644
--- a/src/widget/entry.c
+++ b/src/widget/entry.c
@@ -144,7 +144,7 @@ static void prop_change(MwWidget handle, const char* prop) {
}
}
-static void clipboard_received(MwWidget handle, const char* data) {
+static void clipboard(MwWidget handle, const char* data) {
MwEntry t = handle->internal;
const char* str = MwGetText(handle, MwNtext);
char* out = malloc(strlen(str) + strlen(data) + 1);
@@ -162,22 +162,22 @@ static void clipboard_received(MwWidget handle, const char* data) {
}
MwClassRec MwEntryClassRec = {
- create, /* create */
- destroy, /* destroy */
- draw, /* draw */
- NULL, /* click */
- NULL, /* parent_resize */
- prop_change, /* prop_change */
- NULL, /* mouse_move */
- MwForceRender2, /* mouse_up */
- MwForceRender2, /* mouse_down */
- key, /* key */
- NULL, /* execute */
- NULL, /* tick */
- NULL, /* resize */
- NULL, /* children_update */
- NULL, /* children_prop_change */
- clipboard_received, /* clipboard_received */
+ create, /* create */
+ destroy, /* destroy */
+ draw, /* draw */
+ NULL, /* click */
+ NULL, /* parent_resize */
+ prop_change, /* prop_change */
+ NULL, /* mouse_move */
+ MwForceRender2, /* mouse_up */
+ MwForceRender2, /* mouse_down */
+ key, /* key */
+ NULL, /* execute */
+ NULL, /* tick */
+ NULL, /* resize */
+ NULL, /* children_update */
+ NULL, /* children_prop_change */
+ clipboard, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/frame.c b/src/widget/frame.c
index eb324f0fc..117b0f8b9 100644
--- a/src/widget/frame.c
+++ b/src/widget/frame.c
@@ -61,7 +61,7 @@ MwClassRec MwFrameClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/image.c b/src/widget/image.c
index 07afbab46..74ee0bfd6 100644
--- a/src/widget/image.c
+++ b/src/widget/image.c
@@ -57,7 +57,7 @@ MwClassRec MwImageClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/label.c b/src/widget/label.c
index f53b72ee3..7c70d2571 100644
--- a/src/widget/label.c
+++ b/src/widget/label.c
@@ -375,7 +375,7 @@ MwClassRec MwLabelClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/listbox.c b/src/widget/listbox.c
index 2fadc5fc3..cb84e44c4 100644
--- a/src/widget/listbox.c
+++ b/src/widget/listbox.c
@@ -608,7 +608,7 @@ MwClassRec MwListBoxClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/menu.c b/src/widget/menu.c
index 4572d3fc3..44fc2fe57 100644
--- a/src/widget/menu.c
+++ b/src/widget/menu.c
@@ -204,7 +204,7 @@ MwClassRec MwMenuClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c
index 83577aa01..5f14fc317 100644
--- a/src/widget/numberentry.c
+++ b/src/widget/numberentry.c
@@ -143,7 +143,7 @@ MwClassRec MwNumberEntryClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/opengl.c b/src/widget/opengl.c
index 7413acda3..a1c36d96f 100644
--- a/src/widget/opengl.c
+++ b/src/widget/opengl.c
@@ -244,7 +244,7 @@ MwClassRec MwOpenGLClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c
index c0b44bee9..d85a8ddaf 100644
--- a/src/widget/progressbar.c
+++ b/src/widget/progressbar.c
@@ -61,7 +61,7 @@ MwClassRec MwProgressBarClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/radiobox.c b/src/widget/radiobox.c
index d932ba6f4..3229faad3 100644
--- a/src/widget/radiobox.c
+++ b/src/widget/radiobox.c
@@ -62,7 +62,7 @@ MwClassRec MwRadioBoxClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c
index 055ea5a3c..5c0d8ddbf 100644
--- a/src/widget/scrollbar.c
+++ b/src/widget/scrollbar.c
@@ -272,7 +272,7 @@ MwClassRec MwScrollBarClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/separator.c b/src/widget/separator.c
index c608dd1d4..8fcfc5b71 100644
--- a/src/widget/separator.c
+++ b/src/widget/separator.c
@@ -50,7 +50,7 @@ MwClassRec MwSeparatorClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/submenu.c b/src/widget/submenu.c
index 13b694198..59673e3e7 100644
--- a/src/widget/submenu.c
+++ b/src/widget/submenu.c
@@ -253,7 +253,7 @@ MwClassRec MwSubMenuClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/treeview.c b/src/widget/treeview.c
index 903a12973..76e1e0139 100644
--- a/src/widget/treeview.c
+++ b/src/widget/treeview.c
@@ -496,7 +496,7 @@ MwClassRec MwTreeViewClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/viewport.c b/src/widget/viewport.c
index 3a9e3fd82..de71af790 100644
--- a/src/widget/viewport.c
+++ b/src/widget/viewport.c
@@ -191,7 +191,7 @@ MwClassRec MwViewportClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c
index c85ea4311..441bc2731 100644
--- a/src/widget/vulkan.c
+++ b/src/widget/vulkan.c
@@ -524,7 +524,7 @@ MwClassRec MwVulkanClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,
diff --git a/src/widget/window.c b/src/widget/window.c
index 4a821dee5..979e073c8 100644
--- a/src/widget/window.c
+++ b/src/widget/window.c
@@ -59,7 +59,7 @@ MwClassRec MwWindowClassRec = {
NULL, /* resize */
NULL, /* children_update */
NULL, /* children_prop_change */
- NULL, /* clipboard_received */
+ NULL, /* clipboard */
NULL,
NULL,
NULL,