English Amiga Board


Go Back   English Amiga Board > News

 
 
Thread Tools
Old 18 May 2021, 19:49   #221
Tigerskunk
Inviyya Dude!
 
Tigerskunk's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 2,770
Anyone who knows a good online tutorial for reaction UI coding?
Tigerskunk is offline  
Old 18 May 2021, 22:58   #222
gulliver
BoingBagged
 
gulliver's Avatar
 
Join Date: Aug 2007
Location: The South of nowhere
Age: 46
Posts: 2,358
For those who are looking for an easy to follow C programming tutorial whith some ReAction examples go to:

http://www.pjhutchison.org/tutorial/amiga_c.html
gulliver is offline  
Old 19 May 2021, 00:42   #223
falken
Amiga Lover
 
falken's Avatar
 
Join Date: Feb 2018
Location: Spain
Posts: 197
Will a digital version purchase option be planned?
falken is offline  
Old 19 May 2021, 01:34   #224
Magic
Registered User
 
Join Date: Aug 2007
Location: USA
Posts: 359
Quote:
Originally Posted by gulliver View Post
For those who are looking for an easy to follow C programming tutorial whith some ReAction examples go to:

http://www.pjhutchison.org/tutorial/amiga_c.html

Thank you for taking the time to post this.
Magic is offline  
Old 19 May 2021, 09:01   #225
Tigerskunk
Inviyya Dude!
 
Tigerskunk's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 2,770
Quote:
Originally Posted by gulliver View Post
For those who are looking for an easy to follow C programming tutorial whith some ReAction examples go to:

http://www.pjhutchison.org/tutorial/amiga_c.html
Nice, thanks...

Will see if I can get something going in Reaction, when 3.2 arrives...
Tigerskunk is offline  
Old 19 May 2021, 13:40   #226
walkero
Registered User
 
walkero's Avatar
 
Join Date: May 2012
Location: Dublin/Ireland
Posts: 358
I would like to invite you all on a live presentation of AmigaOS 3.2 this Saturday 22nd of May, at 6pm CET (5pm GMT+1) on https://www.twitch.tv/walkerogr/schedule . On my aid, Mr. Ignacio Gully will co-host, who is part of the development team which gave us AmigaOS 3.2.

Together we will show you the new awesome features of AmigaOS 3.2, the installation process and will answer your questions. Come join us and let’s celebrate this new release.
walkero is offline  
Old 19 May 2021, 17:06   #227
Pyromania
Moderator
 
Pyromania's Avatar
 
Join Date: Jan 2002
Location: Chicago, IL
Posts: 3,375
This sounds like a nice event.
Pyromania is offline  
Old 19 May 2021, 18:01   #228
Predseda
Puttymoon inhabitant
 
Predseda's Avatar
 
Join Date: Mar 2007
Location: Tromaville
Age: 46
Posts: 7,539
Send a message via ICQ to Predseda
Great, looking forward!
Predseda is offline  
Old 19 May 2021, 18:43   #229
boemann
Camilla, AmigaOS Dev.
 
Join Date: Mar 2020
Location: Frederiksberg
Posts: 327
Quote:
Originally Posted by saimo View Post
Q5 - Context-sensitive pointer
If one changes/removes Pointer.prefs to disable the dynamic changing of the pointer, does Intuition keep on checking what the pointer is hovering on?
Not if you change pointer.prefs no, but there is a checkbox in icontrol prefs that allows you to turn off the checking. This affects both scroll wheel and pointer dynamically changing, as well as tooltips

However even 3.1 would check what is hovered, and the code have been optimized, so it doesn't spend needless cycles checking if you are not moving the mouse or moving it fast It is in on average more efficient than 3.1

Quote:
Originally Posted by saimo View Post
Q8 - DefIcons
Has the core engine been improved and how?

Q10 - icon.library
Is icon.library new and how does it compare to this replacement library?
These two tie together as icon.library now has a tag so you can ask the filetype of a file. The actual detection is served by deficons.

And as far as i know PeterKs icon lib already implements these new tags too
boemann is offline  
Old 19 May 2021, 19:55   #230
saimo
Registered User
 
saimo's Avatar
 
Join Date: Aug 2010
Location: Italy
Posts: 787
Quote:
Originally Posted by boemann View Post
Not if you change pointer.prefs no, but there is a checkbox in icontrol prefs that allows you to turn off the checking. This affects both scroll wheel and pointer dynamically changing, as well as tooltips

However even 3.1 would check what is hovered, and the code have been optimized, so it doesn't spend needless cycles checking if you are not moving the mouse or moving it fast It is in on average more efficient than 3.1
Thank you for the explanation!

Quote:
These two tie together as icon.library now has a tag so you can ask the filetype of a file. The actual detection is served by deficons.
And as far as i know PeterKs icon lib already implements these new tags too
How does it work, exactly? Something like this, perhaps?
1. A program wants to know the type of a file;
2. the program opens the file icon with icon.library;
3. the program asks icon.library to check the type;
4. icon.library asks DefIcons;
5. icon.library provides the answer.

Or this?
1. A program wants to know the type of a file;
2. the program opens the file icon with icon.library;
3. icon.library asks DefIcons;
4. icon.library provides the answer through the diskobject structure.

Or some other way?
saimo is offline  
Old 19 May 2021, 20:25   #231
boemann
Camilla, AmigaOS Dev.
 
Join Date: Mar 2020
Location: Frederiksberg
Posts: 327
Quote:
Originally Posted by saimo View Post
How does it work, exactly? Something like this, perhaps?
program calls like this:

buf[0] = 0;
GetIconTags(filename,
ICONGETA_IdentifyOnly, TRUE,
ICONGETA_IdentifyBuffer, buf, TAG_DONE);


iconlib forwards it to deficons, which answers back and iconlib returns
boemann is offline  
Old 19 May 2021, 21:25   #232
saimo
Registered User
 
saimo's Avatar
 
Join Date: Aug 2010
Location: Italy
Posts: 787
Quote:
Originally Posted by boemann View Post
program calls like this:

buf[0] = 0;
GetIconTags(filename,
ICONGETA_IdentifyOnly, TRUE,
ICONGETA_IdentifyBuffer, buf, TAG_DONE);


iconlib forwards it to deficons, which answers back and iconlib returns
OK, so that's conceptually the same as my first guess, but (thankfully) done in a more comfortable way.
However, I wonder: why going through icon.library at all? The type of a file is not relative to its icon (if it even exists). Is DefIcons' API public, so that it can be used directly, instead of going through icon.library? Unless there are reasons I'm missing, file type detection code doesn't belong to icon.library.
saimo is offline  
Old 19 May 2021, 22:01   #233
boemann
Camilla, AmigaOS Dev.
 
Join Date: Mar 2020
Location: Frederiksberg
Posts: 327
Quote:
Originally Posted by saimo View Post
OK, so that's conceptually the same as my first guess, but (thankfully) done in a more comfortable way.
However, I wonder: why going through icon.library at all? The type of a file is not relative to its icon (if it even exists). Is DefIcons' API public, so that it can be used directly, instead of going through icon.library? Unless there are reasons I'm missing, file type detection code doesn't belong to icon.library.
I don't think we have made it public no.

Anyway the reason is that this is the way OS4 does it, and if at all possible we try to be api compatible
boemann is offline  
Old 19 May 2021, 22:30   #234
saimo
Registered User
 
saimo's Avatar
 
Join Date: Aug 2010
Location: Italy
Posts: 787
Quote:
Originally Posted by boemann View Post
I don't think we have made it public no.

Anyway the reason is that this is the way OS4 does it, and if at all possible we try to be api compatible
Your choice is fully understandable and commendable.

EDIT: It's a pity that what seems a bad design choice needs to be followed, though. The way I see it (but then again, I don't have the full picture, so I might be missing something here), the engine that recognizes the file types should be external to both DefIcons and icon.library, and DefIcons and any other applications should rely on it, while icon.library shouldn't know anything about file types.
saimo is offline  
Old 19 May 2021, 22:43   #235
boemann
Camilla, AmigaOS Dev.
 
Join Date: Mar 2020
Location: Frederiksberg
Posts: 327
Quote:
Originally Posted by saimo View Post
Your choice is fully understandable and commendable.

EDIT: It's a pity that what seems a bad design choice needs to be followed, though. The way I see it (but then again, I don't have the full picture, so I might be missing something here), the engine that recognizes the file types should be external to both DefIcons and icon.library, and DefIcons and any other applications should rely on it, while icon.library shouldn't know anything about file types.
Deficons is that engine - it is all it does - it provides the type. When icon lib finds a default icon it asks deficons for the type and the loads the corresponding icon from envarc:sys

So it is actually rather logical that only getting the type without actually loading the icon goes through the same code. And it allows us to reimplement deficon which we actually might do in the future. We didn't reimplement it this time around but have a wish to make a somewhat simpler system in the future. Here it comes in handy that the engine is shielded behind icon.library api
boemann is offline  
Old 19 May 2021, 23:34   #236
saimo
Registered User
 
saimo's Avatar
 
Join Date: Aug 2010
Location: Italy
Posts: 787
@boemann

Let me clarify that I'm aswering just for the sake of abstract conversation and, why not, providing food for thought, not because I want to force any change.

Quote:
Originally Posted by boemann View Post
Deficons is that engine - it is all it does - it provides the type. When icon lib finds a default icon it asks deficons for the type and the loads the corresponding icon from envarc:sys
Can you see the mix-up in your own words? The purpose of DefIcons is providing the default icons (hence its name), as you you say in the second part, not providing the file types, as you say in the first part.

DefIcons was born as a tool that identifies the type of files that don't come with icons and assigns them virtual icons according to its findings and to the relevant default icons. It was a great extension to the Workbench and still today does its job nicely. When it was born (and, as far as I know, still today), there was no file type recognition engine, so DefIcons implemented its own (so, congratulations to its author). This worked and still works well, but I'm underlying a design problem: one thing is recognizing the file types, another is assigning iconless files virtual icons. Design-wise, asking a component that assigns virtual icons about the type of files is "misusing" the component itself; it's done only because, due to necessity, the component happens to implement the file recognition logic; going through yet another component that is unrelated to file types makes the design even worse.
More simply, this is what we have today:

Code:
applications <-> icon.library <-> DefIcons <-> files
A theoretical clean design would be:

Code:
applications <-> engine <-> DefIcons
                   |
                   V
                 files
Quote:
So it is actually rather logical that only getting the type without actually loading the icon goes through the same code.
I absolutely agree that it should be possible to get the file type without having to fiddle with icons (that's why I'm saying icon.library shouldn't be involved at all). And, yes, it's logical to go through the same code - see above

Quote:
And it allows us to reimplement deficon which we actually might do in the future. We didn't reimplement it this time around but have a wish to make a somewhat simpler system in the future. Here it comes in handy that the engine is shielded behind icon.library api
I'm glad to hear you're thinking of working on these aspects on the OS. I hope the idea of providing an API external to the icon.library will be taken into consideration, to avoid that icon.library bloats over time to carry out a task that doesn't belong to it (and, yes, I do understand that the current design is due to AmigaOS 4.0).
saimo is offline  
Old 20 May 2021, 00:01   #237
boemann
Camilla, AmigaOS Dev.
 
Join Date: Mar 2020
Location: Frederiksberg
Posts: 327
Quote:
Originally Posted by saimo View Post
@boemann
Can you see the mix-up in your own words? The purpose of DefIcons is providing the default icons (hence its name), as you you say in the second part, not providing the file types, as you say in the first part.
You are misunderstang what deficons does - it does provide the type as a string

It is icon.library that then opens the corresponding icon.

Yes the name deficons might suggest it returns the actual icon but it doesn't

it does however know what icon files are available, and if the type doesn't have an icon it returns the name of the parent type (recursively), but it is still only a type name
boemann is offline  
Old 20 May 2021, 00:33   #238
PeterK
Registered User
 
Join Date: Apr 2005
Location: digital hell, Germany, after 1984, but worse
Posts: 3,365
Quote:
Originally Posted by boemann View Post
Deficons is that engine - it is all it does - it provides the type. When icon lib finds a default icon it asks deficons for the type and the loads the corresponding icon from envarc:sys
There is a "GlobalIdentifyHook" for icon.library as defined in the autodocs under IconControlA(). In the past this hook function was called by icon.library whenever it could not find an icon for a file and a tag "ICONGETA_FailIfUnavailable"=FALSE was supplied by the calling task.

On the other side, this hook is used by DefIcons and Eastern, which are trying to identify the file and then return a ready to use DiskObject structure to icon.library. No, - at this point - icon.library has not to load an icon from ENV:sys anymore.

Usually, DefIcons identifies the type of a file and makes another call to icon.library for the corresponding icon in Envarc:sys already before it returns the result to the hook.

Eastern tries to identify pictures only, generates thumbnail images for new empty DiskObjects, and sends both for assembly to icon.library also before it returns the picture preview icons back to the hook.

The new "IdentifyBuffer" and "IdentifyOnly" tags can be forwarded now by icon.library to the hook, no matter whether the file already has an icon or not. Icon.library never returns any strings. The "IdentifyBuffer" for the string is created by the calling task, forwarded to the hook and filled by DefIcons.

But unlike the new DefIcons tool the old Eastern has no support for these tags yet. Eastern must examine the file first to identify pictures and supply preview icons instead of deficons. Thus, it only passes the hook data to DefIcons for other files than pictures, and it won't forward these two new tags otherwise. (Maybe, I will try to write a fix for Eastern ?)

Edit: I didn't read the posts #237 and #238 before starting to write my comment. Yes, I also think that passing the file type identification through icon.library is not the optimal solution, but I'm no OS developer, don't want to criticize or decide that. I'm just trying to support these new features.

I don't own OS 3.2 yet, but I've written a small test program to check this new file type identification:
Attached Files
File Type: zip FileType.zip (1.3 KB, 132 views)

Last edited by PeterK; 20 May 2021 at 01:21.
PeterK is offline  
Old 20 May 2021, 04:05   #239
khayoz
Registered User
 
Join Date: Aug 2017
Location: Stockholm Sweden
Posts: 23
Let's pirate copy the f**k out of this release and send an envelope(snailmail)
with money to Thomas and Olaf(so they can split out the money to all the devs!)
instead of feeding more ca$h into court bills!

Don't forget where the money's at! Right here AMIGA community!
khayoz is offline  
Old 20 May 2021, 08:12   #240
BippyM
Global Moderator
 
BippyM's Avatar
 
Join Date: Nov 2001
Location: Derby, UK
Age: 48
Posts: 9,355
Don't be so ridiculous.



Quote:
Originally Posted by khayoz View Post
Let's pirate copy the f**k out of this release and send an envelope(snailmail)
with money to Thomas and Olaf(so they can split out the money to all the devs!)
instead of feeding more ca$h into court bills!

Don't forget where the money's at! Right here AMIGA community!
BippyM is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Hively Tracker by Iris and Up Rough released for AmigaOS 4.0 spoUP News 14 12 June 2014 19:00
KryoFlux FREE for AmigaOS Classic released mr.vince News 32 23 March 2014 19:59
AmigaOS 3.9 PoLoMoTo support.WinUAE 8 27 August 2011 18:06
AmigaOS koncool request.Apps 6 04 June 2003 17:45
Amigaos 4 Released!!!! th4t1guy Amiga scene 13 03 April 2003 09:52

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 14:36.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.16234 seconds with 16 queries