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