diff --git a/Gtkmm3/gtk74_scale/.vscode/c_cpp_properties.json b/Gtkmm3/gtk74_scale/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..64210d8 --- /dev/null +++ b/Gtkmm3/gtk74_scale/.vscode/c_cpp_properties.json @@ -0,0 +1,95 @@ +{ + "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}/**", + "${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/gtk74_scale/.vscode/launch.json b/Gtkmm3/gtk74_scale/.vscode/launch.json new file mode 100644 index 0000000..e4614bd --- /dev/null +++ b/Gtkmm3/gtk74_scale/.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/gtk73", + "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/gtk74_scale/.vscode/settings.json b/Gtkmm3/gtk74_scale/.vscode/settings.json new file mode 100644 index 0000000..208afcc --- /dev/null +++ b/Gtkmm3/gtk74_scale/.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/gtk74_scale/.vscode/tasks.json b/Gtkmm3/gtk74_scale/.vscode/tasks.json new file mode 100644 index 0000000..fea69b3 --- /dev/null +++ b/Gtkmm3/gtk74_scale/.vscode/tasks.json @@ -0,0 +1,133 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++ build active file", + "command": "/usr/bin/g++", + "args": [ + "-g", + "src/*.cc", + "-o", + "${workspaceFolder}/bin/gtk73", + "-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${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/gtk74_scale/bin/README b/Gtkmm3/gtk74_scale/bin/README new file mode 100644 index 0000000..e69de29 diff --git a/Gtkmm3/gtk74_scale/res/gtk74.gresource.xml b/Gtkmm3/gtk74_scale/res/gtk74.gresource.xml new file mode 100644 index 0000000..9e5f4be --- /dev/null +++ b/Gtkmm3/gtk74_scale/res/gtk74.gresource.xml @@ -0,0 +1,6 @@ + + + + window.ui + + \ No newline at end of file diff --git a/Gtkmm3/gtk74_scale/res/window.ui b/Gtkmm3/gtk74_scale/res/window.ui new file mode 100644 index 0000000..594731c --- /dev/null +++ b/Gtkmm3/gtk74_scale/res/window.ui @@ -0,0 +1,315 @@ + + + + + + 100 + 1 + 10 + + + 5 + 1 + 10 + + + 100 + 1 + 10 + + + False + 5 + + + True + False + vertical + 20 + + + True + False + + + True + True + vertical + adjustment1 + 1 + + + False + True + 0 + + + + + True + False + vertical + 10 + + + True + True + adjustment1 + 1 + + + False + True + 0 + + + + + + + + True + False + adjustment1 + + + False + False + 2 + + + + + True + True + 1 + + + + + False + True + 0 + + + + + Display Value on scale widgets + True + True + False + True + True + + + False + True + 1 + + + + + True + False + 10 + + + True + False + Scale Value Position: + + + False + True + 0 + + + + + True + False + end + + + + + + True + False + 0 + + Top + Bottom + Left + Right + + + + False + True + end + 1 + + + + + False + True + 1 + + + + + True + True + 2 + + + + + True + False + 10 + + + True + False + Scale Update Policy: + + + False + True + 0 + + + + + True + False + end + + + + + + True + False + 1 + + Continuous + Discontinuous + Delayed + + + + False + True + end + 1 + + + + + False + True + 1 + + + + + False + True + 3 + + + + + True + False + + + True + False + Scale Digits: + + + False + True + 0 + + + + + True + True + adjustment2 + 1 + 0 + + + True + True + 1 + + + + + False + True + 4 + + + + + True + False + + + True + False + Scrollbar page size: + + + False + True + 0 + + + + + True + True + adjustment3 + 0 + 0 + + + True + True + 1 + + + + + False + True + 5 + + + + + Exit + True + True + True + + + False + True + 6 + + + + + + diff --git a/Gtkmm3/gtk74_scale/src/MyApp.cc b/Gtkmm3/gtk74_scale/src/MyApp.cc new file mode 100644 index 0000000..cb838b9 --- /dev/null +++ b/Gtkmm3/gtk74_scale/src/MyApp.cc @@ -0,0 +1,82 @@ +#include "MyApp.hh" + +Glib::RefPtr MyApp::create() { + return Glib::RefPtr(new MyApp()); +} + +void MyApp::on_activate() { + //Create a builder and get widgets + m_builder = Gtk::Builder::create_from_resource("/gtk74/window.ui"); + //Main window + m_builder->get_widget("window", window); + window->set_title("Gtk (74)"); + add_window(*window); + //Show Value Button + m_builder->get_widget("btnshow", btn_check); + btn_check->signal_clicked().connect(sigc::mem_fun(*this, &MyApp::btncheck_clicked)); + //Scale buttons + m_builder->get_widget("scale1", scale1); + m_builder->get_widget("scale2", scale2); + //Position ComboBox + m_builder->get_widget("combo_pos", combo_pos); + combo_pos->signal_changed().connect(sigc::mem_fun(*this, &MyApp::combopos_changed)); + //Digit setting + m_builder->get_widget("digit_scale", digit_scale); + digit_scale->signal_value_changed().connect(sigc::mem_fun(*this, &MyApp::digit_changed)); + //Page size Setting + object = m_builder->get_object("adjustment1"); + main_value = Glib::RefPtr::cast_static(object); + m_builder->get_widget("size_scale", size_scale); + size_scale->signal_value_changed().connect(sigc::mem_fun(*this, &MyApp::size_changed)); + //Exit Button + m_builder->get_widget("btnexit", btn_exit); + btn_exit->signal_clicked().connect(sigc::mem_fun(*this, &MyApp::btnexit_clicked)); + window->show_all(); +} + +void MyApp::btncheck_clicked() { + bool checked; + checked = btn_check->get_active(); + scale1->set_draw_value(checked); + scale2->set_draw_value(checked); +} + +void MyApp::combopos_changed() { + //Change the position of scales + int index; + index = combo_pos->get_active_row_number(); + Gtk::PositionType pos = Gtk::PositionType::POS_TOP; + //g_print("%d\n", index); + switch (index) { + case 0: + pos = Gtk::PositionType::POS_TOP; break; + case 1: + pos = Gtk::PositionType::POS_BOTTOM; break; + case 2: + pos = Gtk::PositionType::POS_LEFT; break; + case 3: + pos = Gtk::PositionType::POS_RIGHT; break; + } + scale1->set_value_pos(pos); + scale2->set_value_pos(pos); +} + +void MyApp::digit_changed() { + //Change Digits + int digits; + digits = digit_scale->get_value(); + scale1->set_digits(digits); + scale2->set_digits(digits); +} + +void MyApp::size_changed() { + //Change Page Size + double page_size; + page_size = size_scale->get_value(); + //g_print("%f\n", page_size); + main_value->set_page_size(page_size); +} + +void MyApp::btnexit_clicked() { + delete window; +} diff --git a/Gtkmm3/gtk74_scale/src/MyApp.hh b/Gtkmm3/gtk74_scale/src/MyApp.hh new file mode 100644 index 0000000..fb250b7 --- /dev/null +++ b/Gtkmm3/gtk74_scale/src/MyApp.hh @@ -0,0 +1,36 @@ +#pragma once + +#include + +class MyApp + :public Gtk::Application +{ +public: + + static Glib::RefPtr create(); + +protected: + + void on_activate() override; + +private: + + Glib::RefPtr m_builder; + Gtk::Window* window; + Glib::RefPtr object; + Glib::RefPtr main_value; + Gtk::Scale* scale1; + Gtk::Scale* scale2; + Gtk::ComboBox* combo_pos; + Gtk::Scale* digit_scale; + Gtk::Scale* size_scale; + Gtk::CheckButton* btn_check; + Gtk::Button* btn_exit; + + void btncheck_clicked(); + void combopos_changed(); + void digit_changed(); + void size_changed(); + void btnexit_clicked(); + +}; diff --git a/Gtkmm3/gtk74_scale/src/main.cc b/Gtkmm3/gtk74_scale/src/main.cc new file mode 100644 index 0000000..71d22ec --- /dev/null +++ b/Gtkmm3/gtk74_scale/src/main.cc @@ -0,0 +1,14 @@ +#include +#include "MyApp.hh" + +void __App_Init() { +#ifdef _WIN32 + system("cmdow @ /hid"); +#endif +} + +int main(int argc, char** argv) { + __App_Init(); + auto app = MyApp::create(); + return app->run(argc, argv); +} diff --git a/Gtkmm3/gtk74_scale/src/resources.7z b/Gtkmm3/gtk74_scale/src/resources.7z new file mode 100644 index 0000000..cecc622 Binary files /dev/null and b/Gtkmm3/gtk74_scale/src/resources.7z differ