{"id":24573117,"url":"https://github.com/perazz/wxmaterialdesignartprovider","last_synced_at":"2025-04-23T07:42:32.394Z","repository":{"id":206240353,"uuid":"716173208","full_name":"perazz/wxMaterialDesignArtProvider","owner":"perazz","description":"Icons Art Provider for wxWidgets with Material Design and other modern icon sets","archived":false,"fork":false,"pushed_at":"2024-10-24T06:56:52.000Z","size":17397,"stargazers_count":39,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T22:51:13.298Z","etag":null,"topics":["cpp-gui","fluent-ui","fluent-ui-icons","icons","material-design","material-ui","wxpython","wxwidgets"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/perazz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-11-08T15:33:54.000Z","updated_at":"2025-02-04T12:39:07.000Z","dependencies_parsed_at":"2023-12-19T09:00:17.107Z","dependency_job_id":null,"html_url":"https://github.com/perazz/wxMaterialDesignArtProvider","commit_stats":null,"previous_names":["perazz/wxmaterialdesignartprovider"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perazz%2FwxMaterialDesignArtProvider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perazz%2FwxMaterialDesignArtProvider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perazz%2FwxMaterialDesignArtProvider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perazz%2FwxMaterialDesignArtProvider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/perazz","download_url":"https://codeload.github.com/perazz/wxMaterialDesignArtProvider/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250394463,"owners_count":21423360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp-gui","fluent-ui","fluent-ui-icons","icons","material-design","material-ui","wxpython","wxwidgets"],"created_at":"2025-01-23T19:55:51.143Z","updated_at":"2025-04-23T07:42:28.553Z","avatar_url":"https://github.com/perazz.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Material Design icons Art Provider for wxWidgets\n\nThis project contains a custom Art Provider for the wxWidgets containing all Material Design icons. \nThe original icons were taken from the [SVG Material Design](https://github.com/marella/material-design-icons) icons, the [SimpleIcons](https://github.com/simple-icons/simple-icons/tree/develop), the [FontAwesome 6.4](https://github.com/FortAwesome/Font-Awesome) and the [FluentUI icons](https://github.com/microsoft/fluentui-system-icons) repositories. \nGeneration of the wxWidgets core header files is fully automated, hopefully in the future it will be integrated with the CI for updates to the base repo.\n\nAll SVG icons are hardcoded into headers such that no external files are needed to build the art provider class beyond those in `MaterialDesign/`. \nSo it should be relatively easy to add Material Design icon functionality to existing wxwidgets projects.\n\n# Building, Using\n\nA simple CodeBlocks project is provided to build the example on Windows (MSYS2) and MacOS (clang + homebrew). To add the `wxMaterialDesignArtProvider` class to your project, \njust register it with the default art provider as: \n\n```c++\n    // Register art provider\n    wxArtProvider::Push(new wxMaterialDesignArtProvider);\n```\n\nSo that the new art IDs can be used. For each material design icon, an art ID is registered with the following pattern: \n\n```c++\n   wxART_ICONNAME\n```\nwhere `iconname` is the name of the icon. The same names are available under five different clients, each of them corresponds to a different dataset: \n\n*** Material Design \n- `wxART_CLIENT_MATERIAL_FILLED` for filled icons;\n- `wxART_CLIENT_MATERIAL_OUTLINE` for outlined icons;\n- `wxART_CLIENT_MATERIAL_ROUND` for round icons;\n- `wxART_CLIENT_MATERIAL_SHARP` for sharp icons;\n- `wxART_CLIENT_MATERIAL_TWOTONE` for two-tone icons;\n\n*** FontAwesome 6\n- `wxART_CLIENT_AWESOME_BRANDS` for brand logos;\n- `wxART_CLIENT_AWESOME_SOLID` for solid-style icons;\n- `wxART_CLIENT_AWESOME_REGULAR` for regular icons;\n\n*** SimpleIcons\n- `wxART_CLIENT_SIMPLE_ICONS`;\n\n*** FluentUI\n- `wxART_CLIENT_FLUENTUI_REGULAR`\n- `wxART_CLUENT_FLUENTUI_FILLED`.\n\n# Colors\n\n`wxMaterialDesignArtProvider` supports additional methods to provide the icons with a custom color. Color-based inputs are not available in the core `wxArtProvider` API, \nso to use them, it is necessary to call them directly from the `wxMaterialDesignArtProvider` class. They're all static methods: no need to instantiate an art provider anywhere. \nThe color is provided as a `wxColour` additional input to the standard APIs, and resolves to `wxBLACK` if none is provided. For example, a generic art provider call with a color input will look like: \n\n```c++\n    wxBitmap bmp;\n    if (wxMaterialDesignArtProvider::HasClient(client)) {\n        // Use Material Design API\n        bmp = wxMaterialDesignArtProvider::GetBitmap(id, client, size, color);\n    } else {\n        // Use default art provider (includes overrides, if present)\n        bmp = wxArtProvider::GetBitmap(id, client, size);\n    }\n```\n\nThe attached project contains a sample icon browser, modelled on wxWidget's standard one, and can be used to navigate all art names and styles: \n\n![Art browser example on Windows](https://github.com/perazz/wxMaterialDesignArtProvider/blob/main/assets/art_browser_windows.PNG?raw=true)\n\n![Art browser example on MacOS](https://github.com/perazz/wxMaterialDesignArtProvider/blob/main/assets/art_browser_macos.PNG?raw=true)\n\n### License\n\n- FontAwesome icons from the FontAwesome 6 SVG set are subject to the CC BY 4.0 License.\n- Material Design icons are subject to the Apache 2.0 license.\n- SimpleIcons are subject to  the CC0 1.0 License.\n- FluentUI icons are subject to the MIT License.\n\nThis provider is released under the Apache 2.0 license, that all dataset licenses should get along with.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperazz%2Fwxmaterialdesignartprovider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fperazz%2Fwxmaterialdesignartprovider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperazz%2Fwxmaterialdesignartprovider/lists"}