From 18ed4bf5a511555f0ee0afddcb68a42e1a214bb8 Mon Sep 17 00:00:00 2001 From: cxl Date: Wed, 14 Jan 2015 18:21:19 +0000 Subject: [PATCH] .reference git-svn-id: svn://ultimatepp.org/upp/trunk@8041 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- reference/DragAndDropImg/DragAndDropImg.upp | 11 +++++ reference/DragAndDropImg/init | 4 ++ reference/DragAndDropImg/main.cpp | 46 +++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 reference/DragAndDropImg/DragAndDropImg.upp create mode 100644 reference/DragAndDropImg/init create mode 100644 reference/DragAndDropImg/main.cpp diff --git a/reference/DragAndDropImg/DragAndDropImg.upp b/reference/DragAndDropImg/DragAndDropImg.upp new file mode 100644 index 000000000..83cafe97f --- /dev/null +++ b/reference/DragAndDropImg/DragAndDropImg.upp @@ -0,0 +1,11 @@ +description "Example of basic DnD API\377"; + +uses + CtrlLib; + +file + main.cpp; + +mainconfig + "" = "GUI SSE2"; + diff --git a/reference/DragAndDropImg/init b/reference/DragAndDropImg/init new file mode 100644 index 000000000..a0a3cb91e --- /dev/null +++ b/reference/DragAndDropImg/init @@ -0,0 +1,4 @@ +#ifndef _DragAndDropImg_icpp_init_stub +#define _DragAndDropImg_icpp_init_stub +#include "CtrlLib/init" +#endif diff --git a/reference/DragAndDropImg/main.cpp b/reference/DragAndDropImg/main.cpp new file mode 100644 index 000000000..51920841b --- /dev/null +++ b/reference/DragAndDropImg/main.cpp @@ -0,0 +1,46 @@ +#include + +using namespace Upp; + +struct MyApp : TopWindow { + virtual void CancelMode(); + virtual void Paint(Draw& w); + virtual void DragAndDrop(Point p, PasteClip& d); + virtual void DragLeave(); + + Image img; + bool dnd; + + MyApp() { dnd = false; } +}; + +void MyApp::Paint(Draw& w) +{ + Size sz = GetSize(); + w.DrawRect(sz, dnd ? SColorInfo() : SColorFace()); + w.DrawImage(0, 0, img); +} + +void MyApp::DragAndDrop(Point p, PasteClip& d) +{ + if(AcceptImage(d)) + img = GetImage(d); + dnd = d.IsAccepted(); + Refresh(); +} + +void MyApp::DragLeave() +{ + CancelMode(); +} + +void MyApp::CancelMode() +{ + dnd = false; + Refresh(); +} + +GUI_APP_MAIN +{ + MyApp().Run(); +}