Click Here
home features news forums classifieds faqs links search
6155 members 
Amiga Q&A /  Free for All /  Emulation /  Gaming / (Latest Posts)
Login

Nickname

Password

Lost Password?

Don't have an account yet?
Register now!

Support Amigaworld.net
Your support is needed and is appreciated as Amigaworld.net is primarily dependent upon the support of its users.
Donate

Menu
Main sections
» Home
» Features
» News
» Forums
» Classifieds
» Links
» Downloads
Extras
» OS4 Zone
» IRC Network
» AmigaWorld Radio
» Newsfeed
» Top Members
» Amiga Dealers
Information
» About Us
» FAQs
» Advertise
» Polls
» Terms of Service
» Search

IRC Channel
Server: irc.amigaworld.net
Ports: 1024,5555, 6665-6669
SSL port: 6697
Channel: #Amigaworld
Channel Policy and Guidelines

Who's Online
22 crawler(s) on-line.
 95 guest(s) on-line.
 0 member(s) on-line.



You are an anonymous user.
Register Now!

/  Forum Index
   /  Alt Amiga OS
      /  NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Register To Post

Goto page ( 1 | 2 | 3 | 4 | 5 Next Page )
PosterThread
newbee 
NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 0:14:55
#1 ]
Regular Member
Joined: 18-Sep-2003
Posts: 175
From: Adelaide, Australia

Hi team

I though I would start a seperate thread focusing specifically on chatter about the new NTUI framework
that emerged from this thread Amiga(oid)Community / Suggestion - Common API Dev team as it is making the original thread hard to follow but is still really interesting in it's own right.

Regards
Darren

 Status: Offline
Profile     Report this post  
newbee 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 0:57:44
#2 ]
Regular Member
Joined: 18-Sep-2003
Posts: 175
From: Adelaide, Australia

@team

I cannot find anything to link for NTUI, the nearest I've come is this http://www.hd-rec.de/A/ntui.html

Hopefully more details will become available soon

darren

 Status: Offline
Profile     Report this post  
Hans 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 1:14:33
#3 ]
Elite Member
Joined: 27-Dec-2003
Posts: 5134
From: New Zealand

@newbee

There's nothing more substantial about NTUI? This is one toolkit that I hadn't heard of until now.

Hans

_________________
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work

 Status: Offline
Profile     Report this post  
newbee 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 1:19:20
#4 ]
Regular Member
Joined: 18-Sep-2003
Posts: 175
From: Adelaide, Australia

@Hans

There was a lot of discussion and some code samples in the other thread which I have not duplicated here, perhaps heading back to that thread for a read may be worthwhile.

But, no... unfortunately no more information appears to be available {yet}.

Darren

 Status: Offline
Profile     Report this post  
BigBentheAussie 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 4:57:42
#5 ]
Super Member
Joined: 28-Oct-2003
Posts: 1690
From: Melbourne, Australia

@newbee

Well.... It doesn't seem as though Wanderer who is writing HDRec is ready to release anything.
HDRec looks great and the author is familiar with modern software architectures, so the API library might look like it is from this century.
The thread this was spawned from was about creating a cross-platform API supporting all Amiga&alike platforms.

edit: Later in thread the discussion mentioned Linux, Windows, Mac etc. support. I am for the creation of an API that can support platforms outside of Amiga&alike platforms as well. Que common rant.

[rant name="Creating a Viable Software Market for Amiga Developers" mode="ON"]
API Compatibility with non-Amiga systems would go a long way in allowing commercial Amiga software developers access to a larger and therefore more viable market, increasing the likely-hood of a return on their investment. It may even attract developers who have never considered Amiga before, but would be interested in cross-platform development anyway.
[/rant]

Last edited by BigBentheAussie on 04-Mar-2010 at 05:28 AM.
Last edited by BigBentheAussie on 04-Mar-2010 at 05:19 AM.

_________________
Leo Nigro, CTO Commodore USA, LLC
Opinions expressed are my own and not those of C= USA.
Commodore/AMIGA "Beautiful, High-Performance, Home Computers for Creativity and Entertainment."

 Status: Offline
Profile     Report this post  
BigBentheAussie 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 5:23:08
#6 ]
Super Member
Joined: 28-Oct-2003
Posts: 1690
From: Melbourne, Australia

Info provided by Wanderer that I have lifted to aid the discussion in this thread. I hope no-one minds.

Quote:

Now here is an updated chart.
NTUI is not read for use yet. So there is no docu and no source.
I have written the basic engine and most of the widgets, still doing finishing touches on TextEditor, ListView an Menu, as well as the Skin functionality. Currently all widgets are rendered with lines, boxes and dots. This is the default look if there is no skin or the resources to low. So NTUI can run just if the library is there, without additional files, assigns etc.

* fix layout means pixel accurate positioning of GUI elements, which might be desired for skinned GUIs like WinAMP or games.
* auto layout means, you describe only relations betweens widgets and the acutal pixel-position is calculated on-the-fly. This makes re-sizable GUIs much easier and ensures a consistant look.
* added "sync refresh", as often criticised in MUI. This means the refresh happens not instantly when you hit the button, but when the application is polling the message loop, which might be delayed because the app is doing some lengthy calculations.


Platform
---------------------------------------------------------------------
Toolkit GTool NTUI TUI RAOS3 RAOS4 MUI3 MUI4 Zune Feelin
OS3.x * * * * - * - - *
AfAOS * * * * - * - * *
OS4.x * * * * * * - - *
MOS * * * * - * * - *
AROS * - - - - - - * *

Features
---------------------------------------------------------------------
FontSensitive - * * * * * * * *
FontSensImages - * - - - - - - -
ARGB Images - * * - * - * * *
8Bit Support * * * * * * * - -
24bit Support - * * ? * - * * *
AutoLayout - * * ? ? * * * *
FixLayout * * - ? ? - - - ?
AREXX - * - ? ? * * * ?
ScreenNotify - * - ? ? * * ? ?
AppIcon - * - ? ? * * * ?
BubbleHelp - * * ? ? * * * ?
MoverFX - * * ? ? - - - ?
FlickerFree - * - - ? - ? - ?
XML - * - - - - - - *
UserThemes - * - - ? * * * *
Skinnable - * - - * - * * ?
TextEditor - * * * * * * * ?
Async Refresh * * ~ * * - - - ?

Status
---------------------------------------------------------------------
Developed - * - - * - * * -
Available * - * * * * * * *
OpenSource - * * - - - - * *
Portability low hi low ? ? mid mid mid ?

_________________
Leo Nigro, CTO Commodore USA, LLC
Opinions expressed are my own and not those of C= USA.
Commodore/AMIGA "Beautiful, High-Performance, Home Computers for Creativity and Entertainment."

 Status: Offline
Profile     Report this post  
BigBentheAussie 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 5:27:15
#7 ]
Super Member
Joined: 28-Oct-2003
Posts: 1690
From: Melbourne, Australia

Part of the discussion in the last thread was about library version compatibility problems with various current APIs.
Can this hell be avoided somehow? If the library is small enough could we not consider static compilation or single library files?

_________________
Leo Nigro, CTO Commodore USA, LLC
Opinions expressed are my own and not those of C= USA.
Commodore/AMIGA "Beautiful, High-Performance, Home Computers for Creativity and Entertainment."

 Status: Offline
Profile     Report this post  
BigBentheAussie 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 5:32:55
#8 ]
Super Member
Joined: 28-Oct-2003
Posts: 1690
From: Melbourne, Australia

A pertinent post from Wanderer.
Quote:

Hard to say. Whatever I would post here, people will say "Toolkit XYZ can do this too". But NTUI tries to combine the "good" features while being simple, foolproof and fast for developement. I have experience with toolkits from other platforms and try get the best ideas across.

There might also some unique features like on-the-fly image re-scaling, which is a very nice feature if you use a lot of decoration images. In NTUI, you tell the size of an image in logic sizes, e.g. "native" (image as is 1:1) or "inline" (font size) or "button" (size suitable for a button). So even if you use a very small or big font, images (can be AISS, Icons or whatever) appear in adequate size.
The algorithm is sepcialized on GUI elements, so they look almost as if painted for this resolution.



Another really cool thing is the "9-patch" format of stretchable images from Android. This enables to do really high quality and scalable skins very easily.

_________________
Leo Nigro, CTO Commodore USA, LLC
Opinions expressed are my own and not those of C= USA.
Commodore/AMIGA "Beautiful, High-Performance, Home Computers for Creativity and Entertainment."

 Status: Offline
Profile     Report this post  
Samurai_Crow 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 16:38:20
#9 ]
Elite Member
Joined: 18-Jan-2003
Posts: 2320
From: Minnesota, USA

@Team

What license will NTUI be under? This may have been discussed before, but I think it is relevant to the present discussion.

 Status: Offline
Profile     Report this post  
Wanderer 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 17:25:02
#10 ]
Cult Member
Joined: 16-Aug-2008
Posts: 654
From: Germany

@Samurai_Crow

I dont really care about licenses if the software is free and open.

People should be allowed to do anything with it.

The screenshot above shows only the scaling algorithm.

Here are some more WIP screenshots (real, working GUIs, no fakes):
(note how well the scaling works, almost none of the images have their "native" size).
This is the build in widget rendering. Skins are being added at the moment making the look completely changable.












_________________
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes and many more...
Homepage: http://www.hd-rec.de

 Status: Offline
Profile     Report this post  
Samurai_Crow 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 19:00:36
#11 ]
Elite Member
Joined: 18-Jan-2003
Posts: 2320
From: Minnesota, USA

@Wanderer

It sounds like you're leaning toward the ZLib/LibPNG License. Pretty much anything goes as long as you get credit for writing the original.

 Status: Offline
Profile     Report this post  
ChrisH 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 19:51:43
#12 ]
Elite Member
Joined: 30-Jan-2005
Posts: 6679
From: Unknown

@Wanderer
So, is NTUI totally cross-platform? (I mean between Amiga-like OSes. I guess a Windows/Linux port would be too much to hope for.)
EDIT: I should read the thread more carefully. Looks like it supports all Amigas except AROS (why not AROS?!?). Would have been awesome if it supported Windows/etc, as then it'd be the perfect fit for PortablE.
EDIT 2: OK, read the parent thread. Looks like AROS is not supported because NTUI is currently written in AmiBlitz for 'prototyping' purposes. At some point it'll be converted to C, and thus should support AROS.

Looks very nice anyway, now if we just knew how it worked... (Wonder if we'll get any threads saying "NTUI is vapour" because of that!)

Last edited by ChrisH on 04-Mar-2010 at 09:04 PM.
Last edited by ChrisH on 04-Mar-2010 at 07:55 PM.

_________________

 Status: Offline
Profile     Report this post  
Wanderer 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 21:22:23
#13 ]
Cult Member
Joined: 16-Aug-2008
Posts: 654
From: Germany

@ChrisH

NTUI is cross platform in that sense that it does not use a lot of functionality from the OS and the API does not expose OS specific things.
In case of MOS/OS4/AROS/OS3/AfA there is no need to change anything. But of course, if you would port it to Windows, the functions for opening a window or drawing a colored line must be ported, but should be pretty straigt forward.
The NTUI API itself hides the OS, similiar to OpenGL or SDL. One of the very view structures that are exposed is the RastPort, as this is mandatory for CustomView.

E.g.

RastPort *rp = ntui_ObtainObjectRastPort(obj);
...
ntui_ReleaseObjectRastPort(obj);


However, this would directly correspond to a DrawContext under Windows.

I see a major benefit to other GUI Toolkits that it supports PNGs with alpha channel on all platforms and all screen depth.
So NTUI can work unchanged from 4 Color OCS screen up to 24bit.

The screenshots that I posted here are the build in look, which one would use on a Classic with 8bit or lower screen. OS4/MOS/AROS/WinUAE users would surly want to have skins. However, regarding this is the really "nacked" look its already ok.
Look at MUI3.8 if you have not pimped it up or on Gadtools. They look way worse.







_________________
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes and many more...
Homepage: http://www.hd-rec.de

 Status: Offline
Profile     Report this post  
steril606 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 21:43:05
#14 ]
Regular Member
Joined: 11-Oct-2008
Posts: 462
From: Munich/Bavaria/Germany

@Wanderer

Wow, quite impressive what you have cooked up, my friend...

I noticed an "unamigaish" menubar on top of the window, what's up with that?

Any idea, when NTUI will get released?

 Status: Offline
Profile     Report this post  
itix 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 4-Mar-2010 23:57:16
#15 ]
Elite Member
Joined: 22-Dec-2004
Posts: 3398
From: Freedom world

@Wanderer

Quote:

The NTUI API itself hides the OS, similiar to OpenGL or SDL. One of the very view structures that are exposed is the RastPort, as this is mandatory for CustomView.


Hmm... so it is not possible take an existing widget and modify it? And if one creates a custom widget is it possible change its parameters using ntui_SetAttrs() call?

_________________
Amiga Developer
Amiga 500, Efika, Mac Mini and PowerBook

 Status: Offline
Profile     Report this post  
vidarh 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 5-Mar-2010 10:05:06
#16 ]
Cult Member
Joined: 4-Jan-2010
Posts: 580
From: London, UK (ex-pat; originally from Norway)

@BigBentheAussie

Quote:
edit: Later in thread the discussion mentioned Linux, Windows, Mac etc. support. I am for the creation of an API that can support platforms outside of Amiga&alike platforms as well. Que common rant.


For the time being I'll be sticking to Linux on my laptop - AROS is not mature enough yet for my usage -, so depending on how much work it might be I might be tempted to look at a Linux port once Wanderer releases the source..

The easiest would probably be a port to Cairo, as Cairo is used quite extensively for GUI rendering on Linux these days and is quite flexible. It also has the benefit that it also works on WIndows and OS X, and has experimental support for BeOS, OS/2 and a few others.

Makes me wonder what the overhead would be of using Cairo as the rendering API for custom widgets as well - then user code could be a lot more portable.

_________________
Wiki for new/returning Amiga users - Projects: ACE basic compiler / FrexxEd / Git

 Status: Offline
Profile     Report this post  
Wanderer 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 5-Mar-2010 10:25:10
#17 ]
Cult Member
Joined: 16-Aug-2008
Posts: 654
From: Germany

@itix

> Hmm... so it is not possible take an existing widget and modify it?
Why one would possibly want to modify an existing widget?
What do you mean by modify?

Of course you can change the look and some aspects of behaviour by SetAttr/GetAttr.

About custom widgets:

There are two possiblities to do a custom widget:

1. You write your own widget. This would be an Amiga Shared Library implementing various functions such as
ntui_Init();
ntui_DeInit();
ntui_Layout();
ntui_UpdateMinSize();
ntui_HandleEvent();
ntui_Draw();
ntui_GetAttr();
ntui_SetAttr();

I don't recommend this for highly specialized widgets such as the HD-Rec Notator.
This should only be used for widgets that are re-usable for other developers too. It is also more complicated since you need to implement all those functions and make a shared library.

2. You use a CustomView.
A CustomView is a NTUI Widget that is not doing anything apart from being there and sending MouseMove/Click/KeyPress/IntuiTick/Refresh messages if you operate it.
So you actually implement whats going on in the widget in your main application context. This is very helpful because those widget usually need to access a lot of data from the application. Eg. the HD-Rec notator must read the MIDI data from HD-Rec and display/manipulate it. This would not be easy if done in a seperate module.


_________________
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes and many more...
Homepage: http://www.hd-rec.de

 Status: Offline
Profile     Report this post  
Wanderer 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 5-Mar-2010 10:34:33
#18 ]
Cult Member
Joined: 16-Aug-2008
Posts: 654
From: Germany

@vidarh

NTUI is not demanding. If you can draw lines, boxes and pixels that is enough.
AlphaBlitting and image stretching is done within NTUI code. To get images to the screen, something like Read/WritePixelArray is needed.

What else needs to be ported is the Code where the Events are fetched from the OS.
On AmigaOS there are three functions that would be replaced entirly by Windows/Linux/MacOS specific code:

ntui_AmigaCollectIDCMPEvents();
ntui_AmigaCollectScreenNotifyEvents();
ntui_AmigaCollectAREXXEvents();
ntui_AmigaCollectAppEvents();


Those "Collect" functions produce NTUI Events. After they are called, everything is OS independent.

You would need to write something like:


ntui_LinuxCollectWindowEvents();
...

Depends what Events are possibly there on Linux.

Plus of course, the open/closing of windows and OS specific things like making an icon for the Workbench (Amiga) or Trayicon (Windows).

_________________
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes and many more...
Homepage: http://www.hd-rec.de

 Status: Offline
Profile     Report this post  
Wanderer 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 5-Mar-2010 10:37:23
#19 ]
Cult Member
Joined: 16-Aug-2008
Posts: 654
From: Germany

> I noticed an "unamigaish" menubar on top of the window, what's up with that?
NTUI has a widget called MenuItem. You can place it wherever you want.
it canbe used for Pop-Up Menus, but also for Window Menus.
If you place it into a TitleMenuGroup, it appears on the screentitle OR as the first line in a window, depending on the User Preferences.
This is actually something that needs to be considered when porting other GUI Toolkits too. Do you want to have an App under AmigaOS that just looks like the same App under Windows? Or do you want to preserve the Amiga Look and Feel?

Just because Windows/Linux/MacOS/AmigaOS share the same idea of having windows doesn't mean they have the same features when you look at details. Windows Users would surly be confused if a menu pops up at the screen title (which doesnt even exist).

Last edited by Wanderer on 05-Mar-2010 at 10:38 AM.

_________________
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes and many more...
Homepage: http://www.hd-rec.de

 Status: Offline
Profile     Report this post  
itix 
Re: NTUI Development (from Amiga(oid)Community / Suggestion - Common API Dev team thread)
Posted on 5-Mar-2010 11:15:26
#20 ]
Elite Member
Joined: 22-Dec-2004
Posts: 3398
From: Freedom world

@Wanderer

Quote:

Why one would possibly want to modify an existing widget?
What do you mean by modify?


To add new features to existing widgets. For example in MUI a Text.mui class supports only 8bit encodings. When I needed UTF-8 support I subclassed Text.mui class and overloaded MUIM_Draw method to print UTF-8 using ttengine.library. Now I have got two widgets, the original Text.mui and my modified one, and I dont have to change rest of my code to support new widget.

Another example is slider widget. I needed custom background to display metrics for a slider. So I overloaded background rendering method to draw my own background on top of the original background.

Subclassing is neat even when it is just Basic Object Oriented Programming System for Intuition.

Quote:

A CustomView is a NTUI Widget that is not doing anything apart from being there and sending MouseMove/Click/KeyPress/IntuiTick/Refresh messages if you operate it.


What if I need other IDCMP events like IDCMP_DISKINSERTED? Rarely needed but needed for file managers. And what format KeyPress is using? In MorphOS 2 it is possible get Unicode from IntuiMessages. Rarely needed but MorphOS port of Netsurf is using it. In Windows everything is in UTF-16 of course... lot of minor details to take into account.

_________________
Amiga Developer
Amiga 500, Efika, Mac Mini and PowerBook

 Status: Offline
Profile     Report this post  
Goto page ( 1 | 2 | 3 | 4 | 5 Next Page )

[ home ][ about us ][ privacy ] [ forums ][ classifieds ] [ links ][ news archive ] [ link to us ][ user account ]
Copyright (C) 2000 - 2019 Amigaworld.net.
Amigaworld.net was originally founded by David Doyle