Lorenz Glaser authored onThu/Sep/2020 13:0:rd
Showing1 changed files
1 1
new file mode 100755
... ...
@@ -0,0 +1,514 @@
1
+#!/boot/home/config/bin/yab
2
+
3
+//localize
4
+
5
+##### Allgemeines ##### 
6
+Programmname$="HtmlEditor"
7
+Version$="1.0"
8
+Versionsdatum$="11.10.2006"
9
+Entwickler$="Christian Albrecht, Lorenz Glaser"
10
+Nickname$="Lelldorin, Lorglas"
11
+Url_Label$="BeSly Projects"
12
+Url_Text$="http://www.besly.de"
13
+
14
+##### Fensternamen #####
15
+
16
+Hpt_Fenster$=Programmname$
17
+Lade_Fenster$=""
18
+
19
+##### Bildschirmgröße #####
20
+
21
+B_Breite = peek("desktopwidth")
22
+B_Hoehe = peek("desktopheight")
23
+
24
+##### Fenstergröße #####
25
+
26
+F_Hoehe1=((B_Hoehe/2)-300)
27
+F_Hoehe2=((B_Hoehe/2)+300)
28
+F_Breite1=((B_Breite/2)-300)
29
+F_Breite2=((B_Breite/2)+300)
30
+F_minBreite=800
31
+F_maxBreite=800
32
+F_minHoehe=600
33
+F_maxHoehe=600
34
+
35
+##### Editor View Groesse #####
36
+
37
+Editor_Breite1=240
38
+Editor_Breite2= 790
39
+Editor_Hoehe1=120
40
+Editor_Hoehe2=590
41
+
42
+##### Texteditor Groesse #####
43
+
44
+TE_Breite1=5
45
+TE_Breite2=535
46
+TE_Hoehe1=30
47
+TE_Hoehe2=420
48
+
49
+##### Tab Optionen #####
50
+
51
+Opt_Breite1=240
52
+Opt_Breite2=790
53
+Opt_Hoehe1=30
54
+Opt_Hoehe2=110
55
+
56
+##### Tab Auswahl #####
57
+
58
+Sel_Breite1=10
59
+Sel_Breite2=230
60
+Sel_Hoehe1=120
61
+Sel_Hoehe2=590
62
+
63
+##### Listbox Programmiersprache Auswahl #####
64
+
65
+LB_HTML_Breite1=10
66
+LB_HTML_Breite2=200
67
+LB_HTML_Hoehe1=40
68
+LB_HTML_Hoehe2=420
69
+
70
+##### Programmverzeichnis ######
71
+
72
+Prg_Ordner$=""
73
+Gfx_Ordner$=""
74
+Hlp_Ordner$=""
75
+Sfx_Ordner$=""
76
+
77
+ProgrammierSprachenVerzeichnis$="/boot/home/Projekte/yab/Html_Editor/ProgrammierSprachen"
78
+
79
+#################################
80
+
81
+editorzahl=1
82
+
83
+#################################
84
+
85
+ProgrammierSprachen(ProgrammierSprachenVerzeichnis$)
86
+
87
+############################################################
88
+# Variablen (Zahlen) fuer mich ab "aa"
89
+############################################################
90
+
91
+##### Programmstart #####
92
+
93
+Prg_Fenster()
94
+read_drives()
95
+
96
+################################	
97
+
98
+dim part$(1)
99
+
100
+inloop = true
101
+while(inloop)
102
+
103
+	msg$ = message$
104
+
105
+	if (split(msg$, part$(), ":|") > 2) then
106
+		PartOne$=part$(1)
107
+		PartTwo$ = part$(2)
108
+		PartThree$ = part$(3)
109
+	fi
110
+
111
+	if (split(msg$, part$(), ":|") > 3) then
112
+		PartFour$ = part$(4)
113
+	fi
114
+
115
+	if (msg$ <> "") print msg$
116
+
117
+	switch msg$
118
+	
119
+	case Hpt_Fenster$+":_QuitRequested|"
120
+		window close Hpt_Fenster$
121
+		window close "View_Ueber"
122
+		window close "View_Hilfe"
123
+	break
124
+	
125
+	case translate$(Hpt_Fenster$+":Program:Quit")+"|"
126
+		window close Hpt_Fenster$
127
+		window close "View_Ueber"
128
+		window close "View_Hilfe"
129
+	break
130
+	
131
+	case "Beenden_View_Ueber|"
132
+		window close "View_Ueber"
133
+	break
134
+	
135
+	case "Beenden_View_Hilfe|"
136
+		window close "View_Hilfe"
137
+	break
138
+	
139
+	//Funktionen
140
+	case "DB_Drives:"+PartTwo$+"|"
141
+		Drive_Selection$=PartTwo$
142
+		read_folders()
143
+	break
144
+	
145
+	case Programmname$+":View:Fullscreen|"
146
+		F_Hoehe1=0
147
+		F_Hoehe2=B_Hoehe
148
+		F_Breite1=0
149
+		F_Breite2=B_Breite
150
+		F_minBreite=800
151
+		F_maxBreite=B_Breite
152
+		F_minHoehe=600
153
+		F_maxHoehe=B_Hoehe
154
+		Editor_Breite2=F_Breite2-20
155
+		Editor_Hoehe2=F_Hoehe2-20
156
+		TE_Breite2=Editor_Breite2-255
157
+		TE_Hoehe2=Editor_Hoehe2-190
158
+		Opt_Breite2=Editor_Breite2
159
+		Sel_Hoehe2=Editor_Hoehe2
160
+		LB_HTML_Hoehe2=TE_Hoehe2
161
+		window close Hpt_Fenster$
162
+		Prg_Fenster()
163
+	break
164
+	
165
+	case Programmname$+":View:Default|"
166
+		F_Hoehe1=((B_Hoehe/2)-300)
167
+		F_Hoehe2=((B_Hoehe/2)+300)
168
+		F_Breite1=((B_Breite/2)-300)
169
+		F_Breite2=((B_Breite/2)+300)
170
+		F_minBreite=800
171
+		F_maxBreite=800
172
+		F_minHoehe=600
173
+		F_maxHoehe=600
174
+		Editor_Breite2=790
175
+		Editor_Hoehe2=590
176
+		TE_Breite2=535
177
+		TE_Hoehe2=420
178
+		Opt_Breite2=790
179
+		Sel_Hoehe2=590
180
+		LB_HTML_Hoehe2=420
181
+		window close Hpt_Fenster$
182
+		Prg_Fenster()
183
+	break
184
+	
185
+	case "CB_Files:_Invoke:"+PartThree$+"|"
186
+		TabNumber = TABVIEW GET "Tab_Editor"
187
+		print TabNumber
188
+		
189
+		editorzahl=TabNumber
190
+  		///Get the current opened tab.
191
+		//while (editorzahl)
192
+		//	EnteredText$ = TEXTEDIT GET$ "editor"+str$(editorzahl)
193
+		//		if (EnteredText$="" or TabNumber=1)then
194
+		//			editorzahl=editorzahl+1
195
+		//			break
196
+		//		else
197
+		//			editorzahl=1
198
+		//			break
199
+		//		endif
200
+		//wend
201
+		dateiauswahl$=COLUMNBOX GET$ "CB_Files", 2, val(PartThree$)
202
+		print dateiauswahl$
203
+		TABVIEW ADD "Tab_Editor", dateiauswahl$
204
+		DateiLaden(TabNumber)
205
+	break
206
+	
207
+	case "CB_Folders:_Invoke:"+PartThree$+"|"
208
+		foldername$=COLUMNBOX GET$ "CB_Folders", 2, val(PartThree$)
209
+		if(foldername$="..")then
210
+			VerzeichnisZurueck()
211
+		else
212
+			Drive_Selection$=Drive_Selection$+"/"+foldername$
213
+			read_folders()
214
+		endif
215
+	break
216
+	
217
+	case "DB_Language:"+PartTwo$+"|"
218
+		Auswahl$=PartTwo$
219
+		COLUMNBOX CLEAR "CB_HTML" //ColumnBox$
220
+		ProgrammierSprachenInhalt(Auswahl$)		
221
+	break
222
+	
223
+	case "DB_Language:_INVOKE:"+PartThree$+"|"
224
+		columnbox ADD "CB_HTML", 2, az, 20, d$(ae)
225
+		TabNumber = TABVIEW GET "Tab_Editor"
226
+  		//Get the current opened tab.
227
+		LineNumber = TEXTEDIT GET "editor"+str$(editorzahl), "cursor-position"	
228
+	break
229
+	
230
+	default:
231
+	end switch
232
+	
233
+	if(window count<1) inloop = false
234
+	
235
+	sleep 0.1
236
+wend
237
+
238
+sub Prg_Fenster()
239
+	window open F_Breite1,F_Hoehe1 to F_Breite2,F_Hoehe2, Hpt_Fenster$, "BeSly Software "+Programmname$
240
+		window set Hpt_Fenster$, "MinimumTo", F_minBreite,F_minHoehe
241
+		window set Hpt_Fenster$, "MaximumTo", F_maxBreite,F_maxHoehe
242
+		WINDOW SET Hpt_Fenster$, "Flags", "not-zoomable"
243
+
244
+	menu "Program", translate$("About"), "", Hpt_Fenster$
245
+	menu "Program", translate$("Help"), "", Hpt_Fenster$
246
+	menu "Program", translate$("Documentation"), "", Hpt_Fenster$
247
+	menu "Program", translate$("Options"), "", Hpt_Fenster$
248
+	menu "Program", translate$("Quit"), "", Hpt_Fenster$
249
+	menu "View", translate$("Fullscreen"), "", Hpt_Fenster$
250
+	menu "View", translate$("Default"), "", Hpt_Fenster$
251
+
252
+	TABVIEW Sel_Breite1,Sel_Hoehe1 TO Sel_Breite2,Sel_Hoehe2, "Tab_Selection", "bottom", Hpt_Fenster$
253
+		TABVIEW ADD "Tab_Selection", "File"
254
+			DROPBOX 4,10 TO 125,20, "DB_Drives", "", "Tab_Selection1"
255
+				DROPBOX ADD "DB_Drives", "Select Drive"
256
+				DROPBOX ADD "DB_Drives", "--"
257
+			COLUMNBOX 10,40 TO 200,200, "CB_Folders",true, "movable", "Tab_Selection1"
258
+				COLUMNBOX COLUMN "CB_Folders", "Icon", 1, 60, 20, 20, "align-left"
259
+				COLUMNBOX COLUMN "CB_Folders", "Name", 2, 60, 200, 20, "align-left"			
260
+			COLUMNBOX 10,220 TO 200,420, "CB_Files",true, "movable", "Tab_Selection1"
261
+				COLUMNBOX COLUMN "CB_Files", "Icon", 1, 60, 20, 20, "align-left"
262
+				COLUMNBOX COLUMN "CB_Files", "Name", 2, 60, 200, 20, "align-left"
263
+		TABVIEW ADD "Tab_Selection", "Code"
264
+			DROPBOX 4,10 TO 125,20, "DB_Language", "", "Tab_Selection2"
265
+				DROPBOX ADD "DB_Language", "Select Language"
266
+				DROPBOX ADD "DB_Language", "--"	
267
+
268
+			COLUMNBOX LB_HTML_Breite1,LB_HTML_Hoehe1 TO LB_HTML_Breite2,LB_HTML_Hoehe2, "CB_HTML", true, "movable", "Tab_Selection2"
269
+				columnbox column "CB_HTML", "Icon", 1, 60, 20, 20, "align-left"
270
+				columnbox column "CB_HTML", "Name", 2, 60, 200, 20, "align-left"
271
+	TABVIEW Opt_Breite1,Opt_Hoehe1 TO Opt_Breite2,Opt_Hoehe2, "Tab_Tags", "top", Hpt_Fenster$
272
+		TABVIEW ADD "Tab_Tags", "Most" 
273
+		TABVIEW ADD "Tab_Tags", "Frames" 
274
+		TABVIEW ADD "Tab_Tags", "Tables" 
275
+		TABVIEW ADD "Tab_Tags", "Fonts"
276
+		TABVIEW ADD "Tab_Tags", "Images"  
277
+
278
+		//Toolbar x1,y1 to x2,y2, "Tab_Tags"+"1"
279
+		//Toolbar x1,y1 to x2,y2, "Tab_Tags"+"2"
280
+		//Toolbar x1,y1 to x2,y2, "Tab_Tags"+"3"
281
+		//Toolbar x1,y1 to x2,y2, "Tab_Tags"+"4"
282
+		//Toolbar x1,y1 to x2,y2, "Tab_Tags"+"5"
283
+
284
+	Editor()
285
+end sub
286
+
287
+sub Editor()
288
+TABVIEW Editor_Breite1, Editor_Hoehe1 TO Editor_Breite2,Editor_Hoehe2, "Tab_Editor", "bottom", Hpt_Fenster$
289
+		TABVIEW ADD "Tab_Editor", "Default" 		
290
+
291
+		TEXTEDIT TE_Breite1,TE_Hoehe1 TO TE_Breite2,TE_Hoehe2, "editor"+str$(editorzahl), 3, "Tab_Editor"+str$(editorzahl)
292
+
293
+			TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "<"
294
+			TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", ">"
295
+			TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "="
296
+			TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "/"
297
+			TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "#"
298
+			TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "<?"
299
+			TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "?>"
300
+end sub
301
+
302
+sub ueber()
303
+	REM ###### Fenstergröße #######
304
+	F_Hoehe_Ueber1=((B_Hoehe/2)-100)
305
+	F_Hoehe_Ueber2=((B_Hoehe/2)+100)
306
+	F_Breite_Ueber1=((B_Breite/2)-100)
307
+	F_Breite_Ueber2=((B_Breite/2)+100)	
308
+
309
+	window open F_Breite_Ueber1,F_Hoehe_Ueber1 to F_Breite_Ueber2,F_Hoehe_Ueber2, "View_Ueber", "About"
310
+		window set "View_Ueber", "MinimumTo", 260,200
311
+		window set "View_Ueber", "MaximumTo", 260,200
312
+		window set "View_Ueber", "look", "modal"
313
+
314
+	draw text 10, 20, Programmname$, "View_Ueber"
315
+	draw text 10, 60, translate$("Version/Date: ")+Version$+" / "+Versionsdatum$, "View_Ueber"
316
+	draw text 10, 80, translate$("Developer: ")+Entwickler$, "View_Ueber"
317
+	draw text 10, 100, translate$("Nickname: ")+Nickname$, "View_Ueber"
318
+	draw text 10, 120, translate$("Webside: "), "View_Ueber"
319
+
320
+	texturl 90,112, "", Url_Label$, Url_Text$, "View_Ueber"
321
+	BUTTON 80,160 TO 180,180, "Beenden_View_Ueber", translate$("Schließen"), "View_Ueber"
322
+
323
+end sub
324
+
325
+
326
+
327
+sub hilfe()
328
+
329
+	REM ###### Fenstergröße #######
330
+	F_Hoehe_Hilfe1=((B_Hoehe/2)-150)
331
+	F_Hoehe_Hilfe2=((B_Hoehe/2)+150)
332
+	F_Breite_Hilfe1=((B_Breite/2)-150)
333
+	F_Breite_Hilfe2=((B_Breite/2)+150)
334
+
335
+	window open F_Breite_Hilfe1,F_Hoehe_Hilfe1 to F_Breite_Hilfe2,F_Hoehe_Hilfe2, "View_Hilfe", "Help"
336
+		window set "View_Hilfe", "MinimumTo", 300,300
337
+		window set "View_Hilfe", "MaximumTo", 300,300
338
+		window set "View_Hilfe", "look", "modal"		
339
+	BUTTON 100,260 TO 200,280, "Beenden_View_Hilfe", translate$("Close"), "View_Hilfe"
340
+end sub
341
+
342
+
343
+
344
+sub read_drives()
345
+
346
+	rDrives$=system$("ls -G -1 /")	
347
+	dim SplitDrives$(1)
348
+	rda=0
349
+	rdb=0
350
+	rda = split(rDrives$, SplitDrives$(), "\n")            
351
+	for rdb = 1 to rda-1
352
+		dropbox add "DB_Drives", SplitDrives$(rdb)
353
+	next rdb
354
+end sub
355
+
356
+sub read_folders()
357
+
358
+	COLUMNBOX CLEAR "CB_Files"
359
+	COLUMNBOX CLEAR "CB_Folders"
360
+	COLUMNBOX ADD "CB_Folders", 2, 1, 15, ".."
361
+	a=0
362
+	dim SplitFolderEntrys$(1)
363
+	dim SplitEntrys$(1)
364
+	CheckFolderEntrys$=system$("ls -all1Q /"+"\""+Drive_Selection$+"\"")
365
+	entrys=split(CheckFolderEntrys$, SplitFolderEntrys$(), " ")
366
+	print SplitFolderEntrys$(1)
367
+	for a=1 to entrys step 10
368
+	
369
+		print SplitFolderEntrys$(a)
370
+	//	Einzelentrys=split(SplitFolderEntrys$(a), SplitEntrys$(), " \"")
371
+	//	for b=1 to Einzelentrys
372
+	//		print SplitEntrys$(1)
373
+	//		if(mid$(SplitEntrys$(1),1,1)="d")then
374
+				COLUMNBOX ADD "CB_Folders", 1, a, 15, "__Path__="+SplitFolderEntrys$(a) 
375
+				COLUMNBOX ADD "CB_Folders", 2, a, 15, SplitFolderEntrys$(a)
376
+	//		endif
377
+	//	next b
378
+	next a
379
+	
380
+
381
+end sub
382
+
383
+sub DateiLaden(editorzahl)
384
+print editorzahl
385
+	auslesen=open("/"+Drive_Selection$+"/"+dateiauswahl$, "r")
386
+	b=0
387
+	StatusLeisteAufbau()
388
+	while (not EOF(auslesen))
389
+   		b=b+1
390
+		dim FileLoad$(b)
391
+   	 	line input #auslesen b$
392
+		FileLoad$(b)=b$		
393
+		statusleiste(editorzahl,b)
394
+	wend
395
+	close(auslesen)
396
+	WINDOW CLOSE "View_Ladebalken"
397
+end sub
398
+
399
+sub StatusLeisteAufbau() 
400
+
401
+	F_Hoehe_Ueber1=((B_Hoehe/2)-100)
402
+	F_Hoehe_Ueber2=((B_Hoehe/2)+100)
403
+	F_Breite_Ueber1=((B_Breite/2)-200)
404
+	F_Breite_Ueber2=((B_Breite/2)+200)
405
+
406
+	window open F_Breite_Ueber1,F_Hoehe_Ueber1 to F_Breite_Ueber2,F_Hoehe_Ueber2, "View_Ladebalken", "xxx"
407
+		window set "View_Ladebalken", "MinimumTo", 400,200
408
+		window set "View_Ladebalken", "MaximumTo", 400,200
409
+		window set "View_Ladebalken", "look", "modal"
410
+	view 20,60 to 380,180, "DrawView", "View_Ladebalken"
411
+		draw set "BgColor", 255,255,255, "DrawView"
412
+ 		draw set "HighColor", 108,166,205,"DrawView"
413
+		draw set 0, "HighSolidFill"
414
+end sub
415
+
416
+sub statusleiste(editorzahl,b)
417
+
418
+	draw set "highcolor", 0,0,0, "DrawView"	
419
+	draw set 1, "HighSolidFill"
420
+	draw circle 50,50, 41, "DrawView"
421
+	draw set "highcolor", 0,0,245, "DrawView"
422
+	radius=radius+0.125	
423
+	draw line 50,50 to 50+cos(radius)*40,50+sin(radius)*40, "DrawView"
424
+
425
+	if (radius=360) then
426
+		radius=0
427
+	endif	
428
+	TEXTEDIT ADD "editor"+str$(editorzahl), FileLoad$(b)
429
+	//TEXTEDIT ADD "editor", "\n"
430
+	wait 0.01
431
+	DRAW FLUSH "DrawView"
432
+
433
+end sub
434
+
435
+sub VerzeichnisZurueck()
436
+	SizeFolderString=0
437
+	BackFolder=0
438
+	SizeFoldername=0
439
+	dim FolderBack$(1)
440
+	SizeFolderString=len(Drive_Selection$)
441
+	BackFolder=split(Drive_Selection$, FolderBack$(), "/")
442
+	SizeFoldername=len(FolderBack$(BackFolder))
443
+	BackDriveName$=left$(Drive_Selection$, (SizeFolderString-(SizeFoldername+1)))
444
+	if(BackDriveName$="")then
445
+		read_folders()
446
+	else
447
+		Drive_Selection$=BackDriveName$
448
+		read_folders()
449
+	endif
450
+end sub
451
+
452
+sub ProgrammierSprachen(ProgrammierSprachenVerzeichnis$)				
453
+	verzeichnisinhalt$=system$("ls -QA "+"\""+ProgrammierSprachenVerzeichnis$+"\"")
454
+	print verzeichnisinhalt$
455
+	dim splitdir_li$(1)
456
+	n = split(verzeichnisinhalt$, splitdir_li$(), "\n")
457
+		aa=0
458
+		b_li$="\""
459
+	//dateiname anzeigen     
460
+	for aa = 1 to ab-1					
461
+	 	posname_li=instr(splitdir_li$(i),b_li$,1)		 
462
+		dateiname_li$=mid$(splitdir_li$(i),posname_li+1)
463
+		posname_ende_li=len(dateiname_li$)
464
+ 	    dateiname_ohne_li$=left$(dateiname_li$,posname_ende_li-1)
465
+	   // print dateiname_ohne_li$			
466
+		DROPBOX ADD "DB_Language", dateiname_ohne_li$			
467
+	next aa
468
+end sub
469
+
470
+sub ProgrammierSprachenInhalt(Auswahl$)
471
+	ac=0
472
+	ad=0
473
+	ae=0	
474
+	DateiAuswahl$=ProgrammierSprachenVerzeichnis$+"/"+Auswahl$
475
+	auslesen=open(DateiAuswahl$, "r")
476
+
477
+	while (not EOF(auslesen))
478
+		line input #auslesen b$
479
+		dim elements$(1)
480
+	numElements = split(b$, elements$(),";")
481
+		for ac = 1 to numElements
482
+			ad=ad+1
483
+			dim d$(ad)
484
+			d$(ad) = elements$(ac)
485
+			print d$(ad)
486
+		next ac
487
+	wend
488
+	close(auslesen)
489
+
490
+	anzahlspalten=numElements
491
+	if (anzahlspalten<1) then
492
+		anzahlzeilen=0
493
+	else
494
+		anzahlzeilen=ad/anzahlspalten
495
+	endif
496
+	print anzahlzeilen
497
+	if (anzahlzeilen>0) then
498
+		for ae = 1 to anzahlzeilen			
499
+			//COLUMNBOX ADD ColumnBox$, Column, Row, Height, Item$
500
+			columnbox ADD "CB_HTML", 2, az, 20, d$(ae) 			
501
+		next ae	
502
+	else
503
+			columnbox ADD "CB_HTML", 2, 1, 20, "Kein Inhalt vorhanden"
504
+	endif
505
+end sub
506
+
507
+sub kopieren_einfuegen(editor$)
508
+	eingabe$=TEXTEDIT GET$ editor$
509
+	CLIPBOARD COPY eingabe$
510
+  //Copy Text$ to the system clipboard.
511
+	Text$ = CLIPBOARD PASTE$
512
+	TEXTEDIT ADD editor$, Text$
513
+  //Paste ASCII text from the system clipboard into Text$.
514
+end sub