Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mcorino/wxruby3-materialdesignartprovider

MaterialDesign Art Provider for wxRuby3
https://github.com/mcorino/wxruby3-materialdesignartprovider

cross-platform cross-platform-gui gtk gtk3 gui linux mac osx ruby win32 windows wxruby wxruby3

Last synced: 2 months ago
JSON representation

MaterialDesign Art Provider for wxRuby3

Awesome Lists containing this project

README

        

[![License](https://img.shields.io/badge/license-MIT-yellowgreen.svg)](LICENSE)
[![Gem Version](https://badge.fury.io/rb/wxruby3-mdap.svg)](https://badge.fury.io/rb/wxruby3-mdap)
[![Documentation](https://img.shields.io/badge/docs-pages-blue.svg)](https://mcorino.github.io/wxRuby3-MaterialDesignArtProvider)

# Material Design Art Provider for wxRuby3

This custom Art Provider was inspired by [wxMaterialDesignArtProvider](https://github.com/perazz/wxMaterialDesignArtProvider)
but rewritten in pure Ruby for use with [wxRuby3](https://github.com/mcorino/wxRuby3).

See the [License](#license) section below to see where the original icons were taken from.

![screenshots](assets/readme-screenshots.png)

## Installing

wxRuby3-MaterialDesignArtProvider is distributed as a Ruby gem on [RubyGems](https://rubygems.org/). This gem can also
be downloaded from the release assets on [Github](https://github.com/mcorino/wxRuby3-MaterialDesignArtProvider/releases).

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](https://mcorino.github.io/wxRuby3-MaterialDesignArtProvider/Wx/MDAP/MaterialDesignArtProvider.html)
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](https://mcorino.github.io/wxRuby3/Wx/ArtProvider.html) register
the [Wx::MDAP::MaterialDesignArtProvider](https://mcorino.github.io/wxRuby3-MaterialDesignArtProvider/Wx/MDAP/MaterialDesignArtProvider.html) 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](https://mcorino.github.io/wxRuby3-MaterialDesignArtProvider/Wx/MDAP.html)).
Many of these art ids are available under most of the various client ids (also defined [here](https://mcorino.github.io/wxRuby3-MaterialDesignArtProvider/Wx/MDAP.html))
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:

1. `Wx::MDAP::MaterialDesignArtProvider` supports mapping of standard wxRuby3 Art (Client) ids to Material Design ids so
you can transparently switch standard art;
2. `Wx::MDAP::MaterialDesignArtProvider` supports using custom colors with Material Design art;
3. `Wx::MDAP::MaterialDesignArtProvider` supports using custom default sizes with Material Design art.

See [Wx::MDAP::MaterialDesignArtProvider](https://mcorino.github.io/wxRuby3-MaterialDesignArtProvider/Wx/MDAP/MaterialDesignArtProvider.html)
for details concerning these extensions.

### Example

For more details and a working example of how to use [Wx::MDAP::MaterialDesignArtProvider](https://mcorino.github.io/wxRuby3-MaterialDesignArtProvider/Wx/MDAP/MaterialDesignArtProvider.html)
see [here](USAGE.md).

## License

- FontAwesome icons from the FontAwesome 6 SVG set are subject to the [CC BY 4.0 License](CCBY4.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](Apache2.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](CC01.0-LICENSE.md)

(the included icons haven been copied from https://github.com/simple-icons/simple-icons)
- FluentUI icons are subject to the [MIT License](LICENSE)

(included SVG icons taken from [FluentUI icons](https://github.com/microsoft/fluentui-system-icons))

The wxRuby3 MaterialDesignArtProvider library itself is released under the [MIT License](LICENSE).