Topic++ improvements: Search in code reference

git-svn-id: svn://ultimatepp.org/upp/trunk@400 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2008-09-06 12:55:00 +00:00
parent 0fcd38039a
commit 68cff9defc
13 changed files with 474 additions and 61 deletions

View file

@ -11,10 +11,6 @@ topic "AIndex";[2 $$0,0#00000000000000000000000000000000:Default]
][%00-00@(0.0.255) class][%00-00@(64) _][%00-00@4 V][%00-00@(64) , ][%00-00@(0.0.255) clas
s][%00-00@(64) _][%00-00@4 HashFn][%00-00@(64) >__][%00-00@(0.0.255) class][%00-00@(64) _][%00-00 A
Index]&]
[s5;K@0 [%00-00@(64) template_<][%00-00@(0.0.255) class][%00-00@(64) _][%00-00@4 T][%00-00@(64) ,
][%00-00@(0.0.255) class][%00-00@(64) _][%00-00@4 V][%00-00@(64) , ][%00-00@(0.0.255) clas
s][%00-00@(64) _][%00-00@4 HashFn][%00-00@(64) >__][%00-00@(0.0.255) class][%00-00@(64) _][%00-00 A
Index]&]
[s0;t292;* [* class ]AIndex&]
[s0; &]
[s0; [*C@4 T]-|Type of elements to store. T must satisfy requirements

View file

@ -7,7 +7,7 @@ topic "CParser";[2 $$0,0#00000000000000000000000000000000:Default]
[*+117 $$6,6#14700283458701402223321329925657:header]
[l288;a17;*1 $$7,7#70004532496200323422659154056402:requirement]
[{_}%EN-US
[s5;K@0 [%00-00@(0.0.255) class][%00-00@(64) _][%00-00 CParser]&]
[s5;K:`:`:CParser`:`:class:@0 [%00-00@(0.0.255) class][%00-00@(64) _][%00-00 CParser]&]
[s0; &]
[s2; CParser is simple yet very useful lexical analyzer suitable
for building descent parsers of languages with C`-like syntax.&]
@ -22,14 +22,13 @@ via ThrowError method) to indicate errors as well.&]
[s2; CParser objects cannot be transfered (copied).&]
[s2; &]
[s0;3 &]
[s5;K^`:`:Exc^ [%00-00^^@(0.0.255) struct][%00-00^^ _][%00-00^^@0 Error][%00-00^^ _:_][%00-00^^@(0.0.255) p
ublic][%00-00^^ _][%00-00 Exc]&]
[s5;K:`:`:CParser`:`:Error`:`:struct:^`:`:Exc^ [%00-00^^@(0.0.255) struct][%00-00^^ _][%00-00^^@0 E
rror][%00-00^^ _:_][%00-00^^@(0.0.255) public][%00-00^^ _][%00-00 Exc]&]
[s0;* &]
[s2; Type used as CParser exception. Contains single String with
error description.&]
[s2; &]
[s0;l288;^topic`:`/`/Core`/src`/util`$en`-us`#`:`:Exc`:`:class Exc^ [/^^ Derived
from][^^ ][%00-00 Exc]&]
[s0;l288;^`:`:Exc^ [/^^ Derived from][^^ ][%00-00 Exc]&]
[s0;3 &]
[s0;l288;:`:`:CParser`:`:Error`:`:Error`(const char`*`): [%00-00* Error][%00-00 (const_ch
ar_`*][%00-00*@3 s][%00-00 )]&]
@ -37,7 +36,7 @@ ar_`*][%00-00*@3 s][%00-00 )]&]
[s4;l448; [%00-00*C@3 s]-|Error message.&]
[s2; &]
[s0;3 &]
[s5;K@0 [%00-00@(0.0.255) struct][%00-00@(64) _][%00-00 Pos]&]
[s5;K:`:`:CParser`:`:Pos`:`:struct:@0 [%00-00@(0.0.255) struct][%00-00@(64) _][%00-00 Pos]&]
[s2; &]
[s2; Position in parsed text.&]
[s0;3 &]
@ -50,14 +49,15 @@ const_char_`*][%00-00*@3 ptr][%00-00 _`=_NULL, int_][%00-00*@3 line][%00-00 _`=_
[s4;l480; [%00-00*C@3 line]-|Line number.&]
[s4;l480; [%00-00*C@3 fn]-|Filename.&]
[s0;3 &]
[s5;l288;K@0 [%00-00@(0.0.255) const][%00-00@(64) _][%00-00@(0.0.255) char][%00-00@(64) _`*][%00-00 p
tr]&]
[s5;l288;K:`:`:CParser`:`:Pos`:`:ptr:@0 [%00-00@(0.0.255) const][%00-00@(64) _][%00-00@(0.0.255) c
har][%00-00@(64) _`*][%00-00 ptr]&]
[s2;l480; Pointer to the position in the input text &]
[s0;3 &]
[s5;l288;K@0 [%00-00@(0.0.255) int][%00-00@(64) _][%00-00 line]&]
[s5;l288;K:`:`:CParser`:`:Pos`:`:line:@0 [%00-00@(0.0.255) int][%00-00@(64) _][%00-00 line]&]
[s2;l480; Line number.&]
[s0;3 &]
[s5;l288;K@0 [%00-00^`:`:String^@(64) String][%00-00@(64) _][%00-00 fn]&]
[s5;l288;K:`:`:CParser`:`:Pos`:`:fn:@0 [%00-00^`:`:String^@(64) String][%00-00@(64) _][%00-00 f
n]&]
[s2;l480; Filename.&]
[s2; &]
[s0;3 &]

View file

@ -1,11 +1,386 @@
TITLE("Algorithms")
COMPRESSED
120,156,237,92,251,115,218,56,16,254,87,52,211,199,36,185,64,253,196,6,58,157,166,228,122,195,36,109,111,2,205,47,12,4,99,139,196,83,176,169,101,146,230,142,235,223,126,43,249,129,141,109,18,158,225,149,233,36,69,94,173,118,181,223,183,43,217,50,13,1,189,126,205,157,114,175,184,39,126,74,231,184,171,13,123,110,179,97,74,146,90,214,4,185,252,227,226,91,177,124,242,241,168,32,29,83,45,60,104,17,21,94,84,101,145,151,132,2,252,226,69,94,144,5,81,226,85,161,40,169,162,168,114,37,189,167,17,210,108,244,4,85,45,211,78,194,169,242,74,80,100,129,87,36,85,82,121,81,81,5,232,43,112,156,192,41,130,204,75,162,42,200,37,3,19,189,217,208,84,177,124,114,85,128,78,34,29,9,148,115,124,65,144,20,73,224,68,78,144,96,40,94,85,37,94,145,85,177,88,40,148,116,109,224,154,182,229,143,101,242,188,192,151,59,188,82,6,155,127,255,254,157,231,37,206,179,64,2,101,60,39,129,169,60,180,113,146,160,240,114,145,43,202,42,175,114,
34,40,151,21,78,46,13,52,71,235,103,187,46,63,233,186,194,149,76,23,131,138,147,63,120,94,129,46,133,211,194,43,94,82,192,81,85,148,100,85,225,96,112,65,16,68,81,224,69,161,88,20,228,130,172,148,238,176,102,96,199,119,65,3,227,79,120,232,170,192,156,65,71,78,146,69,65,42,210,201,18,97,36,65,40,200,69,94,150,56,185,0,154,74,14,254,57,52,29,220,199,22,132,236,223,155,255,222,252,249,53,247,189,134,26,68,44,163,179,222,173,237,152,238,93,159,188,109,54,8,87,70,244,143,92,190,64,141,55,28,151,227,56,4,150,14,122,154,139,111,222,55,253,166,143,71,92,158,203,11,178,124,140,252,16,250,162,55,161,132,132,234,97,235,135,155,155,148,158,247,182,105,164,116,228,80,237,65,27,132,23,142,130,255,181,234,173,136,202,246,219,113,15,17,105,97,251,41,122,142,124,39,108,63,110,82,111,133,50,27,148,160,123,173,55,196,36,143,106,3,172,155,93,83,71,238,227,0,19,212,55,111,239,92,68,104,163,214,51,255,193,168,113,226,89,137,
30,96,226,80,223,118,48,194,221,46,214,93,243,30,131,18,199,212,44,151,228,169,106,165,140,234,168,63,36,46,186,211,224,26,6,121,236,32,3,227,1,210,237,193,35,178,7,216,209,92,219,65,240,111,96,234,63,194,6,214,91,42,195,80,21,54,153,185,81,29,108,65,118,55,48,50,114,157,206,64,110,244,217,116,96,24,118,21,185,54,34,96,96,92,168,3,66,53,172,219,150,145,34,181,188,192,87,231,13,124,213,197,78,70,240,171,173,136,218,39,67,159,41,253,68,224,209,192,54,45,23,27,116,98,58,143,8,56,202,66,241,60,64,132,214,63,11,20,84,210,195,69,7,3,28,186,166,5,195,118,1,4,116,128,9,59,170,113,44,84,33,140,85,223,52,38,158,132,66,120,153,41,50,173,91,170,169,59,198,71,18,23,169,61,72,4,44,75,6,73,37,37,110,51,166,149,25,59,94,62,1,75,147,230,198,20,84,126,54,45,227,210,126,192,206,39,123,104,25,73,108,70,7,183,45,146,162,164,85,105,69,252,141,167,162,251,233,238,164,27,37,66,148,200,124,29,
117,112,194,125,98,10,51,188,152,146,80,1,33,243,233,188,108,69,226,18,215,217,195,145,64,134,116,165,209,32,62,148,97,18,76,90,213,193,89,228,104,214,45,203,142,48,146,171,1,155,28,68,108,135,114,8,8,4,236,100,218,208,192,193,134,169,3,90,209,3,164,97,70,91,106,58,210,53,139,242,208,180,8,102,125,40,131,237,33,112,211,193,218,15,70,134,59,80,238,64,249,133,15,113,54,86,34,153,57,28,251,137,228,29,167,223,61,92,174,164,245,244,194,156,27,125,194,183,166,101,81,51,64,1,115,52,46,229,197,52,55,250,58,236,119,192,111,16,194,61,86,235,73,56,51,19,35,130,207,185,209,117,80,3,32,249,24,113,1,54,91,185,209,55,223,227,241,188,141,197,222,161,43,236,14,29,203,243,8,132,255,142,68,35,62,17,135,172,177,230,172,177,149,12,222,1,186,238,51,175,246,135,30,51,33,249,93,184,160,127,191,99,120,222,86,160,174,177,0,124,31,12,14,203,198,13,42,58,16,228,195,170,241,176,106,60,36,141,157,33,240,14,176,117,237,180,
42,5,52,106,191,103,8,70,149,246,169,135,101,84,111,127,160,216,156,192,97,251,136,133,17,228,222,162,123,42,203,62,213,233,39,173,215,62,46,109,16,79,247,135,110,179,48,227,176,8,221,227,122,242,201,180,52,231,113,187,192,189,241,139,218,57,235,87,72,208,241,106,203,123,90,64,188,231,11,56,120,50,3,232,213,102,93,157,230,81,181,139,44,27,145,161,126,23,106,199,191,76,226,146,83,208,102,225,91,205,127,20,193,70,32,200,97,212,193,198,97,105,122,72,37,251,149,74,94,144,214,180,138,238,14,159,247,153,120,251,193,159,149,64,61,125,65,186,245,128,159,9,201,244,220,81,177,40,44,7,209,113,124,44,163,36,100,35,142,67,103,176,103,178,140,26,11,104,18,205,211,176,106,96,50,231,138,107,138,82,226,232,107,74,247,95,176,115,139,9,64,121,232,232,24,125,173,95,70,240,13,104,160,222,1,197,89,196,99,23,243,232,147,13,28,9,63,147,240,232,135,207,10,186,222,35,58,76,42,91,20,209,100,153,71,103,93,151,170,165,187,46,70,22,208,122,
26,27,98,60,182,73,178,21,33,205,50,2,209,240,160,75,215,177,251,168,19,183,41,143,206,135,131,158,183,53,244,197,52,216,31,2,61,97,71,120,15,44,67,201,44,78,71,54,48,216,217,103,7,88,34,117,108,70,78,250,208,200,141,206,211,28,140,75,210,120,231,70,53,47,8,25,50,79,213,157,10,165,235,89,156,175,141,51,148,53,126,51,32,165,127,203,164,113,194,156,250,176,114,42,111,63,35,3,242,132,147,116,32,145,7,201,20,234,68,235,226,75,17,104,169,204,216,194,226,246,221,2,7,55,146,73,59,83,219,24,155,124,118,4,194,67,203,252,9,235,176,213,16,214,83,62,157,183,211,120,185,21,37,45,109,1,154,61,244,74,184,185,245,20,155,100,3,197,97,22,35,232,181,189,102,197,38,84,171,13,0,253,170,11,210,21,238,219,247,120,30,186,208,144,46,157,46,15,119,218,186,110,154,123,158,147,241,221,95,128,19,153,192,129,135,219,84,42,44,153,131,43,40,16,44,64,207,34,1,155,245,253,169,16,155,140,249,45,132,231,66,153,122,137,32,125,
1,244,157,183,208,249,188,169,186,182,220,28,31,51,37,142,247,170,5,1,35,88,119,51,33,159,217,121,145,85,81,173,21,241,241,165,54,30,9,26,101,83,6,86,64,154,203,54,212,150,237,134,205,134,119,222,97,2,116,47,155,252,207,35,188,74,103,127,76,188,22,17,79,120,178,250,61,197,182,208,112,39,216,180,59,192,207,46,43,91,0,255,245,215,162,133,30,219,71,83,231,172,47,84,67,220,83,56,48,229,1,224,188,169,31,140,108,197,77,125,78,1,160,246,145,40,128,159,153,108,149,114,248,210,109,234,171,180,245,118,169,20,188,215,154,253,252,47,3,62,122,246,51,192,233,203,236,77,120,131,126,129,128,207,23,149,68,38,16,232,183,19,172,51,58,203,155,246,139,185,183,246,215,243,223,20,88,128,222,85,203,192,191,50,66,126,1,155,154,139,172,93,205,15,252,152,118,114,174,117,13,157,174,179,58,121,101,226,5,242,195,64,51,157,24,34,72,70,165,99,95,180,64,180,62,212,202,240,252,24,253,186,13,144,191,194,100,216,115,199,117,47,129,100,122,135,
13,114,12,155,153,57,50,82,8,225,139,232,190,138,106,203,170,124,215,81,193,180,111,118,96,166,68,192,30,40,76,28,75,160,81,153,144,75,211,183,174,228,181,20,22,109,19,19,182,5,174,217,139,182,69,64,155,149,168,151,4,223,13,56,248,149,149,162,91,237,82,187,116,13,155,13,219,1,176,176,191,161,88,104,90,203,180,220,86,236,108,216,135,40,112,255,194,108,171,194,194,150,196,238,98,247,174,194,192,172,53,103,87,28,12,177,33,137,157,198,24,48,177,35,81,171,184,185,58,118,124,21,247,77,189,72,211,225,131,35,113,233,247,255,198,175,98,120,39,18,86,133,230,173,70,228,74,96,179,208,77,207,231,129,103,19,81,209,250,214,66,223,230,74,114,241,13,194,76,61,175,90,232,42,19,138,159,77,220,51,174,112,143,109,173,43,61,72,39,147,45,41,240,204,240,34,203,198,73,11,34,80,142,13,150,178,50,136,141,116,115,68,247,37,237,147,8,92,251,152,150,229,49,86,103,74,159,49,179,226,52,112,38,77,74,176,192,78,36,36,182,115,130,140,88,111,
162,142,70,40,124,188,99,182,222,145,88,64,154,103,172,247,117,83,157,30,109,2,105,16,207,222,97,249,119,159,226,240,247,125,206,141,190,36,244,161,122,92,52,116,35,146,64,131,182,192,92,95,221,20,226,172,124,61,186,89,148,248,130,221,59,59,206,137,68,83,146,20,49,55,2,164,30,31,29,47,68,143,248,184,115,241,131,42,24,163,248,104,131,25,18,156,24,167,21,194,178,173,118,142,89,229,187,64,193,205,122,206,76,22,54,1,148,44,129,154,89,57,146,180,206,83,122,96,204,106,24,147,182,173,140,3,116,211,56,53,139,197,155,204,186,93,36,92,243,127,35,201,112,73,
topic "Algorithms";[2 $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class]
[l288;2 $$2,7#27521748481378242620020725143825:desc]
[a83;*R6 $$3,0#31310162474203024125188417583966:caption]
[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param]
[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item]
[*+117 $$6,6#14700283458701402223321329925657:header]
[l288;a17;*1 $$7,7#70004532496200323422659154056402:requirement]
[{_}%EN-US
[s3; Algorithms&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 >__][%00-00@(0.0.255) v
oid][%00-00 _][%00-00@0 Swap][%00-00 (][%00-00^T^ T][%00-00 `&_][%00-00@3 a][%00-00 ,
][%00-00^T^ T][%00-00 `&_][%00-00@3 b][%00-00 )]&]
[s2; Swaps values. Specific types might specialize [* Swap] with more
effective variants.&]
[s7; T must have either deep copy operator or pick operator.&]
[s4; [*C@4 T]-|Type of values.&]
[s4; [*C@3 a]-|First value to swap.&]
[s4; [*C@3 b]-|Second value to swap.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 I][%00-00 >__][%00-00@(0.0.255) v
oid][%00-00 _][%00-00@0 IterSwap][%00-00 (][%00-00^I^ I][%00-00 _][%00-00@3 a][%00-00 ,
][%00-00^I^ I][%00-00 _][%00-00@3 b][%00-00 )]&]
[s2; Swaps values pointed to by iterators. Specific types might specialize
[* IterSwap] with more effective variants.&]
[s7; Swap must be defined for type pointed to by I.&]
[s4; [*C@4 I]-|Iterator type.&]
[s4; [*C@3 a]-|Iterator pointing to first value.&]
[s4; [*C@3 b]-|Iterator pointing to second value.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L
][%00-00 >__][%00-00@(0.0.255) int][%00-00 _][%00-00@0 FindLowerBound][%00-00 (][%00-00@(0.0.255) c
onst][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 v][%00-00 , ][%00-00@(0.0.255) int][%00-00 _][%00-00@3 p
os][%00-00 , ][%00-00@(0.0.255) int][%00-00 _][%00-00@3 count][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^T^ T][%00-00 `&_][%00-00@3 val][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^L^ L][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Finds first position in range of container sorted by [* less]
predicate where [* val] can be inserted without breaking the ordering.&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@4 T]-|Type of value.&]
[s4; [*C@3 v]-|Container.&]
[s4; [*C@3 pos]-|Beginning of range.&]
[s4; [*C@3 count]-|Number of elements in range.&]
[s4; [*C@3 val]-|Value to find.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s4; [*/ Return value]-|Position in container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L
][%00-00 >__][%00-00@(0.0.255) int][%00-00 _][%00-00@0 FindLowerBound][%00-00 (][%00-00@(0.0.255) c
onst][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 v][%00-00 , ][%00-00@(0.0.255) const][%00-00 _
][%00-00^T^ T][%00-00 `&_][%00-00@3 val][%00-00 , ][%00-00@(0.0.255) const][%00-00 _][%00-00^L^ L
][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Finds first position in sorted by [* less] predicate where [* val]
can be inserted without breaking the ordering.&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@4 T]-|Type of value.&]
[s4; [*C@3 v]-|Container.&]
[s4; [*C@3 val]-|Value to find.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s4; [*/ Return value]-|Position in container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 >__][%00-00@(0.0.255) int][%00-00 _][%00-00@0 F
indLowerBound][%00-00 (][%00-00@(0.0.255) const][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 v
][%00-00 , ][%00-00@(0.0.255) const][%00-00 _][%00-00^T^ T][%00-00 `&_][%00-00@3 val][%00-00 )]&]
[s2; Finds first position in sorted by [*/ operator<] predicate where
[* val] can be inserted without breaking the ordering.&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@4 T]-|Type of value.&]
[s4; [*C@3 v]-|Container.&]
[s4; [*C@3 val]-|Value to find.&]
[s4; [*/ Return value]-|Position in container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L
][%00-00 >__][%00-00@(0.0.255) int][%00-00 _][%00-00@0 FindUpperBound][%00-00 (][%00-00@(0.0.255) c
onst][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 v][%00-00 , ][%00-00@(0.0.255) int][%00-00 _][%00-00@3 p
os][%00-00 , ][%00-00@(0.0.255) int][%00-00 _][%00-00@3 count][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^T^ T][%00-00 `&_][%00-00@3 val][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^L^ L][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Finds last position in range of container sorted by [* less] predicate
where [* val] can be inserted without breaking the ordering.&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@4 T]-|Type of value.&]
[s4; [*C@3 v]-|Container.&]
[s4; [*C@3 pos]-|Beginning of range.&]
[s4; [*C@3 count]-|Number of elements in range.&]
[s4; [*C@3 val]-|Value to find.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s4; [*/ Return value]-|Position in container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L
][%00-00 >__][%00-00@(0.0.255) int][%00-00 _][%00-00@0 FindUpperBound][%00-00 (][%00-00@(0.0.255) c
onst][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 v][%00-00 , ][%00-00@(0.0.255) const][%00-00 _
][%00-00^T^ T][%00-00 `&_][%00-00@3 val][%00-00 , ][%00-00@(0.0.255) const][%00-00 _][%00-00^L^ L
][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Finds last position in sorted by [* less] predicate where [* val]
can be inserted without breaking the ordering.&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@4 T]-|Type of value.&]
[s4; [*C@3 v]-|Container.&]
[s4; [*C@3 val]-|Value to find.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s4; [*/ Return value]-|Position in container.&]
[s0;:template`<class C`, class T`> int FindUpperBound`(const C`& v`, const T`& val`): &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 >__][%00-00@(0.0.255) int][%00-00 _][%00-00@0 F
indUpperBound][%00-00 (][%00-00@(0.0.255) const][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 v
][%00-00 , ][%00-00@(0.0.255) const][%00-00 _][%00-00^T^ T][%00-00 `&_][%00-00@3 val][%00-00 )]&]
[s2; Finds last position in sorted by [*/ operator<] predicate where
[* val] can be inserted without breaking the ordering.&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@4 T]-|Type of value.&]
[s4; [*C@3 v]-|Container.&]
[s4; [*C@3 val]-|Value to find.&]
[s4; [*/ Return value]-|Position in container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L
][%00-00 >__][%00-00@(0.0.255) int][%00-00 _][%00-00@0 FindBinary][%00-00 (][%00-00@(0.0.255) c
onst][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 v][%00-00 , ][%00-00@(0.0.255) const][%00-00 _
][%00-00^T^ T][%00-00 `&_][%00-00@3 val][%00-00 , ][%00-00@(0.0.255) int][%00-00 _][%00-00@3 po
s][%00-00 , ][%00-00@(0.0.255) int][%00-00 _][%00-00@3 count][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^L^ L][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Finds position of element with specified value in a range of
container sorted by [* less] predicate. If no such element exists,
a negative value is returned.&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@4 T]-|Type of value.&]
[s4; [*C@3 v]-|Container.&]
[s4; [*C@3 pos]-|Beginning of range.&]
[s4; [*C@3 count]-|Number of elements in range.&]
[s4; [*C@3 val]-|Value to find.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s4; [*/ Return value]-|Position in container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L
][%00-00 >__][%00-00@(0.0.255) int][%00-00 _][%00-00@0 FindBinary][%00-00 (][%00-00@(0.0.255) c
onst][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 v][%00-00 , ][%00-00@(0.0.255) const][%00-00 _
][%00-00^T^ T][%00-00 `&_][%00-00@3 val][%00-00 , ][%00-00@(0.0.255) const][%00-00 _][%00-00^L^ L
][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Finds position of element with specified value in the container
sorted by [* less] predicate. If no such element exists, a negative
value is returned.&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@4 T]-|Type of value.&]
[s4; [*C@3 v]-|Container.&]
[s4; [*C@3 val]-|Value to find.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s4; [*/ Return value]-|Position in container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 >__][%00-00@(0.0.255) int][%00-00 _][%00-00@0 F
indBinary][%00-00 (][%00-00@(0.0.255) const][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 v][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^T^ T][%00-00 `&_][%00-00@3 val][%00-00 )]&]
[s2; Finds position of element with specified value in the container
sorted by [*/ operator<] predicate. If no such element exists,
a negative value is returned.&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@4 T]-|Type of value.&]
[s4; [*C@3 v]-|Container.&]
[s4; [*C@3 val]-|Value to find.&]
[s4; [*/ Return value]-|Position in container.&]
[s0;~~~.992; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00^C^ C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L][%00-00 >__][%00-00^C^ C][%00-00 `&_][%00-00@0 A
ppendSorted][%00-00 (][%00-00^C^ C][%00-00 `&_][%00-00@3 dest][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 src][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^L^ L][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Merges source NTL container to destination NTL container. Both
containers must be sorted in ascending order. After the operation,
destination container is sorted in ascending order and contains
values from both containers. Duplicate values are preserved.
Ordering predicate is determined by [* less].&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@3 dest]-|Destination container.&]
[s4; [*C@3 src]-|Source container.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s4;C [*/A Return value][A -|Destination container.]template<class [*@4 C]>&]
[s0;~~~.992; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00^C^ C][%00-00 >__][%00-00^C^ C][%00-00 `&
_][%00-00@0 AppendSorted][%00-00 (][%00-00^C^ C][%00-00 `&_][%00-00@3 dest][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 src][%00-00 )]&]
[s2;~~~.992; Merges source NTL container to destination NTL container.
Both containers must be sorted in ascending order. After the
operation, destination container is sorted in ascending order
and contains values from both containers. Duplicate values are
preserved. Ordering is determined by [*/ operator<].&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@3 dest]-|Destination container.&]
[s4; [*C@3 src]-|Source container.&]
[s4;C [*/A Return value][A -|Destination container.]template<class [*@4 C]>&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00^C^ C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L][%00-00 >__][%00-00^C^ C][%00-00 `&_][%00-00@0 U
nionSorted][%00-00 (][%00-00^C^ C][%00-00 `&_][%00-00@3 dest][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 src][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^L^ L][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Merges source NTL container to destination NTL container. Both
containers must be sorted in ascending order and values must
be unique. After the operation, destination container is sorted
in ascending order and contains unique values from both containers.
Ordering is determined by [* less].&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@3 dest]-|Destination container.&]
[s4; [*C@3 src]-|Source container.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s4; [*/ Return value]-|Destination container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00^C^ C][%00-00 >__][%00-00^C^ C][%00-00 `&
_][%00-00@0 UnionSorted][%00-00 (][%00-00^C^ C][%00-00 `&_][%00-00@3 dest][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 src][%00-00 )]&]
[s2; Merges the source NTL container to the destination NTL container.
Both containers must be sorted in ascending order and values
must be unique. After the operation, destination container is
sorted in ascending order and contains unique values from both
containers. Ordering is determined by [*/ operator<].&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@3 dest]-|Destination container.&]
[s4; [*C@3 src]-|Source container.&]
[s4; [*/ Return value]-|Destination container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00^C^ C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L][%00-00 >__][%00-00^C^ C][%00-00 `&_][%00-00@0 R
emoveSorted][%00-00 (][%00-00^C^ C][%00-00 `&_][%00-00@3 from][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 what][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^L^ L][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Removes elements of source container from destination container.
Both containers must be sorted in ascending order and values
must be unique. Ordering is determined by [* less].&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@3 from]-|Destination container.&]
[s4; [*C@3 what]-|Source container.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s4; [*/ Return value]-|Destination container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00^C^ C][%00-00 >__][%00-00^C^ C][%00-00 `&
_][%00-00@0 RemoveSorted][%00-00 (][%00-00^C^ C][%00-00 `&_][%00-00@3 from][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 what][%00-00 )]&]
[s2; Removes elements of source container from destination container.
Both containers must be sorted in ascending order and values
must be unique. Ordering is determined by [*/ operator<].&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@3 from]-|Destination container.&]
[s4; [*C@3 what]-|Source container.&]
[s4; [*/ Return value]-|Destination container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00^D^ D][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 S][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L
][%00-00 >__][%00-00^D^ D][%00-00 `&_][%00-00@0 IntersectSorted][%00-00 (][%00-00^D^ D][%00-00 `&
_][%00-00@3 dest][%00-00 , ][%00-00@(0.0.255) const][%00-00 _][%00-00^S^ S][%00-00 `&_][%00-00@3 s
rc][%00-00 , ][%00-00@(0.0.255) const][%00-00 _][%00-00^L^ L][%00-00 `&_][%00-00@3 less][%00-00 )
]&]
[s2; Removes elements from destination container that are not contained
in source container. Both containers must be sorted in ascending
order and values must be unique. Ordering is determined by [* less].&]
[s4; [*C@4 D]-|Type of destination container.&]
[s4; [*C@4 S]-|Type of source container.&]
[s4; [*C@3 dest]-|Destination container.&]
[s4; [*C@3 src]-|Source container.&]
[s4; [*C@3 less]-|Destination container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00^D^ D][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 S][%00-00 >__][%00-00^D^ D][%00-00 `&_][%00-00@0 I
ntersectSorted][%00-00 (][%00-00^D^ D][%00-00 `&_][%00-00@3 dest][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^S^ S][%00-00 `&_][%00-00@3 src][%00-00 )]&]
[s2; Removes elements from destination container that are not contained
in source container. Both containers must be sorted in ascending
order and values must be unique. Ordering is determined by [*/ operator<].&]
[s4; [*C@4 D]-|Type of destination container.&]
[s4; [*C@4 S]-|Type of source container.&]
[s4; [*C@3 dest]-|Destination container.&]
[s4; [*C@3 src]-|Source container.&]
[s4; [*/ Return value]-|Destination container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 Less][%00-00 >__][%00-00@(0.0.255) void][%00-00 _
][%00-00@0 Sort][%00-00 (][%00-00^T^ T][%00-00 `&_][%00-00@3 c][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^Less^ Less][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Sorts container. Ordering is determined by [* less].&]
[s7; IterSwap must be defined for T`::Iterator.&]
[s4; [*C@4 T]-|Type of container.&]
[s4; [*C@3 c]-|Container.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 T][%00-00 >__][%00-00@(0.0.255) v
oid][%00-00 _][%00-00@0 Sort][%00-00 (][%00-00^T^ T][%00-00 `&_][%00-00@3 c][%00-00 )]&]
[s2; Sorts container. Ordering is determined by [*/ operator<].&]
[s2;*1 IterSwap must be defined for T`::Iterator.&]
[s4; [*C@4 T]-|Type of container.&]
[s4; [*C@3 c]-|Container.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 KC][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 VC][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00@4 L
ess][%00-00 >__][%00-00@(0.0.255) void][%00-00 _][%00-00@0 IndexSort][%00-00 (][%00-00^KC^ KC
][%00-00 `&_][%00-00@3 keys][%00-00 , ][%00-00^VC^ VC][%00-00 `&_][%00-00@3 values][%00-00 ,
][%00-00@(0.0.255) const][%00-00 _][%00-00^Less^ Less][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Sorts pair of containers. Both containers must have same number
of items. Resulting order is determined by the [* keys] container.
Ordering is determined by [* less].&]
[s4; [*C@4 KC]-|Type of keys container.&]
[s4; [*C@4 VC]-|Type of values.&]
[s4; [*C@3 keys]-|Container of keys.&]
[s4; [*C@3 values]-|Container of values.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 KC][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 VC][%00-00 >__][%00-00@(0.0.255) void][%00-00 _][%00-00@0 I
ndexSort][%00-00 (][%00-00^KC^ KC][%00-00 `&_][%00-00@3 keys][%00-00 ,
][%00-00^VC^ VC][%00-00 `&_][%00-00@3 values][%00-00 )]&]
[s2; Sorts pair of containers. Both containers must have same number
of items. Resulting order is determined by the [* keys] container.
Ordering is determined by [*/ operator<].&]
[s4; [*C@4 KC]-|Type of keys container.&]
[s4; [*C@4 VC]-|Type of values container.&]
[s4; [*C@3 keys]-|Container of keys.&]
[s4; [*C@3 values]-|Container of values.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00@4 Less][%00-00 >__][%00-00^`:`:Vector^ Vector][%00-00 <
][%00-00^int^ int][%00-00 >_][%00-00@0 GetSortOrder][%00-00 (][%00-00@(0.0.255) const][%00-00 _
][%00-00^C^ C][%00-00 `&_][%00-00@3 container][%00-00 , ][%00-00@(0.0.255) const][%00-00 _][%00-00^Less^ L
ess][%00-00 `&_][%00-00@3 less][%00-00 )]&]
[s2; Creates ascending order of values in container. Ordering is
determined by [* less].&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@3 container]-|Source container.&]
[s4; [*C@3 less]-|Ordering predicate.&]
[s4; [*/ Return value]-|Vector of positions of source container in sorted
order.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 C][%00-00 >__][%00-00^`:`:Vector^ V
ector][%00-00 <][%00-00^int^ int][%00-00 >_][%00-00@0 GetSortOrder][%00-00 (][%00-00@(0.0.255) c
onst][%00-00 _][%00-00^C^ C][%00-00 `&_][%00-00@3 container][%00-00 )]&]
[s2; Creates ascending order of values in container. Ordering is
determined by [*/ operator<].&]
[s4; [*C@4 C]-|Type of container.&]
[s4; [*C@3 container]-|Source container.&]
[s4; [*/ Return value]-|Vector of positions of source container in sorted
order.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00^O^ O][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00^T^ T][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00^R^ R
][%00-00 >__][%00-00^`:`:FieldRelationCls^ FieldRelationCls][%00-00 <][%00-00^O^ O][%00-00 ,
][%00-00^T^ T][%00-00 , ][%00-00^R^ R][%00-00 >_][%00-00@0 FieldRelation][%00-00 (][%00-00^O^ O
][%00-00 _(T`::`*][%00-00@3 member][%00-00 ), ][%00-00@(0.0.255) const][%00-00 _][%00-00^R^ R][%00-00 `&
_][%00-00@3 relation][%00-00 )]&]
[s2; Creates ordering predicate for [* T] based on the value of member
variable of[* T].&]
[s4; [*C@4 T]-|Type of element.&]
[s4; [*C@3 member]-|Member variable of T.&]
[s4; [*C@3 relation]-|Ordering relation for [* member].&]
[s4; [*/ Return value]-|Ordering predicate.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 O][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00^T^ T][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00^R^ R
][%00-00 >__][%00-00^`:`:MethodRelationCls^ MethodRelationCls][%00-00 <][%00-00@4 O][%00-00 _
(T`::`*)(), ][%00-00^T^ T][%00-00 , ][%00-00^R^ R][%00-00 >_][%00-00@0 MethodRelation][%00-00 (
][%00-00^O^ O][%00-00 _(T`::`*][%00-00@3 method][%00-00 )(), ][%00-00@(0.0.255) const][%00-00 _
][%00-00^R^ R][%00-00 `&_][%00-00@3 relation][%00-00 )]&]
[s2; Creates ordering predicate for [* T] based on the value returned
by non`-const method of [* T].&]
[s4; [*C@4 T]-|Type of element.&]
[s4; [*C@3 method]-|Method of T.&]
[s4; [*C@3 relation]-|Ordering relation for value returned by method.&]
[s4; [*/ Return value]-|Ordering predicate.&]
[s0; &]
[s5;K [%00-00 template_<][%00-00@(0.0.255) class][%00-00 _][%00-00@4 O][%00-00 ,
][%00-00@(0.0.255) class][%00-00 _][%00-00^T^ T][%00-00 , ][%00-00@(0.0.255) class][%00-00 _][%00-00^R^ R
][%00-00 >__][%00-00^`:`:MethodRelationCls^ MethodRelationCls][%00-00 <][%00-00@4 O][%00-00 _
(T`::`*)()_][%00-00@(0.0.255) const][%00-00 , ][%00-00^T^ T][%00-00 ,
][%00-00^R^ R][%00-00 >_][%00-00@0 MethodRelation][%00-00 (][%00-00^O^ O][%00-00 _(T`::`*][%00-00@3 m
ethod][%00-00 )()_][%00-00@(0.0.255) const][%00-00 , ][%00-00@(0.0.255) const][%00-00 _][%00-00^R^ R
][%00-00 `&_][%00-00@3 relation][%00-00 )]&]
[s2; Creates ordering predicate for [* T] based on the value returned
by const method of [* T].&]
[s4; [*C@4 T]-|Type of element.&]
[s4; [*C@3 method]-|Method of T.&]
[s4; [*C@3 relation]-|Ordering relation for value returned by method.&]
[s4; [*/ Return value]-|Ordering predicate.&]
[s0; ]

View file

@ -617,12 +617,9 @@ RichEdit::RichEdit()
height.Tip(t_("Font height"));
hyperlink <<= THISBACK(Hyperlink);
hyperlink.Tip(t_("Hyperlink"));
hyperlink.NoWantFocus();
label <<= THISBACK(Label);
label.Tip(t_("Paragraph label"));
indexentry << THISBACK(IndexEntry);
indexentry.Tip(t_("Index entry"));
indexentry.NoWantFocus();
gotolabel.SetMonoImage(RichEditImg::GoTo());

View file

@ -47,7 +47,7 @@ private:
int tabpos;
int tabsize;
int newtabalign;
public:
Callback WhenLeftDouble;
Callback WhenLeftDown;
@ -565,9 +565,9 @@ public:
void InkTool(Bar& bar);
void PaperTool(Bar& bar);
void LanguageTool(Bar& bar, int width = HZoom(60));
void HyperlinkTool(Bar& bar, int width = 180);
void HyperlinkTool(Bar& bar, int width = 180, dword key = 0, const char *tip = NULL);
void SpellCheckTool(Bar& bar);
void IndexEntryTool(Bar& bar, int width = 80);
void IndexEntryTool(Bar& bar, int width = 80, dword key = 0, const char *tip = NULL);
void LeftTool(Bar& bar, dword key = K_CTRL_L);
void RightTool(Bar& bar, dword key = K_CTRL_R);
@ -579,7 +579,7 @@ public:
void BoxWhiteBulletTool(Bar& bar, dword key = 0);
void TextBulletTool(Bar& bar, dword key = 0);
void ParaFormatTool(Bar& bar, dword key = 0);
void LabelTool(Bar& bar, int width = 80);
void LabelTool(Bar& bar, int width = 80, dword key = 0, const char *tip = NULL);
void ToParaTool(Bar& bar, dword key = K_CTRL_K);
void UndoTool(Bar& bar, dword key = K_CTRL_Z);

View file

@ -122,14 +122,33 @@ void RichEdit::SpellCheckTool(Bar& bar)
.Check(spellcheck);
}
void RichEdit::IndexEntryTool(Bar& bar, int width)
String PlusKeyDesc(const char *text, dword key)
{
bar.Add(!IsReadOnly(), indexentry, width);
String r = text;
if(key)
r << ' ' << GetKeyDesc(key);
return r;
}
void RichEdit::HyperlinkTool(Bar& bar, int width)
void RichEdit::IndexEntryTool(Bar& bar, int width, dword key, const char *tip)
{
bar.Add(!IsReadOnly(), indexentry, width);
indexentry.Tip(PlusKeyDesc(tip ? tip : t_("Index entry"), key));
bar.AddKey(key, THISBACK(IndexEntry));
}
void RichEdit::HyperlinkTool(Bar& bar, int width, dword key, const char *tip)
{
bar.Add(!IsReadOnly(), hyperlink, width);
hyperlink.Tip(PlusKeyDesc(tip ? tip : t_("Hyperlink"), key));
bar.AddKey(key, THISBACK(Hyperlink));
}
void RichEdit::LabelTool(Bar& bar, int width, dword key, const char *tip)
{
bar.Add(!IsReadOnly(), label, width);
label.Tip(PlusKeyDesc(tip ? tip : t_("Paragraph label"), key));
bar.AddKey(key, THISBACK(Label));
}
void RichEdit::LeftTool(Bar& bar, dword key)
@ -137,7 +156,7 @@ void RichEdit::LeftTool(Bar& bar, dword key)
int a = formatinfo.paravalid & RichText::ALIGN ? formatinfo.align : Null;
bar.Add(!IsReadOnly(), t_("Left"), RichEditImg::Left(), THISBACK(AlignLeft))
.Check(a == ALIGN_LEFT)
.Key(K_CTRL_L);
.Key(key);
}
void RichEdit::RightTool(Bar& bar, dword key)
@ -215,11 +234,6 @@ void RichEdit::ParaFormatTool(Bar& bar, dword key)
.Key(key);
}
void RichEdit::LabelTool(Bar& bar, int width)
{
bar.Add(!IsReadOnly(), label, width);
}
void RichEdit::ToParaTool(Bar& bar, dword key)
{
bar.Add(!IsReadOnly() && IsSelection() && !tablesel, t_("To single paragraph"),

View file

@ -78,6 +78,19 @@ bool MatchNest(const char *nest, const CppNest& m, const BrowserQuery& q)
return false;
}
void Browser::WithSearch(EditString& search_nest, EditString& search_item)
{
item.WantFocus();
search_nest.NullText("Search nest", StdFont().Italic(), SColorDisabled());
search_nest.SetFilter(CharFilterAlphaToUpper);
s_nest = &search_nest;
search_nest <<= THISBACK(Reload);
search_item.NullText("Search item", StdFont().Italic(), SColorDisabled());
search_item.SetFilter(CharFilterAlphaToUpper);
s_item = &search_item;
search_item <<= THISBACK(EnterNesting);
}
bool Browser::FindSet(const String& knesting, const String& kitem, int nestingsc, int itemsc)
{
if(!IsNull(knesting) && nesting.FindSetCursor(knesting)) {
@ -109,13 +122,18 @@ void Browser::Reload()
}
nesting.Clear();
item.Clear();
for(int i = 0; i < base.GetCount(); i++)
if(MatchNest(base.GetKey(i), base[i], query)) {
String srch;
if(s_nest)
srch = ~*s_nest;
for(int i = 0; i < base.GetCount(); i++) {
String k = base.GetKey(i);
if(MatchNest(k, base[i], query) && (srch.GetCount() == 0 || ToUpper(k).Find(srch) >= 0)) {
CppNestingInfo f;
f.namespacel = base[i].namespacel;
f.nesting = base.GetKey(i);
f.nesting = k;
nesting.Add(f.nesting, i, RawToValue<CppNestingInfo>(f));
}
}
nesting.Sort();
if(!IsNull(knesting) && nesting.FindSetCursor(knesting)) {
nesting.ScCursor(nestingsc);
@ -149,8 +167,12 @@ void Browser::LoadNest(const String& nest, ArrayMap<String, CppItemInfo>& item,
CppNest& m = BrowserBase()[q];
bool all = !IsNull(query.name) && MatchNestName(nest, query.name) || inherited;
String base;
String srch;
if(s_item)
srch = ~*s_item;
for(int i = 0; i < m.GetCount(); i++) {
if(MatchItem(nest, m[i], m.key[i], m.name[i], query, all)) {
if(MatchItem(nest, m[i], m.key[i], m.name[i], query, all) &&
(srch.GetCount() == 0 || ToUpper(m.name[i]).Find(srch) >= 0)) {
const CppItem& im = m[i];
String k = m.key[i];
int q = item.Find(k);
@ -440,6 +462,7 @@ void CppNestingInfoDisplay::Paint(Draw& w, const Rect& r, const Value& q,
Browser::Browser()
{
s_nest = s_item = NULL;
nesting.NoHeader().NoGrid();
nesting.AddKey();
nesting.AddIndex();

View file

@ -145,18 +145,19 @@ public:
void Serialize(Stream& s);
void SerializeWspc(Stream& s);
ArrayCtrl nesting;
ItemList item;
Splitter split;
BrowserQuery query;
QueryDlg querydlg;
Callback2<String, int> WhenPos;
int pos;
Callback WhenItem;
Callback WhenItemDblClk;
Callback1<String> WhenShowTopic;
bool clickpos;
bool show_inherited;
ArrayCtrl nesting;
ItemList item;
Splitter split;
BrowserQuery query;
QueryDlg querydlg;
Callback2<String, int> WhenPos;
int pos;
Callback WhenItem;
Callback WhenItemDblClk;
Callback1<String> WhenShowTopic;
bool clickpos;
bool show_inherited;
EditString *s_item, *s_nest;
void LoadNest(const String& nest, ArrayMap<String, CppItemInfo>& item, int inherited);
bool IsCurrentItem();
@ -186,6 +187,8 @@ public:
void ShowTopic(String w);
void ShowHelp();
void WithSearch(EditString& search_nest, EditString& search_item);
typedef Browser CLASSNAME;
Browser();

View file

@ -128,7 +128,7 @@ void TopicEditor::MainTool(Bar& bar)
.Key(K_CTRL_P);
bar.GapRight();
bar.Break();
editor.LabelTool(bar, 500);
editor.LabelTool(bar, 500, K_CTRL_M, "Code reference");
bar.Gap();
Tools(bar);
bar.Gap();

View file

@ -30,8 +30,11 @@ ReferenceDlg::ReferenceDlg()
browser.WhenItem = THISBACK(EnterItem);
browser.WhenItemDblClk = THISBACK(EnterItemOk);
browser.show_inherited = false;
browser.WithSearch(search_nest, search_item);
query <<= callback(&browser, &Browser::DoDoQuery);
Sizeable().Zoomable();
Icon(TopicImg::Topic());
Breaker(classlist, IDYES);
StartBrowserBase();
browser.Reload();
}

View file

@ -46,7 +46,9 @@ LAYOUT(ReferenceDlgLayout, 644, 392)
ITEM(EditString, reference, HSizePosZ(68, 4).TopPosZ(4, 19))
ITEM(Browser, browser, HSizePosZ(8, 8).VSizePosZ(28, 40))
ITEM(Button, query, SetLabel(t_("Query")).LeftPosZ(8, 64).BottomPosZ(8, 24))
ITEM(Button, classlist, SetLabel(t_("Class list")).RightPosZ(144, 64).BottomPosZ(8, 24))
ITEM(EditString, search_nest, LeftPosZ(80, 120).BottomPosZ(13, 19))
ITEM(EditString, search_item, RightPosZ(148, 120).BottomPosZ(13, 19))
ITEM(Button, classlist, SetLabel(t_("Insert all nests")).LeftPosZ(208, 88).BottomPosZ(8, 24))
ITEM(Button, ok, SetLabel(t_("OK")).RightPosZ(76, 64).BottomPosZ(8, 24))
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(8, 24))
END_LAYOUT

View file

@ -2,7 +2,7 @@
bool IsTopicGroup(const char *path)
{
return ToLower(GetFileExt(path)) == ".tpp";
return ToLower(GetFileExt(path)) == ".tpp" && !FileExists(path);
}
struct TopicModule : public IdeModule {

View file

@ -202,7 +202,7 @@ void TopicEditor::FormatMenu(Bar& bar)
bar.Separator();
editor.IndexEntryTool(bar);
bar.Break();
editor.HyperlinkTool(bar, 300);
editor.HyperlinkTool(bar, 300, K_CTRL_H);
bar.Separator();
editor.ParaTools(bar);
}