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@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@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@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@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@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev