The simplest solution to get this is to just create an app without a
model.  GUI will be initialized, but no nib/gorm/etc will be loaded.  You
should be able to access all of the AppKit/GUI functions.

On Tue, Nov 3, 2020 at 4:40 PM Gustavo Tavares <muchol...@fastmail.com>
wrote:

> Confirming, I just need headless so that I have access to the AppKit
> functions I call.
>
> I don’t need any output whatsoever.
>
> On Tue, Nov 3, 2020, at 5:22 PM, Gregory Casamento wrote:
>
>
> Gustavo,
>
> What is your true aim here?  If having a "headless" application is all you
> really need, so that you have access to AppKit functions then that is
> pretty easy.  You don't need to have a gui model (xib, nib, gorm, etc)
> attached to the application.
>
> I like the idea of a no-op or null backend as this might allow us some
> other freedoms with respect to testing.
>
> On Tue, Nov 3, 2020 at 3:53 PM Gustavo Tavares <muchol...@fastmail.com>
> wrote:
>
>
> Yes, Fred, Greg,
>
> This is exactly what I need and was looking at doing just that. I did some
> no-op classes but I have very little experience with there system to do so
> immediately.
>
> It doesn’t look like a lot of files but I might be wrong. There are a lot
> of subtle interactions that I have already bumped into.
>
> For example, right now, I’m still working through the call to
> +[NSProcessInfo initalizeWithArguments:count:environment:] (I think I have
> the name right but I didn’t look it up on my phone.
>
> Calling this didn’t solve my problem immediately.
>
> As for testing it’s pretty wonderful. I already have some tests running by
> enclosing them in a framework (Marcel WeiHer does this in MPWTest)
>
> The use case as a server backend is compelling too because you can save
> and interact with User preferences for Font, Color, Theme, etc on the
> backend just as you would on a frontend.
>
>
> On Tue, Nov 3, 2020, at 4:19 PM, Gregory Casamento wrote:
>
> This is a really interesting notion.   Would the no-op backend (I think we
> need a better name) be able to print, or output postscript?  Would it be
> possible to use it for testing GUI in some way?
>
> GC
>
>
> On Tue, Nov 3, 2020 at 12:06 PM Fred Kiefer <fredkie...@gmx.de> wrote:
>
> Your problem got me thinking. Would it help you if we offered a „no-op“
> backend for GNUstep? That is a backend where both the window and the
> drawing system would be implemented as no-operations.
>
> We could try to get this done as a special GNUstep back configuration.
> Most likely we could cheat here by reusing the gsc classes as a real
> drawing backend, which of course would not draw but raise
> subclassResponsibility:. That means we only need code for the window/event
> part and a lot of configuration to switch all the extra libraries off.
>
> Cheers,
> Fred
>
>
> > Am 03.11.2020 um 16:02 schrieb Gustavo Tavares <muchol...@fastmail.com>:
> >
> > Thank you! This is great.
> >
> > I think I'm going to make some sort of subclass—NSCommandLineApplication.
> >
> > I did implement some of the backend classes in a -doNothingMethod { ; }
> style: GSFontInfo / GSFontEnumerator.
> >
> > Previously I just tried running X11 and calling it a day—but that didn't
> work. So goes the rabbit hole...
> >
> > Looks like it will be fun though. Just gotta love Objective-C :)
> >
> > Gustabo
> >
> >
> > On Mon, Nov 2, 2020, at 11:20 PM, Ivan Vučica wrote:
> >> Based on
> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L140-L154,
> this comes from
> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L919
> or
> https://github.com/gnustep/libs-base/blob/3752016/Source/NSProcessInfo.m#L1021
> .
> >>
> >> If these were GUI apps, I’d recommend calling NSApplicationMain which
> takes argc and argv and sorts this out for you – in fact, that’s ideally
> exactly what you should do if you’re using any GUI methods.  You’re saying
> you’re using certain GUI classes on the server; if you believe they will
> actually behave correctly in a server environment without gnustep-back (not
> a given; hypothetically, NSColor could heavily depend on Opal’s
> CGColorRef), you may be able to call NSProcessInfo
> +initializeWithArguments:..., too.
> >>
> >> Otherwise study
> https://github.com/gnustep/libs-gui/blob/0ccdb278d4cc8ad60f033892a5105e0532261838/Source/Functions.m#L63
> carefully, but don’t be surprised if lack of x11 breaks GUI classes. You
> break it (into pieces), you get to pick up those pieces and glue them
> together :)
> >>
> >> (Yes, I noticed you said you went ahead and removed some
> backend-dependent code. This sounds like it’ll be a lot of fun…)
> >>
> >> Ivan Vučica
> >>
> >> From: Gustavo Tavares
> >> Sent: Tuesday 3 November 2020 02:13
> >> To: GNUstep Discuss
> >> Subject: What function sets up the GNUstep environment?
> >>
> >>
> >> Hi!
> >>
> >> Was wondering what function sets up a GNUstep environemtnt?
> >>
> >> Getting this error:
> >>
> >> GNUSTEP Internal Error:
> >> The private GNUstep function to establish the argv and environment
> >> variables was not called.
> >>
> >> Mismatched library versions between GNUstep Foundation (base) and AppKit
> >> (gui) is most often the cause of this message. Please be sure you
> >> are using known compatible versions and not a mismatched set. Generally,
> >> we recommend you use versions of base and gui which were released
> together.
> >>
> >> For more detailed assistance, please report the error to
> bug-gnus...@gnu.org.
> >>
> >> ---
> >>
> >> For context—I built a seperate framework that extracts some "GUI"
> classes with the intention to use them semantically on a server. (Such as
> NSImage, NSColor, NSFont...)
> >> I already went through the business of overriding / deleting some of
> the backend functions so that the classes would be "initalized" and
> wouldn't need to be rendered to screen.
> >>
> >> Stuck here.
> >>
> >> Where should I look?
> >>
> >>
> >> Thank you,
> >> G
>
>
>
>
> --
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron
> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
> https://teespring.com/stores/gnustep - Store
>
>
>
>
> --
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron
> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
> https://teespring.com/stores/gnustep - Store
>
>
>

-- 
Gregory Casamento
GNUstep Lead Developer / OLC, Principal Consultant
http://www.gnustep.org - http://heronsperch.blogspot.com
https://www.patreon.com/bePatron?u=352392 - Become a Patron
https://gf.me/u/x8m3sx - My GNUstep GoFundMe
https://teespring.com/stores/gnustep - Store

Reply via email to