Material Design Art Provider for wxRuby3
This custom Art Provider was inspired by wxMaterialDesignArtProvider
but rewritten in pure Ruby for use with wxRuby3.
See the License section below to see where the original icons were taken from.
Installing
wxRuby3-MaterialDesignArtProvider is distributed as a Ruby gem on RubyGems. This gem can also be downloaded from the release assets on Github.
Installing the gem requires no additional installation steps and/or additional software to be installed except for a supported version of the Ruby interpreter. So the following command is all it takes to install:
shell
gem install wxruby3-mdap
Using
To add Wx::MDAP::MaterialDesignArtProvider
to your project you first need to require
it like this:
ruby
require 'wx' # make sure the wxRuby3 libraries have been loaded
require 'wx/mdap' # now load the wxRuby3-MaterialDesignArtProvider library
Next, before you load images through Wx::ArtProvider register the Wx::MDAP::MaterialDesignArtProvider like this:
ruby
Wx::ArtProvider.push(Wx::MDAP::MaterialDesignArtProvider.new)
# You can in fact normally also reference the class as `Wx::MaterialDesignArtProvider` (unless the constant
# `Wx::MaterialDesignArtProvider` was already defined before requiring 'wx/mdap').
Now that the new art provider has been installed the new Material Design art ids can be used. Constants for these are
all defined in the Wx::MDAP
module as ‘Wx::MDAP::ART_ICON_NAME’ (see here).
Many of these art ids are available under most of the various client ids (also defined here)
while others are only available under some client ids (as can be seen in the documentation).
The client ids each correspond to a different collection in the full dataset:
-
Material Design art
Wx::MDAP::ART_MATERIAL_DESIGN_FILLED
Wx::MDAP::ART_MATERIAL_DESIGN_OUTLINE
Wx::MDAP::ART_MATERIAL_DESIGN_ROUND
Wx::MDAP::ART_MATERIAL_DESIGN_SHARP
Wx::MDAP::ART_MATERIAL_DESIGN_TWO_TONE
-
Font Awesome art
Wx::MDAP::ART_FONT_AWESOME_SOLID
Wx::MDAP::ART_FONT_AWESOME_REGULAR
Wx::MDAP::ART_FONT_AWESOME_BRANDS
-
Fluent UI art
Wx::MDAP::ART_FLUENT_UI_FILLED
Wx::MDAP::ART_FLUENT_UI_REGULAR
-
Simple Icons art
Wx::MDAP::ART_SIMPLE_ICONS_ICONS
Of these collections, Wx::MDAP::ART_FONT_AWESOME_BRANDS
and Wx::MDAP::ART_SIMPLE_ICONS_ICONS
are the odd
ones out as these do not contain any action/function icons but rather brand/logo icons.
Extensions
wxRuby3-MaterialDesignArtProvider offers several extensions to improve options for using the Material Design art:
-
Wx::MDAP::MaterialDesignArtProvider
supports mapping of standard wxRuby3 Art (Client) ids to Material Design ids so you can transparently switch standard art; -
Wx::MDAP::MaterialDesignArtProvider
supports using custom colors with Material Design art; -
Wx::MDAP::MaterialDesignArtProvider
supports using custom default sizes with Material Design art.
See Wx::MDAP::MaterialDesignArtProvider for details concerning these extensions.
Example
For more details and a working example of how to use Wx::MDAP::MaterialDesignArtProvider see here.
License
- FontAwesome icons from the FontAwesome 6 SVG set are subject to the CC BY 4.0 License
(the included icons have been copied from https://github.com/FortAwesome/Font-Awesome) - MaterialDesign icons are created by Google and subject to the Apache 2.0 License
(the included SVG icons have been copied from https://github.com/marella/material-design-icons) - SimpleIcons are subject to the CC0 1.0 License
(the included icons haven been copied from https://github.com/simple-icons/simple-icons) - FluentUI icons are subject to the MIT License
(included SVG icons taken from FluentUI icons)
The wxRuby3 MaterialDesignArtProvider library itself is released under the MIT License.