r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3-OLD1]

Gregg
28-May-2007
[2822]
I think this chat also applies to the general interface to apps, 
and how you expose commands. e.g. how you would programmatically 
control an app; think ARexx.
BrianH
28-May-2007
[2823x2]
It wouldn't work on my cell phone though - no mouse, no touchscreen, 
just a keyboard, action keys and a navigational pad.
By rolling your own vs platform, I mean on the GUI toolkit level. 
We shouldn't require individual developers to implement their own 
menus, but we should allow it if they want to. That's why you would 
seperate the specification of the menus from their implementation.
Gregg
28-May-2007
[2825]
At one point I started working on a generic app framework, and may 
revive it at some point.. On the menuing front, the idea is that 
an app has various "actions" you can trigger, and which may be represented 
on a menu. e.g. 


browse-hq [id: 'browse-hq text: "REBOL" action: [browse http://www.rebol.com]]

run-core  [id: 'run-core  text: "Core"  action: [call-str %/c/rebol/core/rebol]]

run-view  [id: 'run-view  text: "View"  action: [call-str %/c/rebol/view/rebol-link]]
run-shell [id: 'run-shell text: "Shell" action: [call "cmd.exe"]]

quit      [id: 'quit      text: "Quit"  action: [quit]  hot-key: 
#"^q"]


Then creating a menu is basically just listing the actions that should 
be on it.

run-menu-v [
    browse-hq
    -
    run-core
    run-view
    -
    run-shell
    -
    quit
]


Commands (actions) could be loaded in contexts, and you can reference 
them specifically if you want.

run-menu-h [
    [horz]

    browse-hq | run-core run-view | test/run-shell | test-2/nested-obj/quit
]
BrianH
28-May-2007
[2826]
A menu dialect is more the REBOL way, anyways.
Chris
28-May-2007
[2827]
Again, what I propose is a way to manage system menus as a core part 
of View.  Effectively it'd be view/menu layout [...] [... menu spec 
...].  On Windows, this would attach a OS menu bar to your window 
(as optional as having a window title bar).  On OS X, it would enable 
functionality on the OS menu bar specific to the viewed window.  
This way, you have a familiar, cross-platform though native-integrated 
menu system.
BrianH
28-May-2007
[2828]
If you are going for lowest common denominator for your dialect, 
look to OS X first. All of the other platforms can do more than that.
Chris
28-May-2007
[2829]
Yep.  And if something more complex is required, roll-your-own.
BrianH
28-May-2007
[2830]
We're talking about 2 different things here. The dialect would be 
the same cross-platform - the implementations would be different. 
You could roll your own implementation of the standard dialect. You 
could even ignore the parts of the dialect that have no equivalent 
on your platform, so lowest common denominator can be set pretty 
high, particularly if some features are declared to be optional. 
You could even embrace-and-extend the standard dialect with your 
own extras in your implementation.


Or you could go the Office 2007 route and change the paradigm - new 
dialect.
Chris
28-May-2007
[2831]
Of course -- you can reinterpret any dialect in Rebol.  But priority 
would be on a dialect that works with native menus.
BrianH
28-May-2007
[2832x2]
I'm more thinking of a way to register a standard dialect (I believe 
R3 has such a thing - implied by Carl's slides). Then let the platform 
implementor register the default dialect implementation, and let 
the developer register their own alternative for their app if they 
like.
Or the developer could ignore the menus altogether and go with something 
completely different, not menus at all.
Chris
28-May-2007
[2834]
Perhaps, but the shortest route should be to system menus.
BrianH
28-May-2007
[2835]
On platforms with decent system menus, yes. That should be deicded 
on a per-platform basis. This dialect would be for specifying what 
to put into the menus, not how to do it. The dialect implementation 
would be doing the work.
Chris
28-May-2007
[2836x2]
Don't get me wrong, I'm all for choice.  But the shortest route should 
bring you to the most intuitive features first.  Imagine downloading 
Rebol and in a one liner create a UI that utilises system menus/requesters.
I can type -- request-file -- on any fresh View installation and 
have a fully-featured file requester that a user of that system would 
be familiar with.  I want the same with menus.
BrianH
28-May-2007
[2838x2]
That's nice, unless the system menus/requestors are no good at all 
(like on Unix clones or Windows until recently), or if the standard 
is not really standardized (like on Unix clones or Windows).
Unix clone platforms have many UI platforms. The Windows platform 
has changed so much that you might as well consider different versions 
to be different platforms. Some other platforms aren't that well 
developed at all - many don't even have windowing managers unless 
you roll your own.
Chris
28-May-2007
[2840]
But for write-once, run-anywhere, I don't really want to have to 
consider that.
BrianH
28-May-2007
[2841]
No, you are the developer. The platform implementor has to consider 
this though.
Chris
28-May-2007
[2842]
That's RT's problem, not mine.  (figuratively)
BrianH
28-May-2007
[2843x2]
Well, once R3 comes out, the community will be helping with the platform 
implementation - RT will be focusing on the core of REBOL, and that 
has no UI at all, just an API. Remember which group you are asking 
this question in.
I'm more in the platform implementor camp. I rarely need to write 
UIs, but I need to write UI toolkits on occasion.
Chris
28-May-2007
[2845]
I understand that, and that's a good thing.  But try advocating the 
Rebol language with these nuances.  "It's write-once, run-anywhere, 
except that feature, you're going to have to build that yourself 
on this Linux distro"
BrianH
28-May-2007
[2846x2]
No, I'm saying that for end developers REBOL will be write-once run-everywhere-applicable, 
but to make that happen the platform implementors will need to do 
a lot of planning and work. If you, as an end developer, still want 
to roll your own menus or have none, then the platform implementors 
need to take that into account as well and not hard-code their menu 
implementations.
And if you want to run some Linux distro that is not running Gnome 
or KDE, or even X, then you may have to come to terms with the fact 
that Linux doesn't have standard system menus, or any UI at all. 
All that is provided by the toolkits, and if you are not running 
one of the toolkits that REBOL has been ported to already, then you 
will either need to switch platforms or become a platform implementor.
Pekr
28-May-2007
[2848]
You don't get me to system menu, never. That will be absolutly ugly. 
I would agree to that only in a sense of REBOL-as-a-tool menu, kind 
of menu as REBOL console has. Can you imagine general VID UI design, 
or even RebGUI design (which is much more OS-look friendly), to have 
system native menu? That would destroy look of an app imo. And as 
I said - many new apps go for more free-form UI ....
BrianH
28-May-2007
[2849]
And that doesn't even take my cell phone or bootable REBOL into account. 
I will run REBOL on my cell phone if I have to port it myself.
Chris
28-May-2007
[2850]
Petr, yes I can imagine it.  A system menu would be more appealing 
to me eg. on a RebGUI app than a RebGUI custom menu.
BrianH
28-May-2007
[2851]
See, Pekr's in the roll-your-own camp. I'm in the make-the-ui-fit-the-platform 
camp, even if that means changing the paradigm altogether.
Pekr
28-May-2007
[2852]
those of you who want OS native look, go and link Core to OS, easy 
as that imo. REBOL should have its own style, cross platform. IMO 
slight difference to OS is exagerrated, if substystem works in compatible 
enough way - common shortcuts, etc. And those who say otherwise, 
are exagerrating too. And if MacOS-X ppl are refusive to slightly 
different apps, then those are intolerant freaks.
BrianH
28-May-2007
[2853]
I will run REBOL on my cell phone if I have to port it myself.
 - that should be my sig :)
Chris
28-May-2007
[2854x3]
Brian, I'm not sure how many View apps would work on a cell phone 
anyhow.  View is so literal that I've had problems running apps on 
800x600 screens because the author has a bigger screen.
Petr, it isn't about OS X users being intolerant, rather it is about 
production quality.  Most roll-your-owns are inferior to the OS default.
And that reflects on the impression an app makes.
BrianH
28-May-2007
[2857]
Differences in operating systems may not be much, but differences 
in modes of interaction between different platforms can be immense. 
It would be inappropriate to run View at all on my cell phone - no 
mouse, no touch screen. But you can still do UIs, just different.
Chris
28-May-2007
[2858]
Then why are you suggesting that my Views apps be limited by that?
Pekr
28-May-2007
[2859]
Chris - OK, but where do we end? Mozilla uses XUL, IIRC Firefox linked 
to native widgets. Then let's scrap View - what is it good for? Just 
use Core, link to OS, fair enough - no custome styles? Why those, 
if target OS does not provide them? What comes next? Someone shooting 
fields looks ugly too? Look at html forms - 1 think line fields are 
modern. Non shadowed. We will end with hybrid.
Chris
28-May-2007
[2860]
Regardless, I've made an argument in the past that View be less literal, 
and open to interpretation by different media.  Hence a 'CSS approach'.
Pekr
28-May-2007
[2861]
1 pixel thin line ...
BrianH
28-May-2007
[2862]
Roll-your-owns are often inferior to the OS default on recent OS 
X, but were not necessarily so on earlier versions of OS X before 
it was polished. Some developers are still better than Apple in that 
respect. BTW, the worst of the roll-your-own developers on OS X nowadays 
is Apple - they don't follow their own UI conventions anymore.
Pekr
28-May-2007
[2863]
well, I remember that - that is why I asked the group what did you 
mean by that. By then - it is even less OS compatible way and even 
more free-form way ... it is not just skinning ...
Chris
28-May-2007
[2864]
I think there does have to be a balance.  Ultimately, what is more 
important?  The compositing engine or the language?
BrianH
28-May-2007
[2865]
On other platforms the system standards are often bad, useless or 
missing. Windows and Linux come to mind.
Pekr
28-May-2007
[2866x2]
Adobe Lightroom - where is your OS native look? :-)
Look and compare Windows XP to Windows Vista - have you looked e.g. 
at file requestor? It is FUNDAMENTALLY diffeent, more like different 
OS to different OS ....
Chris
28-May-2007
[2868]
Petr, I agree -- OS native isn't everything.
Pekr
28-May-2007
[2869]
Chris, please, what was your idea about layout being one-way definition, 
and that it is different to html plus css? I can't remember it ...
BrianH
28-May-2007
[2870]
That is why I said run-everywhere-applicable. I don't want View developers 
to be limited by my cell phone.
Chris
28-May-2007
[2871]
But, it is better than most roll-your-owns.  Do you have Adobe's 
UI designers to hand in your projects?