diff --git a/uppsrc/$.tpp/Reference$en-us.tpp b/uppsrc/$.tpp/Reference$en-us.tpp index 7a3366b1e..f544a2475 100644 --- a/uppsrc/$.tpp/Reference$en-us.tpp +++ b/uppsrc/$.tpp/Reference$en-us.tpp @@ -1,19 +1,17 @@ -topic "Size";[ $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64) $$1,0#37138531426314131252341829483380:class] -[l288;b25;2 $$2,0#27521748481378242620020725143825:desc] -[i450;kKO9;*@(64)2 $$3,0#37138531426314131252341829483370:item] -[H6;0 $$4,3#05600065144404261032431302351956:breakline] -[l288;a25;kK~~~.1408;@3;2 $$5,0#61217621437177404841962893300719:param] -[i450;a25;kKO9;*t@3;2 $$6,6#62244943445105525459134198333165:shead] -[0 $$7,4#96390100711032703541132217272105:breakhead] +topic "template "; +[ $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9; $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,0#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] [{_}%EN-US [s0;*@(128) &] [ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] [s0; &] -[s3;K:`:`:Size`_`:`:`:`:Size`_`(`):@0%- &] +[s5;K:`:`:Size`_`:`:`:`:Size`_`(`):%- &] [ {{10000F(128)G(128)@1 [s0; [* Public Field Detail]]}}&] [s0; &] -[s3;K:`:`:Size`_`:`:cx:@4%- &] +[s5;K:`:`:Size`_`:`:cx:@4%- &] [ {{10000F(128)G(128)@1 [s0; [* Method Detail]]}}&] -[s0; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/CppBase/Parser.cpp b/uppsrc/CppBase/Parser.cpp index 4221426f0..61b7a7fc4 100644 --- a/uppsrc/CppBase/Parser.cpp +++ b/uppsrc/CppBase/Parser.cpp @@ -1398,23 +1398,25 @@ void Parser::Do(Stream& in, const Vector& ignore, CppBase& _base, const while(lex != t_eof) try { - Do(); + try { + Do(); + } + catch(Error) { + if(lex.IsBody()) { + Resume(lex.GetBracesLevel()); + Key(';'); + } + else { + ++lex; + lex.SkipToGrounding(); + lex.ClearBracesLevel(); + } + } } catch(Lex::Grounding) { lex.ClearBracesLevel(); lex.ClearBody(); } - catch(Error) { - if(lex.IsBody()) { - Resume(lex.GetBracesLevel()); - Key(';'); - } - else { - ++lex; - lex.SkipToGrounding(); - lex.ClearBracesLevel(); - } - } } void Parse(Stream& s, const Vector& ignore, CppBase& base, const String& fn, diff --git a/uppsrc/CppBase/Pre.cpp b/uppsrc/CppBase/Pre.cpp index 41ce66780..4829d2953 100644 --- a/uppsrc/CppBase/Pre.cpp +++ b/uppsrc/CppBase/Pre.cpp @@ -74,7 +74,7 @@ SrcFile PreProcess(Stream& in) } const char *rm = ln; if(IsAlNum(*rm)) - res.text << '\1'; + res.text << '\2'; while(*rm == ' ' || *rm == '\t') rm++; if(*rm == '\0') res.blankLinesRemoved++; diff --git a/uppsrc/CppBase/cpplex.cpp b/uppsrc/CppBase/cpplex.cpp index e8286d3ce..2a24a2fa5 100644 --- a/uppsrc/CppBase/cpplex.cpp +++ b/uppsrc/CppBase/cpplex.cpp @@ -152,7 +152,7 @@ void Lex::Next() { grounding = false; while((byte)*ptr <= ' ') { - if(*ptr == '\1') + if(*ptr == '\2') grounding = true; if(*ptr == '\0') return; ptr++; diff --git a/uppsrc/CtrlCore/src.tpp/Ctrl$en-us.tpp b/uppsrc/CtrlCore/src.tpp/Ctrl$en-us.tpp index e9bf50b3f..e0b51f6fc 100644 --- a/uppsrc/CtrlCore/src.tpp/Ctrl$en-us.tpp +++ b/uppsrc/CtrlCore/src.tpp/Ctrl$en-us.tpp @@ -1,74 +1,1927 @@ -TITLE("Ctrl") -COMPRESSED -120,156,237,125,11,123,211,72,178,232,95,209,153,217,179,227,176,78,198,118,158,192,236,126,27,66,24,242,77,72,114,72,50,236,89,46,140,101,171,29,235,32,75,30,73,78,8,203,238,111,191,245,232,110,181,164,150,45,63,2,129,97,31,36,145,212,175,170,234,234,170,234,122,188,238,56,127,250,83,171,217,250,190,53,227,63,143,158,138,129,59,9,210,55,175,131,206,222,222,99,191,221,238,180,30,187,237,221,199,167,15,31,255,231,63,255,217,104,111,181,246,30,99,103,109,232,172,221,218,218,108,119,218,240,172,181,213,217,109,111,63,108,61,220,222,107,239,181,54,119,183,58,219,187,173,237,71,99,55,118,71,111,94,187,123,155,143,31,188,220,129,86,157,230,246,247,155,237,205,118,171,189,211,217,130,175,90,155,173,206,86,187,179,221,222,219,219,106,239,110,239,109,62,220,217,121,212,119,199,169,31,133,111,94,247,176,221,22,52,219,132,102,173,221,189,157,173,54,52,218,218,238,108,238,110,111,65,227,173,45,152,222,38,12,188,187,179,187,251,40,245,211,64,188,121,237, -227,188,97,182,7,56,203,173,230,206,247,48,187,206,46,180,220,234,108,237,108,109,238,117,54,219,123,157,206,206,195,205,173,135,91,48,237,118,231,145,159,10,152,100,111,171,243,216,133,255,99,179,109,24,111,107,123,171,189,9,16,217,218,221,222,132,207,118,225,231,86,235,97,187,3,131,238,181,182,183,97,60,241,94,129,169,7,0,66,32,97,219,29,24,178,179,187,141,45,246,182,246,218,155,187,123,157,173,206,78,7,38,209,218,133,133,226,12,182,31,121,34,233,67,219,205,78,251,113,10,211,122,124,240,247,237,199,109,104,188,219,220,253,190,211,122,216,234,236,236,62,132,65,97,194,176,230,205,135,15,219,155,123,48,232,86,123,187,213,222,124,212,143,60,88,103,175,179,221,218,164,17,247,0,21,59,208,51,129,101,123,167,13,147,238,108,238,193,144,187,237,205,77,248,119,123,107,111,247,81,34,16,25,105,20,191,121,253,224,239,141,214,70,107,163,179,189,189,134,205,31,66,243,189,205,173,205,205,173,157,135,91,237,214,38,12,3,125,108,33,204,118,90,128,206,246, -118,103,239,81,207,77,96,204,20,30,237,50,100,219,72,77,0,251,205,189,237,77,24,122,7,254,1,188,194,2,55,1,62,157,135,91,123,155,155,123,173,71,253,192,77,18,9,36,4,208,3,92,100,187,221,108,183,191,223,69,216,110,111,118,182,30,34,112,54,59,0,228,206,206,246,195,54,64,121,123,103,171,213,121,20,139,223,39,126,44,70,34,4,48,251,64,30,143,21,138,36,45,194,100,152,20,59,205,118,7,136,113,123,103,167,133,240,218,6,130,232,108,110,3,192,91,237,189,45,152,17,252,23,208,156,74,106,236,101,107,216,108,182,55,191,127,216,217,218,132,153,60,220,218,2,8,64,7,237,135,237,118,187,181,7,255,133,149,1,92,136,62,218,146,176,228,240,220,124,171,217,222,250,126,23,200,24,48,245,112,11,135,127,184,137,240,235,0,248,59,59,173,109,192,67,135,155,119,16,234,157,63,1,220,219,157,61,252,63,65,190,189,221,108,195,126,128,41,182,183,183,97,221,155,0,234,206,30,172,125,27,96,191,73,36,222,222,221,123,116,34,110,146,167,110,42, -36,193,60,56,248,19,83,90,123,167,217,222,249,190,133,237,183,247,30,2,2,219,91,8,191,205,173,173,135,157,135,155,155,219,157,135,219,155,59,45,128,99,194,27,26,27,227,150,162,237,168,59,217,109,182,119,97,115,193,90,183,183,97,245,212,12,86,190,219,198,169,116,246,30,238,32,20,100,39,221,245,192,15,113,30,64,25,143,153,24,30,28,252,165,221,222,197,142,246,96,211,236,237,237,180,54,31,2,48,0,6,173,109,160,116,96,8,123,128,104,192,115,7,182,1,114,132,254,59,247,74,116,215,229,110,165,41,32,5,110,111,110,239,33,221,66,75,152,58,76,2,250,121,216,106,237,192,147,189,61,216,77,143,174,220,113,142,0,59,173,102,167,5,84,4,252,103,27,54,37,140,5,228,215,122,136,188,4,56,3,96,0,88,209,195,109,166,192,238,122,40,146,84,120,128,252,237,22,45,187,211,110,118,218,0,59,160,191,237,237,189,173,173,29,152,47,140,189,139,172,9,81,8,27,120,123,119,243,209,153,27,35,237,109,1,226,59,219,143,223,253,2,168,135,221,179, -179,69,232,235,116,236,91,160,147,109,129,221,150,228,46,149,125,108,206,236,35,219,70,255,250,237,223,255,125,120,178,126,121,238,188,78,58,143,157,215,255,221,106,173,183,90,206,65,26,7,111,254,252,6,158,117,30,255,242,168,11,255,197,39,248,147,218,61,82,31,102,219,222,145,29,202,14,126,83,191,253,93,118,166,95,60,202,94,101,141,199,147,94,224,247,203,173,223,226,144,64,168,238,91,7,255,213,31,52,157,121,59,57,75,197,91,231,12,41,94,190,254,169,106,134,127,251,141,86,222,122,236,228,127,52,158,138,216,191,118,241,28,113,6,113,52,194,222,126,194,150,127,115,220,32,136,110,18,234,198,73,35,167,39,156,113,228,135,64,29,244,215,45,124,25,243,151,249,30,47,134,126,226,164,67,225,32,43,100,0,58,209,192,249,249,242,200,185,241,189,43,145,38,206,208,23,177,27,247,135,183,78,35,29,186,169,3,13,110,224,143,203,238,95,186,127,209,31,185,177,128,41,36,145,19,186,35,24,179,251,29,142,149,116,191,91,219,200,141,247,64,97,237,129,35,194, -201,72,195,199,57,11,220,62,49,197,131,40,76,82,55,76,19,130,192,206,99,71,63,112,38,9,244,236,135,78,16,93,249,125,55,112,250,81,20,123,126,8,60,36,161,81,218,143,115,100,114,112,120,114,113,248,82,211,201,131,131,191,111,58,252,236,205,250,199,3,24,74,196,48,101,255,42,196,97,109,29,28,31,62,187,200,55,199,39,208,248,88,12,210,233,77,95,30,253,252,188,208,150,30,65,227,151,254,213,112,70,235,139,211,179,124,91,120,0,45,15,127,159,184,132,92,156,134,211,232,137,20,151,128,0,119,6,81,236,92,139,56,45,192,101,205,214,251,147,211,139,139,211,23,249,1,248,153,57,6,77,183,222,32,150,49,206,143,254,121,152,31,1,159,64,255,231,254,7,49,125,241,47,142,78,202,173,229,67,232,224,87,55,152,8,164,65,79,192,196,70,192,184,61,32,12,63,188,114,126,22,233,11,63,196,1,172,221,238,255,195,210,45,63,156,217,173,251,190,170,219,243,139,167,150,181,242,195,89,221,86,237,12,218,133,217,214,224,161,30,29,71,87,125,181,39, -228,15,218,188,124,6,200,173,155,136,248,90,192,110,76,28,225,195,174,54,240,5,184,27,70,177,255,33,10,83,248,11,132,134,20,247,185,218,74,227,40,241,145,171,200,221,186,41,39,21,192,185,89,216,19,48,11,253,179,1,12,166,219,212,255,172,101,80,112,104,182,106,5,248,157,94,207,3,0,144,27,24,108,180,244,114,202,187,158,126,183,38,97,65,83,100,38,17,79,250,32,9,74,44,241,115,19,43,48,232,250,199,125,69,122,78,122,59,22,27,206,83,133,23,100,106,192,220,34,130,26,201,84,248,38,113,70,194,13,55,156,202,62,161,203,103,126,156,164,206,53,98,186,114,236,30,146,190,232,71,161,103,124,88,31,206,83,64,155,135,131,212,115,96,119,102,240,112,206,145,65,99,43,220,215,200,235,197,104,156,222,58,192,85,211,252,68,240,164,213,231,47,190,246,251,182,67,206,71,209,213,114,200,30,159,255,124,146,77,44,119,244,121,55,192,45,222,58,244,195,210,118,211,241,10,136,181,1,241,119,100,189,114,25,253,104,52,198,51,231,6,200,60,15,245,7, -63,58,47,69,58,137,67,134,52,180,185,136,97,15,222,12,69,232,8,228,110,165,37,27,75,83,147,232,69,81,144,173,28,164,154,220,66,163,177,32,165,227,191,186,127,205,127,148,95,180,137,203,183,252,129,137,187,98,191,184,192,220,171,181,140,7,16,62,239,16,48,97,148,214,7,142,129,255,50,108,128,175,209,30,43,0,102,250,90,202,83,43,236,211,85,204,106,201,25,21,183,249,146,211,121,178,228,116,42,185,137,185,137,141,121,93,71,190,109,231,181,144,59,228,16,150,17,241,204,45,191,201,39,121,5,79,86,79,137,253,184,121,124,86,146,50,119,56,19,255,243,46,112,177,197,85,44,140,22,52,168,193,245,93,37,1,44,59,255,39,11,205,191,234,176,164,249,39,69,250,169,58,182,236,11,152,155,103,30,37,135,120,234,44,73,245,196,177,252,1,159,102,32,252,208,73,86,56,76,205,31,37,221,17,26,158,69,9,254,198,231,227,35,152,90,25,162,252,174,98,49,14,247,49,83,22,3,78,220,35,193,34,189,137,120,194,215,44,13,134,146,77,7,32,97,44, -36,129,201,21,200,223,26,37,185,161,89,122,82,144,31,112,250,154,162,240,131,156,144,245,222,16,192,74,47,111,43,136,170,142,4,246,30,48,248,60,19,66,177,239,202,111,111,145,244,148,240,170,191,156,19,48,211,150,93,87,112,234,129,72,200,232,43,19,219,82,210,67,247,175,181,197,7,152,120,38,64,24,171,40,139,16,189,252,171,218,34,68,143,69,8,232,251,11,148,174,190,104,240,104,254,179,128,204,8,59,202,36,98,219,222,90,221,88,183,185,177,202,123,83,189,201,239,211,74,139,207,57,170,31,47,133,155,68,161,98,165,251,241,213,4,207,124,50,65,209,123,231,218,143,83,180,72,128,54,54,140,60,155,6,254,236,244,224,242,60,175,127,211,35,52,242,160,49,236,42,74,127,12,34,56,171,7,81,127,98,53,20,237,31,92,28,253,186,127,81,80,226,213,83,213,207,13,40,213,110,63,69,243,155,176,78,228,233,161,189,163,236,185,217,149,39,166,118,118,254,252,244,85,193,168,0,79,84,7,215,126,226,247,252,192,7,45,174,63,116,195,43,123,31,135,39, -251,79,142,11,147,225,103,230,68,68,232,246,2,225,253,232,249,9,254,98,237,232,233,209,133,165,43,249,84,117,38,60,63,197,30,72,115,156,36,211,102,118,122,118,120,146,239,12,159,152,179,2,38,16,58,13,63,197,253,54,238,174,7,226,90,4,78,254,109,20,58,73,63,22,34,180,90,185,14,142,79,207,11,19,166,71,230,32,125,160,11,56,174,43,135,225,247,107,27,53,41,250,69,52,73,196,225,181,176,26,47,201,116,58,114,223,9,103,50,38,62,33,240,195,55,142,43,105,30,73,30,31,103,157,192,59,16,208,240,217,51,180,70,152,47,242,187,34,217,112,180,157,137,133,14,182,16,67,143,189,73,154,194,111,216,17,146,27,252,218,243,97,39,248,34,240,146,13,67,128,129,243,20,47,63,30,56,207,240,21,204,51,121,151,216,76,135,151,23,23,167,5,204,241,51,0,235,11,104,68,54,66,57,40,141,82,181,223,138,189,240,51,179,23,57,95,238,37,47,218,201,185,238,211,23,182,121,190,56,189,60,63,180,152,127,179,231,56,18,2,212,33,59,48,16,1, -54,181,218,13,177,201,139,211,95,139,150,67,245,88,119,52,138,174,161,27,248,39,158,222,215,241,225,190,181,51,122,174,123,11,208,196,92,213,207,193,229,203,243,211,151,71,47,246,127,46,82,120,246,2,233,124,18,39,0,72,127,228,94,9,103,232,38,242,94,192,48,69,54,152,128,156,100,24,77,0,237,177,72,198,168,20,224,185,198,205,172,91,139,166,251,234,249,225,225,177,101,25,244,92,47,3,14,62,216,80,113,148,86,50,205,211,87,5,74,192,39,186,189,36,37,220,140,99,152,93,98,239,228,178,96,46,191,60,179,117,16,139,0,78,155,170,105,92,150,248,27,63,179,245,228,69,19,224,115,221,245,126,224,247,223,217,59,124,121,120,118,184,95,188,1,160,103,208,225,43,20,7,70,102,175,190,94,31,211,62,0,206,15,68,83,94,178,248,35,31,1,152,56,239,196,109,47,114,99,216,204,19,16,144,196,88,0,79,73,68,232,161,65,57,69,5,100,4,125,0,218,54,140,125,2,28,196,121,66,163,36,111,164,29,179,242,78,131,103,179,225,52,72,155,233,75, -230,133,179,67,3,145,39,6,68,53,126,104,178,58,52,210,130,214,227,122,124,45,193,215,82,234,54,39,49,56,160,207,55,56,138,164,172,151,35,159,120,22,154,149,28,100,108,211,198,79,176,207,50,165,170,167,249,121,79,35,84,110,81,38,181,236,121,161,47,166,180,89,93,218,136,45,123,94,232,50,35,157,170,238,138,219,137,159,21,186,153,182,155,8,155,101,120,233,199,250,22,108,54,196,100,155,50,200,140,23,197,238,102,3,141,26,91,183,104,246,162,216,235,116,184,81,195,34,224,228,195,98,79,57,208,25,118,11,37,71,144,84,209,253,87,78,237,62,57,125,178,127,240,203,217,254,209,201,133,229,6,26,191,120,118,121,124,60,235,155,139,151,251,39,231,103,251,47,225,8,156,245,233,225,63,14,142,47,159,30,230,63,249,173,251,111,37,217,92,12,5,94,24,235,125,133,250,144,113,109,2,178,199,19,183,255,238,204,245,97,231,74,225,29,219,220,102,199,143,211,131,15,186,235,227,192,133,223,189,216,189,65,46,150,164,183,118,25,212,0,64,30,200,38,100,214, -63,158,68,212,237,152,198,149,123,221,170,53,152,208,42,104,15,57,64,34,183,142,128,154,96,125,46,174,138,132,67,232,88,143,98,239,223,6,233,194,157,174,13,23,235,31,79,195,224,214,73,99,55,76,80,197,132,69,244,225,36,96,241,132,129,60,99,96,19,111,5,121,221,196,168,148,130,37,79,85,253,177,21,11,254,151,140,69,223,199,91,94,244,10,192,19,137,30,12,252,190,147,220,2,155,29,33,13,227,145,238,36,62,8,162,196,54,157,70,224,131,116,123,122,124,136,84,145,198,81,160,186,69,247,131,88,92,77,2,55,118,94,249,161,135,126,10,113,52,73,129,6,242,178,117,238,254,9,237,190,192,235,109,174,26,166,253,192,249,173,209,125,96,88,15,232,76,120,30,69,239,50,59,85,3,151,250,91,247,65,31,126,88,189,54,242,253,249,225,0,201,216,250,101,206,212,74,18,124,211,57,67,63,139,223,198,179,191,255,224,137,32,117,155,124,11,246,27,156,229,131,192,189,74,214,244,142,130,5,19,172,135,48,123,220,11,44,33,208,40,168,122,198,81,130,118, -116,214,79,146,149,3,238,23,113,59,13,108,122,210,179,215,217,143,38,97,90,189,44,45,196,124,170,149,145,37,97,78,146,200,45,40,38,43,69,245,138,232,38,85,234,187,243,172,167,112,197,90,54,202,228,239,122,77,35,217,89,148,224,105,188,208,189,192,216,48,131,206,94,188,209,48,241,63,100,206,75,26,28,7,0,30,20,78,73,101,105,0,88,64,149,94,227,139,28,216,251,101,103,29,182,56,91,197,64,156,217,250,199,167,62,158,41,125,96,117,34,189,1,253,158,123,30,129,166,236,179,42,107,254,13,44,153,25,101,247,135,4,244,98,113,99,235,151,38,206,206,39,250,117,217,84,119,92,154,234,93,161,142,196,129,251,132,187,152,228,19,68,94,47,2,25,101,180,90,252,113,239,6,2,115,15,190,72,12,94,68,227,251,128,63,237,174,37,249,65,3,250,111,210,183,243,224,7,54,172,137,29,227,207,47,18,55,79,136,132,239,27,122,104,207,47,134,31,222,147,38,138,242,79,190,72,44,157,155,16,155,7,71,193,194,72,138,205,150,229,243,171,204,233,110,134, -2,36,110,79,226,35,209,8,97,184,39,132,138,60,228,179,87,208,112,224,191,7,14,138,31,33,240,77,237,225,218,141,125,178,149,55,60,80,41,67,47,41,227,176,154,74,130,41,199,228,143,133,189,92,124,86,139,84,226,105,124,252,199,50,53,218,158,87,15,244,57,137,142,221,126,23,34,187,220,14,159,139,236,162,193,32,17,105,53,225,245,149,13,186,76,129,77,73,130,138,110,198,104,210,34,219,151,84,200,224,15,69,158,108,244,226,206,44,224,183,217,254,108,60,193,120,45,39,14,74,41,253,98,14,240,85,97,211,202,175,185,243,6,126,216,116,90,214,141,184,50,150,154,211,224,127,22,41,72,23,236,63,111,186,48,88,129,245,171,64,87,133,183,14,255,212,43,250,73,234,55,127,43,120,157,169,142,51,152,233,181,243,172,89,111,193,251,53,138,28,200,221,137,49,147,138,35,224,132,201,134,115,81,124,137,28,47,29,70,9,223,139,131,126,47,41,208,105,192,192,103,244,107,99,205,65,175,7,231,228,242,248,24,126,93,199,78,216,34,160,250,64,134,138,29,79, -198,134,242,100,135,43,47,25,231,132,83,70,30,183,128,186,53,63,252,164,5,163,30,4,179,239,117,240,4,91,170,249,60,129,185,103,16,144,193,23,49,255,34,240,138,56,246,241,78,137,182,157,254,110,45,143,133,33,158,79,131,1,48,9,147,83,231,166,74,80,53,144,239,248,242,58,210,124,22,203,201,75,232,227,101,81,148,241,140,89,208,207,6,91,196,161,184,210,245,237,0,47,96,167,208,44,189,79,20,254,115,228,184,210,121,28,33,198,130,160,108,91,178,187,164,232,239,222,90,204,81,38,23,26,230,140,18,106,85,114,180,68,26,128,240,35,220,43,174,50,154,49,242,98,209,23,254,181,92,61,127,233,135,227,9,93,36,187,227,113,0,60,135,47,124,197,32,130,157,233,167,14,5,234,72,202,97,171,28,67,202,249,223,104,226,244,221,144,9,147,122,139,133,49,56,124,241,34,155,137,154,132,190,51,36,178,72,209,205,5,24,39,16,1,14,44,216,207,28,232,46,35,86,180,148,52,144,20,201,238,131,79,199,238,21,205,209,202,92,9,54,235,31,201,186,38, -208,168,144,27,126,165,232,125,42,252,79,138,224,203,208,87,40,30,199,226,218,135,46,130,91,5,125,192,76,6,250,207,12,24,73,137,69,211,160,29,40,242,171,183,37,75,226,28,20,175,109,131,117,136,94,127,188,82,186,135,113,208,183,68,228,231,2,95,255,146,155,219,215,188,13,238,28,223,179,54,64,14,244,247,99,15,148,141,200,118,168,232,239,222,90,236,206,115,236,4,182,41,215,217,6,121,235,51,238,130,240,182,32,60,125,102,122,250,68,176,211,227,85,80,85,6,210,85,2,70,249,98,205,3,25,186,22,173,0,198,211,216,189,121,235,224,191,250,131,238,159,115,161,82,230,171,236,82,130,221,63,200,157,7,189,38,120,201,228,120,74,224,85,86,5,186,199,132,15,220,30,74,232,236,17,20,139,252,133,98,14,46,52,220,250,199,11,80,235,5,49,89,124,32,157,116,241,222,111,181,144,57,64,193,24,206,97,207,176,13,205,88,99,79,197,34,247,137,223,135,230,157,36,173,159,16,26,186,106,167,40,51,140,220,73,232,38,192,62,167,225,85,132,204,25,206, -94,237,125,86,0,84,63,16,110,204,33,213,30,59,140,111,224,109,16,169,119,226,189,139,46,253,216,125,50,233,15,141,30,244,176,236,134,227,168,40,234,241,36,25,242,252,249,192,39,119,34,220,237,254,128,206,13,249,158,155,227,189,172,92,71,128,215,169,176,88,143,45,1,220,107,19,79,58,121,24,65,143,106,166,240,107,154,65,109,195,57,228,89,18,159,40,194,41,173,2,47,221,135,222,68,241,59,124,28,139,81,116,141,112,34,32,146,110,130,254,147,82,215,3,149,128,221,27,178,11,76,76,124,50,137,87,188,131,246,165,243,108,109,42,209,59,129,180,159,76,89,192,147,216,55,60,123,9,254,180,142,36,26,17,214,112,117,230,37,188,102,190,250,148,34,207,98,56,212,185,15,196,250,36,153,16,158,208,235,142,67,74,19,255,42,164,192,220,94,12,160,65,232,220,176,218,135,82,202,21,112,25,20,18,98,102,227,248,150,70,229,148,49,83,46,201,23,1,221,83,237,121,188,42,224,25,190,204,8,62,6,7,46,253,10,229,40,216,62,137,239,101,251,142,26,229, -97,90,127,129,196,34,143,208,53,241,173,67,63,172,75,44,58,204,46,98,33,18,185,150,205,252,12,232,148,120,203,87,255,246,139,132,197,76,133,236,34,80,53,234,204,40,90,229,83,48,215,241,96,184,25,0,210,198,99,17,34,171,225,77,159,119,123,65,87,17,244,237,128,195,2,73,20,229,12,19,137,58,136,198,71,22,131,142,119,188,25,188,72,144,155,201,144,27,121,218,214,64,8,236,62,122,180,31,199,209,77,195,42,254,50,22,224,248,193,59,119,152,7,79,147,125,0,145,53,189,126,11,228,232,99,168,244,143,221,31,113,26,7,176,157,186,63,38,113,159,255,236,254,73,132,221,245,73,210,253,222,20,52,208,195,202,244,30,116,186,255,146,126,204,221,166,116,69,134,95,50,111,97,245,7,58,252,170,223,201,95,23,254,48,124,110,213,43,242,129,133,63,208,215,13,126,92,158,209,239,232,170,6,191,176,119,25,252,162,220,7,245,175,242,131,204,115,79,254,65,237,181,243,92,246,187,234,48,243,89,83,127,93,158,57,221,127,191,205,57,164,147,87,153,245,206, -137,132,30,14,62,67,8,75,166,45,125,135,21,29,148,115,109,228,58,145,116,107,113,251,37,2,192,151,78,195,87,232,3,2,204,224,100,69,187,38,228,245,143,7,121,143,118,120,227,208,43,242,192,56,31,250,131,180,153,241,149,125,160,62,248,98,154,217,240,168,56,11,66,93,211,41,186,66,83,35,162,80,229,55,237,39,227,192,189,197,27,157,36,7,165,85,115,175,111,140,107,41,198,149,137,185,75,242,173,62,43,98,202,243,205,28,78,6,94,80,214,28,15,35,81,164,50,175,28,32,191,177,178,251,200,202,136,50,190,113,178,85,112,178,58,130,38,227,204,126,69,183,56,51,186,27,134,210,187,85,26,93,145,11,0,166,50,226,51,25,143,164,43,186,38,228,28,90,37,206,83,77,164,62,71,124,45,66,161,43,161,168,213,34,249,69,116,109,241,229,248,122,112,60,196,176,46,50,5,92,207,133,229,229,88,209,253,66,52,186,151,61,141,110,44,121,66,190,2,60,7,70,100,139,95,140,53,251,67,32,22,67,102,254,8,168,181,199,238,221,127,20,231,163,180,96, -77,23,177,15,0,224,236,31,132,26,78,251,65,176,54,189,70,22,37,9,238,255,143,64,18,41,67,50,71,18,149,249,99,112,179,196,238,213,221,193,29,123,255,202,160,78,22,117,140,143,102,49,105,36,37,107,63,192,219,152,128,162,87,77,148,144,65,92,221,196,254,124,121,212,253,13,97,162,189,17,199,254,123,129,90,155,218,110,180,110,71,166,49,133,111,226,20,59,28,43,17,203,131,182,77,82,1,241,61,236,98,178,83,243,28,10,73,119,170,81,254,28,166,121,119,40,199,222,191,70,148,35,114,77,148,7,185,200,214,155,208,140,117,46,162,96,105,160,190,164,88,205,123,12,86,14,38,21,94,112,187,114,193,133,67,246,240,254,34,245,49,146,141,3,200,115,193,87,70,4,121,79,12,93,188,45,181,90,45,238,229,97,184,52,113,92,90,162,55,238,13,97,172,140,26,10,49,218,95,57,94,41,192,226,171,213,80,98,51,130,252,143,166,162,72,212,222,115,29,101,37,12,189,2,207,95,59,71,207,39,83,64,24,220,165,126,99,12,112,143,233,105,117,68,52,143, -134,195,123,237,206,84,28,221,253,87,6,248,26,58,78,14,43,247,76,201,33,180,220,157,150,163,187,255,26,177,94,84,115,226,124,50,154,59,212,115,8,172,127,12,69,231,15,122,46,46,79,30,223,84,157,175,15,177,4,146,87,120,53,189,74,220,222,63,55,143,5,232,130,47,236,145,34,114,73,7,239,206,79,96,127,132,233,110,176,27,229,37,240,133,208,207,177,112,175,231,242,178,94,240,242,52,192,113,146,138,107,211,21,186,77,113,186,203,252,251,175,131,227,145,204,55,116,217,109,40,79,172,229,164,158,27,247,154,5,86,120,178,144,115,10,244,20,226,52,216,21,165,202,43,107,154,243,232,188,27,36,159,53,202,160,165,95,196,109,5,13,213,161,132,197,120,43,165,205,154,78,63,227,56,186,246,61,211,245,156,66,223,54,28,202,40,154,79,172,229,68,125,132,36,167,159,144,174,236,28,39,97,70,201,177,75,59,250,106,115,16,29,249,110,55,201,63,27,96,80,162,219,13,231,104,96,190,80,200,192,184,183,166,25,225,38,169,66,251,39,13,252,208,199,104,6, -234,192,79,117,195,129,27,36,58,207,41,59,220,25,221,235,44,6,166,231,184,148,39,19,7,192,229,7,170,208,21,69,222,249,42,142,89,144,51,61,53,194,181,133,145,236,135,134,167,240,140,98,190,103,106,234,246,97,138,249,217,32,36,158,71,105,54,169,74,194,196,180,30,192,112,115,30,206,180,188,138,205,4,116,143,189,2,62,97,29,3,95,196,10,54,62,230,210,74,18,86,13,119,182,183,55,119,40,184,67,197,20,82,102,237,216,237,99,148,18,22,77,109,114,132,193,141,159,8,217,26,58,7,93,31,94,81,208,34,255,106,75,14,237,38,126,159,208,132,31,48,165,12,38,49,129,147,183,179,28,50,203,113,134,81,35,184,189,105,67,115,180,254,36,25,254,40,165,47,153,209,205,182,94,38,110,56,45,129,40,71,19,206,29,104,8,230,244,122,10,131,120,97,115,105,75,101,49,16,53,103,35,148,50,75,22,155,248,49,39,90,241,241,88,74,82,74,105,152,112,172,75,6,81,10,201,97,26,235,247,197,152,202,38,14,41,4,116,197,140,133,73,105,21,188,165, -142,135,44,208,189,177,168,196,216,146,92,132,174,6,85,243,46,200,237,128,188,243,44,110,40,100,47,217,195,2,87,176,178,138,28,201,206,179,91,194,108,187,44,66,46,112,90,38,152,42,66,209,12,38,79,137,125,208,35,140,163,140,33,116,237,187,249,101,175,88,6,251,57,74,159,33,179,173,45,129,101,65,56,58,2,201,224,217,179,216,210,138,239,208,96,39,45,58,123,206,217,176,204,212,115,150,171,3,164,187,76,98,50,202,225,60,144,181,9,13,131,214,106,173,90,133,161,43,118,53,206,229,109,161,2,173,145,159,114,147,119,206,98,50,195,87,237,235,239,135,215,209,59,148,149,57,146,63,51,176,41,214,160,1,192,250,222,68,86,187,197,15,141,79,24,188,27,206,89,46,59,49,5,230,211,70,119,101,223,9,197,59,37,50,135,77,46,189,120,61,38,73,49,155,58,233,82,129,56,204,10,38,171,50,255,209,16,245,249,136,130,39,109,69,12,130,0,48,88,3,27,205,189,185,82,182,65,19,158,131,119,204,154,113,153,149,20,167,91,174,62,196,101,109,172,42, -38,147,46,127,144,163,95,123,65,193,62,10,187,112,62,20,234,13,217,139,154,97,182,26,228,126,242,76,66,50,54,227,109,241,92,242,175,48,72,153,227,145,251,36,107,185,52,4,107,79,206,126,246,7,209,172,22,247,233,9,73,48,152,204,2,148,65,42,148,12,61,202,230,178,152,6,198,103,194,121,231,6,209,21,28,127,97,223,136,252,85,198,212,52,186,18,116,44,82,5,8,169,184,201,188,221,178,111,149,126,31,20,88,83,143,64,65,235,42,132,150,13,21,250,202,18,70,247,207,56,124,247,255,245,168,112,179,219,19,65,178,214,196,71,41,246,73,85,163,65,10,28,185,84,75,8,90,37,183,33,188,193,196,90,170,80,238,235,7,206,126,130,157,27,240,214,251,241,72,70,248,52,0,88,20,107,58,144,148,1,163,101,49,166,105,44,196,26,41,2,36,169,184,38,32,49,223,37,109,120,13,215,128,74,30,39,36,49,198,152,84,193,233,254,176,223,253,1,35,91,187,63,252,179,251,3,204,159,38,175,130,173,69,166,115,96,120,175,47,171,2,202,233,235,89,63, -193,194,43,18,236,27,206,41,129,217,156,73,214,157,18,75,9,200,216,95,75,38,143,194,90,180,160,156,209,211,208,141,111,29,78,192,212,70,92,115,41,251,181,153,106,115,107,138,216,132,83,76,56,200,223,164,188,149,178,128,18,46,23,20,133,145,198,167,159,32,87,156,33,131,9,4,227,170,251,44,254,105,10,35,10,97,108,151,214,91,16,64,105,52,44,186,201,85,147,75,109,120,251,113,17,116,80,35,189,91,222,131,164,123,51,94,81,27,193,12,2,72,107,161,202,65,131,4,227,83,10,236,59,130,54,49,220,125,207,19,85,23,111,115,10,39,181,24,53,111,58,12,170,199,129,17,230,85,81,18,220,121,46,233,6,55,166,150,119,0,138,151,130,202,244,124,14,96,196,60,52,103,76,152,27,32,178,245,170,211,144,160,176,114,64,153,99,22,16,228,53,134,41,233,131,177,58,105,107,89,233,92,41,33,76,25,111,117,178,190,114,141,185,89,88,83,135,38,108,84,127,112,171,242,17,82,242,15,85,13,129,108,32,221,117,78,181,163,210,215,235,157,207,81,166,215, -66,166,221,40,213,232,122,81,132,228,128,163,199,252,88,24,231,148,14,90,189,161,83,73,230,172,113,139,229,212,242,249,90,121,133,104,151,245,178,208,210,13,132,89,232,161,132,192,31,240,241,134,193,147,152,187,133,103,105,84,225,203,194,42,87,167,38,186,183,0,191,57,229,188,128,26,105,56,100,133,171,98,49,128,83,110,104,214,169,80,194,134,52,2,74,77,65,102,214,192,104,15,29,233,8,176,214,182,244,204,224,71,130,198,114,66,35,102,255,148,50,163,153,210,216,42,50,190,240,195,242,55,149,242,162,9,164,188,41,99,228,135,254,8,9,210,72,43,60,205,28,98,124,254,233,22,123,158,122,171,89,172,251,126,174,197,26,159,47,188,216,153,197,140,207,135,209,205,33,87,78,92,96,129,153,225,17,104,146,40,215,212,13,122,66,87,78,201,234,51,206,190,15,73,228,124,48,201,234,159,65,238,110,252,151,180,157,119,63,118,63,42,197,116,253,111,185,185,55,214,64,154,133,63,5,150,173,203,82,145,34,23,11,34,215,147,118,82,37,182,130,248,204,236,46,186, -9,57,199,240,40,242,0,106,172,84,36,210,221,169,39,80,238,149,229,36,61,199,155,196,156,11,40,251,210,9,252,129,64,127,13,98,72,217,30,37,173,67,174,119,102,250,87,101,253,157,13,185,169,230,163,83,88,42,165,227,194,92,187,132,176,71,181,137,100,106,141,119,221,241,2,244,129,186,150,194,107,24,133,221,245,15,34,134,147,105,50,234,161,76,80,200,91,197,181,142,196,251,84,132,9,34,41,75,192,157,93,185,130,238,194,98,48,116,44,107,35,133,148,148,135,117,80,110,1,58,220,216,79,101,138,185,1,168,140,50,83,85,170,51,184,0,128,131,8,107,205,69,50,167,116,198,135,197,96,18,176,30,34,39,198,186,86,86,55,232,157,31,82,246,5,49,24,8,232,154,171,5,93,5,36,51,115,250,35,100,205,236,209,49,91,141,65,128,204,76,163,124,58,118,127,159,192,233,214,79,243,137,148,173,172,13,63,123,235,224,191,118,115,173,217,157,229,68,83,201,127,113,17,49,124,2,135,53,39,3,203,144,160,242,126,69,212,15,232,151,137,46,3,14,71,216, -192,207,196,43,66,17,23,245,195,211,204,3,173,124,77,230,250,157,14,22,250,158,234,85,25,201,222,6,206,133,81,79,10,109,111,148,149,76,164,77,46,105,109,206,87,153,229,55,56,71,157,78,59,56,49,46,77,224,140,29,241,176,128,239,104,12,27,57,99,181,149,184,248,21,100,132,149,97,66,117,182,28,30,128,98,11,181,182,26,42,75,145,159,104,70,226,135,58,231,34,119,182,182,20,108,90,143,139,144,49,144,67,121,171,112,97,137,29,76,156,116,249,39,252,34,203,76,253,192,169,234,196,2,158,103,104,122,49,86,156,187,175,145,186,127,150,249,73,74,183,86,238,106,244,82,43,73,183,57,170,49,66,110,19,151,129,195,123,110,113,184,20,219,223,41,72,212,198,38,59,13,127,167,119,50,235,19,221,239,128,209,137,184,251,157,186,160,12,133,64,77,119,173,22,8,101,255,245,161,103,80,197,175,64,254,203,82,150,238,163,46,20,253,28,153,52,139,80,213,91,242,174,232,44,27,64,85,16,158,78,103,11,3,169,208,124,65,42,171,5,15,38,130,121,232,197, -128,194,106,45,42,104,126,183,44,85,102,101,47,120,88,100,198,90,73,250,217,251,166,114,210,96,217,192,240,131,144,9,6,169,222,55,48,226,33,94,224,255,124,121,228,52,164,194,231,234,132,245,100,229,78,166,38,81,210,242,109,62,147,82,246,24,254,160,220,251,111,51,81,248,205,154,153,88,147,10,130,195,223,213,23,65,180,244,141,130,40,29,147,207,78,193,220,223,3,132,188,147,98,113,16,69,99,93,192,22,239,56,160,27,58,134,6,185,15,96,177,34,198,19,70,26,15,252,197,108,44,149,206,9,71,201,105,255,253,65,206,198,149,97,245,82,121,91,195,55,186,194,99,126,249,5,110,84,33,152,157,139,244,169,155,186,221,6,137,191,84,132,1,41,23,116,150,37,175,99,101,199,83,141,68,44,114,151,90,191,213,211,120,203,181,212,245,39,133,220,187,102,255,26,52,231,34,101,129,3,221,215,216,248,47,175,33,163,222,255,17,65,215,184,224,166,205,124,160,198,88,255,120,162,250,154,41,230,50,52,231,213,94,140,37,243,7,185,117,91,53,122,19,186,51,180, -153,159,17,36,42,14,133,65,34,47,93,103,128,68,177,68,154,77,131,138,132,144,87,85,6,138,10,174,167,198,144,253,207,34,193,23,145,231,15,110,167,75,163,53,137,142,187,178,108,25,162,139,17,190,85,215,100,40,124,207,112,103,192,196,189,171,154,156,209,153,149,79,195,91,219,4,167,144,43,41,12,211,87,112,148,208,136,190,240,22,80,169,103,217,93,84,215,53,201,240,127,38,34,246,197,60,107,180,251,34,89,204,76,243,161,117,159,60,176,106,99,180,146,69,115,63,85,22,213,188,205,185,104,180,215,219,80,91,239,141,212,214,202,239,109,134,143,3,143,207,1,77,65,144,47,78,92,244,123,196,227,203,234,102,144,115,253,36,59,78,166,119,170,229,200,172,218,84,214,36,49,130,173,212,85,245,233,47,186,78,252,81,150,242,158,98,225,216,198,84,24,6,190,39,112,96,122,113,105,19,50,134,41,251,96,167,101,123,100,42,146,84,27,236,20,111,203,231,20,111,224,109,158,240,124,148,213,8,220,107,14,168,131,253,33,150,216,20,191,79,252,152,235,209,43,9, -7,237,42,166,124,193,94,178,212,1,28,255,77,137,148,92,135,6,152,9,116,242,42,89,185,210,229,77,167,114,237,213,84,108,26,207,10,94,149,216,217,132,238,37,89,79,86,30,188,217,236,24,201,121,212,85,199,244,138,255,155,169,253,215,138,105,162,126,22,219,0,230,106,129,246,227,52,91,139,231,39,125,55,166,48,77,19,218,51,118,3,79,198,182,27,102,157,63,49,16,169,255,65,134,55,159,167,32,11,142,86,33,0,201,110,43,238,55,121,28,44,174,128,63,43,68,28,139,95,150,234,151,151,174,124,47,206,25,144,137,26,148,83,32,230,121,76,136,97,143,238,173,54,185,36,19,63,37,119,92,4,153,220,168,88,208,28,228,119,164,235,136,242,157,187,168,24,37,232,27,12,114,254,6,176,234,226,238,79,100,153,0,109,45,172,146,130,107,57,36,120,94,65,228,93,201,157,48,116,139,206,7,134,87,44,104,39,160,92,164,232,167,50,215,213,47,55,78,205,82,50,252,34,240,19,144,163,78,34,101,178,101,183,245,144,108,249,169,251,14,147,252,163,157,62,25, -250,227,204,49,6,228,41,254,130,41,216,19,104,126,36,116,188,86,147,216,112,222,92,208,165,102,16,96,245,48,246,99,33,51,244,80,184,99,153,243,86,122,255,222,31,200,23,220,16,103,182,6,117,203,29,152,185,73,205,26,44,34,206,37,168,119,232,75,32,209,40,187,172,81,36,173,28,62,24,116,243,34,214,214,64,207,76,242,103,26,233,198,7,6,211,19,186,172,17,205,81,24,157,44,139,133,39,212,241,103,195,69,47,63,252,52,100,72,16,124,58,108,200,185,217,208,193,132,177,58,108,176,131,202,93,48,36,238,57,49,202,118,152,92,68,27,102,136,55,48,87,152,10,191,3,246,88,144,23,243,118,231,148,178,212,159,173,128,5,119,115,25,82,220,55,214,66,74,39,59,169,212,148,247,149,245,95,85,35,145,231,16,112,55,44,57,169,175,11,41,108,110,140,225,32,83,36,124,131,66,12,155,221,221,44,242,24,14,134,28,210,107,174,147,14,148,60,173,79,93,72,246,125,9,38,210,4,71,47,97,181,119,179,206,103,126,188,216,66,7,216,112,158,149,26,13, -62,207,82,207,98,113,61,231,34,165,23,144,100,101,218,237,221,79,180,52,149,109,89,27,77,243,154,225,5,154,87,209,223,214,175,77,224,178,94,86,30,96,119,3,152,19,241,126,222,237,28,66,147,2,116,152,241,206,1,28,150,189,22,128,141,49,120,125,184,204,52,100,212,222,4,246,249,93,152,222,15,72,207,21,62,119,203,99,140,38,250,12,206,139,92,28,137,156,113,238,100,226,120,19,126,99,249,56,175,102,140,11,111,43,157,230,135,162,255,46,243,147,177,87,38,38,226,215,117,148,166,160,53,7,182,114,163,69,79,237,115,224,108,186,39,139,110,186,159,188,163,218,221,41,26,239,105,191,77,210,210,26,144,105,85,79,199,66,98,57,91,118,129,198,22,216,151,178,206,238,60,6,94,84,73,10,203,104,234,29,154,9,75,228,194,87,222,169,228,238,136,106,95,62,68,183,214,166,44,93,46,29,104,151,25,26,170,18,157,117,100,40,27,56,12,108,126,105,75,191,123,210,57,69,61,115,78,158,174,125,200,74,235,57,204,42,233,225,71,94,206,159,147,253,199,220, -73,136,161,218,44,199,142,92,180,51,24,193,40,252,253,134,67,211,226,107,68,86,21,138,67,213,130,55,79,180,184,91,245,9,147,24,211,195,179,133,166,188,60,249,229,64,106,241,111,169,4,223,167,91,211,39,99,73,243,144,215,225,239,19,31,22,140,226,58,172,51,235,163,177,214,93,255,155,130,107,99,141,204,31,243,192,170,2,210,171,96,49,85,168,254,140,75,41,185,71,96,67,250,219,52,224,206,71,204,54,110,58,115,172,170,235,163,59,225,96,115,28,127,166,155,25,67,149,121,215,101,72,126,141,170,199,166,25,222,238,246,201,162,203,254,124,210,140,224,202,192,3,23,125,131,168,163,238,119,89,25,41,60,48,78,209,247,1,118,230,89,52,190,28,179,213,174,232,107,183,8,120,180,135,130,132,81,230,241,48,115,75,218,190,171,118,107,213,158,16,28,161,200,101,184,140,67,177,30,229,234,110,166,239,186,108,85,229,5,213,88,139,121,157,112,55,243,46,25,76,63,37,238,94,192,10,230,66,158,162,114,58,97,229,145,208,192,56,75,242,212,14,37,67,89,99, -16,121,62,186,72,6,20,149,136,14,238,234,175,155,249,161,102,140,183,74,124,151,215,111,57,88,239,237,90,45,140,214,84,169,88,11,65,198,81,54,28,214,136,146,242,167,25,111,169,91,30,59,63,66,94,167,27,196,217,165,82,222,9,226,25,187,44,166,20,148,25,102,41,73,241,30,20,37,51,193,146,6,167,230,81,111,157,91,65,62,131,116,111,234,41,247,119,56,189,78,38,1,207,131,93,33,19,29,137,6,34,95,72,213,145,7,208,165,140,247,100,111,73,188,123,194,27,37,79,10,233,134,139,38,127,48,154,36,232,68,239,39,48,91,25,178,64,34,62,70,41,176,47,26,241,105,63,148,140,126,63,72,162,38,251,184,203,73,160,111,189,11,79,117,4,54,94,170,140,38,65,138,185,119,11,225,12,134,65,213,55,82,115,109,56,100,32,147,83,34,194,243,157,238,95,187,127,117,90,228,6,55,193,36,95,166,213,210,232,7,129,191,254,241,101,105,233,83,168,80,145,124,247,1,209,44,70,140,227,149,15,134,154,113,165,68,140,240,80,17,9,193,148,50,189,203, -210,231,234,8,109,160,8,77,19,81,107,69,192,98,32,45,9,130,125,207,187,75,16,208,165,163,6,129,31,162,56,177,78,89,143,114,73,128,239,12,24,139,202,105,188,230,76,88,203,45,188,108,61,98,83,114,249,27,13,204,105,145,57,6,171,83,199,228,95,205,183,173,122,118,41,181,119,44,188,166,204,230,102,109,251,105,91,212,138,149,169,20,88,139,130,202,48,92,240,184,168,2,159,83,58,89,239,15,168,234,223,196,173,2,66,165,43,184,57,215,126,20,122,226,189,142,66,184,187,69,173,132,5,233,53,26,7,25,156,224,46,217,55,95,203,86,27,168,219,186,129,159,222,202,131,152,68,0,14,152,96,201,136,99,126,35,56,0,229,233,154,203,210,211,224,19,153,126,71,183,105,244,6,177,86,95,101,214,198,178,2,5,167,225,228,150,130,32,223,71,223,67,57,75,93,148,47,187,177,234,30,12,51,0,104,95,127,11,4,156,240,78,143,64,236,255,158,82,223,192,159,122,55,145,223,230,116,85,37,48,155,225,181,242,170,242,213,43,105,149,27,212,189,40,152,26, -167,170,142,129,3,51,253,104,221,11,75,149,250,88,201,225,225,44,197,231,32,223,98,169,173,72,254,203,52,119,91,192,141,98,68,232,152,39,167,151,165,222,200,20,146,76,78,68,4,135,50,163,5,37,110,17,100,119,211,202,198,42,110,253,208,152,83,19,198,133,139,175,146,173,118,96,222,43,112,136,76,141,104,105,253,217,194,87,93,195,73,234,229,138,44,229,5,112,218,63,232,194,199,113,166,89,2,209,44,197,38,221,109,83,140,184,72,96,94,253,212,204,232,16,195,86,11,110,117,54,142,36,10,128,254,73,205,82,95,147,131,110,236,113,194,207,94,32,70,181,228,208,217,1,253,249,117,205,135,29,189,234,68,118,99,134,217,214,184,143,132,141,163,91,142,48,113,235,210,154,22,240,245,41,28,22,127,30,71,87,240,209,91,135,127,90,15,171,25,9,2,43,188,212,209,103,106,144,227,219,121,18,153,22,163,197,147,81,1,90,111,157,32,186,34,7,109,181,77,223,232,12,16,102,56,153,25,74,86,108,193,154,125,79,112,226,166,65,218,93,199,252,159,233,237,216, -234,133,137,137,178,143,11,61,216,189,194,120,133,84,133,157,83,154,170,201,140,3,183,79,150,2,60,114,166,44,117,31,189,239,153,125,101,235,205,98,59,223,152,1,97,58,132,239,142,245,211,213,19,78,30,245,37,228,24,158,194,122,141,115,227,229,51,3,163,79,160,232,91,1,241,126,154,184,87,163,189,37,223,175,29,144,61,202,141,235,95,251,30,74,59,70,42,119,202,99,167,97,107,149,83,222,3,196,158,71,177,255,1,141,220,65,169,111,91,147,91,10,52,141,41,109,159,217,224,211,225,229,31,171,66,76,30,176,195,106,56,56,17,26,23,87,7,206,59,5,207,255,46,7,158,42,186,187,182,224,124,46,224,84,17,206,146,160,169,233,165,147,79,26,97,57,210,166,197,135,90,242,82,228,21,18,139,47,57,111,86,125,236,148,160,54,27,96,49,169,96,42,145,133,174,243,96,246,90,168,240,117,119,208,169,82,106,109,92,174,70,179,69,11,37,44,56,92,191,146,153,46,131,31,220,237,186,108,91,79,164,55,130,18,184,144,195,112,150,128,132,135,16,222,21,187, -253,228,180,164,194,238,152,221,25,137,59,51,251,234,23,248,144,78,136,85,252,46,183,37,173,105,179,22,160,35,11,123,190,59,66,234,87,113,115,170,18,53,141,165,127,98,252,86,226,100,73,104,91,184,253,29,238,191,170,125,132,59,168,250,128,168,119,54,172,140,250,235,83,245,124,183,87,159,77,62,206,84,131,123,36,32,215,7,201,23,32,37,103,16,254,74,196,100,133,157,207,41,43,175,8,168,119,15,164,207,39,49,207,0,209,231,21,153,117,238,172,123,39,55,207,0,219,39,20,156,235,193,232,143,41,61,215,216,255,223,196,103,59,53,125,65,50,244,167,196,242,93,8,209,26,230,95,138,36,93,227,204,248,132,162,244,252,23,46,161,205,127,103,142,0,56,186,208,202,178,122,80,8,156,130,79,89,88,94,114,174,152,216,239,206,166,154,183,123,215,12,222,51,244,12,158,80,94,217,176,94,243,150,222,207,179,136,162,110,161,52,147,101,246,221,75,78,232,94,153,37,30,246,99,52,26,79,80,60,151,73,225,7,145,114,180,231,251,194,176,31,76,60,193,89,94, -240,70,145,136,234,56,251,214,184,252,69,10,87,159,201,47,242,217,98,150,116,172,161,165,112,176,122,229,130,142,74,1,155,77,153,135,67,167,231,206,193,100,74,89,211,122,226,237,49,112,84,171,118,86,131,57,217,42,124,213,104,150,152,249,103,208,57,236,252,226,233,249,209,63,15,167,31,42,115,88,9,92,147,181,209,149,62,215,2,231,59,97,93,50,212,214,148,230,86,125,170,87,137,208,236,201,171,106,31,178,111,236,146,136,161,210,236,247,18,51,49,206,108,101,168,161,52,204,212,227,151,133,159,139,104,124,47,177,147,19,12,150,198,12,246,54,7,94,202,50,192,39,198,202,147,40,77,49,16,253,30,34,166,71,83,91,33,110,100,135,95,18,122,158,99,189,143,229,177,83,233,81,60,23,218,122,179,251,171,180,102,1,0,81,76,248,52,135,82,175,212,116,6,195,252,132,24,253,245,139,198,232,181,177,33,150,194,39,103,109,168,199,43,203,232,156,181,147,63,33,62,75,232,204,0,38,171,159,42,140,131,232,249,60,251,245,115,48,147,3,129,78,117,139,18,95, -21,215,158,139,226,242,133,110,103,83,157,33,184,244,105,246,194,155,135,232,102,136,63,198,151,60,177,245,143,167,131,1,186,169,114,58,175,242,136,134,51,229,103,193,225,175,95,32,14,245,41,186,4,6,237,39,241,151,135,63,169,62,254,243,254,137,91,69,253,241,245,143,206,135,40,194,196,248,111,170,208,229,40,174,204,238,252,177,0,4,245,39,1,85,194,227,28,151,216,3,21,62,138,98,89,62,55,26,97,254,253,84,112,241,49,207,31,200,80,136,68,219,212,18,85,99,111,0,19,97,183,101,25,62,42,77,22,92,25,151,204,15,50,1,64,174,73,125,129,240,11,214,114,239,33,1,149,212,220,63,0,5,173,68,17,223,249,28,138,248,61,36,160,156,38,254,7,32,158,47,214,86,112,15,105,167,104,44,248,3,144,207,23,108,206,88,150,128,62,183,246,107,80,215,12,69,248,75,37,178,175,70,63,255,245,27,201,125,35,185,207,101,103,89,140,232,238,141,161,229,171,58,68,191,98,83,208,23,68,102,101,91,144,38,178,55,95,1,71,187,247,214,170,10,7,24, -114,40,101,23,22,211,233,210,234,244,82,254,96,30,175,23,157,232,64,86,123,50,253,118,36,203,118,142,40,27,132,44,72,89,114,236,129,85,178,47,146,225,108,126,23,235,60,239,199,64,38,119,183,90,183,151,68,193,4,41,148,6,186,235,229,44,231,113,165,203,64,24,206,74,132,141,204,245,77,251,136,125,18,188,124,138,229,172,0,67,40,125,202,133,157,27,252,214,190,176,210,7,139,44,137,248,93,121,57,42,200,255,78,40,43,241,123,129,184,235,253,34,125,45,57,157,140,192,28,23,156,207,79,241,9,246,247,250,1,75,150,209,124,20,214,50,24,12,52,235,32,159,177,6,214,254,237,97,18,82,125,142,216,86,179,134,28,39,235,93,246,90,0,47,118,77,143,184,231,25,221,34,241,174,73,143,187,172,176,26,176,249,193,36,96,191,198,18,226,28,241,190,47,132,151,56,62,205,66,2,3,207,71,44,64,229,115,162,114,167,239,38,34,87,104,79,101,202,133,239,179,226,45,42,169,58,166,188,233,7,254,120,12,19,197,3,175,119,107,172,19,79,218,192,31,249, -233,29,113,163,2,56,238,128,102,114,37,234,191,145,205,210,100,67,19,189,35,218,169,205,39,85,190,71,11,179,212,20,51,53,87,97,230,149,207,239,50,113,119,70,187,219,252,187,202,60,54,202,193,86,49,98,130,29,34,154,211,135,229,248,179,41,91,138,98,22,39,155,147,254,43,223,75,135,149,46,229,207,5,222,71,76,145,20,207,205,57,113,190,108,42,57,56,116,175,5,229,133,21,9,85,106,196,185,213,116,75,95,57,250,230,233,16,36,238,15,245,208,162,188,49,204,9,52,146,15,27,253,247,77,7,127,220,218,111,159,63,72,160,221,37,76,23,240,138,158,170,240,45,21,57,134,172,161,172,182,189,112,227,119,137,177,152,28,159,201,152,44,82,121,44,198,192,195,48,65,213,134,179,207,164,45,31,81,185,9,76,125,23,203,84,190,178,246,58,25,113,160,121,2,243,158,29,118,38,213,128,59,135,226,215,23,91,246,89,145,136,204,11,157,31,114,199,179,158,65,85,192,205,133,17,82,56,179,193,124,12,114,101,180,83,128,239,205,48,2,136,86,130,115,54,67, -157,153,88,237,217,36,8,10,179,88,38,132,166,56,97,148,2,96,37,18,189,217,212,177,54,44,149,87,192,163,95,62,134,143,110,197,74,224,57,59,255,231,170,3,98,167,110,135,44,218,105,198,126,64,192,44,193,215,246,113,4,202,163,74,189,125,26,72,254,193,88,91,109,92,126,227,109,86,10,178,50,56,146,118,234,48,184,185,194,70,251,113,20,4,166,58,184,122,78,208,253,45,94,140,238,188,5,233,213,171,65,175,22,181,48,3,105,179,148,244,83,169,101,164,178,41,226,197,106,9,61,225,120,88,97,3,180,177,132,96,137,77,148,98,140,21,87,100,13,215,140,214,140,106,215,74,17,161,134,185,189,144,49,40,210,88,140,218,216,84,5,2,43,247,82,157,3,51,195,40,37,247,245,161,71,149,38,196,96,152,177,203,25,88,135,48,101,61,207,169,44,210,66,100,69,147,122,49,134,153,250,181,126,153,143,190,205,190,187,99,178,253,106,216,238,183,109,243,245,108,155,123,119,118,125,53,219,122,245,132,127,51,244,167,168,22,127,96,122,191,255,68,178,34,229,165, -144,204,139,172,100,57,3,217,148,203,249,82,96,82,54,245,70,220,228,143,201,28,38,127,187,173,14,149,95,22,48,171,157,252,202,103,126,27,102,9,169,50,233,247,89,20,163,251,128,63,26,9,207,71,207,2,131,82,97,175,224,142,212,154,51,219,239,165,56,221,204,201,213,120,45,144,77,94,26,220,151,204,41,149,155,240,170,169,47,177,232,206,119,10,139,38,223,29,168,139,26,125,115,35,207,26,54,163,79,61,113,114,22,195,18,104,115,229,49,79,175,129,119,249,158,56,152,196,73,20,119,27,4,42,124,113,52,114,175,68,247,207,197,226,156,244,248,173,67,63,172,200,200,119,184,48,90,172,227,228,17,99,169,213,161,6,7,224,71,147,68,32,79,79,216,37,70,129,135,218,109,56,23,145,35,136,69,3,14,100,27,78,156,129,165,217,220,43,174,160,7,192,199,15,104,14,242,74,8,144,2,60,218,108,150,21,75,93,148,124,159,198,238,77,206,207,41,207,39,240,245,91,250,168,2,14,217,243,185,206,217,165,197,110,13,117,156,155,172,27,1,39,94,50,22,125, -127,224,27,142,60,89,45,6,164,229,208,147,214,133,9,156,136,88,50,101,60,137,225,75,76,201,130,133,78,83,247,29,238,23,190,47,236,174,39,195,40,77,100,7,0,241,4,55,129,49,222,235,31,9,79,152,28,197,233,185,253,119,92,235,220,105,36,19,172,222,204,216,226,123,57,235,253,198,13,202,114,110,140,213,83,177,83,171,128,136,208,209,130,95,174,184,205,178,8,127,5,51,231,252,46,223,80,191,48,234,63,51,222,231,182,95,63,119,147,3,172,216,158,255,162,156,32,178,86,165,97,80,31,74,239,43,235,230,10,172,68,169,234,139,232,172,65,25,206,0,160,92,119,244,13,215,148,183,106,43,56,220,250,199,131,220,251,234,226,48,125,89,193,34,235,111,37,176,123,42,196,248,254,193,175,47,211,234,250,169,92,176,147,2,33,59,13,6,170,89,216,213,74,147,11,130,22,6,204,6,91,210,165,246,232,42,140,98,241,2,143,206,169,7,119,101,153,150,188,127,63,78,181,80,203,135,6,192,10,146,120,58,99,69,155,13,231,21,21,73,234,99,89,170,172,228, -9,127,40,43,158,210,199,126,56,158,164,200,13,216,255,194,31,141,163,24,4,28,206,202,149,164,160,63,245,185,36,170,42,175,124,141,126,240,26,87,36,85,1,143,57,118,123,34,120,18,189,71,247,15,246,26,197,178,58,34,76,38,32,149,169,82,174,217,128,218,213,3,40,97,50,98,190,162,186,104,210,141,16,42,128,126,146,198,62,252,193,138,157,49,139,192,197,244,192,9,138,9,126,165,35,255,175,84,139,11,13,245,8,143,149,184,185,206,135,246,147,200,138,248,146,206,97,124,213,24,184,65,34,238,204,41,119,54,31,200,205,117,233,12,122,88,241,135,143,131,140,224,4,136,217,22,7,30,203,65,95,177,29,178,121,22,114,19,222,253,245,158,69,31,176,56,170,186,102,230,239,37,96,68,214,14,126,32,203,221,49,99,34,186,207,248,163,113,15,21,87,42,39,139,129,247,254,64,182,92,115,232,238,1,155,89,196,102,195,85,177,202,242,121,153,231,16,229,82,231,56,141,188,154,178,54,135,87,226,188,219,171,56,207,58,114,181,193,159,14,2,191,255,174,218,136, -65,164,120,19,197,239,144,95,243,89,67,153,29,115,192,39,131,93,40,222,167,200,231,211,8,235,105,141,249,93,38,213,94,69,17,242,252,40,40,148,150,235,71,160,43,198,228,88,168,78,158,113,52,134,246,178,14,124,63,136,18,62,77,184,111,244,37,236,191,99,162,40,33,156,142,50,148,42,168,96,60,114,226,27,1,83,107,232,2,245,221,71,143,14,176,67,153,250,145,25,239,36,36,147,65,181,45,104,73,16,95,142,45,240,61,10,175,163,119,34,41,161,2,37,22,2,12,22,0,167,245,241,186,9,136,99,56,122,1,26,75,241,2,16,47,14,220,49,208,156,245,0,67,217,67,90,4,248,163,98,222,79,121,68,129,202,129,174,107,61,134,36,87,103,167,69,208,21,1,52,161,63,40,9,133,178,214,80,210,245,13,222,201,55,72,49,176,7,5,150,216,204,232,137,37,137,73,8,4,5,219,36,16,64,20,114,174,36,27,243,72,122,99,72,130,32,147,53,125,59,77,26,188,208,172,36,3,0,57,169,36,147,62,16,122,130,158,177,141,73,50,129,49,110,157,219, -104,66,230,111,73,240,210,44,158,245,87,203,108,88,137,129,252,202,44,88,144,31,16,168,208,75,54,135,144,90,107,204,163,16,151,153,3,209,210,186,69,126,234,243,75,21,170,248,162,86,14,202,75,156,115,35,206,132,54,86,0,172,132,248,209,0,78,144,91,178,72,162,90,220,167,75,6,4,61,139,168,165,25,54,29,46,68,91,151,240,252,193,60,40,153,115,59,63,139,250,19,107,94,49,220,204,239,196,109,47,194,72,52,222,91,3,252,22,89,48,90,230,120,91,171,163,149,11,247,210,213,12,239,75,221,84,178,249,107,223,117,126,17,183,138,5,184,88,228,35,188,194,159,0,12,4,145,109,44,169,182,208,32,158,8,125,145,20,250,117,26,116,151,131,48,67,155,6,137,203,28,231,150,141,181,166,224,61,118,19,89,157,20,185,124,230,71,110,78,11,235,199,70,206,212,242,12,10,39,137,72,201,18,205,80,201,115,131,149,108,148,28,106,86,176,77,172,16,94,217,68,45,214,130,69,39,139,9,160,121,67,33,162,60,145,244,69,232,185,72,69,184,12,134,119,68, -103,182,174,17,13,162,211,41,30,219,220,158,55,36,107,187,44,17,44,169,187,189,130,209,11,59,101,30,133,125,96,8,198,69,141,253,136,175,83,69,193,232,113,67,235,213,59,14,206,74,147,124,81,164,161,59,207,166,35,54,64,187,39,190,29,186,215,254,149,186,152,141,163,201,21,27,214,61,223,13,162,43,121,65,114,225,246,156,6,222,135,12,253,65,218,253,11,252,185,134,116,97,83,154,97,210,82,136,198,33,229,44,141,114,192,198,12,167,249,173,235,136,150,187,208,168,45,120,153,38,46,207,55,153,5,156,102,75,243,153,81,142,88,61,44,148,37,214,91,86,247,71,196,188,49,67,213,110,26,234,78,17,59,75,152,171,66,255,238,105,63,87,101,90,4,254,21,5,73,1,225,113,176,146,220,8,147,49,94,206,141,69,40,111,0,37,105,147,205,79,90,161,18,127,228,7,110,156,221,246,91,125,41,237,180,93,28,255,179,145,181,5,228,101,51,145,250,102,182,145,104,177,201,214,17,32,142,146,202,169,214,82,202,153,74,97,30,85,199,209,156,210,76,37,63,48, -146,248,155,156,181,161,27,52,136,48,233,24,151,170,2,194,202,79,65,122,160,216,121,197,136,177,139,38,211,218,141,15,194,70,8,191,34,53,14,65,246,19,225,52,78,168,76,202,134,188,96,113,106,159,82,59,162,150,173,157,172,8,180,34,219,253,71,21,31,146,34,108,118,211,206,198,238,200,144,30,104,218,205,44,102,79,42,206,116,28,77,89,245,89,246,29,247,73,23,190,250,12,63,185,60,62,70,160,132,17,74,79,67,71,188,247,147,250,241,124,139,66,165,174,172,146,65,38,7,15,20,26,141,171,135,37,160,179,204,253,230,1,58,140,7,47,34,79,152,203,49,8,254,128,204,20,217,103,133,186,25,90,57,231,248,192,32,176,8,92,203,57,140,160,174,12,16,153,122,110,124,53,238,170,26,236,103,88,71,30,152,8,172,220,240,26,237,5,81,255,29,222,222,178,99,137,189,144,140,115,80,104,69,22,38,172,133,18,184,9,177,153,94,244,158,208,165,140,13,190,62,65,169,124,61,178,86,180,57,160,57,205,39,126,37,211,125,72,77,13,237,18,20,49,248,127, -19,80,215,208,57,143,230,185,225,156,98,77,59,105,93,209,251,115,72,218,89,34,215,226,249,9,140,113,11,156,177,1,7,78,4,84,228,134,242,224,70,147,135,23,209,21,78,40,148,139,222,40,186,86,96,200,24,254,85,4,83,197,72,222,72,50,194,202,178,83,255,152,89,160,241,127,167,126,241,249,234,128,205,38,250,85,7,25,125,35,185,165,73,14,175,24,24,20,12,182,185,238,78,42,169,225,23,63,8,10,228,96,24,234,112,186,106,169,100,180,176,230,206,88,250,78,129,207,189,218,119,10,89,132,113,78,219,54,78,106,173,100,103,230,46,137,184,149,26,223,142,128,140,128,206,104,250,207,162,248,198,141,189,242,174,170,3,133,188,255,129,173,86,237,212,198,105,52,158,126,58,84,234,62,97,52,200,221,72,162,2,68,210,250,124,221,160,124,92,238,67,19,210,69,140,134,49,216,0,68,254,90,82,165,59,149,238,119,128,164,56,26,199,40,213,117,191,147,226,43,221,148,208,14,65,123,0,232,255,198,253,0,167,107,80,102,131,13,103,63,107,207,136,15,41,211, -3,12,64,187,58,211,80,241,94,189,137,134,10,149,226,2,153,134,8,93,248,117,170,147,75,158,3,216,190,68,4,112,52,0,125,220,93,215,215,46,192,189,251,129,224,219,1,157,114,139,44,238,244,101,50,233,105,127,141,66,159,10,53,235,31,11,74,104,150,131,131,51,76,176,241,69,188,167,138,101,51,93,70,8,168,54,139,32,204,15,209,83,109,175,93,118,135,60,113,251,239,190,166,45,50,139,188,129,92,175,253,8,45,35,5,2,157,143,188,187,223,237,151,54,200,55,18,103,18,63,80,188,71,46,97,132,39,56,129,68,107,253,179,188,105,86,188,41,136,26,189,155,40,246,222,58,244,195,186,45,246,169,255,95,196,237,19,191,202,231,179,119,155,138,183,14,254,107,165,74,151,122,0,202,41,203,90,234,202,189,231,167,221,245,145,155,188,99,215,40,237,38,192,77,187,235,21,86,213,172,231,245,143,251,198,167,152,142,46,187,23,5,169,7,232,116,255,252,224,232,136,65,73,199,173,165,231,50,196,141,78,113,142,56,67,51,174,134,200,168,251,195,126,247,7,36, -178,238,15,255,132,95,8,165,232,94,229,3,201,101,11,75,208,204,4,154,98,66,238,36,220,210,152,67,222,35,203,157,164,209,200,37,33,58,224,233,77,209,219,25,131,172,121,231,208,104,205,226,164,209,89,251,142,161,149,89,86,169,123,253,205,131,234,254,176,171,156,230,159,33,58,116,227,91,20,129,12,245,223,236,38,75,103,148,76,2,116,94,84,46,237,252,0,155,169,2,150,102,51,28,92,23,187,36,115,66,44,66,160,3,101,201,196,137,27,38,5,196,39,185,219,161,155,60,54,195,17,140,40,233,28,23,152,74,22,9,167,161,236,221,102,218,255,42,213,254,167,154,42,50,64,91,196,95,96,235,87,87,34,78,50,202,201,232,73,198,96,48,177,225,202,19,195,195,121,52,14,196,72,80,86,8,160,207,43,138,222,66,216,186,20,248,5,58,141,199,185,44,205,230,89,170,171,108,78,230,157,95,138,28,138,191,217,79,48,31,103,249,51,137,85,244,146,166,13,9,76,51,163,127,68,53,33,154,6,107,248,5,28,242,253,163,248,125,226,67,91,25,245,86,28,167, -145,155,92,99,109,109,185,240,34,25,0,51,21,5,202,141,68,126,43,169,74,157,44,242,22,46,35,11,6,1,223,172,101,60,198,165,117,44,121,17,45,19,144,85,207,118,250,173,33,102,98,197,156,137,87,100,102,148,190,80,230,36,71,145,39,80,169,65,77,53,227,178,234,20,191,138,221,241,144,212,255,88,160,152,0,173,89,169,209,62,29,147,208,19,49,236,96,177,86,96,196,75,90,200,134,209,244,128,190,74,177,41,49,91,218,189,128,105,117,28,0,64,222,183,218,23,199,114,42,81,119,202,68,109,185,148,41,193,108,169,101,63,247,189,105,14,176,8,21,243,82,99,201,59,57,236,46,172,115,106,216,105,108,42,24,151,156,154,36,251,197,39,151,154,215,230,190,246,3,4,138,85,180,29,177,184,203,209,30,153,191,134,122,237,15,148,255,69,113,157,137,72,155,134,163,132,217,72,157,24,84,134,60,16,215,176,181,84,191,120,57,183,20,109,28,146,52,189,216,166,16,249,182,165,109,193,125,147,53,3,88,55,255,94,181,35,100,95,181,246,132,169,1,44,113,106, -230,23,94,218,22,60,251,21,110,12,238,176,214,21,81,61,234,155,5,135,154,181,14,69,122,232,249,233,18,100,80,108,109,231,143,234,51,135,226,219,93,175,187,78,18,46,30,21,58,143,173,115,206,114,189,10,122,64,99,102,31,239,234,141,168,6,22,27,0,156,170,63,67,174,232,9,146,173,245,249,20,88,117,2,61,225,41,212,230,103,19,254,28,193,11,231,152,145,219,245,208,102,59,141,115,103,168,91,37,157,22,240,185,2,66,53,33,185,228,236,138,96,153,113,159,168,64,245,95,217,186,166,84,139,175,39,233,37,232,55,238,249,3,27,106,232,45,58,32,226,251,76,91,95,114,209,60,220,121,102,215,94,28,39,198,204,40,129,195,146,137,222,46,199,152,143,191,58,125,30,95,138,246,64,60,151,159,210,62,85,18,240,42,226,228,185,219,233,187,132,225,183,36,226,247,201,62,52,69,174,247,196,192,69,5,84,222,195,4,1,198,112,162,218,143,94,149,220,122,5,43,173,156,6,131,218,128,50,105,89,43,30,119,22,166,249,219,166,57,182,252,67,182,4,205,242, -118,204,102,11,229,249,225,14,240,238,30,116,200,24,217,103,120,37,164,206,151,84,230,55,159,143,153,162,169,246,204,245,109,1,201,117,170,251,100,38,11,60,216,158,93,30,31,63,217,63,248,229,108,255,232,228,66,47,30,87,122,77,71,8,226,188,187,206,249,82,232,108,155,166,7,244,208,10,249,164,208,226,115,156,55,23,177,27,38,44,121,90,160,53,77,39,212,159,55,46,94,238,159,156,159,237,191,60,60,185,200,0,180,180,111,214,194,211,57,57,173,49,139,153,248,39,139,216,156,115,56,144,26,113,137,20,86,67,206,6,174,22,19,216,10,20,93,22,213,82,61,66,95,158,20,90,64,59,26,88,222,114,180,40,9,163,77,153,27,8,37,55,94,249,129,12,32,30,97,116,134,24,12,4,187,9,223,184,86,217,140,118,196,69,113,132,207,19,63,106,5,244,116,251,136,110,176,66,121,204,50,141,249,143,127,29,142,91,194,222,146,96,34,206,39,254,177,24,37,186,239,167,80,34,170,2,110,160,132,126,233,33,40,135,147,250,129,54,78,186,198,33,231,112,248,152, -14,98,239,91,239,5,222,43,153,8,206,103,37,167,170,206,49,89,86,28,5,159,133,232,74,240,156,70,112,242,227,21,18,91,97,248,37,8,77,1,115,5,52,118,20,14,162,169,4,86,225,224,99,126,49,116,99,131,214,114,151,169,239,179,166,121,62,120,225,143,217,209,70,179,63,178,138,43,223,155,204,93,6,47,110,0,176,41,124,111,242,248,226,165,227,123,188,218,187,128,214,159,131,159,61,23,193,248,216,15,23,138,215,94,22,144,67,24,27,205,87,160,216,7,126,248,110,170,76,196,80,130,153,190,187,171,56,124,78,84,150,226,45,134,170,70,64,127,84,239,11,144,1,128,22,22,223,20,74,34,80,4,117,87,147,44,226,120,241,153,98,79,23,26,97,185,249,46,78,130,209,24,253,39,162,248,167,159,202,68,88,167,135,130,215,4,211,216,220,106,156,55,135,207,198,204,209,81,246,247,188,132,19,151,208,253,173,112,2,55,73,103,39,155,161,75,196,200,113,61,254,10,58,82,171,201,165,50,99,183,181,110,195,72,89,86,207,74,129,205,172,6,10,118,131,227, -248,4,244,130,203,140,206,117,196,228,105,190,148,196,251,223,58,244,99,38,9,116,255,186,8,39,170,55,206,166,115,109,225,68,153,61,224,169,155,186,141,107,171,99,226,53,224,230,68,220,56,250,28,203,241,41,91,74,0,89,131,16,145,121,61,131,71,75,155,192,91,71,253,102,197,221,116,24,213,239,105,147,162,152,12,91,65,9,20,153,97,194,233,254,85,126,253,216,38,45,113,63,232,178,41,173,26,170,98,144,79,182,15,143,125,78,202,42,124,13,0,94,192,142,209,223,42,171,73,19,195,66,121,12,157,220,84,221,124,82,82,2,129,55,243,129,18,3,67,114,116,69,231,21,146,6,23,198,194,188,236,106,229,88,248,233,167,133,176,192,30,69,192,74,24,58,10,138,210,160,141,222,36,203,227,41,71,232,43,178,104,157,227,185,58,18,37,232,205,149,145,87,128,12,214,253,109,148,221,97,23,189,233,234,97,169,223,179,116,80,99,124,115,105,51,43,165,158,77,200,243,131,165,70,109,34,148,33,222,41,128,34,118,126,159,136,137,216,112,246,49,79,10,116,14,228, -140,142,78,113,126,119,220,12,253,254,144,238,8,1,180,78,247,1,185,217,101,205,155,128,64,186,50,121,227,128,46,14,191,195,36,101,85,49,207,12,242,166,60,191,9,232,58,183,168,185,147,99,140,38,29,242,62,80,77,67,39,70,106,113,90,206,198,198,6,121,237,71,131,6,118,177,38,139,183,146,95,153,44,99,79,243,208,139,163,9,233,196,84,50,39,21,19,102,24,57,30,58,125,83,162,98,61,48,118,24,96,102,10,242,31,176,241,232,12,229,235,31,159,226,239,38,112,200,214,144,176,165,66,250,176,180,154,198,91,29,112,166,163,175,208,207,138,76,144,8,128,177,8,201,179,129,131,182,127,190,60,210,89,107,96,90,227,56,234,103,89,61,138,7,123,207,216,154,27,120,173,110,100,221,80,120,86,14,77,44,181,218,186,1,120,175,127,244,61,179,131,12,252,27,27,123,173,13,105,98,241,196,0,68,61,88,78,52,26,251,129,232,174,35,224,113,138,105,212,143,56,246,48,243,240,161,32,101,129,105,59,60,134,141,17,155,7,211,154,80,104,93,216,93,255,32, -226,136,48,152,205,154,105,128,188,106,228,29,44,143,140,15,232,50,142,23,241,159,255,56,235,31,95,27,27,70,132,147,209,27,199,124,210,253,151,243,230,226,232,197,225,209,211,238,111,103,135,47,143,78,159,30,29,224,193,243,250,71,167,231,38,162,15,130,83,242,166,251,232,145,250,230,224,244,242,228,162,169,186,55,101,100,224,29,235,31,29,227,63,185,38,64,245,255,126,172,154,61,192,5,172,127,188,228,146,194,184,60,96,185,111,124,15,158,34,49,156,254,98,38,71,48,194,28,56,181,163,17,232,144,131,138,114,113,122,131,33,7,38,15,91,58,126,97,105,134,56,23,67,82,226,96,30,229,128,135,168,239,187,58,91,111,149,174,70,180,122,228,153,219,111,121,35,196,33,197,36,218,192,48,87,73,64,191,232,229,88,1,139,133,242,35,26,0,50,249,142,201,193,231,0,215,44,95,94,159,74,66,14,40,25,168,101,148,149,70,175,176,217,198,22,190,98,248,104,26,241,150,50,235,3,155,71,246,179,63,88,44,201,59,172,168,248,86,162,41,157,30,99,86,74,131, -51,251,96,119,180,114,54,30,206,181,118,157,177,74,203,99,178,12,169,124,143,174,172,55,97,146,7,213,83,93,188,92,123,153,23,230,64,119,120,57,140,16,76,113,136,252,83,148,143,101,198,163,49,66,124,50,150,142,249,92,90,160,216,173,242,112,117,131,27,247,54,49,102,143,181,67,7,230,44,201,143,159,123,108,202,52,93,128,66,53,134,206,179,52,53,76,163,140,61,78,22,182,122,252,73,239,174,92,28,246,42,163,50,104,37,111,29,250,97,101,188,139,198,100,16,69,249,97,62,48,35,75,238,6,224,66,49,77,140,209,231,213,112,15,45,22,254,53,221,197,208,130,237,250,128,100,21,139,232,83,9,246,1,157,108,20,249,77,77,57,252,59,115,122,70,129,105,138,205,130,211,58,211,95,182,175,198,10,221,214,151,230,34,81,108,3,162,24,145,252,162,152,43,125,33,147,191,78,175,9,63,147,210,166,50,136,58,7,241,89,52,190,28,63,127,117,242,212,66,72,248,248,173,147,123,105,98,115,120,19,122,11,18,66,226,94,139,158,159,38,6,113,242,165,200,124, -221,184,242,50,122,201,110,188,56,26,39,67,215,43,120,190,46,16,80,7,231,192,40,74,166,197,212,157,98,50,135,210,121,225,106,246,147,103,26,120,195,179,217,153,122,191,67,88,192,2,53,248,33,104,186,30,87,141,99,38,102,116,86,116,204,85,24,40,5,241,36,183,73,42,70,74,2,78,227,91,25,20,5,170,52,240,52,35,91,119,79,21,72,182,104,239,132,21,164,84,94,84,230,210,168,94,90,53,2,3,17,165,182,28,75,18,227,67,254,196,105,96,174,172,201,24,19,9,11,207,106,226,82,232,176,77,132,80,128,111,103,177,233,218,187,104,81,86,76,168,202,145,12,134,196,126,219,80,171,223,80,5,242,96,192,175,127,164,4,95,223,54,201,93,111,146,115,16,207,130,241,208,173,216,39,179,34,231,114,77,11,110,28,69,236,227,183,14,136,8,210,194,97,128,128,138,70,17,242,164,207,58,197,30,194,82,181,131,121,17,81,52,174,113,221,75,15,86,27,109,155,188,114,125,180,92,28,94,207,225,129,161,116,38,14,62,241,49,4,146,58,113,38,161,182,222, -200,100,134,152,213,158,172,60,243,169,82,117,230,126,198,67,21,102,62,179,135,28,3,252,125,82,8,67,71,254,151,89,18,229,98,176,36,61,37,146,224,53,241,141,142,177,42,182,246,105,104,132,145,182,112,81,131,76,246,51,204,97,27,78,67,118,175,191,35,3,114,128,150,130,44,47,133,124,128,215,224,110,218,167,228,21,126,74,153,39,243,153,111,100,252,48,154,211,217,96,111,221,112,180,220,245,143,251,218,202,175,81,249,234,69,247,183,255,185,60,186,128,238,146,4,195,241,100,225,141,184,47,198,72,187,141,188,56,48,45,53,215,133,197,223,155,215,135,145,178,154,64,154,50,181,37,189,103,3,38,190,23,163,113,122,123,103,116,50,79,194,183,133,8,5,205,155,210,152,249,141,76,230,38,19,188,97,162,116,198,177,206,165,125,35,76,155,240,92,68,179,128,107,78,78,154,90,50,229,167,95,33,89,175,38,159,54,145,243,113,20,45,44,251,5,208,182,159,127,93,160,234,195,247,162,63,65,220,16,42,224,152,131,22,164,224,190,126,96,180,119,222,200,74,23,44, -58,2,217,153,231,26,93,150,21,142,72,144,77,176,49,25,113,120,8,79,230,184,62,12,61,92,146,153,205,171,60,150,188,102,43,207,132,174,95,120,22,165,254,13,251,51,70,123,22,231,196,74,58,197,135,26,9,96,200,15,9,53,104,87,30,223,167,231,154,180,157,238,119,201,112,146,2,90,195,238,119,50,185,187,101,43,233,185,173,127,196,149,225,198,156,203,178,86,207,121,22,187,62,198,213,212,59,193,233,83,20,40,112,218,140,87,167,145,253,14,32,114,48,180,14,221,24,211,250,89,224,107,27,145,112,182,54,227,231,116,111,153,160,14,248,234,133,227,121,249,125,147,197,111,43,100,39,76,64,72,127,185,97,141,164,3,233,208,164,14,153,203,162,162,21,93,147,73,174,239,134,28,70,77,159,186,61,188,244,32,91,17,254,221,212,169,23,243,148,199,155,131,70,116,61,143,50,94,1,71,87,52,206,38,191,213,130,164,54,249,109,2,79,244,44,22,181,44,194,143,122,110,172,113,205,27,74,121,165,46,213,104,1,176,243,82,234,195,106,19,195,190,121,231,20,62, -92,142,207,135,230,106,151,143,189,154,74,154,150,217,77,185,83,161,13,114,8,75,61,48,192,58,255,12,15,21,176,112,151,147,175,20,1,27,142,125,160,206,145,48,67,255,151,222,79,24,251,227,135,185,114,164,115,213,43,77,62,148,201,199,44,173,224,97,178,51,185,49,40,167,8,210,60,75,29,3,76,214,70,41,219,134,81,224,177,93,18,139,133,28,187,183,152,29,13,84,45,120,73,121,168,163,152,42,196,161,249,61,4,2,140,125,188,74,167,203,80,33,203,94,72,15,24,102,106,36,86,97,102,138,32,114,61,149,138,141,179,192,195,166,244,71,50,173,30,67,23,199,178,234,240,31,0,19,47,170,63,95,149,40,112,128,125,231,18,106,21,114,222,127,136,64,18,5,88,165,81,204,94,222,232,221,3,107,20,114,54,137,211,208,79,240,91,163,12,31,2,77,137,142,92,6,75,12,210,179,40,249,231,218,134,99,100,34,196,75,112,76,202,201,87,248,212,19,235,187,31,54,250,239,157,31,157,30,253,210,196,106,124,156,148,80,190,187,85,239,110,137,75,194,175,136, -93,36,149,70,171,233,180,214,154,58,224,11,47,175,25,136,13,252,213,195,40,112,28,211,195,235,45,150,58,209,145,96,0,243,89,203,220,48,50,126,205,247,249,20,56,136,211,227,212,250,4,145,92,154,23,206,199,12,29,131,212,60,118,244,72,174,44,221,172,6,84,67,85,166,96,36,220,159,76,70,236,221,132,136,207,143,106,141,203,160,70,79,69,24,17,227,175,108,182,34,185,1,208,247,129,55,202,63,1,231,139,241,254,247,229,173,123,198,60,38,113,134,102,89,105,94,68,239,54,43,130,61,11,26,148,236,242,169,164,43,77,177,83,20,138,115,166,58,69,138,171,4,21,230,210,92,22,84,182,180,170,10,84,215,89,93,237,5,0,117,251,137,0,53,155,153,183,156,213,17,212,242,73,107,21,116,23,166,62,11,131,171,68,128,78,183,90,250,178,18,1,83,19,179,174,26,248,139,158,196,75,65,145,24,26,14,55,7,89,206,5,149,58,199,227,73,100,131,75,254,132,44,28,9,48,219,70,187,233,180,225,144,51,60,154,177,3,58,154,232,31,122,223,116,178,223, -203,154,82,206,201,28,228,186,87,32,133,236,199,194,205,121,154,87,101,200,45,200,132,170,173,101,5,202,107,194,212,78,149,192,67,197,221,116,106,45,223,67,233,72,249,9,146,115,129,81,129,142,19,170,152,55,193,50,17,174,169,19,27,154,243,141,140,1,147,146,19,201,97,30,247,46,180,188,35,59,133,19,109,146,228,94,160,26,222,131,145,64,106,67,255,203,212,215,197,124,209,77,211,77,222,117,215,123,110,76,98,129,156,183,180,51,20,29,167,168,166,246,88,132,114,62,230,77,123,54,218,56,6,41,44,190,37,184,204,170,178,247,74,125,51,37,99,110,17,181,191,178,153,205,138,97,235,86,158,141,241,66,151,83,16,79,16,139,82,67,202,68,51,164,12,157,74,36,236,45,240,86,87,189,51,22,117,78,40,92,241,178,178,78,23,94,216,172,233,159,49,206,87,137,147,66,151,51,166,94,73,124,184,73,212,67,185,65,96,255,169,152,74,63,145,233,60,105,153,76,228,36,145,130,36,30,78,106,174,122,181,72,43,117,58,231,202,229,34,87,184,236,229,12,102,191, -244,60,114,106,158,178,12,79,57,61,107,39,186,158,24,80,185,71,208,23,98,49,22,120,23,139,211,75,216,52,158,207,201,58,205,240,141,110,160,236,64,189,90,43,32,44,234,124,44,132,55,101,81,9,190,167,125,164,23,49,237,68,174,248,186,182,188,50,155,176,158,178,122,199,52,144,251,208,126,190,77,174,174,68,130,172,63,59,185,96,126,161,184,65,125,61,59,4,166,44,74,142,168,234,105,46,88,248,84,70,13,22,2,6,75,105,62,199,227,147,92,249,222,105,134,78,252,178,144,130,124,195,185,148,105,45,89,125,197,67,90,70,229,208,105,43,79,204,179,56,26,141,87,92,18,245,220,50,123,75,251,105,33,100,21,48,202,7,145,193,106,195,178,79,94,241,38,92,126,180,254,113,223,195,156,251,73,78,36,193,87,119,18,237,105,174,126,70,14,164,167,147,209,24,239,223,220,171,48,74,16,214,126,136,98,51,151,107,34,233,87,153,14,48,69,243,236,201,242,112,234,242,78,143,105,162,171,60,95,156,68,97,190,69,132,8,119,148,45,30,254,200,127,158,71,77, -161,226,215,172,130,95,179,65,160,19,10,131,52,142,215,162,9,77,97,195,134,113,116,124,225,25,174,148,170,49,201,51,25,139,44,10,210,243,163,147,243,139,253,147,131,195,183,142,254,213,170,38,13,125,147,230,51,39,210,96,146,12,229,21,176,23,187,55,84,208,139,194,219,52,0,248,204,107,220,200,160,187,195,127,236,31,92,28,255,47,91,56,125,42,62,145,34,200,10,247,167,171,90,252,207,19,255,60,200,165,7,158,67,195,54,98,191,50,213,9,123,75,112,61,232,3,13,235,142,120,209,236,152,157,237,80,186,88,75,135,152,145,142,224,16,79,194,53,78,19,156,58,88,242,51,229,123,60,24,2,100,213,32,240,19,1,4,230,81,43,190,250,0,254,46,111,210,229,13,56,64,249,218,245,131,92,234,56,73,61,220,145,60,102,17,232,56,73,37,61,188,249,255,79,15,255,64, - +topic "Ctrl";[2 $$0,0#00000000000000000000000000000000:Default] +[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param] +[a83;*R6 $$2,5#31310162474203024125188417583966:caption] +[b83;*4 $$3,5#07864147445237544204411237157677:title] +[i288;O9;C2 $$4,6#40027414424643823182269349404212:item] +[b42;a42;2 $$5,5#45413000475342174754091244180557:text] +[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc] +[l321;tC@5;1 $$7,7#20902679421464641399138805415013:code] +[b2503;2 $$8,0#65142375456100023862071332075487:separator] +[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base] +[tC2 $$10,0#37138531426314131251341829483380:class] +[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement] +[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam] +[b167;C2 $$13,13#92430459443460461911108080531343:item1] +[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2] +[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate] +[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result] +[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line] +[l160;*tC+117 $$18,5#88603949442205825958800053222425:package`-title] +[2 $$19,0#53580023442335529039900623488521:gap] +[tC2 $$20,20#70211524482531209251820423858195:class`-nested] +[b50;2 $$21,21#03324558446220344731010354752573:Par] +[i448;a25;kKO9;*@(64)2 $$22,0#37138531426314131252341829483370:item] +[i448;a25;kKO9;*@(64)2 $$23,0#37138531426314131252341829483380:class] +[{_}%EN-US +[s2;%- Ctrl&] +[s22;K:`:`:Ctrl`:`:class:%- [@(0.0.255) class]_[@0 Ctrl]_:_[@(0.0.255) public]_[^`:`:Data^ Data +], [@(0.0.255) public]_[^`:`:Pte^ Pte]<[@0 Ctrl]>_&] +[s0; &] +[s0; &] +[s0; (Derivation from Pte allows Ctrl to be pointed to by Ptr&] +[s0; &] +[s0; This the base class of GUI widgets hierarchy (that is why U`+`+ +widgets are also named `"Ctrls`").&] +[s0; &] +[s0;%- enum_[* PlacementConstants]&] +[s6; Constants used in logical coordinates.&] +[s1;:`:`:Ctrl`:`:CENTER: [%-*C@3 CENTER]-|Center alignment.&] +[s1;:`:`:Ctrl`:`:LEFT: [%-*C@3 LEFT]-|Left alignment.&] +[s1;:`:`:Ctrl`:`:RIGHT: [%-*C@3 RIGHT]-|Right alignment.&] +[s1;:`:`:Ctrl`:`:TOP: [%-*C@3 TOP]-|Equal to LEFT (better name for vertical +coordinate).&] +[s1;:`:`:Ctrl`:`:BOTTOM: [%-*C@3 BOTTOM]-|Equal to RIGHT (better name +for vertical coordinate)&] +[s1;:`:`:Ctrl`:`:SIZE: [%-*C@3 SIZE]-|Size alignment.&] +[s1;:`:`:Ctrl`:`:MINSIZE: [%-*C@3 MINSIZE]-|Value is determined using +GetMinSize.&] +[s1;:`:`:Ctrl`:`:MAXSIZE: [%-*C@3 MAXSIZE]-|Value is determined using +GetMaxSize.&] +[s1;:`:`:Ctrl`:`:STDSIZE: [%-*C@3 STDSIZE]-|Value is determined using +Get&] +[s0; &] +[s0;%- class_[* Ctrl`::Logc]&] +[s6; &] +[s6; This nested class serves as either vertical or horizontal part +of logical position.&] +[s0;3 &] +[s0;l352;:`:`:Ctrl`:`:Logc`:`:Logc`(int`,int`,int`):%- [* Logc](int_[*@3 al], +int_[*@3 a], int_[*@3 b])&] +[s6;l352; Constructor.&] +[s1;l352; [%-*C@3 al]-|Alignment type. Determines what other parameters +mean. &] +[s1;l352; [%-*C@3 a]-|First value.&] +[s1;l352; [%-*C@3 b]-|Second value.&] +[s0;3 &] +[s0;l352;:`:`:Ctrl`:`:Logc`:`:Logc`(`):%- [* Logc]()&] +[s6;l352; Default constructor. Sets Logc to the empty state.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) int]_[@0 LSGN]([^`:`:dword^ dword]_[@3 d])&] +[s1;l352; [%-*C@3 q]-|Logc to compare with.&] +[s1;l352; [*/ Return value]-|True when equal.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 operator!`=]([^`:`:Ctrl`:`:Logc^ Logc]_[@3 q])_[@(0.0.255) const]&] +[s1;l352; [%-*C@3 q]-|Logc to compare with.&] +[s1;l352; [*/ Return value]-|True when not equal.&] +[s0;3 &] +[s22;K%- [@(0.0.255) int]_[@0 GetAlign]()_[@(0.0.255) const]&] +[s1;l352; [*/ Return value]-|Alignment type.&] +[s0;3 &] +[s22;K%- [@(0.0.255) int]_[@0 GetA]()_[@(0.0.255) const]&] +[s1;l352; [*/ Return value]-|First value.&] +[s0;3 &] +[s22;K%- [@(0.0.255) int]_[@0 GetB]()_[@(0.0.255) const]&] +[s1;l352; [*/ Return value]-|Second value.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetAlign]([@(0.0.255) int]_[@3 align])&] +[s6;l352;%- Sets alignment type.&] +[s1;l352; [%-*C@3 align]-|Alignment type.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetA]([@(0.0.255) int]_[@3 a])&] +[s6;l352; Sets first value.&] +[s1;l352; [%-*C@3 a]-|Value.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetB]([@(0.0.255) int]_[@3 b])&] +[s6;l352; Sets second value.&] +[s1;l352; [%-*C@3 b]-|Value.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsEmpty]()_[@(0.0.255) const]&] +[s1;l352; [*/ Return value]-|True if Logc is empty.&] +[s0;3 &] +[s0; &] +[s0; &] +[s22;K:`:`:Ctrl`:`:LogPos`:`:struct:%- [@(0.0.255) struct]_[@0 LogPos]&] +[s6; &] +[s6; This nested class combines two Logc value into complete logical +position.&] +[s0;3 &] +[s0;l352;:`:`:Ctrl`:`:LogPos`:`:LogPos`(`:`:Ctrl`:`:Logc`,`:`:Ctrl`:`:Logc`):%- [* LogP +os](Logc_[*@3 x], Logc_[*@3 y])&] +[s6;l352; Constructor.&] +[s1;l352; [%-*C@3 x]-|Horizontal Logc.&] +[s1;l352; [%-*C@3 y]-|Vertical Logc.&] +[s0;3 &] +[s0;l352;:`:`:Ctrl`:`:LogPos`:`:LogPos`(`):%- [* LogPos]()&] +[s6;l352; Default constructor. Sets both Logc empty.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 operator`=`=]([^`:`:Ctrl`:`:LogPos^ LogPos]_[@3 b])_[@(0.0.255) c +onst]&] +[s1;l352; [%-*C@3 b]-|LogPos to compare with.&] +[s1;l352; [*/ Return value]-|True when equal.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 operator!`=]([^`:`:Ctrl`:`:LogPos^ LogPos]_[@3 b])_[@(0.0.255) co +nst]&] +[s1;l352; [%-*C@3 b]-|LogPos to compare with.&] +[s1;l352; [*/ Return value]-|True when equal.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl`:`:Logc^ Logc]_[@0 x]&] +[s6;l352; Horizontal Logc.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl`:`:Logc^ Logc]_[@0 y]&] +[s6;l352; Vertical Logc.&] +[s6;l352; &] +[s0;3 &] +[s0;%- enum_[* StateReason]&] +[s6; Arguments of State virtual method.&] +[s1;:`:`:Ctrl`:`:FOCUS: [%-*C@3 FOCUS]-|Ctrl got/lost focus.&] +[s1;:`:`:Ctrl`:`:ACTIVATE: [%-*C@3 ACTIVATE]-|Ctrl was activated.&] +[s1;:`:`:Ctrl`:`:DEACTIVATE: [%-*C@3 DEACTIVATE]-|Ctrl was deactivated.&] +[s1;:`:`:Ctrl`:`:SHOW: [%-*C@3 SHOW]-|Ctrl visibility changed.&] +[s1;:`:`:Ctrl`:`:ENABLE: [%-*C@3 ENABLE]-|Ctrl was enabled/disable.&] +[s1;:`:`:Ctrl`:`:EDITABLE: [%-*C@3 EDITABLE]-|Ctrl editable status changed.&] +[s1;:`:`:Ctrl`:`:OPEN: [%-*C@3 OPEN]-|Ctrl was open (its top`-level +Ctrl was open on screen).&] +[s1;:`:`:Ctrl`:`:CLOSE: [%-*C@3 CLOSE]-|Ctrl was closed (its top`-level +Ctrl was closed).&] +[s0;3 &] +[s0;%- enum_[* MouseEvents]&] +[s6; Constants that make up [*/ event] argument of [*/ MouseEvent] and +[*/ FrameMouseEvent] virtual methods. Value is combination of button +and action bit fields.&] +[s6; &] +[s0;l160; [* Field masks]&] +[s1;:`:`:Ctrl`:`:BUTTON: [%-*C@3 BUTTON]-|Mask for button field.&] +[s1;:`:`:Ctrl`:`:ACTION: [%-*C@3 ACTION]-|Mask for action field. &] +[s0; &] +[s0;l160; [* Actions]&] +[s1;:`:`:Ctrl`:`:MOUSEENTER: [%-*C@3 MOUSEENTER]-|Mouse entered Ctrl.&] +[s1;:`:`:Ctrl`:`:MOUSEMOVE: [%-*C@3 MOUSEMOVE]-|Mouse moved over Ctrl.&] +[s1;:`:`:Ctrl`:`:MOUSELEAVE: [%-*C@3 MOUSELEAVE]-|Mouse left Ctrl.&] +[s1;:`:`:Ctrl`:`:CURSORIMAGE: [%-*C@3 CURSORIMAGE]-|Cursor image has +to be determined (method should respond with image).&] +[s1;:`:`:Ctrl`:`:MOUSEWHEEL: [%-*C@3 MOUSEWHEEL]-|Mouse wheel rotated.&] +[s1;:`:`:Ctrl`:`:DOWN: [%-*C@3 DOWN]-|Mouse button was pressed.&] +[s1;:`:`:Ctrl`:`:UP: [%-*C@3 UP]-|Mouse button was released.&] +[s1;:`:`:Ctrl`:`:DOUBLE: [%-*C@3 DOUBLE]-|Mouse button was double`-clicked.&] +[s1;:`:`:Ctrl`:`:REPEAT: [%-*C@3 REPEAT]-|When mouse button is pressed +for a while, U`+`+ imitates keyboard autorepeat sending this +message.&] +[s0;l160; [* Buttons] &] +[s1; [%-*C@3 LEFT]-|Left button. (This constant is not defined in MouseEvents, +instead LEFT from Placements Constants is used).&] +[s1; [%-*C@3 RIGHT]-|Left button. (This constant is not defined in MouseEvents, +instead LEFT from Placements Constants is used).&] +[s0;l160; [* Combinations]&] +[s1;:`:`:Ctrl`:`:LEFTDOWN: [%-*C@3 LEFTDOWN]-|Left button pressed.&] +[s1;:`:`:Ctrl`:`:LEFTDOUBLE: [%-*C@3 LEFTDOUBLE]-|Left button double +pressed.&] +[s1;:`:`:Ctrl`:`:LEFTREPEAT: [%-*C@3 LEFTREPEAT]-|Left button autorepeat.&] +[s1;:`:`:Ctrl`:`:LEFTUP: [%-*C@3 LEFTUP]-|Left button released.&] +[s1;:`:`:Ctrl`:`:RIGHTDOWN: [%-*C@3 RIGHTDOWN]-|Right button pressed.&] +[s1;:`:`:Ctrl`:`:RIGHTDOUBLE: [%-*C@3 RIGHTDOUBLE]-|Right button double +pressed.&] +[s1;:`:`:Ctrl`:`:RIGHTREPEAT: [%-*C@3 RIGHTREPEAT]-|Right button autorepeat.&] +[s1;:`:`:Ctrl`:`:RIGHTUP: [%-*C@3 RIGHTUP]-|Right button released.&] +[s0;3 &] +[s0;%- enum_`{_[*@3 NOBACKPAINT], [*@3 FULLBACKPAINT], [*@3 TRANSPARENTBACKPAINT], +[*@3 EXCLUDEPAINT]_`}&] +[s6; These constants are parameters of BackPaint method. They determine +back`-plane drawing style.&] +[s1;:`:`:Ctrl`:`:NOBACKPAINT: [%-*C@3 NOBACKPAINT]-|No backpaint is +used.&] +[s1;:`:`:Ctrl`:`:FULLBACKPAINT: [%-*C@3 FULLBACKPAINT]-|Whole area of +Ctrl is backpainted.&] +[s1;:`:`:Ctrl`:`:TRANSPARENTBACKPAINT: [%-*C@3 TRANSPARENTBACKPAINT]-|Only +transparent child Ctrls are backpainted.&] +[s1;:`:`:Ctrl`:`:EXCLUDEPAINT: [%-*C@3 EXCLUDEPAINT]-|Ctrl is not painted. +This is special case for specific system related situations (like +OLE control painted by regular Windows routine).&] +[s0;3 &] +[s22;K%- typedef_[@(0.0.255) bool]_(`*[@0 MouseHook])(Ctrl_`*ctrl, [@(0.0.255) bool]_inframe +, [@(0.0.255) int]_event, Point_p, [@(0.0.255) int]_zdelta, dword_keyflags)&] +[s6; Type for hooking mouse events across all Ctrls.&] +[s0;3 &] +[s22;K%- typedef_[@(0.0.255) bool]_(`*[@0 KeyHook])(Ctrl_`*ctrl, dword_key, +[@(0.0.255) int]_count)&] +[s6; Type for hooking keyboard events across all Ctrls.&] +[s0;3 &] +[s22;K%- typedef_[@(0.0.255) bool]_(`*[@0 StateHook])(Ctrl_`*ctrl, [@(0.0.255) int]_reason)&] +[s6; Type for hooking state changes across all Ctrls.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl`:`:Logc^ Logc]_[@0 PosLeft]([@(0.0.255) int]_[@3 pos], +[@(0.0.255) int]_[@3 size])&] +[s6; Creates left (or top) aligned logical coordinate (Logc).&] +[s1; [%-*C@3 pos]-|Distance between left margin and left margin of parent`'s +view.&] +[s1; [%-*C@3 size]-|Size.&] +[s1; [*/ Return value]-|Logical coordinate.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl`:`:Logc^ Logc]_[@0 PosRight]([@(0.0.255) int]_[@3 pos], +[@(0.0.255) int]_[@3 size])&] +[s6; Creates right (or bottom) aligned logical coordinate (Logc).&] +[s1; [%-*C@3 pos]-|Distance between right margin and right margin of +parent`'s view.&] +[s1; [%-*C@3 size]-|Size.&] +[s1; [*/ Return value]-|Logical coordinate.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl`:`:Logc^ Logc]_[@0 PosTop]([@(0.0.255) int]_[@3 pos], +[@(0.0.255) int]_[@3 size])&] +[s6; Equal to PosLeft(pos, size).&] +[s1; [%-*C@3 pos]-|Distance between top margin and top margin of parent`'s +view.&] +[s1; [%-*C@3 size]-|Size.&] +[s1; [*/ Return value]-|Logical coordinate.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl`:`:Logc^ Logc]_[@0 PosBottom]([@(0.0.255) int]_[@3 pos], +[@(0.0.255) int]_[@3 size])&] +[s6; Equal to PosRight(pos, size).&] +[s1; [%-*C@3 pos]-|Distance between bottom margin and bottom margin +of parent`'s view.&] +[s1; [%-*C@3 size]-|Size.&] +[s1; [*/ Return value]-|Logical coordinate.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl`:`:Logc^ Logc]_[@0 PosSize]([@(0.0.255) int]_[@3 lpos], +[@(0.0.255) int]_[@3 rpos])&] +[s6; Creates logical coordinate where distances between margins and +parent`'s view margins are fixed and size of Ctrl is variable +(depends of parent`'s view size).&] +[s1; [%-*C@3 lpos]-|Distance between left/top margin and left/top margin +of parent`'s view.&] +[s1; [%-*C@3 rpos]-|Distance between right/bottom margin and right/bottom +margin of parent`'s view.&] +[s1; [*/ Return value]-|Logical coordinate.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl`:`:Logc^ Logc]_[@0 PosCenter]([@(0.0.255) int]_[@3 size], +[@(0.0.255) int]_[@3 offset])&] +[s6; Creates centered logical coordinate, where Ctrl is placed in +specified distance from center of parent`'s view. &] +[s1; [%-*C@3 size]-|Size.&] +[s1; [%-*C@3 offset]-|Offset from center.&] +[s1; [*/ Return value]-|Logical coordinate.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl`:`:Logc^ Logc]_[@0 PosCenter]([@(0.0.255) int]_[@3 size])&] +[s6; Equal to PosCenter(size, 0).&] +[s1; [%-*C@3 size]-|Size.&] +[s1; [*/ Return value]-|Logical coordinate.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:GetTopCtrls`(`):%- static [^`:`:Vector^ Vector]_[@0 GetTopCtrl +s]()&] +[s6; Returns all opened top`-level Ctrls of process. Top`-level Ctrls +are those without parent (GetParent() `=`= NULL) `- TopWindow +Ctrls and pop`-up Ctrls.&] +[s1; [*/ Return value]-|Vector of all top Ctrls.&] +[s0;3 &] +[s22;K%- static [^`:`:Vector^ Vector]_[@0 GetTopWindows]()&] +[s6; Returns all opened TopWindows (that is, instances of TopWindow +class or classes derived from TopWindow) of process. The difference +between GetTopWindows and GetTopCtrls is that GetTopCtrls returns +pop`-ups too. &] +[s1; [*/ Return value]-|Vector of all TopWindows.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 CloseTopCtrls]()&] +[s6; Closes all top`-level Ctrls.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 InstallMouseHook]([^`:`:Ctrl`:`:MouseHook^ MouseHook]_ +[@3 hook])&] +[s6; Installs mouse hook `- a routine that receives all mouse input +of application before it gets processed by Ctrls. You can install +more mouse hooks. Mouse hook routine should return true to indicate +the end of processing (and event propagation).&] +[s1; [%-*C@3 hook]-|Pointer to hook routine.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 DeinstallMouseHook]([^`:`:Ctrl`:`:MouseHook^ MouseHook +]_[@3 hook])&] +[s6; Uninstalls previously installed mouse hook.&] +[s1; [%-*C@3 hook]-|Pointer to hook routine.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 InstallKeyHook]([^`:`:Ctrl`:`:KeyHook^ KeyHook]_[@3 hook +])&] +[s6; Installs keyboard hook `- a routine that receives all keyboard +input of application before it gets processed by Ctrls. You can +install more than one keyboard hooks. Keyboard hook routine should +return true to indicate the end of processing (and event propagation).&] +[s1; [%-*C@3 hook]-|Pointer to hook routine.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 DeinstallKeyHook]([^`:`:Ctrl`:`:KeyHook^ KeyHook]_[@3 ho +ok])&] +[s6; Uninstalls previously installed keyboard hook.&] +[s1; [%-*C@3 hook]-|Pointer to hook routine.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 InstallStateHook]([^`:`:Ctrl`:`:StateHook^ StateHook]_ +[@3 hook])&] +[s6; Installs state hook `- a routine that receives all state changes +of any Ctrls.&] +[s1; [%-*C@3 hook]-|Pointer to hook routine.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 DeinstallStateHook]([^`:`:Ctrl`:`:StateHook^ StateHook +]_[@3 hook])&] +[s6; Deinstalls previously installed state hook.&] +[s1; [%-*C@3 hook]-|Pointer to hook routine.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 Paint]([^`:`:Draw^ Draw]`&_[@3 draw])&] +[s6; This method is called when Ctrl`'s view area is about to be +repainted.&] +[s1; [%-*C@3 draw]-|Target of draw operations.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 CancelMode]()&] +[s6; This method is called by U`+`+ core in situations when internal +state of Ctrl that represents ongoing user action is about to +be cleared to default. Typical example of such action is state +of Button that is pushed by mouse click `- if the pushed state +is internally recorded in Button, it should by cleared by this +method. Examples of situations when this method is called by +framework is removing Ctrl from its parent or releasing mouse +capture.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 Activate]()&] +[s6; This method is called when Ctrl is top`-level and is activated +`- it or some of its child Ctrls receives keyboard focus (activation +usually has other signs as bringing window foreground or changing +its caption).&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 Deactivate]()&] +[s6; This method is called when Ctrl is top`-level and is deactivated +`- focus has gone outside of Ctrl and its child Ctrls.&] +[s0;3 &] +[s22;K%- virtual [^`:`:Image^ Image]_[@0 FrameMouseEvent]([@(0.0.255) int]_[@3 event], +[^`:`:Point^ Point]_[@3 p], [@(0.0.255) int]_[@3 zdelta], [^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called when mouse event happens in frame area +of Ctrl not containing any child Ctrls. Default implementation +does nothing and returns Image`::Arrow().&] +[s1; [%-*C@3 event]-|Type of event define by [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:enum MouseEvents `{ BUTTON`, ACTION`, MOUSEENTER`, MOUSEMOVE`, MOUSELEAVE`, CURSORIMAGE`, MOUSEWHEEL`, DOWN`, UP`, DOUBLE`, REPEAT`, LEFTDOWN`, LEFTDOUBLE`, LEFTREPEAT`, LEFTUP`, RIGHTDOWN`, RIGHTDOUBLE`, RIGHTREPEAT`, RIGHTUP `}^ M +ouseEvents] enum.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in frame coordinates.&] +[s1; [%-*C@3 zdelta]-|Mouse wheel rotation delta (if event is MOUSEWHEEL).&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s1; [*/ Return value]-|If event is MOUSEIMAGE, method should return +Image to be displayed as mouse cursor.&] +[s0;3 &] +[s22;K%- virtual [^`:`:Image^ Image]_[@0 MouseEvent]([@(0.0.255) int]_[@3 event], +[^`:`:Point^ Point]_[@3 p], [@(0.0.255) int]_[@3 zdelta], [^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called when mouse event happens in view area +of Ctrl not containing any child Ctrls. Default implementation +calls specific mouse event methods based on event parameter.&] +[s1; [%-*C@3 event]-|Type of event define by [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:enum MouseEvents `{ BUTTON`, ACTION`, MOUSEENTER`, MOUSEMOVE`, MOUSELEAVE`, CURSORIMAGE`, MOUSEWHEEL`, DOWN`, UP`, DOUBLE`, REPEAT`, LEFTDOWN`, LEFTDOUBLE`, LEFTREPEAT`, LEFTUP`, RIGHTDOWN`, RIGHTDOUBLE`, RIGHTREPEAT`, RIGHTUP `}^ M +ouseEvents] enum.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 zdelta]-|Mouse wheel rotation delta (if event is MOUSEWHEEL).&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s1; [*/ Return value]-|If event is MOUSEIMAGE, method should return +Image to be displayed as mouse cursor.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 MouseEnter]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when mouse cursor enters the view area of Ctrl.&] +[s1; [%-*C@3 p]-|Point of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 MouseMove]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when mouse cursor hovers above view area of Ctrl.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 LeftDown]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when mouse left button is pressed.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 LeftDouble]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when mouse left button is double`-clicked.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:LeftTriple`(`:`:Point`,`:`:dword`):%- virtual [@(0.0.255) void]_[@0 Lef +tTriple]([^`:`:Point^ Point]_[@3 p], [^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when mouse left button is triple`-clicked.&] +[s0; &] +[s22;K:`:`:Ctrl`:`:LeftDrag`(`:`:Point`,`:`:dword`):%- virtual [@(0.0.255) void]_[@0 LeftD +rag]([^`:`:Point^ Point]_[@3 p], [^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when user moves the mouse while holding left button by more than +GUI`_DragDistance pixels. [%-*@3 p] is the starting point of drag, +not the current mouse position.&] +[s0; &] +[s22;K:`:`:Ctrl`:`:LeftHold`(`:`:Point`,`:`:dword`):%- virtual [@(0.0.255) void]_[@0 LeftH +old]([^`:`:Point^ Point]_[@3 p], [^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when user holds the mouse left button down for a while.&] +[s0; &] +[s22;K%- virtual [@(0.0.255) void]_[@0 LeftRepeat]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is repeatedly called by default implementation of +MouseEvent when mouse left button is pressed for some time, imitating +keyboard autorepeat behaviour.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 LeftUp]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when mouse left button is released.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 RightDown]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when mouse right button is pressed.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 RightDouble]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is repeatedly called by default implementation of +MouseEvent when mouse right button is pressed for some time, +imitating keyboard autorepeat behaviour.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:RightTriple`(`:`:Point`,`:`:dword`):%- virtual +[@(0.0.255) void]_[@0 RightTriple]([^`:`:Point^ Point]_[@3 p], [^`:`:dword^ dword]_[@3 keyfla +gs])&] +[s6; This method is called by default implementation of MouseEvent +when mouse right button is triple`-clicked.&] +[s0; &] +[s22;K:`:`:Ctrl`:`:RightDrag`(`:`:Point`,`:`:dword`):%- virtual [@(0.0.255) void]_[@0 Righ +tDrag]([^`:`:Point^ Point]_[@3 p], [^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when user moves the mouse while holding right button by more +than GUI`_DragDistance pixels. [%-*@3 p] is the starting point +of drag, not the current mouse position.&] +[s0; &] +[s22;K:`:`:Ctrl`:`:RightHold`(`:`:Point`,`:`:dword`):%- virtual [@(0.0.255) void]_[@0 Righ +tHold]([^`:`:Point^ Point]_[@3 p], [^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when user holds the mouse right button down for a while.&] +[s0; &] +[s22;K%- virtual [@(0.0.255) void]_[@0 RightRepeat]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is repeatedly called by default implementation of +MouseEvent when mouse right button is pressed for some time, +imitating keyboard autorepeat behaviour.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 RightUp]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when mouse left button is released.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 MouseWheel]([^`:`:Point^ Point]_[@3 p], +[@(0.0.255) int]_[@3 zdelta], [^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when mouse wheel is rotated.&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 zdelta]-|Amount of rotation.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 MouseLeave]()&] +[s6; This method is called by default implementation of MouseEvent +when mouse cursor leaves view area of Ctrl.&] +[s0;3 &] +[s22;K%- virtual [^`:`:Image^ Image]_[@0 CursorImage]([^`:`:Point^ Point]_[@3 p], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is called by default implementation of MouseEvent +when the shape of mouse cursor is to be determined..&] +[s1; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&] +[s1; [%-*C@3 keyflags]-|Combination of key flags for Shift, Ctrl and +Alt keys.&] +[s1; [*/ Return value]-|Image of new cursor. Default implementation +returns Image`::Arrow().&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) bool]_[@0 Key]([^`:`:dword^ dword]_[@3 key], +[@(0.0.255) int]_[@3 count])&] +[s6; This method provides keyboard input. When keyboard event occurs +and some of U`+`+ application Ctrls has input focus, its Key +method is called. If Key method returns true, processing of key +event is finished. If it returns false, U`+`+ calls Key method +of parent Ctrl and it repeats until either true is returned or +Ctrl has no parent. If such top`-level Ctrl is reached, U`+`+ +calls its HotKey method. Default implementation is void and returns +false.&] +[s1; [%-*C@3 key]-|Key identifier. If it is less than 65536, it indicates +character code, otherwise it is key`-code. Key`-code is combination +of basic key codes and further flags indicating state of shift +keys and push/release events.&] +[s1; [%-*C@3 count]-|Accumulated autorepeat count.&] +[s1; [*/ Return value]-|Method should return true if further propagation +is not desirable (in most cases this indicates that Ctrl accepted +the key).&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) bool]_[@0 HotKey]([^`:`:dword^ dword]_[@3 key])&] +[s6; This method is called when no Ctrl accepts key event using Key +method. Default implementation calls HotKey method child Ctrls. +If some child Ctrl returns true, method returns true, otherwise +it returns false.&] +[s1; [%-*C@3 key]-|Key indentifier.&] +[s1; [*/ Return value]-|Method should return true to stop further distribution +of key event via HotKey methods.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 GotFocus]()&] +[s6; This method is called when Ctrl receives input focus. Default +implementation is void.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 LostFocus]()&] +[s6; This method is called when Ctrl loses input focus. Default implementation +is void.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:ChildMouseEvent`(`:`:Ctrl`*`,int`,`:`:Point`,int`,`:`:dword`):%- vi +rtual [@(0.0.255) void]_[@0 ChildMouseEvent]([^`:`:Ctrl^ Ctrl]_`*[@3 child], +[@(0.0.255) int]_[@3 event], [^`:`:Point^ Point]_[@3 p], [@(0.0.255) int]_[@3 zdelta], +[^`:`:dword^ dword]_[@3 keyflags])&] +[s6; This method is invoked before the mouse [%-*@3 event] is routed +to the [%-*@3 child]. Parameters of the event are the same as those +in MouseEvent method. Default implementation calls the parent`'s +ChildMouseEvent method.&] +[s0; &] +[s22;K%- virtual [@(0.0.255) void]_[@0 ChildGotFocus]()&] +[s6; This method is invoked when any of child Ctrls receives input +focus.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 ChildLostFocus]()&] +[s6; This method is invoked when any of child Ctrls loses input focus.&] +[s0;3 &] +[s22;K%- virtual [^`:`:dword^ dword]_[@0 GetAccessKeys]()_[@(0.0.255) const]&] +[s6; Ctrl should use this method to signal presence of access keys. +Access keys are keyboard keys that can be used to access or activate +dialog functions when pressed together with Alt key. They can +be defined by application designer (usually using `& or `\b in +labels), or they are automatically synthesized using [* AssignAccessKeys] +method. If Ctrl (of one of Ctrls in its child tree) has some +access keys and those keys are letters (in range `'A`' `- `'Z`'), +they should be returned as bit value using AccessKeyBit function. +Other access keys should be indicated by bit 0 (that means, by +binary or of 1 to result). Default implementation returns 0.&] +[s1; [*/ Return value]-|Bit set of access keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 AssignAccessKeys]([^`:`:dword^ dword]_[@3 used])&] +[s6; This method gives a Ctrl chance to synthesize its letter access +keys.&] +[s1; [%-*C@3 used]-|Set of letter access keys that are already used +and should not be chosen by Ctrl as its access keys.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 ChildAdded]([^`:`:Ctrl^ Ctrl]_`*[@3 child])&] +[s6; This method is invoked when child is added to Ctrl.&] +[s1; [%-*C@3 child]-|Pointer to child added.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 ChildRemoved]([^`:`:Ctrl^ Ctrl]_`*[@3 child])&] +[s6; This method is invoked when child is removed from Ctrl.&] +[s1; [%-*C@3 child]-|Pointer to child removed.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 ParentChange]()&] +[s6; This method is called when Ctrl is added or removed from parent.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 State]([@(0.0.255) int]_[@3 reason])&] +[s6; This method is used to notify Ctrls about special state`-change +events that are not covered by virtual methods. Method is called +for entire child tree of Ctrl whose state has changed.&] +[s1; [%-*C@3 reason]-|Code of event. Standard reasons are enumerated +by StateReason enum.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 Layout]()&] +[s6; This method is invoked when layout of Ctrl has to be refreshed. +This is usually either before window is displayed or when the +Ctrl is resized.&] +[s0;3 &] +[s22;K%- virtual [^`:`:Size^ Size]_[@0 GetMinSize]()_[@(0.0.255) const]&] +[s6; This method should return minimal size of Ctrl.&] +[s1; [*/ Return value]-|Minimal size.&] +[s0;3 &] +[s22;K%- virtual [^`:`:Size^ Size]_[@0 GetStdSize]()_[@(0.0.255) const]&] +[s6; This method should return maximal size of Ctrl.&] +[s1; [*/ Return value]-|Maximal size.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) bool]_[@0 IsShowEnabled]()_[@(0.0.255) const]&] +[s6; This method indicates whether Ctrl should be painted as enabled. +Default implementation returns IsEnabled() `&`& (!parent `|`| +parent`->IsShowEnabled()), however TopWindow overloads this function +so that owner of modal dialogs while being disabled during modal +dialog lifetime are displayed with enabled Ctrls.&] +[s1; [*/ Return value]-|true if Ctrl should be painted as enabled.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:OverPaint`(`)const:%- virtual [@(0.0.255) int]_[@0 OverPaint]()_[@(0.0.255) c +onst]&] +[s6; This method can returns non`-zero number that represents paint +extension margin of view area `- Ctrl can paint inside this margin +despite that fact that it does not belong to view. This is useful +to represent some specific skinning effect (like glare around +the button). Default implementation returns zero.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:GetOpaqueRect`(`):%- virtual [^`:`:Rect^ Rect]_[@0 GetOpaqueRect]()&] +[s6; Returns the rectangle of view area that is opaque (is completely +filled when painting the widget). The default implementation +returns the whole view area if Transparent flag is set, empty +rectangle otherwise. Paint routine uses this information to optimize.&] +[s0; &] +[s22;K:`:`:Ctrl`:`:GetVoidRect`(`):%- virtual [^`:`:Rect^ Rect]_[@0 GetVoidRect]()&] +[s6; Returns the rectangle of view area that is fully transparent +(nothing is painted in that rectangle). Paint routine uses this +information to optimize.&] +[s0; &] +[s0;:`:`:Ctrl`:`:GetTransparentFrameRects`(`):%- virtual Vector_[* GetTransparent +FrameRects]()&] +[s6; For transparent Ctrl returns set of frame areas that should +be painted as transparent.&] +[s1; [*/ Return value]-|Vector of transparent frame areas.&] +[s0;3 &] +[s0;:`:`:Ctrl`:`:GetOpaqueFrameRects`(`):%- virtual Vector_[* GetOpaqueFrameRects +]()&] +[s6; For transparent Ctrl returns set of frame areas that should +be painted as opaque (means that painting Ctrls `"under`" is +not needed.).&] +[s1; [*/ Return value]-|Vector of opaque frame areas.&] +[s0;3 &] +[s0;:`:`:Ctrl`:`:GetTransparentViewRects`(`):%- virtual Vector_[* GetTransparentV +iewRects]()&] +[s6; For transparent Ctrl is transparent, returns set of view areas +that should be painted as transparent.&] +[s1; [*/ Return value]-|Vector of transparent view areas. &] +[s0;3 &] +[s0;:`:`:Ctrl`:`:GetOpaqueViewRects`(`):%- virtual Vector_[* GetOpaqueViewRects]( +)&] +[s6; For transparent Ctrl returns set of view areas that should be +painted as opaque.&] +[s1; [*/ Return value]-|Vector of opaque view areas.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 Close]()&] +[s6; Closes top`-level Ctrl. If Ctrl is not top`-level, has no effect. +If it is and is open in host GUI (either as pop`-up or as [^topic`:`/`/CtrlCore`/src`/TopWindow`$en`-us`#`:`:TopWindow`:`:class^ T +opWindow]), it should close it. Default implementation closes. +TopWindow overrides this method to break modal loop instead of +closing if modal loop is performed for it.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) bool]_[@0 IsOcxChild]()&] +[s6; Used for Ocx control implementation.&] +[s0;3 &] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:SetData`(const`:`:Value`&`):%- virtual [@(0.0.255) void]_[@0 SetData]([@(0.0.255) c +onst]_[^`:`:Value^ Value]`&_[@3 data])&] +[s6; Sets the new value to the object. Default implementation is +void.&] +[s1; [*C@3 data]-|New value.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:GetData`(`)const:%- virtual [^`:`:Value^ Value]_[@0 GetData]()_[@(0.0.255) c +onst]&] +[s6; Gets current value of the object. Default implementation returns +Value() `- void value.&] +[s1; [*/ Return value]-|Value of object.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:SetModify`(`):%- virtual [@(0.0.255) void]_[@0 SetModify]()&] +[s6; Sets modification flag.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:ClearModify`(`):%- virtual [@(0.0.255) void]_[@0 ClearModify]()&] +[s6; Clears modification flag. Default implementation is empty.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:IsModified`(`)const:%- virtual [@(0.0.255) bool]_[@0 IsModified]()_[@(0.0.255) c +onst]&] +[s6; Queries modification flag. Default implementation returns false.&] +[s1; [*/ Return value]-|Modification flag.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:Accept`(`):%- virtual [@(0.0.255) bool]_[@0 Accept]()&] +[s6; This virtual method is called when value of Ctrl is about to +be accepted. Default implementation calls Accept for all child +Ctrls and returns false if any of child Ctrls returns false, +true otherwise.&] +[s6; Typical use is when user pressed OK button. If any Ctrl of dialog +returns false, OK is canceled.&] +[s6; Typical implementation of this method should test whether current +state of Ctrl (its edited value) matches requirements. If it +does, it should finish editing, accept edited value and return +true. Otherwise it should return false, &] +[s1; [*/ Return value]-|Ctrl should return true if it successfully finished +editing, false otherwise.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:Reject`(`):%- virtual [@(0.0.255) void]_[@0 Reject]()&] +[s6; This virtual method is called when Ctrl should abort editing, +discarding edited value. Default implementation calls Reject +for all child Ctrls.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:Serialize`(`:`:Stream`&`):%- virtual [@(0.0.255) void]_[@0 Serialize]([^`:`:Stream^ S +tream]`&_[@3 s])&] +[s6; Serialization method. Should serialize the value of Ctrl in +a way that is suitable for dialog backup and optional restore +(e.g. when user presses Cancel button).&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 AddChild]([^`:`:Ctrl^ Ctrl]_`*[@3 child])&] +[s6; Adds a child Ctrl as last one.&] +[s1; [%-*C@3 child]-|Pointer to child Ctrl at the end of child list. +Note that U`+`+ never takes ownership of Ctrls `- never calls +delete for [@3 child. ]That allows using non`-heap based Ctrls. +&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 AddChild]([^`:`:Ctrl^ Ctrl]_`*[@3 child], [^`:`:Ctrl^ Ctrl]_`*[@3 i +nsafter])&] +[s6; Inserts child Ctrl after another Ctrl that is already child.&] +[s1; [%-*C@3 child]-|Pointer to child Ctrl.&] +[s1; [%-*C@3 insafter]-|Ctrl that will be before inserted Ctrl.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 AddChildBefore]([^`:`:Ctrl^ Ctrl]_`*[@3 child], +[^`:`:Ctrl^ Ctrl]_`*[@3 insbefore])&] +[s6; Inserts child Ctrl before another Ctrl that is already child.&] +[s1; [%-*C@3 child]-|Pointer to child Ctrl.&] +[s1; [%-*C@3 insbefore]-|Ctrl that will be after inserted Ctrl.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 RemoveChild]([^`:`:Ctrl^ Ctrl]_`*[@3 child])&] +[s6; Removes Ctrl from child list. Ctrl is never deleted.&] +[s1; [%-*C@3 child]-|Child to be removed.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetParent]()_[@(0.0.255) const]&] +[s6; Returns parent of Ctrl or NULL if Ctrl is topmost.&] +[s1; [*/ Return value]-|Pointer to parent Ctrl.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetLastChild]()_[@(0.0.255) const]&] +[s6; Returns last child.&] +[s1; [*/ Return value]-|Pointer to last child or NULL if Ctrl has no +children.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetFirstChild]()_[@(0.0.255) const]&] +[s6; Returns first child.&] +[s1; [*/ Return value]-|Pointer to first child or NULL if Ctrl has no +children.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetPrev]()_[@(0.0.255) const]&] +[s6; Returns child that is before this Ctrl in child list or NULL +if Ctrl is first or not in list.&] +[s1; [*/ Return value]-|Pointer to previous child or NULL.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetNext]()_[@(0.0.255) const]&] +[s6; Returns next child that is after this Ctrl in child list or +NULL if Ctrl is last or not in list.&] +[s1; [*/ Return value]-|Pointer to next child or NULL.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsChild]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|True if Ctrl has parent.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 ChildFromPoint]([^`:`:Point^ Point]`&_[@3 pt])_[@(0.0.255) cons +t]&] +[s6; Checks whether opened top`-level Ctrl is foreground.&] +[s1; [*/ Return value]-|True if Ctrl is foreground.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetForeground]()&] +[s6; Asks platform to put top`-level Ctrl to foreground.&] +[s0;3 &] +[s22;K%- [@(0.0.255) const]_[^`:`:Ctrl^ Ctrl]_`*[@0 GetTopCtrl]()_[@(0.0.255) const]&] +[s6; Gets the top`-level Ctrl, that is Ctrl that has this Ctrl in +child tree and has no parent.&] +[s1; [*/ Return value]-|Pointer to top`-level Ctrl. Can return this.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetTopCtrl]()&] +[s6; Gets the top`-level Ctrl, that is Ctrl that has this Ctrl in +child tree and has no parent.&] +[s1; [*/ Return value]-|Pointer to top`-level Ctrl. Can return this.&] +[s0;3 &] +[s22;K%- [@(0.0.255) const]_[^`:`:Ctrl^ Ctrl]_`*[@0 GetOwner]()_[@(0.0.255) const]&] +[s6; Returns owner of top`-level Ctrl. Example of owned window is +dialog launched from main application window. Owner is another +top`-level Ctrl.&] +[s1; [*/ Return value]-|Pointer to owner top`-level Ctrl or NULL is +window is not owned.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetOwner]()&] +[s6; Returns owner of top`-level Ctrl.&] +[s1; [*/ Return value]-|Pointer to owner top`-level Ctrl or NULL is +window is not owned.&] +[s0;3 &] +[s22;K%- [@(0.0.255) const]_[^`:`:Ctrl^ Ctrl]_`*[@0 GetTopCtrlOwner]()_[@(0.0.255) const]&] +[s6; Equivalent to GetTopCtrl()`->GetOwner() call.&] +[s1; [*/ Return value]-|Pointer to owner of top`-level Ctrl.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetTopCtrlOwner]()&] +[s6; Equivalent to GetTopCtrl()`->GetOwner() call.&] +[s1; [*/ Return value]-|Pointer to owner of top`-level Ctrl.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:GetOwnerCtrl`(`):%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetOwnerCtrl]()&] +[s22;K:`:`:Ctrl`:`:GetOwnerCtrl`(`)const:%- [@(0.0.255) const]_[^`:`:Ctrl^ Ctrl]_`*[@0 GetOw +nerCtrl]()_[@(0.0.255) const]&] +[s6; Returns the owner Ctrl. Unlike GetOwner, it returns actual widget +that was used as `"owner`" parameter in Open or PopUp calls.&] +[s0; &] +[s22;K%- [@(0.0.255) const]_[^`:`:TopWindow^ TopWindow]_`*[@0 GetTopWindow]()_[@(0.0.255) cons +t]&] +[s6; TopWindow that contains this Ctrl.&] +[s1; [*/ Return value]-|Pointer to TopWindow.&] +[s0;3 &] +[s22;K%- [^`:`:TopWindow^ TopWindow]_`*[@0 GetTopWindow]()&] +[s6; TopWindow that contains this Ctrl.&] +[s1; [*/ Return value]-|Pointer to TopWindow.&] +[s0; &] +[s0;3 &] +[s22;K%- [@(0.0.255) const]_[^`:`:TopWindow^ TopWindow]_`*[@0 GetMainWindow]()_[@(0.0.255) con +st]&] +[s6; Returns main window (one with no owner) that directly or indirectly +owns this Ctrl.&] +[s1; [*/ Return value]-|Pointer to main window.&] +[s0;3 &] +[s22;K%- [^`:`:TopWindow^ TopWindow]_`*[@0 GetMainWindow]()&] +[s6; Returns main window (one with no owner) that directly or indirectly +owns this Ctrl.&] +[s1; [*/ Return value]-|Pointer to main window.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetFrame]([@(0.0.255) int]_[@3 i], [^`:`:CtrlFrame^ CtrlFrame]`& +_[@3 frm])&] +[s6; Sets Frame at given position. If there is no such position yet, +required number of NullFrame frames is added. Only reference +to frame is stored, that means that frame must exists during +the time it is used in Ctrl. Also, some frames can also be used +for multiple Ctrls.&] +[s1; [%-*C@3 i]-|Position. First frame with i `=`= 0 is outermost.&] +[s1; [%-*C@3 frm]-|Reference to frame.&] +[s1; [*/ Return value]-|Returns `*this to allow chaining of method calls.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetFrame]([^`:`:CtrlFrame^ CtrlFrame]`&_[@3 frm])&] +[s6; Sets frame at position 0.&] +[s1; [%-*C@3 frm]-|Reference to frame.&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 AddFrame]([^`:`:CtrlFrame^ CtrlFrame]`&_[@3 frm])&] +[s6; Adds frame at inner`-most position.&] +[s1; [%-*C@3 frm]-|Reference to frame.&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [@(0.0.255) const]_[^`:`:CtrlFrame^ CtrlFrame]`&_[@0 GetFrame]([@(0.0.255) int]_[@3 i]_ +`=_[@3 0])_[@(0.0.255) const]&] +[s6; Returns reference to frame at given position.&] +[s1; [%-*C@3 i]-|Position.&] +[s1; [*/ Return value]-|Reference to frame.&] +[s0;3 &] +[s22;K%- [^`:`:CtrlFrame^ CtrlFrame]`&_[@0 GetFrame]([@(0.0.255) int]_[@3 i]_`=_[@3 0])&] +[s6; Returns reference to frame at given position.&] +[s1; [%-*C@3 i]-|Position.&] +[s1; [*/ Return value]-|Reference to frame.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 RemoveFrame]([@(0.0.255) int]_[@3 i])&] +[s6; Removes frame at given position.&] +[s1; [%-*C@3 i]-|Index of frame.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 RemoveFrame]([^`:`:CtrlFrame^ CtrlFrame]`&_[@3 frm])&] +[s6; Removes first frame equal to [@3 frm]. Equality means here that +pointers to both frames are the same (it is same instance).&] +[s1; [%-*C@3 frm]-|Frame to remove.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 InsertFrame]([@(0.0.255) int]_[@3 i], [^`:`:CtrlFrame^ CtrlFrame]`& +_[@3 frm])&] +[s6; Inserts frame at given position.&] +[s1; [%-*C@3 i]-|Position.&] +[s1; [%-*C@3 frm]-|Reference to frame.&] +[s0;3 &] +[s22;K%- [@(0.0.255) int]_[@0 FindFrame]([^`:`:CtrlFrame^ CtrlFrame]`&_[@3 frm])&] +[s6; Finds first frame equal to [@3 frm]. Equality means here that +pointers to both frames are the same (it is same instance).&] +[s1; [%-*C@3 frm]-|Frame to find.&] +[s1; [*/ Return value]-|Index of frame or negative value if frame is +not found.&] +[s0;3 &] +[s22;K%- [@(0.0.255) int]_[@0 GetFrameCount]()_[@(0.0.255) const]&] +[s6; Returns count of frames in Ctrl.&] +[s1; [*/ Return value]-|Count of frames.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 ClearFrames]()&] +[s6; Removes all frames from Ctrl. Frame at position 0 then added +and set to NullFrame.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsOpen]()_[@(0.0.255) const]&] +[s6; Checks whether top`-level Ctrl of this Ctrl is open.&] +[s1; [*/ Return value]-|true if open.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Shutdown]()&] +[s6; Sets internal flag indicating that Ctrl is being destructed. +This is rarely used to solve some destruction order problems.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsShutdown]()_[@(0.0.255) const]&] +[s6; Checks whether internal shutdown flag is set.&] +[s1; [*/ Return value]-|True if in shutdown mode.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetPos]([^`:`:Ctrl`:`:LogPos^ LogPos]_[@3 p], +[@(0.0.255) bool]_[@3 inframe])&] +[s6; Sets [^topic`:`/`/CtrlCore`/src`/LogPos`$en`-us^ logical position] +of Ctrl. If Ctrl is top`-level, logical position must be of left`-top +type.&] +[s1; [%-*C@3 p]-|Logical position.&] +[s1; [%-*C@3 inframe]-|If true, Ctrl is placed into [^topic`:`/`/CtrlCore`/src`/AboutFrames`$en`-us^ f +rame area] instead of view area&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetPos]([^`:`:Ctrl`:`:LogPos^ LogPos]_[@3 p])&] +[s6; Sets logical position of Ctrl in view area.&] +[s1; [%-*C@3 p]-|Logical position.&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetPos]([^`:`:Ctrl`:`:Logc^ Logc]_[@3 x], +[^`:`:Ctrl`:`:Logc^ Logc]_[@3 y])&] +[s6; Sets logical position by individual coordinates (in view area).&] +[s1; [%-*C@3 x]-|Horizontal logical position.&] +[s1; [%-*C@3 y]-|Vertical logical postion.&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetPosX]([^`:`:Ctrl`:`:Logc^ Logc]_[@3 x])&] +[s6; Sets horizontal logical position only (in view area).&] +[s1; [%-*C@3 x]-|Horizontal logical position.&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetPosY]([^`:`:Ctrl`:`:Logc^ Logc]_[@3 y])&] +[s6; Sets vertical logical position only (in view area).&] +[s1; [%-*C@3 y]-|Vertical logical position.&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetRect]([@(0.0.255) const]_[^`:`:Rect^ Rect]`&_[@3 r])&] +[s6; Sets left`-top logical position (in view area).&] +[s1; [%-*C@3 r]-|Rectangle determines left`-top position.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetRect]([@(0.0.255) int]_[@3 x], [@(0.0.255) int]_[@3 y], +[@(0.0.255) int]_[@3 cx], [@(0.0.255) int]_[@3 cy])&] +[s6; Sets left`-top logical position (in view area).&] +[s1; [%-*C@3 x]-|Distance between parent rectangle left`-edge and Ctrl.&] +[s1; [%-*C@3 y]-|Distance between parent rectangle top`-edge and Ctrl.&] +[s1; [%-*C@3 cx]-|Horizontal size.&] +[s1; [%-*C@3 cy]-|Vertical size.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetRectX]([@(0.0.255) int]_[@3 x], [@(0.0.255) int]_[@3 cx])&] +[s6; Sets left horizontal logical position (in view area).&] +[s1; [%-*C@3 x]-|Distance between parent rectangle left`-edge and Ctrl.&] +[s1; [%-*C@3 cx]-|Horizontal size.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetRectY]([@(0.0.255) int]_[@3 y], [@(0.0.255) int]_[@3 cy])&] +[s6; Sets top vertical logical position (in view area).&] +[s1; [%-*C@3 y]-|Distance between parent rectangle top`-edge and Ctrl.&] +[s1; [%-*C@3 cy]-|Vertical size.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetFramePos]([^`:`:Ctrl`:`:LogPos^ LogPos]_[@3 p])&] +[s6; Sets logical position of Ctrl in frame area.&] +[s1; [%-*C@3 p]-|Logical position.&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetFramePos]([^`:`:Ctrl`:`:Logc^ Logc]_[@3 x], +[^`:`:Ctrl`:`:Logc^ Logc]_[@3 y])&] +[s6; Sets logical position by individual coordinates (in frame area).&] +[s1; [%-*C@3 x]-|Horizontal logical position.&] +[s1; [%-*C@3 y]-|Vertical logical postion.&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetFramePosX]([^`:`:Ctrl`:`:Logc^ Logc]_[@3 x])&] +[s6; Sets horizontal logical position only (in frame area).&] +[s1; [%-*C@3 x]-|Horizontal logical position.&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetFramePosY]([^`:`:Ctrl`:`:Logc^ Logc]_[@3 y])&] +[s6; Sets vertical logical position only (in frame area).&] +[s1; [%-*C@3 y]-|Vertical logical position.&] +[s1; [*/ Return value]-|`*this.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetFrameRect]([@(0.0.255) const]_[^`:`:Rect^ Rect]`&_[@3 r])&] +[s6; Sets left`-top logical position (in frame area).&] +[s1; [%-*C@3 r]-|Rectangle determines left`-top position.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetFrameRect]([@(0.0.255) int]_[@3 x], [@(0.0.255) int]_[@3 y], +[@(0.0.255) int]_[@3 cx], [@(0.0.255) int]_[@3 cy])&] +[s6; Sets left`-top logical position (in frame area).&] +[s1; [%-*C@3 x]-|Distance between parent rectangle left`-edge and Ctrl.&] +[s1; [%-*C@3 y]-|Distance between parent rectangle top`-edge and Ctrl.&] +[s1; [%-*C@3 cx]-|Horizontal size.&] +[s1; [%-*C@3 cy]-|Vertical size.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetFrameRectX]([@(0.0.255) int]_[@3 x], [@(0.0.255) int]_[@3 cx])&] +[s6; Sets left horizontal logical position (in frame area).&] +[s1; [%-*C@3 x]-|Distance between parent rectangle left`-edge and Ctrl.&] +[s1; [%-*C@3 cx]-|Horizontal size.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetFrameRectY]([@(0.0.255) int]_[@3 y], [@(0.0.255) int]_[@3 cy])&] +[s6; Sets top vertical logical position (in frame area).&] +[s1; [%-*C@3 y]-|Distance between parent rectangle top`-edge and Ctrl.&] +[s1; [%-*C@3 cy]-|Vertical size.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 InFrame]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|true when Ctrl has position in frame area.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 InView]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|true when Ctrl has position in view area.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl`:`:LogPos^ LogPos]_[@0 GetPos]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Logical position of Ctrl&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 RefreshLayout]()&] +[s6; Recomputes layout for Ctrl. This includes calling FrameLayout +for all frames and calling Layout virtual method.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 RefreshParentLayout]()&] +[s6; If Ctrl has parent, calls parent`->RefreshLayout().&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 LeftPos]([@(0.0.255) int]_[@3 a], [@(0.0.255) int]_[@3 size]_`=_S +TDSIZE)&] +[s6; Sets left horizontal position (in view area).&] +[s1; [%-*C@3 a]-|Distance from left border of parent.&] +[s1; [%-*C@3 size]-|Horizontal size.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 RightPos]([@(0.0.255) int]_[@3 a], [@(0.0.255) int]_[@3 size]_`=_ +STDSIZE)&] +[s6; Sets right horizontal position (in view area).&] +[s1; [%-*C@3 a]-|Distance from the right border of parent.&] +[s1; [%-*C@3 size]-|Horizontal size.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 TopPos]([@(0.0.255) int]_[@3 a], [@(0.0.255) int]_[@3 size]_`=_ST +DSIZE)&] +[s6; Sets top vertical position (in view area).&] +[s1; [%-*C@3 a]-|Distance from the top border of parent.&] +[s1; [%-*C@3 size]-|Vertical size.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 BottomPos]([@(0.0.255) int]_[@3 a], [@(0.0.255) int]_[@3 size]_`= +_STDSIZE)&] +[s6; Sets bottom vertical position (in view area).&] +[s1; [%-*C@3 a]-|Distance from the bottom border of parent.&] +[s1; [%-*C@3 size]-|Vertical size.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 HSizePos]([@(0.0.255) int]_[@3 a]_`=_[@3 0], +[@(0.0.255) int]_[@3 b]_`=_[@3 0])&] +[s6; Sets horizontal sizing position (in view area).&] +[s1; [%-*C@3 a]-|Distance from left border of parent.&] +[s1; [%-*C@3 b]-|Distance from right border of parent.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 VSizePos]([@(0.0.255) int]_[@3 a]_`=_[@3 0], +[@(0.0.255) int]_[@3 b]_`=_[@3 0])&] +[s6; Sets vertical sizing position (in view area).&] +[s1; [%-*C@3 a]-|Distance form top border of parent.&] +[s1; [%-*C@3 b]-|Distance from bottom border of parent.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SizePos]()&] +[s6; Same as VSizePos().HSizePos().&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 HCenterPos]([@(0.0.255) int]_[@3 size]_`=_STDSIZE, +[@(0.0.255) int]_[@3 delta]_`=_[@3 0])&] +[s6; Horizontal centered position (in view area).&] +[s1; [%-*C@3 size]-|Horizontal size.&] +[s1; [%-*C@3 delta]-|Offset from centered position (rarely used).&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 VCenterPos]([@(0.0.255) int]_[@3 size]_`=_STDSIZE, +[@(0.0.255) int]_[@3 delta]_`=_[@3 0])&] +[s6; Vertical centered position (in view area).&] +[s1; [%-*C@3 size]-|Vertical size.&] +[s1; [%-*C@3 delta]-|Offset from centered position (rarely used).&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 LeftPosZ]([@(0.0.255) int]_[@3 a], [@(0.0.255) int]_[@3 size]_`=_ +STDSIZE)&] +[s6; Sets left horizontal [/ zoomed ]position (in view area). Distances +are recalculated using zoom factor to accommodate size differences +between standard font used during layout design and actual standard +font.&] +[s1; [%-*C@3 a]-|Distance from the left border of parent.&] +[s1; [%-*C@3 size]-|Horizontal size.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 RightPosZ]([@(0.0.255) int]_[@3 a], [@(0.0.255) int]_[@3 size]_`= +_STDSIZE)&] +[s6; Sets right horizontal [/ zoomed ]position (in view area). Distances +are recalculated using zoom factor to accommodate size differences +between standard font used during layout design and actual standard +font.&] +[s1; [%-*C@3 a]-|Distance from the right border of parent.&] +[s1; [%-*C@3 size]-|Horizontal size.&] +[s6; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 TopPosZ]([@(0.0.255) int]_[@3 a], [@(0.0.255) int]_[@3 size]_`=_S +TDSIZE)&] +[s6; Sets top vertical [/ zoomed ]position (in view area). Distances +are recalculated using zoom factor to accommodate size differences +between standard font used during layout design and actual standard +font.&] +[s1; [%-*C@3 a]-|Distance from the top border of parent.&] +[s1; [%-*C@3 size]-|Vertical size.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 BottomPosZ]([@(0.0.255) int]_[@3 a], [@(0.0.255) int]_[@3 size]_`= +_STDSIZE)&] +[s6; Sets bottom vertical [/ zoomed ]position (in view area). Distances +are recalculated using zoom factor to accommodate size differences +between standard font used during layout design and actual standard +font.&] +[s1; [%-*C@3 a]-|Distance from the bottom border of parent.&] +[s1; [%-*C@3 size]-|Vertical size.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 HSizePosZ]([@(0.0.255) int]_[@3 a]_`=_[@3 0], +[@(0.0.255) int]_[@3 b]_`=_[@3 0])&] +[s6; Sets vertical [/ zoomed ]sizing position (in view area). Distances +are recalculated using zoom factor to accommodate size differences +between standard font used during layout design and actual standard +font.&] +[s1; [%-*C@3 a]-|Distance form top border of parent.&] +[s1; [%-*C@3 b]-|Distance from bottom border of parent.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 VSizePosZ]([@(0.0.255) int]_[@3 a]_`=_[@3 0], +[@(0.0.255) int]_[@3 b]_`=_[@3 0])&] +[s6; Sets vertical [/ zoomed ]sizing position (in view area). Distances +are recalculated using zoom factor to accommodate size differences +between standard font used during layout design and actual standard +font.&] +[s1; [%-*C@3 a]-|Distance form top border of parent.&] +[s1; [%-*C@3 b]-|Distance from bottom border of parent.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 HCenterPosZ]([@(0.0.255) int]_[@3 size]_`=_STDSIZE, +[@(0.0.255) int]_[@3 delta]_`=_[@3 0])&] +[s6; Horizontal centered [/ zoomed ]position (in view area). Distances +are recalculated using zoom factor to accommodate size differences +between standard font used during layout design and actual standard +font.&] +[s1; [%-*C@3 size]-|Horizontal size.&] +[s1; [%-*C@3 delta]-|Offset from centered position (rarely used).&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 VCenterPosZ]([@(0.0.255) int]_[@3 size]_`=_STDSIZE, +[@(0.0.255) int]_[@3 delta]_`=_[@3 0])&] +[s6; Vertical centered [/ zoomed] position (in view area). Distances +are recalculated using zoom factor to accommodate size differences +between standard font used during layout design and actual standard +font.&] +[s1; [%-*C@3 size]-|Vertical size.&] +[s1; [%-*C@3 delta]-|Offset from centered position (rarely used).&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Rect^ Rect]_[@0 GetRect]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Returns current position in parent. It is either +position in view or frame coordinates.&] +[s0;3 &] +[s22;K%- [^`:`:Rect^ Rect]_[@0 GetScreenRect]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Returns current position in absolute screen +coordinates.&] +[s0;3 &] +[s22;K%- [^`:`:Rect^ Rect]_[@0 GetView]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Returns position of view rectangle in frame +coordinates.&] +[s0;3 &] +[s22;K%- [^`:`:Rect^ Rect]_[@0 GetScreenView]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Returns position of view rectangle in absolute +screen coordinates.&] +[s0;3 &] +[s22;K%- [^`:`:Size^ Size]_[@0 GetSize]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Returns size of view rectangle of Ctrl.&] +[s0;3 &] +[s22;K%- [^`:`:Rect^ Rect]_[@0 GetVisibleScreenRect]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Returns current position in parent intersected +with either parent`'s visible screen rectangle for frame Ctrl +(as obtained using GetVisibleScreenRect) or parent`'s screen +view rectangle for view Ctrl (obtained using GetVisibleScreenView). +This method is useful when rectangle of Ctrl exceeds it`'s parent +area `- in this case this method returns part of Ctrl that is +not clipped out by parent`'s are limits.&] +[s0;3 &] +[s22;K%- [^`:`:Rect^ Rect]_[@0 GetVisibleScreenView]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Returns current position of view area intersected +with either parent`'s visible screen rectangle for frame Ctrl +(as obtained using GetVisibleScreenRect) or parent`'s screen +view rectangle for view Ctrl (obtained using GetVisibleScreenView). +This method is useful when rectangle of Ctrl exceeds it`'s parent +area `- in this case this method returns part of Ctrl view that +is not clipped out by parent`'s are limits.&] +[s0;3 &] +[s22;K%- [^`:`:Size^ Size]_[@0 AddFrameSize]([@(0.0.255) int]_[@3 cx], [@(0.0.255) int]_[@3 cy])_[@(0.0.255) c +onst]&] +[s6; Computes size of Ctrl for given size of view and actual set +of frames.&] +[s1; [%-*C@3 cx]-|Width.&] +[s1; [%-*C@3 cy]-|Height.&] +[s1; [*/ Return value]-|Size of Ctrl that would have requested view +size.&] +[s0;3 &] +[s22;K%- [^`:`:Size^ Size]_[@0 AddFrameSize]([^`:`:Size^ Size]_[@3 sz])_[@(0.0.255) const]&] +[s6; Same as AddFrameSize(sz.cx, sz.cy).&] +[s1; [%-*C@3 sz]-|Size.&] +[s1; [*/ Return value]-|Size of Ctrl that would have requested view +size.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Refresh]([@(0.0.255) const]_[^`:`:Rect^ Rect]`&_[@3 area])&] +[s6; Marks requested rectangle of view area for repainting. Actual +repaint is deferred for performance reasons.&] +[s1; [%-*C@3 r]-|Rectangle in view.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Refresh]([@(0.0.255) int]_[@3 x], [@(0.0.255) int]_[@3 y], +[@(0.0.255) int]_[@3 cx], [@(0.0.255) int]_[@3 cy])&] +[s6; Marks requested rectangle of view area for repainting. Actual +repaint is deferred for performance reasons.&] +[s1; [%-*C@3 x]-|Left position of rectangle.&] +[s1; [%-*C@3 y]-|Top position of rectangle.&] +[s1; [%-*C@3 cx]-|Width.&] +[s1; [%-*C@3 cy]-|Height.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Refresh]()&] +[s6; Marks whole view area for repainting.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsFullRefresh]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|true when whole view area is marked for repainting +but was not repainted yet.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 RefreshFrame]([@(0.0.255) const]_[^`:`:Rect^ Rect]`&_[@3 r])&] +[s6; Marks requested rectangle of frame area for repainting. Actual +repainting is deferred for performance reasons.&] +[s1; [%-*C@3 r]-|Area to repaint.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 RefreshFrame]([@(0.0.255) int]_[@3 x], [@(0.0.255) int]_[@3 y], +[@(0.0.255) int]_[@3 cx], [@(0.0.255) int]_[@3 cy])&] +[s6; Marks requested rectangle of frame area for repainting. Actual +repaint is deferred for performance reasons.&] +[s1; [%-*C@3 x]-|Left position of rectangle.&] +[s1; [%-*C@3 y]-|Top position of rectangle.&] +[s1; [%-*C@3 cx]-|Width.&] +[s1; [%-*C@3 cy]-|Height.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 RefreshFrame]()&] +[s6; Marks whole Ctrl area for repainting.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 ScrollView]([@(0.0.255) const]_[^`:`:Rect^ Rect]`&_[@3 `_r], +[@(0.0.255) int]_[@3 dx], [@(0.0.255) int]_[@3 dy])&] +[s6; Marks requested view rectangle for repainting, indicating that +part of this repaint can be done by scrolling current content +of rectangle. Note that actual scroll is deferred to repaint +and that U`+`+ is still allowed to solve the situation by repainting +rather than scrolling.&] +[s1; [%-*C@3 r]-|Area for repainting.&] +[s1; [%-*C@3 dx]-|Horizontal scroll.&] +[s1; [%-*C@3 dy]-|Vertical scroll.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 ScrollView]([@(0.0.255) int]_[@3 x], [@(0.0.255) int]_[@3 y], +[@(0.0.255) int]_[@3 cx], [@(0.0.255) int]_[@3 cy], [@(0.0.255) int]_[@3 dx], +[@(0.0.255) int]_[@3 dy])&] +[s6; Marks requested view rectangle for repainting, indicating that +part of this repaint can be done by scrolling current content +of rectangle. Note that actual scroll is deferred to repaint +and that U`+`+ is still allowed to solve the situation by repainting +rather than scrolling.&] +[s1; [%-*C@3 r]-|Area for repainting.&] +[s1; [%-*C@3 x]-|Left position of rectangle.&] +[s1; [%-*C@3 y]-|Top position of rectangle.&] +[s1; [%-*C@3 cx]-|Width.&] +[s1; [%-*C@3 cy]-|Height.&] +[s1; [%-*C@3 dx]-|Horizontal scroll.&] +[s1; [%-*C@3 dy]-|Vertical scroll.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 ScrollView]([@(0.0.255) int]_[@3 dx], [@(0.0.255) int]_[@3 dy])&] +[s6; Marks while view area for repainting, indicating that part of +this repaint can be done by scrolling current content of rectangle. +Note that actual scroll is deferred to repaint and that U`+`+ +is still allowed to solve the situation by repainting rather +than scrolling.&] +[s1; [%-*C@3 dx]-|Horizontal scroll.&] +[s1; [%-*C@3 dy]-|Vertical scroll.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 ScrollView]([@(0.0.255) const]_[^`:`:Rect^ Rect]`&_[@3 r], +[^`:`:Size^ Size]_[@3 delta])&] +[s6; Same as ScrollView(r, delta.cx, delta.cy).&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 ScrollView]([^`:`:Size^ Size]_[@3 delta])&] +[s6; Same as ScrollView(delta.cx, delta.cy).&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Sync]()&] +[s6; Forces immediate repainting of areas marked using Refresh, RefreshFrame +or ScrollView methods.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Sync]([@(0.0.255) const]_[^`:`:Rect^ Rect]`&_[@3 sr])&] +[s6; Forces immediate repainting of areas marked using Refresh, RefreshFrame +or ScrollView methods, limited with intersection of given rectangle.&] +[s1; [%-*C@3 r]-|Rectangle.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:OverrideCursor`(const`:`:Image`&`):%- [^`:`:Image^ Image]_[@0 OverrideC +ursor]([@(0.0.255) const]_[^`:`:Image^ Image]`&_[@3 m])&] +[s6; Overrides mouse cursor to [%-*@3 m]. To end the override, call +it again with the Image returned by the override call.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 DrawCtrl]([^`:`:Draw^ Draw]`&_[@3 w], [@(0.0.255) int]_[@3 x], +[@(0.0.255) int]_[@3 y])&] +[s6; Draws Ctrl at specified position. This is intended for utility +purposes like taking screen`-shots. This version Draws Ctrl [/ without] +background (supplied by parent).&] +[s1; [%-*C@3 w]-|Target Draw.&] +[s1; [%-*C@3 x, ][*C@3 y]-|Position.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 DrawCtrlWithParent]([^`:`:Draw^ Draw]`&_[@3 w], +[@(0.0.255) int]_[@3 x], [@(0.0.255) int]_[@3 y])&] +[s6; Draws Ctrl at specified position. This is intended for utility +purposes like taking screen`-shots. This version Draws Ctrl [/ with] +background (supplied by parent).&] +[s1; [%-*C@3 w]-|Target Draw.&] +[s1; [%-*C@3 x, ][*C@3 y]-|Position.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 HasChild]([^`:`:Ctrl^ Ctrl]_`*[@3 ctrl])_[@(0.0.255) const]&] +[s6; Tests whether Ctrl has specified [/ direct] child.&] +[s1; [%-*C@3 ctrl]-|Child.&] +[s1; [*/ Return value]-|true if ctrl is child.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 HasChildDeep]([^`:`:Ctrl^ Ctrl]_`*[@3 ctrl])_[@(0.0.255) const]&] +[s6; Tests whether Ctrl has specified ctrl in its child tree (direct +or indirect).&] +[s1; [%-*C@3 ctrl]-|Child.&] +[s1; [*/ Return value]-|true if ctrl is in child tree.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 IgnoreMouse]([@(0.0.255) bool]_[@3 b]_`=_true)&] +[s6; Sets ignore`-mouse flag. When active, Ctrl is ignored for mouse +input. That is important for static Ctrls that cover other Ctrls, +like LabelBox `- this flag ensures, that mouse input is not consumed +by LabelBox, but is distributed to Ctrls that lay inside it.&] +[s1; [%-*C@3 b]-|Value of flag.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 NoIgnoreMouse]()&] +[s6; Same as IgnoreMouse(false).&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 HasMouse]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|true when Ctrl is target for mouse events.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 HasMouseInFrame]([@(0.0.255) const]_[^`:`:Rect^ Rect]`&_[@3 r])&] +[s1; [%-*C@3 r]-|rectangle in frame area.&] +[s1; [*/ Return value]-|true when Ctrl is target for mouse events and +mouse pointer is inside specified frame area rectangle.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 HasMouseIn]([@(0.0.255) const]_[^`:`:Rect^ Rect]`&_[@3 r])&] +[s1; [%-*C@3 r]-|rectangle in view area.&] +[s1; [*/ Return value]-|true when Ctrl is target for mouse events and +mouse pointer is inside specified view area rectangle.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl^ Ctrl]_`*[@0 GetMouseCtrl]()&] +[s1; [*/ Return value]-|Returns current target for mouse events.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 IgnoreMouseClick]()&] +[s6; Forces framework to ignore all mouse events till next button`-up +event. This is good tool to solve some corner cases, like popup +window closed by button click when mouse pointer is over its +owner as well (TopWindow`::Close calls this function).&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 IgnoreMouseUp]()&] +[s6; Invokes IgnoreMouseClick if some of mouse buttons is pressed.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 SetCapture]()&] +[s6; Sets mouse capture for Ctrl. This method should be called in +MouseLeft or MouseRight methods only. Ctrl will receive all mouse +input until ReleaseCapture is called or mouse button is released.&] +[s1; [*/ Return value]-|True when SetCapture was successful (usually +you can ignore this return value).&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 ReleaseCapture]()&] +[s6; Release Ctrl`'s mouse capture.&] +[s1; [*/ Return value]-|True when mouse capture was released.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 HasCapture]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|True if Ctrl has mouse capture.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) bool]_[@0 ReleaseCtrlCapture]()&] +[s6; If any of application`'s Ctrls has mouse capture, it is released.&] +[s1; [*/ Return value]-|True if mouse capture was released.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 SetFocus]()&] +[s6; Sets keyboard input focus to the Ctrl. Ctrl is first to receive +keyboard events via Key method as long as it has keyboard input +focus. When Ctrl denies keyboard event (by returning false from +Key method), it is passed to its parent`'s Key method and so +on.&] +[s1; [*/ Return value]-|True if setting focus was successful.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 HasFocus]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|True if Ctrl has keyboard input focus.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 HasFocusDeep]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|True if Ctrl or any of its descendants has focus +or is equal to GetOwnerCtrl of any active popup.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 WantFocus]([@(0.0.255) bool]_[@3 ft]_`=_true)&] +[s6; Indicates whether Ctrl wants focus to be passed to it by U`+`+, +e.g. when navigating through the dialog using Tab (or Shift`+Tab) +key.&] +[s1; [%-*C@3 ft]-|true to indicate that Ctrl wants focus.&] +[s1; [*/ Return value]-|Same Ctrl for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 NoWantFocus]()&] +[s1; [*/ Return value]-|Same Ctrl for method chaining.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsWantFocus]()_[@(0.0.255) const]&] +[s6;%- Checks whether Ctrl has WantFocus acti.&] +[s1; [*/ Return value]-|true, when Ctrl wants focus.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 InitFocus]([@(0.0.255) bool]_[@3 ft]_`=_true)&] +[s6; Indicates that Ctrl is eligible to obtain focus upon opening +of dialog or in other similar situations.&] +[s1; [%-*C@3 ft]-|true to indicate Ctrl is eligible.&] +[s1; [*/ Return value]-|Same Ctrl for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 NoInitFocus]()&] +[s6; Same as InitFocus(false).&] +[s1; [*/ Return value]-|Same Ctrl for method chaining.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsInitFocus]()&] +[s1; [*/ Return value]-|true when Ctrl wants init focus.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 SetWantFocus]()&] +[s6; If Ctrl wants focus (WantFocus(true) was called for it), set +focus to Ctrl, otherwise nothing happens.&] +[s1; [*/ Return value]-|true if focus was set.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetFocusChild]()_[@(0.0.255) const]&] +[s6; If any immediate child of Ctrl has focus, returns pointer to +it.&] +[s1; [*/ Return value]-|Pointer to child with focus or NULL if no such +exists.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]_`*[@0 GetFocusChildDeep]()_[@(0.0.255) const]&] +[s6; If any child of Ctrl`'s child tree has focus, returns pointer +to it.&] +[s1; [*/ Return value]-|&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 CancelModeDeep]()&] +[s6; Calls CancelMode virtual method for Ctrl and all of its descendants.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetCaret]([@(0.0.255) int]_[@3 x], [@(0.0.255) int]_[@3 y], +[@(0.0.255) int]_[@3 cx], [@(0.0.255) int]_[@3 cy])&] +[s6; Place caret rectangle block at given position in view area. +Caret rectangle is full flashing box and usually indicates place +where text is to entered. Ctrl can have just one caret. Only +Ctrl with focus has its caret displayed (also means that you +do not need to remove caret when Ctrl goes out of focus).&] +[s1; [%-*C@3 x]-|X position.&] +[s1; [%-*C@3 y]-|Y position.&] +[s1; [%-*C@3 cx]-|Horizontal size.&] +[s1; [%-*C@3 cy]-|Vertical size.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetCaret]([@(0.0.255) const]_[^`:`:Rect^ Rect]`&_[@3 r])&] +[s6; Place caret rectangle block at given position in view area. +Caret rectangle is full flashing box and usually indicates place +where text is to entered. Ctrl can have just one caret. Only +Ctrl with focus has its caret displayed (also means that you +do not need to remove caret when Ctrl goes out of focus).&] +[s1; [%-*C@3 r]-|Caret block rectangle.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 KillCaret]()&] +[s6; Removes caret from Ctrl.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl^ Ctrl]_`*[@0 GetFocusCtrl]()&] +[s1; [*/ Return value]-|Ctrl that has focus or NULL if no Ctrl of application +has it.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) bool]_[@0 IterateFocusForward]([^`:`:Ctrl^ Ctrl]_`*[@3 ctrl], +[^`:`:Ctrl^ Ctrl]_`*[@3 top], [@(0.0.255) bool]_[@3 noframe]_`=_false, +[@(0.0.255) bool]_[@3 init]_`=_false)&] +[s6; Tries to move focus to next `"appropriate`" Ctrl, like when +Tab key is pressed in the dialog. Appropriate Ctrl needs to have +WantFocus flag, be visible and enabled.&] +[s1; [%-*C@3 ctrl]-|Ctrl with focus.&] +[s1; [%-*C@3 top]-|Top Ctrl `- function cycles only between this Ctrl +subtree.&] +[s1; [%-*C@3 noframe]-|Indicates that frame Ctrls are to be excluded.&] +[s1; [*/ Return value]-|true when focus was successfully moved.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) bool]_[@0 IterateFocusBackward]([^`:`:Ctrl^ Ctrl]_`*[@3 ctrl], +[^`:`:Ctrl^ Ctrl]_`*[@3 top], [@(0.0.255) bool]_[@3 noframe]_`=_false)&] +[s6; Tries to move focus to previous appropriate Ctrl, like when +Tab key is pressed in the dialog. `"Appropriate`" Ctrl needs +to have WantFocus flag, be visible and enabled.&] +[s1; [%-*C@3 ctrl]-|Ctrl with focus.&] +[s1; [%-*C@3 top]-|Top Ctrl `- function cycles only between this Ctrl +subtree.&] +[s1; [%-*C@3 noframe]-|Indicates that frame Ctrls are to be excluded.&] +[s1; [*C@3 init]-|Ctrl must have InitFocus flag.&] +[s1; [*/ Return value]-|true when focus was successfully moved.&] +[s0;3 &] +[s22;K%- static [^`:`:dword^ dword]_[@0 AccessKeyBit]([^`:`:byte^ byte]_[@3 accesskey])&] +[s6; Returns bit`-mask for specified access`-key.&] +[s1; [%-*C@3 accesskey]-|Access`-key. It should be plain ASCII value +of access`-key.&] +[s1; [*/ Return value]-|Access`-key bitmask. Note that only `'A`' `- +`'Z`' have distinct bit`-masks as those are only access`-keys +distributed automatically.&] +[s22;K%- [^`:`:dword^ dword]_[@0 GetAccessKeysDeep]()_[@(0.0.255) const]&] +[s0;%- dword_[* GetAccessKeysDeep]()_const&] +[s6; Returns binary or of Ctrl`'s GetAccessKey method results with +the result of calling GetAccessKeyDeep for all children. In other +words, returns key coverage for the whole Ctrl tree.&] +[s1; [*/ Return value]-|Access`-keys used by Ctrl and its descendants.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 DistributeAccessKeys]()&] +[s6; Triggers automatic distribution of access keys. This is implemented +as gathering all already used access keys using GetAccessKeys +method and then using AssignAccessKeys method with this value +to distribute rest of keys (in other words, it is equivalent +of AssignAccessKeys(GetAccessKeys())).&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 RefreshAccessKeys]()&] +[s6; Invokes Refresh for this Ctrl or any descendant with any access`-key +assigned.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 VisibleAccessKeys]()&] +[s1; [*/ Return value]-|True if according to current access`-key model +there should be visible graphical representation (usually underline) +of access`-keys.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Show]([@(0.0.255) bool]_[@3 show]_`=_true)&] +[s6; Sets visibility flag for Ctrl.&] +[s1; [%-*C@3 show]-|true indicates that Ctrl should be visible.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Hide]()&] +[s6; Same as Show(false).&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsShown]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|visibility flag for Ctrl.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsVisible]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|true if Ctrl is currently visible on the screen. +Ctrl is visible if it has visibility flag set, its parent is +visible and its top`-level Ctrl is open.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Enable]([@(0.0.255) bool]_[@3 enable]_`=_true)&] +[s6; Enables or disables Ctrl.&] +[s1; [%-*C@3 enable]-|true indicates that Ctrl should be enabled.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Disable]()&] +[s6; Same as Enable(false).&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsEnabled]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|true if Ctrl is enabled.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetEditable]([@(0.0.255) bool]_[@3 editable]_`=_true)&] +[s6; Sets editable or read`-only mode of Ctrl. Specific Ctrls can +check this flag using IsEditable method and behave accordingly.&] +[s1; [%-*C@3 editable]-|true indicates that Ctrl is editable.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 SetReadOnly]()&] +[s6; Same as SetEditable(false).&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsEditable]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|true if Ctrl is editable.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsReadOnly]()_[@(0.0.255) const]&] +[s6; Same as !IsEditable().&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 ResetModify]()&] +[s6; Resets modify flag.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsModifySet]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|true if modify flag is set.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 UpdateRefresh]()&] +[s6; Calls both Update and Refresh methods.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Update]()&] +[s6; Same as SetModify().&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 Action]()&] +[s6; Invokes default Ctrl callback `- WhenAction.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 UpdateAction]()&] +[s6; Calls Update and then Action.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 UpdateActionRefresh]()&] +[s6; Calls Update, then Action, then Refresh. Typically called after +user changes values of Ctrl.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 BackPaint]([@(0.0.255) int]_[@3 bp]_`=_FULLBACKPAINT)&] +[s6; Activates back`-paint mode for Ctrl.&] +[s1; [%-*C@3 bp]-|Back`-paint mode.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 TransparentBackPaint]()&] +[s1; [*/ Return value]-|BackPaint(TRANSPARENTBACKPAINT).&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 NoBackPaint]()&] +[s1; [*/ Return value]-|BackPaint(NOBACKPAINT).&] +[s0;3 &] +[s22;K%- [@(0.0.255) int]_[@0 GetBackPaint]()&] +[s1; [*/ Return value]-|Current back`-paint mode of Ctrl.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 Transparent]([@(0.0.255) bool]_[@3 bp]_`=_true)&] +[s6; Sets transparency flag of Ctrl. If transparency flag is disabled, +U`+`+ can paint Ctrl in more effective way.&] +[s1; [%-*C@3 bp]-|Transparency flag.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 NoTransparent]()&] +[s1; [*/ Return value]-|Transparent(false).&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsTransparent]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Value of transparency flag.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 ActiveX]([@(0.0.255) bool]_[@3 ax]_`=_true)&] +[s6; Special flag used for ActiveX Ctrls implementation.&] +[s0; Windows specific.&] +[s1; [%-*C@3 ax]-|true `- Ctrl is ActiveX control&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 NoActiveX]()&] +[s1; [*/ Return value]-|ActiveX(false).&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsActiveX]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Value of ActiveX flag.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 Info]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 txt])&] +[s6; Sets Tip text of Ctrl. This text is displayed as tooltip of +Ctrl.&] +[s1; [%-*C@3 txt]-|Text.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 HelpLine]([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 txt])&] +[s6; Sets help topic link for Ctrl.&] +[s1; [%-*C@3 txt]-|Link.&] +[s1; [*/ Return value]-|`*this for method chaining.&] +[s0;3 &] +[s22;K%- [^`:`:String^ String]_[@0 GetTip]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Current Tip text.&] +[s0;3 &] +[s22;K%- [^`:`:String^ String]_[@0 GetHelpLine]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Current HelpTopic link.&] +[s0;3 &] +[s0;3 &] +[s22;K%- [^`:`:Ctrl^ Ctrl]`&_[@0 operator<<]([^`:`:Ctrl^ Ctrl]`&_[@3 ctrl])&] +[s22;K%- [@(0.0.255) void]_[@0 Add]([^`:`:Ctrl^ Ctrl]`&_[@3 ctrl])&] +[s6; Adds ctrl as the last child.&] +[s1; [%-*C@3 ctrl]-|Ctrl to add.&] +[s6; &] +[s22;K:`:`:Ctrl`:`:Remove`(`):%- [@(0.0.255) void]_[@0 Remove]()&] +[s6; Removes Ctrl from its parent.&] +[s0;3 &] +[s22;K%- [@(0.0.255) const]_[^`:`:Value^ Value]`&_[@0 operator<<`=]([@(0.0.255) const]_[^`:`:Value^ V +alue]`&_[@3 v])&] +[s6; Same as SetData(v).&] +[s1; [%-*C@3 v]-|New Value of Ctrl.&] +[s1; [*/ Return value]-|Reference to v.&] +[s0;3 &] +[s22;K%- [^`:`:Callback^ Callback]_[@0 operator<<`=]([^`:`:Callback^ Callback]_[@3 action])&] +[s6; Same as WhenAction `= action;&] +[s1; [%-*C@3 action]-|Callback that is invoked when user changes value +of Ctrl.&] +[s1; [*/ Return value]-|The value of callback, so that it can be assigned +to several Ctrls in one statement.&] +[s0;3 &] +[s22;K%- [^`:`:Callback^ Callback]`&_[@0 operator<<]([^`:`:Callback^ Callback]_[@3 action])&] +[s6; Same as WhenAction << action;&] +[s1; [%-*C@3 action]-|Callback that is to be added to callbacks that +are invoked when user changes value of Ctrl.&] +[s1; [*/ Return value]-|Reference to WhenAction.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetTimeCallback]([@(0.0.255) int]_[@3 delay`_ms], +[^`:`:Callback^ Callback]_[@3 cb], [@(0.0.255) int]_[@3 id]_`=_[@3 0])&] +[s6; Puts delayed callback to the timer queue. As an identifier of +callback, which is void `* in timer queue, [* this] `+ [* id] is +used. When Ctrl is destroyed, all callbacks with [* id] in range +0 ... sizeof(Ctrl) are removed from timer callback queue `- this +ensures that no dangling callbacks are left there.&] +[s1; [%-*C@3 delay`_ms]-|Delay of callback in ms. If this is 0, callback +is called immediately after all pending input GUI events are +processed.&] +[s1; [%-*C@3 cb]-|Callback. Should be callback to Ctrl`'s method.&] +[s1; [%-*C@3 id]-|id. Should be in range 0..80. U`+`+ defines compile`-time +protocol for distributing these ids. If Ctrl wants to use non`-zero +time callback [* id], it should define it using&] +[s1;~~ -|[@(0.0.255) enum] [@(0.0.255) `{ ]TIMEID`_PERIODIC `= [/ baseclass]`::TIMEID`_COUNT, +&] +[s1;~~ -| TIMEID`_COUNT[@(0.0.255) `};]&] +[s1;~~ -|Using zero as [* id] is OK as long as you do not intend to +remove time callbacks using [* KillTimeCallback.]&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 KillTimeCallback]([@(0.0.255) int]_[@3 id]_`=_[@3 0])&] +[s6; Removes time callback associated with Ctrl.&] +[s1; [%-*C@3 id]-|Id of callback.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 ExistsTimeCallback]([@(0.0.255) int]_[@3 id]_`=_[@3 0])_[@(0.0.255) c +onst]&] +[s6; Tests whether Ctrl has associated callback in timer queue.&] +[s1; [%-*C@3 id]-|Id of callback.&] +[s1; [*/ Return value]-|true when id is found in timer queue.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl^ Ctrl]_`*[@0 GetActiveCtrl]()&] +[s6; Returns pointer to active Ctrl. Active Ctrl is top`-level Ctrl +of Ctrl with keyboard focus.&] +[s1; [*/ Return value]-|Pointer to active Ctrl.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl^ Ctrl]_`*[@0 GetActiveWindow]()&] +[s6; Returns pointer to active TopWindow that is either active or +owns active Ctrl. Difference between GetActiveWindow and GetActiveCtrl +is that GetActiveCtrl can return pop`-up Ctrl, while GetActiveWindow +returns always TopWindow `- if active Ctrl is pop`-up, owner +of pop`-up is returned.&] +[s1; [*/ Return value]-|Pointer to active window.&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl^ Ctrl]_`*[@0 GetVisibleChild]([^`:`:Ctrl^ Ctrl]_`*[@3 ctrl], +[^`:`:Point^ Point]_[@3 p], [@(0.0.255) bool]_[@3 pointinframe])&] +[s6; Finds deepest descendant of Ctrl that is visible and contains +given point. If not such Ctrl exists, returns this.&] +[s1; [%-*C@3 ctrl]-|Parent ctrl.&] +[s1; [%-*C@3 p]-|Point.&] +[s1; [%-*C@3 pointinframe]-|Determines whether point is in view or frame +coordinates.&] +[s1; [*/ Return value]-|Pointer to Ctrl.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 PopUpHWND]([^HWND^ HWND]_[@3 hwnd], [@(0.0.255) bool]_[@3 savebits]_ +`=_true, [@(0.0.255) bool]_[@3 activate]_`=_true, [@(0.0.255) bool]_[@3 dropshadow]_`=_fa +lse, [@(0.0.255) bool]_[@3 topmost]_`=_false)&] +[s6; Opens top`-level Ctrl as pop`-up window.&] +[s0; Win32 specific.&] +[s1; [%-*C@3 hwnd]-|Win32 handle of owner window.&] +[s1; [%-*C@3 savebits]-|Indicates that system should try to preserve +background bits.&] +[s1; [%-*C@3 activate]-|Pop`-up should be activated.&] +[s1; [%-*C@3 dropshadow]-|Pop`-up should have drop`-shadow (if supported).&] +[s1; [%-*C@3 topmost]-|Pop`-up should be top`-most window.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 PopUp]([^`:`:Ctrl^ Ctrl]_`*[@3 owner]_`=_NULL, +[@(0.0.255) bool]_[@3 savebits]_`=_true, [@(0.0.255) bool]_[@3 activate]_`=_true, +[@(0.0.255) bool]_[@3 dropshadow]_`=_false, [@(0.0.255) bool]_[@3 topmost]_`=_false)&] +[s6; Opens top`-level Ctrl as pop`-up window.&] +[s1; [%-*C@3 owner]-|Owner.&] +[s1; [%-*C@3 savebits]-|Indicates that system should try to preserve +background bits.&] +[s1; [%-*C@3 activate]-|Pop`-up should be activated.&] +[s1; [%-*C@3 dropshadow]-|Pop`-up should have drop`-shadow (if supported).&] +[s1; [%-*C@3 topmost]-|Pop`-up should be top`-most window.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetAlpha]([^`:`:byte^ byte]_[@3 alpha])&] +[s6; Sets top`-level Ctrl alpha blending if supported by system. +Ctrl must be open.&] +[s1; [%-*C@3 alpha]-|Value of alpha.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) bool]_[@0 IsWaitingEvent]()&] +[s1; [*/ Return value]-|True when there is waiting unprocessed event +in input queue.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) bool]_[@0 ProcessEvent]([@(0.0.255) bool]_`*[@3 quit]_`=_NULL)&] +[s6; Processes single event from input queue. When there is no pending +event, returns immediately. (Processing event involves usually +involves dispatching it via virtual methods to proper Ctrls).&] +[s1; [%-*C@3 quit]-|Assigned true when WM`_QUIT message is intercepted +(Win32 specific).&] +[s1; [*/ Return value]-|True indicates that event was processed, false +that queue was empty.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) bool]_[@0 ProcessEvents]([@(0.0.255) bool]_`*[@3 quit]_`=_NULL)&] +[s6; Processes all events from input queue. When there is no pending +event, returns immediately. (Processing event involves usually +involves dispatching it via virtual methods to proper Ctrls).&] +[s1; [%-*C@3 quit]-|Assigned true when WM`_QUIT message is intercepted +(Win32 specific).&] +[s1; [*/ Return value]-|True indicates that one or more events were +processed, false that queue was empty.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 IsPopUp]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|True if Ctrl is pop`-up window.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 EventLoop]([^`:`:Ctrl^ Ctrl]_`*[@3 loopctrl]_`=_NULL)&] +[s6; Executes event`-loop. If [*@3 loopctrl ]is not NULL, it must be +opened top`-level Ctrl and loop is executed until EndLoop method +for [*@3 loopctrl ]is invoked. If [*@3 loopctrl] is NULL, loop is +executed as long as any top`-level Ctrl exists or application +is terminated by OS specific `"shutdown`" event.&] +[s1; [%-*C@3 loopctrl]-|Looping Ctrl.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) int]_[@0 GetLoopLevel]()&] +[s1; [*/ Return value]-|Level of even`-loop (even`-loops a reentrant).&] +[s0;3 &] +[s22;K%- static [^`:`:Ctrl^ Ctrl]_`*[@0 GetLoopCtrl]()&] +[s1; [*/ Return value]-|Current looping Ctrl.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 EndLoop]()&] +[s6; Terminates loop for looping Ctrl. Note that this terminates +only loop for looping Ctrl. If there is another loop above such +loop, nothing is terminated until this additional loop is active.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 EndLoop]([@(0.0.255) int]_[@3 code])&] +[s6; Same as EndLoop(), but also defines loop exit code.&] +[s1; [%-*C@3 code]-|Loop exit code.&] +[s0;3 &] +[s22;K%- [@(0.0.255) bool]_[@0 InLoop]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|true if Ctrl is looping Ctrl.&] +[s0;3 &] +[s22;K%- [@(0.0.255) int]_[@0 GetExitCode]()_[@(0.0.255) const]&] +[s1; [*/ Return value]-|Exit code of last loop performed with this Ctrl.&] +[s0;3 &] +[s22;K%- [@(0.0.255) void]_[@0 SetMinSize]([^`:`:Size^ Size]_[@3 sz])&] +[s6; This method does nothing. It is a interface placeholder to get +Layout templates working `- in derived classes this can be statically +overloaded to receive minimal size of layout.&] +[s1; [%-*C@3 sz]-|Minimal size of layout.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 Csizeinit]()&] +[s6; Sets zoom factor used to scale layouts (to scale zoomed positioning +methods like LeftPosZ). Horizontal distances are scaled by sz.cx +/ bsz.cx, vertical by sz.cy / bsz.cy. If bsz is Size(0, 0), default +base size (based on standard Win32 GUI font) is used. Note that +U`+`+ sets scaling factor automatically upon startup based on +actual standard GUI font size.&] +[s1; [%-*C@3 sz]-|Numerator of scaling factor.&] +[s1; [%-*C@3 bsz]-|Denominator of scaling factor.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) int]_[@0 HorzLayoutZoom]([@(0.0.255) int]_[@3 cx])&] +[s6; Performs horizontal scaling by actual scaling factor.&] +[s1; [%-*C@3 cx]-|Distance to scale.&] +[s1; [*/ Return value]-|Scaled distance.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) int]_[@0 VertLayoutZoom]([@(0.0.255) int]_[@3 cy])&] +[s6; Performs vertical scaling by actual scaling factor.&] +[s1; [%-*C@3 cy]-|Distance to scale.&] +[s1; [*/ Return value]-|Scaled distance.&] +[s0;3 &] +[s22;K%- static [^`:`:Size^ Size]_[@0 LayoutZoom]([@(0.0.255) int]_[@3 cx], +[@(0.0.255) int]_[@3 cy])&] +[s6; Performs scaling by actual scaling factor.&] +[s1; [%-*C@3 cx]-|Horizontal distance.&] +[s1; [%-*C@3 cy]-|Vertical distance.&] +[s1; [*/ Return value]-|Scaled size.&] +[s0;3 &] +[s22;K%- static [^`:`:Size^ Size]_[@0 LayoutZoom]([^`:`:Size^ Size]_[@3 sz])&] +[s6; Performs scaling by actual scaling factor.&] +[s1; [%-*C@3 sz]-|Size to scale.&] +[s1; [*/ Return value]-|Scaled size.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 NoLayoutZoom]()&] +[s6; Sets scaling factor to (1, 1). Same as SetZoomSize(Size(1, 1), +Size(1, 1)).&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:GetWorkArea`(`):%- [^`:`:Rect^ Rect]_[@0 GetWorkArea]()&] +[s6; Returns OS specific working area for the widget `- this is rectangle +in screen coordinates where application top`-level windows can +be placed `- the size of screen minus the size of any border +entities like the task`-bar. If widget is not associated with +the open window, returns the size of primary work area.&] +[s1; [*/ Return value]-|Work area rectangle.&] +[s0;3 &] +[s22;K:`:`:Ctrl`:`:GetVirtualWorkArea`(`):%- static [^`:`:Rect^ Rect]_[@0 GetVirtualWorkAr +ea]()&] +[s6; Returns the total size of all displays minus any border entities.&] +[s0; &] +[s22;K:`:`:Ctrl`:`:GetVirtualScreenArea`(`):%- static [^`:`:Rect^ Rect]_[@0 GetVirtualScre +enArea]()&] +[s6; Returns the total size of all displays.&] +[s0; &] +[s22;K:`:`:Ctrl`:`:GetPrimaryWorkArea`(`):%- static [^`:`:Rect^ Rect]_[@0 GetPrimaryWorkAr +ea]()&] +[s6; Returns the size of primary work area `- primary screen in Windows +is the display with start menu.&] +[s0; &] +[s22;K:`:`:Ctrl`:`:GetPrimaryScreenArea`(`):%- static [^`:`:Rect^ Rect]_[@0 GetPrimaryScre +enArea]()&] +[s6; Returns the size of primary screen `- primary screen in Windows +is the display with start menu.&] +[s0; &] +[s22;K%- static [@(0.0.255) int]_[@0 GetKbdDelay]()&] +[s6; Returns delay of keyboard before autorepeat starts when key +is pressed.&] +[s1; [*/ Return value]-|Time in ms.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) int]_[@0 GetKbdSpeed]()&] +[s6; Returns speed of autorepeat.&] +[s1; [*/ Return value]-|Speed of autorepeat.&] +[s0;3 &] +[s22;K%- static [^`:`:Rect^ Rect]_[@0 GetDefaultWindowRect]()&] +[s6; Returns OS suggested rectangle of newly open window.&] +[s1; [*/ Return value]-|Default window rectangle.&] +[s0;3 &] +[s22;K%- static [^`:`:String^ String]_[@0 GetAppName]()&] +[s1; [*/ Return value]-|Name of application. Used by U`+`+ in several +places like Prompts.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 SetAppName]([@(0.0.255) const]_[^`:`:String^ String]`&_[@3 a +ppname])&] +[s1; [%-*C@3 appname]-|Adjusts application name.&] +[s0;3 &] +[s22;K%- [^`:`:String^ String]_[@0 Name]()_[@(0.0.255) const]&] +[s6; Dumps diagnostic informations to standard log.&] +[s0;3 &] +[s22;K%- virtual [@(0.0.255) void]_[@0 Dump]([^`:`:Stream^ Stream]`&_[@3 s])_[@(0.0.255) const]&] +[s6;%- Dumps diagnostic informations to specified output stream.&] +[s1; [%-*C@3 s]-|Stream.&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 InitWin32]([^HINSTANCE^ HINSTANCE]_[@3 hinst])&] +[s6; Flushes all drawing operations to screen (what it EXACTLY does +is platform specific).&] +[s0;3 &] +[s22;K%- static [@(0.0.255) void]_[@0 GuiSleep]([@(0.0.255) int]_[@3 ms])&] +[s6; Sleeps (while allowing other applications or threads to run) +for at least [*@3 ms] milliseconds or until new input event is +available.&] +[s1; [%-*@3 ms]-|Time to sleep.&] +[s0; ] \ No newline at end of file diff --git a/uppsrc/RichEdit/Tool.cpp b/uppsrc/RichEdit/Tool.cpp index da099c6bd..6270c95e1 100644 --- a/uppsrc/RichEdit/Tool.cpp +++ b/uppsrc/RichEdit/Tool.cpp @@ -55,7 +55,6 @@ void RichEdit::StrikeoutTool(Bar& bar, dword key) .Key(key); } - void RichEdit::CapitalsTool(Bar& bar, dword key) { bar.Add(!IsReadOnly(), t_("Capitals"), diff --git a/uppsrc/RichText/ParaPaint.cpp b/uppsrc/RichText/ParaPaint.cpp index b34aaad54..4c3326481 100644 --- a/uppsrc/RichText/ParaPaint.cpp +++ b/uppsrc/RichText/ParaPaint.cpp @@ -64,7 +64,7 @@ void RichPara::Flush(Draw& draw, const PaintInfo& pi, wchar *text, pi.coloroverride ? SColorText() : f.ink); } Color ink = pi.coloroverride ? SColorText() : f.ink; - if(!IsNull(f.link) && !IsNull(pi.hyperlink)) { + if(!IsNull(f.link) && !IsNull(pi.hyperlink) && !(fnt.IsUnderline() || f.dashed)) { fnt.Underline(); if(!pi.coloroverride) ink = pi.hyperlink; diff --git a/uppsrc/ide/Browser/Browser.h b/uppsrc/ide/Browser/Browser.h index 15bcb79ed..88a3750fa 100644 --- a/uppsrc/ide/Browser/Browser.h +++ b/uppsrc/ide/Browser/Browser.h @@ -353,9 +353,6 @@ protected: void FindBrokenRef(); - void Repair(); - void CompressGroup(); - public: Callback1 WhenTemplatesMenu; diff --git a/uppsrc/ide/Browser/IdeTopic.cpp b/uppsrc/ide/Browser/IdeTopic.cpp index 98f8badba..6ca07bd27 100644 --- a/uppsrc/ide/Browser/IdeTopic.cpp +++ b/uppsrc/ide/Browser/IdeTopic.cpp @@ -18,30 +18,6 @@ void TopicEditor::Label(String& label) label = ref.Get(); } -#ifdef _DEBUG -void TopicEditor::CompressGroup() -{ - Progress pi; - pi.SetTotal(topic.GetCount()); - for(;;) { - if(IsNull(topicpath)) - return; - pi.SetText(GetFileTitle(topicpath)); - pi.SetPos(topic.GetCursor()); - editor.SetModify(); - Save(); - if(!topic.IsCursor()) - break; - int c = topic.GetCursor() + 1; - if(c >= topic.GetCount()) { - PromptOK("Group finished."); - break; - } - topic.SetCursor(c); - } -} -#endif - struct FindBrokenRefIterator : RichText::Iterator { int cursor; @@ -164,9 +140,9 @@ String DecoratedItem(const CppItemInfo& m, const char *natural) String qtf = "[%00-00K "; Vector n = ParseItemNatural(m, natural); if(m.virt) - qtf << "virtual "; + qtf << "[@B virtual] "; if(m.kind == CLASSFUNCTION || m.kind == CLASSFUNCTIONTEMPLATE) - qtf << "static "; + qtf << "[@B static] "; Vector qt = Split(m.qptype, sSplitT, false); Vector tt = Split(m.qtype, sSplitT, false); for(int i = 0; i < n.GetCount(); i++) { @@ -174,14 +150,15 @@ String DecoratedItem(const CppItemInfo& m, const char *natural) qtf << "["; switch(p.type) { case ITEM_PNAME: + qtf << "*"; case ITEM_NUMBER: qtf << "@r"; break; case ITEM_TNAME: - qtf << "@g"; + qtf << "*@g"; break; case ITEM_NAME: - qtf << "@k"; + qtf << "*"; break; case ITEM_CPP_TYPE: case ITEM_CPP: @@ -189,11 +166,11 @@ String DecoratedItem(const CppItemInfo& m, const char *natural) break; default: int q = p.type - ITEM_PTYPE; - if(q >= 0 && q < qt.GetCount()) - qtf << '^' << qt[q] << '^'; + if(q >= 0 && q < qt.GetCount() && *qt[q] == ':') + qtf << "_^" << qt[q] << '^'; q = p.type - ITEM_TYPE; - if(q >= 0 && q < tt.GetCount()) - qtf << '^' << tt[q] << '^'; + if(q >= 0 && q < tt.GetCount() && *tt[q] == ':') + qtf << "_^" << tt[q] << '^'; break; } qtf << ' '; @@ -205,8 +182,8 @@ String DecoratedItem(const CppItemInfo& m, const char *natural) static const char styles[] = "[ $$0,0#00000000000000000000000000000000:Default]" - "[a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483370:item]" - "[a25;kKO9;*@(64)3 $$2,0#37138531426314131252341829483380:class]" + "[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483370:item]" + "[i448;a25;kKO9;3 $$2,0#37138531426314131252341829483380:class]" "[l288;2 $$3,0#27521748481378242620020725143825:desc]" "[H6;0 $$4,0#05600065144404261032431302351956:begin]" "[l288;a25;kK~~~.1408;@3;2 $$5,0#61217621437177404841962893300719:param]" @@ -215,7 +192,7 @@ static const char styles[] = void TopicEditor::CreateQtf(const String& item, const CppItemInfo& m, String& p1, String& p2) { - String qtf = styles; + String qtf; bool str = m.kind == STRUCT || m.kind == STRUCTTEMPLATE; if(!str) qtf << "[s4 &]"; @@ -247,8 +224,8 @@ void TopicEditor::CreateQtf(const String& item, const CppItemInfo& m, String& p1 qtf << "&]"; p1 = qtf; - qtf = styles; - qtf << "[s3%EN-US "; + qtf.Clear(); + qtf << "[s3%% "; String d; Vector t = Split(m.tname, ';'); for(int i = 0; i < t.GetCount(); i++) { @@ -261,13 +238,10 @@ void TopicEditor::CreateQtf(const String& item, const CppItemInfo& m, String& p1 Vector p = Split(m.pname, ';'); bool was = false; if(!str) - for(int i = 0; i < p.GetCount(); i++) { - if(!IsNull(d)) - d << ' '; - d << "[%-*@r " << DeQtf(p[i]) << "]"; - } + for(int i = 0; i < p.GetCount(); i++) + d << " [%-*@r " << DeQtf(p[i]) << "]"; if(!str && p.GetCount()) - qtf << ' ' << d << ' '; + qtf << d << '.'; qtf << "&]"; qtf << "[s7 &]"; p2 = qtf; @@ -316,9 +290,11 @@ void TopicEditor::InsertItem() return; editor.BeginOp(); int a = editor.GetCursor(); - editor.PasteText(ParseQTF(p1)); + DUMP(p1); + DUMP(p2); + editor.PasteText(ParseQTF(styles + p1)); c = editor.GetCursor(); - editor.PasteText(ParseQTF(p2)); + editor.PasteText(ParseQTF(styles + p2)); editor.Move(a); editor.Move(c); } @@ -341,42 +317,3 @@ void TopicEditor::SetFocus() else Ctrl::SetFocus(); } - -#ifdef _DEBUG -void TopicEditor::Repair() -{ - RichText text = editor.CopyText(0, editor.GetLength()); - RichPara def; - for(int i = 0; i < text.GetPartCount(); i++) - if(text.IsPara(i)) { - RichPara para = text.Get(i); - String l = para.format.label; - if(l[0] == ':') { - String nest, key; - if(SplitNestKey(l, nest, key)) { - CppBase& base = BrowserBase(); - int q = base.Find(nest); - if(q >= 0) { - int w = base[q].key.Find(key); - if(w >= 0) { - CppItemInfo m; - (CppSimpleItem&)m = base[q].item[w]; - m.name = base[q].name[w]; - m.key = key; - String qtf; - if(m.kind != ENUM) { - qtf << styles << "[s1 " << DecoratedItem(m, m.natural); - RichText txt = ParseQTF(qtf); - text.OverrideStyles(txt.GetStyles()); - text.Set(i, txt.Get(0), txt.GetStyles()); - } - } - } - } - } - } - editor.Move(0); - editor.RemoveText(editor.GetLength()); - editor.PasteText(text); -} -#endif diff --git a/uppsrc/ide/Browser/ItemList.cpp b/uppsrc/ide/Browser/ItemList.cpp index 8b4e73765..834853f55 100644 --- a/uppsrc/ide/Browser/ItemList.cpp +++ b/uppsrc/ide/Browser/ItemList.cpp @@ -53,7 +53,9 @@ Vector ParseItemNatural(const CppItemInfo& m, const char *s) { Vector part; bool param = false; + LOGHEXDUMP(m.natural, m.natural.GetLength()); _DBG_ while(*s) { + while(*s == '\2') s++; ItemTextPart& p = part.Add(); p.pos = (int)(s - ~m.natural); p.type = ITEM_TEXT; @@ -100,7 +102,7 @@ Vector ParseItemNatural(const CppItemInfo& m, const char *s) } else { p.type = ITEM_SIGN; - while(s[n] && !iscid(s[n])) + while(s[n] && !iscid(s[n]) && s[n] != '\2') n++; } p.len = n; diff --git a/uppsrc/ide/Browser/TopicWin.cpp b/uppsrc/ide/Browser/TopicWin.cpp index eb4071cb2..bcad8b14f 100644 --- a/uppsrc/ide/Browser/TopicWin.cpp +++ b/uppsrc/ide/Browser/TopicWin.cpp @@ -135,7 +135,7 @@ void TopicEditor::TopicMenu(Bar& bar) bar.Add("New topic..", THISBACK(NewTopic)) .Key(K_CTRL_N).Key(K_ALT_INSERT); bar.Add(topic.IsCursor(), "Rename topic..", THISBACK(RenameTopic)); - bar.Add(topic.IsCursor(), "Remove topic", THISBACK(RemoveTopic)) + bar.Add(topic.IsCursor(), "Delete topic", THISBACK(RemoveTopic)) .Key(K_ALT_DELETE); bar.Separator(); bar.Add(topic.IsCursor() && GetFileTitle(topicpath) != "$.tpp", @@ -223,6 +223,7 @@ void TopicEditor::NewTopic() Vector path, name; ListTemplates(path, name); + d.tmpl.Add(Null, ""); for(int i = 0; i < path.GetCount(); i++) d.tmpl.Add(path[i], name[i]); @@ -244,7 +245,7 @@ void TopicEditor::NewTopic() } lasttemplate = ~d.tmpl; lastlang = ~d.lang; - CreateTopic(fn, ~d.lang, ReadTopic(LoadFile((String)~d.tmpl)).text); + CreateTopic(fn, ~d.lang, IsNull(~d.tmpl) ? String() : ReadTopic(LoadFile((String)~d.tmpl)).text); Flush(); Open(grouppath); Load(fn);