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

World: r3wp

[!REBOL3-OLD1]

Pekr
28-May-2007
[2796]
so - would anyone else find the ability to get back to layout usable? 
I don't remember, what exactly Chris had in mind with that ...
Henrik
28-May-2007
[2797]
well, I wouldn't mind seeing a way to store UI skins centrally, so 
there would be a way for the user to customize it, like you can with 
MUI on a per application basis.
Gregg
28-May-2007
[2798]
Between Cyphre, Geomol, and Christian, we have three solid menuing 
systems to analyze as prototypes. If someone wants to write an interface 
to native OS menus, that can probably be written as an extension 
to R3. The only critical thing would seem to be the ability to attach 
an OS menu to a REBOL window.
Anton
28-May-2007
[2799x2]
Four
do http://anton.wildit.net.au/rebol/gui/demo-menu.r
Christian's menu-system-demo is showing some interesting memory-eating 
behaviour on my system. I'll try to isolate that tomorrow.
Chris
28-May-2007
[2801]
Petr, just to be clear, system menus are OS neutral.  Every platform 
that View runs on has a menu system that is essentially the same. 
 The mode of access may be different platform to platform, but how 
different in function is a Windows menu to an OS X menu to an Amiga 
menu?  All I would like is a standard way to utilise them.
Gregg
28-May-2007
[2802]
Sorry, forgot yours Anton; so much chat here lately.
BrianH
28-May-2007
[2803]
Let's specify menus with a dialect that does not assume where they 
will be put, and then implement that dialect in a platform-specific 
way, with a cross-platform REBOL native fallback.
Gregg
28-May-2007
[2804]
Agreed Brian, though I would probably make the choice explicit, with 
REBOL native style being the default.
Chris
28-May-2007
[2805x2]
This seems to me a similar issue to using native file requesters. 
 Why reinvent a complex pattern in a way that is substandard and 
unfamiliar to users?
(and 'substandard' is not meant as offence to those that have developed 
such styles in View, but when you replicate a WinXP menu, then deploy 
on OS X, it looks substandard)
BrianH
28-May-2007
[2807]
I would only have the REBOL native style be the default on platforms 
that don't have a decent native style. That means platform-by-default 
on OS X but perhaps REBOL-by-default on Windows - there's a reason 
that MS uses custom controls on Windows. Let the platform implementor 
decide the default.
Chris
28-May-2007
[2808]
It's not just View apps that suffer in this way -- Inkscape is a 
formiddable application that looks at home on Linux, looks patchy 
on Windows and looks like an emulator window on OS X.
Gregg
28-May-2007
[2809x2]
Because trying to do it in a cross-platform way can be very complicated 
and force you into a lowest common denominator scenario. The question 
for me comes back to whether you're trying to emulate a native OS 
look in general or not. If you are, then the menus should match; 
if not, the menus won't match your app. And given that every web 
site seems to have a different nav system and menu look these days--and 
people seem OK with that, even if it's not good UI, and doesn't leverage 
existing knowledge--it's not a problem.
If you create a slick OSX look for your app, do you want a W2K menu 
attached to it?
Chris
28-May-2007
[2811x2]
How low can the lowest common denominator for menu systems be?
Ok, I don't think we have the same model in mind.
Gregg
28-May-2007
[2813]
Text description and a hot-key?
Chris
28-May-2007
[2814x2]
Submenus?  On-off?
Breaks?  Which applications exploit more than these and how much 
of a benefit does that bring?
BrianH
28-May-2007
[2816x2]
I actually like the Office 2007 model: No menus. At least on platforms 
that don't have menus on the top of the screen - I haven't thought 
about how to integrate this model into the OS X UI.
But then I prefer a mouse to a keyboard (hand injury).
Chris
28-May-2007
[2818]
Office 2007 does have some rudimentary menus.  Just not a menu strip.
BrianH
28-May-2007
[2819]
Still, if you are going to roll your own, why not go all out?
Gregg
28-May-2007
[2820]
Yes, Brian, I agree; or at least plan to go all out, even if you 
keep it simple to start with.
Chris
28-May-2007
[2821]
I'm in the camp against rolling your own :)
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"