44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 0) a) If starts before link & ends after a link, delete selection
 | |
| 	 b) If starts before link & ends at end of link (SelectedText ends with [END>), delete selection
 | |
| 	 c) If starts before link & ends between 2 links, (SelectedText ends with <START],
 | |
| 	 		push_selection; set SelectionStart1 = SelectionStart + SelectionLength,
 | |
| 	 		using SetSelection(SelectionStart1, 0) from TestWndProc/MyPanel.cs; insert space; pop_selection;
 | |
| 	 		allow deletion 
 | |
| 	 d) If starts at beginning of one link and end of another and end is in text:
 | |
| 	 	  Save SelectionStart & SelectionLength; Set SelectionLength=0; Insert a space; set SelectionStart
 | |
| 	 	  to saved SelectionStart+1 and SelectionLength = saved SelectionLength; allow deletion
 | |
| 	 e) If deleting a link do the following. 
 | |
| 	 
 | |
| 1) Break 'Rtf' into 3 pieces:
 | |
| 	 - From 0 to StartRtf
 | |
| 	 - From StartRtf to LengthRtf
 | |
| 	 - From EndRtf
 | |
| 	 
 | |
| 2) Capture any formatting from the link. 
 | |
|    Only do this if selection starts at the 
 | |
|    beginning of a link (using linklocation start)
 | |
| 
 | |
| Within piece 2 (link):
 | |
| 	Remove <START]
 | |
| 	Remove everything from first space on
 | |
| 	Take any remaining characters (formatting) and
 | |
| 		save them as FORMATTING to be used piece 1
 | |
| 		
 | |
| 3) Keep formatting and fix comment beginning/ending 
 | |
|    based on single link or two in a row. 
 | |
| 
 | |
| Within piece 1 (before link):  
 | |
| 	if piece1 ends with [END>
 | |
| 		append FORMATTING+'\v0 ' after [END>
 | |
| 	else
 | |
| 		replace last \v with FORMATTING
 | |
| 
 | |
| 4) Within piece 3 (after link):
 | |
|   if piece3 begins with <START] 
 | |
|   	insert '\v ' before <START] in piece3
 | |
| 	else if begins with '\v0 ' 
 | |
| 		remove '\v0 '
 | |
| 	else // remove '\v0' - this is in case other formatting exists
 | |
| 		remove first '\v0' found
 | |
| 	
 |