From ef888b17abcb3f11eaf8366dba078621c7490ab0 Mon Sep 17 00:00:00 2001 From: travis-ci Date: Wed, 8 Jun 2016 16:50:58 +0000 Subject: [PATCH] Lastest docs updated travis build: 36 commit: a9238ab3d1d4b825243a7b08bd5e99cabcd2ee89 auto-pushed to gh-pages --- HSFM-FileSystem-FileType.html | 28 +- HSFM-FileSystem-UtilTypes.html | 8 +- HSFM-GUI-Glib-GlibString.html | 4 +- HSFM-GUI-Gtk-Callbacks-Utils.html | 6 +- HSFM-GUI-Gtk-Callbacks.html | 6 +- HSFM-GUI-Gtk-Data.html | 8 +- HSFM-GUI-Gtk-Dialogs.html | 10 +- HSFM-GUI-Gtk-Errors.html | 4 +- HSFM-GUI-Gtk-Icons.html | 6 +- HSFM-GUI-Gtk-MyGUI.html | 4 +- HSFM-GUI-Gtk-MyView.html | 12 +- HSFM-GUI-Gtk-Plugins.html | 9 + HSFM-GUI-Gtk-Settings.html | 4 +- HSFM-GUI-Gtk-Utils.html | 14 +- HSFM-History.html | 8 +- HSFM-Settings.html | 8 +- HSFM-Utils-IO.html | 4 +- HSFM-Utils-MyPrelude.html | 6 +- Main.html | 4 +- Paths_hsfm.html | 4 +- doc-index-95.html | 4 +- doc-index-A.html | 4 +- doc-index-All.html | 4 +- doc-index-B.html | 4 +- doc-index-C.html | 4 +- doc-index-D.html | 4 +- doc-index-E.html | 4 +- doc-index-F.html | 4 +- doc-index-G.html | 4 +- doc-index-H.html | 4 +- doc-index-I.html | 4 +- doc-index-L.html | 4 +- doc-index-M.html | 4 +- doc-index-N.html | 4 +- doc-index-O.html | 4 +- doc-index-P.html | 4 +- doc-index-Q.html | 4 +- doc-index-R.html | 4 +- doc-index-S.html | 4 +- doc-index-T.html | 4 +- doc-index-U.html | 4 +- doc-index-V.html | 4 +- doc-index-W.html | 4 +- doc-index.html | 4 +- frames.html | 2 +- haddock-util.js | 24 +- hsfm.haddock | Bin 48511 -> 50018 bytes index-frames.html | 4 +- index.html | 4 +- mini_HSFM-FileSystem-FileType.html | 2 +- mini_HSFM-FileSystem-UtilTypes.html | 2 +- mini_HSFM-GUI-Glib-GlibString.html | 2 +- mini_HSFM-GUI-Gtk-Callbacks-Utils.html | 2 +- mini_HSFM-GUI-Gtk-Callbacks.html | 2 +- mini_HSFM-GUI-Gtk-Data.html | 2 +- mini_HSFM-GUI-Gtk-Dialogs.html | 2 +- mini_HSFM-GUI-Gtk-Errors.html | 2 +- mini_HSFM-GUI-Gtk-Icons.html | 2 +- mini_HSFM-GUI-Gtk-MyGUI.html | 2 +- mini_HSFM-GUI-Gtk-MyView.html | 2 +- mini_HSFM-GUI-Gtk-Plugins.html | 4 + mini_HSFM-GUI-Gtk-Settings.html | 2 +- mini_HSFM-GUI-Gtk-Utils.html | 2 +- mini_HSFM-History.html | 2 +- mini_HSFM-Settings.html | 2 +- mini_HSFM-Utils-IO.html | 2 +- mini_HSFM-Utils-MyPrelude.html | 2 +- mini_Main.html | 2 +- mini_Paths_hsfm.html | 2 +- ocean.css | 64 +-- src/HSFM-GUI-Gtk-MyView.html | 759 +++++++++++++------------ src/HSFM-GUI-Gtk-Plugins.html | 138 +++++ 72 files changed, 717 insertions(+), 573 deletions(-) create mode 100644 HSFM-GUI-Gtk-Plugins.html create mode 100644 mini_HSFM-GUI-Gtk-Plugins.html create mode 100644 src/HSFM-GUI-Gtk-Plugins.html diff --git a/HSFM-FileSystem-FileType.html b/HSFM-FileSystem-FileType.html index 5d266bb..66d8f8c 100644 --- a/HSFM-FileSystem-FileType.html +++ b/HSFM-FileSystem-FileType.html @@ -1,4 +1,4 @@ -HSFM.FileSystem.FileType

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.FileSystem.FileType

Description

This module provides a data type for representing directories/files @@ -10,25 +10,25 @@ window.onload = function () {pageLoad();setSynopsis("mini_HSFM-FileSystem-FileTy happening on filesystem level.

If you interact with low-level libraries, you must not pattern match on the `File a` type. Instead, you should only use the saved path and make no assumptions about the file the path might or - might not point to.

Synopsis

Documentation

data File a Source #

The String in the path field is always a full path. + might not point to.

Synopsis

Documentation

data File a Source

The String in the path field is always a full path. The free type variable is used in the File/Dir constructor and can hold Handles, Strings representing a file's contents or anything else you can - think of.

Constructors

Dir 

Fields

RegFile 

Fields

SymLink 

Fields

BlockDev 

Fields

CharDev 

Fields

NamedPipe 

Fields

Socket 

Fields

Instances

Eq a => Eq (File a) Source # 

Methods

(==) :: File a -> File a -> Bool #

(/=) :: File a -> File a -> Bool #

Ord (File FileInfo) Source #

First compare constructors: Failed < Dir < File... + think of.

Constructors

Dir 

Fields

path :: !(Path Abs)
 
fvar :: a
 
RegFile 

Fields

path :: !(Path Abs)
 
fvar :: a
 
SymLink 

Fields

path :: !(Path Abs)
 
fvar :: a
 
sdest :: Maybe (File a)

symlink madness, + we need to know where it points to

rawdest :: !ByteString
 
BlockDev 

Fields

path :: !(Path Abs)
 
fvar :: a
 
CharDev 

Fields

path :: !(Path Abs)
 
fvar :: a
 
NamedPipe 

Fields

path :: !(Path Abs)
 
fvar :: a
 
Socket 

Fields

path :: !(Path Abs)
 
fvar :: a
 

Instances

Eq a => Eq (File a) Source 
Ord (File FileInfo) Source

First compare constructors: Failed < Dir < File... Then compare name... - Then compare free variable parameter of File constructors

Show a => Show (File a) Source # 

Methods

showsPrec :: Int -> File a -> ShowS #

show :: File a -> String #

showList :: [File a] -> ShowS #

data FileInfo Source #

Low-level file information.

Instances

Eq FileInfo Source # 
Ord FileInfo Source # 
Show FileInfo Source # 
Ord (File FileInfo) Source #

First compare constructors: Failed < Dir < File... + Then compare free variable parameter of File constructors

Show a => Show (File a) Source 

pattern FileLike :: File FileInfo -> File FileInfo Source #

Matches on any non-directory kind of files, excluding symlinks.

pattern DirList :: [File FileInfo] -> [File FileInfo] Source #

Matches a list of directories or symlinks pointing to directories.

pattern FileLikeList :: [File FileInfo] -> [File FileInfo] Source #

Matches a list of any non-directory kind of files or symlinks - pointing to such.

pattern FileLikeSym :: File FileInfo -> File FileInfo Source #

Matches on symlinks pointing to file-like files only.

pattern BrokenSymlink :: File FileInfo -> File FileInfo Source #

Matches on broken symbolic links.

pattern DirOrSym :: File FileInfo -> File FileInfo Source #

Matches on directories or symlinks pointing to directories. + Then compare free variable parameter of File constructors

pattern FileLike :: File FileInfo -> File FileInfo Source

Matches on any non-directory kind of files, excluding symlinks.

pattern DirList :: [File FileInfo] -> [File FileInfo] Source

Matches a list of directories or symlinks pointing to directories.

pattern FileLikeList :: [File FileInfo] -> [File FileInfo] Source

Matches a list of any non-directory kind of files or symlinks + pointing to such.

pattern FileLikeSym :: File FileInfo -> File FileInfo Source

Matches on symlinks pointing to file-like files only.

pattern BrokenSymlink :: File FileInfo -> File FileInfo Source

Matches on broken symbolic links.

pattern DirOrSym :: File FileInfo -> File FileInfo Source

Matches on directories or symlinks pointing to directories. If the symlink is pointing to a symlink pointing to a directory, then it will return True, but also return the first element in the symlink- - chain, not the last.

pattern DirSym :: File FileInfo -> File FileInfo Source #

Matches on symlinks pointing to directories only.

pattern FileLikeOrSym :: File FileInfo -> File FileInfo Source #

Matches on any non-directory kind of files or symlinks pointing to + chain, not the last.

pattern DirSym :: File FileInfo -> File FileInfo Source

Matches on symlinks pointing to directories only.

pattern FileLikeOrSym :: File FileInfo -> File FileInfo Source

Matches on any non-directory kind of files or symlinks pointing to such. If the symlink is pointing to a symlink pointing to such a file, then it will return True, but also return the first element in the symlink- - chain, not the last.

readFile :: (Path Abs -> IO a) -> Path Abs -> IO (File a) Source #

Reads a file or directory Path into an AnchoredFile, filling the free - variables via the given function.

readDirectoryContents Source #

Arguments

:: (Path Abs -> IO a)

fills free a variable

-> Path Abs

path to read

-> IO [File a] 

Get the contents of a given directory and return them as a list - of AnchoredFile.

getContents :: (Path Abs -> IO a) -> File FileInfo -> IO [File a] Source #

A variant of readDirectoryContents where the second argument - is a File. If a non-directory is passed returns an empty list.

goUp :: File FileInfo -> IO (File FileInfo) Source #

Go up one directory in the filesystem hierarchy.

goUp' :: Path Abs -> IO (File FileInfo) Source #

Go up one directory in the filesystem hierarchy.

getFileInfo :: Path Abs -> IO FileInfo Source #

Gets all file information.

isBrokenSymlink :: File FileInfo -> Bool Source #

Checks if a symlink is broken by examining the constructor of the - symlink destination.

When called on a non-symlink, returns False.

packModTime :: File FileInfo -> String Source #

Pack the modification time into a string.

packAccessTime :: File FileInfo -> String Source #

Pack the modification time into a string.

packPermissions :: File FileInfo -> String Source #

Pack the permissions into a string, similar to what "ls -l" does.

fromFreeVar :: Default d => (a -> d) -> File a -> d Source #

Apply a function on the free variable. If there is no free variable - for the given constructor the value from the Default class is used.

getFreeVar :: File a -> Maybe a Source #

Gets the free variable. Returns Nothing if the constructor is of Failed.

\ No newline at end of file + chain, not the last.

readFile :: (Path Abs -> IO a) -> Path Abs -> IO (File a) Source

Reads a file or directory Path into an AnchoredFile, filling the free + variables via the given function.

readDirectoryContents Source

Arguments

:: (Path Abs -> IO a)

fills free a variable

-> Path Abs

path to read

-> IO [File a] 

Get the contents of a given directory and return them as a list + of AnchoredFile.

getContents :: (Path Abs -> IO a) -> File FileInfo -> IO [File a] Source

A variant of readDirectoryContents where the second argument + is a File. If a non-directory is passed returns an empty list.

goUp :: File FileInfo -> IO (File FileInfo) Source

Go up one directory in the filesystem hierarchy.

goUp' :: Path Abs -> IO (File FileInfo) Source

Go up one directory in the filesystem hierarchy.

comparingConstr :: File FileInfo -> File FileInfo -> Ordering Source

isFileC :: File a -> Bool Source

isDirC :: File a -> Bool Source

isSymC :: File a -> Bool Source

isBlockC :: File a -> Bool Source

isCharC :: File a -> Bool Source

isNamedC :: File a -> Bool Source

isSocketC :: File a -> Bool Source

getFileInfo :: Path Abs -> IO FileInfo Source

Gets all file information.

isBrokenSymlink :: File FileInfo -> Bool Source

Checks if a symlink is broken by examining the constructor of the + symlink destination.

When called on a non-symlink, returns False.

packModTime :: File FileInfo -> String Source

Pack the modification time into a string.

packAccessTime :: File FileInfo -> String Source

Pack the modification time into a string.

epochToString :: EpochTime -> String Source

packPermissions :: File FileInfo -> String Source

Pack the permissions into a string, similar to what "ls -l" does.

packFileType :: File a -> String Source

packLinkDestination :: File a -> Maybe ByteString Source

fromFreeVar :: Default d => (a -> d) -> File a -> d Source

Apply a function on the free variable. If there is no free variable + for the given constructor the value from the Default class is used.

getFPasStr :: File a -> String Source

getFreeVar :: File a -> Maybe a Source

Gets the free variable. Returns Nothing if the constructor is of Failed.

\ No newline at end of file diff --git a/HSFM-FileSystem-UtilTypes.html b/HSFM-FileSystem-UtilTypes.html index 5195e68..9856129 100644 --- a/HSFM-FileSystem-UtilTypes.html +++ b/HSFM-FileSystem-UtilTypes.html @@ -1,4 +1,4 @@ -HSFM.FileSystem.UtilTypes

hsfm-gtk

Safe HaskellSafe
LanguageHaskell2010

HSFM.FileSystem.UtilTypes

Description

This module provides high-level IO related file operations like @@ -13,6 +13,6 @@ window.onload = function () {pageLoad();setSynopsis("mini_HSFM-FileSystem-UtilTy the result is undefined if another process changes that context while the non-atomic operation is still happening. However, where possible, as few syscalls as possible are used and the underlying - exception handling is kept.

Synopsis

Documentation

data FileOperation Source #

Data type describing file operations. - Useful to build up a list of operations or delay operations.

Constructors

FCopy Copy 
FMove Move 
FDelete [Path Abs] 
FOpen (Path Abs) 
FExecute (Path Abs) [ByteString] 
None 

data Copy Source #

Data type describing partial or complete file copy operation.

Constructors

PartialCopy [Path Abs] 
Copy [Path Abs] (Path Abs) 

data Move Source #

Data type describing partial or complete file move operation.

Constructors

PartialMove [Path Abs] 
Move [Path Abs] (Path Abs) 

data FCollisonMode Source #

Collision modes that describe the behavior in case a file collision - happens.

Constructors

Strict

fail if the target already exists

Overwrite 
OverwriteAll 
Skip 
Rename (Path Fn) 
\ No newline at end of file + exception handling is kept.

Synopsis

Documentation

data FileOperation Source

Data type describing file operations. + Useful to build up a list of operations or delay operations.

Constructors

FCopy Copy 
FMove Move 
FDelete [Path Abs] 
FOpen (Path Abs) 
FExecute (Path Abs) [ByteString] 
None 

data Copy Source

Data type describing partial or complete file copy operation.

Constructors

PartialCopy [Path Abs] 
Copy [Path Abs] (Path Abs) 

data Move Source

Data type describing partial or complete file move operation.

Constructors

PartialMove [Path Abs] 
Move [Path Abs] (Path Abs) 

data FCollisonMode Source

Collision modes that describe the behavior in case a file collision + happens.

Constructors

Strict

fail if the target already exists

Overwrite 
OverwriteAll 
Skip 
Rename (Path Fn) 
\ No newline at end of file diff --git a/HSFM-GUI-Glib-GlibString.html b/HSFM-GUI-Glib-GlibString.html index bdd27ac..0ab8ee2 100644 --- a/HSFM-GUI-Glib-GlibString.html +++ b/HSFM-GUI-Glib-GlibString.html @@ -1,4 +1,4 @@ -HSFM.GUI.Glib.GlibString

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Glib.GlibString

\ No newline at end of file +

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Glib.GlibString

\ No newline at end of file diff --git a/HSFM-GUI-Gtk-Callbacks-Utils.html b/HSFM-GUI-Gtk-Callbacks-Utils.html index 47a16d1..544fec5 100644 --- a/HSFM-GUI-Gtk-Callbacks-Utils.html +++ b/HSFM-GUI-Gtk-Callbacks-Utils.html @@ -1,5 +1,5 @@ -HSFM.GUI.Gtk.Callbacks.Utils

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Callbacks.Utils

Synopsis

Documentation

doFileOperation :: FileOperation -> IO () Source #

Carries out a file operation with the appropriate error handling - allowing the user to react to various exceptions with further input.

_doFileOperation :: [Path b1] -> Path Abs -> (Path b1 -> Path Abs -> CopyMode -> IO b) -> IO () -> IO () Source #

goDir Source #

Arguments

:: Bool

whether to update the history

-> MyGUI 
-> MyView 
-> Item 
-> IO () 

Helper that is invoked for any directory change operations.

\ No newline at end of file +

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Callbacks.Utils

Synopsis

Documentation

doFileOperation :: FileOperation -> IO () Source

Carries out a file operation with the appropriate error handling + allowing the user to react to various exceptions with further input.

_doFileOperation :: [Path b1] -> Path Abs -> (Path b1 -> Path Abs -> CopyMode -> IO b) -> IO () -> IO () Source

goDir Source

Arguments

:: Bool

whether to update the history

-> MyGUI 
-> MyView 
-> Item 
-> IO () 

Helper that is invoked for any directory change operations.

\ No newline at end of file diff --git a/HSFM-GUI-Gtk-Callbacks.html b/HSFM-GUI-Gtk-Callbacks.html index 8cabe97..b7c16c2 100644 --- a/HSFM-GUI-Gtk-Callbacks.html +++ b/HSFM-GUI-Gtk-Callbacks.html @@ -1,5 +1,5 @@ -HSFM.GUI.Gtk.Callbacks

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Callbacks

Synopsis

Documentation

setGUICallbacks :: MyGUI -> IO () Source #

Set callbacks for the whole gui, on hotkeys, events and stuff.

setViewCallbacks :: MyGUI -> MyView -> IO () Source #

Set callbacks specific to a given view, on hotkeys, events and stuff.

closeTab :: MyGUI -> MyView -> IO () Source #

Closes the current tab, but only if there is more than one tab.

del :: [Item] -> MyGUI -> MyView -> IO () Source #

Supposed to be used with withRows. Deletes a file or directory.

moveInit :: [Item] -> MyGUI -> MyView -> IO () Source #

Initializes a file move operation.

copyInit :: [Item] -> MyGUI -> MyView -> IO () Source #

Supposed to be used with withRows. Initializes a file copy operation.

operationFinal :: MyGUI -> MyView -> Maybe Item -> IO () Source #

Finalizes a file operation, such as copy or move.

newFile :: MyGUI -> MyView -> IO () Source #

Create a new file.

newDir :: MyGUI -> MyView -> IO () Source #

Create a new directory.

renameF :: [Item] -> MyGUI -> MyView -> IO () Source #

urlGoTo :: MyGUI -> MyView -> IO () Source #

Go to the url given at the urlBar and visualize it in the given - treeView.

If the url is invalid, does nothing.

execute :: [Item] -> MyGUI -> MyView -> IO () Source #

Execute a given file.

open :: [Item] -> MyGUI -> MyView -> IO () Source #

Supposed to be used with withRows. Opens a file or directory.

upDir :: MyGUI -> MyView -> IO () Source #

Go up one directory and visualize it in the treeView.

goHistoryBack :: MyGUI -> MyView -> IO (Path Abs) Source #

Go "back" in the history.

goHistoryForward :: MyGUI -> MyView -> IO (Path Abs) Source #

Go "forward" in the history.

mkHistoryMenuB :: MyGUI -> MyView -> [Path Abs] -> IO Menu Source #

Show backwards history in a drop-down menu, depending on the input.

mkHistoryMenuF :: MyGUI -> MyView -> [Path Abs] -> IO Menu Source #

Show forward history in a drop-down menu, depending on the input.

\ No newline at end of file +

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Callbacks

Synopsis

Documentation

setGUICallbacks :: MyGUI -> IO () Source

Set callbacks for the whole gui, on hotkeys, events and stuff.

setViewCallbacks :: MyGUI -> MyView -> IO () Source

Set callbacks specific to a given view, on hotkeys, events and stuff.

closeTab :: MyGUI -> MyView -> IO () Source

Closes the current tab, but only if there is more than one tab.

del :: [Item] -> MyGUI -> MyView -> IO () Source

Supposed to be used with withRows. Deletes a file or directory.

moveInit :: [Item] -> MyGUI -> MyView -> IO () Source

Initializes a file move operation.

copyInit :: [Item] -> MyGUI -> MyView -> IO () Source

Supposed to be used with withRows. Initializes a file copy operation.

operationFinal :: MyGUI -> MyView -> Maybe Item -> IO () Source

Finalizes a file operation, such as copy or move.

newFile :: MyGUI -> MyView -> IO () Source

Create a new file.

newDir :: MyGUI -> MyView -> IO () Source

Create a new directory.

renameF :: [Item] -> MyGUI -> MyView -> IO () Source

urlGoTo :: MyGUI -> MyView -> IO () Source

Go to the url given at the urlBar and visualize it in the given + treeView.

If the url is invalid, does nothing.

execute :: [Item] -> MyGUI -> MyView -> IO () Source

Execute a given file.

open :: [Item] -> MyGUI -> MyView -> IO () Source

Supposed to be used with withRows. Opens a file or directory.

upDir :: MyGUI -> MyView -> IO () Source

Go up one directory and visualize it in the treeView.

goHistoryBack :: MyGUI -> MyView -> IO (Path Abs) Source

Go "back" in the history.

goHistoryForward :: MyGUI -> MyView -> IO (Path Abs) Source

Go "forward" in the history.

mkHistoryMenuB :: MyGUI -> MyView -> [Path Abs] -> IO Menu Source

Show backwards history in a drop-down menu, depending on the input.

mkHistoryMenuF :: MyGUI -> MyView -> [Path Abs] -> IO Menu Source

Show forward history in a drop-down menu, depending on the input.

\ No newline at end of file diff --git a/HSFM-GUI-Gtk-Data.html b/HSFM-GUI-Gtk-Data.html index fae1dab..f490754 100644 --- a/HSFM-GUI-Gtk-Data.html +++ b/HSFM-GUI-Gtk-Data.html @@ -1,8 +1,8 @@ -HSFM.GUI.Gtk.Data

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Data

Synopsis

Documentation

data MyGUI Source #

Monolithic object passed to various GUI functions in order +

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Data

Synopsis

Documentation

data MyGUI Source

Monolithic object passed to various GUI functions in order to keep the API stable and not alter the parameters too much. This only holds GUI widgets that are needed to be read during - runtime.

Constructors

MkMyGUI 

Fields

data MyView Source #

This describes the contents of the current view and is separated from MyGUI, - because we might want to have multiple views.

Constructors

MkMyView 

Fields

data MenuBar Source #

Constructors

MkMenuBar 

Fields

data RightClickMenu Source #

Constructors

MkRightClickMenu 

Fields

data FilePropertyGrid Source #

Constructors

MkFilePropertyGrid 

Fields

data FMSettings Source #

FM-wide settings.

Constructors

MkFMSettings 

Fields

data FMView Source #

Constructors

FMTreeView !TreeView 
FMIconView !IconView 
\ No newline at end of file + runtime.

Constructors

MkMyGUI 

Fields

rootWin :: !Window

main Window

menubar :: !MenuBar
 
statusBar :: !Statusbar
 
clearStatusBar :: !Button
 
notebook :: !Notebook
 
fprop :: !FilePropertyGrid
 
settings :: !(TVar FMSettings)
 
operationBuffer :: !(TVar FileOperation)
 

data MyView Source

This describes the contents of the current view and is separated from MyGUI, + because we might want to have multiple views.

Constructors

MkMyView 

Fields

view :: !(TVar FMView)
 
cwd :: !(MVar Item)
 
rawModel :: !(TVar (ListStore Item))
 
sortedModel :: !(TVar (TypedTreeModelSort Item))
 
filteredModel :: !(TVar (TypedTreeModelFilter Item))
 
inotify :: !(MVar INotify)
 
history :: !(MVar BrowsingHistory)
 
scroll :: !ScrolledWindow
 
viewBox :: !Box
 
rcmenu :: !RightClickMenu
 
backViewB :: !Button
 
upViewB :: !Button
 
forwardViewB :: !Button
 
homeViewB :: !Button
 
refreshViewB :: !Button
 
urlBar :: !Entry
 

data MenuBar Source

Constructors

MkMenuBar 

Fields

menubarFileQuit :: !ImageMenuItem
 
menubarHelpAbout :: !ImageMenuItem
 

data RightClickMenu Source

Constructors

MkRightClickMenu 

Fields

rcMenu :: !Menu
 
rcFileOpen :: !ImageMenuItem
 
rcFileExecute :: !ImageMenuItem
 
rcFileNewRegFile :: !ImageMenuItem
 
rcFileNewDir :: !ImageMenuItem
 
rcFileNewTab :: !ImageMenuItem
 
rcFileNewTerm :: !ImageMenuItem
 
rcFileCut :: !ImageMenuItem
 
rcFileCopy :: !ImageMenuItem
 
rcFileRename :: !ImageMenuItem
 
rcFilePaste :: !ImageMenuItem
 
rcFileDelete :: !ImageMenuItem
 
rcFileProperty :: !ImageMenuItem
 
rcFileIconView :: !ImageMenuItem
 
rcFileTreeView :: !ImageMenuItem
 

data FilePropertyGrid Source

Constructors

MkFilePropertyGrid 

Fields

fpropGrid :: !Grid
 
fpropFnEntry :: !Entry
 
fpropLocEntry :: !Entry
 
fpropTsEntry :: !Entry
 
fpropModEntry :: !Entry
 
fpropAcEntry :: !Entry
 
fpropFTEntry :: !Entry
 
fpropPermEntry :: !Entry
 
fpropLDEntry :: !Entry
 

data FMSettings Source

FM-wide settings.

Constructors

MkFMSettings 

Fields

showHidden :: !Bool
 
isLazy :: !Bool
 
iconSize :: !Int
 

data FMView Source

Constructors

FMTreeView !TreeView 
FMIconView !IconView 
\ No newline at end of file diff --git a/HSFM-GUI-Gtk-Dialogs.html b/HSFM-GUI-Gtk-Dialogs.html index 488d513..eb3608f 100644 --- a/HSFM-GUI-Gtk-Dialogs.html +++ b/HSFM-GUI-Gtk-Dialogs.html @@ -1,7 +1,7 @@ -HSFM.GUI.Gtk.Dialogs

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Dialogs

Documentation

showErrorDialog :: String -> IO () Source #

Pops up an error Dialog with the given String.

showConfirmationDialog :: String -> IO Bool Source #

Asks the user for confirmation and returns True/False.

showAboutDialog :: IO () Source #

Shows the about dialog from the help menu.

withConfirmationDialog :: String -> IO () -> IO () Source #

Carry out an IO action with a confirmation dialog. - If the user presses No, then do nothing.

withErrorDialog :: IO a -> IO () Source #

Execute the given IO action. If the action throws exceptions, - visualize them via showErrorDialog.

textInputDialog Source #

Arguments

:: GlibString string 
=> string

window title

-> string

initial text in input widget

-> IO (Maybe String) 

Asks the user which directory copy mode he wants via dialog popup - and returns DirCopyMode.

\ No newline at end of file +

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Dialogs

Documentation

showErrorDialog :: String -> IO () Source

Pops up an error Dialog with the given String.

showConfirmationDialog :: String -> IO Bool Source

Asks the user for confirmation and returns True/False.

showAboutDialog :: IO () Source

Shows the about dialog from the help menu.

withConfirmationDialog :: String -> IO () -> IO () Source

Carry out an IO action with a confirmation dialog. + If the user presses No, then do nothing.

withErrorDialog :: IO a -> IO () Source

Execute the given IO action. If the action throws exceptions, + visualize them via showErrorDialog.

textInputDialog Source

Arguments

:: GlibString string 
=> string

window title

-> string

initial text in input widget

-> IO (Maybe String) 

Asks the user which directory copy mode he wants via dialog popup + and returns DirCopyMode.

\ No newline at end of file diff --git a/HSFM-GUI-Gtk-Errors.html b/HSFM-GUI-Gtk-Errors.html index d53f6ba..1aaf1fb 100644 --- a/HSFM-GUI-Gtk-Errors.html +++ b/HSFM-GUI-Gtk-Errors.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.Errors

hsfm-gtk

Safe HaskellSafe
LanguageHaskell2010

HSFM.GUI.Gtk.Errors

Description

Provides error handling for Gtk.

\ No newline at end of file +

hsfm-gtk

Safe HaskellSafe
LanguageHaskell2010

HSFM.GUI.Gtk.Errors

Description

Provides error handling for Gtk.

\ No newline at end of file diff --git a/HSFM-GUI-Gtk-Icons.html b/HSFM-GUI-Gtk-Icons.html index b294a00..a38edd3 100644 --- a/HSFM-GUI-Gtk-Icons.html +++ b/HSFM-GUI-Gtk-Icons.html @@ -1,5 +1,5 @@ -HSFM.GUI.Gtk.Icons

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Icons

Description

Module for Gtk icon handling.

Synopsis

Documentation

data GtkIcon Source #

Icon type we use in our GUI.

Constructors

IFolder 
SymL 
IFile 
IError 

getIcon Source #

Arguments

:: GtkIcon

icon we want

-> IconTheme

which icon theme to get the icon from

-> Int

requested icon size

-> IO Pixbuf 

Gets an icon from the default icon theme and falls back to project-icons - if not found. The requested icon size is not guaranteed.

getSymlinkIcon :: GtkIcon -> IconTheme -> Int -> IO Pixbuf Source #

\ No newline at end of file +

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Icons

Description

Module for Gtk icon handling.

Synopsis

Documentation

data GtkIcon Source

Icon type we use in our GUI.

Constructors

IFolder 
SymL 
IFile 
IError 

getIcon Source

Arguments

:: GtkIcon

icon we want

-> IconTheme

which icon theme to get the icon from

-> Int

requested icon size

-> IO Pixbuf 

Gets an icon from the default icon theme and falls back to project-icons + if not found. The requested icon size is not guaranteed.

getSymlinkIcon :: GtkIcon -> IconTheme -> Int -> IO Pixbuf Source

\ No newline at end of file diff --git a/HSFM-GUI-Gtk-MyGUI.html b/HSFM-GUI-Gtk-MyGUI.html index 1235750..05333cf 100644 --- a/HSFM-GUI-Gtk-MyGUI.html +++ b/HSFM-GUI-Gtk-MyGUI.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.MyGUI

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.MyGUI

Synopsis

Documentation

createMyGUI :: IO MyGUI Source #

Set up the GUI. This only creates the permanent widgets.

\ No newline at end of file +

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.MyGUI

Synopsis

Documentation

createMyGUI :: IO MyGUI Source

Set up the GUI. This only creates the permanent widgets.

\ No newline at end of file diff --git a/HSFM-GUI-Gtk-MyView.html b/HSFM-GUI-Gtk-MyView.html index 01bd518..ea08fcc 100644 --- a/HSFM-GUI-Gtk-MyView.html +++ b/HSFM-GUI-Gtk-MyView.html @@ -1,10 +1,10 @@ -HSFM.GUI.Gtk.MyView

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.MyView

Documentation

newTab :: MyGUI -> IO FMView -> Item -> Int -> IO MyView Source #

Creates a new tab with its own view and refreshes the view.

createMyView :: MyGUI -> IO FMView -> IO MyView Source #

Constructs the initial MyView object with a few dummy models. - It also initializes the callbacks.

switchView :: MyGUI -> MyView -> IO FMView -> IO () Source #

Switch the existing view in MyView with the one that the - io action returns.

destroyView :: MyGUI -> MyView -> IO Int Source #

Destroys the given view by disconnecting the watcher +

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.MyView

Documentation

newTab :: MyGUI -> IO FMView -> Item -> Int -> IO MyView Source

Creates a new tab with its own view and refreshes the view.

createMyView :: MyGUI -> IO FMView -> IO MyView Source

Constructs the initial MyView object with a few dummy models. + It also initializes the callbacks.

switchView :: MyGUI -> MyView -> IO FMView -> IO () Source

Switch the existing view in MyView with the one that the + io action returns.

destroyView :: MyGUI -> MyView -> IO Int Source

Destroys the given view by disconnecting the watcher and destroying the active FMView container.

Everything that needs to be done in order to forget about a - view needs to be done here.

Returns the page in the tab list this view corresponds to.

createIconView :: IO FMView Source #

Createss an IconView.

createTreeView :: IO FMView Source #

Creates a TreeView.

refreshView :: MyGUI -> MyView -> Item -> IO () Source #

Refreshes the View based on the given directory.

Throws:

constructView :: MyGUI -> MyView -> IO () Source #

Constructs the visible View with the current underlying mutable models, + view needs to be done here.

Returns the page in the tab list this view corresponds to.

createIconView :: IO FMView Source

Createss an IconView.

createTreeView :: IO FMView Source

Creates a TreeView.

refreshView :: MyGUI -> MyView -> Item -> IO () Source

Refreshes the View based on the given directory.

Throws:

constructView :: MyGUI -> MyView -> IO () Source

Constructs the visible View with the current underlying mutable models, which are retrieved from MyGUI.

This sort of merges the components mygui and myview and fires up - the actual models.

\ No newline at end of file + the actual models.

\ No newline at end of file diff --git a/HSFM-GUI-Gtk-Plugins.html b/HSFM-GUI-Gtk-Plugins.html new file mode 100644 index 0000000..98b422b --- /dev/null +++ b/HSFM-GUI-Gtk-Plugins.html @@ -0,0 +1,9 @@ +HSFM.GUI.Gtk.Plugins

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Plugins

Synopsis

Documentation

addPlugins :: MyGUI -> MyView -> IO () Source

Usually, you don't want to overwrite this method. It + adds plugins from myplugins and initializes the callbacks + automatically.

insertPos :: Int Source

Where to start inserting plugins.

myplugins :: [(IO MenuItem, [Item] -> MyGUI -> MyView -> IO ())] Source

A list of plugins to add to the right-click menu at position + insertPos. The left part of the tuple is the menuitem, the right + part the callback. + Plugins are added in order of this list.

diffPlugin :: IO MenuItem Source

\ No newline at end of file diff --git a/HSFM-GUI-Gtk-Settings.html b/HSFM-GUI-Gtk-Settings.html index 308223f..e91c86d 100644 --- a/HSFM-GUI-Gtk-Settings.html +++ b/HSFM-GUI-Gtk-Settings.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.Settings

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Settings

Documentation

pattern QuitModifier :: [Modifier] Source #

pattern QuitKey :: String Source #

pattern ShowHiddenModifier :: [Modifier] Source #

pattern UpDirModifier :: [Modifier] Source #

pattern UpDirKey :: String Source #

pattern HistoryBackModifier :: [Modifier] Source #

pattern HistoryForwardModifier :: [Modifier] Source #

pattern DeleteModifier :: [Modifier] Source #

pattern OpenModifier :: [Modifier] Source #

pattern OpenKey :: String Source #

pattern CopyModifier :: [Modifier] Source #

pattern CopyKey :: String Source #

pattern MoveModifier :: [Modifier] Source #

pattern MoveKey :: String Source #

pattern PasteModifier :: [Modifier] Source #

pattern PasteKey :: String Source #

pattern NewTabModifier :: [Modifier] Source #

pattern CloseTabModifier :: [Modifier] Source #

pattern OpenTerminalModifier :: [Modifier] Source #

\ No newline at end of file +

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Settings

Documentation

pattern QuitModifier :: [Modifier] Source

pattern QuitKey :: String Source

pattern ShowHiddenModifier :: [Modifier] Source

pattern UpDirModifier :: [Modifier] Source

pattern HistoryBackModifier :: [Modifier] Source

pattern HistoryForwardModifier :: [Modifier] Source

pattern DeleteModifier :: [Modifier] Source

pattern OpenModifier :: [Modifier] Source

pattern OpenKey :: String Source

pattern CopyModifier :: [Modifier] Source

pattern CopyKey :: String Source

pattern MoveModifier :: [Modifier] Source

pattern MoveKey :: String Source

pattern PasteModifier :: [Modifier] Source

pattern NewTabModifier :: [Modifier] Source

pattern CloseTabModifier :: [Modifier] Source

pattern OpenTerminalModifier :: [Modifier] Source

\ No newline at end of file diff --git a/HSFM-GUI-Gtk-Utils.html b/HSFM-GUI-Gtk-Utils.html index f79f683..4d6314d 100644 --- a/HSFM-GUI-Gtk-Utils.html +++ b/HSFM-GUI-Gtk-Utils.html @@ -1,10 +1,10 @@ -HSFM.GUI.Gtk.Utils

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Utils

Synopsis

Documentation

getSelectedItems :: MyGUI -> MyView -> IO [Item] Source #

Gets the currently selected item of the treeView, if any.

withItems Source #

Arguments

:: MyGUI 
-> MyView 
-> ([Item] -> MyGUI -> MyView -> IO ())

action to carry out

-> IO () 

Carry out an action on the currently selected item.

If there is no item selected, does nothing.

fileListStore Source #

Arguments

:: Item

current dir

-> MyView 
-> IO (ListStore Item) 

Create the ListStore of files/directories from the current directory. +

Safe HaskellNone
LanguageHaskell2010

HSFM.GUI.Gtk.Utils

Synopsis

Documentation

getSelectedItems :: MyGUI -> MyView -> IO [Item] Source

Gets the currently selected item of the treeView, if any.

withItems Source

Arguments

:: MyGUI 
-> MyView 
-> ([Item] -> MyGUI -> MyView -> IO ())

action to carry out

-> IO () 

Carry out an action on the currently selected item.

If there is no item selected, does nothing.

fileListStore Source

Arguments

:: Item

current dir

-> MyView 
-> IO (ListStore Item) 

Create the ListStore of files/directories from the current directory. This is the function which maps the Data.DirTree data structures - into the GTK+ data structures.

getFirstItem :: MyView -> IO Item Source #

Currently unsafe. This is used to obtain any item, which will - fail if there is none.

getCurrentDir :: MyView -> IO Item Source #

Reads the current directory from MyView.

This reads the MVar and may block the main thread if it's - empty.

pushStatusBar :: MyGUI -> String -> IO (ContextId, MessageId) Source #

Push a message to the status bar.

popStatusbar :: MyGUI -> IO () Source #

Pop a message from the status bar.

rawPathToIter :: MyView -> TreePath -> IO (Maybe TreeIter) Source #

Turn a path on the rawModel into a path that we can - use at the outermost model layer.

rawPathToItem :: MyView -> TreePath -> IO (Maybe Item) Source #

Turn a path on the rawModel into the corresponding item - that we can use at the outermost model layer.

\ No newline at end of file + into the GTK+ data structures.

getFirstItem :: MyView -> IO Item Source

Currently unsafe. This is used to obtain any item, which will + fail if there is none.

getCurrentDir :: MyView -> IO Item Source

Reads the current directory from MyView.

This reads the MVar and may block the main thread if it's + empty.

pushStatusBar :: MyGUI -> String -> IO (ContextId, MessageId) Source

Push a message to the status bar.

popStatusbar :: MyGUI -> IO () Source

Pop a message from the status bar.

rawPathToIter :: MyView -> TreePath -> IO (Maybe TreeIter) Source

Turn a path on the rawModel into a path that we can + use at the outermost model layer.

rawPathToItem :: MyView -> TreePath -> IO (Maybe Item) Source

Turn a path on the rawModel into the corresponding item + that we can use at the outermost model layer.

\ No newline at end of file diff --git a/HSFM-History.html b/HSFM-History.html index baeb095..dbde8a4 100644 --- a/HSFM-History.html +++ b/HSFM-History.html @@ -1,6 +1,6 @@ -HSFM.History

hsfm-gtk

Safe HaskellSafe
LanguageHaskell2010

HSFM.History

Documentation

data BrowsingHistory Source #

Browsing history. For forwardHistory and backwardsHistory - the first item is the most recent one.

Constructors

BrowsingHistory 

Fields

historyNewPath :: Path Abs -> BrowsingHistory -> BrowsingHistory Source #

This is meant to be called after e.g. a new path is entered - (not navigated to via the history) and the history needs updating.

historyBack :: BrowsingHistory -> BrowsingHistory Source #

Go back one step in the history.

historyForward :: BrowsingHistory -> BrowsingHistory Source #

Go forward one step in the history.

\ No newline at end of file +

hsfm-gtk

Safe HaskellSafe
LanguageHaskell2010

HSFM.History

Documentation

data BrowsingHistory Source

Browsing history. For forwardHistory and backwardsHistory + the first item is the most recent one.

Constructors

BrowsingHistory 

Fields

backwardsHistory :: [Path Abs]
 
currentDir :: Path Abs
 
forwardHistory :: [Path Abs]
 
maxSize :: Int
 

historyNewPath :: Path Abs -> BrowsingHistory -> BrowsingHistory Source

This is meant to be called after e.g. a new path is entered + (not navigated to via the history) and the history needs updating.

historyBack :: BrowsingHistory -> BrowsingHistory Source

Go back one step in the history.

historyForward :: BrowsingHistory -> BrowsingHistory Source

Go forward one step in the history.

\ No newline at end of file diff --git a/HSFM-Settings.html b/HSFM-Settings.html index bc79600..034f791 100644 --- a/HSFM-Settings.html +++ b/HSFM-Settings.html @@ -1,7 +1,7 @@ -HSFM.Settings

hsfm-gtk

Safe HaskellSafe
LanguageHaskell2010

HSFM.Settings

Documentation

terminalCommand Source #

Arguments

:: ByteString

current directory of the FM

-> IO a 

The terminal command. This should call executeFile in the end - with the appropriate arguments.

home :: IO ByteString Source #

The home directory. If you want to set it explicitly, you might +

Safe HaskellSafe
LanguageHaskell2010

HSFM.Settings

Documentation

terminalCommand Source

Arguments

:: ByteString

current directory of the FM

-> IO a 

The terminal command. This should call executeFile in the end + with the appropriate arguments.

home :: IO ByteString Source

The home directory. If you want to set it explicitly, you might want to do:

home = return "/home/wurst"
-
\ No newline at end of file +
\ No newline at end of file diff --git a/HSFM-Utils-IO.html b/HSFM-Utils-IO.html index a9b63bb..2d0d002 100644 --- a/HSFM-Utils-IO.html +++ b/HSFM-Utils-IO.html @@ -1,4 +1,4 @@ -HSFM.Utils.IO

hsfm-gtk

Safe HaskellSafe
LanguageHaskell2010

HSFM.Utils.IO

Description

Random and general IO utilities.

Synopsis

Documentation

writeTVarIO :: TVar a -> a -> IO () Source #

Atomically write a TVar.

modifyTVarIO :: TVar a -> (a -> a) -> IO () Source #

Atomically modify a TVar.

\ No newline at end of file +

hsfm-gtk

Safe HaskellSafe
LanguageHaskell2010

HSFM.Utils.IO

Description

Random and general IO utilities.

Synopsis

Documentation

writeTVarIO :: TVar a -> a -> IO () Source

Atomically write a TVar.

modifyTVarIO :: TVar a -> (a -> a) -> IO () Source

Atomically modify a TVar.

\ No newline at end of file diff --git a/HSFM-Utils-MyPrelude.html b/HSFM-Utils-MyPrelude.html index 817e36b..35fbc10 100644 --- a/HSFM-Utils-MyPrelude.html +++ b/HSFM-Utils-MyPrelude.html @@ -1,6 +1,6 @@ -HSFM.Utils.MyPrelude

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

HSFM.Utils.MyPrelude

Synopsis

Documentation

listIndices :: [a] -> [Int] Source #

Turns any list into a list of the same length with the values +

Safe HaskellNone
LanguageHaskell2010

HSFM.Utils.MyPrelude

Synopsis

Documentation

listIndices :: [a] -> [Int] Source

Turns any list into a list of the same length with the values being the indices. - E.g.: "abdasd" -> [0,1,2,3,4,5]

maybeD :: Default b => (a -> b) -> Maybe a -> b Source #

A maybe flavor using the Default class.

\ No newline at end of file + E.g.: "abdasd" -> [0,1,2,3,4,5]

maybeD :: Default b => (a -> b) -> Maybe a -> b Source

A maybe flavor using the Default class.

\ No newline at end of file diff --git a/Main.html b/Main.html index 215f314..326a22c 100644 --- a/Main.html +++ b/Main.html @@ -1,4 +1,4 @@ -Main

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

Main

Documentation

main :: IO () Source #

\ No newline at end of file +

hsfm-gtk

Safe HaskellNone
LanguageHaskell2010

Main

Documentation

main :: IO () Source

\ No newline at end of file diff --git a/Paths_hsfm.html b/Paths_hsfm.html index 9edbce3..f20c1e6 100644 --- a/Paths_hsfm.html +++ b/Paths_hsfm.html @@ -1,4 +1,4 @@ -Paths_hsfm

hsfm-gtk

Safe HaskellSafe
LanguageHaskell2010

Paths_hsfm

\ No newline at end of file +

hsfm-gtk

Safe HaskellSafe
LanguageHaskell2010

Paths_hsfm

\ No newline at end of file diff --git a/doc-index-95.html b/doc-index-95.html index 07d4572..805af0d 100644 --- a/doc-index-95.html +++ b/doc-index-95.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - _)

hsfm-gtk

Index - _

_doFileOperationHSFM.GUI.Gtk.Callbacks.Utils
\ No newline at end of file +

hsfm-gtk

Index - _

_doFileOperationHSFM.GUI.Gtk.Callbacks.Utils
\ No newline at end of file diff --git a/doc-index-A.html b/doc-index-A.html index 012247b..f0438df 100644 --- a/doc-index-A.html +++ b/doc-index-A.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - A)

hsfm-gtk

Index - A

accessTimeHSFM.FileSystem.FileType
accessTimeHiResHSFM.FileSystem.FileType
\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-All.html b/doc-index-All.html index 7bf8e61..73911aa 100644 --- a/doc-index-All.html +++ b/doc-index-All.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index)

hsfm-gtk

Index

accessTimeHSFM.FileSystem.FileType
accessTimeHiResHSFM.FileSystem.FileType
backViewBHSFM.GUI.Gtk.Data
backwardsHistoryHSFM.History
BlockDevHSFM.FileSystem.FileType
BrokenSymlinkHSFM.FileSystem.FileType
brokenSymlinkHSFM.FileSystem.FileType
BrowsingHistory 
1 (Type/Class)HSFM.History
2 (Data Constructor)HSFM.History
CharDevHSFM.FileSystem.FileType
clearStatusBarHSFM.GUI.Gtk.Data
closeTabHSFM.GUI.Gtk.Callbacks
CloseTabKeyHSFM.GUI.Gtk.Settings
CloseTabModifierHSFM.GUI.Gtk.Settings
comparingConstrHSFM.FileSystem.FileType
constructViewHSFM.GUI.Gtk.MyView
Copy 
1 (Type/Class)HSFM.FileSystem.UtilTypes
2 (Data Constructor)HSFM.FileSystem.UtilTypes
copyInitHSFM.GUI.Gtk.Callbacks
CopyKeyHSFM.GUI.Gtk.Settings
CopyModifierHSFM.GUI.Gtk.Settings
createIconViewHSFM.GUI.Gtk.MyView
createMyGUIHSFM.GUI.Gtk.MyGUI
createMyViewHSFM.GUI.Gtk.MyView
createTreeViewHSFM.GUI.Gtk.MyView
currentDirHSFM.History
cwdHSFM.GUI.Gtk.Data
c_strlenHSFM.GUI.Glib.GlibString
delHSFM.GUI.Gtk.Callbacks
DeleteKeyHSFM.GUI.Gtk.Settings
DeleteModifierHSFM.GUI.Gtk.Settings
destroyViewHSFM.GUI.Gtk.MyView
deviceIDHSFM.FileSystem.FileType
DirHSFM.FileSystem.FileType
DirListHSFM.FileSystem.FileType
DirOrSymHSFM.FileSystem.FileType
DirSymHSFM.FileSystem.FileType
dirSymHSFM.FileSystem.FileType
doFileOperationHSFM.GUI.Gtk.Callbacks.Utils
epochToStringHSFM.FileSystem.FileType
executeHSFM.GUI.Gtk.Callbacks
FCollisonModeHSFM.FileSystem.UtilTypes
FCopyHSFM.FileSystem.UtilTypes
FDeleteHSFM.FileSystem.UtilTypes
FExecuteHSFM.FileSystem.UtilTypes
FileHSFM.FileSystem.FileType
fileCollisionDialogHSFM.GUI.Gtk.Dialogs
fileGroupHSFM.FileSystem.FileType
fileIDHSFM.FileSystem.FileType
FileInfo 
1 (Type/Class)HSFM.FileSystem.FileType
2 (Data Constructor)HSFM.FileSystem.FileType
FileLikeHSFM.FileSystem.FileType
fileLikeHSFM.FileSystem.FileType
FileLikeListHSFM.FileSystem.FileType
FileLikeOrSymHSFM.FileSystem.FileType
FileLikeSymHSFM.FileSystem.FileType
fileLikeSymHSFM.FileSystem.FileType
fileListStoreHSFM.GUI.Gtk.Utils
fileModeHSFM.FileSystem.FileType
FileOperationHSFM.FileSystem.UtilTypes
fileOwnerHSFM.FileSystem.FileType
FilePropertyGridHSFM.GUI.Gtk.Data
fileSizeHSFM.FileSystem.FileType
filteredModelHSFM.GUI.Gtk.Data
FMIconViewHSFM.GUI.Gtk.Data
FMoveHSFM.FileSystem.UtilTypes
FMSettingsHSFM.GUI.Gtk.Data
FMTreeViewHSFM.GUI.Gtk.Data
FMViewHSFM.GUI.Gtk.Data
fmViewToContainerHSFM.GUI.Gtk.Data
FOpenHSFM.FileSystem.UtilTypes
forwardHistoryHSFM.History
forwardViewBHSFM.GUI.Gtk.Data
fpropHSFM.GUI.Gtk.Data
fpropAcEntryHSFM.GUI.Gtk.Data
fpropFnEntryHSFM.GUI.Gtk.Data
fpropFTEntryHSFM.GUI.Gtk.Data
fpropGridHSFM.GUI.Gtk.Data
fpropLDEntryHSFM.GUI.Gtk.Data
fpropLocEntryHSFM.GUI.Gtk.Data
fpropModEntryHSFM.GUI.Gtk.Data
fpropPermEntryHSFM.GUI.Gtk.Data
fpropTsEntryHSFM.GUI.Gtk.Data
fromFreeVarHSFM.FileSystem.FileType
fvarHSFM.FileSystem.FileType
getBinDirPaths_hsfm
getContentsHSFM.FileSystem.FileType
getCurrentDirHSFM.GUI.Gtk.Utils
getDataDirPaths_hsfm
getDataFileNamePaths_hsfm
getFileInfoHSFM.FileSystem.FileType
getFirstItemHSFM.GUI.Gtk.Utils
getFPasStrHSFM.FileSystem.FileType
getFreeVarHSFM.FileSystem.FileType
getIconHSFM.GUI.Gtk.Icons
getLibDirPaths_hsfm
getLibexecDirPaths_hsfm
getSelectedItemsHSFM.GUI.Gtk.Utils
getSelectedTreePathsHSFM.GUI.Gtk.Utils
getSymlinkIconHSFM.GUI.Gtk.Icons
getSysconfDirPaths_hsfm
goDirHSFM.GUI.Gtk.Callbacks.Utils
goHistoryBackHSFM.GUI.Gtk.Callbacks
goHistoryForwardHSFM.GUI.Gtk.Callbacks
goHomeHSFM.GUI.Gtk.Callbacks
goUpHSFM.FileSystem.FileType
goUp'HSFM.FileSystem.FileType
GtkExceptionHSFM.GUI.Gtk.Errors
GtkIconHSFM.GUI.Gtk.Icons
historyHSFM.GUI.Gtk.Data
historyBackHSFM.History
HistoryBackKeyHSFM.GUI.Gtk.Settings
HistoryBackModifierHSFM.GUI.Gtk.Settings
historyForwardHSFM.History
HistoryForwardKeyHSFM.GUI.Gtk.Settings
HistoryForwardModifierHSFM.GUI.Gtk.Settings
historyNewPathHSFM.History
homeHSFM.Settings
homeViewBHSFM.GUI.Gtk.Data
iconSizeHSFM.GUI.Gtk.Data
IErrorHSFM.GUI.Gtk.Icons
IFileHSFM.GUI.Gtk.Icons
IFolderHSFM.GUI.Gtk.Icons
inotifyHSFM.GUI.Gtk.Data
isBlockCHSFM.FileSystem.FileType
isBrokenSymlinkHSFM.FileSystem.FileType
isCharCHSFM.FileSystem.FileType
isDirCHSFM.FileSystem.FileType
isFileCHSFM.FileSystem.FileType
isLazyHSFM.GUI.Gtk.Data
isNamedCHSFM.FileSystem.FileType
isSocketCHSFM.FileSystem.FileType
isSymCHSFM.FileSystem.FileType
ItemHSFM.GUI.Gtk.Data
linkCountHSFM.FileSystem.FileType
listIndicesHSFM.Utils.MyPrelude
mainMain
maxSizeHSFM.History
maybeDHSFM.Utils.MyPrelude
MenuBarHSFM.GUI.Gtk.Data
menubarHSFM.GUI.Gtk.Data
menubarFileQuitHSFM.GUI.Gtk.Data
menubarHelpAboutHSFM.GUI.Gtk.Data
MkFilePropertyGridHSFM.GUI.Gtk.Data
MkFMSettingsHSFM.GUI.Gtk.Data
mkHistoryMenuBHSFM.GUI.Gtk.Callbacks
mkHistoryMenuFHSFM.GUI.Gtk.Callbacks
MkMenuBarHSFM.GUI.Gtk.Data
MkMyGUIHSFM.GUI.Gtk.Data
MkMyViewHSFM.GUI.Gtk.Data
MkRightClickMenuHSFM.GUI.Gtk.Data
modificationTimeHSFM.FileSystem.FileType
modificationTimeHiResHSFM.FileSystem.FileType
modifyTVarIOHSFM.Utils.IO
Move 
1 (Type/Class)HSFM.FileSystem.UtilTypes
2 (Data Constructor)HSFM.FileSystem.UtilTypes
moveInitHSFM.GUI.Gtk.Callbacks
MoveKeyHSFM.GUI.Gtk.Settings
MoveModifierHSFM.GUI.Gtk.Settings
MyGUIHSFM.GUI.Gtk.Data
MyViewHSFM.GUI.Gtk.Data
NamedPipeHSFM.FileSystem.FileType
newDirHSFM.GUI.Gtk.Callbacks
newFileHSFM.GUI.Gtk.Callbacks
newTabHSFM.GUI.Gtk.MyView
newTab'HSFM.GUI.Gtk.Callbacks
NewTabKeyHSFM.GUI.Gtk.Settings
NewTabModifierHSFM.GUI.Gtk.Settings
NoneHSFM.FileSystem.UtilTypes
noNullPtrsHSFM.GUI.Glib.GlibString
notebookHSFM.GUI.Gtk.Data
opeInNewTabHSFM.GUI.Gtk.Callbacks
openHSFM.GUI.Gtk.Callbacks
OpenKeyHSFM.GUI.Gtk.Settings
OpenModifierHSFM.GUI.Gtk.Settings
openTerminalHereHSFM.GUI.Gtk.Callbacks
OpenTerminalKeyHSFM.GUI.Gtk.Settings
OpenTerminalModifierHSFM.GUI.Gtk.Settings
operationBufferHSFM.GUI.Gtk.Data
operationFinalHSFM.GUI.Gtk.Callbacks
OverwriteHSFM.FileSystem.UtilTypes
OverwriteAllHSFM.FileSystem.UtilTypes
packAccessTimeHSFM.FileSystem.FileType
packFileTypeHSFM.FileSystem.FileType
packLinkDestinationHSFM.FileSystem.FileType
packModTimeHSFM.FileSystem.FileType
packPermissionsHSFM.FileSystem.FileType
PartialCopyHSFM.FileSystem.UtilTypes
PartialMoveHSFM.FileSystem.UtilTypes
PasteKeyHSFM.GUI.Gtk.Settings
PasteModifierHSFM.GUI.Gtk.Settings
pathHSFM.FileSystem.FileType
popStatusbarHSFM.GUI.Gtk.Utils
pushStatusBarHSFM.GUI.Gtk.Utils
QuitKeyHSFM.GUI.Gtk.Settings
QuitModifierHSFM.GUI.Gtk.Settings
rawdestHSFM.FileSystem.FileType
rawModelHSFM.GUI.Gtk.Data
rawPathToItemHSFM.GUI.Gtk.Utils
rawPathToIterHSFM.GUI.Gtk.Utils
rcFileCopyHSFM.GUI.Gtk.Data
rcFileCutHSFM.GUI.Gtk.Data
rcFileDeleteHSFM.GUI.Gtk.Data
rcFileExecuteHSFM.GUI.Gtk.Data
rcFileIconViewHSFM.GUI.Gtk.Data
rcFileNewDirHSFM.GUI.Gtk.Data
rcFileNewRegFileHSFM.GUI.Gtk.Data
rcFileNewTabHSFM.GUI.Gtk.Data
rcFileNewTermHSFM.GUI.Gtk.Data
rcFileOpenHSFM.GUI.Gtk.Data
rcFilePasteHSFM.GUI.Gtk.Data
rcFilePropertyHSFM.GUI.Gtk.Data
rcFileRenameHSFM.GUI.Gtk.Data
rcFileTreeViewHSFM.GUI.Gtk.Data
rcMenuHSFM.GUI.Gtk.Data
rcmenuHSFM.GUI.Gtk.Data
readDirectoryContentsHSFM.FileSystem.FileType
readFileHSFM.FileSystem.FileType
refreshViewHSFM.GUI.Gtk.MyView
refreshViewBHSFM.GUI.Gtk.Data
RegFileHSFM.FileSystem.FileType
RenameHSFM.FileSystem.UtilTypes
renameDialogHSFM.GUI.Gtk.Dialogs
renameFHSFM.GUI.Gtk.Callbacks
RightClickMenuHSFM.GUI.Gtk.Data
rootWinHSFM.GUI.Gtk.Data
scrollHSFM.GUI.Gtk.Data
sdestHSFM.FileSystem.FileType
sdirHSFM.FileSystem.FileType
setGUICallbacksHSFM.GUI.Gtk.Callbacks
settingsHSFM.GUI.Gtk.Data
setViewCallbacksHSFM.GUI.Gtk.Callbacks
sfileLikeHSFM.FileSystem.FileType
showAboutDialogHSFM.GUI.Gtk.Dialogs
showConfirmationDialogHSFM.GUI.Gtk.Dialogs
showErrorDialogHSFM.GUI.Gtk.Dialogs
showFilePropertyDialogHSFM.GUI.Gtk.Dialogs
showHiddenHSFM.GUI.Gtk.Data
ShowHiddenKeyHSFM.GUI.Gtk.Settings
ShowHiddenModifierHSFM.GUI.Gtk.Settings
SkipHSFM.FileSystem.UtilTypes
SocketHSFM.FileSystem.FileType
sortedModelHSFM.GUI.Gtk.Data
specialDeviceIDHSFM.FileSystem.FileType
statusBarHSFM.GUI.Gtk.Data
statusChangeTimeHSFM.FileSystem.FileType
statusChangeTimeHiResHSFM.FileSystem.FileType
StrictHSFM.FileSystem.UtilTypes
switchViewHSFM.GUI.Gtk.MyView
SymLHSFM.GUI.Gtk.Icons
SymLinkHSFM.FileSystem.FileType
terminalCommandHSFM.Settings
textInputDialogHSFM.GUI.Gtk.Dialogs
UnknownDialogButtonHSFM.GUI.Gtk.Errors
upDirHSFM.GUI.Gtk.Callbacks
UpDirKeyHSFM.GUI.Gtk.Settings
UpDirModifierHSFM.GUI.Gtk.Settings
upViewBHSFM.GUI.Gtk.Data
urlBarHSFM.GUI.Gtk.Data
urlGoToHSFM.GUI.Gtk.Callbacks
versionPaths_hsfm
viewHSFM.GUI.Gtk.Data
viewBoxHSFM.GUI.Gtk.Data
withConfirmationDialogHSFM.GUI.Gtk.Dialogs
withErrorDialogHSFM.GUI.Gtk.Dialogs
withItemsHSFM.GUI.Gtk.Utils
writeTVarIOHSFM.Utils.IO
_doFileOperationHSFM.GUI.Gtk.Callbacks.Utils
\ No newline at end of file +

hsfm-gtk

Index

accessTimeHSFM.FileSystem.FileType
accessTimeHiResHSFM.FileSystem.FileType
addPluginsHSFM.GUI.Gtk.Plugins
backViewBHSFM.GUI.Gtk.Data
backwardsHistoryHSFM.History
BlockDevHSFM.FileSystem.FileType
BrokenSymlinkHSFM.FileSystem.FileType
brokenSymlinkHSFM.FileSystem.FileType
BrowsingHistory 
1 (Type/Class)HSFM.History
2 (Data Constructor)HSFM.History
CharDevHSFM.FileSystem.FileType
clearStatusBarHSFM.GUI.Gtk.Data
closeTabHSFM.GUI.Gtk.Callbacks
CloseTabKeyHSFM.GUI.Gtk.Settings
CloseTabModifierHSFM.GUI.Gtk.Settings
comparingConstrHSFM.FileSystem.FileType
constructViewHSFM.GUI.Gtk.MyView
Copy 
1 (Type/Class)HSFM.FileSystem.UtilTypes
2 (Data Constructor)HSFM.FileSystem.UtilTypes
copyInitHSFM.GUI.Gtk.Callbacks
CopyKeyHSFM.GUI.Gtk.Settings
CopyModifierHSFM.GUI.Gtk.Settings
createIconViewHSFM.GUI.Gtk.MyView
createMyGUIHSFM.GUI.Gtk.MyGUI
createMyViewHSFM.GUI.Gtk.MyView
createTreeViewHSFM.GUI.Gtk.MyView
currentDirHSFM.History
cwdHSFM.GUI.Gtk.Data
c_strlenHSFM.GUI.Glib.GlibString
delHSFM.GUI.Gtk.Callbacks
DeleteKeyHSFM.GUI.Gtk.Settings
DeleteModifierHSFM.GUI.Gtk.Settings
destroyViewHSFM.GUI.Gtk.MyView
deviceIDHSFM.FileSystem.FileType
diffCallbackHSFM.GUI.Gtk.Plugins
diffPluginHSFM.GUI.Gtk.Plugins
DirHSFM.FileSystem.FileType
DirListHSFM.FileSystem.FileType
DirOrSymHSFM.FileSystem.FileType
DirSymHSFM.FileSystem.FileType
dirSymHSFM.FileSystem.FileType
doFileOperationHSFM.GUI.Gtk.Callbacks.Utils
epochToStringHSFM.FileSystem.FileType
executeHSFM.GUI.Gtk.Callbacks
FCollisonModeHSFM.FileSystem.UtilTypes
FCopyHSFM.FileSystem.UtilTypes
FDeleteHSFM.FileSystem.UtilTypes
FExecuteHSFM.FileSystem.UtilTypes
FileHSFM.FileSystem.FileType
fileCollisionDialogHSFM.GUI.Gtk.Dialogs
fileGroupHSFM.FileSystem.FileType
fileIDHSFM.FileSystem.FileType
FileInfo 
1 (Type/Class)HSFM.FileSystem.FileType
2 (Data Constructor)HSFM.FileSystem.FileType
FileLikeHSFM.FileSystem.FileType
fileLikeHSFM.FileSystem.FileType
FileLikeListHSFM.FileSystem.FileType
FileLikeOrSymHSFM.FileSystem.FileType
FileLikeSymHSFM.FileSystem.FileType
fileLikeSymHSFM.FileSystem.FileType
fileListStoreHSFM.GUI.Gtk.Utils
fileModeHSFM.FileSystem.FileType
FileOperationHSFM.FileSystem.UtilTypes
fileOwnerHSFM.FileSystem.FileType
FilePropertyGridHSFM.GUI.Gtk.Data
fileSizeHSFM.FileSystem.FileType
filteredModelHSFM.GUI.Gtk.Data
FMIconViewHSFM.GUI.Gtk.Data
FMoveHSFM.FileSystem.UtilTypes
FMSettingsHSFM.GUI.Gtk.Data
FMTreeViewHSFM.GUI.Gtk.Data
FMViewHSFM.GUI.Gtk.Data
fmViewToContainerHSFM.GUI.Gtk.Data
FOpenHSFM.FileSystem.UtilTypes
forwardHistoryHSFM.History
forwardViewBHSFM.GUI.Gtk.Data
fpropHSFM.GUI.Gtk.Data
fpropAcEntryHSFM.GUI.Gtk.Data
fpropFnEntryHSFM.GUI.Gtk.Data
fpropFTEntryHSFM.GUI.Gtk.Data
fpropGridHSFM.GUI.Gtk.Data
fpropLDEntryHSFM.GUI.Gtk.Data
fpropLocEntryHSFM.GUI.Gtk.Data
fpropModEntryHSFM.GUI.Gtk.Data
fpropPermEntryHSFM.GUI.Gtk.Data
fpropTsEntryHSFM.GUI.Gtk.Data
fromFreeVarHSFM.FileSystem.FileType
fvarHSFM.FileSystem.FileType
getBinDirPaths_hsfm
getContentsHSFM.FileSystem.FileType
getCurrentDirHSFM.GUI.Gtk.Utils
getDataDirPaths_hsfm
getDataFileNamePaths_hsfm
getFileInfoHSFM.FileSystem.FileType
getFirstItemHSFM.GUI.Gtk.Utils
getFPasStrHSFM.FileSystem.FileType
getFreeVarHSFM.FileSystem.FileType
getIconHSFM.GUI.Gtk.Icons
getLibDirPaths_hsfm
getLibexecDirPaths_hsfm
getSelectedItemsHSFM.GUI.Gtk.Utils
getSelectedTreePathsHSFM.GUI.Gtk.Utils
getSymlinkIconHSFM.GUI.Gtk.Icons
getSysconfDirPaths_hsfm
goDirHSFM.GUI.Gtk.Callbacks.Utils
goHistoryBackHSFM.GUI.Gtk.Callbacks
goHistoryForwardHSFM.GUI.Gtk.Callbacks
goHomeHSFM.GUI.Gtk.Callbacks
goUpHSFM.FileSystem.FileType
goUp'HSFM.FileSystem.FileType
GtkExceptionHSFM.GUI.Gtk.Errors
GtkIconHSFM.GUI.Gtk.Icons
historyHSFM.GUI.Gtk.Data
historyBackHSFM.History
HistoryBackKeyHSFM.GUI.Gtk.Settings
HistoryBackModifierHSFM.GUI.Gtk.Settings
historyForwardHSFM.History
HistoryForwardKeyHSFM.GUI.Gtk.Settings
HistoryForwardModifierHSFM.GUI.Gtk.Settings
historyNewPathHSFM.History
homeHSFM.Settings
homeViewBHSFM.GUI.Gtk.Data
iconSizeHSFM.GUI.Gtk.Data
IErrorHSFM.GUI.Gtk.Icons
IFileHSFM.GUI.Gtk.Icons
IFolderHSFM.GUI.Gtk.Icons
inotifyHSFM.GUI.Gtk.Data
insertPosHSFM.GUI.Gtk.Plugins
isBlockCHSFM.FileSystem.FileType
isBrokenSymlinkHSFM.FileSystem.FileType
isCharCHSFM.FileSystem.FileType
isDirCHSFM.FileSystem.FileType
isFileCHSFM.FileSystem.FileType
isLazyHSFM.GUI.Gtk.Data
isNamedCHSFM.FileSystem.FileType
isSocketCHSFM.FileSystem.FileType
isSymCHSFM.FileSystem.FileType
ItemHSFM.GUI.Gtk.Data
linkCountHSFM.FileSystem.FileType
listIndicesHSFM.Utils.MyPrelude
mainMain
maxSizeHSFM.History
maybeDHSFM.Utils.MyPrelude
MenuBarHSFM.GUI.Gtk.Data
menubarHSFM.GUI.Gtk.Data
menubarFileQuitHSFM.GUI.Gtk.Data
menubarHelpAboutHSFM.GUI.Gtk.Data
MkFilePropertyGridHSFM.GUI.Gtk.Data
MkFMSettingsHSFM.GUI.Gtk.Data
mkHistoryMenuBHSFM.GUI.Gtk.Callbacks
mkHistoryMenuFHSFM.GUI.Gtk.Callbacks
MkMenuBarHSFM.GUI.Gtk.Data
MkMyGUIHSFM.GUI.Gtk.Data
MkMyViewHSFM.GUI.Gtk.Data
MkRightClickMenuHSFM.GUI.Gtk.Data
modificationTimeHSFM.FileSystem.FileType
modificationTimeHiResHSFM.FileSystem.FileType
modifyTVarIOHSFM.Utils.IO
Move 
1 (Type/Class)HSFM.FileSystem.UtilTypes
2 (Data Constructor)HSFM.FileSystem.UtilTypes
moveInitHSFM.GUI.Gtk.Callbacks
MoveKeyHSFM.GUI.Gtk.Settings
MoveModifierHSFM.GUI.Gtk.Settings
MyGUIHSFM.GUI.Gtk.Data
mypluginsHSFM.GUI.Gtk.Plugins
MyViewHSFM.GUI.Gtk.Data
NamedPipeHSFM.FileSystem.FileType
newDirHSFM.GUI.Gtk.Callbacks
newFileHSFM.GUI.Gtk.Callbacks
newTabHSFM.GUI.Gtk.MyView
newTab'HSFM.GUI.Gtk.Callbacks
NewTabKeyHSFM.GUI.Gtk.Settings
NewTabModifierHSFM.GUI.Gtk.Settings
NoneHSFM.FileSystem.UtilTypes
noNullPtrsHSFM.GUI.Glib.GlibString
notebookHSFM.GUI.Gtk.Data
opeInNewTabHSFM.GUI.Gtk.Callbacks
openHSFM.GUI.Gtk.Callbacks
OpenKeyHSFM.GUI.Gtk.Settings
OpenModifierHSFM.GUI.Gtk.Settings
openTerminalHereHSFM.GUI.Gtk.Callbacks
OpenTerminalKeyHSFM.GUI.Gtk.Settings
OpenTerminalModifierHSFM.GUI.Gtk.Settings
operationBufferHSFM.GUI.Gtk.Data
operationFinalHSFM.GUI.Gtk.Callbacks
OverwriteHSFM.FileSystem.UtilTypes
OverwriteAllHSFM.FileSystem.UtilTypes
packAccessTimeHSFM.FileSystem.FileType
packFileTypeHSFM.FileSystem.FileType
packLinkDestinationHSFM.FileSystem.FileType
packModTimeHSFM.FileSystem.FileType
packPermissionsHSFM.FileSystem.FileType
PartialCopyHSFM.FileSystem.UtilTypes
PartialMoveHSFM.FileSystem.UtilTypes
PasteKeyHSFM.GUI.Gtk.Settings
PasteModifierHSFM.GUI.Gtk.Settings
pathHSFM.FileSystem.FileType
popStatusbarHSFM.GUI.Gtk.Utils
pushStatusBarHSFM.GUI.Gtk.Utils
QuitKeyHSFM.GUI.Gtk.Settings
QuitModifierHSFM.GUI.Gtk.Settings
rawdestHSFM.FileSystem.FileType
rawModelHSFM.GUI.Gtk.Data
rawPathToItemHSFM.GUI.Gtk.Utils
rawPathToIterHSFM.GUI.Gtk.Utils
rcFileCopyHSFM.GUI.Gtk.Data
rcFileCutHSFM.GUI.Gtk.Data
rcFileDeleteHSFM.GUI.Gtk.Data
rcFileExecuteHSFM.GUI.Gtk.Data
rcFileIconViewHSFM.GUI.Gtk.Data
rcFileNewDirHSFM.GUI.Gtk.Data
rcFileNewRegFileHSFM.GUI.Gtk.Data
rcFileNewTabHSFM.GUI.Gtk.Data
rcFileNewTermHSFM.GUI.Gtk.Data
rcFileOpenHSFM.GUI.Gtk.Data
rcFilePasteHSFM.GUI.Gtk.Data
rcFilePropertyHSFM.GUI.Gtk.Data
rcFileRenameHSFM.GUI.Gtk.Data
rcFileTreeViewHSFM.GUI.Gtk.Data
rcMenuHSFM.GUI.Gtk.Data
rcmenuHSFM.GUI.Gtk.Data
readDirectoryContentsHSFM.FileSystem.FileType
readFileHSFM.FileSystem.FileType
refreshViewHSFM.GUI.Gtk.MyView
refreshViewBHSFM.GUI.Gtk.Data
RegFileHSFM.FileSystem.FileType
RenameHSFM.FileSystem.UtilTypes
renameDialogHSFM.GUI.Gtk.Dialogs
renameFHSFM.GUI.Gtk.Callbacks
RightClickMenuHSFM.GUI.Gtk.Data
rootWinHSFM.GUI.Gtk.Data
scrollHSFM.GUI.Gtk.Data
sdestHSFM.FileSystem.FileType
sdirHSFM.FileSystem.FileType
setGUICallbacksHSFM.GUI.Gtk.Callbacks
settingsHSFM.GUI.Gtk.Data
setViewCallbacksHSFM.GUI.Gtk.Callbacks
sfileLikeHSFM.FileSystem.FileType
showAboutDialogHSFM.GUI.Gtk.Dialogs
showConfirmationDialogHSFM.GUI.Gtk.Dialogs
showErrorDialogHSFM.GUI.Gtk.Dialogs
showFilePropertyDialogHSFM.GUI.Gtk.Dialogs
showHiddenHSFM.GUI.Gtk.Data
ShowHiddenKeyHSFM.GUI.Gtk.Settings
ShowHiddenModifierHSFM.GUI.Gtk.Settings
SkipHSFM.FileSystem.UtilTypes
SocketHSFM.FileSystem.FileType
sortedModelHSFM.GUI.Gtk.Data
specialDeviceIDHSFM.FileSystem.FileType
statusBarHSFM.GUI.Gtk.Data
statusChangeTimeHSFM.FileSystem.FileType
statusChangeTimeHiResHSFM.FileSystem.FileType
StrictHSFM.FileSystem.UtilTypes
switchViewHSFM.GUI.Gtk.MyView
SymLHSFM.GUI.Gtk.Icons
SymLinkHSFM.FileSystem.FileType
terminalCommandHSFM.Settings
textInputDialogHSFM.GUI.Gtk.Dialogs
UnknownDialogButtonHSFM.GUI.Gtk.Errors
upDirHSFM.GUI.Gtk.Callbacks
UpDirKeyHSFM.GUI.Gtk.Settings
UpDirModifierHSFM.GUI.Gtk.Settings
upViewBHSFM.GUI.Gtk.Data
urlBarHSFM.GUI.Gtk.Data
urlGoToHSFM.GUI.Gtk.Callbacks
versionPaths_hsfm
viewHSFM.GUI.Gtk.Data
viewBoxHSFM.GUI.Gtk.Data
withConfirmationDialogHSFM.GUI.Gtk.Dialogs
withErrorDialogHSFM.GUI.Gtk.Dialogs
withItemsHSFM.GUI.Gtk.Utils
writeTVarIOHSFM.Utils.IO
_doFileOperationHSFM.GUI.Gtk.Callbacks.Utils
\ No newline at end of file diff --git a/doc-index-B.html b/doc-index-B.html index f463cd0..c7c5c71 100644 --- a/doc-index-B.html +++ b/doc-index-B.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - B)

hsfm-gtk

Index - B

backViewBHSFM.GUI.Gtk.Data
backwardsHistoryHSFM.History
BlockDevHSFM.FileSystem.FileType
BrokenSymlinkHSFM.FileSystem.FileType
brokenSymlinkHSFM.FileSystem.FileType
BrowsingHistory 
1 (Type/Class)HSFM.History
2 (Data Constructor)HSFM.History
\ No newline at end of file +

hsfm-gtk

Index - B

backViewBHSFM.GUI.Gtk.Data
backwardsHistoryHSFM.History
BlockDevHSFM.FileSystem.FileType
BrokenSymlinkHSFM.FileSystem.FileType
brokenSymlinkHSFM.FileSystem.FileType
BrowsingHistory 
1 (Type/Class)HSFM.History
2 (Data Constructor)HSFM.History
\ No newline at end of file diff --git a/doc-index-C.html b/doc-index-C.html index 608c5f4..f82ec5f 100644 --- a/doc-index-C.html +++ b/doc-index-C.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - C)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-D.html b/doc-index-D.html index ba415ff..da2e791 100644 --- a/doc-index-D.html +++ b/doc-index-D.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - D)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-E.html b/doc-index-E.html index 28c9ee6..5cb7feb 100644 --- a/doc-index-E.html +++ b/doc-index-E.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - E)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-F.html b/doc-index-F.html index aae3953..17a9e9e 100644 --- a/doc-index-F.html +++ b/doc-index-F.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - F)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-G.html b/doc-index-G.html index bc770ca..74212d3 100644 --- a/doc-index-G.html +++ b/doc-index-G.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - G)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-H.html b/doc-index-H.html index 0ed18ce..fb491ce 100644 --- a/doc-index-H.html +++ b/doc-index-H.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - H)

hsfm-gtk

Index - H

historyHSFM.GUI.Gtk.Data
historyBackHSFM.History
HistoryBackKeyHSFM.GUI.Gtk.Settings
HistoryBackModifierHSFM.GUI.Gtk.Settings
historyForwardHSFM.History
HistoryForwardKeyHSFM.GUI.Gtk.Settings
HistoryForwardModifierHSFM.GUI.Gtk.Settings
historyNewPathHSFM.History
homeHSFM.Settings
homeViewBHSFM.GUI.Gtk.Data
\ No newline at end of file +

hsfm-gtk

Index - H

historyHSFM.GUI.Gtk.Data
historyBackHSFM.History
HistoryBackKeyHSFM.GUI.Gtk.Settings
HistoryBackModifierHSFM.GUI.Gtk.Settings
historyForwardHSFM.History
HistoryForwardKeyHSFM.GUI.Gtk.Settings
HistoryForwardModifierHSFM.GUI.Gtk.Settings
historyNewPathHSFM.History
homeHSFM.Settings
homeViewBHSFM.GUI.Gtk.Data
\ No newline at end of file diff --git a/doc-index-I.html b/doc-index-I.html index fbc38a4..bf5455e 100644 --- a/doc-index-I.html +++ b/doc-index-I.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - I)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-L.html b/doc-index-L.html index 728ed30..e48a44b 100644 --- a/doc-index-L.html +++ b/doc-index-L.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - L)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-M.html b/doc-index-M.html index b7bc842..faf9a00 100644 --- a/doc-index-M.html +++ b/doc-index-M.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - M)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-N.html b/doc-index-N.html index 2f07046..6df634f 100644 --- a/doc-index-N.html +++ b/doc-index-N.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - N)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-O.html b/doc-index-O.html index 4b395d8..f8047fe 100644 --- a/doc-index-O.html +++ b/doc-index-O.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - O)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-P.html b/doc-index-P.html index 22d9ee3..fb3835d 100644 --- a/doc-index-P.html +++ b/doc-index-P.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - P)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-Q.html b/doc-index-Q.html index f1bdc66..969b5d2 100644 --- a/doc-index-Q.html +++ b/doc-index-Q.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - Q)

hsfm-gtk

Index - Q

QuitKeyHSFM.GUI.Gtk.Settings
QuitModifierHSFM.GUI.Gtk.Settings
\ No newline at end of file +

hsfm-gtk

Index - Q

QuitKeyHSFM.GUI.Gtk.Settings
QuitModifierHSFM.GUI.Gtk.Settings
\ No newline at end of file diff --git a/doc-index-R.html b/doc-index-R.html index 331861d..0a0eda0 100644 --- a/doc-index-R.html +++ b/doc-index-R.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - R)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-S.html b/doc-index-S.html index bd9d41f..36788f2 100644 --- a/doc-index-S.html +++ b/doc-index-S.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - S)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-T.html b/doc-index-T.html index f162cda..fa20870 100644 --- a/doc-index-T.html +++ b/doc-index-T.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - T)

hsfm-gtk

Index - T

terminalCommandHSFM.Settings
textInputDialogHSFM.GUI.Gtk.Dialogs
\ No newline at end of file +

hsfm-gtk

Index - T

terminalCommandHSFM.Settings
textInputDialogHSFM.GUI.Gtk.Dialogs
\ No newline at end of file diff --git a/doc-index-U.html b/doc-index-U.html index cfcb965..6b96713 100644 --- a/doc-index-U.html +++ b/doc-index-U.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - U)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-V.html b/doc-index-V.html index baa6be9..269db41 100644 --- a/doc-index-V.html +++ b/doc-index-V.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - V)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/doc-index-W.html b/doc-index-W.html index 2ceb3db..0c15725 100644 --- a/doc-index-W.html +++ b/doc-index-W.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index - W)

hsfm-gtk

Index - W

withConfirmationDialogHSFM.GUI.Gtk.Dialogs
withErrorDialogHSFM.GUI.Gtk.Dialogs
withItemsHSFM.GUI.Gtk.Utils
writeTVarIOHSFM.Utils.IO
\ No newline at end of file +

hsfm-gtk

Index - W

withConfirmationDialogHSFM.GUI.Gtk.Dialogs
withErrorDialogHSFM.GUI.Gtk.Dialogs
withItemsHSFM.GUI.Gtk.Utils
writeTVarIOHSFM.Utils.IO
\ No newline at end of file diff --git a/doc-index.html b/doc-index.html index 9997002..a1fb0e6 100644 --- a/doc-index.html +++ b/doc-index.html @@ -1,4 +1,4 @@ -hsfm-gtk (Index)

hsfm-gtk

\ No newline at end of file +

hsfm-gtk

\ No newline at end of file diff --git a/frames.html b/frames.html index e86edb6..1b4e38d 100644 --- a/frames.html +++ b/frames.html @@ -1,4 +1,4 @@ - diff --git a/haddock-util.js b/haddock-util.js index fc7743f..9a6fccf 100644 --- a/haddock-util.js +++ b/haddock-util.js @@ -131,11 +131,11 @@ function perform_search(full) var text = document.getElementById("searchbox").value.toLowerCase(); if (text == last_search && !full) return; last_search = text; - + var table = document.getElementById("indexlist"); var status = document.getElementById("searchmsg"); var children = table.firstChild.childNodes; - + // first figure out the first node with the prefix var first = bisect(-1); var last = (first == -1 ? -1 : bisect(1)); @@ -166,7 +166,7 @@ function perform_search(full) status.innerHTML = ""; } - + function setclass(first, last, status) { for (var i = first; i <= last; i++) @@ -174,8 +174,8 @@ function perform_search(full) children[i].className = status; } } - - + + // do a binary search, treating 0 as ... // return either -1 (no 0's found) or location of most far match function bisect(dir) @@ -201,9 +201,9 @@ function perform_search(full) if (checkitem(i) == 0) return i; } return -1; - } - - + } + + // from an index, decide what the result is // 0 = match, -1 is lower, 1 is higher function checkitem(i) @@ -212,8 +212,8 @@ function perform_search(full) if (s == text) return 0; else return (s > text ? -1 : 1); } - - + + // from an index, get its string // this abstracts over alternates function getitem(i) @@ -229,7 +229,7 @@ function perform_search(full) } function setSynopsis(filename) { - if (parent.window.synopsis && parent.window.synopsis.location) { + if (parent.window.synopsis) { if (parent.window.synopsis.location.replace) { // In Firefox this avoids adding the change to the history. parent.window.synopsis.location.replace(filename); @@ -250,7 +250,7 @@ function addMenuItem(html) { function adjustForFrames() { var bodyCls; - + if (parent.location.href == window.location.href) { // not in frames, so add Frames button addMenuItem("Frames"); diff --git a/hsfm.haddock b/hsfm.haddock index 95dbbbaf42ef1fe49cf9e1a217bb9013559037ce..7c99c572efe191ea5dc550974345a1aacb773dee 100644 GIT binary patch delta 6044 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 HNXdTyQp3Y# diff --git a/index-frames.html b/index-frames.html index b707835..0ccc0a0 100644 --- a/index-frames.html +++ b/index-frames.html @@ -1,4 +1,4 @@ -hsfm-gtk \ No newline at end of file + \ No newline at end of file diff --git a/index.html b/index.html index 66ea952..df6f9be 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -hsfm-gtk \ No newline at end of file + \ No newline at end of file diff --git a/mini_HSFM-FileSystem-FileType.html b/mini_HSFM-FileSystem-FileType.html index d861eee..8603809 100644 --- a/mini_HSFM-FileSystem-FileType.html +++ b/mini_HSFM-FileSystem-FileType.html @@ -1,4 +1,4 @@ -HSFM.FileSystem.FileType

HSFM.FileSystem.FileType

\ No newline at end of file diff --git a/mini_HSFM-FileSystem-UtilTypes.html b/mini_HSFM-FileSystem-UtilTypes.html index 84c46c1..be9c06b 100644 --- a/mini_HSFM-FileSystem-UtilTypes.html +++ b/mini_HSFM-FileSystem-UtilTypes.html @@ -1,4 +1,4 @@ -HSFM.FileSystem.UtilTypes

HSFM.FileSystem.UtilTypes

\ No newline at end of file diff --git a/mini_HSFM-GUI-Glib-GlibString.html b/mini_HSFM-GUI-Glib-GlibString.html index a2b8ef0..9b1e480 100644 --- a/mini_HSFM-GUI-Glib-GlibString.html +++ b/mini_HSFM-GUI-Glib-GlibString.html @@ -1,4 +1,4 @@ -HSFM.GUI.Glib.GlibString

HSFM.GUI.Glib.GlibString

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-Callbacks-Utils.html b/mini_HSFM-GUI-Gtk-Callbacks-Utils.html index 65bf859..757608e 100644 --- a/mini_HSFM-GUI-Gtk-Callbacks-Utils.html +++ b/mini_HSFM-GUI-Gtk-Callbacks-Utils.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.Callbacks.Utils

HSFM.GUI.Gtk.Callbacks.Utils

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-Callbacks.html b/mini_HSFM-GUI-Gtk-Callbacks.html index f9ccc53..3b6b4e0 100644 --- a/mini_HSFM-GUI-Gtk-Callbacks.html +++ b/mini_HSFM-GUI-Gtk-Callbacks.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.Callbacks

HSFM.GUI.Gtk.Callbacks

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-Data.html b/mini_HSFM-GUI-Gtk-Data.html index 7dd0054..17e3806 100644 --- a/mini_HSFM-GUI-Gtk-Data.html +++ b/mini_HSFM-GUI-Gtk-Data.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.Data

HSFM.GUI.Gtk.Data

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-Dialogs.html b/mini_HSFM-GUI-Gtk-Dialogs.html index 9721e51..9757927 100644 --- a/mini_HSFM-GUI-Gtk-Dialogs.html +++ b/mini_HSFM-GUI-Gtk-Dialogs.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.Dialogs

HSFM.GUI.Gtk.Dialogs

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-Errors.html b/mini_HSFM-GUI-Gtk-Errors.html index ec3eb12..7a5fcfa 100644 --- a/mini_HSFM-GUI-Gtk-Errors.html +++ b/mini_HSFM-GUI-Gtk-Errors.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.Errors

HSFM.GUI.Gtk.Errors

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-Icons.html b/mini_HSFM-GUI-Gtk-Icons.html index 6ac828f..deeb044 100644 --- a/mini_HSFM-GUI-Gtk-Icons.html +++ b/mini_HSFM-GUI-Gtk-Icons.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.Icons

HSFM.GUI.Gtk.Icons

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-MyGUI.html b/mini_HSFM-GUI-Gtk-MyGUI.html index 26915a8..040cb5b 100644 --- a/mini_HSFM-GUI-Gtk-MyGUI.html +++ b/mini_HSFM-GUI-Gtk-MyGUI.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.MyGUI

HSFM.GUI.Gtk.MyGUI

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-MyView.html b/mini_HSFM-GUI-Gtk-MyView.html index f1ac52a..5e89516 100644 --- a/mini_HSFM-GUI-Gtk-MyView.html +++ b/mini_HSFM-GUI-Gtk-MyView.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.MyView

HSFM.GUI.Gtk.MyView

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-Plugins.html b/mini_HSFM-GUI-Gtk-Plugins.html new file mode 100644 index 0000000..5131e89 --- /dev/null +++ b/mini_HSFM-GUI-Gtk-Plugins.html @@ -0,0 +1,4 @@ +HSFM.GUI.Gtk.Plugins

HSFM.GUI.Gtk.Plugins

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-Settings.html b/mini_HSFM-GUI-Gtk-Settings.html index fa8fbc0..1c4b447 100644 --- a/mini_HSFM-GUI-Gtk-Settings.html +++ b/mini_HSFM-GUI-Gtk-Settings.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.Settings

HSFM.GUI.Gtk.Settings

\ No newline at end of file diff --git a/mini_HSFM-GUI-Gtk-Utils.html b/mini_HSFM-GUI-Gtk-Utils.html index c03f89e..b5d5c9d 100644 --- a/mini_HSFM-GUI-Gtk-Utils.html +++ b/mini_HSFM-GUI-Gtk-Utils.html @@ -1,4 +1,4 @@ -HSFM.GUI.Gtk.Utils

HSFM.GUI.Gtk.Utils

\ No newline at end of file diff --git a/mini_HSFM-History.html b/mini_HSFM-History.html index 3153c60..83ba4e3 100644 --- a/mini_HSFM-History.html +++ b/mini_HSFM-History.html @@ -1,4 +1,4 @@ -HSFM.History

HSFM.History

\ No newline at end of file diff --git a/mini_HSFM-Settings.html b/mini_HSFM-Settings.html index 67e90ea..13a66b0 100644 --- a/mini_HSFM-Settings.html +++ b/mini_HSFM-Settings.html @@ -1,4 +1,4 @@ -HSFM.Settings

HSFM.Settings

\ No newline at end of file diff --git a/mini_HSFM-Utils-IO.html b/mini_HSFM-Utils-IO.html index 24d67e2..65cebe9 100644 --- a/mini_HSFM-Utils-IO.html +++ b/mini_HSFM-Utils-IO.html @@ -1,4 +1,4 @@ -HSFM.Utils.IO

HSFM.Utils.IO

\ No newline at end of file diff --git a/mini_HSFM-Utils-MyPrelude.html b/mini_HSFM-Utils-MyPrelude.html index c04642c..9c12750 100644 --- a/mini_HSFM-Utils-MyPrelude.html +++ b/mini_HSFM-Utils-MyPrelude.html @@ -1,4 +1,4 @@ -HSFM.Utils.MyPrelude

HSFM.Utils.MyPrelude

\ No newline at end of file diff --git a/mini_Main.html b/mini_Main.html index ad267a4..a722064 100644 --- a/mini_Main.html +++ b/mini_Main.html @@ -1,4 +1,4 @@ -Main

Main

\ No newline at end of file diff --git a/mini_Paths_hsfm.html b/mini_Paths_hsfm.html index c1b3ef7..4293c78 100644 --- a/mini_Paths_hsfm.html +++ b/mini_Paths_hsfm.html @@ -1,4 +1,4 @@ -Paths_hsfm

Paths_hsfm

\ No newline at end of file diff --git a/ocean.css b/ocean.css index 3ebb14d..1110b40 100644 --- a/ocean.css +++ b/ocean.css @@ -41,9 +41,6 @@ a[href]:link { color: rgb(196,69,29); } a[href]:visited { color: rgb(171,105,84); } a[href]:hover { text-decoration:underline; } -a[href].def:link, a[href].def:visited { color: black; } -a[href].def:hover { color: rgb(78, 98, 114); } - /* @end */ /* @group Fonts & Sizes */ @@ -146,23 +143,15 @@ ul.links li a { background-image: url(plus.gif); background-repeat: no-repeat; } +p.caption.collapser, +p.caption.expander { + background-position: 0 0.4em; +} .collapser, .expander { padding-left: 14px; margin-left: -14px; cursor: pointer; } -p.caption.collapser, -p.caption.expander { - background-position: 0 0.4em; -} - -.instance.collapser, .instance.expander { - margin-left: 0px; - background-position: left center; - min-width: 9px; - min-height: 9px; -} - pre { padding: 0.25em; @@ -183,9 +172,6 @@ pre { .keyword { font-weight: normal; } .def { font-weight: bold; } -@media print { - #footer { display: none; } -} /* @end */ @@ -384,16 +370,21 @@ div#style-menu-holder { #interface h5 + div.top { margin-top: 1em; } -#interface .src .selflink, -#interface .src .link { +#interface p.src .link { float: right; color: #919191; + border-left: 1px solid #919191; background: #f0f0f0; padding: 0 0.5em 0.2em; - margin: 0 -0.5em 0 0; + margin: 0 -0.5em 0 0.5em; } -#interface .src .selflink { + +#interface td.src .link { + float: right; + color: #919191; border-left: 1px solid #919191; + background: #f0f0f0; + padding: 0 0.5em 0.2em; margin: 0 -0.5em 0 0.5em; } @@ -433,31 +424,30 @@ div#style-menu-holder { visibility: hidden; } -.subs ul { - list-style: none; - display: table; +.subs dl { margin: 0; } -.subs ul li { - display: table-row; -} - -.subs ul li dfn { - display: table-cell; - font-style: normal; - font-weight: bold; +.subs dt { + float: left; + clear: left; + display: block; margin: 1px 0; - white-space: nowrap; } -.subs ul li > .doc { - display: table-cell; +.subs dd { + float: right; + width: 90%; + display: block; padding-left: 0.5em; margin-bottom: 0.5em; } -.subs ul li > .doc p { +.subs dd.empty { + display: none; +} + +.subs dd p { margin: 0; } diff --git a/src/HSFM-GUI-Gtk-MyView.html b/src/HSFM-GUI-Gtk-MyView.html index 2095b41..22fc785 100644 --- a/src/HSFM-GUI-Gtk-MyView.html +++ b/src/HSFM-GUI-Gtk-MyView.html @@ -72,400 +72,403 @@ import HSFM.GUI.Glib.GlibString() import HSFM.GUI.Gtk.Data import HSFM.GUI.Gtk.Icons -import HSFM.GUI.Gtk.Utils -import HSFM.History -import HSFM.Utils.IO -import Paths_hsfm - ( - getDataFileName - ) -import Prelude hiding(readFile) -import System.INotify - ( - addWatch - , initINotify - , killINotify - , EventVariety(..) - ) -import System.IO.Error - ( - catchIOError - , ioError - , isUserError - ) -import System.Posix.FilePath - ( - hiddenFile - ) - +import HSFM.GUI.Gtk.Plugins +import HSFM.GUI.Gtk.Utils +import HSFM.History +import HSFM.Utils.IO +import Paths_hsfm + ( + getDataFileName + ) +import Prelude hiding(readFile) +import System.INotify + ( + addWatch + , initINotify + , killINotify + , EventVariety(..) + ) +import System.IO.Error + ( + catchIOError + , ioError + , isUserError + ) +import System.Posix.FilePath + ( + hiddenFile + ) --- |Creates a new tab with its own view and refreshes the view. -newTab :: MyGUI -> IO FMView -> Item -> Int -> IO MyView -newTab mygui iofmv item pos = do - + +-- |Creates a new tab with its own view and refreshes the view. +newTab :: MyGUI -> IO FMView -> Item -> Int -> IO MyView +newTab mygui iofmv item pos = do - -- create eventbox with label - label <- labelNewWithMnemonic - (maybe (P.fromAbs $ path item) P.fromRel $ P.basename $ path item) - ebox <- eventBoxNew - eventBoxSetVisibleWindow ebox False - containerAdd ebox label - widgetShowAll label - - myview <- createMyView mygui iofmv - _ <- notebookInsertPageMenu (notebook mygui) (viewBox myview) - ebox ebox pos - - -- set initial history - let historySize = 5 - putMVar (history myview) - (BrowsingHistory [] (path item) [] historySize) - - notebookSetTabReorderable (notebook mygui) (viewBox myview) True - - catchIOError (refreshView mygui myview item) $ \e -> do - file <- readFile getFileInfo . fromJust . P.parseAbs . fromString - $ "/" - refreshView mygui myview file - labelSetText label (fromString "/" :: String) - unless (isUserError e) (ioError e) - - -- close callback - _ <- ebox `on` buttonPressEvent $ do - eb <- eventButton - case eb of - MiddleButton -> liftIO $ do - n <- notebookGetNPages (notebook mygui) - when (n > 1) $ void $ destroyView mygui myview - return True - _ -> return False - - return myview - + + -- create eventbox with label + label <- labelNewWithMnemonic + (maybe (P.fromAbs $ path item) P.fromRel $ P.basename $ path item) + ebox <- eventBoxNew + eventBoxSetVisibleWindow ebox False + containerAdd ebox label + widgetShowAll label + + myview <- createMyView mygui iofmv + _ <- notebookInsertPageMenu (notebook mygui) (viewBox myview) + ebox ebox pos + + -- set initial history + let historySize = 5 + putMVar (history myview) + (BrowsingHistory [] (path item) [] historySize) + + notebookSetTabReorderable (notebook mygui) (viewBox myview) True + + catchIOError (refreshView mygui myview item) $ \e -> do + file <- readFile getFileInfo . fromJust . P.parseAbs . fromString + $ "/" + refreshView mygui myview file + labelSetText label (fromString "/" :: String) + unless (isUserError e) (ioError e) + + -- close callback + _ <- ebox `on` buttonPressEvent $ do + eb <- eventButton + case eb of + MiddleButton -> liftIO $ do + n <- notebookGetNPages (notebook mygui) + when (n > 1) $ void $ destroyView mygui myview + return True + _ -> return False + + return myview --- |Constructs the initial MyView object with a few dummy models. --- It also initializes the callbacks. -createMyView :: MyGUI - -> IO FMView - -> IO MyView -createMyView mygui iofmv = do - inotify <- newEmptyMVar - history <- newEmptyMVar - - builder <- builderNew - builderAddFromFile builder =<< getDataFileName "data/Gtk/builder.xml" - - -- create dummy models, so we don't have to use MVar - rawModel <- newTVarIO =<< listStoreNew [] - filteredModel <- newTVarIO =<< (\x -> treeModelFilterNew x []) - =<< readTVarIO rawModel - sortedModel <- newTVarIO =<< treeModelSortNewWithModel - =<< readTVarIO filteredModel - cwd <- newEmptyMVar - view' <- iofmv - view <- newTVarIO view' - - urlBar <- builderGetObject builder castToEntry - "urlBar" - rcMenu <- builderGetObject builder castToMenu - "rcMenu" - rcFileOpen <- builderGetObject builder castToImageMenuItem - "rcFileOpen" - rcFileExecute <- builderGetObject builder castToImageMenuItem - "rcFileExecute" - rcFileNewRegFile <- builderGetObject builder castToImageMenuItem - "rcFileNewRegFile" - rcFileNewDir <- builderGetObject builder castToImageMenuItem - "rcFileNewDir" - rcFileNewTab <- builderGetObject builder castToImageMenuItem - "rcFileNewTab" - rcFileNewTerm <- builderGetObject builder castToImageMenuItem - "rcFileNewTerm" - rcFileCut <- builderGetObject builder castToImageMenuItem - "rcFileCut" - rcFileCopy <- builderGetObject builder castToImageMenuItem - "rcFileCopy" - rcFileRename <- builderGetObject builder castToImageMenuItem - "rcFileRename" - rcFilePaste <- builderGetObject builder castToImageMenuItem - "rcFilePaste" - rcFileDelete <- builderGetObject builder castToImageMenuItem - "rcFileDelete" - rcFileProperty <- builderGetObject builder castToImageMenuItem - "rcFileProperty" - rcFileIconView <- builderGetObject builder castToImageMenuItem - "rcFileIconView" - rcFileTreeView <- builderGetObject builder castToImageMenuItem - "rcFileTreeView" - backViewB <- builderGetObject builder castToButton - "backViewB" - upViewB <- builderGetObject builder castToButton - "upViewB" - forwardViewB <- builderGetObject builder castToButton - "forwardViewB" - homeViewB <- builderGetObject builder castToButton - "homeViewB" - refreshViewB <- builderGetObject builder castToButton - "refreshViewB" - scroll <- builderGetObject builder castToScrolledWindow - "mainScroll" - viewBox <- builderGetObject builder castToBox - "viewBox" - - let rcmenu = MkRightClickMenu {..} - let myview = MkMyView {..} - - -- set the bindings - setViewCallbacks mygui myview + +-- |Constructs the initial MyView object with a few dummy models. +-- It also initializes the callbacks. +createMyView :: MyGUI + -> IO FMView + -> IO MyView +createMyView mygui iofmv = do + inotify <- newEmptyMVar + history <- newEmptyMVar + + builder <- builderNew + builderAddFromFile builder =<< getDataFileName "data/Gtk/builder.xml" + + -- create dummy models, so we don't have to use MVar + rawModel <- newTVarIO =<< listStoreNew [] + filteredModel <- newTVarIO =<< (\x -> treeModelFilterNew x []) + =<< readTVarIO rawModel + sortedModel <- newTVarIO =<< treeModelSortNewWithModel + =<< readTVarIO filteredModel + cwd <- newEmptyMVar + view' <- iofmv + view <- newTVarIO view' + + urlBar <- builderGetObject builder castToEntry + "urlBar" + rcMenu <- builderGetObject builder castToMenu + "rcMenu" + rcFileOpen <- builderGetObject builder castToImageMenuItem + "rcFileOpen" + rcFileExecute <- builderGetObject builder castToImageMenuItem + "rcFileExecute" + rcFileNewRegFile <- builderGetObject builder castToImageMenuItem + "rcFileNewRegFile" + rcFileNewDir <- builderGetObject builder castToImageMenuItem + "rcFileNewDir" + rcFileNewTab <- builderGetObject builder castToImageMenuItem + "rcFileNewTab" + rcFileNewTerm <- builderGetObject builder castToImageMenuItem + "rcFileNewTerm" + rcFileCut <- builderGetObject builder castToImageMenuItem + "rcFileCut" + rcFileCopy <- builderGetObject builder castToImageMenuItem + "rcFileCopy" + rcFileRename <- builderGetObject builder castToImageMenuItem + "rcFileRename" + rcFilePaste <- builderGetObject builder castToImageMenuItem + "rcFilePaste" + rcFileDelete <- builderGetObject builder castToImageMenuItem + "rcFileDelete" + rcFileProperty <- builderGetObject builder castToImageMenuItem + "rcFileProperty" + rcFileIconView <- builderGetObject builder castToImageMenuItem + "rcFileIconView" + rcFileTreeView <- builderGetObject builder castToImageMenuItem + "rcFileTreeView" + backViewB <- builderGetObject builder castToButton + "backViewB" + upViewB <- builderGetObject builder castToButton + "upViewB" + forwardViewB <- builderGetObject builder castToButton + "forwardViewB" + homeViewB <- builderGetObject builder castToButton + "homeViewB" + refreshViewB <- builderGetObject builder castToButton + "refreshViewB" + scroll <- builderGetObject builder castToScrolledWindow + "mainScroll" + viewBox <- builderGetObject builder castToBox + "viewBox" + + let rcmenu = MkRightClickMenu {..} + let myview = MkMyView {..} + + addPlugins mygui myview - -- add the treeview to the scroll container - let oview = fmViewToContainer view' - containerAdd scroll oview - - widgetShowAll viewBox - - return myview - + -- set the bindings + setViewCallbacks mygui myview + + -- add the treeview to the scroll container + let oview = fmViewToContainer view' + containerAdd scroll oview + + widgetShowAll viewBox --- |Switch the existing view in `MyView` with the one that the --- io action returns. -switchView :: MyGUI -> MyView -> IO FMView -> IO () -switchView mygui myview iofmv = do - cwd <- getCurrentDir myview - - oldpage <- destroyView mygui myview - - -- create new view and tab page where the previous one was - nview <- newTab mygui iofmv cwd oldpage + return myview + + +-- |Switch the existing view in `MyView` with the one that the +-- io action returns. +switchView :: MyGUI -> MyView -> IO FMView -> IO () +switchView mygui myview iofmv = do + cwd <- getCurrentDir myview + + oldpage <- destroyView mygui myview - page <- fromJust <$> notebookPageNum (notebook mygui) (viewBox nview) - notebookSetCurrentPage (notebook mygui) page + -- create new view and tab page where the previous one was + nview <- newTab mygui iofmv cwd oldpage - refreshView mygui nview cwd - + page <- fromJust <$> notebookPageNum (notebook mygui) (viewBox nview) + notebookSetCurrentPage (notebook mygui) page --- |Destroys the given view by disconnecting the watcher --- and destroying the active FMView container. --- --- Everything that needs to be done in order to forget about a --- view needs to be done here. + refreshView mygui nview cwd + + +-- |Destroys the given view by disconnecting the watcher +-- and destroying the active FMView container. -- --- Returns the page in the tab list this view corresponds to. -destroyView :: MyGUI -> MyView -> IO Int -destroyView mygui myview = do - -- disconnect watcher - mi <- tryTakeMVar (inotify myview) - for_ mi $ \i -> killINotify i - - page <- fromJust <$> notebookPageNum (notebook mygui) (viewBox myview) - - -- destroy old view and tab page - view' <- readTVarIO $ view myview - widgetDestroy (fmViewToContainer view') - notebookRemovePage (notebook mygui) page - - return page - +-- Everything that needs to be done in order to forget about a +-- view needs to be done here. +-- +-- Returns the page in the tab list this view corresponds to. +destroyView :: MyGUI -> MyView -> IO Int +destroyView mygui myview = do + -- disconnect watcher + mi <- tryTakeMVar (inotify myview) + for_ mi $ \i -> killINotify i + + page <- fromJust <$> notebookPageNum (notebook mygui) (viewBox myview) + + -- destroy old view and tab page + view' <- readTVarIO $ view myview + widgetDestroy (fmViewToContainer view') + notebookRemovePage (notebook mygui) page --- |Createss an IconView. -createIconView :: IO FMView -createIconView = do - iconv <- iconViewNew - iconViewSetSelectionMode iconv SelectionMultiple - iconViewSetColumns iconv (-1) - iconViewSetSpacing iconv 2 - iconViewSetMargin iconv 0 - {- set iconv [ iconViewItemOrientation := OrientationHorizontal ] -} - {- set iconv [ iconViewOrientation := OrientationHorizontal ] -} - - return $ FMIconView iconv - + return page + + +-- |Createss an IconView. +createIconView :: IO FMView +createIconView = do + iconv <- iconViewNew + iconViewSetSelectionMode iconv SelectionMultiple + iconViewSetColumns iconv (-1) + iconViewSetSpacing iconv 2 + iconViewSetMargin iconv 0 + {- set iconv [ iconViewItemOrientation := OrientationHorizontal ] -} + {- set iconv [ iconViewOrientation := OrientationHorizontal ] -} --- |Creates a TreeView. -createTreeView :: IO FMView -createTreeView = do - -- create the final view - treeView <- treeViewNew - -- set selection mode - tvs <- treeViewGetSelection treeView - treeSelectionSetMode tvs SelectionMultiple - - -- set drag and drop - tl <- targetListNew - atom <- atomNew ("HSFM" :: String) - targetListAdd tl atom [TargetSameApp] 0 - treeViewEnableModelDragDest treeView tl [ActionCopy] - treeViewEnableModelDragSource treeView [Button1] tl [ActionCopy] - - -- create final tree model columns - renderTxt <- cellRendererTextNew - renderPix <- cellRendererPixbufNew - let ct = cellText :: (CellRendererTextClass cr) => Attr cr String - cp = cellPixbuf :: (CellRendererPixbufClass self) => Attr self Pixbuf - - -- filename column - cF <- treeViewColumnNew - treeViewColumnSetTitle cF ("Filename" :: String) - treeViewColumnSetResizable cF True - treeViewColumnSetClickable cF True - treeViewColumnSetSortColumnId cF 1 - cellLayoutPackStart cF renderPix False - cellLayoutPackStart cF renderTxt True - _ <- treeViewAppendColumn treeView cF - cellLayoutAddColumnAttribute cF renderPix cp $ makeColumnIdPixbuf 0 - cellLayoutAddColumnAttribute cF renderTxt ct $ makeColumnIdString 1 - - -- date column - cMD <- treeViewColumnNew - treeViewColumnSetTitle cMD ("Date" :: String) - treeViewColumnSetResizable cMD True - treeViewColumnSetClickable cMD True - treeViewColumnSetSortColumnId cMD 2 - cellLayoutPackStart cMD renderTxt True - _ <- treeViewAppendColumn treeView cMD - cellLayoutAddColumnAttribute cMD renderTxt ct $ makeColumnIdString 2 - - -- permissions column - cP <- treeViewColumnNew - treeViewColumnSetTitle cP ("Permission" :: String) - treeViewColumnSetResizable cP True - treeViewColumnSetClickable cP True - treeViewColumnSetSortColumnId cP 3 - cellLayoutPackStart cP renderTxt True - _ <- treeViewAppendColumn treeView cP - cellLayoutAddColumnAttribute cP renderTxt ct $ makeColumnIdString 3 - - return $ FMTreeView treeView - + return $ FMIconView iconv + + +-- |Creates a TreeView. +createTreeView :: IO FMView +createTreeView = do + -- create the final view + treeView <- treeViewNew + -- set selection mode + tvs <- treeViewGetSelection treeView + treeSelectionSetMode tvs SelectionMultiple + + -- set drag and drop + tl <- targetListNew + atom <- atomNew ("HSFM" :: String) + targetListAdd tl atom [TargetSameApp] 0 + treeViewEnableModelDragDest treeView tl [ActionCopy] + treeViewEnableModelDragSource treeView [Button1] tl [ActionCopy] + + -- create final tree model columns + renderTxt <- cellRendererTextNew + renderPix <- cellRendererPixbufNew + let ct = cellText :: (CellRendererTextClass cr) => Attr cr String + cp = cellPixbuf :: (CellRendererPixbufClass self) => Attr self Pixbuf + + -- filename column + cF <- treeViewColumnNew + treeViewColumnSetTitle cF ("Filename" :: String) + treeViewColumnSetResizable cF True + treeViewColumnSetClickable cF True + treeViewColumnSetSortColumnId cF 1 + cellLayoutPackStart cF renderPix False + cellLayoutPackStart cF renderTxt True + _ <- treeViewAppendColumn treeView cF + cellLayoutAddColumnAttribute cF renderPix cp $ makeColumnIdPixbuf 0 + cellLayoutAddColumnAttribute cF renderTxt ct $ makeColumnIdString 1 + + -- date column + cMD <- treeViewColumnNew + treeViewColumnSetTitle cMD ("Date" :: String) + treeViewColumnSetResizable cMD True + treeViewColumnSetClickable cMD True + treeViewColumnSetSortColumnId cMD 2 + cellLayoutPackStart cMD renderTxt True + _ <- treeViewAppendColumn treeView cMD + cellLayoutAddColumnAttribute cMD renderTxt ct $ makeColumnIdString 2 + + -- permissions column + cP <- treeViewColumnNew + treeViewColumnSetTitle cP ("Permission" :: String) + treeViewColumnSetResizable cP True + treeViewColumnSetClickable cP True + treeViewColumnSetSortColumnId cP 3 + cellLayoutPackStart cP renderTxt True + _ <- treeViewAppendColumn treeView cP + cellLayoutAddColumnAttribute cP renderTxt ct $ makeColumnIdString 3 --- |Refreshes the View based on the given directory. --- --- Throws: --- --- - `userError` on inappropriate type -refreshView :: MyGUI - -> MyView - -> Item - -> IO () -refreshView mygui myview SymLink { sdest = Just d@Dir{} } = - refreshView mygui myview d -refreshView mygui myview item@Dir{} = do - newRawModel <- fileListStore item myview - writeTVarIO (rawModel myview) newRawModel - - view' <- readTVarIO $ view myview - - _ <- tryTakeMVar (cwd myview) - putMVar (cwd myview) item + return $ FMTreeView treeView + + +-- |Refreshes the View based on the given directory. +-- +-- Throws: +-- +-- - `userError` on inappropriate type +refreshView :: MyGUI + -> MyView + -> Item + -> IO () +refreshView mygui myview SymLink { sdest = Just d@Dir{} } = + refreshView mygui myview d +refreshView mygui myview item@Dir{} = do + newRawModel <- fileListStore item myview + writeTVarIO (rawModel myview) newRawModel + + view' <- readTVarIO $ view myview - -- get selected items - tps <- getSelectedTreePaths mygui myview - trs <- catMaybes <$> mapM (treeRowReferenceNew newRawModel) tps - - constructView mygui myview - - -- reselect selected items - -- TODO: not implemented for icon view yet - case view' of - FMTreeView treeView -> do - tvs <- treeViewGetSelection treeView - ntps <- mapM treeRowReferenceGetPath trs - mapM_ (treeSelectionSelectPath tvs) ntps - _ -> return () -refreshView _ _ _ = ioError $ userError "Inappropriate type!" - - --- |Constructs the visible View with the current underlying mutable models, --- which are retrieved from 'MyGUI'. --- --- This sort of merges the components mygui and myview and fires up --- the actual models. -constructView :: MyGUI - -> MyView - -> IO () -constructView mygui myview = do - settings' <- readTVarIO $ settings mygui - - -- pix stuff - iT <- iconThemeGetDefault - folderPix <- getIcon IFolder iT (iconSize settings') - folderSymPix <- getSymlinkIcon IFolder iT (iconSize settings') - filePix <- getIcon IFile iT (iconSize settings') - fileSymPix <- getSymlinkIcon IFile iT (iconSize settings') - errorPix <- getIcon IError iT (iconSize settings') - let dirtreePix Dir{} = folderPix - dirtreePix FileLike{} = filePix - dirtreePix DirSym{} = folderSymPix - dirtreePix FileLikeSym{} = fileSymPix - dirtreePix BrokenSymlink{} = errorPix - dirtreePix _ = errorPix - - - view' <- readTVarIO $ view myview + _ <- tryTakeMVar (cwd myview) + putMVar (cwd myview) item + + -- get selected items + tps <- getSelectedTreePaths mygui myview + trs <- catMaybes <$> mapM (treeRowReferenceNew newRawModel) tps + + constructView mygui myview + + -- reselect selected items + -- TODO: not implemented for icon view yet + case view' of + FMTreeView treeView -> do + tvs <- treeViewGetSelection treeView + ntps <- mapM treeRowReferenceGetPath trs + mapM_ (treeSelectionSelectPath tvs) ntps + _ -> return () +refreshView _ _ _ = ioError $ userError "Inappropriate type!" + + +-- |Constructs the visible View with the current underlying mutable models, +-- which are retrieved from 'MyGUI'. +-- +-- This sort of merges the components mygui and myview and fires up +-- the actual models. +constructView :: MyGUI + -> MyView + -> IO () +constructView mygui myview = do + settings' <- readTVarIO $ settings mygui + + -- pix stuff + iT <- iconThemeGetDefault + folderPix <- getIcon IFolder iT (iconSize settings') + folderSymPix <- getSymlinkIcon IFolder iT (iconSize settings') + filePix <- getIcon IFile iT (iconSize settings') + fileSymPix <- getSymlinkIcon IFile iT (iconSize settings') + errorPix <- getIcon IError iT (iconSize settings') + let dirtreePix Dir{} = folderPix + dirtreePix FileLike{} = filePix + dirtreePix DirSym{} = folderSymPix + dirtreePix FileLikeSym{} = fileSymPix + dirtreePix BrokenSymlink{} = errorPix + dirtreePix _ = errorPix - cdir <- getCurrentDir myview - let cdirp = path cdir + + view' <- readTVarIO $ view myview - -- update urlBar - entrySetText (urlBar myview) (P.fromAbs cdirp) + cdir <- getCurrentDir myview + let cdirp = path cdir - rawModel' <- readTVarIO $ rawModel myview - - -- filtering - filteredModel' <- treeModelFilterNew rawModel' [] - writeTVarIO (filteredModel myview) filteredModel' - treeModelFilterSetVisibleFunc filteredModel' $ \iter -> do - hidden <- showHidden <$> readTVarIO (settings mygui) - item <- treeModelGetRow rawModel' iter >>= (P.basename . path) - if hidden - then return True - else return . not . hiddenFile . P.fromRel $ item - - -- sorting - sortedModel' <- treeModelSortNewWithModel filteredModel' - writeTVarIO (sortedModel myview) sortedModel' - treeSortableSetSortFunc sortedModel' 1 $ \iter1 iter2 -> do - cIter1 <- treeModelFilterConvertIterToChildIter filteredModel' iter1 - cIter2 <- treeModelFilterConvertIterToChildIter filteredModel' iter2 - item1 <- treeModelGetRow rawModel' cIter1 - item2 <- treeModelGetRow rawModel' cIter2 - return $ compare item1 item2 - treeSortableSetSortColumnId sortedModel' 1 SortAscending - - -- set values - treeModelSetColumn rawModel' (makeColumnIdPixbuf 0) - dirtreePix - treeModelSetColumn rawModel' (makeColumnIdString 1) - (P.toFilePath . fromJust . P.basename . path) - treeModelSetColumn rawModel' (makeColumnIdString 2) - packModTime - treeModelSetColumn rawModel' (makeColumnIdString 3) - packPermissions - - -- update model of view - case view' of - FMTreeView treeView -> do - treeViewSetModel treeView sortedModel' - treeViewSetRubberBanding treeView True - FMIconView iconView -> do - iconViewSetModel iconView (Just sortedModel') - iconViewSetPixbufColumn iconView - (makeColumnIdPixbuf 0 :: ColumnId item Pixbuf) - iconViewSetTextColumn iconView - (makeColumnIdString 1 :: ColumnId item String) - - -- add watcher - mi <- tryTakeMVar (inotify myview) - for_ mi $ \i -> killINotify i - newi <- initINotify - _ <- addWatch - newi - [Move, MoveIn, MoveOut, MoveSelf, Create, Delete, DeleteSelf] - (P.fromAbs cdirp) - (\_ -> postGUIAsync $ refreshView mygui myview cdir) - putMVar (inotify myview) newi - - return () + -- update urlBar + entrySetText (urlBar myview) (P.fromAbs cdirp) + + rawModel' <- readTVarIO $ rawModel myview + + -- filtering + filteredModel' <- treeModelFilterNew rawModel' [] + writeTVarIO (filteredModel myview) filteredModel' + treeModelFilterSetVisibleFunc filteredModel' $ \iter -> do + hidden <- showHidden <$> readTVarIO (settings mygui) + item <- treeModelGetRow rawModel' iter >>= (P.basename . path) + if hidden + then return True + else return . not . hiddenFile . P.fromRel $ item + + -- sorting + sortedModel' <- treeModelSortNewWithModel filteredModel' + writeTVarIO (sortedModel myview) sortedModel' + treeSortableSetSortFunc sortedModel' 1 $ \iter1 iter2 -> do + cIter1 <- treeModelFilterConvertIterToChildIter filteredModel' iter1 + cIter2 <- treeModelFilterConvertIterToChildIter filteredModel' iter2 + item1 <- treeModelGetRow rawModel' cIter1 + item2 <- treeModelGetRow rawModel' cIter2 + return $ compare item1 item2 + treeSortableSetSortColumnId sortedModel' 1 SortAscending + + -- set values + treeModelSetColumn rawModel' (makeColumnIdPixbuf 0) + dirtreePix + treeModelSetColumn rawModel' (makeColumnIdString 1) + (P.toFilePath . fromJust . P.basename . path) + treeModelSetColumn rawModel' (makeColumnIdString 2) + packModTime + treeModelSetColumn rawModel' (makeColumnIdString 3) + packPermissions + + -- update model of view + case view' of + FMTreeView treeView -> do + treeViewSetModel treeView sortedModel' + treeViewSetRubberBanding treeView True + FMIconView iconView -> do + iconViewSetModel iconView (Just sortedModel') + iconViewSetPixbufColumn iconView + (makeColumnIdPixbuf 0 :: ColumnId item Pixbuf) + iconViewSetTextColumn iconView + (makeColumnIdString 1 :: ColumnId item String) + + -- add watcher + mi <- tryTakeMVar (inotify myview) + for_ mi $ \i -> killINotify i + newi <- initINotify + _ <- addWatch + newi + [Move, MoveIn, MoveOut, MoveSelf, Create, Delete, DeleteSelf] + (P.fromAbs cdirp) + (\_ -> postGUIAsync $ refreshView mygui myview cdir) + putMVar (inotify myview) newi + + return () diff --git a/src/HSFM-GUI-Gtk-Plugins.html b/src/HSFM-GUI-Gtk-Plugins.html new file mode 100644 index 0000000..1ac2c44 --- /dev/null +++ b/src/HSFM-GUI-Gtk-Plugins.html @@ -0,0 +1,138 @@ + + + + + +src/HSFM/GUI/Gtk/Plugins.hs + + + +
{--
+HSFM, a filemanager written in Haskell.
+Copyright (C) 2016 Julian Ospald
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+version 2 as published by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+--}
+
+
+{-# LANGUAGE TupleSections #-}
+{-# OPTIONS_HADDOCK ignore-exports #-}
+
+
+module HSFM.GUI.Gtk.Plugins where
+
+
+import Graphics.UI.Gtk
+import HPath
+import HSFM.FileSystem.FileType
+import HSFM.GUI.Gtk.Data
+import HSFM.GUI.Gtk.Settings
+import HSFM.GUI.Gtk.Utils
+import HSFM.Settings
+import Control.Monad
+  (
+    forM
+  , forM_
+  , void
+  )
+import System.Posix.Process.ByteString
+  (
+    executeFile
+  , forkProcess
+  )
+import Data.ByteString.UTF8
+  (
+    fromString
+  )
+import qualified Data.ByteString as BS
+
+
+
+
+    ---------------
+    --[ Plugins ]--
+    ---------------
+
+
+
+---- Init functions ----
+
+
+-- |Usually, you don't want to overwrite this method. It
+-- adds plugins from `myplugins` and initializes the callbacks
+-- automatically.
+addPlugins :: MyGUI -> MyView -> IO ()
+addPlugins mygui myview
+  | null myplugins = return ()
+  | otherwise = do
+    -- add another plugin separator after the existing one
+    -- where we want to place our plugins
+    sep2 <- separatorMenuItemNew
+    widgetShow sep2
+
+    menuShellInsert (rcMenu . rcmenu $ myview) sep2 insertPos
+
+    plugins <- forM myplugins $ \(ma,mb) -> fmap (,mb) ma
+    -- need to reverse plugins list so the order is right
+    forM_ (reverse plugins) $ \(plugin, cb) -> do
+      menuShellInsert (rcMenu . rcmenu $ myview) plugin insertPos
+      widgetShow plugin
+      -- init callback
+      plugin `on` menuItemActivated $ withItems mygui myview cb
+
+    return ()
+
+
+
+
+
+---- Global settings ----
+
+
+
+-- |Where to start inserting plugins.
+insertPos :: Int
+insertPos = 4
+
+
+-- |A list of plugins to add to the right-click menu at position
+-- `insertPos`. The left part of the tuple is the menuitem, the right
+-- part the callback.
+-- Plugins are added in order of this list.
+myplugins :: [(IO MenuItem, [Item] -> MyGUI -> MyView -> IO ())]
+myplugins = [(diffPlugin, diffCallback)
+            ]
+
+
+
+
+
+---- The plugins ----
+
+
+
+diffPlugin :: IO MenuItem
+diffPlugin = menuItemNewWithLabel "diff"
+
+diffCallback :: [Item] -> MyGUI -> MyView -> IO ()
+diffCallback items _ _ = void $
+  forkProcess $
+    executeFile
+      (fromString "meld")
+      True
+      ([fromString "--diff"] ++ fmap (fromAbs . path) items)
+      Nothing
+
+
+