To be even more specific, most of what I do would have to do with NSCoding and 
storing NSAttributedString attributes—most of which are part of AppKit, not 
Foundation.

On Tue, Nov 3, 2020, at 5:39 PM, Gustavo Tavares 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 <[email protected]> 
>> 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 <[email protected]> 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 <[email protected]>:
>>>>> > 
>>>>> > 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 
>>>>> >> [email protected].
>>>>> >>  
>>>>> >> ---
>>>>> >>  
>>>>> >> 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
> 

Reply via email to