Osma, GNUstep currently has theming capabilities. It is possible for you to write a theme that uses whatever widget set you like. Please see the plugin-themes* set of repos in the GNUstep GitHub repositories or the themes implemented in GAP (gap.nongnu.org).
Creating a backend simply to use WxWidgets or another widget set is the long way around. A more useful way to make GNUstep look better is to use the existing Theming capabilities. Yours, GC On Thu, May 27, 2021 at 3:43 AM أسامة مخزوم <[email protected]> wrote: > once i write the wrapper, i will consider making GNUSTEP Ui more > attractive to widget-toolkit backend developers so they can target > GNUStep more easily, thank nikolaus for the purposal. > > On Mon, May 24, 2021 at 11:53 AM H. Nikolaus Schaller <[email protected]> > wrote: > > > > Hi, > > > > Am 22.05.2021 um 11:41 schrieb أسامة مخزوم <[email protected]>: > > > > Well, you seem to be on my side but in anthoer corner > > > > > > :) > > > > The question will be which corner finds the best adoption by the broader > community of C++ programmers. What they really need or are missing. Because > we need adopters. > > > > When we are talking about Gnustep outside objc view, developers has one > main benefit: gnustep libraries that provide portable and rich libraries as > a framework. as a programmer i like it but try to avoid objective-c and > objective-c++ even more. gnustep ui are pretty cool to port wxWidgets or > even tk into its backend. but why not to make this STEP more stright and > provide some wrapper/binding to c++? So anyone can later do whatever he > want using a c++ syntax without getting messed in objective-c++ every > project. > > > > > > Hm. Maybe we should clarify the corners first. > > > > My proposal is to use the wxWidgets API in C++. Implementing the > wxWidgets API can likely be done in objc++ - not much different from Cocoa. > The result should be some libwxgnustep... > > > > This means that C++ programmers can simply link agains this wxWidgets > wrappers by using plain C++. > > They don't see objc++. Only those developers who develop wxWidgets > wrapping for GNUstep have to care about. > > > > To give an example, a hello world: > https://docs.wxwidgets.org/3.0/overview_helloworld.html > > > > A C++ programmer obviously (I have never written code in wxWidgets, but > it is obvious what is going on) uses C++ classes like wxApp, wxFrame, > wxMenu and functions like wxMessageBox() or SetStatusText(). > > These are provided by the wxWidget libs. > > > > A GNUstep wxWidgets wrapper would of course be written in objc++, but > compiled only once into the wrapper library. > > It would translate these classes and function calls into ObjC-messages > for GNUstep GUI and Base. For example I imagine that wxMessageBox() could > open some NSPanel or the wxMenu method AppendSeparator() would translate > into [menu addItem:[NSMenu separatorItem]]. > > > > The result would be that programmers can write in pure C++ for > wxWidgets, link to the GNUstep wrapper and system and run the Apps on some > GNUstep based desktop. > > > > This would be my corner of thinking :) > > > > Or do you generally think about something else? > > > > > > Objc++ is something evil when it comes to syntax and code readabilty: > two languages, many restricts to merge, and a strange convention . > theorically you can anything possible using this latter, but its too ugly > to people to handle it. > > > > > > Fully agree. It should only be used to write Wrappers in either > direction, e.g. making ObjC frameworks available to C++ programmers and > making C++ libraries available to ObjC programmers. > > > > That's why i would like to go further and make gnustep accesible outside > using objective-c++ from the application-developers and other programmer > > > > > > Yes, wxWidgets provide pure C++ classes to programmers and hide objc++. > > > > So maybe we are not even in different corners? > > > > And the key question is what C++ developers really want to see if > GNUstep is wrapped. It is a little difficult to find them here on this > list, but maybe some reader is "living in both worlds" and can comment. > > > > BR and thanks, > > Nikolaus > > > > > > > > On Sat, May 15, 2021, 6:15 PM H. Nikolaus Schaller <[email protected]> > wrote: > >> > >> Hi Usama and all, > >> any thoughts on my suggestions? > >> > >> BR, > >> Nikolaus > >> > >> > Am 11.05.2021 um 14:24 schrieb H. Nikolaus Schaller <[email protected] > >: > >> > > >> > > >> >> Am 11.05.2021 um 13:48 schrieb Usama makhzoum <[email protected]>: > >> >> > >> >> > >> >> On 5/10/21 11:20 PM, H. Nikolaus Schaller wrote: > >> >>> Hi, > >> >>> > >> >>>> Am 10.05.2021 um 20:58 schrieb أسامة مخزوم <[email protected]>: > >> >>>> > >> >>>> hi all > >> >>>> > >> >>>> I am thinking of a C++11 wrapper for base, gui and other > libraries, may be it is easier to do than another PL (because of > objective-c++ existence). however, i want to hear from you: I would like to > have opinions and whether if there was a attemp to do this (with c++98, for > example). > >> >>>> > >> >>>> This also can give gnustep (another step). macosX developers > always searches for c++ wrappers around cocoa and friends. before they > enforced deeply to objc and swift, they simply wishing the last wish "I > hope that someone did it". so maybe a c++ wrapper can make gnutep famous > for the mac development, rather. > >> >>> On macOS C++ is not the primary language (except for kernel > drivers). It is ObjC and Swift. > >> >>> > >> >>> IMHO, objc++ exists because there are some interesting C++ based > libraries (e.g. data processing, business logic, file format decoders) > where it should be possible to integrate them into objc based GUI apps. So > in MVC architecture, C++ would be mainly used for providing an existing > data model. > >> >> > >> >> this could be also a reason for writing such a wrapper. > >> > > >> > I do not understand how it would help. If the GUI is to be written in > ObjC and some C++ libs to be included, wrapping ObjC transforms the whole > project into a C++ project which is not what I would like to have. > >> > > >> >> why doing things in two language becomes the standard way? think of > it as you were using python and have to do GUI staff with Qt, does i have > to try py-c++ or to use a wrapper like pyqt? > >> > > >> > Well, if I use ObjC and want to do some macOS or Linux or Windows GUI > stuff. Then I simply use GNUstep withou any wrappers. > >> > > >> >> > >> >> > >> >> GNUSTEP framework is a very easy-and-popular framework, i like it > both with developing, and in use. and I think it will make another little > advance if there was some easy/neat way to use from c++ (and many other > programming languages, like perl, and even javascript), i assume some > progress when a c++ programmer (thinks in terms of templates, > mutli-inheritance and smartpointers) has access to GNUSTEP. I know that i > didn't invent something new or make things impossible as possible. I want > to help people that like c++-syntax to consider gnustep as an option, after > all. > >> > > >> > Ok! > >> > > >> > Now, I could imagine something like a https://www.wxwidgets.org glue > so that you can compile any wxWidgets based application not only for macOS, > Linux (GTK, Qt, X11 etc.) or Windows but also for GNUstep. So make GNUstep > another "backend" option for wxWidgets in the list of supported platforms: > >> > > >> > https://www.wxwidgets.org/about/ (i.e. create some wxGNUstep) > >> > > >> >> > >> >>> > >> >>> I wonder what a use case of the reverse wrapping would be. > >> >> > >> >> a syntax-sugar, or convince wrapper is the main goal. maybe used as > additional gui-frontend for a c++ graphical or command line application > without too much diving into obj-c++. > >> > > >> > There may be a key decision before starting a project like you are > thinking of: which classes and interfaces should your wrapper provide? > Something completely new (optimized for wrapping GNUstep) or a well known > set of interfaces already used by many C++ projects. > >> > > >> > Beware: there are already many: > >> > > >> > > https://www.reddit.com/r/cpp/comments/babfl5/a_pretty_big_list_of_c_gui_libraries/ > >> > > >> > So wxWidget seems to me one of the preferred choices - but I am not > that active in C++ that I know what others are doing. > >> > > >> > What I therefor suggest is to check if it is sufficient to make a > special compiler setup to compile wxOSX/Cocoaas as C++ wrapper around > GNUstep. So it may even almost exist but nobody did have the idea to make > use of it. And it may be a much more manageable task than inventing a new > wrapper and make people use it. > >> > > >> > Now I see a nice benefit of such a project: get any source package > from github (e.g. KiCAD) that uses wxWidgets, compile it with wxGNUstep and > get a harmonized look and feel inside a GNUstep desktop... > >> > > >> > > >> > > > > -- 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
