Hi!
On 6/1/21 10:23 PM, Michal Vašut via gimp-gui-list wrote:
I would look here - https://gitlab.gnome.org/GNOME/gimp
<https://gitlab.gnome.org/GNOME/gimp> - Gimp source code
But even compiling and building this beast under windows is difficult
task (I've personally failed)
I would not call "compiling GIMP" such a difficult task for a seasoned
developer. GIMP has always been quite a model in terms of well known
good practices and generic logics. 🙂
Now, Gimp UI is built using GTK (btw it means Gimp ToolKit), which (I
would say) is deeply connected with program itself. But I can be wrong
- it's currently upgraded from GTK2 to GTK3 so maybe devs have in mind
that GTK4 is ready and Gimp could be upgraded again in near future and
made it more layered (separated core x modules x gui). But that's
better question for devs.
GIMP is already quite layered. If you look at app/core/, you have only
core code (no include to GTK or other display code in there). Then you
have a few other folders with graphics components. Still, all in all, it
is obvious that GIMP is very graphical-interfacy since it's one of the
main points of such an application (even though it can be — and is —
also massively used as a script framework).
Now regarding the original question:
On Tue, Jun 1, 2021, 21:50 Grant Mulholland via gimp-gui-list
<gimp-gui-list@gnome.org <mailto:gimp-gui-list@gnome.org>> wrote:
Hi, I’m wanting to try and utilize Microsoft’s tools to create a
more “native” feel for GIMP on Windows, along the lines of using
WPF and (hopefully) the Fluent Design System. Where should I look
to utilize GIMP’s functionality in a situation like this?
Which Microsoft tools are you talking about? Do you mean just WPF
(apparently a Microsoft toolkit according to this:
https://docs.microsoft.com/en-us/dotnet/desktop/wpf/ ?) or do you have a
more exhaustive list in mind?
As a general rule:
* We are not against better integration to various platform in general,
though we also like to keep common visual traits. If the goal is to
completely redo the interface into another GUI toolkit (hence to the
point it would barely be recognizable), well you may as well do a new
application. 😉
* Code-wise as well, we want to keep code as generic as possible, for
obvious maintenance reasons. Ideally we would not even have one #ifdef
or alike to cater to platform specificities. As I said, this is not that
we don't want integration, but if possible, we prefer the integration to
happen on lower layers so that the logics code can just focus on… well
logics. Of course, we do in fact have some #ifdef here and there, my
point is rather than we don't want these to be everywhere (⇒ i.e. we
don't want spaghetti code).
* If WPF is really another GUI toolkit, and if your plan is to replace
fully GTK by WPF, I am really unsure this could happen. On the other
end, maybe GTK could use WPF in some place (as a backend). This would
allow GIMP to just use generic GTK code, which would use a native
toolkit for actual render. That's one possibility. In such a case, the
best way to contribute would be therefore to contribute such code to GTK.
By the way, does using WPF mean using C#? Within GIMP, I would consider
this quite a blocker. Well in a very limited way, well compartimented
Windows-only code, maybe… I don't know, it would really depend how it is
implemented. But really always consider this is a cross-platform tool
which needs to work in a whole lot of situations, platforms, etc.
(Not sure if this is the right place to ask about this…)
This is definitely the right place to discuss GUI. 🙂
Also to have a better idea of what it means to make use of WPF, could
you tell us more of what you had in mind and what it would mean for GIMP
(usage and development)?
And what would be the more specific gain? Like "feel more native" is not
so accurate as a description to me to know if such a huge workfield is
really worth the hassle.
Thanks!
Jehan
_______________________________________________
gimp-gui-list mailing list
gimp-gui-list@gnome.org <mailto:gimp-gui-list@gnome.org>
https://mail.gnome.org/mailman/listinfo/gimp-gui-list
<https://mail.gnome.org/mailman/listinfo/gimp-gui-list>
_______________________________________________
gimp-gui-list mailing list
gimp-gui-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gimp-gui-list
--
ZeMarmot open animation film
http://film.zemarmot.net
Liberapay: https://liberapay.com/ZeMarmot/
Patreon: https://patreon.com/zemarmot
Tipeee: https://www.tipeee.com/zemarmot
_______________________________________________
gimp-gui-list mailing list
gimp-gui-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gimp-gui-list