diff --git a/.gitignore b/.gitignore
index 1dcc6d1..2ebdbc2 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 24418ec..3c8bdf7 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 6588be2..5d68965 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 043215e..caf3887 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 f7dcf2c..dc980cd 100644
--- a/milsko.xml
+++ b/milsko.xml
@@ -122,6 +122,7 @@
+
diff --git a/src/backend/gdi.c b/src/backend/gdi.c
index 3308fdc..764e983 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 94ee54e..3d41a36 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 68f266e..99f3e07 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 677e309..dac7739 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 4926433..1ccccd4 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 20def29..6b54373 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 f85a191..34a90a3 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 eb324f0..117b0f8 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 07afbab..74ee0bf 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 f53b72e..7c70d25 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 2fadc5f..cb84e44 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 4572d3f..44fc2fe 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 83577aa..5f14fc3 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 7413acd..a1c36d9 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 c0b44be..d85a8dd 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 d932ba6..3229faa 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 055ea5a..5c0d8dd 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 c608dd1..8fcfc5b 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 13b6941..59673e3 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 903a129..76e1e01 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 3a9e3fd..de71af7 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 c85ea43..441bc27 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 4a821de..979e073 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,