Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Draft: GTK3: Do not merge #149

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 162 commits into from
Closed

Conversation

MakiWolf
Copy link

@MakiWolf MakiWolf commented Jan 4, 2024

Draft: GTK3: Do not merge

This PR fixes merge conflicts with this PR #10

To compile gtksharp3 package must be installed.

Many things does not work as expected and must be replaced, because currently it is only to compile but not to work. But it displays the main ide window.

In future we should also switch to nuget packages and go back to the submodules from dotdevelop. I also have to change the submodules xwt and mono addins to older versions because of compile errors between nuget gtk and gtk from mono package at the beginning.

And also this file is now an old version to get dotdevelop compile.

https://github.com/MakiWolf/dotdevelop/blob/main/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/GtkWorkarounds.cs

It have also a lot of #if DD_GTK3_CHECK_FOR_REMOVE statements

I also saw that @lytico have started with if else statements in gtk3. I found this idea good beacuse we can switch between gtk2 and gtk3 until all things work as expected and replaced with newer code. I dont know if there is a possibility to add if else statements automatically for changes or we have to edit every single file manual?

Jo Shields and others added 30 commits July 23, 2018 10:45
Stetic is what sold me on MonoDevelop in the first place, more than a decade ago. A high quality GUI designer, fully integratwd into the IDE, on Linux, was bliss - as compared to the state of the art of `glade-2` XML files at the time.

However.

In 2018, it is effectively dead weight for us.

Visual Studio for Mac is not a Gtk# IDE, and does not benefit from Gtk# app authoring support. And, crucially, Stetic depends heavily on the internals of libglade, which no longer exists in Gtk+ 3.0+.

In order to move forwards with porting MonoDevelop to Gtk#3, Stetic in its current incarnation needs to go away. All the internals need rewriting, and we cannot justify the engineer time required to do that ourselves. So, like our C/C++ support, remove it & focus on the fundamentals.

This removal removes support for creating new Gtk# projects (as the templates are in MonoDevelop.GtkCore), but it can still open/compile existing Gtk# projects fine.
@knocte
Copy link
Member

knocte commented Jan 5, 2024

IMNSHO this is the wrong approach. Because I think you're porting to master/main branch of https://github.com/mono/gtk-sharp , which is a stagnated project (I know this very well because I contributed a lot of commits to it, especially the main branch [1]). Any decent GTKvNext port should not focus on these libraries and not 3.x, but other libraries which, by now, must be offering even newer versions (e.g. 4.x), like https://github.com/gtksharp/gtksharp

[1] So yeah, I take it big part of the blame for it to be stagnated.

@MakiWolf
Copy link
Author

MakiWolf commented Jan 6, 2024

I have set up a new branch to update from mono gtk to nuget gtksharp.
A lot of things have to be commented out here more. But it does compile and but will not start.

https://github.com/MakiWolf/dotdevelop/tree/hackweek2nugetgtk

./start.sh
FATAL ERROR [2024-01-06 19:33:27Z]: MonoDevelop failed to start. Some of the assemblies required to run MonoDevelop (for example gtk-sharp)may not be properly installed in the GAC.
System.IO.FileNotFoundException: Could not load file or assembly 'GtkSharp, Version=3.24.24.95, Culture=neutral, PublicKeyToken=f6892ebcc5dd81ba' or one of its dependencies.
File name: 'GtkSharp, Version=3.24.24.95, Culture=neutral, PublicKeyToken=f6892ebcc5dd81ba'
  at MonoDevelop.Ide.IdeStartup.Main (System.String[] args, MonoDevelop.Ide.Extensions.IdeCustomizer customizer) [0x000d4] in <f38a47e826674fb69787c678b221caf5>:0 

The exception comes from this line:
https://github.com/MakiWolf/dotdevelop/blob/9b071207773b1073b0d66c4dbc2142de0516ada5/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs#L756

@MakiWolf MakiWolf mentioned this pull request Jan 7, 2024
@MakiWolf
Copy link
Author

MakiWolf commented Jan 7, 2024

Opened up a new PR for nuget gtksharp
#150

@MakiWolf MakiWolf closed this Jan 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants