Home » U++ Library support » ArrayCtrl, HeaderCtrl & GridCtrl » Problem with Drag&Drop in ArrayCtrl
Re: Problem with Drag&Drop in ArrayCtrl [message #22577 is a reply to message #22574] |
Tue, 28 July 2009 03:06   |
 |
mirek
Messages: 14266 Registered: November 2005
|
Ultimate Member |
|
|
I have tried to create a testcase:
#include <CtrlLib/CtrlLib.h>
using namespace Upp;
struct TestDisplay : Display {
virtual void Paint(Draw& w, const Rect& r, const Value& q, Color ink, Color paper, dword style) const
{
Display::Paint(w, r, AsString(q) + " " + AsString(GetTickCount()),
ink, paper, style);
}
};
struct App : TopWindow {
ArrayCtrl a, b;
Splitter s;
TimeCallback tb;
void Timer()
{
a.UpdateRefresh();
}
void DnD(PasteClip& d)
{
if(AcceptText(d)) {
a.Add(GetString(d), GetString(d));
a.SetFocus();
}
}
void DnDInsert(int line, PasteClip& d)
{
if(AcceptInternal<ArrayCtrl>(d, "array")) {
a.InsertDrop(line, d);
a.SetFocus();
}
if(AcceptText(d)) {
a.Insert(line);
a.Set(line, 0, GetString(d));
a.SetCursor(line);
a.SetFocus();
}
}
void DnDInsertB(int line, PasteClip& d)
{
if(AcceptInternal<ArrayCtrl>(d, "array")) {
const ArrayCtrl& src = GetInternal<ArrayCtrl>(d);
bool self = &src == &b;
Vector< Vector<Value> > data;
for(int i = 0; i < src.GetCount(); i++)
if(src.IsSel(i)) {
Value v = src.Get(i, 0);
data.Add().Add(IsNumber(v) ? FormatIntRoman((int)src.Get(i, 0)) : String(v));
}
b.InsertDrop(line, data, d, self);
b.SetFocus();
}
}
void Drag()
{
if(a.DoDragAndDrop(InternalClip(a, "array")) == DND_MOVE)
a.RemoveSelection();
}
void DragB()
{
if(b.DoDragAndDrop(InternalClip(b, "array"), b.GetDragSample()) == DND_MOVE)
b.RemoveSelection();
}
typedef App CLASSNAME;
App() {
a.AddColumn("You can paste the text here too").SetDisplay(Single<TestDisplay>());
a.MultiSelect();
a.WhenDropInsert = THISBACK(DnDInsert);
a.WhenDrop = THISBACK(DnD);
a.WhenDrag = THISBACK(Drag);
b.AddColumn("Roman numbers");
b.MultiSelect();
b.WhenDropInsert = THISBACK(DnDInsertB);
b.WhenDrag = THISBACK(DragB);
Add(s.Horz(a, b));
for(int i = 0; i < 200; i++) {
a.Add(i);
b.Add(FormatIntRoman(i, true));
}
Sizeable();
tb.Set(-200, THISBACK(Timer));
}
};
GUI_APP_MAIN
{
App().Run();
}
I believe this is as close as possible to your app - and it seems to work quite fine both in linux and win32.
Mirek
|
|
|
 |
|
Problem with Drag&Drop in ArrayCtrl
By: koldo on Wed, 15 July 2009 18:02
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: koldo on Sat, 18 July 2009 13:51
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mirek on Sun, 26 July 2009 17:28
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: koldo on Sun, 26 July 2009 23:50
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mirek on Mon, 27 July 2009 03:19
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: koldo on Mon, 27 July 2009 09:03
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mirek on Mon, 27 July 2009 17:20
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: koldo on Tue, 28 July 2009 00:15
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mirek on Tue, 28 July 2009 03:06
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: koldo on Tue, 28 July 2009 09:49
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mrjt on Tue, 28 July 2009 13:59
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mrjt on Tue, 28 July 2009 14:24
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: koldo on Tue, 28 July 2009 16:24
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mrjt on Tue, 28 July 2009 17:08
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: koldo on Tue, 28 July 2009 22:56
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mirek on Wed, 29 July 2009 05:48
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: koldo on Wed, 29 July 2009 08:34
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mirek on Wed, 29 July 2009 08:45
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: koldo on Wed, 29 July 2009 13:16
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mirek on Fri, 31 July 2009 19:04
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: koldo on Thu, 13 August 2009 13:42
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl [SOLVED]
By: koldo on Wed, 26 August 2009 09:17
|
 |
|
Re: Problem with Drag&Drop in ArrayCtrl
By: mirek on Sun, 26 July 2009 17:28
|
Goto Forum:
Current Time: Fri Jul 18 03:43:49 CEST 2025
Total time taken to generate the page: 0.04496 seconds
|