Core: #include <function> (thanks dolik!), LineEdit: RectSel sort, Paste in column repeats pattern, zero width rectsel visuals

git-svn-id: svn://ultimatepp.org/upp/trunk@7770 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2014-10-12 12:09:51 +00:00
parent 8acdab6f6b
commit 58987678bc
6 changed files with 145 additions and 95 deletions

View file

@ -215,6 +215,7 @@ typedef int SOCKET;
#include <zlib.h>
#endif
#include <functional>
#include <algorithm>
#include <string>
#include <complex>

View file

@ -35,6 +35,7 @@ IMAGE_ID(cut)
IMAGE_ID(copy)
IMAGE_ID(paste_vert)
IMAGE_ID(paste)
IMAGE_ID(sort)
IMAGE_ID(remove)
IMAGE_ID(menu_check)
IMAGE_ID(menu_radio)
@ -240,100 +241,109 @@ IMAGE_DATA(159,123,140,190,205,98,244,93,188,207,37,62,212,254,1,74,139,90,118,0
IMAGE_END_DATA(1184, 13)
IMAGE_BEGIN_DATA
IMAGE_DATA(120,156,237,91,177,110,20,49,16,93,16,69,202,8,137,226,36,74,170,19,21,5,9,95,64,145,40,21,91,4,9,168)
IMAGE_DATA(248,142,61,137,72,208,209,33,254,0,180,2,137,72,148,20,169,242,5,39,42,218,164,161,161,130,210,236,236,221,220,205)
IMAGE_DATA(206,142,199,99,239,222,221,30,220,139,70,142,237,121,51,246,216,158,245,110,148,108,63,219,207,86,133,209,104,148,31,29)
IMAGE_DATA(29,185,227,227,99,7,37,212,67,156,215,207,50,247,230,121,86,235,163,64,59,173,67,63,136,196,135,246,203,183,247,220)
IMAGE_DATA(203,167,143,23,250,232,31,4,218,175,63,62,116,197,139,145,151,127,85,245,83,185,102,114,101,224,131,222,193,147,119,11)
IMAGE_DATA(57,204,219,2,237,183,239,62,200,53,190,6,180,75,109,72,124,208,169,6,59,35,85,101,93,159,183,127,187,252,81,151)
IMAGE_DATA(210,252,27,254,9,159,251,135,146,242,127,125,57,116,63,63,29,4,253,35,184,255,223,95,31,213,54,66,254,53,62,136)
IMAGE_DATA(230,31,197,199,255,67,248,235,244,143,251,31,36,180,254,146,127,138,208,254,163,251,176,38,236,146,65,155,223,87,50,184)
IMAGE_DATA(38,135,42,37,25,32,159,31,30,68,40,25,112,190,180,9,181,100,96,245,239,75,6,87,1,255,218,97,162,54,124,254)
IMAGE_DATA(53,62,181,33,249,183,36,3,180,147,234,159,243,45,254,105,50,64,137,241,47,97,16,201,32,5,103,85,230,4,249,94)
IMAGE_DATA(150,234,4,239,103,89,14,122,159,243,188,14,8,229,191,154,219,64,59,121,5,137,251,126,60,110,245,99,31,218,1,251)
IMAGE_DATA(84,135,246,75,182,185,29,106,3,219,66,115,147,108,160,79,24,51,157,175,213,134,101,204,86,255,22,27,218,252,67,54)
IMAGE_DATA(36,46,143,191,22,135,208,124,233,58,72,99,64,223,154,15,176,193,247,158,213,126,159,56,155,223,56,122,49,54,180,100)
IMAGE_DATA(176,101,232,178,8,206,192,247,245,187,204,206,231,58,86,174,164,27,195,149,108,196,114,125,227,72,65,63,7,230,95,198)
IMAGE_DATA(46,25,172,5,93,14,195,226,58,152,104,67,226,118,61,204,235,228,75,54,118,88,5,246,179,189,236,86,88,173,235,2)
IMAGE_DATA(244,145,213,187,216,216,244,147,105,59,158,106,123,213,79,203,115,224,14,74,50,149,218,239,211,225,47,192,169,124,205,191)
IMAGE_DATA(54,126,47,164,96,36,64,115,206,239,92,190,62,73,87,178,107,217,165,155,11,134,101,151,72,122,124,133,185,110,202,174)
IMAGE_DATA(9,141,71,133,33,24,214,85,247,245,133,86,183,203,27,67,151,55,146,54,66,193,176,174,186,175,47,180,186,41,124,139)
IMAGE_DATA(127,203,248,91,136,60,38,218,123,155,84,79,57,247,26,223,226,63,29,61,37,80,9,150,237,109,57,66,82,48,186,222)
IMAGE_DATA(91,101,244,25,12,250,25,140,139,166,163,217,209,124,245,54,112,132,18,140,174,137,201,186,234,218,14,233,219,191,14,26)
IMAGE_DATA(12,7,249,134,74,59,211,173,182,127,221,254,88,255,252,219,196,141,232,32,174,10,227,241,56,159,76,38,142,11,180,91)
IMAGE_DATA(248,160,59,157,78,27,115,134,186,213,70,81,20,45,223,32,190,118,110,23,234,206,193,215,236,50,188,216,149,206,116,58)
IMAGE_DATA(174,109,52,249,192,133,47,230,89,80,202,50,19,248,206,196,5,153,76,254,69,126,217,137,15,107,50,139,107,88,138,226)
IMAGE_DATA(78,131,239,219,191,154,88,247,246,202,177,75,6,77,12,41,25,192,134,172,154,234,50,54,25,64,123,158,207,248,80,250)
IMAGE_DATA(108,248,14,35,114,208,63,212,83,14,115,150,117,75,6,25,185,74,80,123,88,238,146,65,143,128,100,224,138,155,27,240)
IMAGE_DATA(236,18,46,192,192,193,191,15,35,31,234,179,223,165,133,104,6,26,117,165,178,157,72,228,36,130,156,147,147,230,120,228)
IMAGE_DATA(68,130,109,244,70,118,122,250,193,53,109,204,196,146,72,202,18,14,106,233,206,207,79,28,247,31,186,85,148,101,94,115)
IMAGE_DATA(177,4,225,243,167,7,145,11,114,103,135,209,205,231,181,140,127,204,83,125,201,95,34,134,207,15,113,115,254,233,124,107)
IMAGE_DATA(34,224,73,192,183,255,182,34,9,32,102,201,96,211,163,144,225,11,98,12,255,226,226,98,33,88,183,218,144,248,0,171)
IMAGE_DATA(13,31,223,106,67,226,199,196,130,243,185,236,248,171,231,135,68,227,175,29,117,50,24,214,144,90,224,79,199,20,62,125)
IMAGE_DATA(250,14,157,47,221,8,154,183,7,61,30,84,63,36,210,120,250,224,183,55,253,82,63,246,64,108,219,250,73,252,193,38)
IMAGE_DATA(0,138,109,72,6,255,27,164,100,160,65,226,79,170,194,36,190,195,220,149,31,113,93,238,35,102,59,244,128,85,191,38)
IMAGE_DATA(140,171,151,202,9,217,60,80,183,114,11,198,65,91,188,174,249,229,254,104,59,148,133,135,175,141,149,114,53,126,136,27)
IMAGE_DATA(242,239,107,47,152,196,240,251,133,239,49,34,221,34,186,240,125,255,71,96,225,251,184,203,111,29,126,126,243,155,82,155)
IMAGE_DATA(171,141,11,251,184,46,214,99,30,193,148,163,249,237,136,129,126,51,112,17,34,5,134,111,196,229,167,35,252,189,214,41)
IMAGE_DATA(209,70,34,223,217,249,162,88,249,154,104,252,80,236,194,124,229,54,178,227,171,252,40,25,4,254,2,177,107,137,233,0)
IMAGE_END_DATA(1152, 24)
IMAGE_DATA(120,156,237,91,65,136,28,69,20,253,6,209,64,68,150,128,224,202,42,130,57,200,32,8,30,220,77,78,34,11,10,187)
IMAGE_DATA(174,7,109,48,106,18,66,20,20,193,147,7,47,177,7,18,208,131,160,151,136,71,111,106,163,96,192,155,30,246,226,130)
IMAGE_DATA(30,60,141,226,65,5,15,187,23,65,60,233,177,172,223,211,53,243,187,250,215,175,95,221,61,179,51,113,222,242,169,169)
IMAGE_DATA(170,255,254,175,250,85,245,187,186,67,96,13,214,96,86,88,95,95,207,118,118,118,204,238,238,174,193,18,235,49,206,187)
IMAGE_DATA(23,192,188,119,17,74,125,39,216,78,235,216,143,194,241,177,253,224,131,51,230,213,23,159,154,232,59,255,40,216,126,244)
IMAGE_DATA(217,227,38,191,180,30,228,31,218,126,42,71,158,28,42,248,168,183,249,252,71,19,217,202,154,130,237,167,55,30,203,36)
IMAGE_DATA(190,4,103,151,218,224,248,168,99,7,59,38,217,178,172,87,237,223,30,252,90,150,220,252,107,254,9,223,247,143,37,229)
IMAGE_DATA(255,253,213,150,249,243,139,205,168,127,7,223,255,63,95,159,45,109,196,252,75,124,20,201,191,147,16,255,95,194,159,167)
IMAGE_DATA(127,183,255,81,98,235,207,249,167,136,237,63,186,15,75,194,42,25,52,249,125,37,131,35,114,168,218,36,3,199,247,15)
IMAGE_DATA(143,67,44,25,248,124,110,19,74,201,64,235,63,148,12,14,35,254,165,195,68,109,132,252,75,124,106,131,243,175,73,6)
IMAGE_DATA(206,78,91,255,62,95,227,159,38,3,39,41,254,57,44,66,50,8,14,240,73,128,15,47,0,252,208,134,127,2,224,212)
IMAGE_DATA(37,128,159,158,6,248,228,222,210,84,26,255,97,128,151,207,1,92,67,238,51,0,159,167,242,95,2,248,238,46,128,135)
IMAGE_DATA(240,247,43,0,191,220,9,112,159,150,127,183,117,255,38,192,239,246,228,22,40,87,0,14,206,2,92,213,242,159,0,120)
IMAGE_DATA(223,142,255,138,171,163,239,215,1,254,176,63,239,208,240,183,1,110,96,252,104,219,38,192,219,167,1,30,209,240,19,193)
IMAGE_DATA(240,55,182,0,178,98,42,111,253,5,240,232,27,122,62,197,131,207,2,92,252,30,248,185,71,248,167,30,0,120,237,183)
IMAGE_DATA(113,89,67,129,131,244,248,27,85,187,131,245,119,249,71,128,251,183,25,195,168,123,80,149,198,171,87,216,190,97,163,158)
IMAGE_DATA(135,199,54,225,152,38,247,204,115,0,47,124,35,112,169,13,58,151,10,231,222,169,199,31,101,112,121,210,61,203,155,65)
IMAGE_DATA(27,92,183,65,64,249,185,40,196,205,96,119,111,134,122,95,102,89,153,29,41,255,90,101,195,217,201,44,56,238,199,131)
IMAGE_DATA(65,163,223,245,57,59,104,159,234,208,126,206,182,111,135,218,112,109,177,185,113,54,156,79,28,51,157,175,214,134,102,204)
IMAGE_DATA(90,255,26,27,210,252,99,54,56,174,31,127,41,14,177,249,210,117,224,198,224,124,75,62,208,134,191,247,180,246,251,196)
IMAGE_DATA(245,234,245,163,23,99,139,150,12,150,12,93,22,193,40,248,161,126,3,122,190,175,163,229,114,186,41,92,206,70,42,55)
IMAGE_DATA(52,142,54,232,231,192,220,202,88,37,131,185,160,203,97,152,188,27,182,180,193,113,187,30,230,121,242,57,27,43,204,2)
IMAGE_DATA(107,112,18,110,143,171,245,241,254,216,199,83,180,173,141,227,126,50,45,199,83,237,164,253,107,120,142,220,65,73,166,18)
IMAGE_DATA(251,67,58,254,215,176,182,124,201,191,52,254,32,184,96,180,128,228,220,191,115,133,250,56,93,206,174,102,151,30,95,48)
IMAGE_DATA(52,187,132,211,243,87,216,215,109,179,107,98,227,17,161,8,134,118,213,67,125,177,213,237,242,198,208,229,141,164,137,88)
IMAGE_DATA(48,180,171,30,234,139,173,110,27,190,198,191,102,252,13,36,30,19,233,189,141,171,183,57,247,18,95,227,191,61,122,74)
IMAGE_DATA(160,28,52,219,91,115,132,184,96,116,189,183,242,232,51,24,244,51,152,47,146,142,100,71,242,213,219,192,29,132,96,116)
IMAGE_DATA(77,76,218,85,151,118,72,223,254,101,208,96,24,204,55,84,154,153,110,182,253,243,246,231,245,87,223,38,110,75,14,226)
IMAGE_DATA(172,48,24,12,178,225,112,104,124,193,118,13,31,117,71,163,81,109,206,88,215,218,200,243,188,225,27,37,212,238,219,197)
IMAGE_DATA(186,49,248,53,187,136,47,182,213,25,141,6,165,141,58,31,185,248,197,28,162,82,20,192,240,141,138,139,50,28,222,138)
IMAGE_DATA(252,162,19,31,215,100,28,215,184,228,249,61,53,126,104,255,74,162,221,219,51,199,42,25,212,177,72,201,0,55,164,109)
IMAGE_DATA(42,203,212,100,128,237,89,54,230,99,25,178,17,58,140,142,227,252,99,189,205,97,6,232,150,12,128,92,37,168,61,87)
IMAGE_DATA(174,146,65,143,192,100,96,242,19,199,224,217,180,184,0,35,199,253,251,176,227,99,125,252,155,91,136,122,160,157,46,87)
IMAGE_DATA(54,19,9,159,68,28,103,111,175,62,30,62,145,184,54,122,35,59,127,254,83,83,183,49,22,77,34,41,10,60,168,133)
IMAGE_DATA(185,121,115,207,248,254,99,183,138,162,200,74,174,43,81,252,249,211,131,232,139,227,142,15,163,169,230,53,141,127,202,83)
IMAGE_DATA(125,202,159,34,133,239,31,226,250,252,219,243,181,137,192,79,2,161,253,183,20,73,192,97,156,12,142,123,20,60,66,65)
IMAGE_DATA(76,225,239,239,239,79,196,213,181,54,56,62,66,107,35,196,215,218,224,248,41,177,240,249,190,172,248,179,231,199,68,226)
IMAGE_DATA(207,29,101,50,88,172,33,53,224,63,29,219,240,233,211,119,209,249,220,141,160,126,123,144,227,65,245,99,194,141,167,15)
IMAGE_DATA(126,115,211,79,245,83,15,196,178,173,31,199,95,216,4,64,177,12,201,224,255,6,46,25,72,224,248,67,91,168,36,116)
IMAGE_DATA(152,187,242,19,174,203,125,196,108,133,30,48,235,215,132,129,125,169,28,146,205,131,117,45,55,247,56,206,150,95,151,252)
IMAGE_DATA(250,254,104,59,150,121,128,47,141,149,114,37,126,140,27,243,31,106,207,61,73,225,247,139,208,99,132,187,69,116,225,135)
IMAGE_DATA(254,31,129,134,31,226,78,191,117,132,249,245,111,74,77,174,52,46,215,231,235,186,122,202,35,152,114,36,191,221,240,31)
IMAGE_DATA(21,54,172,180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
IMAGE_END_DATA(1376, 24)
IMAGE_BEGIN_DATA
IMAGE_DATA(120,156,237,90,93,108,20,85,20,158,110,183,191,91,74,91,42,148,116,182,191,116,91,90,251,71,75,23,233,63,244,7)
IMAGE_DATA(40,80,218,210,31,138,22,44,105,212,146,136,196,0,33,21,88,140,141,74,154,24,133,23,136,15,60,73,194,147,60,24)
IMAGE_DATA(64,31,168,47,85,19,226,131,98,120,49,145,144,52,49,250,160,66,20,211,214,30,239,204,118,150,187,179,247,222,185,119)
IMAGE_DATA(102,135,109,201,158,205,201,206,222,123,190,115,206,61,231,204,185,119,119,71,74,147,210,36,0,41,74,225,37,16,228,32)
IMAGE_DATA(172,8,77,79,79,235,117,4,198,121,216,231,243,81,241,146,79,82,217,44,222,170,125,179,120,109,156,151,73,57,176,144)
IMAGE_DATA(191,149,75,43,161,25,16,146,39,132,83,202,11,103,30,61,36,28,73,143,29,120,166,207,28,58,244,114,184,12,107,206)
IMAGE_DATA(46,188,168,255,145,142,63,174,195,108,253,144,244,136,226,158,57,169,205,224,92,164,189,32,82,191,100,220,145,251,25,120)
IMAGE_DATA(184,119,239,30,117,71,189,126,253,186,81,87,87,229,36,137,204,132,29,249,121,194,247,107,120,214,174,44,145,115,192,147)
IMAGE_DATA(55,86,30,153,121,227,200,163,161,223,26,43,88,210,201,66,27,231,225,241,241,113,61,222,234,250,35,71,74,51,160,81)
IMAGE_DATA(76,76,76,2,122,115,42,215,201,201,201,53,233,233,233,251,57,213,58,16,54,49,35,35,99,71,69,85,249,205,45,109)
IMAGE_DATA(155,30,23,182,103,252,91,186,171,5,182,118,143,195,230,173,219,126,206,202,90,63,65,3,199,198,198,102,120,60,158,75)
IMAGE_DATA(237,67,199,192,123,120,16,114,250,156,32,239,143,1,249,112,59,200,111,223,6,247,137,159,32,111,244,230,227,210,154,150)
IMAGE_DATA(91,9,9,9,69,154,143,26,109,40,41,191,228,29,189,188,80,121,230,1,228,30,187,8,242,160,11,228,126,73,213,225)
IMAGE_DATA(238,115,160,207,107,64,30,105,133,170,35,87,23,171,106,234,190,73,76,76,44,86,150,171,198,35,45,173,167,100,228,179)
IMAGE_DATA(39,3,151,255,128,247,191,90,128,186,15,31,130,123,56,91,197,230,244,196,67,193,158,84,200,219,131,244,13,184,160,224)
IMAGE_DATA(245,179,208,252,202,187,144,95,80,120,65,241,89,193,151,85,121,103,234,38,127,135,27,63,46,194,119,15,230,97,231,39)
IMAGE_DATA(247,65,62,88,170,226,243,246,37,65,113,71,22,148,108,203,134,220,238,4,144,95,174,132,202,177,83,80,215,220,246,27)
IMAGE_DATA(194,171,137,104,236,126,13,170,47,0,76,124,177,8,231,111,45,66,195,199,255,129,124,244,3,132,151,32,167,55,30,10)
IMAGE_DATA(119,167,35,94,13,238,222,88,180,142,213,32,143,30,132,77,61,71,231,83,86,173,174,119,185,92,91,202,135,62,130,162)
IMAGE_DATA(247,0,225,0,90,46,2,120,38,1,225,39,145,191,241,72,71,28,90,127,42,194,162,120,246,35,252,145,97,144,143,223)
IMAGE_DATA(128,252,177,219,115,105,233,107,122,147,146,146,42,243,15,125,254,40,247,220,2,120,144,14,69,143,251,204,35,144,223,188)
IMAGE_DATA(138,108,165,33,206,68,57,232,2,249,80,19,200,175,162,247,19,223,130,252,206,159,80,124,232,26,172,91,183,238,184,226)
IMAGE_DATA(127,109,239,233,191,220,19,127,131,251,28,178,171,240,201,187,126,91,35,91,209,245,247,32,159,250,1,228,211,15,252,115)
IMAGE_DATA(103,231,213,247,186,1,31,160,218,106,87,242,88,81,91,255,101,237,241,175,65,158,248,21,217,253,20,197,206,227,207,61)
IMAGE_DATA(242,93,62,144,131,236,238,244,199,3,217,205,61,249,11,20,190,113,7,54,55,238,120,232,112,56,146,20,124,102,102,102)
IMAGE_DATA(87,219,240,41,40,26,29,80,99,150,219,27,7,5,123,83,212,152,21,236,115,65,110,95,188,95,223,91,215,192,51,54)
IMAGE_DATA(9,213,93,163,79,50,95,88,59,134,215,110,89,89,217,149,77,123,55,44,108,236,94,11,101,93,217,80,209,81,8,149)
IMAGE_DATA(205,30,168,234,44,130,234,190,60,168,26,150,161,252,192,122,168,220,183,97,177,186,182,110,6,229,110,13,94,127,113,113)
IMAGE_DATA(113,235,75,74,138,175,120,155,107,230,94,218,94,11,219,81,221,55,181,52,66,83,91,61,236,26,108,131,190,195,187,161)
IMAGE_DATA(103,104,47,120,189,222,187,168,246,54,106,181,167,39,165,22,203,203,95,156,233,236,236,128,214,109,173,208,216,212,240,79)
IMAGE_DATA(71,103,251,92,67,67,253,253,252,252,252,243,78,167,51,11,221,103,73,60,55,164,82,27,169,169,169,29,146,122,91,199)
IMAGE_DATA(36,46,249,236,8,54,24,218,12,104,157,141,183,123,169,157,149,210,189,121,116,136,118,213,144,157,5,160,95,177,202,179)
IMAGE_DATA(175,32,223,66,190,247,45,97,75,129,125,200,244,51,25,15,92,88,133,125,190,231,15,239,223,89,37,46,30,31,15,193)
IMAGE_DATA(219,177,179,194,212,212,148,209,73,74,50,97,55,136,21,27,36,230,145,209,203,153,100,18,233,227,73,143,21,235,100,96)
IMAGE_DATA(146,140,156,228,152,199,143,180,207,116,222,40,208,134,243,36,18,157,167,28,199,185,230,45,250,111,7,89,181,101,148,79)
IMAGE_DATA(59,241,86,227,101,148,111,46,60,35,223,225,245,127,153,254,128,104,165,128,44,39,192,4,235,236,147,125,32,83,136,142)
IMAGE_DATA(192,56,137,159,234,103,239,236,70,62,243,224,129,193,154,14,187,236,91,93,191,181,147,17,223,169,70,99,82,13,88,168)
IMAGE_DATA(159,200,145,255,100,64,252,202,18,110,178,178,104,144,200,127,1,241,99,53,22,221,25,112,172,152,14,50,150,79,7,27)
IMAGE_DATA(203,214,97,181,153,169,58,180,27,130,245,206,88,67,144,172,36,249,2,28,60,78,199,7,219,121,138,143,132,125,51,235)
IMAGE_DATA(23,224,229,67,74,51,112,72,177,97,211,39,242,255,174,198,75,59,73,0,63,59,59,43,196,43,17,239,116,58,77,227)
IMAGE_DATA(21,44,47,30,151,195,177,34,120,77,150,132,229,197,211,176,60,235,103,97,121,227,71,195,46,183,250,9,61,57,242,145)
IMAGE_DATA(153,123,53,132,162,205,32,138,143,226,151,15,62,226,205,32,74,81,138,82,148,86,68,51,48,251,4,151,38,175,127,124)
IMAGE_DATA(149,71,15,142,195,187,56,225,151,93,38,158,182,27,176,240,70,88,92,7,105,87,88,233,120,222,248,177,118,68,90,254)
IMAGE_DATA(240,216,27,237,168,180,135,149,68,119,99,91,118,113,59,40,218,12,232,216,112,53,3,189,255,34,205,64,251,26,165,16)
IMAGE_DATA(238,63,239,205,168,225,113,44,18,17,194,19,226,38,132,215,99,141,240,36,29,18,246,163,91,180,25,216,68,46,41,25)
IMAGE_DATA(255,104,199,95,34,184,44,9,199,154,231,157,35,249,79,179,33,42,107,214,63,158,121,26,137,229,33,5,189,4,148,241)
IMAGE_DATA(24,39,93,63,43,121,86,161,89,41,68,28,47,42,47,226,15,73,7,233,154,101,211,110,121,186,191,172,98,18,109,107)
IMAGE_DATA(184,76,36,228,245,254,234,229,89,243,60,182,173,108,9,60,254,136,174,55,18,242,204,216,197,75,33,207,199,26,221,241)
IMAGE_DATA(65,227,171,238,0,105,78,29,39,204,5,198,117,115,76,121,146,126,138,63,100,255,179,208,203,96,129,225,36,209,22,38)
IMAGE_DATA(172,127,41,147,118,217,192,171,197,14,27,250,138,12,183,13,210,93,74,179,97,102,187,162,117,9,253,57,2,224,238,32)
IMAGE_DATA(145,13,108,145,219,208,146,13,30,157,148,113,67,253,52,27,234,24,198,52,25,30,253,36,27,60,250,241,181,48,226,207)
IMAGE_DATA(19,7,106,188,244,250,67,174,25,113,14,89,143,254,113,43,157,126,125,188,2,122,113,36,197,166,145,126,90,190,73,250)
IMAGE_DATA(253,99,216,139,35,62,180,154,37,197,159,166,159,81,63,36,50,172,79,90,78,24,62,83,215,16,136,177,185,251,151,107)
IMAGE_DATA(13,218,24,133,205,146,94,127,184,201,238,189,45,74,54,211,255,30,4,230,234,0,0,0,0,0,0,0,0,0,0,0)
IMAGE_END_DATA(1728, 18)
IMAGE_DATA(120,156,237,90,93,108,20,85,20,158,110,183,255,80,218,82,161,132,217,254,210,109,105,45,109,105,233,34,253,5,250,3)
IMAGE_DATA(20,40,109,105,11,69,1,75,26,181,36,34,49,64,72,5,22,99,163,18,18,163,240,2,241,129,39,73,120,146,7,3)
IMAGE_DATA(232,3,248,130,154,16,31,20,195,139,137,132,132,196,232,131,10,81,12,212,126,222,153,237,44,211,217,123,239,220,153,217)
IMAGE_DATA(161,91,178,103,115,178,179,247,158,239,156,115,207,57,115,238,157,221,149,178,164,44,9,39,164,88,35,88,224,1,58,30)
IMAGE_DATA(58,38,159,129,16,107,215,170,204,37,77,135,77,60,196,241,84,22,197,243,152,135,55,139,157,57,158,69,113,188,25,222)
IMAGE_DATA(18,199,6,169,205,32,118,220,121,94,200,73,49,48,11,144,70,55,110,220,48,234,8,143,139,112,48,24,100,226,165,160)
IMAGE_DATA(164,178,93,188,83,251,118,241,218,184,40,211,114,224,32,127,115,151,230,66,51,160,36,207,18,46,188,171,79,179,136,30)
IMAGE_DATA(26,142,166,199,13,60,215,103,1,29,70,57,189,12,111,206,45,188,85,255,103,59,254,122,29,118,235,135,166,199,42,238)
IMAGE_DATA(153,83,140,62,38,40,164,28,255,205,58,50,237,17,65,35,220,190,125,155,185,163,94,186,196,124,68,8,227,21,98,29)
IMAGE_DATA(207,41,59,242,243,132,31,208,240,188,93,89,162,231,64,36,111,188,60,114,243,38,144,71,83,191,53,86,176,180,147,133)
IMAGE_DATA(54,46,194,99,99,99,70,188,211,245,207,30,41,205,128,69,9,9,9,41,228,205,171,92,167,167,167,215,101,103,103,111)
IMAGE_DATA(23,84,235,33,216,212,156,156,156,13,43,106,170,174,172,110,95,249,176,164,35,231,223,138,77,109,88,211,51,134,85,107)
IMAGE_DATA(214,253,156,151,183,100,156,5,78,76,76,204,241,251,253,103,59,118,28,64,96,239,16,242,251,189,144,183,39,64,222,219)
IMAGE_DATA(1,249,237,107,240,29,250,9,133,35,87,30,86,212,181,93,77,73,73,41,213,124,212,104,89,121,213,217,192,200,185,201)
IMAGE_DATA(234,99,119,81,112,224,12,228,161,12,200,3,146,170,195,215,239,33,159,23,66,222,189,22,53,251,46,76,213,212,53,124)
IMAGE_DATA(147,154,154,90,166,44,87,141,71,86,86,111,249,238,207,30,13,158,251,3,239,127,53,137,134,15,239,193,55,188,84,197)
IMAGE_DATA(230,247,38,163,120,75,38,10,183,16,125,131,25,40,126,253,56,90,95,121,23,69,197,37,167,20,159,21,124,101,77,224)
IMAGE_DATA(102,195,196,239,184,252,227,20,190,187,251,4,27,63,185,3,121,87,133,138,47,220,150,134,178,206,60,148,175,91,138,130)
IMAGE_DATA(158,20,200,47,87,163,122,244,8,26,90,219,127,35,120,53,17,205,61,175,161,246,20,48,254,197,20,78,94,157,66,211)
IMAGE_DATA(199,255,65,222,255,1,193,75,200,239,75,70,201,230,108,194,11,224,235,75,36,235,88,0,121,100,23,86,246,238,127,50)
IMAGE_DATA(111,254,130,198,140,140,140,213,85,59,62,66,233,123,32,56,160,237,12,224,159,0,193,79,16,127,147,137,142,36,178,254)
IMAGE_DATA(76,130,37,241,28,32,248,125,195,144,15,94,70,209,232,181,199,89,217,11,251,210,210,210,170,139,246,124,254,160,224,196)
IMAGE_DATA(36,252,68,135,162,199,119,236,1,228,55,47,16,91,89,132,115,73,14,186,33,239,105,129,252,42,121,63,244,45,228,119)
IMAGE_DATA(254,68,217,158,139,88,188,120,241,65,197,255,250,190,163,127,249,198,255,134,239,4,177,171,240,225,91,33,91,187,215,144)
IMAGE_DATA(235,239,33,31,249,1,242,209,187,161,185,227,79,212,247,134,193,32,72,109,117,40,121,92,81,223,248,101,253,193,175,33)
IMAGE_DATA(143,255,74,236,126,74,98,231,15,229,158,248,46,239,204,39,118,55,134,226,65,236,22,28,254,5,37,111,92,199,170,230)
IMAGE_DATA(13,247,60,30,79,154,130,207,205,205,237,110,31,62,130,210,145,65,53,102,5,125,73,40,222,58,79,141,89,241,182,12)
IMAGE_DATA(20,244,39,135,244,189,117,17,254,209,9,212,118,143,60,202,125,97,209,168,190,118,43,43,43,207,175,220,186,108,114,121)
IMAGE_DATA(207,34,84,118,47,197,138,206,18,84,183,250,81,211,85,138,218,254,66,212,12,203,168,218,185,4,213,219,150,77,213,214)
IMAGE_DATA(55,220,36,185,91,168,175,191,164,164,164,37,229,229,101,231,3,173,117,143,95,90,95,143,245,164,238,91,218,154,209,210)
IMAGE_DATA(222,136,77,67,237,232,223,187,25,189,59,182,34,16,8,220,34,181,183,92,171,61,35,41,181,88,85,245,226,205,174,174)
IMAGE_DATA(78,172,93,183,22,205,45,77,255,116,118,117,60,110,106,106,188,83,84,84,116,210,235,245,230,145,251,44,77,228,134,84)
IMAGE_DATA(106,35,51,51,179,83,82,111,235,132,212,105,159,61,51,13,70,54,3,86,103,19,237,94,106,103,101,116,111,17,29,86)
IMAGE_DATA(187,106,196,206,2,12,40,86,69,246,21,226,91,196,115,223,52,182,2,252,67,102,136,233,120,8,97,21,14,6,159,63)
IMAGE_DATA(124,104,103,149,132,120,108,44,2,239,198,206,138,211,167,79,155,157,164,36,27,118,103,176,98,131,198,34,50,70,57,155)
IMAGE_DATA(76,35,99,60,217,177,226,157,12,108,146,153,147,2,243,250,35,237,51,157,55,11,180,233,60,141,172,206,51,142,227,66)
IMAGE_DATA(243,14,253,119,131,156,218,50,203,167,155,120,167,241,50,203,183,16,158,147,239,232,250,31,163,95,32,58,41,32,199,9)
IMAGE_DATA(176,193,6,251,116,31,232,20,161,35,60,78,227,167,250,249,59,187,153,207,34,120,112,88,211,225,150,125,167,235,119,118)
IMAGE_DATA(50,18,59,213,104,76,171,1,7,245,51,123,20,58,25,80,31,89,162,77,78,22,13,137,254,19,144,56,86,99,171,59)
IMAGE_DATA(131,30,107,77,7,29,43,166,131,143,229,235,112,218,204,84,29,218,13,193,123,231,172,97,134,172,36,5,195,60,115,156)
IMAGE_DATA(141,159,105,231,41,126,54,236,219,89,191,5,142,29,82,154,129,71,74,140,154,62,43,191,239,106,60,189,147,132,241,247)
IMAGE_DATA(239,223,183,196,115,17,239,245,122,109,227,21,172,40,94,47,167,199,90,193,107,178,52,172,40,158,133,21,89,63,15,43)
IMAGE_DATA(26,63,22,54,214,234,39,242,228,40,70,118,238,213,8,138,55,131,56,62,142,143,29,252,172,55,131,56,197,41,78,113)
IMAGE_DATA(154,19,205,192,238,63,184,52,121,227,223,87,69,244,232,113,250,46,78,249,102,151,139,103,237,6,60,188,25,86,175,131)
IMAGE_DATA(182,43,204,117,188,104,252,120,59,34,43,127,250,216,155,237,168,172,63,43,89,221,141,93,217,197,221,160,120,51,96,99)
IMAGE_DATA(163,213,12,140,254,91,105,6,218,99,148,66,122,255,69,111,70,13,175,199,18,17,75,120,74,220,44,225,141,88,51,60)
IMAGE_DATA(77,135,164,251,210,45,222,12,92,162,12,41,93,255,209,141,159,68,244,178,52,28,111,94,116,142,230,63,203,134,85,89)
IMAGE_DATA(187,254,137,204,179,200,90,30,230,145,151,5,101,34,198,105,215,207,74,158,87,104,78,10,81,143,183,42,111,197,31,154)
IMAGE_DATA(14,218,53,207,166,219,242,108,127,121,197,100,181,173,233,101,102,67,222,232,175,81,158,55,47,98,219,201,150,32,226,143)
IMAGE_DATA(213,245,206,134,60,55,118,201,82,196,255,99,205,238,248,25,227,243,175,131,54,167,142,83,230,194,227,134,57,174,60,77)
IMAGE_DATA(63,195,31,186,255,121,228,101,178,192,104,146,213,22,102,89,255,116,38,221,178,161,175,22,55,108,24,43,50,218,54,104)
IMAGE_DATA(119,41,203,134,157,237,138,213,37,140,231,8,224,214,16,149,77,108,209,219,208,180,13,17,157,140,113,83,253,44,27,234)
IMAGE_DATA(152,142,89,50,34,250,105,54,68,244,235,215,194,137,191,72,28,152,241,50,234,143,184,230,196,57,98,61,198,191,91,25)
IMAGE_DATA(244,27,227,21,214,171,71,50,108,154,233,103,229,155,166,63,52,166,123,9,196,135,85,179,180,248,179,244,115,234,135,70)
IMAGE_DATA(166,245,201,202,9,199,103,230,26,194,49,182,119,255,10,173,65,27,99,176,93,50,234,143,54,185,189,183,197,201,101,250)
IMAGE_DATA(31,183,102,254,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
IMAGE_END_DATA(1792, 19)
IMAGE_BEGIN_DATA
IMAGE_DATA(120,156,237,90,59,111,20,49,16,118,160,56,162,72,17,20,41,232,174,62,241,31,110,27,36,10,8,213,246,208,243,31)

View file

@ -145,6 +145,10 @@ int LineEdit::PasteRectSelection(const WString& s)
void LineEdit::PasteColumn(const WString& text)
{
Vector<WString> cl = Split(text, '\n', false);
if(cl.GetCount() && cl.Top().IsEmpty())
cl.Drop();
if(cl.GetCount() == 0)
return;
int pos;
if(IsRectSelection()) {
Rect t = GetRectSelection();
@ -154,7 +158,7 @@ void LineEdit::PasteColumn(const WString& text)
for(int i = 0; i < t.bottom - t.top + 1; i++) {
int li = p.y + i;
int l = GetGPos(i + p.y, p.x);
pos = l + Insert(l, i < cl.GetCount() ? cl[i] : cl.GetCount() ? cl.Top() : WString());
pos = l + Insert(l, cl[i % cl.GetCount()]);
}
}
else {
@ -185,6 +189,32 @@ void LineEdit::PasteColumn()
Action();
}
bool sSortLineOrder(const WString& l1, const WString& l2)
{
return ToUpper(l1) < ToUpper(l2);
}
void LineEdit::Sort()
{
if(!IsRectSelection())
return;
CopyRectSelection();
Rect rect = GetRectSelection();
Vector<WString> key;
Vector<WString> ln;
for(int i = rect.top; i <= rect.bottom; i++) {
int l, h;
GetRectSelection(rect, i, l, h);
key.Add(GetW(l, h - l));
ln.Add(line[i]);
}
int sell = GetPos(rect.top);
int selh = rect.bottom + 1 < line.GetCount() ? GetPos(rect.bottom + 1) : GetLength();
IndexSort(key, ln, sSortLineOrder);
Remove(sell, selh - sell);
Insert(sell, Join(ln, "\n"));
}
void LineEdit::Paint0(Draw& w) {
int sell, selh;
GetSelection(sell, selh);

View file

@ -7,7 +7,7 @@ NAMESPACE_UPP
TextCtrl::TextCtrl()
{
Unicode();
undosteps = 10;
undosteps = 1000;
Clear();
undoserial = 0;
incundoserial = false;
@ -794,10 +794,13 @@ void TextCtrl::StdBar(Bar& menu) {
.Key(K_SHIFT_INSERT)
.Key(K_CTRL_V);
LineEdit *e = dynamic_cast<LineEdit *>(this);
if(e)
if(e) {
menu.Add(canpaste,
t_("Paste in column"), CtrlImg::paste_vert(), callback(e, &LineEdit::DoPasteColumn))
.Key(K_ALT_V|K_SHIFT);
menu.Add(e->IsRectSelection(),
t_("Sort"), CtrlImg::sort(), callback(e, &LineEdit::Sort));
}
menu.Add(IsEditable() && IsAnySelection(),
t_("Erase"), CtrlImg::remove(), THISBACK(DoRemoveSelection))
.Key(K_DELETE);

View file

@ -346,6 +346,8 @@ public:
void PasteColumn(const WString& text);
void PasteColumn();
void Sort();
Point GetScrollPos() const { return sb; }
Size GetPageSize() { return sb.GetPage(); }

View file

@ -209,6 +209,10 @@ text.&]
[s2;%% PasteColumn with clipboard text.&]
[s3; &]
[s4; &]
[s5;:LineEdit`:`:Sort`(`): [@(0.0.255) void]_[* Sort]()&]
[s2;%% Sorts lines based on rectangular selection.&]
[s3; &]
[s4; &]
[s5;:LineEdit`:`:GetScrollPos`(`)const: [_^Point^ Point]_[* GetScrollPos]()_[@(0.0.255) con
st]&]
[s2;%% Returns the actual scroll position.&]