diff --git a/Gtkmm3/gtk71_gtkmm-test2/.vscode/c_cpp_properties.json b/Gtkmm3/gtk71_gtkmm-test2/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..10c7ce3 --- /dev/null +++ b/Gtkmm3/gtk71_gtkmm-test2/.vscode/c_cpp_properties.json @@ -0,0 +1,94 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + //For linux amd64 and linux on arm64,some include path may different + //Commet and uncomment these lines to compile on a specificed archtiecture + //Arm64 linux libs + /* + "/usr/lib/aarch64-linux-gnu/dbus-1.0/include/**", + "/usr/lib/aarch64-linux-gnu/glib-2.0/include/**", + "/usr/lib/aarch64-linux-gnu/gtkmm-3.0/include/**", + "/usr/lib/aarch64-linux-gnu/gdkmm-3.0/include/**", + "/usr/lib/aarch64-linux-gnu/giomm-2.4/include/**", + "/usr/lib/aarch64-linux-gnu/pangomm-1.4/include/**", + "/usr/lib/aarch64-linux-gnu/glibmm-2.4/include/**", + "/usr/lib/aarch64-linux-gnu/cairomm-1.0/include/**", + "/usr/lib/aarch64-linux-gnu/sigc++-2.0/include/**", + */ + //amd64 linux libs(For ubuntu) + /* + "/usr/lib/x86_64-linux-gnu/dbus-1.0/include/**", + "/usr/lib/x86_64-linux-gnu/glib-2.0/include/**", + "/usr/lib/x86_64-linux-gnu/gtkmm-3.0/include/**", + "/usr/lib/x86_64-linux-gnu/gdkmm-3.0/include/**", + "/usr/lib/x86_64-linux-gnu/giomm-2.4/include/**", + "/usr/lib/x86_64-linux-gnu/pangomm-1.4/include/**", + "/usr/lib/x86_64-linux-gnu/glibmm-2.4/include/**", + "/usr/lib/x86_64-linux-gnu/cairomm-1.0/include/**", + "/usr/lib/x86_64-linux-gnu/sigc++-2.0/include/**", + */ + //For debian and ubuntu,kali + /* + "/usr/include/gtk-3.0/gtk/**", + "/usr/include/uuid/**", + */ + //For manjaro(Arch linux) + + "/usr/lib/dbus-1.0/include/**", + "/usr/lib/glib-2.0/include/**", + "/usr/include/lzo/**", + "/usr/include/cloudproviders/**", + + "${workspaceFolder}/**", + "/usr/include/gtk-3.0/**", + "/usr/include/at-spi2-atk/2.0/**", + "/usr/include/at-spi-2.0/**", + "/usr/include/dbus-1.0/**", + "/usr/include/gio-unix-2.0/**", + "/usr/include/cairo/**", + "/usr/include/pango-1.0/**", + "/usr/include/fribidi/**", + "/usr/include/harfbuzz/**", + "/usr/include/atk-1.0/**", + "/usr/include/pixman-1/**", + "/usr/include/freetype2/**", + "/usr/include/libpng16/**", + "/usr/include/gdk-pixbuf-2.0/**", + "/usr/include/libmount/**", + "/usr/include/blkid/**", + "/usr/include/glib-2.0/**", + + //Gtkmm libs + "/usr/include/gtkmm-3.0/**", + "/usr/lib/gtkmm-3.0/include/**", + "/usr/include/giomm-2.4/**", + "/usr/lib/giomm-2.4/include/**", + "/usr/include/glibmm-2.4/**", + "/usr/lib/glibmm-2.4/include/**", + "/usr/include/sigc++-2.0/**", + "/usr/lib/sigc++-2.0/include/**", + "/usr/include/cairomm-1.0/**", + "/usr/lib/cairomm-1.0/include/**", + "/usr/include/pangomm-1.4/**", + "/usr/lib/pangomm-1.4/include/**", + "/usr/include/atkmm-1.6/**", + "/usr/lib/atkmm-1.6/include/**", + "/usr/include/gtk-3.0/unix-print/**", + "/usr/include/gdkmm-3.0/**", + "/usr/lib/gdkmm-3.0/include/**" + ], + "defines": [], + "compilerPath": "/usr/bin/gcc", + "cStandard": "gnu17", + "cppStandard": "gnu++17", + "intelliSenseMode": "gcc-x64", + "compilerArgs": [ + "`pkg-config --cflags --libs gtkmm-3.0`" + ], + "configurationProvider": "ms-vscode.cmake-tools" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/Gtkmm3/gtk71_gtkmm-test2/.vscode/launch.json b/Gtkmm3/gtk71_gtkmm-test2/.vscode/launch.json new file mode 100644 index 0000000..c68913b --- /dev/null +++ b/Gtkmm3/gtk71_gtkmm-test2/.vscode/launch.json @@ -0,0 +1,29 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "g++ - Build and debug active file", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/bin/gtk71", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ], + "preLaunchTask": "C/C++: g++ build active file", + "miDebuggerPath": "/usr/bin/gdb" + } + ] +} diff --git a/Gtkmm3/gtk71_gtkmm-test2/.vscode/settings.json b/Gtkmm3/gtk71_gtkmm-test2/.vscode/settings.json new file mode 100644 index 0000000..208afcc --- /dev/null +++ b/Gtkmm3/gtk71_gtkmm-test2/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "C_Cpp.errorSquiggles": "Disabled", + "cmake.configureOnOpen": false, + "C_Cpp.dimInactiveRegions": false +} \ No newline at end of file diff --git a/Gtkmm3/gtk71_gtkmm-test2/.vscode/tasks.json b/Gtkmm3/gtk71_gtkmm-test2/.vscode/tasks.json new file mode 100644 index 0000000..17f8880 --- /dev/null +++ b/Gtkmm3/gtk71_gtkmm-test2/.vscode/tasks.json @@ -0,0 +1,132 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++ build active file", + "command": "/usr/bin/g++", + "args": [ + "-g", + "*.cc", + "-o", + "${workspaceFolder}/bin/gtk71", + "-pthread", + //For Arm64 linux + /* + "-I/usr/lib/aarch64-linux-gnu/dbus-1.0/include", + "-I/usr/lib/aarch64-linux-gnu/glib-2.0/include", + "-I/usr/lib/aarch64-linux-gnu/gtkmm-3.0/include", + "-I/usr/lib/aarch64-linux-gnu/gdkmm-3.0/include", + "-I/usr/lib/aarch64-linux-gnu/giomm-2.4/include", + "-I/usr/lib/aarch64-linux-gnu/pangomm-1.4/include", + "-I/usr/lib/aarch64-linux-gnu/glibmm-2.4/include", + "-I/usr/lib/aarch64-linux-gnu/cairomm-1.0/include", + "-I/usr/lib/aarch64-linux-gnu/sigc++-2.0/include", + */ + //For amd64 linux + /* + "-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include", + "-I/usr/lib/x86_64-linux-gnu/glib-2.0/include", + "-I/usr/lib/x86_64-linux-gnu/gtkmm-3.0/include", + "-I/usr/lib/x86_64-linux-gnu/gdkmm-3.0/include", + "-I/usr/lib/x86_64-linux-gnu/giomm-2.4/include", + "-I/usr/lib/x86_64-linux-gnu/pangomm-1.4/include", + "-I/usr/lib/x86_64-linux-gnu/glibmm-2.4/include", + "-I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include", + "-I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include", + */ + //Ubuntu and kali include paths + + //"-I/usr/include/uuid", + + //Manjaro linux and Arch linux include args + + "-I${workspaceFolder}", + + "-I/usr/lib/glib-2.0/include", + "-I/usr/lib/dbus-1.0/include", + "-I/usr/include/lzo", + "-I/usr/include/cloudproviders", + + "-I/usr/include/gtk-3.0", + "-I/usr/include/at-spi2-atk/2.0", + "-I/usr/include/at-spi-2.0", + "-I/usr/include/dbus-1.0", + "-I/usr/include/gio-unix-2.0", + "-I/usr/include/cairo", + "-I/usr/include/pango-1.0", + "-I/usr/include/fribidi", + "-I/usr/include/harfbuzz", + "-I/usr/include/atk-1.0", + "-I/usr/include/pixman-1", + "-I/usr/include/freetype2", + "-I/usr/include/libpng16", + "-I/usr/include/gdk-pixbuf-2.0", + "-I/usr/include/libmount", + "-I/usr/include/blkid", + "-I/usr/include/glib-2.0", + + //Gtkmm For Archlinux and Manjaro + + "-I/usr/lib/gtkmm-3.0/include", + "-I/usr/lib/giomm-2.4/include", + "-I/usr/lib/glibmm-2.4/include", + "-I/usr/lib/sigc++-2.0/include", + "-I/usr/lib/cairomm-1.0/include", + "-I/usr/lib/atkmm-1.6/include", + "-I/usr/lib/gdkmm-3.0/include", + "-I/usr/lib/pangomm-1.4/include", + + //Gtkmm libs + "-I/usr/include/gtkmm-3.0", + "-I/usr/include/giomm-2.4", + "-I/usr/include/glibmm-2.4", + "-I/usr/include/sigc++-2.0", + "-I/usr/include/cairomm-1.0", + "-I/usr/include/pangomm-1.4", + "-I/usr/include/atkmm-1.6", + "-I/usr/include/gtk-3.0/unix-print", + "-I/usr/include/gdkmm-3.0", + + + //Manjaro linux lib args + "-lz", + + "-lgtk-3", + "-lgdk-3", + "-lpangocairo-1.0", + "-lpango-1.0", + "-lharfbuzz", + "-latk-1.0", + "-lcairo-gobject", + "-lcairo", + "-lgdk_pixbuf-2.0", + "-lgio-2.0", + "-lgobject-2.0", + "-lglib-2.0", + + //For gtkmm + + "-lgtkmm-3.0", + "-latkmm-1.6", + "-lgdkmm-3.0", + "-lgiomm-2.4", + "-lpangomm-1.4", + "-lglibmm-2.4", + "-lcairomm-1.0", + "-lsigc-2.0" + ], + "options": { + "cwd": "${workspaceFolder}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} diff --git a/Gtkmm3/gtk71_gtkmm-test2/GtkWin.cc b/Gtkmm3/gtk71_gtkmm-test2/GtkWin.cc new file mode 100644 index 0000000..0a3f698 --- /dev/null +++ b/Gtkmm3/gtk71_gtkmm-test2/GtkWin.cc @@ -0,0 +1,33 @@ +#include "GtkWin.h" + +GtkWin::GtkWin() + :m_button("Test") { + //Window Setting + set_default_size(640, 360); + set_icon_name("org.gtk.daleclack"); + set_title("Gtkmm 3 test"); + //Button + m_button.set_halign(Gtk::Align::ALIGN_CENTER); + m_button.set_valign(Gtk::Align::ALIGN_CENTER); + m_button.signal_clicked().connect(sigc::mem_fun(*this, &GtkWin::on_button_clicked)); + overlay.add_overlay(m_button); + add(overlay); +} + +GtkWin::~GtkWin() { + +} + +void GtkWin::on_button_clicked() { + Gtk::Dialog dialog1; + Gtk::Label label1("Hello"); + Gtk::Box* box; + dialog1.add_button("OK", GTK_RESPONSE_OK); + dialog1.set_default_size(400, 200); + dialog1.set_title("Dialog Hello"); + dialog1.set_transient_for(*this); + box = dialog1.get_content_area(); + box->pack_start(label1); + box->show_all(); + dialog1.run(); +} diff --git a/Gtkmm3/gtk71_gtkmm-test2/GtkWin.h b/Gtkmm3/gtk71_gtkmm-test2/GtkWin.h new file mode 100644 index 0000000..ec69672 --- /dev/null +++ b/Gtkmm3/gtk71_gtkmm-test2/GtkWin.h @@ -0,0 +1,20 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +class GtkWin : + public Gtk::Window +{ +public: + GtkWin(); + virtual ~GtkWin(); + Gtk::Overlay overlay; +protected: + Gtk::Button m_button; + void on_button_clicked(); +}; diff --git a/Gtkmm3/gtk71_gtkmm-test2/icon.ico b/Gtkmm3/gtk71_gtkmm-test2/icon.ico new file mode 100644 index 0000000..799dfa3 Binary files /dev/null and b/Gtkmm3/gtk71_gtkmm-test2/icon.ico differ diff --git a/Gtkmm3/gtk71_gtkmm-test2/main.cc b/Gtkmm3/gtk71_gtkmm-test2/main.cc new file mode 100644 index 0000000..86b80c0 --- /dev/null +++ b/Gtkmm3/gtk71_gtkmm-test2/main.cc @@ -0,0 +1,28 @@ +#include +#include +#include +#include "GtkWin.h" +#include "winpe.xpm" + +void Init(void) { + //This command is for windows only +#ifdef _WIN32 + system("cmdow @ /hid"); +#endif +} + +int main(int argc, char** argv) { + Init(); + //Start a application + auto app = Gtk::Application::create(argc, argv, "org.gtkmm.test"); + GtkWin window; + //Image + Glib::RefPtr pixbuf = Gdk::Pixbuf::create_from_xpm_data(winpe); + Glib::RefPtr sized = pixbuf->scale_simple(640, 360, Gdk::InterpType::INTERP_BILINEAR); + Gtk::Image image1(sized); + window.overlay.add(image1); + window.show_all(); + return app->run(window); + pixbuf.reset(); + sized.reset(); +} diff --git a/Gtkmm3/gtk71_gtkmm-test2/public_src_winpe_xpm b/Gtkmm3/gtk71_gtkmm-test2/public_src_winpe_xpm new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/Gtkmm3/gtk71_gtkmm-test2/public_src_winpe_xpm @@ -0,0 +1 @@ + diff --git a/Gtkmm3/vs2019.7z b/Gtkmm3/vs2019.7z new file mode 100644 index 0000000..0277071 Binary files /dev/null and b/Gtkmm3/vs2019.7z differ