browser.exe displays programs found in current directory's
subdirectories in an easy to look through interface. Programs
meta information (name, description, screenshots references)
is stored in browser.yaml file found in programs' directory.
Here is UI prototype:
+----------------------------+-------------------------------------------------+
| | |
| +----------+ +---------+ | Property: |
| | Recent | | All | | Value |
| +----------+ +---------+ | |
| | Property: |
| Prog1 | Value |
| Prog2 | |
| | Screenshots: |
| | |
| | +-------------------------------------------+ |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | +-------------------------------------------+ |
| | |
| | < Previous Next > |
| | |
+----------------------------+-------------------------------------------------+
-
Build the list of nodes (a valid "node" is a directory with
browser.yamlfile in YAML format). If there is nobrowser.yamlfile in the node's directory, ignore the node entirely. -
Read configuration from each node (if configuration is unreadable, paint node's title in Nodes list view in red and display an error message in Node page view when this node is selected)
-
Render UI
browser.exe
prog1\
program1.exe
browser.yaml
prog2\
program2.exe
browser.yaml
Each valid node should contain a browser.yaml in following format:
title: Program 1
description: |
First paragraph, first line
First paragraph, second line
Second paragraph, first line
Second paragraph, second line
# Path to the program executable file relatively to current file's path
executable: program.exe
screenshots: ["image1.jpg", "image2.jpg"]
Interface consists of 2 panes - Nodes list and Node page.
Nodes list is active by default.
Active pane's border is brighter.
Press TAB to switch between panes.
-
####Nodes list
Nodes list is a sideblock that consists of:
-
2 tabs/buttons
-
RecentSorts nodes list by
LAST_EXECUTED_TIMESTAMPflag value in descending order and updates the nodes list view.LAST_EXECUTED_TIMESTAMPflag is assigned to every node internally and is updated every time a node is executed with current systems's timestamp. -
AllSorts nodes list alphabetically and updates the nodes list view.
-
-
List of nodes
Each node can be activated by pressing
ENTERwhile a node is selected (selection is done by pressingUp,Down,PgUpandPgDownkeys). When a node is activated, whatever is specified inexecutableproperty ofbrowser.yamlconfiguration file relatively to the node's path should be executed. So if node's absolute path isC:\prog1andexcutableisfoo\bar.exethen following should be executed:C:\prog1\foo\bar.exe
-
-
Can be scrolled using
Up,Down,PgUpandPgDownkeys.Lists properties and values fetched from
browser.yamlfile separated by line break.Following properties are special:
-
screenshotsContains array of images path relative to node's path. Only one image should be displayed at once.
NextandPreviousbuttons should replace images accordingly; If there is no next/previous image, button should be disabled (with grey color or not being displayed at all).
-