|
|
Home » Developing U++ » U++ Developers corner » Optimizing DrawImage across platforms
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend [message #53699 is a reply to message #53689] |
Wed, 22 April 2020 14:08   |
Tom1
Messages: 1303 Registered: March 2007
|
Ultimate Contributor |
|
|
Hi,
Here's a completing feature for RectTracker for tracking line drawing (TrackLine) and free-hand polyline (TrackRoute):
class LineTracker: public RectTracker{
public:
int mode;
Vector<Point> route;
Vector<Point> TrackLine(const Point& p){
mode=1;
route.Clear();
route.Add(p);
Track(Rect(p,p),0,0);
return clone(route);
}
Vector<Point> TrackRoute(const Point& p){
mode=2;
route.Clear();
route.Add(p);
Track(Rect(p,p),0,0);
return clone(route);
}
void MouseMove(Point p, dword){
if(mode==2 || route.GetCount()<2){
route.Add(p);
}
else route[1]=p;
Refresh();
sync(Rect(route[0],route[route.GetCount()-1]));
}
void Paint(Draw& w){
w.DrawImage(0, 0, master_image);
w.Clip(clip & GetMaster().GetSize());
int style=width;
if(pattern!=DRAWDRAGRECT_SOLID){
Color color2 = IsDark(color) ? White() : Black();
w.DrawPolyline(route,width,color2);
switch(pattern){
case DRAWDRAGRECT_NORMAL:
style=PEN_DOT;
break;
case DRAWDRAGRECT_DASHED:
style=PEN_DASHDOT;
break;
}
}
w.DrawPolyline(route,style,color);
w.End();
}
LineTracker(Ctrl &master): RectTracker(master){
MinSize(Size(-100000,-100000));
mode=1;
}
};
Feel free to include it in U++.
To test the functionality, you can try:
void LeftDown(Point p, dword flags){
LineTracker tracker(*this);
tracker.Solid();
tracker.Width(3);
tracker.SetColor(Blue());
Vector<Point> res;
if(flags&K_CTRL) res = tracker.TrackRoute(p);
else res = tracker.TrackLine(p);
// ...
}
It proved easy enough to inherit from RectTracker, so I made it a separate class after all.
Best regards,
Tom
[Updated on: Wed, 22 April 2020 21:11] Report message to a moderator
|
|
|
 |
|
Optimizing DrawImage across platforms
By: Tom1 on Wed, 15 April 2020 09:52
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Wed, 15 April 2020 14:35
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Wed, 15 April 2020 15:15
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Wed, 15 April 2020 22:21
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Thu, 16 April 2020 21:08
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Thu, 16 April 2020 22:06
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Fri, 17 April 2020 00:41
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Fri, 17 April 2020 13:20
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Fri, 17 April 2020 13:38
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Fri, 17 April 2020 14:36
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Fri, 17 April 2020 17:00
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Sat, 18 April 2020 14:05
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Sat, 18 April 2020 15:06
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Sat, 18 April 2020 16:43
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Sat, 18 April 2020 17:12
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Sat, 18 April 2020 17:27
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Sat, 18 April 2020 18:21
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Sat, 18 April 2020 16:57
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Sat, 18 April 2020 16:48
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Sat, 18 April 2020 17:05
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Sat, 18 April 2020 19:21
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Sun, 19 April 2020 14:28
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Sun, 19 April 2020 22:37
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Mon, 20 April 2020 10:31
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Mon, 20 April 2020 11:13
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Mon, 20 April 2020 12:57
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Mon, 20 April 2020 13:13
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Mon, 20 April 2020 14:11
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Mon, 20 April 2020 15:11
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Mon, 20 April 2020 15:25
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Mon, 20 April 2020 15:34
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Mon, 20 April 2020 17:55
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Mon, 20 April 2020 20:37
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Mon, 20 April 2020 20:59
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Tue, 21 April 2020 16:20
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Tue, 21 April 2020 18:03
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Tue, 21 April 2020 18:28
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Tue, 21 April 2020 19:25
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Didier on Tue, 21 April 2020 22:19
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Wed, 22 April 2020 17:57
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Wed, 22 April 2020 14:08
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Fri, 24 April 2020 17:19
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Fri, 24 April 2020 22:43
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Sat, 25 April 2020 15:58
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Sun, 26 April 2020 11:49
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Tue, 28 April 2020 09:30
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: mirek on Tue, 12 May 2020 15:35
|
 |
|
Re: MILESTONE: gtk3 replaces gtk2 as default linux backend
By: Tom1 on Wed, 13 May 2020 09:44
|
Goto Forum:
Current Time: Sat Jun 07 06:14:54 CEST 2025
Total time taken to generate the page: 0.06311 seconds
|
|
|