Skip to content

Conversation

@VerzatileDev
Copy link
Contributor

@VerzatileDev VerzatileDev commented Aug 18, 2023

Removed unnecessary comments, improved readability by adding comment into the variable.

Comments now Include small when inside a function or for loop and Big standard when outside of it, to further improve readability.

GTK 4 Library has been added!

  • Still Requires the reduction of repetition of code!

Removed unnecessary comments, improved readability by adding comment into the variable.

Comments now Include small when inside a function or for loop and Big standard when outside of it, to further improve readability.

- Still Requires the reduction of repetition of code!
@VerzatileDev VerzatileDev added the enhancement New feature or request label Aug 18, 2023
@VerzatileDev VerzatileDev requested a review from Sommos August 18, 2023 12:54
In the following addition it is required to keep " C_cpp_properties.json and tasks.json within the project as that is required for the library to work.

Having removed user based vscode additions it should work as intended!
Leaving instructions here:
Step 1: in  Msys2 terminal you write this  pacman -S mingw-w64-x86_64-gtk4
Step 2: pacman -S mingw-w64-x86_64-toolchain base-devel
After you got those fuckers
Step 3: you have a c project, and you need to generate those I'll most likely include in the commit so you dont have to fuck around with them unless you want to.
Image
Step 4: In main.c you want to try the code so copy paste
#include <gtk/gtk.h>

static void
print_hello (GtkWidget *widget,
             gpointer   data)
{
  g_print ("Hello World\n");
}

static void
activate (GtkApplication *app,
          gpointer        user_data)
{
  GtkWidget *window;
  GtkWidget *button;

  window = gtk_application_window_new (app);
  gtk_window_set_title (GTK_WINDOW (window), "Window");
  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);

  button = gtk_button_new_with_label ("Hello World");
  g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
  gtk_window_set_child (GTK_WINDOW (window), button);

  gtk_window_present (GTK_WINDOW (window));
}

int
main (int    argc,
      char **argv)
{
  GtkApplication *app;
  int status;

  app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
  g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
  status = g_application_run (G_APPLICATION (app), argc, argv);
  g_object_unref (app);

  return status;
}
Step 5: Open c_cpp_proprties.json
Step 6: you need this exact promt, make sure that the root directory is correct!!!!
{
  "configurations": [
      {
          "name": "Win32",
          "includePath": [
              "${workspaceFolder}/**",
              "C:/msys64/mingw64/include/gtk-4.0",
              "C:/msys64/mingw64/include/glib-2.0",
              "C:/msys64/mingw64/include/**",
              "C:/msys64/mingw64/lib/**"
          ],
          "defines": [
              "_DEBUG",
              "UNICODE",
              "_UNICODE"
          ],
          "windowsSdkVersion": "10.0.22000.0",
          "compilerPath": "C:/msys64/mingw64/bin/gcc.exe",
          "cStandard": "c17",
          "cppStandard": "c++17",
          "intelliSenseMode": "windows-gcc-x64"
      }
  ],
  "version": 4
}
Step 7: Make sure you add it into "edit environment settings"    You got to add it to the System Environment - >
Image
So you need to add the bin folder that you downloaded mingw64 to and the gtk4 will be there as well
Make sure that is right after program files otherwise won't work.
Image

all those ther and paths must be there for us to use it
Image
And that too, this is inside c_cpp_properties
Image

Step 8: you need task.json as well with this code
{
 "version": "2.0.0",
 "tasks": [
  {
   "type": "cppbuild",
   "label": "C/C++: gcc.exe build active file",
   "command": "C:/msys64/mingw64/bin/gcc.exe",
   "args": [
    "-fdiagnostics-color=always",
    "-g",
    "-IC:/msys64/mingw64/include/gtk-4.0",
    "-IC:/msys64/mingw64/include/pango-1.0",
    "-IC:/msys64/mingw64/include",
    "-IC:/msys64/mingw64/include/glib-2.0",
    "-IC:/msys64/mingw64/lib/glib-2.0/include",
    "-IC:/msys64/mingw64/include/harfbuzz",
    "-IC:/msys64/mingw64/include/freetype2",
    "-IC:/msys64/mingw64/include/libpng16",
    "-IC:/msys64/mingw64/include/fribidi",
    "-IC:/msys64/mingw64/include/cairo",
    "-IC:/msys64/mingw64/include/pixman-1",
    "-IC:/msys64/mingw64/include/gdk-pixbuf-2.0",
    "-IC:/msys64/mingw64/include/webp",
    "-DLIBDEFLATE_DLL",
    "-IC:/msys64/mingw64/include/graphene-1.0",
    "-IC:/msys64/mingw64/lib/graphene-1.0/include",
    "-mfpmath=sse",
    "-msse",
    "-msse2",

    "${file}",

    "-LC:/msys64/mingw64/lib",
    "-lgtk-4",
    "-lpangowin32-1.0",
    "-lpangocairo-1.0",
    "-lpango-1.0",
    "-lharfbuzz",
    "-lgdk_pixbuf-2.0",
    "-lcairo-gobject",
    "-lcairo",
    "-lgraphene-1.0",
    "-lgio-2.0",
    "-lgobject-2.0",
    "-lglib-2.0",
    "-lintl",

    "-o",
    "${fileDirname}\\${fileBasenameNoExtension}.exe"
   ],
   "options": {
    "cwd": "C:/msys64/mingw64/bin"
   },
   "problemMatcher": [
    "$gcc"
   ],
   "group": "build",
   "detail": "compiler: C:/msys64/mingw64/bin/gcc.exe"
  }
 ]
}
@VerzatileDev VerzatileDev added Refactoring Improvement to Code enhancement New feature or request and removed enhancement New feature or request labels Aug 21, 2023
Copy link
Contributor

@Sommos Sommos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove .vscode from repo, and add it to .gitignore

Copy link
Contributor

@Sommos Sommos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me! Merging :)

@Sommos Sommos merged commit df72e07 into VerzatileDevOrg:main Aug 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request Refactoring Improvement to Code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants