• Moderator
    Kronos
    Posts: 2243 from 2003/2/24
    3rd alpha

    http://www.steamdraw.homepage.t-online.de/PanelApp.lha

    New:

    - loads multiple panels (everything in PROGDIR: that ends in .prefs)
    - saving enabled
    - moving items with middle mouse buttons
    - forced grid mode for all icons to avoid issues with extreme aspect ratios
    - reads and discards data found before images in GlowIcons or old drawer icons
    - D&D kinda works, either in "locked" dropped icon is argument or "unlocked"
    icon gets added to panel
    -- no visual feedback as this is done with AppMessage which does not send
    any events other than the drop and I can't get reliable events while left
    mousebutton is engaged this would need some work further up in the foodchain,
    maybe Ambient (I could do that) but more likely in MUI or even Intuition


    Known issues:
    - zipping still isn't as nice as in Ambient but thats kinda on purpose atm
    - having project type icons in a panel will work (as in starting the default tool)
    just not as reliable as in Ambient, I haven't checked wether that is Ambient
    using some search path, or going via mimetypes
    - Bookmarks and ViewWatcher classes are missing as these need to call into
    Ambient, might be just an existing ARexx command, might be something
    I need to add to it

    Future/Design:

    Prefs will be an MCC to be loaded by Ambient, but during development I plan to put into a separate PanelPrefs app.
    This app/MCC will issue a command to PanelApp to save all prefs to T: from which it will load them adding DOSNOTIFY
    to monitor for changes.
    Changes in prefs will be messaged vie PushMethod() or a "SetPanelAttr" API call in panel.library. Extra care will be needed to make it secure (SEMAPHORES and whatsnot). Each panel and obj will need an ID for this and the GUI for the default classes will be in included in PanelPrefs app/MCC.
    External classes are a bit tricky as the current method only works if the prefs GUI and the actual object are part of the same application, which won't be the case anymore. So I can either disable the few existing external classes or just load them with whatever prefs were saved back when the file was still under Ambient's control.
    For new external classes it will be based on object ID and API calls between prefs and object.
    The prefs GUIs could be placed/accesed in 3 different way:
    - a separate prefs-MCC for every class
    - misusing the MUI prefs library functions optional in normal MCCs
    - create an object but instead of placing it in a panel set it to a special prefs mode returning a group object

    There will also be an API for programs to find it's icon in the panel and have it GFX augmented/replaced, think about showing the number of new mails in Iris or active download in Wayfarer.
    This actually does exist in current Ambient builds, but I never made the API public.


    As some might have noticed this thread started with "new features, speration later" and is now clearly "seperation first, new features (much) later" which I do think is the better approach as working inside Ambient can be a pain (long build time, need to restart Ambient to check changes). Doing it this way makes it also possible to release stand alone upgrades once the 3.20 release window has been closed.


    [ Edited by Kronos 28.01.2024 - 15:06 ]
  • »28.01.24 - 14:54
    Profile