From 641f20406ba38d3949a5f1d25eb59f09b55ce2aa Mon Sep 17 00:00:00 2001 From: daleclack Date: Sat, 26 Feb 2022 11:17:55 +0800 Subject: [PATCH] Add gtk125 --- .../gtk125_backprefs3/.vscode/settings.json | 3 + Gtkmm3/gtk125_backprefs3/CMakeLists.txt | 67 +++ .../gtk125_backprefs3/res/folder-images.svg | 36 ++ Gtkmm3/gtk125_backprefs3/res/folder.svg | 35 ++ .../res/icons/16x16/actions/list-add.svg | 13 + .../res/icons/16x16/actions/list-remove.svg | 8 + .../icons/scalable/status/display_prefs.svg | 54 +++ Gtkmm3/gtk125_backprefs3/res/image_file.svg | 6 + Gtkmm3/gtk125_backprefs3/res/prefs_stack.ui | 297 ++++++++++++ Gtkmm3/gtk125_backprefs3/src/MyPrefs.cc | 457 ++++++++++++++++++ Gtkmm3/gtk125_backprefs3/src/MyPrefs.hh | 80 +++ Gtkmm3/gtk125_backprefs3/src/MyWin.cc | 44 ++ Gtkmm3/gtk125_backprefs3/src/MyWin.hh | 23 + Gtkmm3/gtk125_backprefs3/src/main.cc | 13 + Rust_tests/rust_cfgfile/.vscode/launch.json | 47 ++ Rust_tests/rust_cfgfile/Cargo.lock | 7 + Rust_tests/rust_cfgfile/Cargo.toml | 8 + Rust_tests/rust_cfgfile/src/main.rs | 5 + gtk4-rs/gtk-rs-menus/Cargo.lock | 201 +++----- 19 files changed, 1269 insertions(+), 135 deletions(-) create mode 100644 Gtkmm3/gtk125_backprefs3/.vscode/settings.json create mode 100644 Gtkmm3/gtk125_backprefs3/CMakeLists.txt create mode 100644 Gtkmm3/gtk125_backprefs3/res/folder-images.svg create mode 100644 Gtkmm3/gtk125_backprefs3/res/folder.svg create mode 100644 Gtkmm3/gtk125_backprefs3/res/icons/16x16/actions/list-add.svg create mode 100644 Gtkmm3/gtk125_backprefs3/res/icons/16x16/actions/list-remove.svg create mode 100644 Gtkmm3/gtk125_backprefs3/res/icons/scalable/status/display_prefs.svg create mode 100644 Gtkmm3/gtk125_backprefs3/res/image_file.svg create mode 100644 Gtkmm3/gtk125_backprefs3/res/prefs_stack.ui create mode 100644 Gtkmm3/gtk125_backprefs3/src/MyPrefs.cc create mode 100644 Gtkmm3/gtk125_backprefs3/src/MyPrefs.hh create mode 100644 Gtkmm3/gtk125_backprefs3/src/MyWin.cc create mode 100644 Gtkmm3/gtk125_backprefs3/src/MyWin.hh create mode 100644 Gtkmm3/gtk125_backprefs3/src/main.cc create mode 100644 Rust_tests/rust_cfgfile/.vscode/launch.json create mode 100644 Rust_tests/rust_cfgfile/Cargo.lock create mode 100644 Rust_tests/rust_cfgfile/Cargo.toml create mode 100644 Rust_tests/rust_cfgfile/src/main.rs diff --git a/Gtkmm3/gtk125_backprefs3/.vscode/settings.json b/Gtkmm3/gtk125_backprefs3/.vscode/settings.json new file mode 100644 index 0000000..b4d8c35 --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools" +} \ No newline at end of file diff --git a/Gtkmm3/gtk125_backprefs3/CMakeLists.txt b/Gtkmm3/gtk125_backprefs3/CMakeLists.txt new file mode 100644 index 0000000..585e971 --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/CMakeLists.txt @@ -0,0 +1,67 @@ +set(CMAKE_CXX_STANDARD 17) +cmake_minimum_required(VERSION 3.0.0) +project(gtk125 VERSION 1.0.0) + +list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../GCR_CMake/macros) +include(GlibCompileResourcesSupport) + +include(CTest) +enable_testing() + +set(CPACK_PROJECT_NAME ${PROJECT_NAME}) +set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) + +include(CPack) +include_directories(.) +include_directories(..) + +find_package (PkgConfig REQUIRED) +pkg_check_modules (GTKMM3 REQUIRED gtkmm-3.0) +include_directories (${GTKMM3_INCLUDE_DIRS}) +link_directories (${GTKMM3_LIBRARY_DIRS}) + +#Source files +set(SOURCE_FILE src/main.cc src/MyWin.cc src/MyPrefs.cc ../cfgfile/cfgfile.cc) + +#Compile Resource + +set(RESOURCE_LIST + icons/16x16/actions/list-add.svg + icons/16x16/actions/list-remove.svg + icons/scalable/status/display_prefs.svg + folder.svg + folder-images.svg + image_file.svg + prefs_stack.ui) + +compile_gresources(RESOURCE_FILE + XML_OUT + TYPE EMBED_C + RESOURCES ${RESOURCE_LIST} + PREFIX "/org/gtk/daleclack" + SOURCE_DIR ${PROJECT_SOURCE_DIR}/res) + +# Add a custom target to the makefile. Now make builds our resource file. +# It depends on the output RESOURCE_FILE. +add_custom_target(resource ALL DEPENDS ${RESOURCE_FILE}) + +#For win32 platform,use rc resource and .ico icon +if(WIN32) + SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) + set(app_WINRC ../icon.rc) + set_property(SOURCE ../icon.rc APPEND PROPERTY + OBJECT_DEPENDS ${PROJECT_SOURCE_DIR}/../icon.ico + ) + add_executable(${PROJECT_NAME} WIN32 ${app_WINRC} ${SOURCE_FILE} ${RESOURCE_FILE}) +else() + add_executable(${PROJECT_NAME} ${SOURCE_FILE} ${RESOURCE_FILE}) + +endif(WIN32) + +#Add command to generate .gitignore +add_custom_command(TARGET ${PROJECT_NAME} + COMMAND echo \"*\" > ${CMAKE_BINARY_DIR}/.gitignore + COMMAND echo \"**/*\" > ${CMAKE_BINARY_DIR}/.hgignore) + +SET (CMAKE_EXTRA_CXX_FLAGS ${GTKMM3_CFLAGS_OTHER}) +target_link_libraries (${PROJECT_NAME} ${GTKMM3_LIBRARIES} -lpthread) diff --git a/Gtkmm3/gtk125_backprefs3/res/folder-images.svg b/Gtkmm3/gtk125_backprefs3/res/folder-images.svg new file mode 100644 index 0000000..fb2d906 --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/res/folder-images.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Gtkmm3/gtk125_backprefs3/res/folder.svg b/Gtkmm3/gtk125_backprefs3/res/folder.svg new file mode 100644 index 0000000..e83bb59 --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/res/folder.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Gtkmm3/gtk125_backprefs3/res/icons/16x16/actions/list-add.svg b/Gtkmm3/gtk125_backprefs3/res/icons/16x16/actions/list-add.svg new file mode 100644 index 0000000..f76d5bb --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/res/icons/16x16/actions/list-add.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/Gtkmm3/gtk125_backprefs3/res/icons/16x16/actions/list-remove.svg b/Gtkmm3/gtk125_backprefs3/res/icons/16x16/actions/list-remove.svg new file mode 100644 index 0000000..d4f208c --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/res/icons/16x16/actions/list-remove.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/Gtkmm3/gtk125_backprefs3/res/icons/scalable/status/display_prefs.svg b/Gtkmm3/gtk125_backprefs3/res/icons/scalable/status/display_prefs.svg new file mode 100644 index 0000000..3cf8ce2 --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/res/icons/scalable/status/display_prefs.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Gtkmm3/gtk125_backprefs3/res/image_file.svg b/Gtkmm3/gtk125_backprefs3/res/image_file.svg new file mode 100644 index 0000000..092f227 --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/res/image_file.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Gtkmm3/gtk125_backprefs3/res/prefs_stack.ui b/Gtkmm3/gtk125_backprefs3/res/prefs_stack.ui new file mode 100644 index 0000000..6e27a1e --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/res/prefs_stack.ui @@ -0,0 +1,297 @@ + + + + + + 9999 + 1024 + 1 + 10 + + + 9999 + 576 + 1 + 10 + + + True + False + True + True + vertical + + + True + False + center + main_stack + + + False + True + 0 + + + + + True + False + + + True + False + vertical + + + + + + + + + + + + page0 + Background Preferences + + + + + True + False + center + center + True + True + vertical + 5 + + + + + + True + False + center + center + 5 + + + True + False + 128 + display_prefs + + + False + True + 0 + + + + + + True + False + 5 + 5 + + + True + False + 2 + + 640x360 + 800x450 + 1024x576 + 1280x720 + + + + 1 + 1 + 3 + + + + + Use default window size + True + True + False + True + True + radio_custom + + + 1 + 0 + 3 + + + + + User defined window size + True + True + False + True + + + 1 + 2 + 3 + + + + + True + False + True + adjustment1 + 1024 + + + 1 + 3 + + + + + True + False + True + adjustment2 + 576 + + + 3 + 3 + + + + + True + False + x + + + 2 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + True + 1 + + + + + False + False + 1 + + + + + True + False + True + True + + + Apply + True + True + True + end + + + False + True + end + 0 + + + + + Get Current + True + False + True + True + + + False + True + end + 1 + + + + + True + False + Current Config: + + + False + True + 2 + + + + + False + True + end + 2 + + + + + page1 + Window Size Config + 1 + + + + + False + True + 1 + + + + + + + diff --git a/Gtkmm3/gtk125_backprefs3/src/MyPrefs.cc b/Gtkmm3/gtk125_backprefs3/src/MyPrefs.cc new file mode 100644 index 0000000..44a1763 --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/src/MyPrefs.cc @@ -0,0 +1,457 @@ +#include "MyPrefs.hh" +#include "winpe.xpm" +#include "../Gtk4/img7.xpm" +#include "image_types.hh" +#include "cfgfile/cfgfile.hh" +#include +#include +#include + +MyPrefs::MyPrefs() + : main_box(Gtk::ORIENTATION_VERTICAL, 10), + views_box(Gtk::ORIENTATION_HORIZONTAL, 5), + btnbox(Gtk::ORIENTATION_HORIZONTAL, 5), + width(1024), + height(576) +{ + /*Step 1: Initalize widget that without Gtk::Builder*/ + + // Initalize Window + set_title(_("Window Preferences")); + set_default_size(800, 450); + + // Initalize Stores + folders_store = Gtk::ListStore::create(n_columns); + folders_store->set_default_sort_func(sigc::mem_fun(*this, &MyPrefs::sort_func)); + folders_store->set_sort_column(-1, Gtk::SORT_ASCENDING); + folders_view.set_model(folders_store); + folder_selection = folders_view.get_selection(); + folder_selection->signal_changed().connect(sigc::mem_fun(*this, &MyPrefs::folders_view_changed)); + + images_store = Gtk::ListStore::create(n_columns); + images_store->set_default_sort_func(sigc::mem_fun(*this, &MyPrefs::sort_func)); + images_store->set_sort_column(-1, Gtk::SORT_ASCENDING); + images_view.set_model(images_store); + image_selection = images_view.get_selection(); + image_selection->signal_changed().connect(sigc::mem_fun(*this, &MyPrefs::images_view_changed)); + + // Load Pixbufs + auto pixbuf = Gdk::Pixbuf::create_from_resource("/org/gtk/daleclack/folder.svg"); + folder_pixbuf = pixbuf->scale_simple(24, 24, Gdk::INTERP_BILINEAR); + pixbuf.reset(); + pixbuf = Gdk::Pixbuf::create_from_resource("/org/gtk/daleclack/folder-images.svg"); + image_pixbuf = pixbuf->scale_simple(24, 24, Gdk::INTERP_BILINEAR); + pixbuf.reset(); + pixbuf = Gdk::Pixbuf::create_from_resource("/org/gtk/daleclack/image_file.svg"); + imagefile_pixbuf = pixbuf->scale_simple(24, 24, Gdk::INTERP_BILINEAR); + pixbuf.reset(); + + // Add Default Value for folders view + auto row = *(folders_store->append()); + row[n_columns.m_col_path] = ""; + row[n_columns.m_col_name] = _("Default Backgrounds"); + row[n_columns.m_col_pixbuf] = folder_pixbuf; + row[n_columns.m_col_internal] = true; + + row = *(folders_store->append()); + row[n_columns.m_col_path] = Glib::get_home_dir(); + row[n_columns.m_col_name] = _("User's Home"); + row[n_columns.m_col_pixbuf] = folder_pixbuf; + row[n_columns.m_col_internal] = false; + + row = *(folders_store->append()); + row[n_columns.m_col_path] = Glib::get_user_special_dir(Glib::USER_DIRECTORY_PICTURES); + row[n_columns.m_col_name] = _("User's Pictures Directory"); + row[n_columns.m_col_pixbuf] = image_pixbuf; + row[n_columns.m_col_internal] = false; + + // Append Column for the folders view + folders_view.append_column(" ", n_columns.m_col_pixbuf); + folders_view.append_column(_("Name"), n_columns.m_col_name); + + // Default Value for imags view + default_folders_view(); + images_view.append_column(" ", n_columns.m_col_pixbuf); + images_view.append_column(_("Images"), n_columns.m_col_name); + + // Add Views + main_box.pack_start(views_box); + sw_folders.add(folders_view); + views_box.pack_start(sw_folders); + sw_images.add(images_view); + views_box.pack_start(sw_images); + + // Allow Selection + has_selection = true; + + // Add Control Buttons + btnadd.set_image_from_icon_name("list-add"); + btnadd.signal_clicked().connect(sigc::mem_fun(*this, &MyPrefs::btnadd_clicked)); + btnremove.set_image_from_icon_name("list-remove"); + btnremove.signal_clicked().connect(sigc::mem_fun(*this, &MyPrefs::btnremove_clicked)); + btnbox.pack_start(btnadd, Gtk::PACK_SHRINK); + btnbox.pack_start(btnremove, Gtk::PACK_SHRINK); + main_box.pack_start(btnbox, Gtk::PACK_SHRINK); + + // Add Main Box to window + const int margin_value = 15; + main_box.set_hexpand(); + main_box.set_vexpand(); + main_box.set_margin_top(margin_value); + main_box.set_margin_bottom(margin_value); + main_box.set_margin_start(margin_value); + main_box.set_margin_end(margin_value); + + /*Step 2: Initalize widgets from glade xml file ('.ui' file)*/ + + // Get Widgets for multi pages + stackbuilder = Gtk::Builder::create_from_resource("/org/gtk/daleclack/prefs_stack.ui"); + stackbuilder->get_widget("stack_box", stack_box); + stackbuilder->get_widget("back_page", back_page); + stackbuilder->get_widget("combo_default", combo_default); + stackbuilder->get_widget("radio_default", radio_default); + stackbuilder->get_widget("radio_custom", radio_custom); + stackbuilder->get_widget("spin_width", spin_width); + stackbuilder->get_widget("spin_height", spin_height); + stackbuilder->get_widget("btnapply", btnapply); + stackbuilder->get_widget("btnGet",btnGet); + stackbuilder->get_widget("label_size",label_size); + + // Initalize radio buttons + radio_default->set_active(); + radio_default->signal_toggled().connect(sigc::mem_fun(*this, &MyPrefs::radiobutton_toggled)); + radio_custom->signal_toggled().connect(sigc::mem_fun(*this, &MyPrefs::radiobutton_toggled)); + + // Initalize other widgets + btnapply->signal_clicked().connect(sigc::mem_fun(*this, &MyPrefs::btnapply_clicked)); + btnGet->signal_clicked().connect(sigc::mem_fun(*this,&MyPrefs::btnGet_clicked)); + + // Initalize Label + load_winsize_config(); + const char * cfgstr = _("Current Config"); + char * size_str = g_strdup_printf("%s: %d x %d", cfgstr, width, height); + label_size->set_label(size_str); + g_free(size_str); + + back_page->pack_start(main_box); + add(*stack_box); + show_all_children(); +} + +void MyPrefs::btnadd_clicked() +{ + // Create a dialog + dialog = Gtk::FileChooserNative::create(_("Add a folder"), *this, + Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER, _("OK"), _("Cancel")); + + dialog->signal_response().connect(sigc::mem_fun(*this, &MyPrefs::dialog_response)); + + dialog->show(); +} + +void MyPrefs::dialog_response(int response_id) +{ + if (response_id == Gtk::RESPONSE_ACCEPT) + { + // Get File Basename and Path + auto file = dialog->get_file(); + auto basename = file->get_basename(); + auto filename = file->get_path(); + + // Add to list + auto row = *(folders_store->append()); + row[n_columns.m_col_path] = filename; + row[n_columns.m_col_name] = basename; + row[n_columns.m_col_pixbuf] = folder_pixbuf; + + file.reset(); + } + dialog.reset(); +} + +void MyPrefs::btnremove_clicked() +{ + // Get the selection and remove the selected item + auto iter = folder_selection->get_selected(); + if (iter) + { + folders_store->erase(iter); + } +} + +void MyPrefs::folders_view_changed() +{ + // Get Selected Folder + auto row = *(folder_selection->get_selected()); + if (row[n_columns.m_col_internal]) + { + // The default folder + default_folders_view(); + } + else + { + // User defined folder + std::string path = row[n_columns.m_col_path]; + update_images_view(path); + } +} + +void MyPrefs::default_folders_view() +{ + // Clear the store + images_store->clear(); + + // Add Default values + auto row = *(images_store->append()); + row[n_columns.m_col_path] = ":1"; + row[n_columns.m_col_name] = "winpe.xpm"; + row[n_columns.m_col_internal] = true; + row[n_columns.m_col_pixbuf] = imagefile_pixbuf; + + row = *(images_store->append()); + row[n_columns.m_col_path] = ":2"; + row[n_columns.m_col_name] = "img7.xpm"; + row[n_columns.m_col_internal] = true; + row[n_columns.m_col_pixbuf] = imagefile_pixbuf; +} + +int MyPrefs::sort_func(const Gtk::TreeModel::iterator &a, const Gtk::TreeModel::iterator &b) +{ + Glib::ustring name_a, name_b; + + // Get file names + auto row_a = *(a); + auto row_b = *(b); + name_a = row_a[n_columns.m_col_name]; + name_b = row_b[n_columns.m_col_name]; + + // Proform sort process + if (name_a[0] != '.' && name_b[0] == '.') + { + return 1; + } + if (name_a[0] == '.' && name_b[0] != '.') + { + return -1; + } + else + { + return g_utf8_collate(name_a.c_str(), name_b.c_str()); + } +} + +bool MyPrefs::icasecompare(const std::string &a, const std::string &b) +{ + if (a.length() == b.length()) + { + return std::equal(a.begin(), a.end(), b.begin(), + [](char a, char b) + { + return tolower(a) == tolower(b); + }); + } + else + { + return false; + } +} + +void MyPrefs::update_images_view(std::string &folder_path) +{ + // Unselect everything + has_selection = false; + + // Clear the store + images_store->clear(); + + // Add Files into store + try + { + Glib::Dir dir1(folder_path); + bool is_dir, file_valid; + Glib::ustring display_name; + std::string filename, pathname; + + do + { + // Get File Name + filename = dir1.read_name(); + + // Get Path for a file + pathname = Glib::build_filename(folder_path, filename); + is_dir = Glib::file_test(pathname, Glib::FILE_TEST_IS_DIR); + display_name = Glib::filename_to_utf8(filename); + + // Filter the file + // Get Pattern of the file + file_valid = false; + size_t pos = filename.find_last_of('.'); + if (pos != std::string::npos) + { + std::string pattern = "*" + filename.substr(pos); + for (int i = 0; supported_globs[i] != NULL; i++) + { + std::string glob = std::string(supported_globs[i]); + if (icasecompare(glob, pattern)) + { + file_valid = true; + break; + } + } + } + + if (!is_dir && file_valid) + { + // Add item to store + auto row = *(images_store->append()); + row[n_columns.m_col_path] = pathname; + row[n_columns.m_col_name] = display_name; + row[n_columns.m_col_internal] = false; + row[n_columns.m_col_pixbuf] = imagefile_pixbuf; + } + } while (filename != ""); + + has_selection = true; + } + catch (Glib::Error &ex) + { + std::cout << ex.what() << std::endl; + } +} + +void MyPrefs::images_view_changed() +{ + // Set the background as selected + if (has_selection) + { + auto row = *(image_selection->get_selected()); + if (row[n_columns.m_col_internal]) + { + path = row[n_columns.m_col_path]; + switch (path[1]) + { + case '1': + set_background_internal(winpe); + break; + case '2': + set_background_internal(img7); + break; + } + } + else + { + path = row[n_columns.m_col_path]; + set_background_file(); + } + } +} + +void MyPrefs::set_background_internal(const char *const *data) +{ + // Set a internal background + auto pixbuf = Gdk::Pixbuf::create_from_xpm_data(data); + auto sized = pixbuf->scale_simple(width, height, Gdk::INTERP_BILINEAR); + gtk_image_set_from_pixbuf(background1->gobj(), sized->gobj()); + pixbuf.reset(); + sized.reset(); + background_internal = true; +} + +void MyPrefs::set_background_file() +{ + // Set Background from a file + auto pixbuf = Gdk::Pixbuf::create_from_file(path); + auto sized = pixbuf->scale_simple(width, height, Gdk::INTERP_BILINEAR); + gtk_image_set_from_pixbuf(background1->gobj(), sized->gobj()); + pixbuf.reset(); + sized.reset(); + background_internal = false; +} + +void MyPrefs::update_background_size() +{} + +void MyPrefs::set_background(Gtk::Image *back) +{ + background1 = back; +} + +void MyPrefs::radiobutton_toggled() +{ + // Change sensitive state of buttons + bool mode = radio_default->get_active(); + combo_default->set_sensitive(mode); + spin_height->set_sensitive(!mode); + spin_width->set_sensitive(!mode); + btnGet->set_sensitive(!mode); +} + +void MyPrefs::btnapply_clicked() +{ + // Get Config + if (radio_default->get_active()) + { + int mode = combo_default->get_active_row_number(); + switch (mode) + { + case 0: + width = 640; + height = 360; + break; + case 1: + width = 800; + height = 576; + break; + case 2: + width = 1024; + height = 576; + break; + case 3: + width = 1280; + height = 720; + break; + } + } + else + { + width = spin_width->get_value_as_int(); + height = spin_height->get_value_as_int(); + } + + // Open the file for configs + std::fstream outfile; + outfile.open("config", std::ios_base::out); + if (outfile.is_open()) + { + outfile << "width=" << width << std::endl; + outfile << "height=" << height << std::endl; + outfile.close(); + } +} + +void MyPrefs::btnGet_clicked() +{ + //Get Current Window Size + width = background1->get_width(); + height = background1->get_height(); + spin_width->set_value(width); + spin_height->set_value(height); +} + +void MyPrefs::load_winsize_config(){ + std::string height_str, width_str; + + // Read values from a file + if (readCfgFile("config", "width", width_str) && readCfgFile("config", "height", height_str)) + { + height = atoi(height_str.c_str()); + width = atoi(width_str.c_str()); + } +} + +void MyPrefs::get_winsize_config(int &width1, int &height1) +{ + // Apply Config + width1 = width; + height1 = height; +} diff --git a/Gtkmm3/gtk125_backprefs3/src/MyPrefs.hh b/Gtkmm3/gtk125_backprefs3/src/MyPrefs.hh new file mode 100644 index 0000000..f9a923d --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/src/MyPrefs.hh @@ -0,0 +1,80 @@ +#pragma once + +#include +#include + +class MyPrefs : public Gtk::Window +{ +public: + MyPrefs(); + void set_background(Gtk::Image *back); + void load_winsize_config(); + void get_winsize_config(int &width1,int &height1); + void update_background_size(); + +protected: + class ModelColumns : public Gtk::TreeModelColumnRecord + { + public: + ModelColumns() + { + add(m_col_pixbuf); + add(m_col_path); + add(m_col_name); + add(m_col_internal); + } + Gtk::TreeModelColumn> m_col_pixbuf; + Gtk::TreeModelColumn m_col_path; + Gtk::TreeModelColumn m_col_name; + Gtk::TreeModelColumn m_col_internal; + }; + + ModelColumns n_columns; + Glib::RefPtr folders_store, images_store; + Glib::RefPtr folder_selection, image_selection; + bool has_selection; + +private: + // Background widget and properties + int width, height; + Gtk::Image *background1; + std::string path; + bool background_internal; + + //Page switcher and another page + Glib::RefPtr stackbuilder; + Gtk::Box *stack_box, *back_page, *winsize_page; + Gtk::RadioButton *radio_default, *radio_custom; + Gtk::ComboBoxText *combo_default; + Gtk::SpinButton *spin_width, *spin_height; + Gtk::Button *btnapply, *btnGet; + Gtk::Label *label_size; + + // Child Widgets + Gtk::TreeView folders_view, images_view; + Gtk::ScrolledWindow sw_folders, sw_images; + Gtk::Box main_box, views_box, btnbox; + Gtk::Button btnadd, btnremove; + + // Folder Open Dialog + Glib::RefPtr folder_pixbuf, image_pixbuf, imagefile_pixbuf; + Glib::RefPtr dialog; + void dialog_response(int response_id); + + // Sort for ListStore + int sort_func(const Gtk::TreeModel::iterator &a, const Gtk::TreeModel::iterator &b); + bool icasecompare(const std::string &a, const std::string &b); + + // Signal Handlers + void btnadd_clicked(); + void btnremove_clicked(); + void folders_view_changed(); + void images_view_changed(); + void default_folders_view(); + void update_images_view(std::string &folder_path); + void set_background_internal(const char *const *data); + void set_background_file(); + void radiobutton_toggled(); + void btnapply_clicked(); + void btnGet_clicked(); +}; diff --git a/Gtkmm3/gtk125_backprefs3/src/MyWin.cc b/Gtkmm3/gtk125_backprefs3/src/MyWin.cc new file mode 100644 index 0000000..6e78633 --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/src/MyWin.cc @@ -0,0 +1,44 @@ +#include "MyWin.hh" +#include "winpe.xpm" + +MyWin::MyWin() +{ + int width, height; + + // Initalize Window + set_icon_name("org.gtk.daleclack"); + set_title(_("Background Preferences Test")); + + prefs_win.get_winsize_config(width, height); + + // Add Background + auto pixbuf = Gdk::Pixbuf::create_from_xpm_data(winpe); + auto sized = pixbuf->scale_simple(width, height, Gdk::INTERP_BILINEAR); + gtk_image_set_from_pixbuf(m_back.gobj(), sized->gobj()); + pixbuf.reset(); + sized.reset(); + + // Button for background + btnback.set_label(_("Window Preferences")); + btnback.set_halign(Gtk::ALIGN_CENTER); + btnback.set_valign(Gtk::ALIGN_CENTER); + btnback.set_relief(Gtk::RELIEF_NONE); + m_overlay.add_overlay(btnback); + btnback.signal_clicked().connect(sigc::mem_fun(*this, &MyWin::btnback_clicked)); + + // Add widgets + m_back.set_hexpand(); + m_back.set_vexpand(); + m_overlay.add(m_back); + add(m_overlay); + + // Initalize MyPrefs + prefs_win.set_background(&m_back); + + show_all_children(); +} + +void MyWin::btnback_clicked() +{ + prefs_win.show_all(); +} diff --git a/Gtkmm3/gtk125_backprefs3/src/MyWin.hh b/Gtkmm3/gtk125_backprefs3/src/MyWin.hh new file mode 100644 index 0000000..f989f65 --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/src/MyWin.hh @@ -0,0 +1,23 @@ +#pragma once + +#include +#include +#include "MyPrefs.hh" + +class MyWin : public Gtk::Window +{ +public: + MyWin(); + +private: + //Child Widgets + Gtk::Overlay m_overlay; + Gtk::Image m_back; + Gtk::Button btnback; + + //Background Preferences + MyPrefs prefs_win; + + //Signal Handlers + void btnback_clicked(); +}; diff --git a/Gtkmm3/gtk125_backprefs3/src/main.cc b/Gtkmm3/gtk125_backprefs3/src/main.cc new file mode 100644 index 0000000..8184648 --- /dev/null +++ b/Gtkmm3/gtk125_backprefs3/src/main.cc @@ -0,0 +1,13 @@ +#include "MyWin.hh" + +int main(int argc,char ** argv){ + // Initalize gettext + // bindtextdomain(GETTEXT_PACKAGE, PROGRAMNAME_LOCALEDIR); + // bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); + // textdomain(GETTEXT_PACKAGE); + + // Create application and run + auto app = Gtk::Application::create(argc,argv,"org.gtk.daleclack"); + MyWin window; + return app->run(window); +} diff --git a/Rust_tests/rust_cfgfile/.vscode/launch.json b/Rust_tests/rust_cfgfile/.vscode/launch.json new file mode 100644 index 0000000..cdd58f5 --- /dev/null +++ b/Rust_tests/rust_cfgfile/.vscode/launch.json @@ -0,0 +1,47 @@ +{ + // 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": [ + { + "type": "lldb", + "request": "launch", + "name": "Debug executable 'rust_cfgfile'", + "cargo": { + "args": [ + "build", + "--bin=rust_cfgfile", + "--package=rust_cfgfile", + "--release" + ], + "filter": { + "name": "rust_cfgfile", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + }, + { + "type": "lldb", + "request": "launch", + "name": "Debug unit tests in executable 'rust_cfgfile'", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=rust_cfgfile", + "--package=rust_cfgfile", + "--release" + ], + "filter": { + "name": "rust_cfgfile", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}" + } + ] +} \ No newline at end of file diff --git a/Rust_tests/rust_cfgfile/Cargo.lock b/Rust_tests/rust_cfgfile/Cargo.lock new file mode 100644 index 0000000..d749001 --- /dev/null +++ b/Rust_tests/rust_cfgfile/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "rust_cfgfile" +version = "0.1.0" diff --git a/Rust_tests/rust_cfgfile/Cargo.toml b/Rust_tests/rust_cfgfile/Cargo.toml new file mode 100644 index 0000000..356f63a --- /dev/null +++ b/Rust_tests/rust_cfgfile/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "rust_cfgfile" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/Rust_tests/rust_cfgfile/src/main.rs b/Rust_tests/rust_cfgfile/src/main.rs new file mode 100644 index 0000000..1b31126 --- /dev/null +++ b/Rust_tests/rust_cfgfile/src/main.rs @@ -0,0 +1,5 @@ +use std::fs; + +fn main() { + println!("Hello, world!"); +} diff --git a/gtk4-rs/gtk-rs-menus/Cargo.lock b/gtk4-rs/gtk-rs-menus/Cargo.lock index aa09737..eb227ce 100644 --- a/gtk4-rs/gtk-rs-menus/Cargo.lock +++ b/gtk4-rs/gtk-rs-menus/Cargo.lock @@ -22,9 +22,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "cairo-rs" -version = "0.14.9" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b5725979db0c586d98abad2193cdb612dd40ef95cd26bd99851bf93b3cb482" +checksum = "e8b14c80d8d1a02fa6d914b9d1afeeca9bc34257f8300d9696e1e331ae114223" dependencies = [ "bitflags", "cairo-sys-rs", @@ -35,39 +35,24 @@ dependencies = [ [[package]] name = "cairo-sys-rs" -version = "0.14.9" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b448b876970834fda82ba3aeaccadbd760206b75388fc5c1b02f1e343b697570" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" dependencies = [ "glib-sys", "libc", - "system-deps 3.2.0", + "system-deps", ] [[package]] name = "cfg-expr" -version = "0.8.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e" +checksum = "295b6eb918a60a25fec0b23a5e633e74fddbaf7bb04411e65a10c366aca4b5cd" dependencies = [ "smallvec", ] -[[package]] -name = "cfg-expr" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edae0b9625d1fce32f7d64b71784d9b1bf8469ec1a9c417e44aaf16a9cbd7571" -dependencies = [ - "smallvec", -] - -[[package]] -name = "either" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" - [[package]] name = "field-offset" version = "0.3.4" @@ -131,10 +116,11 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.14.0" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534192cb8f01daeb8fab2c8d4baa8f9aae5b7a39130525779f5c2608e235b10f" +checksum = "d8750501d75f318c2ec0314701bc8403901303210def80bafd13f6b6059a3f45" dependencies = [ + "bitflags", "gdk-pixbuf-sys", "gio", "glib", @@ -143,22 +129,22 @@ dependencies = [ [[package]] name = "gdk-pixbuf-sys" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f097c0704201fbc8f69c1762dc58c6947c8bb188b8ed0bc7e65259f1894fe590" +checksum = "413424d9818621fa3cfc8a3a915cdb89a7c3c507d56761b4ec83a9a98e587171" dependencies = [ "gio-sys", "glib-sys", "gobject-sys", "libc", - "system-deps 3.2.0", + "system-deps", ] [[package]] name = "gdk4" -version = "0.3.1" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f97a162c17214d1bf981af3f683156a0b1667dd1927057c4f0a68513251ecf0f" +checksum = "d9df40006277ff44538fe758400fc671146f6f2665978b6b57d2408db3c2becf" dependencies = [ "bitflags", "cairo-rs", @@ -172,26 +158,26 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9498f4e06969fb96a4e4234dfe1d308a3ac6b120b3c6d93e3ec5c77fe88bc6d5" +checksum = "48a39e34abe35ee2cf54a1e29dd983accecd113ad30bdead5050418fa92f2a1b" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gio-sys", "glib-sys", "gobject-sys", - "graphene-sys", "libc", "pango-sys", - "system-deps 5.0.0", + "pkg-config", + "system-deps", ] [[package]] name = "gio" -version = "0.14.8" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711c3632b3ebd095578a9c091418d10fed492da9443f58ebc8f45efbeb215cb0" +checksum = "96efd8a1c00d890f6b45671916e165b5e43ccec61957d443aff6d7e44f62d348" dependencies = [ "bitflags", "futures-channel", @@ -206,22 +192,22 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.14.0" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0a41df66e57fcc287c4bcf74fc26b884f31901ea9792ec75607289b456f48fa" +checksum = "1d0fa5052773f5a56b8ae47dab09d040f5d9ce1311f4f99006e16e9a08269296" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 3.2.0", + "system-deps", "winapi", ] [[package]] name = "glib" -version = "0.14.8" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c515f1e62bf151ef6635f528d05b02c11506de986e43b34a5c920ef0b3796a4" +checksum = "aa570813c504bdf7539a9400180c2dd4b789a819556fb86da7226d7d1b037b49" dependencies = [ "bitflags", "futures-channel", @@ -234,13 +220,14 @@ dependencies = [ "libc", "once_cell", "smallvec", + "thiserror", ] [[package]] name = "glib-macros" -version = "0.14.1" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aad66361f66796bfc73f530c51ef123970eb895ffba991a234fcf7bea89e518" +checksum = "41bfd8d227dead0829ac142454e97531b93f576d0805d779c42bfd799c65c572" dependencies = [ "anyhow", "heck", @@ -253,30 +240,30 @@ dependencies = [ [[package]] name = "glib-sys" -version = "0.14.0" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c1d60554a212445e2a858e42a0e48cece1bd57b311a19a9468f70376cf554ae" +checksum = "f4366377bd56697de8aaee24e673c575d2694d72e7756324ded2b0428829a7b8" dependencies = [ "libc", - "system-deps 3.2.0", + "system-deps", ] [[package]] name = "gobject-sys" -version = "0.14.0" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa92cae29759dae34ab5921d73fff5ad54b3d794ab842c117e36cafc7994c3f5" +checksum = "df6859463843c20cf3837e3a9069b6ab2051aeeadf4c899d33344f4aea83189a" dependencies = [ "glib-sys", "libc", - "system-deps 3.2.0", + "system-deps", ] [[package]] name = "graphene-rs" -version = "0.14.8" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3380f132530ef9eb9e0a2bac180e30390aa5e49892d20294f822a974117a563" +checksum = "7c54f9fbbeefdb62c99f892dfca35f83991e2cb5b46a8dc2a715e58612f85570" dependencies = [ "glib", "graphene-sys", @@ -285,21 +272,21 @@ dependencies = [ [[package]] name = "graphene-sys" -version = "0.14.8" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9ac7450b3aa80792513a3c029920a2ede419de13fb5169a4e51b07a5685332" +checksum = "03f311acb023cf7af5537f35de028e03706136eead7f25a31e8fd26f5011e0b3" dependencies = [ "glib-sys", "libc", "pkg-config", - "system-deps 3.2.0", + "system-deps", ] [[package]] name = "gsk4" -version = "0.3.1" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff59ca46c4fc5087fd7a0c3770a71ea4b6e94f8c24c12e2c2e8538f9f6fd764" +checksum = "1bf63d454e2f75abd92ee6de0ac9fc5aaf1018cd9c458aaf9de296c5cbab6bb9" dependencies = [ "bitflags", "cairo-rs", @@ -313,9 +300,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13aa53ce70234da02f9954339d988d5ab853d746a8f47a4ae17735ff873545b5" +checksum = "e31d21d7ce02ba261bb24c50c4ab238a10b41a2c97c32afffae29471b7cca69b" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -324,7 +311,7 @@ dependencies = [ "graphene-sys", "libc", "pango-sys", - "system-deps 5.0.0", + "system-deps", ] [[package]] @@ -336,9 +323,9 @@ dependencies = [ [[package]] name = "gtk4" -version = "0.3.1" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58a04f421d1485ba4739e723199f5828bca05ab4e622ed39a96a342b6b1a6a3d" +checksum = "9e841556e3fe55d8a43ada76b7b08a5f65570bbdfe3b8f72c333053b8832c626" dependencies = [ "bitflags", "cairo-rs", @@ -359,13 +346,11 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.3.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5068d4354af02454f44687adc613100aa98ae11e273cdcac84f89dc08be2b4a1" +checksum = "573db42bb64973a4d5f718b73caa7204285a1a665308a23b11723d0ee56ec305" dependencies = [ "anyhow", - "heck", - "itertools", "proc-macro-crate", "proc-macro-error", "proc-macro2", @@ -375,9 +360,9 @@ dependencies = [ [[package]] name = "gtk4-sys" -version = "0.3.1" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e20a64c8f0ddcff8902ff04c130747f2fb7834a43530f75d03d6c71335733b49" +checksum = "c47c075e8f795c38f6e9a47b51a73eab77b325f83c0154979ed4d4245c36490d" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -389,26 +374,14 @@ dependencies = [ "gsk4-sys", "libc", "pango-sys", - "system-deps 5.0.0", + "system-deps", ] [[package]] name = "heck" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "itertools" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf" -dependencies = [ - "either", -] +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" [[package]] name = "libc" @@ -433,9 +406,9 @@ checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" [[package]] name = "pango" -version = "0.14.8" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "546fd59801e5ca735af82839007edd226fe7d3bb06433ec48072be4439c28581" +checksum = "78c7420fc01a390ec200da7395b64d705f5d82fe03e5d0708aee422c46538be7" dependencies = [ "bitflags", "glib", @@ -446,14 +419,14 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2367099ca5e761546ba1d501955079f097caa186bb53ce0f718dca99ac1942fe" +checksum = "7022c2fb88cd2d9d55e1a708a8c53a3ae8678234c4a54bf623400aeb7f31fac2" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 3.2.0", + "system-deps", ] [[package]] @@ -479,9 +452,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.22" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f" +checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" [[package]] name = "proc-macro-crate" @@ -580,24 +553,6 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" -[[package]] -name = "strum" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" - -[[package]] -name = "strum_macros" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "syn" version = "1.0.82" @@ -611,29 +566,11 @@ dependencies = [ [[package]] name = "system-deps" -version = "3.2.0" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6" +checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" dependencies = [ - "anyhow", - "cfg-expr 0.8.1", - "heck", - "itertools", - "pkg-config", - "strum", - "strum_macros", - "thiserror", - "toml", - "version-compare", -] - -[[package]] -name = "system-deps" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" -dependencies = [ - "cfg-expr 0.9.0", + "cfg-expr", "heck", "pkg-config", "toml", @@ -675,12 +612,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" -[[package]] -name = "unicode-segmentation" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" - [[package]] name = "unicode-xid" version = "0.2.2" @@ -689,9 +620,9 @@ checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" [[package]] name = "version-compare" -version = "0.0.11" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" +checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" [[package]] name = "version_check"