// Projectbrowser // // Zentrale Oberfläche zum starten und bearbeiten verschiedener // Beispielprograme // // // Central Interface to run and edit example-programs // // // //''' --- init --- 'does not work :( 'wxSetEnv("XLIB_SKIP_ARGB_VISUALS",1) // Der zu verwendende Interpreter / the interpreter to use: dim winbasic dim linuxbasic dim winperl="..\\..\\bin\\perl.exe" dim linuxperl="/usr/bin/perl" dim winshell="cmd.exe" dim linuxshell="xterm" Dim Applicationname = "wxprojectbrowser01b" Dim dummy Dim lastcombo Dim doubleclick=0 Dim oldlistcontrolwahl Dim oldlistcontrolfilewahl Dim lctrlwahl Dim previewsize=1 Dim changed=0 Dim buttongroup Dim buttongroupactive dim emptytext Dim bmp0 Dim listcontrol1exists=0 Dim img Dim oldpicfile Dim buttonsadded=0 Dim ID_EDITCONFIG = wxID_HIGHEST + 1 ' options Dim ID_LOADCONFIG = wxID_HIGHEST + 2 ' options dim mdir1="" dim mdir2="" dim pfad="" dim fullviews={} dim partialviews={} dim startdir=wxGetworkingDirectory() Dim homedir=wxGetHomeDir() Dim slash = "/" dim os=left(lcase(wxGetOsDescription()),3) if os="win" then slash = "\\" end if dim wintype="nt" if instr(0,lcase(wxGetOsDescription()),"nt")=-1 then wintype="9x" end if 'wxMessagebox(startdir) createconfig() //'''--- build the window --- dim frame = new wxFrame( Null, -1, "wxProjectbrowser 01", wxPoint(50, 50), wxSize(700, 500)) ' wxMessageBox(wintype, "About Projectbrowser", wxOK + wxICON_INFORMATION, frame ) Connect( frame, wxEVT_CLOSE_WINDOW, "onFileExit" ) 'dim panel = new wxpanel(frame,-1) 'if os="win" then ' myparent=panel 'else myparent=frame 'end if //''' --- build the menu --- dim mFile = New wxMenu() mFile.Append( wxID_EXIT, "E&xit\tAlt-X", "Quit this program") connect( frame, wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED, "OnQuit" ) dim mOptions = New wxMenu() mOptions.Append( ID_EDITCONFIG , "&Edit Config\tAlt-E", "Edit Configuration") connect( frame, ID_EDITCONFIG, wxEVT_COMMAND_MENU_SELECTED, "OnEditconfig" ) mOptions.Append( ID_LOADCONFIG , "&Reload Config\tAlt-R", "Reload Configuration") connect( frame, ID_LOADCONFIG, wxEVT_COMMAND_MENU_SELECTED, "readconfig" ) dim mHelp = New wxMenu() mHelp.Append( 1000, "&Help...\tCtrl-H", "Help") mHelp.Append( 1001, "Help &WxWidgets...\tCtrl-W", "Help WxWidgets") mHelp.Append( wxID_ABOUT, "&About...\tCtrl-A", "Show about dialog") connect( frame, wxID_ABOUT, wxEVT_COMMAND_MENU_SELECTED, "OnAbout" ) connect( frame, 1000, wxEVT_COMMAND_MENU_SELECTED, "OnHelp" ) connect( frame, 1001, wxEVT_COMMAND_MENU_SELECTED, "OnHelp2" ) menuBar = New wxMenuBar() menuBar.Append(mFile, "&File") menuBar.Append(mOptions, "&Options") menuBar.Append(mHelp, "&Help") frame.SetMenuBar(menuBar) frame.CreateStatusBar(1) frame.SetStatusText("Demo-Browser ready") //''' --- build Bookmarks --- dim vsizer = new wxBoxSizer( wxVERTICAL ) dim toolsizer = new wxBoxSizer( wxHORIZONTAL ) vsizer.AddSizer(toolsizer,0,wxEXPAND ) dim leftsizer = new wxBoxSizer( wxHORIZONTAL ) dim hsizer = new wxBoxSizer( wxHORIZONTAL ) dim splitwin= new wxSplitterwindow(frame,-1, wxPoint(-1,-1), wxSize(-1,-1),wxSP_NOBORDER|wxSP_3DSASH) vsizer.AddWindow(splitwin,1,wxEXPAND) dim leftpanel=new wxPanel(splitwin,-1) dim rightpanel=new wxPanel(splitwin,-1) splitwin.SplitVertically(leftpanel , rightpanel , 160) leftpanel.SetSizer( leftsizer ) rightpanel.SetSizer( hsizer ) dim lsizer = new wxBoxSizer( wxVERTICAL ) 'dim psizer = new wxBoxSizer( wxVERTICAL ) dim button_tree=new wxButton(myparent, -1, "tree") connect(button_tree,wxEVT_COMMAND_BUTTON_CLICKED,"button_treeclicked") toolsizer.AddWindow(button_tree,0) frame.SetBackgroundColour(button_tree.GetBackgroundColour()) dim button_refresh=new wxButton(myparent, -1, "reload") connect(button_refresh,wxEVT_COMMAND_BUTTON_CLICKED,"button_refreshclicked") toolsizer.AddWindow(button_refresh,0) dim button_dirdetails=new wxButton(myparent, -1, "details") connect(button_dirdetails,wxEVT_COMMAND_BUTTON_CLICKED,"button_dirdetailsclicked") toolsizer.AddWindow(button_dirdetails,0) emptytext=new wxStaticText(myparent,-1," ",wxPoint( -1, -1 )) toolsizer.AddWindow(emptytext,1,wxEXPAND) dim picturefile dim bmp picbuttontest=1 if picbuttontest=1 then picturefile = "resource/f1.xpm" bmp = New wxEmptyBitmap(0,0) bmp.LoadFile(picturefile,wxBITMAP_TYPE_XPM) dim button_rp1=new wxBitmapButton(myparent, -1, bmp,wxPoint( -1, -1 ),wxSize(34,22),wxNO_3D) connect(button_rp1,wxEVT_COMMAND_BUTTON_CLICKED,"button_rp1clicked") toolsizer.AddWindow(button_rp1,0) picturefile = "resource/f2.xpm" bmp = New wxEmptyBitmap(0,0) bmp.LoadFile(picturefile,wxBITMAP_TYPE_XPM) dim button_rp2=new wxBitmapButton(myparent, -1, bmp,wxPoint( -1, -1 ),wxSize(34,22),wxNO_3D) connect(button_rp2,wxEVT_COMMAND_BUTTON_CLICKED,"button_rp2clicked") toolsizer.AddWindow(button_rp2,0) picturefile = "resource/f3.xpm" bmp = New wxEmptyBitmap(0,0) bmp.LoadFile(picturefile,wxBITMAP_TYPE_XPM) dim button_rp3=new wxBitmapButton(myparent, -1, bmp,wxPoint( -1, -1 ),wxSize(34,22),wxNO_3D) connect(button_rp3,wxEVT_COMMAND_BUTTON_CLICKED,"button_rp3clicked") toolsizer.AddWindow(button_rp3,0) picturefile = "resource/f4.xpm" bmp = New wxEmptyBitmap(0,0) bmp.LoadFile(picturefile,wxBITMAP_TYPE_XPM) dim button_rp4=new wxBitmapButton(myparent, -1, bmp,wxPoint( -1, -1 ),wxSize(34,22),wxNO_3D) connect(button_rp4,wxEVT_COMMAND_BUTTON_CLICKED,"button_rp4clicked") toolsizer.AddWindow(button_rp4,0) emptytext=new wxStaticText(myparent,-1," ",wxPoint( -1, -1 )) toolsizer.AddWindow(emptytext,1,wxEXPAND) end if Dim combo=new wxComboBox(myparent,-1,"Bookmarks",wxPoint( -1, -1 ),wxSize( 180,30 )) toolsizer.AddWindow( combo,0,wxEXPAND) Connect(combo,wxEVT_COMMAND_COMBOBOX_SELECTED, "onComboClick" ) 'Dim ConfigFile readconfig( dummy ) //''' --- build dirlist --- dim picturefile1 dim picturefile2 if os="win" then picturefile1 = "resource/document.png" picturefile2 = "resource/folder2.png" else picturefile1 = "resource/linux-document.png" picturefile2 = "resource/linux-folder2.png" end if dim bmp1 = New wxEmptyBitmap(0,0) bmp1.LoadFile(picturefile1,wxBITMAP_TYPE_PNG) dim bmp2 = New wxEmptyBitmap(0,0) bmp2.LoadFile(picturefile2,wxBITMAP_TYPE_PNG) dim myimagelist = new wxImageList() '-- 40 and 19 are theheight and width of the images myimagelist.Create(15,13,1,1) myimagelist.Add( bmp1 ) myimagelist.Add( bmp2 ) //-- as I don't know how to sort arrays, I use a hidden Listbox with the "sort"-Flag instead -- dim listcontrol1= new wxListCtrl(leftpanel,1,wxPoint(-1,-1),wxSize(10,-1), wxLC_REPORT) listcontrol1.SetImageList(myimagelist,1) listcontrol1.InsertColumnInfo(0, "name") listcontrol1.InsertColumnInfo(1, "size") listcontrol1.SetColumnWidth(0,180) sortlistbox= new wxListBox(myparent,1,wxPoint(-1,-1),wxSize(60,-1),0,0,wxLB_SORT) sortlistbox.Show(False) sorted_dirlistbox= new wxListBox(myparent,1,wxPoint(-1,-1),wxSize(100,-1),0,0,wxLB_SORT) sorted_dirlistbox.Show(False) lsizer.AddWindow( listcontrol1,1,wxEXPAND) listcontrol1exists=1 leftsizer.AddSizer(lsizer,1,wxEXPAND|wxALL,2 ) connect(listcontrol1,-1,wxEVT_LEFT_DCLICK,"listbox_doubleclicked") ' connect(listcontrol1,-1,wxEVT_SET_CURSOR,"listbox_clicked") ' connect(listcontrol1,-1,wxEVT_LEFT_UP,"listbox_clicked") if os="win" then connect(listcontrol1,-1,wxEVT_COMMAND_LEFT_CLICK,"listbox_clicked") else connect(listcontrol1,-1,wxEVT_LEFT_UP,"listbox_clicked") end if //-- listbox2 deaktiviert, ist Teil eines anderen Projektes (Micro-Commander) listbox2= new wxListBox(myparent,-1,wxPoint(-1,-1),wxSize(-1,-1)) listbox2.Show(False) 'hsizer.AddWindow( listbox2,1 ,wxEXPAND) //-- listbox3 zur Anzeige der Kurzinfos Dim listbox3 Dim listbox3exists Dim imgsizer=new wxBoxSizer( wxVERTICAL ) Connect( frame, wxEVT_SIZE, "onChanged" ) createpreview() connect(listbox2,wxEVT_LEFT_DCLICK,"listbox2_doubleclicked") dim buttonsizer = new wxBoxSizer( wxHORIZONTAL ) vsizer.AddSizer(buttonsizer,0,wxEXPAND ) //''' --- build a picturebox --- Dim piclist Dim piclistexists=0 // -- show the Window -- frame.SetSizer( vsizer ) frame.SetAutoLayout( True ) frame.Show(True) //--- End of GUI -- //'''1---------- //''' --- build the buttongroups --- sub create_buttons() if buttongroupactive != buttongroup then destroy_buttons1() destroy_buttons2() destroy_buttons3() buttongroupactive="" create_buttons1() create_buttons2() create_buttons3() frame.layout() buttonsadded=1 end if end sub //''' --buttons for coders-- Dim button1 Dim button1b Dim button2 Dim button2b Dim button3 Dim button4 Dim button5 Dim button6 Dim button6a Dim button6b Dim button7 Dim button8 sub create_buttons1() if buttongroup != "basic" then return end if button1=new wxButton(myparent, -1, "run wxBasic") connect(button1,wxEVT_COMMAND_BUTTON_CLICKED,"button_1") buttonsizer.AddWindow(button1,0) button1b=new wxButton(myparent, -1, "run perl") connect(button1b,wxEVT_COMMAND_BUTTON_CLICKED,"button_1b") buttonsizer.AddWindow(button1b,0) button2=new wxButton(myparent, -1, "edit") connect(button2,wxEVT_COMMAND_BUTTON_CLICKED,"button_2") buttonsizer.AddWindow(button2,0) button2b=new wxButton(myparent, -1, " edit in wxE 3.2b ") connect(button2b,wxEVT_COMMAND_BUTTON_CLICKED,"button_2b") buttonsizer.AddWindow(button2b,0) button5=new wxButton(myparent, -1, "view class.i") connect(button5,wxEVT_COMMAND_BUTTON_CLICKED,"button_5") buttonsizer.AddWindow(button5,0) emptytext=new wxStaticText(myparent,-1," ",wxPoint( -1, -1 )) buttonsizer.AddWindow(emptytext,1,wxEXPAND) button3=new wxButton(myparent, -1, "execute") connect(button3,wxEVT_COMMAND_BUTTON_CLICKED,"button_3") buttonsizer.AddWindow(button3,0) button4=new wxButton(myparent, -1, "shell") connect(button4,wxEVT_COMMAND_BUTTON_CLICKED,"button_4") buttonsizer.AddWindow(button4,0) buttongroupactive="basic" end sub sub destroy_buttons1() if buttongroupactive !="basic" then return end if emptytext.destroy() button1.destroy() button1b.destroy() button2.destroy() button2b.destroy() button3.destroy() button4.destroy() button5.destroy() end sub //''' --buttons for writers-- sub create_buttons2() if buttongroup != "text" then return end if button2=new wxButton(myparent, -1, "edit") connect(button2,wxEVT_COMMAND_BUTTON_CLICKED,"button_2") buttonsizer.AddWindow(button2,0) button2b=new wxButton(myparent, -1, " edit in wxE 3.2b ") connect(button2b,wxEVT_COMMAND_BUTTON_CLICKED,"button_2b") buttonsizer.AddWindow(button2b,0) emptytext=new wxStaticText(myparent,-1," ",wxPoint( -1, -1 )) buttonsizer.AddWindow(emptytext,1,wxEXPAND) button3=new wxButton(myparent, -1, "execute") connect(button3,wxEVT_COMMAND_BUTTON_CLICKED,"button_3") buttonsizer.AddWindow(button3,0) button4=new wxButton(myparent, -1, "shell") connect(button4,wxEVT_COMMAND_BUTTON_CLICKED,"button_4") buttonsizer.AddWindow(button4,0) buttongroupactive="text" end sub sub destroy_buttons2() if buttongroupactive !="text" then return end if emptytext.destroy() button2.destroy() button2b.destroy() button3.destroy() button4.destroy() end sub //''' --buttons for designers-- sub create_buttons3() if buttongroup != "grafic" then return end if button6=new wxButton(myparent, -1, " save as scaled.jpg ") connect(button6,wxEVT_COMMAND_BUTTON_CLICKED,"button_6") buttonsizer.AddWindow(button6,0) button6a=new wxButton(myparent, -1, " save as nonscaled.jpg ") connect(button6a,wxEVT_COMMAND_BUTTON_CLICKED,"button_6a") buttonsizer.AddWindow(button6a,0) button6b=new wxButton(myparent, -1, " rotate 90° ") connect(button6b,wxEVT_COMMAND_BUTTON_CLICKED,"button_6b") buttonsizer.AddWindow(button6b,0) text="gimp" if os="win" then text="paint" end if button7=new wxButton(myparent, -1, "open in " & text) connect(button7,wxEVT_COMMAND_BUTTON_CLICKED,"button_7") buttonsizer.AddWindow(button7,0) button8=new wxButton(myparent, -1, "convert for web") connect(button8,wxEVT_COMMAND_BUTTON_CLICKED,"button_8") buttonsizer.AddWindow(button8,0) emptytext=new wxStaticText(myparent,-1," ",wxPoint( -1, -1 )) buttonsizer.AddWindow(emptytext,1,wxEXPAND) button4=new wxButton(myparent, -1, "shell") connect(button4,wxEVT_COMMAND_BUTTON_CLICKED,"button_4") buttonsizer.AddWindow(button4,0) buttongroupactive="grafic" end sub sub destroy_buttons3() if buttongroupactive !="grafic" then return end if emptytext.destroy() button6.destroy() button6a.destroy() button6b.destroy() button7.destroy() button8.destroy() button4.destroy() end sub //'''2--------- //---------------------------------------------------- Actions -- //----------------------------------- Datei ausführen (mit wxBasic)-- sub button_1 ( event ) '-- einige Checks: -- dim wahlcount=listcontrol1.GetNextItem(-1,-1,wxLIST_STATE_SELECTED) dim ziel=listcontrol1.GetItemText(wahlcount) if wxDirExists(mdir1 & "/" & ziel) then return end if 'wxMessageBox(mdir1, "About Projectbrowser", wxOK + wxICON_INFORMATION, myparent ) if os ="win" then mdir1=replace(mdir1,"/","\\") wxsetworkingdirectory(mdir1) 'wxMessagebox(mdir1) if fileexists(startdir & "\\" & winbasic) then wxExecute( startdir & "\\" & "run.exe " & startdir & "\\" & winbasic & " " & mdir1 & "\\" & ziel) else wxExecute( startdir & "\\" & "wxbasic.exe " & mdir1 & "\\" & ziel) 'wxExecute( "c:\\wxbasic2demos01btest" & "\\" & "wxbasic.exe " & mdir1 & "\\" & ziel) end if else wxsetworkingdirectory(mdir1) if fileexists(startdir & "\\" & linuxbasic) then wxExecute( startdir & "/" & linuxbasic & " " & mdir1 & "/" &ziel) else wxExecute( startdir & "/wxbasic" & " " & mdir1 & "/" &ziel) end if end if end sub //----------------------------------- Datei ausführen (mit perl)-- sub button_1b ( event ) '-- einige Checks: -- dim wahlcount=listcontrol1.GetNextItem(-1,-1,wxLIST_STATE_SELECTED) dim ziel=listcontrol1.GetItemText(wahlcount) if wxDirExists(mdir1 & "/" & ziel) then return end if 'wxMessageBox(ziel, "About Projectbrowser", wxOK + wxICON_INFORMATION, myparent ) if os ="win" then wxsetworkingdirectory(mdir1) wxShell( startdir & "\\" & winperl & " " & mdir1 & "\\" &ziel) else wxsetworkingdirectory(mdir1) wxExecute( linuxperl & " " & mdir1 & "/" &ziel) end if end sub sub button_2 ( event ) //----------------------------------- Datei editieren-- '-- einige Checks: -- dim wahlcount=listcontrol1.GetNextItem(-1,-1,wxLIST_STATE_SELECTED) dim ziel=listcontrol1.GetItemText(wahlcount) if wxDirExists(mdir1 & "/" & ziel) then return end if if os ="win" then wxsetworkingdirectory(startdir) if fileexists(startdir & "\\" & winbasic) then wxExecute( startdir & "\\" & "run.exe " & startdir & "\\" & winbasic & " " & startdir & "\\ide.wxb " & mdir1 & "\\" & ziel) else wxExecute( startdir & "\\" & "wxbasic.exe "& startdir & "\\ide.wxb " & mdir1 & "\\" & ziel) end if else wxsetworkingdirectory(startdir) if fileexists(startdir & "/" & linuxbasic) then wxExecute( linuxbasic & " " & startdir & "/ide.wxb " & mdir1 & "/" &ziel ) else wxExecute( startdir & "/wxbasic " & startdir & "/ide.wxb " & mdir1 & "/" &ziel ) end if end if end sub sub button_2b ( event ) //----------------------------------- Datei editieren (in Ducke's Editor)-- '-- einige Checks: -- dim wahlcount=listcontrol1.GetNextItem(-1,-1,wxLIST_STATE_SELECTED) dim ziel=listcontrol1.GetItemText(wahlcount) if wxDirExists(mdir1 & "/" & ziel) then return end if dim korrektur = "" if wxDirExists(startdir & "\\..\\wxeditor3b") then korrektur= "\\.." end if if os ="win" then wxsetworkingdirectory(startdir & korrektur & "\\wxeditor3b") if fileexists(startdir & "\\" & winbasic) then wxExecute( startdir & "\\" & "run.exe " & startdir & "\\" & winbasic & " " & startdir & korrektur & "\\wxeditor3b\\wxeditor.wxb " & mdir1 & "\\" & ziel) else wxExecute( startdir & "\\" & "wxbasic.exe "& startdir & korrektur & "\\wxeditor3b\\wxeditor.wxb " & mdir1 & "\\" & ziel) '''wxExecute( startdir & "\\run.exe " & startdir & "\\wxbasic.exe "& startdir & "\\..\\wxeditor3b\\wxeditor.wxb " & mdir1 & "\\" & ziel) end if else wxMessageBox("-noch nicht implementiert- / -not implemented yet-" , "About Projectbrowser", wxOK + wxICON_INFORMATION, myparent ) end if end sub sub button_3 ( event ) //----------------------------------- Datei ausführen (kein wxBasic)-- '-- einige Checks: -- dim wahlcount=listcontrol1.GetNextItem(-1,-1,wxLIST_STATE_SELECTED) dim ziel=listcontrol1.GetItemText(wahlcount) if wxDirExists(mdir1 & "/" & ziel) then return end if 'wxMessageBox(ziel, "About Projectbrowser", wxOK + wxICON_INFORMATION, myparent ) if os ="win" then wxsetworkingdirectory(mdir1) wxExecute( mdir1 & "\\" &ziel) else wxsetworkingdirectory(mdir1) wxExecute( mdir1 & "/" &ziel) end if end sub sub button_4 ( event ) //----------------------------------- shell aufrufen-- if os ="win" then wxsetworkingdirectory(mdir1) wxExecute( winshell ) else wxsetworkingdirectory(mdir1) wxExecute( linuxshell ) end if end sub sub button_5 ( event ) //----------------------------------- class.i editieren-- '-- einige Checks: -- dim ziel= "resource/class.i" if os ="win" then wxsetworkingdirectory(startdir) if fileexists(startdir & "\\" & winbasic) then wxExecute( startdir & "\\" & "run.exe " & startdir & "\\" & winbasic & " " & startdir & "\\ide.wxb " & startdir & "\\" & ziel) else wxExecute( startdir & "\\" & "wxbasic.exe "& startdir & "\\ide.wxb " & startdir & "\\" & ziel) end if else wxsetworkingdirectory(startdir) if fileexists(startdir & "/" & linuxbasic) then wxExecute( linuxbasic & " " & startdir & "/ide.wxb " & startdir & "/" &ziel ) else wxExecute( startdir & "/wxbasic " & startdir & "/ide.wxb " & startdir & "/" &ziel ) end if end if end sub sub button_6 ( event ) bmp0.SaveFile(mdir1 & "/scaled.jpg" , wxBITMAP_TYPE_JPEG) wxMessageBox("Current view was saved to scaled.jpg") button_refreshclicked ( dummy ) end sub sub button_6a ( event ) dim newbmp = img.ConvertToBitmap() newbmp.SaveFile(mdir1 & "/nonscaled.jpg" , wxBITMAP_TYPE_JPEG) wxMessageBox("Current view was saved to nonscaled.jpg") button_refreshclicked ( dummy ) end sub sub button_6b ( event ) img=img.Rotate90() changed=1 listbox_clicked( dummy ) changed=1 ' onChanged( dummy ) end sub sub button_7 ( event ) '-- einige Checks: -- dim wahlcount=listcontrol1.GetNextItem(-1,-1,wxLIST_STATE_SELECTED) dim ziel=listcontrol1.GetItemText(wahlcount) if wxDirExists(mdir1 & "/" & ziel) then return end if 'wxMessageBox(ziel, "About Projectbrowser", wxOK + wxICON_INFORMATION, myparent ) if os ="win" then wxsetworkingdirectory(mdir1) wxExecute( startdir & "\\run.exe mspaint" & " " & mdir1 & "\\" &ziel) else wxsetworkingdirectory(mdir1) wxExecute( "gimp" & " " & mdir1 & "/" &ziel) end if end sub dim d1ok dim d1frame dim d1text1 dim d1text2 dim d1hsizer1 dim d1inputbox1 dim d1check dim d1button1 dim d1hsizer2 dim d1button2 dim d1button3 sub button_8 ( event ) '-- einige Checks: -- 'dim wahlcount=listcontrol1.GetNextItem(-1,-1,wxLIST_STATE_SELECTED) dim theselected=listcontrol1.GetSelectedItemCount() dim thecurrent dim thecurrentcheck dim lines=listcontrol1.GetItemCount() dim ziel dim i dim resultlist={} dim mycounter=0 for i=1 to lines+1 thecurrentcheck = listcontrol1.GetNextItem(i-1,-1,wxLIST_STATE_SELECTED) if i=thecurrentcheck then ziel=listcontrol1.GetItemText(i) 'wxMessagebox(ziel) resultlist[mycounter]=ziel mycounter += 1 end if end for //''' a small dialog to convert images if os ="win" then mdir1=replace(mdir1,"/","\\") end if infotext = "Es werden alle Bilder auf eine max. Höhe von 600 Punkten reduziert,\nund kleine Vorschaubilder erstellt." infotext2 = "Zielordner:" d1frame=new wxdialog( frame1, -1, "Dialog", wxPoint(300,160), wxSize(420,260),wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE) d1vsizer = new wxBoxSizer( wxVERTICAL ) d1text1=new wxStaticText(d1frame,-1,theselected & " Dateien konvertieren:\n\n" & infotext,wxPoint( -1, 10 )) d1vsizer.AddWindow(d1text1,0,wxEXPAND|wxALL,8) d1text2=new wxStaticText(d1frame,-1,infotext2,wxPoint( -1, -1 )) d1vsizer.AddWindow(d1text2,0,wxEXPAND|wxALL,8) d1hsizer1= new wxBoxSizer( wxHORIZONTAL ) d1vsizer.AddSizer(d1hsizer1,0,wxEXPAND) d1inputbox1=new wxTextCtrl(d1frame,-1,mdir1 & slash & "webseite",wxPoint( -1, -1 ),wxSize( 280, 40 ),wxTE_DONTWRAP ) d1hsizer1.AddWindow(d1inputbox1,0,wxEXPAND|wxALL,12) emptytext=new wxStaticText(d1frame,-1," ",wxPoint( -1, -1 )) d1hsizer1.AddWindow(emptytext,1,wxEXPAND) d1button1=new wxButton(d1frame, -1, "select") connect(d1button1,wxEVT_COMMAND_BUTTON_CLICKED,"d1button_1") d1hsizer1.AddWindow(d1button1,0,wxALL,12) d1hsizer2= new wxBoxSizer( wxHORIZONTAL ) d1vsizer.AddSizer(d1hsizer2,0,wxALIGN_CENTER) d1check=new wxCheckBox(d1frame,-1,"bestehende Bilder überschreiben",wxPoint(-1,-1)) d1hsizer2.AddWindow(d1check,0,wxALIGN_CENTER,8) d1hsizer3= new wxBoxSizer( wxHORIZONTAL ) d1vsizer.AddSizer(d1hsizer3,0,wxALIGN_CENTER) d1button2=new wxButton(d1frame, -1, "ok") connect(d1button2,wxEVT_COMMAND_BUTTON_CLICKED,"d1button_2") d1hsizer3.AddWindow(d1button2,0,wxALL,12) d1button3=new wxButton(d1frame, -1, "cancel") connect(d1button3,wxEVT_COMMAND_BUTTON_CLICKED,"d1button_3") d1hsizer3.AddWindow(d1button3,1,wxALL,12) d1frame.SetBackgroundColour(d1button1.GetBackgroundColour()) d1frame.SetSizer( d1vsizer ) d1frame.Layout( ) if d1frame.ShowModal() = wxID_OK Then 'wxMessagebox(d1check.GetValue()) dim workingdir= d1inputbox1.GetValue() if workingdir = "" then wxMessagebox("illegal directory - aborting") end if if wxDirExists(workingdir)=0 then result=wxMkdir(workingdir) if result !=1 then wxMessagebox("there were Errors: Could not create Directory. Aborting.") return end if end if dim myvalue counter=0 goodlist={} for each myvalue in resultlist doit=1 if wxFileExists(workingdir & slash & myvalue) then if d1check.GetValue() = 0 then wxMessagebox("File exists: skipping: " & myvalue) doit=0 end if end if if doit=1 then '--check if picture d1img = New wxEmptyImage(0,0) d1img.LoadFile(mdir1 & slash & myvalue,wxBITMAP_TYPE_ANY) d1bmp = d1img.ConvertToBitmap() d1height=d1bmp.GetHeight() d1width=d1bmp.GetWidth() d1k=600/d1height d1newwidth=d1width*d1k if d1height>600 then d1img=d1img.Scale(d1newwidth , 600) end if d1bmp2 = d1img.ConvertToBitmap() newname=left(myvalue,len(myvalue)-4) & ".jpg" d1bmp2.SaveFile( workingdir & slash & newname , wxBITMAP_TYPE_JPEG) d1img3=d1img.Scale(d1newwidth/10,60) d1bmp3 = d1img3.ConvertToBitmap() d1bmp3.SaveFile( workingdir & slash & "mini_" & newname , wxBITMAP_TYPE_JPEG) goodlist[counter]=newname counter+=1 end if end for ' --pfadfehler ' button_refreshclicked ( dummy ) '------ create index.htm rows = int(counter/10) html = "\n\n\n\n" html &= "" counter=1 for each myvalue in goodlist html &= "\n" if counter = 10 then counter=0 html &= "" end if counter+=1 end for html &= "\n
\n\n" dim freeNum try freeNum= freeFile() open workingdir & slash & "index.htm" For Append As #freeNum close #freeNum catch:wxMessageBox( "Access denied!", "Error!", wxOK + wxICON_ERROR, frame ) return end try freeNum= freeFile() open workingdir & slash & "index.htm" For Output As #freeNum print #freeNum , html close #freeNum wxMessagebox("ok, fertig, bitte auf den RELOAD-Button klicken,\n um neue Ordner/Bilder zu sehen.") End If end sub sub d1button_1( event ) 'Pull up a window to choose what folder. dim folders =new wxDirDialog(d1frame) If folders.ShowModal() = wxID_OK Then d1inputbox1.Clear() d1inputbox1.WriteText(folders.GetPath()) End If end sub sub d1button_2( event ) d1frame.EndModal(wxID_OK) end sub sub d1button_3( event ) d1frame.EndModal(0) end sub // -- end of dialog -- //----------------------------- sub button_rp1clicked ( event ) splitwin.SetSashPosition(0) end sub sub button_rp2clicked ( event ) splitwin.SetSashPosition(100) end sub sub button_rp3clicked ( event ) splitwin.SetSashPosition(200) end sub sub button_rp4clicked ( event ) splitwin.SetSashPosition(300) end sub sub button_treeclicked ( event ) //----------------------------------- show a treeview-- 'Pull up a window to choose what folder. dim folders =new wxDirDialog(myparent) 'If a folder was choosen and OK was pressed get the path. If folders.ShowModal() = wxID_OK Then dir1 = folders.GetPath() read_dir(".","1",dir1,dir1) End If end sub sub button_refreshclicked ( event ) //----------------------------------- reload dirlist -- dir1=mdir1 read_dir(".","1",dir1,dir1) end sub sub button_dirdetailsclicked ( event ) //----------------------------------- dirlist: show details -- if os="win" then if wintype="9x" then wxExecute("runcmd.exe \"command.com " & startdir & "/resource/ls.exe -al " & mdir1 & "/. >" & startdir & "/resource/dirdetail.txt\"") else wxExecute("runcmd.exe \"cmd /C " & startdir & "/resource/ls.exe -al " & mdir1 & "/. >" & startdir & "/resource/dirdetail.txt\"") end if wxSleep(1) else wxShell("ls -al " & mdir1 & " >" & startdir & "/resource/dirdetail.txt") end if Dim tname = startdir & "/resource/dirdetail.txt" Dim tbuffer = "" if fileExists( tname ) then destroypicpreview() if listbox3exists=1 then listbox3.ClearAll() else createpreview() end if if os="win" then font = new wxFont(8, wxTELETYPE, wxNORMAL, wxNORMAL) else font = new wxFont(10, wxMODERN, wxNORMAL, wxNORMAL,0,"terminal") end if listbox3.StyleSetFont(wxSTC_STYLE_DEFAULT, font) listbox3.AddText("Detailed Information on " & mdir1) listbox3.AddText("\n\n") dim thandle = fOpen( tname, "r" ) while not eof( thandle ) tbuffer= fGets( thandle ) listbox3.AddText(tbuffer & "\n") end while end if fClose( thandle ) button_refreshclicked( dummy ) changed=1 end sub sub onComboClick( event ) dim wahl=combo.GetSelection() dir1 = combo.GetStringSelection() ' if lastcombo=wahl then if mdir1=wahl then return end if if left(dir1,2)="~/" then dir1=homedir & right(dir1,length(dir1)-1) ' wxMessageBox( "ok", ' "", wxOK + wxICON_INFORMATION, myparent ) end if if wxDirExists( dir1 ) then read_dir(".","1",dir1,dir1) lastcombo=wahl end if end sub sub listbox_clicked ( event ) // ----------------------------------------------------- Klick in die listbox: Infotext zeigen -- //''' --- things in the preview-Window --- 'wxMessageBox("ok", "About Projectbrowser", wxOK + wxICON_INFORMATION, myparent ) 'wxMessageBox("1") 'if listcontrol1exists = 0 then ' return 'end if if listcontrol1.GetSelectedItemCount()=0 then return end if 'wxMessageBox("2") dim wahlcount=listcontrol1.GetNextItem(-1,-1,wxLIST_STATE_SELECTED) dim wahl=listcontrol1.GetItemText(wahlcount) if changed=0 then if oldlistcontrolfilewahl =wahl then return end if end if changed=0 oldlistcontrolfilewahl=wahl trim(wahl) dim wasset=0 buttongroup="" //''' - partial-view (text) dim myok=0 dim key For each key in partialviews if right(wahl,len(key))=key then:myok=1:end if next if myok=1 then wasset=1 buttongroup="basic" destroypicpreview() if listbox3exists=1 then listbox3.ClearAll() else createpreview() end if if os="win" then font = new wxFont(10, wxTELETYPE, wxNORMAL, wxNORMAL) else font = new wxFont(10, wxMODERN, wxNORMAL, wxNORMAL,0,"terminal") end if listbox3.StyleSetFont(wxSTC_STYLE_DEFAULT, font) ' listbox3.Show(1) Dim name = mdir1 & "/" & wahl Dim buffer = "" 'wxMessageBox(name, "About Projectbrowser", wxOK + wxICON_INFORMATION, myparent ) if fileExists( name ) then 'wxMessageBox("-noch nicht implementiert-" , "About Projectbrowser", wxOK + wxICON_INFORMATION, myparent ) dim handle = fOpen( name, "r" ) dim counter=0 while not eof( handle ) buffer= fGets( handle ) buffer=ltrim(buffer) if left(buffer,1) = "/" then listbox3.AddText(right(buffer,len(buffer)-2) & "\n") end if if left(buffer,1) = "'" then listbox3.AddText(right(buffer,len(buffer)-1) & "\n") end if if left(buffer,1) = "#" then listbox3.AddText(right(buffer,len(buffer)-1) & "\n") end if counter=counter+1 if counter=10 then break end if end while fClose( handle ) end if end if //''' - full-view (text) Dim mytok=0 For each key in fullviews if right(wahl,len(key))=key then:mytok=1:end if next if mytok=1 then wasset=1 buttongroup="text" destroypicpreview() if listbox3exists=1 then listbox3.ClearAll() else createpreview() end if if os="win" then font = new wxFont(10, wxTELETYPE, wxNORMAL, wxNORMAL) else font = new wxFont(10, wxMODERN, wxNORMAL, wxNORMAL,0,"terminal") end if listbox3.StyleSetFont(wxSTC_STYLE_DEFAULT, font) Dim tname = mdir1 & "/" & wahl Dim tbuffer = "" if fileExists( tname ) then dim thandle = fOpen( tname, "r" ) while not eof( thandle ) tbuffer= fGets( thandle ) listbox3.AddText(tbuffer & "\n") end while end if fClose( thandle ) end if //''' - pictures mytok=0 Dim picturetypes="png,jpg,jpeg,gif,xpm,bmp,ico,cur,xbm,tif,pnm,pcx,pict,icon,maccursor" Dim pictureviews=explode(picturetypes,",") Dim pictype For each key in pictureviews if lcase(right(wahl,len(key)))=key then pictype=lcase(right(wahl,len(key))) mytok=1 end if next if mytok=1 then wasset=1 buttongroup="grafic" if listbox3exists=1 then listbox3.destroy() listbox3exists=0 end if if piclistexists=0 then piclist=new wxListCtrl(rightpanel,1,wxPoint(-1,-1),wxSize(-1,-1), wxLC_ICON) hsizer.AddWindow( piclist,previewsize ,wxEXPAND|wxALL,2) piclist.Show(1) piclistexists=1 hsizer.CalcMin() hsizer.RecalcSizes() end if piclist.ClearAll() dim picturefile1 = mdir1 & "/" & wahl if oldpicfile != picturefile1 then 'wxMessageBox("debug") img = New wxEmptyImage(0,0) if pictype="png" then img.LoadFile(picturefile1,wxBITMAP_TYPE_PNG) end if if pictype="gif" then bmp1.LoadFile(picturefile1,wxBITMAP_TYPE_GIF) end if if pictype="jpg" then img.LoadFile(picturefile1,wxBITMAP_TYPE_JPEG) end if if pictype="jpeg" then img.LoadFile(picturefile1,wxBITMAP_TYPE_JPEG) end if if pictype="xpm" then img.LoadFile(picturefile1,wxBITMAP_TYPE_XPM) end if if pictype="bmp" then img.LoadFile(picturefile1,wxBITMAP_TYPE_BMP) end if if pictype="ico" then img.LoadFile(picturefile1,wxBITMAP_TYPE_ICO) end if if pictype="cur" then img.LoadFile(picturefile1,wxBITMAP_TYPE_CUR) end if if pictype="xbm" then img.LoadFile(picturefile1,wxBITMAP_TYPE_XBM) end if if pictype="tif" then img.LoadFile(picturefile1,wxBITMAP_TYPE_TIF) end if if pictype="pnm" then img.LoadFile(picturefile1,wxBITMAP_TYPE_PNM) end if if pictype="pcx" then img.LoadFile(picturefile1,wxBITMAP_TYPE_PCX) end if if pictype="pict" then img.LoadFile(picturefile1,wxBITMAP_TYPE_PICT) end if if pictype="icon" then img.LoadFile(picturefile1,wxBITMAP_TYPE_ICON) end if if pictype="maccursor" then img.LoadFile(picturefile1,wxBITMAP_TYPE_MACCURSOR) end if end if oldpicfile=picturefile1 'wxMessagebox("debug1") 'wxMessagebox(oldpicfile & "---" & picturefile1) bmp0 = img.ConvertToBitmap() pheight=bmp0.GetHeight() pwidth=bmp0.GetWidth() mysize=hsizer.GetSize() myy=mysize.GetHeight()-34 ' wxMessageBox(myx & "-" & myy) dim myimagelist = new wxImageList() if pheight