Example: /Linux/Directory Listings with Icons

Online Documentation   -   Statistics   -   FAQ   -   Plugin Parts (All, Dependencies)   -   Class hierarchy

New in Version 22.2 22.3 22.4 22.5 23.0 23.1 23.2 23.3 23.4 23.5 24.0 24.1

The list of the   topics,   classes,   interfaces,   controls,   modules,   global methods by category,   global methods by name,   screenshots,   licenses   and   examples.

Platforms to show: All Mac Windows Linux Cross-Platform

/Linux/Directory Listings with Icons


Required plugins for this example: MBS Picture Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Linux/Directory Listings with Icons

This example is the version from Wed, 10th Sep 2019.

Project "Directory Listings with Icons.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class MainWindow Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
EventHandler Function CellTextPaint(g As Graphics, row As Integer, column As Integer, x as Integer, y as Integer) As Boolean If column = 0 Then Dim v As Variant = Me.CellTag(row, column) If v IsA Picture Then Dim p As Picture = v // draw scaled down into cell Dim pw As Integer = p.Width Dim ph As Integer = p.Height // output always in 16 Dim w As Integer = 16 Dim h As Integer = 16 g.DrawPicture p, x - 15 - w/2, (18 - h)/2, w, h, 0, 0, pw, ph Return False // let text draw End If End If End EventHandler
EventHandler Sub ExpandRow(row As Integer) dim f as FolderItem = me.RowTag(row) if f.Directory then dim c as integer = f.Count for i as integer = 1 to c dim file as FolderItem = f.TrueItem(i) if file<>nil then if file.Visible then add file end if end if next end if End EventHandler
End Control
EventHandler Sub Open() List.ColumnAlignmentOffset(0) = 30 add SpecialFolder.Desktop End EventHandler
Sub Add(f as FolderItem) If f.directory Then list.AddFolder "" else List.AddRow "" End If Dim pic As Picture dim type as string #If TargetLinux Then Dim ThumbnailFile As FolderItem = LinuxIconMBS.FileThumbnail(f) If ThumbnailFile <> Nil Then pic = Picture.Open(ThumbnailFile) type = "thumbnail" End If If pic <> Nil Then pic = LinuxIconMBS.FilePreview(f, 32) type = "preview" End If If pic = Nil Then pic = LinuxIconMBS.FileIcon(f, 32) type = "icon" End If If pic = Nil Then Dim mimetype As String = FileExtensionToMimeTypeMBS(f.name) If mimetype = "" then mimetype = "application/octet-stream" end if pic = LinuxIconMBS.Icon(mimetype) type = mimetype End If 'If pic = Nil Then 'type = "failed?" 'end if #Else pic = f.IconMBS(32) #EndIf List.CellTag(List.LastIndex, 0) = pic List.Cell(List.LastIndex, 0) = f.DisplayName List.Cell(List.LastIndex, 1) = type List.RowTag(List.LastIndex) = f End Sub
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
End Project

The items on this page are in the following plugins: MBS Linux Plugin.


💬 Ask a question or report a problem