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

Reply via email to