MAPPING THE IDE STARTUP PROCESS - the Home stack

Organizing tasks to work on, New Features Ideas, Building LCS & LCB Libraries & Widgets, Redecorating and Modifying the IDE, Hacking / Editing Tools, Compiling the Engine from Source, etc.
Post Reply
User avatar
OpenXTalkPaul
Posts: 1640
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

MAPPING THE IDE STARTUP PROCESS - the Home stack

Post by OpenXTalkPaul »

MAPPING THE IDE STARTUP PROCESS - the Home stack (i.e.the Script equivalent of 'Main')

So last night I spent litte bit of time visually walking through the Home stack's scripts as far as the IDE startup process goes.
I made a map of sorts and attached some comments, I'm not finished with it yet:

HOME Start chain:

on startup
  • revInternal__SetupLicense -- copies license info to variables, possibly disabled later, to see most of it put revLicenseInfo()
  • revInternal__SetupPaths -- Sets Up Preferences and App Support Folders Paths
  • revInternal__SetupFolders -- Checks Preferences and App Support folders exist, or creates them
  • revInternal__SetupStackFiles -- sets up stack files names & paths via internal Engine function revInternal__StackFiles()
  • revInternal__SetupSplash -- palette revSplash stack
  • revInternal__SetupPreferences -- checks and loads the prefs file and tacks additional line on to Home's stack files
  • revInternal__SetupCustomizationPath -- sets up IDE user's customization directory for add ons and such
  • revInternal__SetupExternals -- loads Externals from IDE path /Tools/Ext/ and user's directory (see above) /Externals
on preOpenStack
  • revInternal__InitialiseDefaults -- sets up some basic IDE app behavior depending on the platform
on openStack
  • revInternal__openStack -- does all of the rest of loading the IDE
revInternal__openStack
  • revInternal__setSplashStatus -- this utility handler is used a lot, it just passes strings to update Splash Screen loading text
  • revInternal__InitialiseSystem -- sets up crash log
  • revInternal__InitialiseLibraries -- Loads Libraries
  • revInternal__InitialiseGlobals -- sets global variables
  • revInternal__InitialiseOptions -- sets preferences
  • Icons
    • set the visible of stack "revGeneralIcons" to false -- this is where the IDE Logo and other important/current icons are!
    • revInternal__InitialiseIcons -- "Loading theme data..."" actually icons are already loaded, this just hides "revIcons" stack!
  • Patterns
    • stacks "revGeneralPatterns,revCompatibilityPatterns1,revCompatibilityPatterns2" checked for existence, doesn't do anything if they don't exist!
  • revInternal__InitialiseScriptEditor --- sets the behavior script of stack /palettes/script editor/
  • revInternal__InitialiseUserLibraries -- loads any ~ user/My_OTX/ icon files and sets them to hidden
  • revInternal__InitialiseErrors -- sets _ideoverride on revError display and ensures invisibles are hidden
  • revInternal__InitialiseMenus -- Creates top ToolBar menu (that palette at the top) and the app menus
  • revInternal__InitialiseTools -- Loads the Tools palette and positions it on screen
  • revInternal__InitialiseProjectBrowser
  • revInternal__InitialiseMessageBox -- Loads the message box palette and positions it on screen
  • revInternal__InitialisePlugIns -- Loads IDE plugins
  • revInternal__CleanDocsCache -- Clear Dictionary Cache is need be
  • revInternal__BuildDictionary -- Builds Dictionary if need be
  • revInternal__InitialiseFinalSteps -- Loads FrontScripts, BackScripts, ShortCuts(?), RevOnline and Clears Splash Screen Text
  • revInternal__CheckFileAssociations -- Makes sure the filename extensions are setup on Windows, if not then shows stack "revFileAssociations" dialog
    load "Start Center"
  • Checks license info for "evaluation" and then runs auto updater per platform -- Commented this whole section
_ideoverride -- property gets set on a bunch of IDE stacks, I'm not yet exactly sure what it does, may be similar to 'palette stack''?

For some real fun try pasting: revInternal__StackFiles() into the message box!!
Warning this disables EVERYTHING! You'll have to force exit the application!
User avatar
richmond62
Posts: 2843
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: MAPPING THE IDE STARTUP PROCESS - the Home stack

Post by richmond62 »

What is the point of mapping the IDE startup process?
https://richmondmathewson.owlstown.net/
User avatar
OpenXTalkPaul
Posts: 1640
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: MAPPING THE IDE STARTUP PROCESS - the Home stack

Post by OpenXTalkPaul »

richmond62 wrote: Thu Sep 23, 2021 6:27 pm What is the point of mapping the IDE startup process?
LOTS!!!
It's the IDE's script equivalent to "Main"
Now that I've gone through it, I know more about what gets loaded when.
In the process I've continued to, carefully, make alterations, testing launching each one, some of which are necessary to transform the old thing into this new thing. So for example now when you use this Home script, you will have a new seperate "My OpenXTalk" folder in your documents folder, and a new OpenXTalk7.rev preferences file, and the IDE will recognize .stk .otxstack .otxscript as valid stack files in the open stack dialog in addition to the old extensions, including on Windows with registry entries (not yet tested on Windows).
I've added a few -- TO DO: ... comments for improvements ideas I've had along the way (such as what line to insert customizable Start Center). License checks and autoupdate have been comment out/disabled (maybe we can figure out how to replace that later)
I've changed some 'theme' colors (those "Community" green colors), mostly so I can see which property colors what, those color properties can now be moved to preferences stack properties and then be user customizable.
I've tried out a bunch of internal IDE functions to try to learn what each of those do.
AND, simple but exciting, I added Comand + Shift + N for New Stack->Default Size, which doesn't have a preference setting that I could find, so that's another TO DO! That's actually in the revMenubar stack but that gets initially loaded by the Home stack, like everything else in the IDE does.
There is just SO much that could be done with it, I just keep getting more and more excited!
How about some real useful tools in that Toolbar Icon menu? Make it a little more like a page-layout toolbar with text styles/font formating, object alignment tools right out in front instead of hunting for them when you need them, and so much more!
Honestly I'm starting to think the IDE part is the most neglected part of this beast!
User avatar
richmond62
Posts: 2843
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: MAPPING THE IDE STARTUP PROCESS - the Home stack

Post by richmond62 »

Thank you for that explanation, unless I am even more of a steaming ignoramus
that I thought I was, that should prove useful to other people as well who wonder
what is going on. 8-)
https://richmondmathewson.owlstown.net/
Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests