Alex,
I don't remember seeing any "technical arguments" on why it should be
removed, only that you think it's "ugly". In fact, it seems like you like
the design of it because it abstracts and objectifies the low-level calls
and routes them to the required functions. IMO, abstraction is never a bad
thing.
Another reason why I don't think the code should be deleted is because it
provides a very good starting point for someone who wants to work on it. If
it were deleted and 6 months from now somebody wanted to do a GUI and looked
at the code and didn't see any of the GUI code they might just start all
over, not knowing that something existed before.
Casper, about your minimalism - ReactOS is built on
stubbed-out/unimplemented functions. They exist for a good reason - to
provide a starting point for someone who has time to and wants to do the
work to implement them. If obtaining minimalism was really the ultimate goal
here then we have lots of deleting to do. But that would be reckless.
I admit that the code isn't used currently. And I'm not opposed to
#ifdef'ing it out and not compiling it in. But I don't think we should
delete it and make everything call the TUI stuff directly. Would this be an
acceptable compromise for you?
-Brian
-----Original Message-----
From: ros-dev-bounces(a)reactos.org [mailto:ros-dev-bounces@reactos.org] On
Behalf Of Alex Ionescu
Sent: Thursday, November 17, 2005 12:38 AM
To: ReactOS Development List
Subject: Re: [ros-dev] Freeldr Question
Hi Brian,
That's exactly what I'm saying. Removing GUI Mode. It's never existed,
and I doubt it will ever exist. Of course the Mach "Vtables" are useful
and required to objectify low-level calls and route-them through
different functions, but since GUI mode doesn't exist and never has
existed it's only making things complicated for no reason.
You can't keep a feature in just because "mabe one day we'll need it".
Nobody has touched it in 4, 5 years now? I've given technical arguments
on why this UI abstraction is a bad idea, do you have any for the pro
side, except that "one day it might be needed?". Because if we apply
that to everything then we'll end up with a million wrappers.
I know you wrote most of Freeloader but you have to be willing to accept
that you haven't had a lot of time to work on it (or else I assume you'd
have coded GUI mode by now) and that it's time to allow people to
improve it, if it's for the best, even if it doesn't match your grand
ideas (trust me, I know it's hard).
Right now this abstraction is a technical mistake and offers no
benefits. I've been wanting to remove it for a year now, but I gave it a
chance to see if anyone was interested in using it; all I saw was people
b*tching about how much GUI freeloder -already- has.
If a company wants a company logo one day, let them pay us for the
feature and listen what, I'll code it myself. It's not hard to revert
some code.
Anyways, I won't press the issue farther; I've stated my position.
Best regards,
Alex Ionescu
Brian Palmer wrote:
Alex,
I don't see the point of what you are trying to do. IIRC, all of
FreeLoader's code is organized like the UI stuff - you just make generic
calls and the abstraction code handles the details. It's kind of like C++
objects, only not. Take, for instance, FreeLoader's file system code, it is
the exact same way. You just call generic routines like open, close, read,
and write, and the file system code checks what file system it is and
redirects the function call accordingly.
Unless I don't understand what you are proposing, it sounds like you want
to
just lump all the UI code into one huge file. And I
think that is a step
backward from the current design. I'll admit that checking the UI type on
every call and calling the GUI code or the TUI code isn't the most
efficient
way. And you could make it more efficient by setting up
pointers to
functions.
But unless you are talking about removing the GUI code altogether (it isn't
used currently) you will still have to do the checks to see if DrawBox(),
etc. needs to go to the TUI code or the GUI code. Now don't get me wrong, I
don't think removing the GUI code is the right thing to do. It is a very
good starting point for someone to make a graphical menu system for
FreeLoader. It would be very cool someday to be able to set a company logo
or something as background image in the boot screen.
I'd like to know more about what you are thinking...
-Brian
-----Original Message-----
From: ros-dev-bounces(a)reactos.org [mailto:ros-dev-bounces@reactos.org] On
Behalf Of Alex Ionescu
Sent: Wednesday, November 16, 2005 9:17 PM
To: ReactOS Development List
Subject: Re: [ros-dev] Freeldr Question
Hi Brian,
No, it would keep the same GUI as it has now, since people seem
comfortable with it. (I did get a lot of requests for the NTLDR-like
interface and I might code one in as an optional interface since it's
only 30 lines of code, but that's beside the question at the moment).
The reasoning is like I said earlier, tidying up the code and reducing
complexity in the software, which are very important parts of good
development and a scalable codebase.
Best regards,
Alex Ionescu
Brian Palmer wrote:
>So are you going to implement a GUI for it then? Or what is the reasoning
>behind this change?
>
>-Brian
>
>-----Original Message-----
>From: ros-dev-bounces(a)reactos.org [mailto:ros-dev-bounces@reactos.org] On
>Behalf Of Alex Ionescu
>Sent: Wednesday, November 16, 2005 8:18 PM
>To: ReactOS Development List
>Subject: Re: [ros-dev] Freeldr Question
>
>Brian/Art
>
>I just want to make all drawings calls directly "Tui" instead of
>"Ui"->CheckMode->"Tui" and combine gui.c/tui.c/tuimenu.c and
gui/ui/tui.h
>Nothign else would change.
>
>Best regards,
>Alex Ionescu
>
>Brian Palmer wrote:
>
>
>
>
>
>>Hi,
>>
>>So in what way do you propose changing it? How will it work after you're
>>done?
>>
>>-Brian
>>
>>-----Original Message-----
>>From: ros-dev-bounces(a)reactos.org [mailto:ros-dev-bounces@reactos.org] On
>>Behalf Of Alex Ionescu
>>Sent: Wednesday, November 16, 2005 6:36 PM
>>To: ReactOS Development List
>>Subject: [ros-dev] Freeldr Question
>>
>>Hi,
>>
>>Freeldr currently contains an ugly (imo) wrapper around the GUI where
>>every drawing operation is supposed to have multiple "modes" (some fancy
>>3d gizmo whizmo GUI and the normal text-mode interface). I would really
>>like to simply this interface and make the drawing operations much
>>simpler and just draw, instead of going through all the hoops they do
>>now. But before I do, does anyone have any objections? Is anyone working
>>on fancy 3D GUI for Freeldr, or can I go ahead with my changes? Note
>>nothing would change to the user, everything will look and act the exact
>>same way as it does now.
>>
>>Best regards,
>>Alex Ionescu
>>
>>
>>
>>
>>
>>
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev