kekcleader / FreeOberon

Cross-platform IDE for development in Oberon programming language made in the classical FreePascal-like pseudo-graphic style.
GNU General Public License v3.0
135 stars 14 forks source link

New functions and native modules. #11

Open Spoiledpay opened 9 months ago

Spoiledpay commented 9 months ago

Hello! Thinking about expanding the functionalities, I imagine there is something related to new modules for the language such as: *If any module suggestions already exist, you may have a separate folder of examples. This helps the adoption of the language. The more examples the better.

1 - File manipulation module (read files, write files, delete files, search files, create directories, delete directories); 2 - Module with time, date, year function; 3 - Module for windows Gui (Windows, buttons, menus, message box); 4 - Text Window Gui Module. Similar to the freeOberon Editor;

I'll put here what we can create or try to develop and when I have more knowledge I'll talk. I note that we need a bunch of additional examples.

Thank you for your work. This above is a suggestion for improvement.

kekcleader commented 9 months ago

Hi @Spoiledpay, thank you very much for the comment and suggestions. The listed modules need improvement and documentation, but alsmost all of them exist.

  1. File manipulation:

    • Module Files - allows to read and write files in UTF-8 or plain bytes, also IO of basic data types.
    • Module Dir - allows to list files in directory.
    • Not sure about deleting files, but it should be there. Needs to be added otherwise. In original Oberon the module to do that is called FileDir.
  2. Time:

    • Module Time - procedures GetClock, GetDate, GetDateStr, GetDateTime, GetTime. Needs to be expanded, tested, fixed.
    • Originally some of these procedures can be found in module Oberon and sometimes module Kernel.
  3. Windows GUI.

    • There is a WinAPI module in Ofront+ that can be used in Free Oberon. I've never used the GUI procedures (only used the file and console manipulation procedures), but I think they are there.
    • There is an experimental module Gui and SimpleGui. A map editor example program is built using the SimpleGui module. All built on top of module Graph.
    • The next experiment will be in the direction of the Oberon concept of Gadgets - Oberon-07-style objects which implement different (RECORD) message-handling to become the components of the GUI.
    • As for the Windows GUI, it would be also great to have a cross-platform option.
  4. Text Window GUI

    • The very thing that Free Oberon IDE runs on is module OV (Oberon Vision - named after Turbo Vision)
    • The thing that OV runs on is called module TermBox. This module allows manipulation of console-screen characters and colors, keyboard and mouse input. It runs on top of module Graph at the moment, but is abstract enough (with some possible minor changes) to run on top of Windows Console (via WinAPI) and Linux Console (standard VT-100). It can be made to be usable even in DOS.

Please let me know what modules you are insterested in the most, or where you would like to help.