NonprintableCharacters.diff

Zbigniew Rebacz, 10/22/2015 11:47 PM

Download (10.8 KB)

View differences:

Editor.cpp (kopia robocza)
119 119
		pi.bottom = GetPageY(sb + sz.cy);
120 120
		pi.usecache = true;
121 121
		pi.sizetracking = sizetracking;
122
		pi.showcodes = showcodes;
123
		pi.showlabels = !IsNull(showcodes) && viewborder >= 16;
122
		pi.showcodes = GetNonprintableCharactersColor();
123
		pi.showlabels = !IsNull(GetNonprintableCharactersColor()) && viewborder >= 16;
124 124
		if(spellcheck)
125 125
			pi.spellingchecker = SpellParagraph;
126 126
		if(IsSelection()) {
......
135 135
		}
136 136
		text.Paint(pw, pagesz, pi);
137 137
	}
138
	w.DrawRect(tr.left, GetPosY(py) - sb, 20, 3, showcodes);
138
	w.DrawRect(tr.left, GetPosY(py) - sb, 20, 3, GetNonprintableCharactersColor());
139 139
	if(objectpos >= 0) {
140 140
		Rect r = objectrect;
141 141
		r.Offset(tr.left, -sb);
......
310 310
	}
311 311
}
312 312

  
313
Color RichEdit::GetNonprintableCharactersColor()
314
{
315
	return nonprintable_characters ? showcodes : Color();
316
}
317

  
313 318
int  RichEdit::GetNearestPos(int x, PageY py)
314 319
{
315 320
	int c = text.GetPos(x, py, pagesz);
......
471 476
	RefreshBar();
472 477
}
473 478

  
479
void RichEdit::NonprintableCharacters()
480
{
481
	nonprintable_characters = !nonprintable_characters;
482
	Refresh();
483
	RefreshBar();
484
}
485

  
474 486
void RichEdit::SerializeSettings(Stream& s)
475 487
{
476
	int version = 3;
488
	int version = 4;
477 489
	s / version;
478 490
	s % unit;
479 491
	s % showcodes;
......
488 500
	s % findreplace.ignorecase;
489 501
	RefreshBar();
490 502
	imagefs.Serialize(s);
491
	if(version >= 3)
503
	if(version >= 3) {
492 504
		for(int i = 0; i < 20; i++) {
493 505
			StyleKey& k = stylekey[i];
494 506
			s % k.styleid % k.stylename % k.face % k.height % k.ink % k.paper;
495 507
		}
508
	}
509
	if(version >= 4)
510
		s % nonprintable_characters;
496 511
}
497 512

  
498 513
void RichEdit::Reset()
......
626 641

  
627 642
	showcodes = LtBlue;
628 643
	spellcheck = true;
629

  
644
	
645
	nonprintable_characters = false;
646
	
630 647
	overwrite = false;
631 648

  
632 649
	sb.WhenScroll = THISBACK(Scroll);
RichEdit.h (kopia robocza)
283 283
	Color                    showcodes;
284 284
	int                      zoom;
285 285
	bool                     spellcheck;
286
	bool                     nonprintable_characters;
286 287
	bool                     paintcarect;
287 288

  
289

  
288 290
	int                      undoserial;
289 291
	bool                     incundoserial;
290 292
	
......
294 296
	
295 297
	PaintInfo                paint_info;
296 298
	bool                     ignore_physical_size;
297

  
299
	
298 300
	static int fh[];
299 301

  
300 302
	struct UndoRec {
......
569 571

  
570 572
	void SetupUnits();
571 573
	void SpellCheck();
572

  
574
	
575
	void  NonprintableCharacters();
576
	Color GetNonprintableCharactersColor();
577
	
573 578
	void    AddUserDict();
574 579
	WString GetWordAtCursor();
575 580

  
......
720 725
	void   LanguageTool(Bar& bar, int width = Zx(60));
721 726
	void   HyperlinkTool(Bar& bar, int width = Zx(180), dword key = 0, const char *tip = NULL);
722 727
	void   SpellCheckTool(Bar& bar);
728
	void   NonprintableCharactersTool(Bar& bar);
723 729
	void   IndexEntryTool(Bar& bar, int width = Zx(80), dword key = 0, const char *tip = NULL);
724 730

  
725 731
	void   LeftTool(Bar& bar, dword key = K_CTRL_L);
......
791 797
	RichEdit&       ViewBorder(int cx)                     { viewborder = cx; Refresh(); return *this; }
792 798
	RichEdit&       ShowCodes(Color c)                     { showcodes = c; Refresh(); return *this; }
793 799
	RichEdit&       Unit(int u)                            { unit = u; Refresh(); return *this; }
800
	RichEdit&       NonprintableCharacters(bool b = true)  { nonprintable_characters = b; Refresh(); return *this; }
794 801
	RichEdit&       SpellCheck(bool b)                     { spellcheck = b; Refresh(); return *this; }
795 802
	RichEdit&       SetZoom(int z)                         { zoom = z; Refresh(); return *this; }
796 803
	RichEdit&       SetContext(void *ctx)                  { context = ctx; Refresh(); return *this; }
RichEdit.iml (kopia robocza)
67 67
IMAGE_ID(PageNumber)
68 68
IMAGE_ID(PageCount)
69 69
IMAGE_ID(sss)
70
IMAGE_ID(NonprintableCharacters)
70 71

  
71 72
IMAGE_BEGIN_DATA
72 73
IMAGE_DATA(120,156,237,90,177,146,26,49,12,37,147,76,224,82,229,19,168,249,128,75,9,147,15,72,197,213,201,79,144,84,1,106)
......
175 176
IMAGE_END_DATA(1184, 17)
176 177

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

  
138
void RichEdit::NonprintableCharactersTool(Bar& bar)
139
{
140
	bar.Add(t_("Nonprintable characters"), RichEditImg::NonprintableCharacters(), USERBACK(NonprintableCharacters))
141
		.Check(nonprintable_characters);
142
}
143

  
138 144
String PlusKeyDesc(const char *text, dword key)
139 145
{
140 146
	String r = text;
......
458 464
	bar.Gap();
459 465
	LanguageTool(bar);
460 466
	SpellCheckTool(bar);
467
	NonprintableCharactersTool(bar);
461 468
	if(extended) {
462 469
		bar.Gap();
463 470
		IndexEntryTool(bar, INT_MAX);