From 454f64d4106c3c0811aadbe6b3099af58ea85b7e Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Sun, 17 Apr 2016 01:34:49 +0200 Subject: [PATCH] HACKING: fix links --- hacking/HACKING.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/hacking/HACKING.md b/hacking/HACKING.md index 816ddff..e039258 100644 --- a/hacking/HACKING.md +++ b/hacking/HACKING.md @@ -11,7 +11,7 @@ Coding style - no overcomplicated pointfree style - normal indenting 2 whitespaces - just make things pretty and readable -- use the provided [hsimport.hs](hacking/hsimport.hs) +- use the provided [hsimport.hs](hsimport.hs) Documentation ------------- @@ -22,32 +22,33 @@ Hacking Guide ------------- The main data structure for the IO related File type is in -[HSFM.FileSystem.FileType](src/HSFM/FileSystem/FileType.hs), which +[HSFM.FileSystem.FileType](../src/HSFM/FileSystem/FileType.hs#L93), which should be seen as a library. This is the entry point where -directory contents are read and the File type in general is constructed. +[directory contents are read](../src/HSFM/FileSystem/FileType.hs#L465) +and the File type in general [is constructed](../src/HSFM/FileSystem/FileType.hs#L302). The File type uses a safe Path type under the hood instead of Strings, utilizing the [hpath](https://github.com/hasufell/hpath) library. File operations (like copy, delete etc) are defined at -[HSFM.FileSystem.FileOperation](src/HSFM/FileSystem/FileOperations.hs) +[HSFM.FileSystem.FileOperation](../src/HSFM/FileSystem/FileOperations.hs) which use this File type. Only a GTK GUI is currently implemented, the entry point being -[HSFM.GUI.Gtk](src/HSFM/GUI/Gtk.hs). From there it flows down -to creating a [MyGUI object](src/HSFM/GUI/Gtk/Data.hs#L51) in -[HSFM.GUI.Gtk.MyGUI](src/HSFM/GUI/Gtk/MyGUI.hs), which is sort of +[HSFM.GUI.Gtk](../src/HSFM/GUI/Gtk.hs). From there it flows down +to creating a [MyGUI object](../src/HSFM/GUI/Gtk/Data.hs#L51) in +[HSFM.GUI.Gtk.MyGUI](../src/HSFM/GUI/Gtk/MyGUI.hs), which is sort of a global object for the whole window. Inside this object are -theoretically multiple [MyView objects](src/HSFM/GUI/Gtk/Data.hs#L101) +theoretically multiple [MyView objects](../src/HSFM/GUI/Gtk/Data.hs#L101) allowed which represent the actual view on the filesystem and related widgets, which are constructed in -[HSFM.GUI.Gtk.MyView](src/HSFM/GUI/Gtk/MyView.hs). Both MyGUI and MyView +[HSFM.GUI.Gtk.MyView](../src/HSFM/GUI/Gtk/MyView.hs). Both MyGUI and MyView are more or less accessible throughout the whole GTK callstack, expclicitly passed as parameters. For adding new GTK widgets with functionality you mostly have to touch the following files: -* [builder.xml](data/Gtk/builder.xml): this defines the main GUI widgets which are static, use the [glade editor](http://glade.gnome.org) to add stuff -* [HSFM.GUI.Gtk.Data](src/HSFM/GUI/Gtk/Data.hs): add the widget to e.g. the MyGUI type so we can access it throughout the GTK call stack -* [HSFM.GUI.Gtk.MyGUI](src/HSFM/GUI/Gtk/MyGUI.hs): add initializers for the GUI buttons to be fetched from the GTK builder.xml file -* [HSFM.GUI.Gtk.Callbacks](src/HSFM/GUI/Gtk/Callbacks.hs): define the callbacks and the actual functionality here +* [builder.xml](../data/Gtk/builder.xml): this defines the main GUI widgets which are static, use the [glade editor](http://glade.gnome.org) to add stuff +* [HSFM.GUI.Gtk.Data](../src/HSFM/GUI/Gtk/Data.hs): add the widget to e.g. the MyGUI type so we can access it throughout the GTK call stack +* [HSFM.GUI.Gtk.MyGUI](../src/HSFM/GUI/Gtk/MyGUI.hs): add initializers for the GUI buttons to be fetched from the GTK builder.xml file +* [HSFM.GUI.Gtk.Callbacks](../src/HSFM/GUI/Gtk/Callbacks.hs): define the callbacks and the actual functionality here