#!/boot/home/config/bin/yab //localize ##### Allgemeines ##### Programmname$="HtmlEditor" Version$="1.0" Versionsdatum$="11.10.2006" Entwickler$="Christian Albrecht, Lorenz Glaser" Nickname$="Lelldorin, Lorglas" Url_Label$="BeSly Projects" Url_Text$="http://www.besly.de" ##### Fensternamen ##### Hpt_Fenster$=Programmname$ Lade_Fenster$="" ##### Bildschirmgröße ##### B_Breite = peek("desktopwidth") B_Hoehe = peek("desktopheight") ##### Fenstergröße ##### F_Hoehe1=((B_Hoehe/2)-300) F_Hoehe2=((B_Hoehe/2)+300) F_Breite1=((B_Breite/2)-300) F_Breite2=((B_Breite/2)+300) F_minBreite=800 F_maxBreite=800 F_minHoehe=600 F_maxHoehe=600 ##### Editor View Groesse ##### Editor_Breite1=240 Editor_Breite2= 790 Editor_Hoehe1=120 Editor_Hoehe2=590 ##### Texteditor Groesse ##### TE_Breite1=5 TE_Breite2=535 TE_Hoehe1=30 TE_Hoehe2=420 ##### Tab Optionen ##### Opt_Breite1=240 Opt_Breite2=790 Opt_Hoehe1=30 Opt_Hoehe2=110 ##### Tab Auswahl ##### Sel_Breite1=10 Sel_Breite2=230 Sel_Hoehe1=120 Sel_Hoehe2=590 ##### Listbox Programmiersprache Auswahl ##### LB_HTML_Breite1=10 LB_HTML_Breite2=200 LB_HTML_Hoehe1=40 LB_HTML_Hoehe2=420 ##### Programmverzeichnis ###### Prg_Ordner$="" Gfx_Ordner$="" Hlp_Ordner$="" Sfx_Ordner$="" ProgrammierSprachenVerzeichnis$="/boot/home/Projekte/yab/Html_Editor/ProgrammierSprachen" ################################# editorzahl=1 ################################# ProgrammierSprachen(ProgrammierSprachenVerzeichnis$) ############################################################ # Variablen (Zahlen) fuer mich ab "aa" ############################################################ ##### Programmstart ##### Prg_Fenster() read_drives() ################################ dim part$(1) inloop = true while(inloop) msg$ = message$ if (split(msg$, part$(), ":|") > 2) then PartOne$=part$(1) PartTwo$ = part$(2) PartThree$ = part$(3) fi if (split(msg$, part$(), ":|") > 3) then PartFour$ = part$(4) fi if (msg$ <> "") print msg$ switch msg$ case Hpt_Fenster$+":_QuitRequested|" window close Hpt_Fenster$ window close "View_Ueber" window close "View_Hilfe" break case translate$(Hpt_Fenster$+":Program:Quit")+"|" window close Hpt_Fenster$ window close "View_Ueber" window close "View_Hilfe" break case "Beenden_View_Ueber|" window close "View_Ueber" break case "Beenden_View_Hilfe|" window close "View_Hilfe" break //Funktionen case "DB_Drives:"+PartTwo$+"|" Drive_Selection$=PartTwo$ read_folders() break case Programmname$+":View:Fullscreen|" F_Hoehe1=0 F_Hoehe2=B_Hoehe F_Breite1=0 F_Breite2=B_Breite F_minBreite=800 F_maxBreite=B_Breite F_minHoehe=600 F_maxHoehe=B_Hoehe Editor_Breite2=F_Breite2-20 Editor_Hoehe2=F_Hoehe2-20 TE_Breite2=Editor_Breite2-255 TE_Hoehe2=Editor_Hoehe2-190 Opt_Breite2=Editor_Breite2 Sel_Hoehe2=Editor_Hoehe2 LB_HTML_Hoehe2=TE_Hoehe2 window close Hpt_Fenster$ Prg_Fenster() break case Programmname$+":View:Default|" F_Hoehe1=((B_Hoehe/2)-300) F_Hoehe2=((B_Hoehe/2)+300) F_Breite1=((B_Breite/2)-300) F_Breite2=((B_Breite/2)+300) F_minBreite=800 F_maxBreite=800 F_minHoehe=600 F_maxHoehe=600 Editor_Breite2=790 Editor_Hoehe2=590 TE_Breite2=535 TE_Hoehe2=420 Opt_Breite2=790 Sel_Hoehe2=590 LB_HTML_Hoehe2=420 window close Hpt_Fenster$ Prg_Fenster() break case "CB_Files:_Invoke:"+PartThree$+"|" TabNumber = TABVIEW GET "Tab_Editor" print TabNumber editorzahl=TabNumber ///Get the current opened tab. //while (editorzahl) // EnteredText$ = TEXTEDIT GET$ "editor"+str$(editorzahl) // if (EnteredText$="" or TabNumber=1)then // editorzahl=editorzahl+1 // break // else // editorzahl=1 // break // endif //wend dateiauswahl$=COLUMNBOX GET$ "CB_Files", 2, val(PartThree$) print dateiauswahl$ TABVIEW ADD "Tab_Editor", dateiauswahl$ DateiLaden(TabNumber) break case "CB_Folders:_Invoke:"+PartThree$+"|" foldername$=COLUMNBOX GET$ "CB_Folders", 2, val(PartThree$) if(foldername$="..")then VerzeichnisZurueck() else Drive_Selection$=Drive_Selection$+"/"+foldername$ read_folders() endif break case "DB_Language:"+PartTwo$+"|" Auswahl$=PartTwo$ COLUMNBOX CLEAR "CB_HTML" //ColumnBox$ ProgrammierSprachenInhalt(Auswahl$) break case "DB_Language:_INVOKE:"+PartThree$+"|" columnbox ADD "CB_HTML", 2, az, 20, d$(ae) TabNumber = TABVIEW GET "Tab_Editor" //Get the current opened tab. LineNumber = TEXTEDIT GET "editor"+str$(editorzahl), "cursor-position" break default: end switch if(window count<1) inloop = false sleep 0.1 wend sub Prg_Fenster() window open F_Breite1,F_Hoehe1 to F_Breite2,F_Hoehe2, Hpt_Fenster$, "BeSly Software "+Programmname$ window set Hpt_Fenster$, "MinimumTo", F_minBreite,F_minHoehe window set Hpt_Fenster$, "MaximumTo", F_maxBreite,F_maxHoehe WINDOW SET Hpt_Fenster$, "Flags", "not-zoomable" menu "Program", translate$("About"), "", Hpt_Fenster$ menu "Program", translate$("Help"), "", Hpt_Fenster$ menu "Program", translate$("Documentation"), "", Hpt_Fenster$ menu "Program", translate$("Options"), "", Hpt_Fenster$ menu "Program", translate$("Quit"), "", Hpt_Fenster$ menu "View", translate$("Fullscreen"), "", Hpt_Fenster$ menu "View", translate$("Default"), "", Hpt_Fenster$ TABVIEW Sel_Breite1,Sel_Hoehe1 TO Sel_Breite2,Sel_Hoehe2, "Tab_Selection", "bottom", Hpt_Fenster$ TABVIEW ADD "Tab_Selection", "File" DROPBOX 4,10 TO 125,20, "DB_Drives", "", "Tab_Selection1" DROPBOX ADD "DB_Drives", "Select Drive" DROPBOX ADD "DB_Drives", "--" COLUMNBOX 10,40 TO 200,200, "CB_Folders",true, "movable", "Tab_Selection1" COLUMNBOX COLUMN "CB_Folders", "Icon", 1, 60, 20, 20, "align-left" COLUMNBOX COLUMN "CB_Folders", "Name", 2, 60, 200, 20, "align-left" COLUMNBOX 10,220 TO 200,420, "CB_Files",true, "movable", "Tab_Selection1" COLUMNBOX COLUMN "CB_Files", "Icon", 1, 60, 20, 20, "align-left" COLUMNBOX COLUMN "CB_Files", "Name", 2, 60, 200, 20, "align-left" TABVIEW ADD "Tab_Selection", "Code" DROPBOX 4,10 TO 125,20, "DB_Language", "", "Tab_Selection2" DROPBOX ADD "DB_Language", "Select Language" DROPBOX ADD "DB_Language", "--" COLUMNBOX LB_HTML_Breite1,LB_HTML_Hoehe1 TO LB_HTML_Breite2,LB_HTML_Hoehe2, "CB_HTML", true, "movable", "Tab_Selection2" columnbox column "CB_HTML", "Icon", 1, 60, 20, 20, "align-left" columnbox column "CB_HTML", "Name", 2, 60, 200, 20, "align-left" TABVIEW Opt_Breite1,Opt_Hoehe1 TO Opt_Breite2,Opt_Hoehe2, "Tab_Tags", "top", Hpt_Fenster$ TABVIEW ADD "Tab_Tags", "Most" TABVIEW ADD "Tab_Tags", "Frames" TABVIEW ADD "Tab_Tags", "Tables" TABVIEW ADD "Tab_Tags", "Fonts" TABVIEW ADD "Tab_Tags", "Images" //Toolbar x1,y1 to x2,y2, "Tab_Tags"+"1" //Toolbar x1,y1 to x2,y2, "Tab_Tags"+"2" //Toolbar x1,y1 to x2,y2, "Tab_Tags"+"3" //Toolbar x1,y1 to x2,y2, "Tab_Tags"+"4" //Toolbar x1,y1 to x2,y2, "Tab_Tags"+"5" Editor() end sub sub Editor() TABVIEW Editor_Breite1, Editor_Hoehe1 TO Editor_Breite2,Editor_Hoehe2, "Tab_Editor", "bottom", Hpt_Fenster$ TABVIEW ADD "Tab_Editor", "Default" TEXTEDIT TE_Breite1,TE_Hoehe1 TO TE_Breite2,TE_Hoehe2, "editor"+str$(editorzahl), 3, "Tab_Editor"+str$(editorzahl) TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "<" TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", ">" TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "=" TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "/" TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "#" TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "<?" TEXTEDIT COLOR "editor"+str$(editorzahl), "char-color", "?>" end sub sub ueber() REM ###### Fenstergröße ####### F_Hoehe_Ueber1=((B_Hoehe/2)-100) F_Hoehe_Ueber2=((B_Hoehe/2)+100) F_Breite_Ueber1=((B_Breite/2)-100) F_Breite_Ueber2=((B_Breite/2)+100) window open F_Breite_Ueber1,F_Hoehe_Ueber1 to F_Breite_Ueber2,F_Hoehe_Ueber2, "View_Ueber", "About" window set "View_Ueber", "MinimumTo", 260,200 window set "View_Ueber", "MaximumTo", 260,200 window set "View_Ueber", "look", "modal" draw text 10, 20, Programmname$, "View_Ueber" draw text 10, 60, translate$("Version/Date: ")+Version$+" / "+Versionsdatum$, "View_Ueber" draw text 10, 80, translate$("Developer: ")+Entwickler$, "View_Ueber" draw text 10, 100, translate$("Nickname: ")+Nickname$, "View_Ueber" draw text 10, 120, translate$("Webside: "), "View_Ueber" texturl 90,112, "", Url_Label$, Url_Text$, "View_Ueber" BUTTON 80,160 TO 180,180, "Beenden_View_Ueber", translate$("Schließen"), "View_Ueber" end sub sub hilfe() REM ###### Fenstergröße ####### F_Hoehe_Hilfe1=((B_Hoehe/2)-150) F_Hoehe_Hilfe2=((B_Hoehe/2)+150) F_Breite_Hilfe1=((B_Breite/2)-150) F_Breite_Hilfe2=((B_Breite/2)+150) window open F_Breite_Hilfe1,F_Hoehe_Hilfe1 to F_Breite_Hilfe2,F_Hoehe_Hilfe2, "View_Hilfe", "Help" window set "View_Hilfe", "MinimumTo", 300,300 window set "View_Hilfe", "MaximumTo", 300,300 window set "View_Hilfe", "look", "modal" BUTTON 100,260 TO 200,280, "Beenden_View_Hilfe", translate$("Close"), "View_Hilfe" end sub sub read_drives() rDrives$=system$("ls -G -1 /") dim SplitDrives$(1) rda=0 rdb=0 rda = split(rDrives$, SplitDrives$(), "\n") for rdb = 1 to rda-1 dropbox add "DB_Drives", SplitDrives$(rdb) next rdb end sub sub read_folders() COLUMNBOX CLEAR "CB_Files" COLUMNBOX CLEAR "CB_Folders" COLUMNBOX ADD "CB_Folders", 2, 1, 15, ".." a=0 dim SplitFolderEntrys$(1) dim SplitEntrys$(1) CheckFolderEntrys$=system$("ls -all1Q /"+"\""+Drive_Selection$+"\"") entrys=split(CheckFolderEntrys$, SplitFolderEntrys$(), " ") print SplitFolderEntrys$(1) for a=1 to entrys step 10 print SplitFolderEntrys$(a) // Einzelentrys=split(SplitFolderEntrys$(a), SplitEntrys$(), " \"") // for b=1 to Einzelentrys // print SplitEntrys$(1) // if(mid$(SplitEntrys$(1),1,1)="d")then COLUMNBOX ADD "CB_Folders", 1, a, 15, "__Path__="+SplitFolderEntrys$(a) COLUMNBOX ADD "CB_Folders", 2, a, 15, SplitFolderEntrys$(a) // endif // next b next a end sub sub DateiLaden(editorzahl) print editorzahl auslesen=open("/"+Drive_Selection$+"/"+dateiauswahl$, "r") b=0 StatusLeisteAufbau() while (not EOF(auslesen)) b=b+1 dim FileLoad$(b) line input #auslesen b$ FileLoad$(b)=b$ statusleiste(editorzahl,b) wend close(auslesen) WINDOW CLOSE "View_Ladebalken" end sub sub StatusLeisteAufbau() F_Hoehe_Ueber1=((B_Hoehe/2)-100) F_Hoehe_Ueber2=((B_Hoehe/2)+100) F_Breite_Ueber1=((B_Breite/2)-200) F_Breite_Ueber2=((B_Breite/2)+200) window open F_Breite_Ueber1,F_Hoehe_Ueber1 to F_Breite_Ueber2,F_Hoehe_Ueber2, "View_Ladebalken", "xxx" window set "View_Ladebalken", "MinimumTo", 400,200 window set "View_Ladebalken", "MaximumTo", 400,200 window set "View_Ladebalken", "look", "modal" view 20,60 to 380,180, "DrawView", "View_Ladebalken" draw set "BgColor", 255,255,255, "DrawView" draw set "HighColor", 108,166,205,"DrawView" draw set 0, "HighSolidFill" end sub sub statusleiste(editorzahl,b) draw set "highcolor", 0,0,0, "DrawView" draw set 1, "HighSolidFill" draw circle 50,50, 41, "DrawView" draw set "highcolor", 0,0,245, "DrawView" radius=radius+0.125 draw line 50,50 to 50+cos(radius)*40,50+sin(radius)*40, "DrawView" if (radius=360) then radius=0 endif TEXTEDIT ADD "editor"+str$(editorzahl), FileLoad$(b) //TEXTEDIT ADD "editor", "\n" wait 0.01 DRAW FLUSH "DrawView" end sub sub VerzeichnisZurueck() SizeFolderString=0 BackFolder=0 SizeFoldername=0 dim FolderBack$(1) SizeFolderString=len(Drive_Selection$) BackFolder=split(Drive_Selection$, FolderBack$(), "/") SizeFoldername=len(FolderBack$(BackFolder)) BackDriveName$=left$(Drive_Selection$, (SizeFolderString-(SizeFoldername+1))) if(BackDriveName$="")then read_folders() else Drive_Selection$=BackDriveName$ read_folders() endif end sub sub ProgrammierSprachen(ProgrammierSprachenVerzeichnis$) verzeichnisinhalt$=system$("ls -QA "+"\""+ProgrammierSprachenVerzeichnis$+"\"") print verzeichnisinhalt$ dim splitdir_li$(1) n = split(verzeichnisinhalt$, splitdir_li$(), "\n") aa=0 b_li$="\"" //dateiname anzeigen for aa = 1 to ab-1 posname_li=instr(splitdir_li$(i),b_li$,1) dateiname_li$=mid$(splitdir_li$(i),posname_li+1) posname_ende_li=len(dateiname_li$) dateiname_ohne_li$=left$(dateiname_li$,posname_ende_li-1) // print dateiname_ohne_li$ DROPBOX ADD "DB_Language", dateiname_ohne_li$ next aa end sub sub ProgrammierSprachenInhalt(Auswahl$) ac=0 ad=0 ae=0 DateiAuswahl$=ProgrammierSprachenVerzeichnis$+"/"+Auswahl$ auslesen=open(DateiAuswahl$, "r") while (not EOF(auslesen)) line input #auslesen b$ dim elements$(1) numElements = split(b$, elements$(),";") for ac = 1 to numElements ad=ad+1 dim d$(ad) d$(ad) = elements$(ac) print d$(ad) next ac wend close(auslesen) anzahlspalten=numElements if (anzahlspalten<1) then anzahlzeilen=0 else anzahlzeilen=ad/anzahlspalten endif print anzahlzeilen if (anzahlzeilen>0) then for ae = 1 to anzahlzeilen //COLUMNBOX ADD ColumnBox$, Column, Row, Height, Item$ columnbox ADD "CB_HTML", 2, az, 20, d$(ae) next ae else columnbox ADD "CB_HTML", 2, 1, 20, "Kein Inhalt vorhanden" endif end sub sub kopieren_einfuegen(editor$) eingabe$=TEXTEDIT GET$ editor$ CLIPBOARD COPY eingabe$ //Copy Text$ to the system clipboard. Text$ = CLIPBOARD PASTE$ TEXTEDIT ADD editor$, Text$ //Paste ASCII text from the system clipboard into Text$. end sub