Skip to content

Commit

Permalink
README
Browse files Browse the repository at this point in the history
  • Loading branch information
WakeRealityDev committed Sep 1, 2017
1 parent 0a31c59 commit b4e1420
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions README_state_of_this_app_code_as_Glk_frontend.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ The base code of this app
===========================
This app started from the Qt 5.9.1 example app for text-editor. It is a rich-text and subset of HTML QTextEdit.

The assumption was that a rich text editor already knew how to do all the text formatting that Glk needs: change text colors, alignment of paragraphs, bold, underline, font size changes, etc.
The assumption was that a rich text editor already knew how to do all the text formatting that Glk needs: line wrapping, scrolling up/down, resizing, change text colors, alignment of paragraphs, bold, underline, font size changes, etc.

This has proven, so far, to be a decent enough assumption. During development, it can be useful to re-enable all the toobar icons for the original TextEdit example app, do not define HIDE_TEXT_EDIT_TOOLBARS in .pro file.

Expand All @@ -26,7 +26,7 @@ Some things were barely started, such as StoryRunParameters class. This was inte

The RemGlkProcess class needs more work to pick multiple engine backends (like Gargoyle or Thunderword). Right now it's pretty much one-engine app level of completeness in it's logic of which remglk binary to launch.

FindFilesWindow class and FindStoriesWindow class are variations. One is classical file searching taking from the Qt 5.9.1 example apps. A dedicated thread class was added to allow completely hidden background file finding. FindFilewsWindow class could be removed if desired, it's mostly kept in the source tree for reference. The FindStoriesWindow class is reworked to emit an HTML list instead of a QTable as the HTML output works much better on 5" mobile phones with large sets of file. Intelligent grouping is done to cut the folder path name out of individual story file links. Right now the story data file searching logic is Glulx only. It works pretty well on a Linux desktop system and Android device, but it needs to be fleshed out a lot more to support more than Glulx and to cache/save results so it isn't as frequently doing a full scan of the folders.
FindFilesWindow class and FindStoriesWindow class are variations. One is classical file searching taking from the Qt 5.9.1 example apps. A dedicated thread class was added to allow completely hidden background file finding. FindFilesWindow class could be removed if desired, it's mostly kept in the source tree for reference. The FindStoriesWindow class is reworked to emit an HTML list instead of a QTable as the HTML output works much better on 5" mobile phones with large sets of file. Intelligent grouping is done to cut the folder path name out of individual story file links. Right now the story data file searching logic is Glulx only. It works pretty well on a Linux desktop system and Android device, but it needs to be fleshed out a lot more to support more than Glulx and to cache/save results so it isn't as frequently doing a full scan of the folders.

The app lacks any code to save or remember user settings. Size of the window, last story played, enabling or disabling rewriting of the Glk TextGrid lines, etc. All preference-saving code needs to be added.

Expand All @@ -37,14 +37,14 @@ State of this App code as a Glk front-end
Essentially, here is a ToDo list of what needs to be added to make this a full fledge front-end app to RemGlk:

1. Glk Timer support isn't complete. There is only a whisper of code to satisfy a timer response in the opening of the Glulx story "Six".
2. Glk windows are not properly parsed into a maintained data structure. A simple object has been started to hold each window, but it isn't populated from the JSON and it isn't really referenced yet. Right now the code assumes "class Zork-like two-windows" of a main Glk TextBuffer and a Glk TextGrid for the top status line. The logic will essentially merge multiple Glk TextBuffer windows into the main output.
2. Glk windows are not properly parsed into a maintained data structure. A simple object has been started to hold each window, but it isn't populated from the JSON and it isn't really referenced yet. Right now the code assumes "classic Zork-like two-windows" of a main Glk TextBuffer and a Glk TextGrid for the top status line. The currently simple logic will essentially merge multiple Glk TextBuffer windows into the main output.
3. Glk style hints are not supported in RemGlk and nothing has been done to add that. This means colored text like in the Glulx story "Rover's Day Out" will not be colored. There is some hacky code out there for Thunderword's fork of RemGlk to add style hints to the JSON output of RemGlk.
4. Glk player input system needs work. autocomplete typing was experimental and can be annoying. The code needs an option to disable that autocomplete logic.
5. Glk player input system does not track multiple Glk windows and only tracks if there is character or line input mode, or a combination of both. If two windows have line input, or one window has line and another char, it does not know which window to send the input to when sending input back into RemGlk. It blindly assumes one Glk TextBuffer window and sends the input to that.
6. Glk hyperlinks are working in RemGlk but this code does not yet account for them. Code needs to be added to render them and to assign a handler to send clicks back into RemGlk.
7. Clearing the screen (Glk TextBuffer window) probably doesn't work but that's pretty easy to do. Some stories will clear the screen after there Glk TextBuffer content after opening, find some examples to run that do that and add the logic.
7. Clearing the screen (Glk TextBuffer window) probably doesn't work but that's pretty easy to do. Some stories will clear the screen (Glk TextBuffer) content after opening, find some example stories to run that clear screen and add the logic.
8. Glk inline graphic images (inline to a Glk TextBuffer window), figures, are not coded yet. RemGlk does send the data about the images but there is no Qt C++ code yet to process that information and create a HTML img tag.
9. Glk graphics windows are entirely not working. Code needs to be added. Glk graphics windows are often used to create colored boxes or image graphics. The Glulx stores "Dead Cities by John Ingold" and "Six" are difficult test cases to get working.
9. Glk graphics windows are entirely not working. Code needs to be added. Glk graphics windows are often used to create colored boxes or image graphics. The Glulx stores "Dead Cities by John Ingold", "Alabaster", and "Six" are difficult test cases to get working.
10. Glk filename picking for save/restore and other data files needs to be added. RemGlk supports triggering a user dialog to ask for a filename, but the Qt C++ code ignores it.
11. RemGlk's big absent feature is Glk sound. That's one area where contribution to RemGlk itself would be needed to add this Glk feature. RemGlk already does a lot of what it needs to parse the BLORB file for graphics images and emit the JSON - in theory basic sound file support isn't a massive task.
12. The 12 standard Glk text styles are not really recognized and accounted for. Heading and subheading are kind of there, but really it needs to be fleshed out and other styles accounted for.
Expand Down

0 comments on commit b4e1420

Please sign in to comment.