├── .github └── workflows │ └── publish.yml ├── .gitignore ├── .mvn └── extensions.xml ├── .project ├── LICENSE.md ├── README.md ├── images ├── moon.png ├── neptune.png ├── planet.xcf └── pluto.png ├── planet-themes-feature ├── .project ├── build.properties └── feature.xml ├── planet-themes-plugin ├── .classpath ├── .gitignore ├── .project ├── META-INF │ └── MANIFEST.MF ├── build.properties ├── css │ ├── moon-unix.css │ ├── moon-win.css │ ├── moon.css │ ├── neptune-unix.css │ ├── neptune-win.css │ ├── neptune.css │ ├── planets-dark.css │ ├── planets-unix.css │ ├── planets-win.css │ ├── planets.css │ ├── pluto-unix.css │ ├── pluto-win.css │ └── pluto.css ├── fonts │ ├── FiraCode-Bold.ttf │ ├── FiraCode-Light.ttf │ ├── FiraCode-Medium.ttf │ ├── FiraCode-Regular.ttf │ ├── FiraCode-SemiBold.ttf │ ├── LICENSE.txt │ └── README.txt ├── images │ ├── handle-rotated.png │ └── handle.png ├── plugin.xml └── src │ └── main │ └── java │ ├── com │ └── codeaffine │ │ └── eclipse │ │ └── ui │ │ └── swt │ │ └── theme │ │ ├── FontLoader.java │ │ ├── FontOnStartupLoader.java │ │ ├── FontRegistryUpdater.java │ │ ├── LICENSE.txt │ │ └── README.txt │ └── io │ └── github │ └── pyvesb │ └── eclipse_planet_themes │ ├── CTabFolderPlanetsRenderer.java │ ├── LICENSE.txt │ └── README.txt ├── planet-themes-targetplatform ├── .project └── planet-themes-targetplatform.target ├── planet-themes-updatesite ├── .project └── category.xml └── pom.xml /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish new plugin version 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | jobs: 8 | build: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v1 14 | - name: Set up JDK 17 15 | uses: actions/setup-java@v1 16 | with: 17 | java-version: 17 18 | - name: Build with Maven 19 | run: mvn clean install 20 | - name: Commit files 21 | run: | 22 | echo "Checking out update site" 23 | git checkout updatesite 24 | echo "Cleaning up previous files" 25 | git rm -r . 26 | echo "Coping files over" 27 | mv -v planet-themes-updatesite/target/repository/* . 28 | echo "Setting up Git config" 29 | git config user.name '${{ github.actor}}' 30 | git config user.email '${{ github.actor}}@users.noreply.github.com' 31 | echo "Preparing commit" 32 | git add -A 33 | git commit -m "Added version $(curl --silent https://api.github.com/repos/PyvesB/eclipse-planet-themes/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/') to the update site" 34 | git remote add pages https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/PyvesB/eclipse-planet-themes.git 35 | echo "Pushing commit" 36 | git push pages updatesite -f 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | .polyglot.* 3 | *.prefs 4 | /.metadata/ 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /.mvn/extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | org.eclipse.tycho 5 | tycho-build 6 | 2.7.5 7 | 8 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | planet-themes 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Eclipse Public License - v 2.0 2 | 3 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE 4 | PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION 5 | OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 6 | 7 | 1. DEFINITIONS 8 | 9 | "Contribution" means: 10 | 11 | a) in the case of the initial Contributor, the initial content 12 | Distributed under this Agreement, and 13 | 14 | b) in the case of each subsequent Contributor: 15 | i) changes to the Program, and 16 | ii) additions to the Program; 17 | where such changes and/or additions to the Program originate from 18 | and are Distributed by that particular Contributor. A Contribution 19 | "originates" from a Contributor if it was added to the Program by 20 | such Contributor itself or anyone acting on such Contributor's behalf. 21 | Contributions do not include changes or additions to the Program that 22 | are not Modified Works. 23 | 24 | "Contributor" means any person or entity that Distributes the Program. 25 | 26 | "Licensed Patents" mean patent claims licensable by a Contributor which 27 | are necessarily infringed by the use or sale of its Contribution alone 28 | or when combined with the Program. 29 | 30 | "Program" means the Contributions Distributed in accordance with this 31 | Agreement. 32 | 33 | "Recipient" means anyone who receives the Program under this Agreement 34 | or any Secondary License (as applicable), including Contributors. 35 | 36 | "Derivative Works" shall mean any work, whether in Source Code or other 37 | form, that is based on (or derived from) the Program and for which the 38 | editorial revisions, annotations, elaborations, or other modifications 39 | represent, as a whole, an original work of authorship. 40 | 41 | "Modified Works" shall mean any work in Source Code or other form that 42 | results from an addition to, deletion from, or modification of the 43 | contents of the Program, including, for purposes of clarity any new file 44 | in Source Code form that contains any contents of the Program. Modified 45 | Works shall not include works that contain only declarations, 46 | interfaces, types, classes, structures, or files of the Program solely 47 | in each case in order to link to, bind by name, or subclass the Program 48 | or Modified Works thereof. 49 | 50 | "Distribute" means the acts of a) distributing or b) making available 51 | in any manner that enables the transfer of a copy. 52 | 53 | "Source Code" means the form of a Program preferred for making 54 | modifications, including but not limited to software source code, 55 | documentation source, and configuration files. 56 | 57 | "Secondary License" means either the GNU General Public License, 58 | Version 2.0, or any later versions of that license, including any 59 | exceptions or additional permissions as identified by the initial 60 | Contributor. 61 | 62 | 2. GRANT OF RIGHTS 63 | 64 | a) Subject to the terms of this Agreement, each Contributor hereby 65 | grants Recipient a non-exclusive, worldwide, royalty-free copyright 66 | license to reproduce, prepare Derivative Works of, publicly display, 67 | publicly perform, Distribute and sublicense the Contribution of such 68 | Contributor, if any, and such Derivative Works. 69 | 70 | b) Subject to the terms of this Agreement, each Contributor hereby 71 | grants Recipient a non-exclusive, worldwide, royalty-free patent 72 | license under Licensed Patents to make, use, sell, offer to sell, 73 | import and otherwise transfer the Contribution of such Contributor, 74 | if any, in Source Code or other form. This patent license shall 75 | apply to the combination of the Contribution and the Program if, at 76 | the time the Contribution is added by the Contributor, such addition 77 | of the Contribution causes such combination to be covered by the 78 | Licensed Patents. The patent license shall not apply to any other 79 | combinations which include the Contribution. No hardware per se is 80 | licensed hereunder. 81 | 82 | c) Recipient understands that although each Contributor grants the 83 | licenses to its Contributions set forth herein, no assurances are 84 | provided by any Contributor that the Program does not infringe the 85 | patent or other intellectual property rights of any other entity. 86 | Each Contributor disclaims any liability to Recipient for claims 87 | brought by any other entity based on infringement of intellectual 88 | property rights or otherwise. As a condition to exercising the 89 | rights and licenses granted hereunder, each Recipient hereby 90 | assumes sole responsibility to secure any other intellectual 91 | property rights needed, if any. For example, if a third party 92 | patent license is required to allow Recipient to Distribute the 93 | Program, it is Recipient's responsibility to acquire that license 94 | before distributing the Program. 95 | 96 | d) Each Contributor represents that to its knowledge it has 97 | sufficient copyright rights in its Contribution, if any, to grant 98 | the copyright license set forth in this Agreement. 99 | 100 | e) Notwithstanding the terms of any Secondary License, no 101 | Contributor makes additional grants to any Recipient (other than 102 | those set forth in this Agreement) as a result of such Recipient's 103 | receipt of the Program under the terms of a Secondary License 104 | (if permitted under the terms of Section 3). 105 | 106 | 3. REQUIREMENTS 107 | 108 | 3.1 If a Contributor Distributes the Program in any form, then: 109 | 110 | a) the Program must also be made available as Source Code, in 111 | accordance with section 3.2, and the Contributor must accompany 112 | the Program with a statement that the Source Code for the Program 113 | is available under this Agreement, and informs Recipients how to 114 | obtain it in a reasonable manner on or through a medium customarily 115 | used for software exchange; and 116 | 117 | b) the Contributor may Distribute the Program under a license 118 | different than this Agreement, provided that such license: 119 | i) effectively disclaims on behalf of all other Contributors all 120 | warranties and conditions, express and implied, including 121 | warranties or conditions of title and non-infringement, and 122 | implied warranties or conditions of merchantability and fitness 123 | for a particular purpose; 124 | 125 | ii) effectively excludes on behalf of all other Contributors all 126 | liability for damages, including direct, indirect, special, 127 | incidental and consequential damages, such as lost profits; 128 | 129 | iii) does not attempt to limit or alter the recipients' rights 130 | in the Source Code under section 3.2; and 131 | 132 | iv) requires any subsequent distribution of the Program by any 133 | party to be under a license that satisfies the requirements 134 | of this section 3. 135 | 136 | 3.2 When the Program is Distributed as Source Code: 137 | 138 | a) it must be made available under this Agreement, or if the 139 | Program (i) is combined with other material in a separate file or 140 | files made available under a Secondary License, and (ii) the initial 141 | Contributor attached to the Source Code the notice described in 142 | Exhibit A of this Agreement, then the Program may be made available 143 | under the terms of such Secondary Licenses, and 144 | 145 | b) a copy of this Agreement must be included with each copy of 146 | the Program. 147 | 148 | 3.3 Contributors may not remove or alter any copyright, patent, 149 | trademark, attribution notices, disclaimers of warranty, or limitations 150 | of liability ("notices") contained within the Program from any copy of 151 | the Program which they Distribute, provided that Contributors may add 152 | their own appropriate notices. 153 | 154 | 4. COMMERCIAL DISTRIBUTION 155 | 156 | Commercial distributors of software may accept certain responsibilities 157 | with respect to end users, business partners and the like. While this 158 | license is intended to facilitate the commercial use of the Program, 159 | the Contributor who includes the Program in a commercial product 160 | offering should do so in a manner which does not create potential 161 | liability for other Contributors. Therefore, if a Contributor includes 162 | the Program in a commercial product offering, such Contributor 163 | ("Commercial Contributor") hereby agrees to defend and indemnify every 164 | other Contributor ("Indemnified Contributor") against any losses, 165 | damages and costs (collectively "Losses") arising from claims, lawsuits 166 | and other legal actions brought by a third party against the Indemnified 167 | Contributor to the extent caused by the acts or omissions of such 168 | Commercial Contributor in connection with its distribution of the Program 169 | in a commercial product offering. The obligations in this section do not 170 | apply to any claims or Losses relating to any actual or alleged 171 | intellectual property infringement. In order to qualify, an Indemnified 172 | Contributor must: a) promptly notify the Commercial Contributor in 173 | writing of such claim, and b) allow the Commercial Contributor to control, 174 | and cooperate with the Commercial Contributor in, the defense and any 175 | related settlement negotiations. The Indemnified Contributor may 176 | participate in any such claim at its own expense. 177 | 178 | For example, a Contributor might include the Program in a commercial 179 | product offering, Product X. That Contributor is then a Commercial 180 | Contributor. If that Commercial Contributor then makes performance 181 | claims, or offers warranties related to Product X, those performance 182 | claims and warranties are such Commercial Contributor's responsibility 183 | alone. Under this section, the Commercial Contributor would have to 184 | defend claims against the other Contributors related to those performance 185 | claims and warranties, and if a court requires any other Contributor to 186 | pay any damages as a result, the Commercial Contributor must pay 187 | those damages. 188 | 189 | 5. NO WARRANTY 190 | 191 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT 192 | PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" 193 | BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR 194 | IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF 195 | TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR 196 | PURPOSE. Each Recipient is solely responsible for determining the 197 | appropriateness of using and distributing the Program and assumes all 198 | risks associated with its exercise of rights under this Agreement, 199 | including but not limited to the risks and costs of program errors, 200 | compliance with applicable laws, damage to or loss of data, programs 201 | or equipment, and unavailability or interruption of operations. 202 | 203 | 6. DISCLAIMER OF LIABILITY 204 | 205 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT 206 | PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS 207 | SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 208 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST 209 | PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 210 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 211 | ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE 212 | EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE 213 | POSSIBILITY OF SUCH DAMAGES. 214 | 215 | 7. GENERAL 216 | 217 | If any provision of this Agreement is invalid or unenforceable under 218 | applicable law, it shall not affect the validity or enforceability of 219 | the remainder of the terms of this Agreement, and without further 220 | action by the parties hereto, such provision shall be reformed to the 221 | minimum extent necessary to make such provision valid and enforceable. 222 | 223 | If Recipient institutes patent litigation against any entity 224 | (including a cross-claim or counterclaim in a lawsuit) alleging that the 225 | Program itself (excluding combinations of the Program with other software 226 | or hardware) infringes such Recipient's patent(s), then such Recipient's 227 | rights granted under Section 2(b) shall terminate as of the date such 228 | litigation is filed. 229 | 230 | All Recipient's rights under this Agreement shall terminate if it 231 | fails to comply with any of the material terms or conditions of this 232 | Agreement and does not cure such failure in a reasonable period of 233 | time after becoming aware of such noncompliance. If all Recipient's 234 | rights under this Agreement terminate, Recipient agrees to cease use 235 | and distribution of the Program as soon as reasonably practicable. 236 | However, Recipient's obligations under this Agreement and any licenses 237 | granted by Recipient relating to the Program shall continue and survive. 238 | 239 | Everyone is permitted to copy and distribute copies of this Agreement, 240 | but in order to avoid inconsistency the Agreement is copyrighted and 241 | may only be modified in the following manner. The Agreement Steward 242 | reserves the right to publish new versions (including revisions) of 243 | this Agreement from time to time. No one other than the Agreement 244 | Steward has the right to modify this Agreement. The Eclipse Foundation 245 | is the initial Agreement Steward. The Eclipse Foundation may assign the 246 | responsibility to serve as the Agreement Steward to a suitable separate 247 | entity. Each new version of the Agreement will be given a distinguishing 248 | version number. The Program (including Contributions) may always be 249 | Distributed subject to the version of the Agreement under which it was 250 | received. In addition, after a new version of the Agreement is published, 251 | Contributor may elect to Distribute the Program (including its 252 | Contributions) under the new version. 253 | 254 | Except as expressly stated in Sections 2(a) and 2(b) above, Recipient 255 | receives no rights or licenses to the intellectual property of any 256 | Contributor under this Agreement, whether expressly, by implication, 257 | estoppel or otherwise. All rights in the Program not expressly granted 258 | under this Agreement are reserved. Nothing in this Agreement is intended 259 | to be enforceable by any entity that is not a Contributor or Recipient. 260 | No third-party beneficiary rights are created under this Agreement. 261 | 262 | Exhibit A - Form of Secondary Licenses Notice 263 | 264 | "This Source Code may also be made available under the following 265 | Secondary Licenses when the conditions for such availability set forth 266 | in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), 267 | version(s), and exceptions or additional permissions here}." 268 | 269 | Simply including a copy of this Agreement, including this Exhibit A 270 | is not sufficient to license the Source Code under Secondary Licenses. 271 | 272 | If it is not possible or desirable to put the notice in a particular 273 | file, then You may include the notice in a location (such as a LICENSE 274 | file in a relevant directory) where a recipient would be likely to 275 | look for such a notice. 276 | 277 | You may add additional accurate notices of copyright ownership. 278 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Planet Themes 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | **Collection of light and dark Eclipse themes, inspired by planets of the Solar System!** 13 | 14 |

15 |
16 | 17 | 18 | 19 |
20 | Left to right: the Neptune, Pluto and Moon themes! 21 |

22 | 23 | ## :moon: Features at a glance 24 | 25 | Three themes are currently available: 26 | * Moon: familiar-looking but not an actual planet. Light-grey, by and large sticks to Eclipse's classic color scheme. 27 | * Neptune: dark blue theme with some red reflections from the distant sun. 28 | * Pluto: not much light reaches this distant dwarf planet, leading to a resolutely dark theme. The presence of purple has yet to be explained by astronomers. 29 | 30 | A few words to summarise the planetary ambitions: 31 | * compact: few borders, less visual artifacts, and hidden buttons. 32 | * readable: easy on the eyes with low glare, balanced contrasts and an integrated editor font with programming ligatures. 33 | * outstanding: not a revolution, but hopefully a nice twist to the traditional Eclipse look and feel. 34 | 35 | Check out what's new in the [latest releases](https://github.com/PyvesB/eclipse-planet-themes/releases)! 36 | 37 | ## :cd: Plugin installation 38 | 39 | Note that all themes require Eclipse Oxygen (4.7) or more recent. 40 | 41 | You can download and install the plugin via the [Eclipse Marketplace](https://marketplace.eclipse.org/content/planet-themes/), or simply drag the below button to your running Eclipse workspace: 42 | 43 |

44 | Drag to your running Eclipse* workspace. *Requires Eclipse Marketplace Client 45 |

46 | 47 | Alternatively, use the following update site: `https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/updatesite`. Note that this link will give an error when opened in a browser, but will be handled correctly by Eclipse. 48 | 49 | Once installed, open Eclipse's preferences, navigate to `General` -> `Appearance` and select the planet of your choice in the `Theme` dropdown. Restart Eclipse and enjoy your new theme! 50 | 51 | ## :star: Support and feedback 52 | 53 | Building themes is hard work. Something isn't to your taste? Thought of a cool idea? Found a problem or need some help? Simply open an [**issue**](https://github.com/PyvesB/eclipse-planet-themes/issues)! 54 | 55 | Find the project useful, fun or interesting? **Star** the repository by clicking on the icon on the top right of this page! 56 | 57 | ## :computer: Code contributions 58 | 59 | Want to improve the existing planets or add a new one? Contributions are more than welcome, open a **pull request** and share your CSS! 60 | 61 | Setting up your own working copy of the project is easy: 62 | * Download the [RCP and RAP Developers](https://eclipse.org/downloads/eclipse-packages/) version of Eclipse. 63 | * Fork the repository by clicking on the *Fork* icon on the top right of this page and clone it locally. 64 | * In Eclipse, go to `File` -> `Import...` -> `General` -> `Existing Projects into Workspace`. 65 | * In the `Select root directory` field, indicate the location where you checked out the planet-themes repository. 66 | * Ensure `Search for nested projects` is enabled, select all projects in the `Projects` field and click `Finish`. 67 | * Open `planet-themes-targetplatform.target` and click `Set as Active Target Platform`. 68 | * You're ready to go! You can now either launch an instance of Eclipse running the plugin by right-clicking on the plugin project and selecting `Run As` -> `Eclipse Application`, or you can export a plugin archive file by selecting `Export` -> `Deployable plug-ins and fragments`. 69 | 70 | ## :balance_scale: License and acknowledgements 71 | 72 | Planet Themes are licensed under Eclipse Public License - v 2.0. 73 | 74 | [Fira Code](https://github.com/tonsky/FiraCode) (Open Font License) is being used as the editor font, many thanks to [Nikita Prokopov](https://github.com/tonsky) and other contributors! 75 | -------------------------------------------------------------------------------- /images/moon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/images/moon.png -------------------------------------------------------------------------------- /images/neptune.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/images/neptune.png -------------------------------------------------------------------------------- /images/planet.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/images/planet.xcf -------------------------------------------------------------------------------- /images/pluto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/images/pluto.png -------------------------------------------------------------------------------- /planet-themes-feature/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | planet-themes-feature 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.pde.FeatureBuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.pde.FeatureNature 16 | 17 | 18 | -------------------------------------------------------------------------------- /planet-themes-feature/build.properties: -------------------------------------------------------------------------------- 1 | bin.includes = feature.xml 2 | -------------------------------------------------------------------------------- /planet-themes-feature/feature.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | Collection of light and dark Eclipse themes, inspired by planets of the Solar System! 10 | 11 | 12 | 13 | Eclipse Public License - v 2.0 14 | 15 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE 16 | PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION 17 | OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 18 | 19 | 1. DEFINITIONS 20 | 21 | "Contribution" means: 22 | 23 | a) in the case of the initial Contributor, the initial content 24 | Distributed under this Agreement, and 25 | 26 | b) in the case of each subsequent Contributor: 27 | i) changes to the Program, and 28 | ii) additions to the Program; 29 | where such changes and/or additions to the Program originate from 30 | and are Distributed by that particular Contributor. A Contribution 31 | "originates" from a Contributor if it was added to the Program by 32 | such Contributor itself or anyone acting on such Contributor's behalf. 33 | Contributions do not include changes or additions to the Program that 34 | are not Modified Works. 35 | 36 | "Contributor" means any person or entity that Distributes the Program. 37 | 38 | "Licensed Patents" mean patent claims licensable by a Contributor which 39 | are necessarily infringed by the use or sale of its Contribution alone 40 | or when combined with the Program. 41 | 42 | "Program" means the Contributions Distributed in accordance with this 43 | Agreement. 44 | 45 | "Recipient" means anyone who receives the Program under this Agreement 46 | or any Secondary License (as applicable), including Contributors. 47 | 48 | "Derivative Works" shall mean any work, whether in Source Code or other 49 | form, that is based on (or derived from) the Program and for which the 50 | editorial revisions, annotations, elaborations, or other modifications 51 | represent, as a whole, an original work of authorship. 52 | 53 | "Modified Works" shall mean any work in Source Code or other form that 54 | results from an addition to, deletion from, or modification of the 55 | contents of the Program, including, for purposes of clarity any new file 56 | in Source Code form that contains any contents of the Program. Modified 57 | Works shall not include works that contain only declarations, 58 | interfaces, types, classes, structures, or files of the Program solely 59 | in each case in order to link to, bind by name, or subclass the Program 60 | or Modified Works thereof. 61 | 62 | "Distribute" means the acts of a) distributing or b) making available 63 | in any manner that enables the transfer of a copy. 64 | 65 | "Source Code" means the form of a Program preferred for making 66 | modifications, including but not limited to software source code, 67 | documentation source, and configuration files. 68 | 69 | "Secondary License" means either the GNU General Public License, 70 | Version 2.0, or any later versions of that license, including any 71 | exceptions or additional permissions as identified by the initial 72 | Contributor. 73 | 74 | 2. GRANT OF RIGHTS 75 | 76 | a) Subject to the terms of this Agreement, each Contributor hereby 77 | grants Recipient a non-exclusive, worldwide, royalty-free copyright 78 | license to reproduce, prepare Derivative Works of, publicly display, 79 | publicly perform, Distribute and sublicense the Contribution of such 80 | Contributor, if any, and such Derivative Works. 81 | 82 | b) Subject to the terms of this Agreement, each Contributor hereby 83 | grants Recipient a non-exclusive, worldwide, royalty-free patent 84 | license under Licensed Patents to make, use, sell, offer to sell, 85 | import and otherwise transfer the Contribution of such Contributor, 86 | if any, in Source Code or other form. This patent license shall 87 | apply to the combination of the Contribution and the Program if, at 88 | the time the Contribution is added by the Contributor, such addition 89 | of the Contribution causes such combination to be covered by the 90 | Licensed Patents. The patent license shall not apply to any other 91 | combinations which include the Contribution. No hardware per se is 92 | licensed hereunder. 93 | 94 | c) Recipient understands that although each Contributor grants the 95 | licenses to its Contributions set forth herein, no assurances are 96 | provided by any Contributor that the Program does not infringe the 97 | patent or other intellectual property rights of any other entity. 98 | Each Contributor disclaims any liability to Recipient for claims 99 | brought by any other entity based on infringement of intellectual 100 | property rights or otherwise. As a condition to exercising the 101 | rights and licenses granted hereunder, each Recipient hereby 102 | assumes sole responsibility to secure any other intellectual 103 | property rights needed, if any. For example, if a third party 104 | patent license is required to allow Recipient to Distribute the 105 | Program, it is Recipient's responsibility to acquire that license 106 | before distributing the Program. 107 | 108 | d) Each Contributor represents that to its knowledge it has 109 | sufficient copyright rights in its Contribution, if any, to grant 110 | the copyright license set forth in this Agreement. 111 | 112 | e) Notwithstanding the terms of any Secondary License, no 113 | Contributor makes additional grants to any Recipient (other than 114 | those set forth in this Agreement) as a result of such Recipient's 115 | receipt of the Program under the terms of a Secondary License 116 | (if permitted under the terms of Section 3). 117 | 118 | 3. REQUIREMENTS 119 | 120 | 3.1 If a Contributor Distributes the Program in any form, then: 121 | 122 | a) the Program must also be made available as Source Code, in 123 | accordance with section 3.2, and the Contributor must accompany 124 | the Program with a statement that the Source Code for the Program 125 | is available under this Agreement, and informs Recipients how to 126 | obtain it in a reasonable manner on or through a medium customarily 127 | used for software exchange; and 128 | 129 | b) the Contributor may Distribute the Program under a license 130 | different than this Agreement, provided that such license: 131 | i) effectively disclaims on behalf of all other Contributors all 132 | warranties and conditions, express and implied, including 133 | warranties or conditions of title and non-infringement, and 134 | implied warranties or conditions of merchantability and fitness 135 | for a particular purpose; 136 | 137 | ii) effectively excludes on behalf of all other Contributors all 138 | liability for damages, including direct, indirect, special, 139 | incidental and consequential damages, such as lost profits; 140 | 141 | iii) does not attempt to limit or alter the recipients' rights 142 | in the Source Code under section 3.2; and 143 | 144 | iv) requires any subsequent distribution of the Program by any 145 | party to be under a license that satisfies the requirements 146 | of this section 3. 147 | 148 | 3.2 When the Program is Distributed as Source Code: 149 | 150 | a) it must be made available under this Agreement, or if the 151 | Program (i) is combined with other material in a separate file or 152 | files made available under a Secondary License, and (ii) the initial 153 | Contributor attached to the Source Code the notice described in 154 | Exhibit A of this Agreement, then the Program may be made available 155 | under the terms of such Secondary Licenses, and 156 | 157 | b) a copy of this Agreement must be included with each copy of 158 | the Program. 159 | 160 | 3.3 Contributors may not remove or alter any copyright, patent, 161 | trademark, attribution notices, disclaimers of warranty, or limitations 162 | of liability ("notices") contained within the Program from any copy of 163 | the Program which they Distribute, provided that Contributors may add 164 | their own appropriate notices. 165 | 166 | 4. COMMERCIAL DISTRIBUTION 167 | 168 | Commercial distributors of software may accept certain responsibilities 169 | with respect to end users, business partners and the like. While this 170 | license is intended to facilitate the commercial use of the Program, 171 | the Contributor who includes the Program in a commercial product 172 | offering should do so in a manner which does not create potential 173 | liability for other Contributors. Therefore, if a Contributor includes 174 | the Program in a commercial product offering, such Contributor 175 | ("Commercial Contributor") hereby agrees to defend and indemnify every 176 | other Contributor ("Indemnified Contributor") against any losses, 177 | damages and costs (collectively "Losses") arising from claims, lawsuits 178 | and other legal actions brought by a third party against the Indemnified 179 | Contributor to the extent caused by the acts or omissions of such 180 | Commercial Contributor in connection with its distribution of the Program 181 | in a commercial product offering. The obligations in this section do not 182 | apply to any claims or Losses relating to any actual or alleged 183 | intellectual property infringement. In order to qualify, an Indemnified 184 | Contributor must: a) promptly notify the Commercial Contributor in 185 | writing of such claim, and b) allow the Commercial Contributor to control, 186 | and cooperate with the Commercial Contributor in, the defense and any 187 | related settlement negotiations. The Indemnified Contributor may 188 | participate in any such claim at its own expense. 189 | 190 | For example, a Contributor might include the Program in a commercial 191 | product offering, Product X. That Contributor is then a Commercial 192 | Contributor. If that Commercial Contributor then makes performance 193 | claims, or offers warranties related to Product X, those performance 194 | claims and warranties are such Commercial Contributor's responsibility 195 | alone. Under this section, the Commercial Contributor would have to 196 | defend claims against the other Contributors related to those performance 197 | claims and warranties, and if a court requires any other Contributor to 198 | pay any damages as a result, the Commercial Contributor must pay 199 | those damages. 200 | 201 | 5. NO WARRANTY 202 | 203 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT 204 | PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" 205 | BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR 206 | IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF 207 | TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR 208 | PURPOSE. Each Recipient is solely responsible for determining the 209 | appropriateness of using and distributing the Program and assumes all 210 | risks associated with its exercise of rights under this Agreement, 211 | including but not limited to the risks and costs of program errors, 212 | compliance with applicable laws, damage to or loss of data, programs 213 | or equipment, and unavailability or interruption of operations. 214 | 215 | 6. DISCLAIMER OF LIABILITY 216 | 217 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT 218 | PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS 219 | SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 220 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST 221 | PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 222 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 223 | ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE 224 | EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE 225 | POSSIBILITY OF SUCH DAMAGES. 226 | 227 | 7. GENERAL 228 | 229 | If any provision of this Agreement is invalid or unenforceable under 230 | applicable law, it shall not affect the validity or enforceability of 231 | the remainder of the terms of this Agreement, and without further 232 | action by the parties hereto, such provision shall be reformed to the 233 | minimum extent necessary to make such provision valid and enforceable. 234 | 235 | If Recipient institutes patent litigation against any entity 236 | (including a cross-claim or counterclaim in a lawsuit) alleging that the 237 | Program itself (excluding combinations of the Program with other software 238 | or hardware) infringes such Recipient's patent(s), then such Recipient's 239 | rights granted under Section 2(b) shall terminate as of the date such 240 | litigation is filed. 241 | 242 | All Recipient's rights under this Agreement shall terminate if it 243 | fails to comply with any of the material terms or conditions of this 244 | Agreement and does not cure such failure in a reasonable period of 245 | time after becoming aware of such noncompliance. If all Recipient's 246 | rights under this Agreement terminate, Recipient agrees to cease use 247 | and distribution of the Program as soon as reasonably practicable. 248 | However, Recipient's obligations under this Agreement and any licenses 249 | granted by Recipient relating to the Program shall continue and survive. 250 | 251 | Everyone is permitted to copy and distribute copies of this Agreement, 252 | but in order to avoid inconsistency the Agreement is copyrighted and 253 | may only be modified in the following manner. The Agreement Steward 254 | reserves the right to publish new versions (including revisions) of 255 | this Agreement from time to time. No one other than the Agreement 256 | Steward has the right to modify this Agreement. The Eclipse Foundation 257 | is the initial Agreement Steward. The Eclipse Foundation may assign the 258 | responsibility to serve as the Agreement Steward to a suitable separate 259 | entity. Each new version of the Agreement will be given a distinguishing 260 | version number. The Program (including Contributions) may always be 261 | Distributed subject to the version of the Agreement under which it was 262 | received. In addition, after a new version of the Agreement is published, 263 | Contributor may elect to Distribute the Program (including its 264 | Contributions) under the new version. 265 | 266 | Except as expressly stated in Sections 2(a) and 2(b) above, Recipient 267 | receives no rights or licenses to the intellectual property of any 268 | Contributor under this Agreement, whether expressly, by implication, 269 | estoppel or otherwise. All rights in the Program not expressly granted 270 | under this Agreement are reserved. Nothing in this Agreement is intended 271 | to be enforceable by any entity that is not a Contributor or Recipient. 272 | No third-party beneficiary rights are created under this Agreement. 273 | 274 | Exhibit A - Form of Secondary Licenses Notice 275 | 276 | "This Source Code may also be made available under the following 277 | Secondary Licenses when the conditions for such availability set forth 278 | in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), 279 | version(s), and exceptions or additional permissions here}." 280 | 281 | Simply including a copy of this Agreement, including this Exhibit A 282 | is not sufficient to license the Source Code under Secondary Licenses. 283 | 284 | If it is not possible or desirable to put the notice in a particular 285 | file, then You may include the notice in a location (such as a LICENSE 286 | file in a relevant directory) where a recipient would be likely to 287 | look for such a notice. 288 | 289 | You may add additional accurate notices of copyright ownership. 290 | 291 | 292 | 293 | 294 | 295 | 296 | 302 | 303 | -------------------------------------------------------------------------------- /planet-themes-plugin/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /planet-themes-plugin/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /planet-themes-plugin/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | planet-themes-plugin 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.pde.PluginNature 26 | org.eclipse.jdt.core.javanature 27 | 28 | 29 | -------------------------------------------------------------------------------- /planet-themes-plugin/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-ManifestVersion: 2 3 | Bundle-Name: Planet Themes 4 | Bundle-SymbolicName: io.github.pyvesb.eclipse_planet_themes;singleton:=true 5 | Bundle-Version: 1.0.0 6 | Automatic-Module-Name: io.github.pyvesb.eclipse_planet_themes 7 | Bundle-RequiredExecutionEnvironment: JavaSE-11 8 | Bundle-ActivationPolicy: lazy 9 | Bundle-ClassPath: . 10 | Require-Bundle: org.eclipse.core.runtime, 11 | org.eclipse.swt, 12 | org.eclipse.ui, 13 | org.eclipse.e4.ui.css.swt, 14 | org.eclipse.e4.ui.css.swt.theme, 15 | org.eclipse.osgi 16 | Export-Package: com.codeaffine.eclipse.ui.swt.theme 17 | -------------------------------------------------------------------------------- /planet-themes-plugin/build.properties: -------------------------------------------------------------------------------- 1 | output.. = bin/ 2 | jre.compilation.profile = JavaSE-11 3 | source.. = src/main/java/ 4 | bin.includes = META-INF/,\ 5 | .,\ 6 | plugin.xml,\ 7 | css/,\ 8 | fonts/,\ 9 | images/,\ 10 | src/ 11 | -------------------------------------------------------------------------------- /planet-themes-plugin/css/moon-unix.css: -------------------------------------------------------------------------------- 1 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/moon.css"); 2 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets-unix.css"); 3 | 4 | Button[style~='SWT.PUSH'] { 5 | background-color: unset; 6 | color: unset; 7 | } 8 | -------------------------------------------------------------------------------- /planet-themes-plugin/css/moon-win.css: -------------------------------------------------------------------------------- 1 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/moon.css"); 2 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets-win.css"); 3 | -------------------------------------------------------------------------------- /planet-themes-plugin/css/moon.css: -------------------------------------------------------------------------------- 1 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets.css"); 2 | 3 | Shell * { 4 | color: black; 5 | } 6 | 7 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR { 8 | color: #f1f1f1; 9 | } 10 | 11 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR { 12 | color: #c0c0c0; 13 | } 14 | 15 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-INTERACTION_COLOR { 16 | color: white; 17 | } 18 | 19 | /* The backgrounds of some SashForms (e.g. Debug Variable view) are not styled unless this is specified again. */ 20 | SashForm { 21 | background-color: #f1f1f1; 22 | } 23 | 24 | IEclipsePreferences#org-eclipse-ui-editors:io-github-pyvesb-eclipse_planet_themes-moon { 25 | preferences: 26 | 'AbstractTextEditor.Color.Background=241,241,241' 27 | 'AbstractTextEditor.Color.SelectionBackground=215,215,215' 28 | 'currentLineColor=225,225,225' 29 | 'searchResultIndicationColor=128,128,128'; 30 | } 31 | 32 | IEclipsePreferences#org-eclipse-ui-workbench:io-github-pyvesb-eclipse_planet_themes-moon { 33 | preferences: 34 | 'CONTENT_ASSIST_BACKGROUND_COLOR=241,241,241' 35 | 'org.eclipse.egit.ui.UncommittedChangeBackgroundColor=255,255,255' 36 | 'org.eclipse.jdt.ui.Javadoc.backgroundColor=241,241,241' 37 | 'org.eclipse.ui.editors.rangeIndicatorColor=215,215,215' 38 | 'org.eclipse.ui.workbench.INFORMATION_BACKGROUND=241,241,241'; 39 | } 40 | 41 | IEclipsePreferences#org-eclipse-debug-ui:io-github-pyvesb-eclipse_planet_themes-moon { 42 | preferences: 'org.eclipse.debug.ui.consoleBackground=241,241,241'; 43 | } 44 | 45 | IEclipsePreferences#org-eclipse-jdt-ui:io-github-pyvesb-eclipse_planet_themes-moon { 46 | preferences: 'sourceHoverBackgroundColor=241,241,241'; 47 | } -------------------------------------------------------------------------------- /planet-themes-plugin/css/neptune-unix.css: -------------------------------------------------------------------------------- 1 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/neptune.css"); 2 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets-unix.css"); 3 | 4 | Button[style~='SWT.PUSH'] { 5 | background-color: unset; 6 | } 7 | -------------------------------------------------------------------------------- /planet-themes-plugin/css/neptune-win.css: -------------------------------------------------------------------------------- 1 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/neptune.css"); 2 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets-win.css"); 3 | -------------------------------------------------------------------------------- /planet-themes-plugin/css/neptune.css: -------------------------------------------------------------------------------- 1 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets.css"); 2 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets-dark.css"); 3 | 4 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR { 5 | color: #282e43; 6 | } 7 | 8 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR { 9 | color: #5275ed; 10 | } 11 | 12 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-INTERACTION_COLOR { 13 | color: #202437; 14 | } 15 | 16 | /* The backgrounds of some SashForms (e.g. Debug Variable view) are not styled unless this is specified again. */ 17 | SashForm { 18 | background-color: #282e43; 19 | } 20 | 21 | IEclipsePreferences#org-eclipse-ui-workbench:io-github-pyvesb-eclipse_planet_themes-neptune { 22 | preferences: 23 | 'ACTIVE_HYPERLINK_COLOR=38,144,219' 24 | 'CONTENT_ASSIST_BACKGROUND_COLOR=40,46,67' 25 | 'HYPERLINK_COLOR=38,144,219' 26 | 'org.eclipse.egit.ui.UncommittedChangeBackgroundColor=32,36,55' 27 | 'org.eclipse.egit.ui.DiffHeadlineBackgroundColor=32,36,55' 28 | 'org.eclipse.egit.ui.DiffHunkBackgroundColor=32,36,55' 29 | 'org.eclipse.jdt.ui.Javadoc.backgroundColor=40,46,67' 30 | 'org.eclipse.jface.REVISION_NEWEST_COLOR=30,80,160' 31 | 'org.eclipse.jface.REVISION_OLDEST_COLOR=3,25,70' 32 | 'org.eclipse.pde.genericeditor.extension.editor.color.attribute=105,159,213' 33 | 'org.eclipse.pde.genericeditor.extension.editor.color.comment=196,217,240' 34 | 'org.eclipse.pde.genericeditor.extension.editor.color.header=105,159,213' 35 | 'org.eclipse.pde.genericeditor.extension.editor.color.quote=207,9,51' 36 | 'org.eclipse.pde.genericeditor.extension.editor.color.tag=105,159,213' 37 | 'org.eclipse.search.ui.match.highlight=55,60,85' 38 | 'org.eclipse.ui.editors.rangeIndicatorColor=82,117,237' 39 | 'org.eclipse.ui.workbench.INFORMATION_BACKGROUND=40,46,67' 40 | 'cucumber.eclipse.editor.presentation.gherkin_comment_colour=196,217,240' 41 | 'cucumber.eclipse.editor.presentation.gherkin_keyword_colour=38,144,219' 42 | 'cucumber.eclipse.editor.presentation.gherkin_numeric_literal_colour=207,9,51' 43 | 'cucumber.eclipse.editor.presentation.gherkin_step_colour=105,159,213' 44 | 'cucumber.eclipse.editor.presentation.gherkin_string_colour=207,9,51' 45 | 'cucumber.eclipse.editor.presentation.gherkin_tag_colour=207,9,51'; 46 | } 47 | 48 | IEclipsePreferences#org-eclipse-ui-editors:io-github-pyvesb-eclipse_planet_themes-neptune { 49 | preferences: 50 | 'AbstractTextEditor.Color.SelectionBackground=63,99,139' 51 | 'AbstractTextEditor.Color.Background=40,46,67' 52 | 'LSP4EReadOccurrenceIndicationColor=70,80,110' 53 | 'LSP4ETextOccurrenceIndicationColor=70,80,110' 54 | 'LSP4EWriteOccurrenceIndicationColor=80,80,120' 55 | 'TextOccurrenceIndicationColor=70,80,110' 56 | 'additionIndicationColor=0,0,255' 57 | 'currentIPColor=80,80,120' 58 | 'currentLineColor=55,60,85' 59 | 'deletionIndicationColor=82,117,237' 60 | 'infoIndicationColor=82,117,237' 61 | 'linked.focus.color=207,9,51' 62 | 'linked.target.color=207,9,51' 63 | 'linked.exit.color=196,217,240' 64 | 'matchingBracketsColor=38,144,219' 65 | 'occurrenceIndicationColor=70,80,110' 66 | 'pydevOccurrenceIndicationColor=70,80,110' 67 | 'searchResultIndicationColor=125,140,250' 68 | 'secondaryIPColor=80,80,120' 69 | 'writeOccurrenceIndicationColor=80,80,120'; 70 | } 71 | 72 | IEclipsePreferences#org-eclipse-debug-ui:io-github-pyvesb-eclipse_planet_themes-neptune { 73 | preferences: 74 | 'org.eclipse.debug.ui.consoleBackground=40,46,67' 75 | 'org.eclipse.debug.ui.errorColor=207,9,51' 76 | 'org.eclipse.debug.ui.inColor=130,97,239' 77 | 'org.eclipse.debug.ui.outColor=255,255,255'; 78 | } 79 | 80 | IEclipsePreferences#org-eclipse-jdt-ui:io-github-pyvesb-eclipse_planet_themes-neptune { 81 | preferences: 82 | 'java_bracket=38,144,219' 83 | 'java_comment_task_tag=38,144,219' 84 | 'java_doc_default=38,144,219' 85 | 'java_doc_keyword=38,144,219' 86 | 'java_doc_link=38,144,219' 87 | 'java_doc_tag=38,144,219' 88 | 'java_keyword=105,159,213' 89 | 'java_keyword_return=105,159,213' 90 | 'java_multi_line_comment=196,217,240' 91 | 'java_operator=38,144,219' 92 | 'java_single_line_comment=196,217,240' 93 | 'java_string=207,9,51' 94 | 'pf_coloring_argument=207,9,51' 95 | 'pf_coloring_comment=196,217,240' 96 | 'pf_coloring_key=105,159,213' 97 | 'semanticHighlighting.annotation.color=207,9,51' 98 | 'semanticHighlighting.field.color=82,117,237' 99 | 'semanticHighlighting.number.color=207,9,51' 100 | 'semanticHighlighting.recordKeyword.color=105,159,213' 101 | 'semanticHighlighting.restrictedKeywords.color=105,159,213' 102 | 'semanticHighlighting.staticField.color=82,117,237' 103 | 'semanticHighlighting.staticFinalField.color=82,117,237' 104 | 'semanticHighlighting.varKeyword.color=105,159,213' 105 | 'semanticHighlighting.yieldKeyword.color=105,159,213' 106 | 'sourceHoverBackgroundColor=40,46,67'; 107 | } 108 | 109 | IEclipsePreferences#org-eclipse-wst-xml-ui:io-github-pyvesb-eclipse_planet_themes-neptune { 110 | preferences: 111 | 'cdataBorder=#7454e9 | null | false | false | false | false' 112 | 'commentBorder=#c4d9f0 | null | false | false | false | false' 113 | 'commentText=#c4d9f0 | null | false | false | false | false' 114 | 'declBorder=#2690db | null | false | false | false | false' 115 | 'doctypeExternalId=#5275ed | null | false | false | false | false' 116 | 'doctypeExternalPubref=#5275ed | null | false | false | false | false' 117 | 'doctypeExtrenalSysref=#5275ed | null | false | false | false | false' 118 | 'doctypeName=#cf0933 | null | false | false | false | false' 119 | 'piBorder=#2690db | null | false | false | false | false' 120 | 'tagAttributeName=#699fd5 | null | false | false | false | false' 121 | 'tagAttributeValue=#5275ed | null | false | true | false | false' 122 | 'tagBorder=#2690db | null | false | false | false | false' 123 | 'tagName=#699fd5 | null | true | false | false | false'; 124 | } 125 | 126 | IEclipsePreferences#org-python-pydev:io-github-pyvesb-eclipse_planet_themes-neptune { 127 | preferences: 128 | 'BACKQUOTES_COLOR=105,159,213' 129 | 'CLASS_NAME_COLOR=130,97,239' 130 | 'COMMENT_COLOR=196,217,240' 131 | 'DECORATOR_COLOR=207,9,51' 132 | 'DOCSTRING_MARKUP_COLOR=38,144,219' 133 | 'EDITOR_MATCHING_BRACKETS_COLOR=38,144,219' 134 | 'KEYWORD_COLOR=105,159,213' 135 | 'NUMBER_COLOR=207,9,51' 136 | 'OPERATORS_COLOR=38,144,219' 137 | 'PARENS_COLOR=38,144,219' 138 | 'SELF_COLOR=82,117,237' 139 | 'STRING_COLOR=207,9,51' 140 | 'UNICODE_COLOR=207,9,51'; 141 | } 142 | 143 | IEclipsePreferences#org-eclipse-mylyn-wikitext-ui:io-github-pyvesb-eclipse_planet_themes-neptune { 144 | preferences: 145 | 'block-h1=font-size: 120%; font-weight: bold; color: #699fd5;' 146 | 'block-h2=font-size: 110%; font-weight: bold; color: #699fd5;' 147 | 'block-h3=font-size: 105%; font-weight: bold; color: #699fd5;' 148 | 'block-h4=font-weight: bold; color: #699fd5;' 149 | 'block-h5=font-size: 90%; font-weight: bold; color: #699fd5;' 150 | 'block-h6=font-size: 80%; font-weight: bold; color: #699fd5;' 151 | 'phrase-code=font-family: monospace; color: #2690db;' 152 | 'block-bc=font-family: monospace; color: #2690db;' 153 | } 154 | 155 | IEclipsePreferences#org-eclipse-pde-ui:io-github-pyvesb-eclipse_planet_themes-neptune { 156 | preferences: 157 | 'editor.color.externalized_string=196,217,240' 158 | 'editor.color.header_attributes=105,159,213' 159 | 'editor.color.header_key=105,159,213' 160 | 'editor.color.header_osgi=105,159,213' 161 | 'editor.color.instr=207,9,51' 162 | 'editor.color.string=207,9,51' 163 | 'editor.color.tag=105,159,213' 164 | 'editor.color.xml_comment=196,217,240'; 165 | } 166 | 167 | IEclipsePreferences#org-eclipse-cdt-ui:io-github-pyvesb-eclipse_planet_themes-neptune { 168 | preferences: 169 | 'asm_directive = 8, 144, 219' /* DEFAULT */ 170 | 'asm_label = 38, 144, 219' /* DEFAULT */ 171 | 'c_braces = 38, 144, 219' /* DEFAULT */ 172 | 'c_comment_task_tag = 196, 217, 240' /* COMMENT */ 173 | 'c_default = 146, 121, 255' /* DEFAULT2 */ 174 | 'c_keyword = 105, 159, 213' /* KEYWORD */ 175 | 'c_multi_line_comment = 196, 217, 240' /* COMMENT */ 176 | 'c_numbers = 104, 151, 187' /* NUMBERS */ 177 | 'c_operators = 38, 144, 219' /* DEFAULT */ 178 | 'c_single_line_comment = 196, 217, 240' /* COMMENT */ 179 | 'c_string = 84, 120, 234' /* STRING */ 180 | 'c_type = 105, 159, 213' /* KEYWORD */ 181 | 'pp_default = 38, 144, 219' /* DEFAULT */ 182 | 'pp_directive = 105, 125, 213' /* PREPROC */ 183 | 'pp_header = 84, 120, 234' /* STRING */ 184 | 'semanticHighlighting.class.color = 71, 96, 181' /* STRUCT */ 185 | 'semanticHighlighting.enum.color = 129, 155, 204' /* ENUM */ 186 | 'semanticHighlighting.enumerator.color = 82, 117, 237' /* STRUCT_FIELD */ 187 | 'semanticHighlighting.externalSDK.color = 63, 236, 193' 188 | 'semanticHighlighting.field.color = 82, 117, 237' /* STRUCT_FIELD */ 189 | 'semanticHighlighting.function.color = 104, 151, 187' /* FUNCTION */ 190 | 'semanticHighlighting.functionDeclaration.color = 62, 106, 229' /* FUNCTION */ 191 | 'semanticHighlighting.globalVariable.color = 68, 164, 159' 192 | 'semanticHighlighting.localVariable.color = 67, 223, 247' /* LOCAL VARS */ 193 | 'semanticHighlighting.localVariableDeclaration.color = 67, 223, 247' /* LOCAL VARS */ 194 | 'semanticHighlighting.macroDefinition.color = 46, 62, 177' /* MACRO */ 195 | 'semanticHighlighting.method.color = 62, 106, 229' /* FUNCTION */ 196 | 'semanticHighlighting.methodDeclaration.color = 104, 151, 187' /* FUNCTION */ 197 | 'semanticHighlighting.namespace.color = 121, 171, 255' /* TYPEDEF */ 198 | 'semanticHighlighting.parameterVariable.color = 67, 223, 247' /* LOCAL VARS */ 199 | 'semanticHighlighting.staticField.color = 67, 223, 247' /* LOCAL VARS */ 200 | 'semanticHighlighting.staticMethod.color = 67, 223, 247' /* LOCAL VARS */ 201 | 'semanticHighlighting.typedef.color = 121, 171, 255' /* TYPEDEF */ 202 | 'semanticHighlighting.typeParameter.color = 67, 223, 247' /* LOCAL VARS */ 203 | 'buildConsoleInfoStreamColor = 18, 144, 195' 204 | 'buildConsoleOutputStreamColor = 200, 200, 200' 205 | 'buildConsoleErrorStreamColor = 163, 5, 5' 206 | 'buildConsoleBackgroundColor = 40, 46, 67' 207 | 'buildConsoleProblemBackgroundColor = 130, 6, 12' 208 | 'buildConsoleProblemWarningBackgroundColor = 150, 88, 11' 209 | 'buildConsoleProblemInfoBackgroundColor = 122, 131, 235' 210 | 'buildConsoleProblemHighlightedColor = 255, 0, 0' 211 | 'sourceHoverBackgroundColor = 40, 46, 67' 212 | 'inactiveCodeColor = 30, 30, 30' 213 | 'org.eclipse.cdt.internal.ui.text.doctools.multi = 196, 217, 240' /* COMMENT */ 214 | 'org.eclipse.cdt.internal.ui.text.doctools.recognizedTag = 30, 120, 155' 215 | 'org.eclipse.cdt.internal.ui.text.doctools.single = 196, 217, 240' /* COMMENT */ 216 | } 217 | 218 | IEclipsePreferences#org-eclipse-ui-editors:org-eclipse-cdt-ui { 219 | preferences: 220 | 'org.eclipse.cdt.ui.occurrenceIndicationColor = 70, 80, 110' 221 | 'org.eclipse.cdt.ui.writeOccurrenceIndicationColor = 80, 80, 120' 222 | } -------------------------------------------------------------------------------- /planet-themes-plugin/css/planets-dark.css: -------------------------------------------------------------------------------- 1 | Shell * { 2 | color: #cacaca; 3 | } 4 | 5 | Tree, Table { 6 | swt-header-color: #cacaca; 7 | } 8 | 9 | ExpandableComposite, Section { 10 | swt-titlebar-color: #cacaca; 11 | } 12 | 13 | CTabItem { 14 | color: white; 15 | } 16 | 17 | HeapStatus { 18 | color: none; 19 | } 20 | 21 | IEclipsePreferences#org-eclipse-ui-workbench:io-github-pyvesb-eclipse_planet_themes-planets-dark { 22 | preferences: 23 | 'ADDITION_COLOR=60,228,60' 24 | 'CONFLICTING_COLOR=240,15,66' 25 | 'CONTENT_ASSIST_FOREGROUND_COLOR=202,202,202' 26 | 'EDITION_COLOR=228,228,228' 27 | 'DELETION_COLOR=228,60,60' 28 | 'INCOMING_COLOR=31,179,235' 29 | 'OUTGOING_COLOR=238,238,238' 30 | 'RESOLVED_COLOR=108,210,17' 31 | 'cucumber.eclipse.editor.presentation.gherkin_text_colour=202,202,202' 32 | 'org.eclipse.egit.ui.DiffAddBackgroundColor=30,70,30' 33 | 'org.eclipse.egit.ui.DiffAddForegroundColor=236,236,236' 34 | 'org.eclipse.egit.ui.DiffHeadlineForegroundColor=236,236,236' 35 | 'org.eclipse.egit.ui.DiffHunkForegroundColor=236,236,236' 36 | 'org.eclipse.egit.ui.DiffRemoveBackgroundColor=100,20,20' 37 | 'org.eclipse.egit.ui.DiffRemoveForegroundColor=236,236,236' 38 | 'org.eclipse.egit.ui.IgnoredResourceForegroundColor=202,202,202' 39 | 'org.eclipse.egit.ui.UncommittedChangeForegroundColor=202,202,202' 40 | 'org.eclipse.jdt.ui.Javadoc.foregroundColor=202,202,202' 41 | 'org.eclipse.pde.genericeditor.extension.editor.color.text=202,202,202' 42 | 'org.eclipse.ui.workbench.INFORMATION_FOREGROUND=202,202,202'; 43 | } 44 | 45 | IEclipsePreferences#org-eclipse-jdt-ui:io-github-pyvesb-eclipse_planet_themes-planets-dark { 46 | preferences: 47 | 'java_default=202,202,202' 48 | 'pf_coloring_value=202,202,202' 49 | 'pf_coloring_assignment=155,155,155' 50 | 'semanticHighlighting.abstractMethodInvocation.color=202,202,202' 51 | 'semanticHighlighting.annotation.enabled=true' 52 | 'semanticHighlighting.deprecatedMember.color=155,155,155' 53 | 'semanticHighlighting.inheritedMethodInvocation.color=202,202,202' 54 | 'semanticHighlighting.localVariable.color=155,155,155' 55 | 'semanticHighlighting.methodDeclarationName.color=202,202,202' 56 | 'semanticHighlighting.number.enabled=true' 57 | 'semanticHighlighting.staticMethodInvocation.color=202,202,202'; 58 | } 59 | 60 | IEclipsePreferences#org-eclipse-ui-editors:io-github-pyvesb-eclipse_planet_themes-planets-dark { 61 | preferences: 62 | 'AbstractTextEditor.Color.Foreground=202,202,202' 63 | 'changeIndicationColor=0,0,0' 64 | 'hyperlinkColor.SystemDefault=false' 65 | 'fullcoverage_color=30,70,30' 66 | 'nocoverage_color=100,20,20' 67 | 'partialcoverage_color=90,90,0'; 68 | } 69 | 70 | IEclipsePreferences#org-eclipse-debug-ui:io-github-pyvesb-eclipse_planet_themes-planets-dark { 71 | preferences: 72 | 'org.eclipse.debug.ui.MemoryHistoryKnownColor=235,235,235' 73 | 'org.eclipse.debug.ui.MemoryHistoryUnknownColor=170,175,185' 74 | 'org.eclipse.debug.ui.PREF_CHANGED_VALUE_BACKGROUND=95,5,5' 75 | 'org.eclipse.debug.ui.changedDebugElement=255,128,128' 76 | 'org.eclipse.debug.ui.outColor=202,202,202'; 77 | } 78 | 79 | IEclipsePreferences#org-eclipse-wst-xml-ui:io-github-pyvesb-eclipse_planet_themes-planets-dark { 80 | preferences: 'cdataText=#9b9b9b | null | false | false | false | false'; 81 | } 82 | 83 | IEclipsePreferences#org-python-pydev:io-github-pyvesb-eclipse_planet_themes-planets-dark { 84 | preferences: 85 | 'CODE_COLOR=202,202,202' 86 | 'FUNC_NAME_COLOR=202,202,202' 87 | 'FUNC_NAME_STYLE=1' 88 | 'KEYWORD_STYLE=1'; 89 | } 90 | 91 | IEclipsePreferences#org-eclipse-pde-ui:io-github-pyvesb-eclipse_planet_themes-planets-dark { 92 | preferences: 93 | 'editor.color.default=202,202,202' 94 | 'editor.color.externalized_string_italic=true' 95 | 'editor.color.header_assignment=155,155,155' 96 | 'editor.color.header_assignment_bold=true' 97 | 'editor.color.header_key_bold=true' 98 | 'editor.color.header_value=202,202,202' 99 | 'editor.color.header_value_italic=false' 100 | 'editor.color.instr_bold=true' 101 | 'editor.color.string_italic=false' 102 | 'editor.color.tag_bold=true'; 103 | } 104 | -------------------------------------------------------------------------------- /planet-themes-plugin/css/planets-unix.css: -------------------------------------------------------------------------------- 1 | FontDefinition#org-eclipse-jface-textfont, 2 | FontDefinition#org-eclipse-ui-workbench-texteditor-blockSelectionModeFont, 3 | FontDefinition#org-eclipse-jdt-ui-editors-textfont { 4 | font-family: 'Fira Code'; 5 | font-size: 12px; 6 | } 7 | -------------------------------------------------------------------------------- /planet-themes-plugin/css/planets-win.css: -------------------------------------------------------------------------------- 1 | Tree, Table { 2 | swt-lines-visible: false; 3 | } 4 | 5 | FontDefinition#org-eclipse-jface-textfont, 6 | FontDefinition#org-eclipse-ui-workbench-texteditor-blockSelectionModeFont, 7 | FontDefinition#org-eclipse-jdt-ui-editors-textfont { 8 | font-family: 'Fira Code'; 9 | font-size: 9px; 10 | } 11 | -------------------------------------------------------------------------------- /planet-themes-plugin/css/planets.css: -------------------------------------------------------------------------------- 1 | CTabFolder { 2 | padding: 0px 0px 1px 0px; 3 | swt-tab-renderer: url('bundleclass://io.github.pyvesb.eclipse_planet_themes/io.github.pyvesb.eclipse_planet_themes.CTabFolderPlanetsRenderer'); 4 | swt-tab-outline: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 5 | swt-selected-tab-fill: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 6 | swt-outer-keyline-color: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 7 | swt-maximize-visible: false; 8 | swt-selected-tab-highlight: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 9 | swt-selected-highlight-top: true; 10 | } 11 | 12 | CTabFolder.active { 13 | swt-selected-tab-highlight: none; 14 | swt-tab-outline: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 15 | swt-selected-tab-fill: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 16 | } 17 | 18 | /* CTabFolders within dialogs do not support the active pseudo CSS class. */ 19 | Shell[swt-data-class ~= 'org.eclipse.jface.dialogs.Dialog'] * CTabFolder { 20 | padding: 0px ; 21 | swt-selected-tab-highlight: none; 22 | swt-tab-outline: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 23 | swt-selected-tab-fill: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 24 | } 25 | 26 | CTabFolder#org-eclipse-ui-editorss, 27 | Composite#org-eclipse-ui-editorss * CTabFolder { 28 | swt-minimize-visible: false; 29 | } 30 | 31 | .MToolBar.Draggable, 32 | .MToolControl.TrimStack, 33 | .MToolControl.Draggable { 34 | handle-image: url('platform:/plugin/io.github.pyvesb.eclipse_planet_themes/images/handle.png'); 35 | handle-image-rotated: url('platform:/plugin/io.github.pyvesb.eclipse_planet_themes/images/handle-rotated.png'); 36 | } 37 | 38 | .DragFeedback, 39 | .ModifiedDragFeedback { 40 | background-color: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 41 | } 42 | 43 | CTabItem { 44 | swt-show-close: false; 45 | } 46 | 47 | Shell, Shell * { 48 | background-color:'#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 49 | } 50 | 51 | Shell[swt-data-class ~= 'org.eclipse.jface.dialogs.PopupDialog'] *, 52 | StagingView-18 > StyledText, 53 | Button[style~='SWT.PUSH'], 54 | Text[style~='SWT.BORDER'], 55 | Combo, 56 | CCombo, 57 | List, 58 | Spinner, 59 | TreeAdapter, 60 | TableAdapter { 61 | background-color: '#io-github-pyvesb-eclipse_planet_themes-INTERACTION_COLOR'; 62 | } 63 | 64 | Tree, Table { 65 | background-color: '#io-github-pyvesb-eclipse_planet_themes-INTERACTION_COLOR'; 66 | swt-header-background-color: '#io-github-pyvesb-eclipse_planet_themes-INTERACTION_COLOR'; 67 | } 68 | 69 | Form, Section, ExpandableComposite { 70 | tb-toggle-color: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 71 | tb-toggle-hover-color: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 72 | } 73 | 74 | Form { 75 | h-hover-full-color: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 76 | h-hover-light-color: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 77 | h-bottom-keyline-2-color: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 78 | h-bottom-keyline-1-color: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 79 | swt-background-mode: 'force'; 80 | text-background-color: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 81 | } 82 | 83 | TabbedPropertyTitle { 84 | swt-backgroundgradientstart-color: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 85 | swt-backgroundgradientend-color: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 86 | swt-backgroundbottomkeyline1-color: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 87 | swt-backgroundbottomkeyline2-color: '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR'; 88 | } 89 | 90 | Section { 91 | background-color-gradient-titlebar: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 92 | background-color-titlebar: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 93 | border-color-titlebar: '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR'; 94 | } 95 | 96 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR { 97 | category: '#io-github-pyvesb-eclipse_planet_themes-themeElementCategory'; 98 | label: 'Background Color'; 99 | description: 'The background color of most visual elements.'; 100 | } 101 | 102 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR { 103 | category: '#io-github-pyvesb-eclipse_planet_themes-themeElementCategory'; 104 | label: 'Accent Color'; 105 | description: 'The color for tab highlights and keylines.'; 106 | } 107 | 108 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-INTERACTION_COLOR { 109 | category: '#io-github-pyvesb-eclipse_planet_themes-themeElementCategory'; 110 | label: 'Interaction Color'; 111 | description: 'The background color for buttons, various selectable elements, trees and tables.'; 112 | } 113 | 114 | ThemesExtension { 115 | color-definition: 116 | '#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR', 117 | '#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR', 118 | '#io-github-pyvesb-eclipse_planet_themes-INTERACTION_COLOR'; 119 | } 120 | 121 | IEclipsePreferences#org-eclipse-ui-editors:io-github-pyvesb-eclipse_planet_themes-planets { 122 | preferences: 123 | 'AbstractTextEditor.Color.Background.SystemDefault=false' 124 | 'AbstractTextEditor.Color.Foreground.SystemDefault=false' 125 | 'AbstractTextEditor.Color.SelectionBackground.SystemDefault=false' 126 | 'AbstractTextEditor.Color.SelectionForeground.SystemDefault=false' 127 | 'AbstractTextEditor.Color.SelectionForeground=0,0,0' 128 | 'searchResultIndication=true' 129 | 'searchResultHighlighting=false' 130 | 'searchResultTextStyle=DASHED_BOX'; 131 | } 132 | 133 | /* recordKeyword, varKeyword, yieldKeyword are for Eclipse 2020-09 and older, but were replaced by restrictedKeywords in 2020-12. */ 134 | IEclipsePreferences#org-eclipse-jdt-ui:io-github-pyvesb-eclipse_planet_themes-planets { 135 | preferences: 136 | 'java_keyword_bold=true' 137 | 'java_keyword_return_bold=true' 138 | 'semanticHighlighting.methodDeclarationName.enabled=true' 139 | 'semanticHighlighting.methodDeclarationName.bold=true' 140 | 'semanticHighlighting.restrictedKeywords.bold=true' 141 | 'semanticHighlighting.recordKeyword.bold=true' 142 | 'semanticHighlighting.varKeyword.bold=true' 143 | 'semanticHighlighting.yieldKeyword.bold=true'; 144 | } 145 | 146 | IEclipsePreferences#org-eclipse-cdt-ui:io-github-pyvesb-eclipse_planet_themes-planets { 147 | preferences: 148 | 'semanticHighlighting.class.enabled=true' 149 | 'semanticHighlighting.class.bold=true' 150 | 'semanticHighlighting.enum.enabled=true' 151 | 'semanticHighlighting.enumerator.enabled=true' 152 | 'semanticHighlighting.enum.italic=true' 153 | 'semanticHighlighting.externalSDK.enabled=true' 154 | 'semanticHighlighting.field.enabled=true' 155 | 'semanticHighlighting.function.enabled=true' 156 | 'semanticHighlighting.functionDeclaration.enabled=true' 157 | 'semanticHighlighting.functionDeclaration.bold=true' 158 | 'semanticHighlighting.globalVariable.enabled=true' 159 | 'semanticHighlighting.globalVariable.italic=false' 160 | 'semanticHighlighting.localVariable.enabled=true' 161 | 'semanticHighlighting.localVariableDeclaration.enabled=true' 162 | 'semanticHighlighting.macroDefinition.enabled=true' 163 | 'semanticHighlighting.macroDefinition.bold=true' 164 | 'semanticHighlighting.method.enabled=true' 165 | 'semanticHighlighting.methodDeclaration.enabled=true' 166 | 'semanticHighlighting.methodDeclaration.bold=true' 167 | 'semanticHighlighting.namespace.enabled=true' 168 | 'semanticHighlighting.parameterVariable.enabled=true' 169 | 'semanticHighlighting.staticField.enabled=true' 170 | 'semanticHighlighting.staticMethod.enabled=true' 171 | 'semanticHighlighting.typedef.enabled=true' 172 | 'semanticHighlighting.typedef.bold=true' 173 | 'semanticHighlighting.typeParameter.enabled=true' 174 | } -------------------------------------------------------------------------------- /planet-themes-plugin/css/pluto-unix.css: -------------------------------------------------------------------------------- 1 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/pluto.css"); 2 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets-unix.css"); 3 | -------------------------------------------------------------------------------- /planet-themes-plugin/css/pluto-win.css: -------------------------------------------------------------------------------- 1 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/pluto.css"); 2 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets-win.css"); 3 | -------------------------------------------------------------------------------- /planet-themes-plugin/css/pluto.css: -------------------------------------------------------------------------------- 1 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets.css"); 2 | @import url("platform:/plugin/io.github.pyvesb.eclipse_planet_themes/css/planets-dark.css"); 3 | 4 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-BACKGROUND_COLOR { 5 | color: #221f23; 6 | } 7 | 8 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-ACCENT_COLOR { 9 | color: #7454e1; 10 | } 11 | 12 | ColorDefinition#io-github-pyvesb-eclipse_planet_themes-INTERACTION_COLOR { 13 | color: #1e1b1e; 14 | } 15 | 16 | /* The backgrounds of some SashForms (e.g. Debug Variable view) are not styled unless this is specified again. */ 17 | SashForm { 18 | background-color: #221f23; 19 | } 20 | 21 | IEclipsePreferences#org-eclipse-ui-workbench:io-github-pyvesb-eclipse_planet_themes-pluto { 22 | preferences: 23 | 'ACTIVE_HYPERLINK_COLOR=236,154,24' 24 | 'CONTENT_ASSIST_BACKGROUND_COLOR=34,31,35' 25 | 'HYPERLINK_COLOR=236,154,24' 26 | 'org.eclipse.egit.ui.UncommittedChangeBackgroundColor=30,27,30' 27 | 'org.eclipse.egit.ui.DiffHeadlineBackgroundColor=30,27,30' 28 | 'org.eclipse.egit.ui.DiffHunkBackgroundColor=30,27,30' 29 | 'org.eclipse.jdt.ui.Javadoc.backgroundColor=34,31,35' 30 | 'org.eclipse.jface.REVISION_NEWEST_COLOR=160,120,40' 31 | 'org.eclipse.jface.REVISION_OLDEST_COLOR=70,45,3' 32 | 'org.eclipse.pde.genericeditor.extension.editor.color.attribute=116,84,225' 33 | 'org.eclipse.pde.genericeditor.extension.editor.color.comment=240,218,196' 34 | 'org.eclipse.pde.genericeditor.extension.editor.color.header=116,84,225' 35 | 'org.eclipse.pde.genericeditor.extension.editor.color.quote=236,154,24' 36 | 'org.eclipse.pde.genericeditor.extension.editor.color.tag=116,84,225' 37 | 'org.eclipse.search.ui.match.highlight=66,50,84' 38 | 'org.eclipse.ui.editors.rangeIndicatorColor=116,84,225' 39 | 'org.eclipse.ui.workbench.INFORMATION_BACKGROUND=34,31,35' 40 | 'cucumber.eclipse.editor.presentation.gherkin_comment_colour=240,218,196' 41 | 'cucumber.eclipse.editor.presentation.gherkin_keyword_colour=236,154,24' 42 | 'cucumber.eclipse.editor.presentation.gherkin_numeric_literal_colour=189,51,30' 43 | 'cucumber.eclipse.editor.presentation.gherkin_step_colour=116,84,225' 44 | 'cucumber.eclipse.editor.presentation.gherkin_string_colour=189,51,30' 45 | 'cucumber.eclipse.editor.presentation.gherkin_tag_colour=189,51,30'; 46 | } 47 | 48 | IEclipsePreferences#org-eclipse-ui-editors:io-github-pyvesb-eclipse_planet_themes-pluto { 49 | preferences: 50 | 'AbstractTextEditor.Color.SelectionBackground=99,63,139' 51 | 'AbstractTextEditor.Color.Background=34,31,35' 52 | 'LSP4EReadOccurrenceIndicationColor=80,70,85' 53 | 'LSP4ETextOccurrenceIndicationColor=80,70,85' 54 | 'LSP4EWriteOccurrenceIndicationColor=100,90,110' 55 | 'TextOccurrenceIndicationColor=80,70,85' 56 | 'additionIndicationColor=128,0,255' 57 | 'currentIPColor=100,90,110' 58 | 'currentLineColor=64,57,66' 59 | 'deletionIndicationColor=116,84,225' 60 | 'infoIndicationColor=116,84,225' 61 | 'linked.focus.color=189,51,30' 62 | 'linked.target.color=189,51,30' 63 | 'linked.exit.color=240,218,196' 64 | 'matchingBracketsColor=236,154,24' 65 | 'occurrenceIndicationColor=80,70,85' 66 | 'pydevOccurrenceIndicationColor=80,70,85' 67 | 'searchResultIndicationColor=133,51,234' 68 | 'secondaryIPColor=100,90,110' 69 | 'writeOccurrenceIndicationColor=100,90,110'; 70 | } 71 | 72 | IEclipsePreferences#org-eclipse-debug-ui:io-github-pyvesb-eclipse_planet_themes-pluto { 73 | preferences: 74 | 'org.eclipse.debug.ui.consoleBackground=34,31,35' 75 | 'org.eclipse.debug.ui.errorColor=189,51,30' 76 | 'org.eclipse.debug.ui.inColor=223,153,84'; 77 | } 78 | 79 | IEclipsePreferences#org-eclipse-jdt-ui:io-github-pyvesb-eclipse_planet_themes-pluto { 80 | preferences: 81 | 'java_bracket=236,154,24' 82 | 'java_comment_task_tag=236,154,24' 83 | 'java_doc_default=236,154,24' 84 | 'java_doc_keyword=236,154,24' 85 | 'java_doc_link=236,154,24' 86 | 'java_doc_tag=236,154,24' 87 | 'java_keyword=116,84,225' 88 | 'java_keyword_return=116,84,225' 89 | 'java_multi_line_comment=240,218,196' 90 | 'java_operator=236,154,24' 91 | 'java_single_line_comment=240,218,196' 92 | 'java_string=189,51,30' 93 | 'pf_coloring_argument=189,51,30' 94 | 'pf_coloring_comment=240,218,196' 95 | 'pf_coloring_key=116,84,225' 96 | 'semanticHighlighting.annotation.color=189,51,30' 97 | 'semanticHighlighting.field.color=219,162,38' 98 | 'semanticHighlighting.number.color=189,51,30' 99 | 'semanticHighlighting.recordKeyword.color=116,84,225' 100 | 'semanticHighlighting.restrictedKeywords.color=116,84,225' 101 | 'semanticHighlighting.staticField.color=219,162,38' 102 | 'semanticHighlighting.staticFinalField.color=219,162,38' 103 | 'semanticHighlighting.varKeyword.color=116,84,225' 104 | 'semanticHighlighting.yieldKeyword.color=116,84,225' 105 | 'sourceHoverBackgroundColor=34,31,35'; 106 | } 107 | 108 | IEclipsePreferences#org-eclipse-wst-xml-ui:io-github-pyvesb-eclipse_planet_themes-pluto { 109 | preferences: 110 | 'cdataBorder=#7454e9 | null | false | false | false | false' 111 | 'commentBorder=#f0dac4 | null | false | false | false | false' 112 | 'commentText=#f0dac4 | null | false | false | false | false' 113 | 'declBorder=#ec9a18 | null | false | false | false | false' 114 | 'doctypeExternalId=#7454e1 | null | false | false | false | false' 115 | 'doctypeExternalPubref=#7454e1 | null | false | false | false | false' 116 | 'doctypeExtrenalSysref=#7454e1 | null | false | false | false | false' 117 | 'doctypeName=#bd331e | null | false | false | false | false' 118 | 'piBorder=#ec9a18 | null | false | false | false | false' 119 | 'tagAttributeName=#7454e1 | null | false | false | false | false' 120 | 'tagAttributeValue=#7454e1 | null | false | true | false | false' 121 | 'tagBorder=#ec9a18 | null | false | false | false | false' 122 | 'tagName=#7454e1 | null | true | false | false | false'; 123 | } 124 | 125 | IEclipsePreferences#org-python-pydev:io-github-pyvesb-eclipse_planet_themes-pluto { 126 | preferences: 127 | 'BACKQUOTES_COLOR=116,84,225' 128 | 'CLASS_NAME_COLOR=223,153,84' 129 | 'COMMENT_COLOR=240,218,196' 130 | 'DECORATOR_COLOR=189,51,30' 131 | 'DOCSTRING_MARKUP_COLOR=236,154,24' 132 | 'EDITOR_MATCHING_BRACKETS_COLOR=236,154,24' 133 | 'KEYWORD_COLOR=116,84,225' 134 | 'NUMBER_COLOR=189,51,30' 135 | 'OPERATORS_COLOR=236,154,24' 136 | 'PARENS_COLOR=236,154,24' 137 | 'SELF_COLOR=219,162,38' 138 | 'STRING_COLOR=189,51,30' 139 | 'UNICODE_COLOR=189,51,30'; 140 | } 141 | 142 | IEclipsePreferences#org-eclipse-mylyn-wikitext-ui:io-github-pyvesb-eclipse_planet_themes-pluto { 143 | preferences: 144 | 'block-h1=font-size: 120%; font-weight: bold; color: #7454e1;' 145 | 'block-h2=font-size: 110%; font-weight: bold; color: #7454e1;' 146 | 'block-h3=font-size: 105%; font-weight: bold; color: #7454e1;' 147 | 'block-h4=font-weight: bold; color: #7454e1;' 148 | 'block-h5=font-size: 90%; font-weight: bold; color: #7454e1;' 149 | 'block-h6=font-size: 80%; font-weight: bold; color: #7454e1;' 150 | 'phrase-code=font-family: monospace; color: #ec9a18;' 151 | 'block-bc=font-family: monospace; color: #ec9a18;' 152 | } 153 | 154 | IEclipsePreferences#org-eclipse-pde-ui:io-github-pyvesb-eclipse_planet_themes-pluto { 155 | preferences: 156 | 'editor.color.externalized_string=240,218,196' 157 | 'editor.color.header_attributes=116,84,225' 158 | 'editor.color.header_key=116,84,225' 159 | 'editor.color.header_osgi=116,84,225' 160 | 'editor.color.instr=236,154,24' 161 | 'editor.color.string=236,154,24' 162 | 'editor.color.tag=116,84,225' 163 | 'editor.color.xml_comment=240,218,196'; 164 | } 165 | 166 | IEclipsePreferences#org-eclipse-cdt-ui:io-github-pyvesb-eclipse_planet_themes-pluto { 167 | preferences: 168 | 'asm_directive = 236, 154, 24' 169 | 'asm_label = 236, 154, 24' 170 | 'c_braces = 236, 154, 24' 171 | 'c_comment_task_tag = 236, 154, 24' 172 | 'c_default = 236, 154, 24' 173 | 'c_keyword = 116, 84, 225' 174 | 'c_multi_line_comment = 240, 218, 196' 175 | 'c_numbers = 189, 51, 30' 176 | 'c_operators = 236, 154, 24' 177 | 'c_single_line_comment = 240, 218, 196' 178 | 'c_string = 189, 51, 30' 179 | 'c_type = 116, 84, 225' 180 | 'pp_default = 189, 51, 30' 181 | 'pp_directive = 189, 51, 30' 182 | 'pp_header = 189, 51, 30' 183 | 'semanticHighlighting.class.color = 219, 162, 38' 184 | 'semanticHighlighting.enum.color = 219, 116, 38' 185 | 'semanticHighlighting.enumerator.color = 219, 116, 38' 186 | 'semanticHighlighting.externalSDK.color = 116, 84, 225' 187 | 'semanticHighlighting.field.color = 219, 162, 38' 188 | 'semanticHighlighting.function.color = 202, 202, 202' 189 | 'semanticHighlighting.functionDeclaration.color = 202, 202, 202' 190 | 'semanticHighlighting.globalVariable.color = 189, 51, 30' 191 | 'semanticHighlighting.localVariable.color = 219, 162, 38' 192 | 'semanticHighlighting.localVariableDeclaration.color = 219, 162, 38' 193 | 'semanticHighlighting.macroDefinition.color = 156, 73, 61' 194 | 'semanticHighlighting.method.color = 202, 202, 202' 195 | 'semanticHighlighting.methodDeclaration.color = 202, 202, 202' 196 | 'semanticHighlighting.namespace.color = 219, 162, 38' 197 | 'semanticHighlighting.parameterVariable.color = 153, 121, 52' 198 | 'semanticHighlighting.staticField.color = 219, 162, 38' 199 | 'semanticHighlighting.staticMethod.color = 219, 162, 38' 200 | 'semanticHighlighting.typedef.color = 219, 162, 38' 201 | 'semanticHighlighting.typeParameter.color = 219, 162, 38' 202 | 'buildConsoleInfoStreamColor = 18, 144, 195' 203 | 'buildConsoleOutputStreamColor = 200, 200, 200' 204 | 'buildConsoleErrorStreamColor = 163, 5, 5' 205 | 'buildConsoleBackgroundColor = 40, 46, 67' 206 | 'buildConsoleProblemBackgroundColor = 130, 6, 12' 207 | 'buildConsoleProblemWarningBackgroundColor = 150, 88, 11' 208 | 'buildConsoleProblemInfoBackgroundColor = 122, 131, 235' 209 | 'buildConsoleProblemHighlightedColor = 255, 0, 0' 210 | 'sourceHoverBackgroundColor = 34, 31, 35' 211 | 'inactiveCodeColor = 30, 30, 30' 212 | 'org.eclipse.cdt.internal.ui.text.doctools.multi = 240, 218, 196' 213 | 'org.eclipse.cdt.internal.ui.text.doctools.recognizedTag = 30, 120, 155' 214 | 'org.eclipse.cdt.internal.ui.text.doctools.single = 240, 218, 196' 215 | 216 | } 217 | 218 | IEclipsePreferences#org-eclipse-ui-editors:org-eclipse-cdt-ui { 219 | preferences: 220 | 'org.eclipse.cdt.ui.occurrenceIndicationColor = 80, 70, 85' 221 | 'org.eclipse.cdt.ui.writeOccurrenceIndicationColor = 100, 90, 110' 222 | } -------------------------------------------------------------------------------- /planet-themes-plugin/fonts/FiraCode-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/planet-themes-plugin/fonts/FiraCode-Bold.ttf -------------------------------------------------------------------------------- /planet-themes-plugin/fonts/FiraCode-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/planet-themes-plugin/fonts/FiraCode-Light.ttf -------------------------------------------------------------------------------- /planet-themes-plugin/fonts/FiraCode-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/planet-themes-plugin/fonts/FiraCode-Medium.ttf -------------------------------------------------------------------------------- /planet-themes-plugin/fonts/FiraCode-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/planet-themes-plugin/fonts/FiraCode-Regular.ttf -------------------------------------------------------------------------------- /planet-themes-plugin/fonts/FiraCode-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/planet-themes-plugin/fonts/FiraCode-SemiBold.ttf -------------------------------------------------------------------------------- /planet-themes-plugin/fonts/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014, The Fira Code Project Authors (https://github.com/tonsky/FiraCode) 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /planet-themes-plugin/fonts/README.txt: -------------------------------------------------------------------------------- 1 | The font files in this package are from the FiraCode 6.2 release. The font's license is included in the LICENSE.txt file. 2 | -------------------------------------------------------------------------------- /planet-themes-plugin/images/handle-rotated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/planet-themes-plugin/images/handle-rotated.png -------------------------------------------------------------------------------- /planet-themes-plugin/images/handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PyvesB/eclipse-planet-themes/f0c6f52761cd4400083f868ce2428a6afec5c02a/planet-themes-plugin/images/handle.png -------------------------------------------------------------------------------- /planet-themes-plugin/plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 11 | 12 | 17 | 18 | 23 | 24 | 29 | 30 | 35 | 36 | 41 | 42 | 47 | 48 | 53 | 54 | 59 | 60 | 61 | 63 | 66 | 67 | 68 | 70 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /planet-themes-plugin/src/main/java/com/codeaffine/eclipse/ui/swt/theme/FontLoader.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2014 - 2021 Frank Appel 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * Frank Appel - initial API and implementation 10 | * Pierre-Yves B. - switch to Fira Code and use ILog instead of LogService 11 | */ 12 | package com.codeaffine.eclipse.ui.swt.theme; 13 | 14 | import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; 15 | import static java.util.Collections.emptyMap; 16 | import static java.util.Collections.list; 17 | import static org.eclipse.core.runtime.FileLocator.find; 18 | 19 | import java.io.File; 20 | import java.io.IOException; 21 | import java.io.InputStream; 22 | import java.net.URL; 23 | import java.nio.file.Files; 24 | import java.util.Enumeration; 25 | 26 | import org.eclipse.core.runtime.FileLocator; 27 | import org.eclipse.core.runtime.IStatus; 28 | import org.eclipse.core.runtime.Path; 29 | import org.eclipse.core.runtime.Platform; 30 | import org.eclipse.core.runtime.Status; 31 | import org.eclipse.swt.widgets.Display; 32 | import org.osgi.framework.Bundle; 33 | import org.osgi.framework.FrameworkUtil; 34 | import static java.nio.file.Files.copy; 35 | 36 | class FontLoader { 37 | 38 | static final String FONT_FACE = "Fira Code"; 39 | static final String FONTS_DIRECTORY = "/fonts"; 40 | 41 | private final String fontDirectory; 42 | 43 | FontLoader( String fontDirectory ) { 44 | this.fontDirectory = fontDirectory; 45 | } 46 | 47 | void load( Bundle bundle, Display display ) { 48 | try { 49 | doLoad( bundle, display ); 50 | } catch( RuntimeException rte ) { 51 | Platform.getLog( bundle ).log( new Status( IStatus.ERROR, bundle.getSymbolicName(), "Unable to load fonts.", rte ) ); 52 | } 53 | } 54 | 55 | private void doLoad( Bundle bundle, Display display ) { 56 | list( getFontPaths( bundle, fontDirectory ) ) 57 | .forEach( fontPath -> loadFont( bundle, fontPath, display ) ); 58 | } 59 | 60 | private static Enumeration getFontPaths( Bundle bundle, String fontDirectory ) { 61 | return bundle.getEntryPaths( fontDirectory ); 62 | } 63 | 64 | private static void loadFont( Bundle bundle, String fontPath, Display display ) { 65 | if( fontPath.endsWith( ".ttf" ) ) { 66 | URL url = computeFontUrl( find( bundle, new Path( fontPath ), emptyMap() ) ); 67 | File diskLocation = getDiskLocation( fontPath ); 68 | copyToDisk( url, diskLocation ); 69 | display.asyncExec( () -> display.loadFont( diskLocation.toString() ) ); 70 | } 71 | } 72 | 73 | private static File getDiskLocation( String fontPath ) { 74 | try { 75 | return Platform.getStateLocation(FrameworkUtil.getBundle(FontLoader.class)).append( fontPath ).toFile().getCanonicalFile(); 76 | } catch( IOException shouldNotHappen ) { 77 | throw new IllegalStateException( shouldNotHappen ); 78 | } 79 | } 80 | 81 | private static URL computeFontUrl( URL url ) { 82 | try { 83 | return FileLocator.toFileURL( url ); 84 | } catch( IOException shouldNotHappen ) { 85 | throw new IllegalStateException( shouldNotHappen ); 86 | } 87 | } 88 | 89 | private static void copyToDisk( URL url, File diskLocation ) { 90 | try( InputStream input = url.openStream() ) { 91 | ensureDirectoryExists( diskLocation.toPath() ); 92 | copy( input, diskLocation.toPath(), REPLACE_EXISTING ); 93 | } catch (IOException shouldNotHappen ) { 94 | throw new IllegalStateException( shouldNotHappen ); 95 | } 96 | } 97 | 98 | private static void ensureDirectoryExists( java.nio.file.Path path ) throws IOException { 99 | if( !Files.exists( path.getParent() ) ) { 100 | Files.createDirectories( path.getParent() ); 101 | } 102 | } 103 | } -------------------------------------------------------------------------------- /planet-themes-plugin/src/main/java/com/codeaffine/eclipse/ui/swt/theme/FontOnStartupLoader.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2014 - 2020 Frank Appel 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * Frank Appel - initial API and implementation 10 | * Pierre-Yves B. - remove isPlatformSupported check 11 | */ 12 | package com.codeaffine.eclipse.ui.swt.theme; 13 | 14 | import org.eclipse.swt.widgets.Shell; 15 | import org.eclipse.ui.IStartup; 16 | import org.eclipse.ui.PlatformUI; 17 | import org.osgi.framework.Bundle; 18 | import org.osgi.framework.FrameworkUtil; 19 | 20 | public class FontOnStartupLoader implements IStartup { 21 | 22 | private final FontRegistryUpdater fontRegistryUpdater; 23 | private final FontLoader fontLoader; 24 | 25 | public FontOnStartupLoader() { 26 | fontLoader = new FontLoader( FontLoader.FONTS_DIRECTORY ); 27 | fontRegistryUpdater = new FontRegistryUpdater(); 28 | } 29 | 30 | @Override 31 | public void earlyStartup() { 32 | waitTillWorkbenchWindowExists(); 33 | loadFont( getShell() ); 34 | } 35 | 36 | private static void waitTillWorkbenchWindowExists() { 37 | long timeout = System.currentTimeMillis() + 1000; 38 | while( PlatformUI.getWorkbench().getWorkbenchWindows().length == 0 && timeout > System.currentTimeMillis() ) { 39 | try { 40 | Thread.sleep( 50 ); 41 | } catch( InterruptedException shouldNotHappen ) { 42 | throw new IllegalStateException( shouldNotHappen ); 43 | } 44 | } 45 | } 46 | 47 | private static Shell getShell() { 48 | return PlatformUI.getWorkbench().getWorkbenchWindows()[ 0 ].getShell(); 49 | } 50 | 51 | private void loadFont( Shell shell ) { 52 | Bundle bundle = FrameworkUtil.getBundle( FontOnStartupLoader.class ); 53 | fontLoader.load( bundle, shell.getDisplay() ); 54 | fontRegistryUpdater.update( shell ); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /planet-themes-plugin/src/main/java/com/codeaffine/eclipse/ui/swt/theme/FontRegistryUpdater.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2014 - 2017 Frank Appel 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * Frank Appel - initial API and implementation 10 | */ 11 | package com.codeaffine.eclipse.ui.swt.theme; 12 | 13 | import org.eclipse.jface.resource.FontRegistry; 14 | import org.eclipse.swt.graphics.Font; 15 | import org.eclipse.swt.widgets.Display; 16 | import org.eclipse.swt.widgets.Shell; 17 | import org.eclipse.ui.PlatformUI; 18 | 19 | /* 20 | * Note that this is a highly experimental workaround. It tries to solve timing 21 | * issues when applying the font-face in case that there are open editors on workbench 22 | * startup. Without this code undetermined font faces would be applied, and only 23 | * manually resetting the appropriate font preferences would fix the problem. 24 | */ 25 | class FontRegistryUpdater { 26 | 27 | public void update( Shell shell ) { 28 | shell.getDisplay().asyncExec( () -> { 29 | shell.setRedraw( false ); 30 | try { 31 | updateFontEntries( shell.getDisplay() ); 32 | } finally { 33 | shell.setRedraw( true ); 34 | } 35 | } ); 36 | } 37 | 38 | private static void updateFontEntries( Display display ) { 39 | FontRegistry fontRegistry = PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getFontRegistry(); 40 | if( FontLoader.FONT_FACE.equals( fontRegistry.getFontData( "org.eclipse.jface.textfont" )[ 0 ].getName() ) ) { 41 | updateFontEntry( display, fontRegistry, "org.eclipse.ui.workbench.texteditor.blockSelectionModeFont" ); 42 | updateFontEntry( display, fontRegistry, "org.eclipse.jface.textfont" ); 43 | updateFontEntry( display, fontRegistry, "org.eclipse.jdt.ui.editors.textfont" ); 44 | } 45 | } 46 | 47 | private static void updateFontEntry( Display display, FontRegistry fontRegistry, String symbolicName ) { 48 | Font textFont = fontRegistry.get( symbolicName ); 49 | fontRegistry.put( symbolicName, display.getSystemFont().getFontData() ); 50 | display.readAndDispatch(); 51 | fontRegistry.put( symbolicName, textFont.getFontData() ); 52 | display.readAndDispatch(); 53 | } 54 | } -------------------------------------------------------------------------------- /planet-themes-plugin/src/main/java/com/codeaffine/eclipse/ui/swt/theme/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Eclipse Public License - v 1.0 2 | 3 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC 4 | LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM 5 | CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 6 | 7 | 1. DEFINITIONS 8 | 9 | "Contribution" means: 10 | 11 | a) in the case of the initial Contributor, the initial code and documentation 12 | distributed under this Agreement, and 13 | b) in the case of each subsequent Contributor: 14 | i) changes to the Program, and 15 | ii) additions to the Program; 16 | 17 | where such changes and/or additions to the Program originate from and are 18 | distributed by that particular Contributor. A Contribution 'originates' 19 | from a Contributor if it was added to the Program by such Contributor 20 | itself or anyone acting on such Contributor's behalf. Contributions do not 21 | include additions to the Program which: (i) are separate modules of 22 | software distributed in conjunction with the Program under their own 23 | license agreement, and (ii) are not derivative works of the Program. 24 | 25 | "Contributor" means any person or entity that distributes the Program. 26 | 27 | "Licensed Patents" mean patent claims licensable by a Contributor which are 28 | necessarily infringed by the use or sale of its Contribution alone or when 29 | combined with the Program. 30 | 31 | "Program" means the Contributions distributed in accordance with this 32 | Agreement. 33 | 34 | "Recipient" means anyone who receives the Program under this Agreement, 35 | including all Contributors. 36 | 37 | 2. GRANT OF RIGHTS 38 | a) Subject to the terms of this Agreement, each Contributor hereby grants 39 | Recipient a non-exclusive, worldwide, royalty-free copyright license to 40 | reproduce, prepare derivative works of, publicly display, publicly 41 | perform, distribute and sublicense the Contribution of such Contributor, 42 | if any, and such derivative works, in source code and object code form. 43 | b) Subject to the terms of this Agreement, each Contributor hereby grants 44 | Recipient a non-exclusive, worldwide, royalty-free patent license under 45 | Licensed Patents to make, use, sell, offer to sell, import and otherwise 46 | transfer the Contribution of such Contributor, if any, in source code and 47 | object code form. This patent license shall apply to the combination of 48 | the Contribution and the Program if, at the time the Contribution is 49 | added by the Contributor, such addition of the Contribution causes such 50 | combination to be covered by the Licensed Patents. The patent license 51 | shall not apply to any other combinations which include the Contribution. 52 | No hardware per se is licensed hereunder. 53 | c) Recipient understands that although each Contributor grants the licenses 54 | to its Contributions set forth herein, no assurances are provided by any 55 | Contributor that the Program does not infringe the patent or other 56 | intellectual property rights of any other entity. Each Contributor 57 | disclaims any liability to Recipient for claims brought by any other 58 | entity based on infringement of intellectual property rights or 59 | otherwise. As a condition to exercising the rights and licenses granted 60 | hereunder, each Recipient hereby assumes sole responsibility to secure 61 | any other intellectual property rights needed, if any. For example, if a 62 | third party patent license is required to allow Recipient to distribute 63 | the Program, it is Recipient's responsibility to acquire that license 64 | before distributing the Program. 65 | d) Each Contributor represents that to its knowledge it has sufficient 66 | copyright rights in its Contribution, if any, to grant the copyright 67 | license set forth in this Agreement. 68 | 69 | 3. REQUIREMENTS 70 | 71 | A Contributor may choose to distribute the Program in object code form under 72 | its own license agreement, provided that: 73 | 74 | a) it complies with the terms and conditions of this Agreement; and 75 | b) its license agreement: 76 | i) effectively disclaims on behalf of all Contributors all warranties 77 | and conditions, express and implied, including warranties or 78 | conditions of title and non-infringement, and implied warranties or 79 | conditions of merchantability and fitness for a particular purpose; 80 | ii) effectively excludes on behalf of all Contributors all liability for 81 | damages, including direct, indirect, special, incidental and 82 | consequential damages, such as lost profits; 83 | iii) states that any provisions which differ from this Agreement are 84 | offered by that Contributor alone and not by any other party; and 85 | iv) states that source code for the Program is available from such 86 | Contributor, and informs licensees how to obtain it in a reasonable 87 | manner on or through a medium customarily used for software exchange. 88 | 89 | When the Program is made available in source code form: 90 | 91 | a) it must be made available under this Agreement; and 92 | b) a copy of this Agreement must be included with each copy of the Program. 93 | Contributors may not remove or alter any copyright notices contained 94 | within the Program. 95 | 96 | Each Contributor must identify itself as the originator of its Contribution, 97 | if 98 | any, in a manner that reasonably allows subsequent Recipients to identify the 99 | originator of the Contribution. 100 | 101 | 4. COMMERCIAL DISTRIBUTION 102 | 103 | Commercial distributors of software may accept certain responsibilities with 104 | respect to end users, business partners and the like. While this license is 105 | intended to facilitate the commercial use of the Program, the Contributor who 106 | includes the Program in a commercial product offering should do so in a manner 107 | which does not create potential liability for other Contributors. Therefore, 108 | if a Contributor includes the Program in a commercial product offering, such 109 | Contributor ("Commercial Contributor") hereby agrees to defend and indemnify 110 | every other Contributor ("Indemnified Contributor") against any losses, 111 | damages and costs (collectively "Losses") arising from claims, lawsuits and 112 | other legal actions brought by a third party against the Indemnified 113 | Contributor to the extent caused by the acts or omissions of such Commercial 114 | Contributor in connection with its distribution of the Program in a commercial 115 | product offering. The obligations in this section do not apply to any claims 116 | or Losses relating to any actual or alleged intellectual property 117 | infringement. In order to qualify, an Indemnified Contributor must: 118 | a) promptly notify the Commercial Contributor in writing of such claim, and 119 | b) allow the Commercial Contributor to control, and cooperate with the 120 | Commercial Contributor in, the defense and any related settlement 121 | negotiations. The Indemnified Contributor may participate in any such claim at 122 | its own expense. 123 | 124 | For example, a Contributor might include the Program in a commercial product 125 | offering, Product X. That Contributor is then a Commercial Contributor. If 126 | that Commercial Contributor then makes performance claims, or offers 127 | warranties related to Product X, those performance claims and warranties are 128 | such Commercial Contributor's responsibility alone. Under this section, the 129 | Commercial Contributor would have to defend claims against the other 130 | Contributors related to those performance claims and warranties, and if a 131 | court requires any other Contributor to pay any damages as a result, the 132 | Commercial Contributor must pay those damages. 133 | 134 | 5. NO WARRANTY 135 | 136 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN 137 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR 138 | IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, 139 | NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each 140 | Recipient is solely responsible for determining the appropriateness of using 141 | and distributing the Program and assumes all risks associated with its 142 | exercise of rights under this Agreement , including but not limited to the 143 | risks and costs of program errors, compliance with applicable laws, damage to 144 | or loss of data, programs or equipment, and unavailability or interruption of 145 | operations. 146 | 147 | 6. DISCLAIMER OF LIABILITY 148 | 149 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY 150 | CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, 151 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION 152 | LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 153 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 154 | ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE 155 | EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY 156 | OF SUCH DAMAGES. 157 | 158 | 7. GENERAL 159 | 160 | If any provision of this Agreement is invalid or unenforceable under 161 | applicable law, it shall not affect the validity or enforceability of the 162 | remainder of the terms of this Agreement, and without further action by the 163 | parties hereto, such provision shall be reformed to the minimum extent 164 | necessary to make such provision valid and enforceable. 165 | 166 | If Recipient institutes patent litigation against any entity (including a 167 | cross-claim or counterclaim in a lawsuit) alleging that the Program itself 168 | (excluding combinations of the Program with other software or hardware) 169 | infringes such Recipient's patent(s), then such Recipient's rights granted 170 | under Section 2(b) shall terminate as of the date such litigation is filed. 171 | 172 | All Recipient's rights under this Agreement shall terminate if it fails to 173 | comply with any of the material terms or conditions of this Agreement and does 174 | not cure such failure in a reasonable period of time after becoming aware of 175 | such noncompliance. If all Recipient's rights under this Agreement terminate, 176 | Recipient agrees to cease use and distribution of the Program as soon as 177 | reasonably practicable. However, Recipient's obligations under this Agreement 178 | and any licenses granted by Recipient relating to the Program shall continue 179 | and survive. 180 | 181 | Everyone is permitted to copy and distribute copies of this Agreement, but in 182 | order to avoid inconsistency the Agreement is copyrighted and may only be 183 | modified in the following manner. The Agreement Steward reserves the right to 184 | publish new versions (including revisions) of this Agreement from time to 185 | time. No one other than the Agreement Steward has the right to modify this 186 | Agreement. The Eclipse Foundation is the initial Agreement Steward. The 187 | Eclipse Foundation may assign the responsibility to serve as the Agreement 188 | Steward to a suitable separate entity. Each new version of the Agreement will 189 | be given a distinguishing version number. The Program (including 190 | Contributions) may always be distributed subject to the version of the 191 | Agreement under which it was received. In addition, after a new version of the 192 | Agreement is published, Contributor may elect to distribute the Program 193 | (including its Contributions) under the new version. Except as expressly 194 | stated in Sections 2(a) and 2(b) above, Recipient receives no rights or 195 | licenses to the intellectual property of any Contributor under this Agreement, 196 | whether expressly, by implication, estoppel or otherwise. All rights in the 197 | Program not expressly granted under this Agreement are reserved. 198 | 199 | This Agreement is governed by the laws of the State of New York and the 200 | intellectual property laws of the United States of America. No party to this 201 | Agreement will bring a legal action under this Agreement more than one year 202 | after the cause of action arose. Each party waives its rights to a jury trial in 203 | any resulting litigation. 204 | 205 | -------------------------------------------------------------------------------- /planet-themes-plugin/src/main/java/com/codeaffine/eclipse/ui/swt/theme/README.txt: -------------------------------------------------------------------------------- 1 | The classes in this package are extracted from Frank Appel's Xiliary project (https://github.com/fappel/xiliary). Its license is included in the LICENSE.txt file. 2 | 3 | All significant changes to the original source code are outlined in the headers of the individual files. 4 | -------------------------------------------------------------------------------- /planet-themes-plugin/src/main/java/io/github/pyvesb/eclipse_planet_themes/CTabFolderPlanetsRenderer.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2010, 2021 IBM Corporation and others. 3 | * 4 | * This program and the accompanying materials 5 | * are made available under the terms of the Eclipse Public License 2.0 6 | * which accompanies this distribution, and is available at 7 | * https://www.eclipse.org/legal/epl-2.0/ 8 | * 9 | * SPDX-License-Identifier: EPL-2.0 10 | * 11 | * Contributors: 12 | * IBM Corporation - initial API and implementation 13 | * Fabio Zadrozny - Bug 465711 14 | * Simon Scholz - Bug 497586 15 | * Simon Scholz - Bug 506540 16 | * Mike Marchand - Bug 538740 17 | * Pierre-Yves B. - Revert breaking changes to tab outline behaviour. 18 | * Pierre-Yves B. - Fix active tab logic. 19 | * Pierre-Yves B. - Simplify implementation, remove dead code and drop support for unused CSS properties. 20 | *******************************************************************************/ 21 | package io.github.pyvesb.eclipse_planet_themes; 22 | 23 | import org.eclipse.e4.ui.internal.css.swt.ICTabRendering; 24 | import org.eclipse.swt.SWT; 25 | import org.eclipse.swt.custom.CTabFolder; 26 | import org.eclipse.swt.custom.CTabFolderRenderer; 27 | import org.eclipse.swt.graphics.Color; 28 | import org.eclipse.swt.graphics.GC; 29 | import org.eclipse.swt.graphics.Point; 30 | import org.eclipse.swt.graphics.Rectangle; 31 | 32 | @SuppressWarnings("restriction") 33 | public class CTabFolderPlanetsRenderer extends CTabFolderRenderer implements ICTabRendering { 34 | 35 | // keylines 36 | static final int OUTER_KEYLINE = 1; 37 | static final int INNER_KEYLINE = 0; 38 | static final int TOP_KEYLINE = 0; 39 | 40 | // The tab has an outline, it contributes to the trim. See Bug 562183. 41 | static final int TAB_OUTLINE = 1; 42 | 43 | // Item Constants 44 | static final int ITEM_TOP_MARGIN = 2; 45 | static final int ITEM_BOTTOM_MARGIN = 6; 46 | static final int ITEM_LEFT_MARGIN = 4; 47 | static final int ITEM_RIGHT_MARGIN = 4; 48 | 49 | Rectangle rectShape; 50 | 51 | Color outerKeyline, selectedTabFillColor, tabOutlineColor, selectedTabHighlightColor; 52 | 53 | int paddingLeft = 0, paddingRight = 0, paddingTop = 0, paddingBottom = 0; 54 | 55 | private boolean drawTabHighlightOnTop = true; 56 | 57 | public CTabFolderPlanetsRenderer(CTabFolder parent) { 58 | super(parent); 59 | } 60 | 61 | @Override 62 | protected Rectangle computeTrim(int part, int state, int x, int y, int width, int height) { 63 | boolean onBottom = parent.getTabPosition() == SWT.BOTTOM; 64 | int borderTop = onBottom ? INNER_KEYLINE + OUTER_KEYLINE : TOP_KEYLINE + OUTER_KEYLINE; 65 | int borderBottom = onBottom ? TOP_KEYLINE + OUTER_KEYLINE : INNER_KEYLINE + OUTER_KEYLINE; 66 | int marginWidth = parent.marginWidth; 67 | int marginHeight = parent.marginHeight; 68 | 69 | // Trim is not affected by the corner size. 70 | switch (part) { 71 | case PART_BODY: 72 | if (state == SWT.FILL) { 73 | x = -1 - paddingLeft; 74 | int tabHeight = parent.getTabHeight() + 1; 75 | y = onBottom ? y - paddingTop - marginHeight - borderTop - TAB_OUTLINE 76 | : y - paddingTop - marginHeight - tabHeight - borderTop - TAB_OUTLINE; 77 | width = 2 + paddingLeft + paddingRight; 78 | height += paddingTop + paddingBottom + TAB_OUTLINE; 79 | height += tabHeight + borderBottom + borderTop; 80 | } else { 81 | x = x - marginWidth - OUTER_KEYLINE - INNER_KEYLINE; 82 | width = width + 2 * OUTER_KEYLINE + 2 * INNER_KEYLINE + 2 * marginWidth; 83 | int tabHeight = parent.getTabHeight() + 1; 84 | if (parent.getMinimized()) { 85 | y = onBottom ? y - borderTop - 5 : y - tabHeight - borderTop - 5; 86 | height = borderTop + borderBottom + tabHeight; 87 | } else { 88 | y = onBottom ? y - marginHeight - borderTop 89 | : y - marginHeight - tabHeight - borderTop - TAB_OUTLINE; 90 | height = height + borderBottom + borderTop + 2 * marginHeight + tabHeight + TAB_OUTLINE; 91 | } 92 | } 93 | break; 94 | case PART_HEADER: 95 | x = x - (INNER_KEYLINE + OUTER_KEYLINE); 96 | width = width + 2 * (INNER_KEYLINE + OUTER_KEYLINE); 97 | break; 98 | case PART_BORDER: 99 | x = x - INNER_KEYLINE - OUTER_KEYLINE - ITEM_LEFT_MARGIN; 100 | width = width + 2 * (INNER_KEYLINE + OUTER_KEYLINE) + ITEM_RIGHT_MARGIN; 101 | height += borderTop + borderBottom; 102 | y -= borderTop; 103 | 104 | break; 105 | default: 106 | if (0 <= part && part < parent.getItemCount()) { 107 | x -= ITEM_LEFT_MARGIN; 108 | width += ITEM_LEFT_MARGIN + ITEM_RIGHT_MARGIN + 1; 109 | y -= ITEM_TOP_MARGIN; 110 | height += ITEM_TOP_MARGIN + ITEM_BOTTOM_MARGIN; 111 | } 112 | break; 113 | } 114 | return new Rectangle(x, y, width, height); 115 | } 116 | 117 | @Override 118 | protected Point computeSize(int part, int state, GC gc, int wHint, int hHint) { 119 | wHint += paddingLeft + paddingRight; 120 | hHint += paddingTop + paddingBottom; 121 | if (0 <= part && part < parent.getItemCount()) { 122 | gc.setAdvanced(true); 123 | } 124 | return super.computeSize(part, state, gc, wHint, hHint); 125 | } 126 | 127 | @Override 128 | protected void draw(int part, int state, Rectangle bounds, GC gc) { 129 | switch (part) { 130 | case PART_BACKGROUND: 131 | this.drawCustomBackground(gc, bounds, state); 132 | return; 133 | case PART_BODY: 134 | this.drawTabBody(gc, bounds); 135 | return; 136 | case PART_HEADER: 137 | this.drawTabHeader(gc, bounds, state); 138 | return; 139 | default: 140 | if (0 <= part && part < parent.getItemCount()) { 141 | // Sometimes the clipping is incorrect, see Bug 428697 and Bug 563345 142 | // Resetting it before draw the tabs prevents draw issues. 143 | gc.setClipping((Rectangle) null); 144 | gc.setAdvanced(true); 145 | if (bounds.width == 0 || bounds.height == 0) 146 | return; 147 | if ((state & SWT.SELECTED) != 0) { 148 | drawSelectedTab(part, gc, bounds); 149 | state &= ~SWT.BACKGROUND; 150 | super.draw(part, state, bounds, gc); 151 | } else if ((state & SWT.HOT) == 0 && !parent.isFocusControl()) { 152 | gc.setAlpha(0xcf); 153 | state &= ~SWT.BACKGROUND; 154 | super.draw(part, state, bounds, gc); 155 | gc.setAlpha(0xff); 156 | } else { 157 | state &= ~SWT.BACKGROUND; 158 | super.draw(part, state, bounds, gc); 159 | } 160 | return; 161 | } 162 | } 163 | super.draw(part, state, bounds, gc); 164 | } 165 | 166 | void drawTabHeader(GC gc, Rectangle bounds, int state) { 167 | boolean onBottom = parent.getTabPosition() == SWT.BOTTOM; 168 | Rectangle trim = computeTrim(PART_HEADER, state, 0, 0, 0, 0); 169 | trim.width = bounds.width - trim.width; 170 | 171 | // XXX: The magic numbers need to be cleaned up. See 172 | // https://bugs.eclipse.org/425777 for details. 173 | trim.height = (parent.getTabHeight() + (onBottom ? 7 : 4)) - trim.height; 174 | 175 | trim.x = -trim.x; 176 | trim.y = onBottom ? bounds.height - parent.getTabHeight() - 2 : -trim.y; 177 | draw(PART_BACKGROUND, SWT.NONE, trim, gc); 178 | 179 | gc.setForeground(outerKeyline); 180 | 181 | gc.drawRectangle(rectShape); 182 | } 183 | 184 | void drawTabBody(GC gc, Rectangle bounds) { 185 | int marginWidth = parent.marginWidth; 186 | int marginHeight = parent.marginHeight; 187 | int delta = INNER_KEYLINE + OUTER_KEYLINE + 2 * marginWidth; 188 | int width = bounds.width - delta; 189 | int height = Math.max( 190 | parent.getTabHeight() + INNER_KEYLINE + OUTER_KEYLINE, 191 | bounds.height - INNER_KEYLINE - OUTER_KEYLINE - 2 * marginHeight); 192 | 193 | // Remember for use in header drawing 194 | Rectangle rect = new Rectangle(bounds.x, bounds.y, width, height); 195 | gc.fillRectangle(rect); 196 | rectShape = rect; 197 | } 198 | 199 | private int[] computeSquareTabOutline(int itemIndex, boolean onBottom, int startX, int endX, int bottomY, 200 | Rectangle bounds, Point parentSize) { 201 | int index = 0; 202 | int outlineY = onBottom ? bottomY + bounds.height : bottomY - bounds.height - 1; 203 | int[] points = new int[12]; 204 | 205 | if (itemIndex != 0 || bounds.x != -computeTrim(CTabFolderRenderer.PART_HEADER, SWT.NONE, 0, 0, 0, 0).x) { 206 | points[index++] = INNER_KEYLINE + OUTER_KEYLINE; 207 | points[index++] = bottomY; 208 | } 209 | points[index++] = startX; 210 | points[index++] = bottomY; 211 | 212 | points[index++] = startX; 213 | points[index++] = outlineY; 214 | 215 | points[index++] = endX; 216 | points[index++] = outlineY; 217 | 218 | points[index++] = endX; 219 | points[index++] = bottomY; 220 | 221 | points[index++] = parentSize.x - INNER_KEYLINE - OUTER_KEYLINE; 222 | points[index++] = bottomY; 223 | 224 | int[] tmpPoints = new int[index]; 225 | System.arraycopy(points, 0, tmpPoints, 0, index); 226 | 227 | return tmpPoints; 228 | } 229 | 230 | void drawSelectedTab(int itemIndex, GC gc, Rectangle bounds) { 231 | if (parent.getSingle() && parent.getItem(itemIndex).isShowing()) 232 | return; 233 | 234 | boolean onBottom = parent.getTabPosition() == SWT.BOTTOM; 235 | int bottomY = onBottom ? bounds.y : bounds.y + bounds.height; 236 | int selectionX1, selectionY1, selectionX2, selectionY2; 237 | int startX, endX; 238 | Point parentSize = parent.getSize(); 239 | 240 | gc.setClipping(0, onBottom ? bounds.y : bounds.y, parentSize.x - INNER_KEYLINE - OUTER_KEYLINE, 241 | bounds.y + bounds.height);// bounds.height 242 | 243 | gc.setBackground(selectedTabFillColor); 244 | gc.setForeground(selectedTabFillColor); 245 | 246 | startX = bounds.x - 1; 247 | endX = bounds.x + bounds.width; 248 | selectionX1 = startX + 1; 249 | selectionY1 = bottomY; 250 | selectionX2 = endX - 1; 251 | selectionY2 = bottomY; 252 | 253 | int[] tmpPoints = computeSquareTabOutline(itemIndex, onBottom, startX, endX, bottomY, bounds, parentSize); 254 | bounds.height++; // increase area to fill by outline thickness 255 | gc.fillRectangle(bounds); 256 | 257 | gc.drawLine(selectionX1, selectionY1, selectionX2, selectionY2); 258 | 259 | gc.setForeground(tabOutlineColor); 260 | 261 | gc.drawPolyline(tmpPoints); 262 | 263 | gc.setClipping((Rectangle) null); 264 | 265 | gc.setForeground(outerKeyline); 266 | gc.drawRectangle(rectShape); 267 | 268 | if (selectedTabHighlightColor != null) { 269 | gc.setBackground(selectedTabHighlightColor); 270 | boolean highlightOnTop = drawTabHighlightOnTop; 271 | if (onBottom) { 272 | highlightOnTop = !highlightOnTop; 273 | } 274 | int verticalOffset = highlightOnTop ? 0 : bounds.height - 2; 275 | int horizontalOffset = itemIndex == 0 ? 0 : 1; 276 | int widthAdjustment = 0; 277 | gc.fillRectangle(bounds.x + horizontalOffset, bounds.y + verticalOffset, bounds.width - widthAdjustment, 3); 278 | } 279 | } 280 | 281 | private void drawCustomBackground(GC gc, Rectangle bounds, int state) { 282 | Rectangle partHeaderBounds = computeTrim(PART_HEADER, state, bounds.x, bounds.y, bounds.width, bounds.height); 283 | 284 | boolean onBottom = parent.getTabPosition() == SWT.BOTTOM; 285 | int borderTop = onBottom ? INNER_KEYLINE + OUTER_KEYLINE : TOP_KEYLINE + OUTER_KEYLINE; 286 | Rectangle parentBounds = parent.getBounds(); 287 | int y = (onBottom) ? 0 : partHeaderBounds.y + partHeaderBounds.height - 1; 288 | int height = (onBottom) ? parentBounds.height - partHeaderBounds.height + 2 * paddingTop + 2 * borderTop 289 | : parentBounds.height - partHeaderBounds.height; 290 | 291 | gc.setBackground(selectedTabFillColor); 292 | gc.fillRectangle(partHeaderBounds.x, y, partHeaderBounds.width, height); 293 | } 294 | 295 | public Rectangle getPadding() { 296 | return new Rectangle(paddingTop, paddingRight, paddingBottom, paddingLeft); 297 | } 298 | 299 | public void setPadding(int paddingLeft, int paddingRight, int paddingTop, int paddingBottom) { 300 | this.paddingLeft = paddingLeft; 301 | this.paddingRight = paddingRight; 302 | this.paddingTop = paddingTop; 303 | this.paddingBottom = paddingBottom; 304 | parent.redraw(); 305 | } 306 | 307 | @Override 308 | public void setOuterKeyline(Color color) { 309 | this.outerKeyline = color; 310 | parent.redraw(); 311 | } 312 | 313 | @Override 314 | public void setSelectedTabHighlight(Color color) { 315 | this.selectedTabHighlightColor = color; 316 | parent.redraw(); 317 | } 318 | 319 | @Override 320 | public void setSelectedTabFill(Color color) { 321 | selectedTabFillColor = color; 322 | parent.redraw(); 323 | } 324 | 325 | @Override 326 | public void setTabOutline(Color color) { 327 | this.tabOutlineColor = color; 328 | parent.redraw(); 329 | } 330 | 331 | @Override 332 | public void setSelectedTabHighlightTop(boolean drawTabHiglightOnTop) { 333 | this.drawTabHighlightOnTop = drawTabHiglightOnTop; 334 | parent.redraw(); 335 | } 336 | 337 | @Override 338 | public void setSelectedTabFill(Color[] colors, int[] percents) { 339 | setSelectedTabFill(colors[0]); 340 | } 341 | 342 | @Override 343 | public void setUnselectedHotTabsColorBackground(Color color) {} 344 | 345 | @Override 346 | public void setUnselectedTabsColor(Color color) {} 347 | 348 | @Override 349 | public void setUnselectedTabsColor(Color[] colors, int[] percents) {} 350 | 351 | @Override 352 | public void setCornerRadius(int radius) {} 353 | 354 | @Override 355 | public void setShadowVisible(boolean visible) {} 356 | 357 | @Override 358 | public void setShadowColor(Color color) {} 359 | 360 | @Override 361 | public void setInnerKeyline(Color color) {} 362 | 363 | @Override 364 | public void setDrawCustomTabContentBackground(boolean drawCustomTabContentBackground) {} 365 | 366 | } 367 | -------------------------------------------------------------------------------- /planet-themes-plugin/src/main/java/io/github/pyvesb/eclipse_planet_themes/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Eclipse Public License - v 2.0 2 | 3 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE 4 | PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION 5 | OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 6 | 7 | 1. DEFINITIONS 8 | 9 | "Contribution" means: 10 | 11 | a) in the case of the initial Contributor, the initial content 12 | Distributed under this Agreement, and 13 | 14 | b) in the case of each subsequent Contributor: 15 | i) changes to the Program, and 16 | ii) additions to the Program; 17 | where such changes and/or additions to the Program originate from 18 | and are Distributed by that particular Contributor. A Contribution 19 | "originates" from a Contributor if it was added to the Program by 20 | such Contributor itself or anyone acting on such Contributor's behalf. 21 | Contributions do not include changes or additions to the Program that 22 | are not Modified Works. 23 | 24 | "Contributor" means any person or entity that Distributes the Program. 25 | 26 | "Licensed Patents" mean patent claims licensable by a Contributor which 27 | are necessarily infringed by the use or sale of its Contribution alone 28 | or when combined with the Program. 29 | 30 | "Program" means the Contributions Distributed in accordance with this 31 | Agreement. 32 | 33 | "Recipient" means anyone who receives the Program under this Agreement 34 | or any Secondary License (as applicable), including Contributors. 35 | 36 | "Derivative Works" shall mean any work, whether in Source Code or other 37 | form, that is based on (or derived from) the Program and for which the 38 | editorial revisions, annotations, elaborations, or other modifications 39 | represent, as a whole, an original work of authorship. 40 | 41 | "Modified Works" shall mean any work in Source Code or other form that 42 | results from an addition to, deletion from, or modification of the 43 | contents of the Program, including, for purposes of clarity any new file 44 | in Source Code form that contains any contents of the Program. Modified 45 | Works shall not include works that contain only declarations, 46 | interfaces, types, classes, structures, or files of the Program solely 47 | in each case in order to link to, bind by name, or subclass the Program 48 | or Modified Works thereof. 49 | 50 | "Distribute" means the acts of a) distributing or b) making available 51 | in any manner that enables the transfer of a copy. 52 | 53 | "Source Code" means the form of a Program preferred for making 54 | modifications, including but not limited to software source code, 55 | documentation source, and configuration files. 56 | 57 | "Secondary License" means either the GNU General Public License, 58 | Version 2.0, or any later versions of that license, including any 59 | exceptions or additional permissions as identified by the initial 60 | Contributor. 61 | 62 | 2. GRANT OF RIGHTS 63 | 64 | a) Subject to the terms of this Agreement, each Contributor hereby 65 | grants Recipient a non-exclusive, worldwide, royalty-free copyright 66 | license to reproduce, prepare Derivative Works of, publicly display, 67 | publicly perform, Distribute and sublicense the Contribution of such 68 | Contributor, if any, and such Derivative Works. 69 | 70 | b) Subject to the terms of this Agreement, each Contributor hereby 71 | grants Recipient a non-exclusive, worldwide, royalty-free patent 72 | license under Licensed Patents to make, use, sell, offer to sell, 73 | import and otherwise transfer the Contribution of such Contributor, 74 | if any, in Source Code or other form. This patent license shall 75 | apply to the combination of the Contribution and the Program if, at 76 | the time the Contribution is added by the Contributor, such addition 77 | of the Contribution causes such combination to be covered by the 78 | Licensed Patents. The patent license shall not apply to any other 79 | combinations which include the Contribution. No hardware per se is 80 | licensed hereunder. 81 | 82 | c) Recipient understands that although each Contributor grants the 83 | licenses to its Contributions set forth herein, no assurances are 84 | provided by any Contributor that the Program does not infringe the 85 | patent or other intellectual property rights of any other entity. 86 | Each Contributor disclaims any liability to Recipient for claims 87 | brought by any other entity based on infringement of intellectual 88 | property rights or otherwise. As a condition to exercising the 89 | rights and licenses granted hereunder, each Recipient hereby 90 | assumes sole responsibility to secure any other intellectual 91 | property rights needed, if any. For example, if a third party 92 | patent license is required to allow Recipient to Distribute the 93 | Program, it is Recipient's responsibility to acquire that license 94 | before distributing the Program. 95 | 96 | d) Each Contributor represents that to its knowledge it has 97 | sufficient copyright rights in its Contribution, if any, to grant 98 | the copyright license set forth in this Agreement. 99 | 100 | e) Notwithstanding the terms of any Secondary License, no 101 | Contributor makes additional grants to any Recipient (other than 102 | those set forth in this Agreement) as a result of such Recipient's 103 | receipt of the Program under the terms of a Secondary License 104 | (if permitted under the terms of Section 3). 105 | 106 | 3. REQUIREMENTS 107 | 108 | 3.1 If a Contributor Distributes the Program in any form, then: 109 | 110 | a) the Program must also be made available as Source Code, in 111 | accordance with section 3.2, and the Contributor must accompany 112 | the Program with a statement that the Source Code for the Program 113 | is available under this Agreement, and informs Recipients how to 114 | obtain it in a reasonable manner on or through a medium customarily 115 | used for software exchange; and 116 | 117 | b) the Contributor may Distribute the Program under a license 118 | different than this Agreement, provided that such license: 119 | i) effectively disclaims on behalf of all other Contributors all 120 | warranties and conditions, express and implied, including 121 | warranties or conditions of title and non-infringement, and 122 | implied warranties or conditions of merchantability and fitness 123 | for a particular purpose; 124 | 125 | ii) effectively excludes on behalf of all other Contributors all 126 | liability for damages, including direct, indirect, special, 127 | incidental and consequential damages, such as lost profits; 128 | 129 | iii) does not attempt to limit or alter the recipients' rights 130 | in the Source Code under section 3.2; and 131 | 132 | iv) requires any subsequent distribution of the Program by any 133 | party to be under a license that satisfies the requirements 134 | of this section 3. 135 | 136 | 3.2 When the Program is Distributed as Source Code: 137 | 138 | a) it must be made available under this Agreement, or if the 139 | Program (i) is combined with other material in a separate file or 140 | files made available under a Secondary License, and (ii) the initial 141 | Contributor attached to the Source Code the notice described in 142 | Exhibit A of this Agreement, then the Program may be made available 143 | under the terms of such Secondary Licenses, and 144 | 145 | b) a copy of this Agreement must be included with each copy of 146 | the Program. 147 | 148 | 3.3 Contributors may not remove or alter any copyright, patent, 149 | trademark, attribution notices, disclaimers of warranty, or limitations 150 | of liability ("notices") contained within the Program from any copy of 151 | the Program which they Distribute, provided that Contributors may add 152 | their own appropriate notices. 153 | 154 | 4. COMMERCIAL DISTRIBUTION 155 | 156 | Commercial distributors of software may accept certain responsibilities 157 | with respect to end users, business partners and the like. While this 158 | license is intended to facilitate the commercial use of the Program, 159 | the Contributor who includes the Program in a commercial product 160 | offering should do so in a manner which does not create potential 161 | liability for other Contributors. Therefore, if a Contributor includes 162 | the Program in a commercial product offering, such Contributor 163 | ("Commercial Contributor") hereby agrees to defend and indemnify every 164 | other Contributor ("Indemnified Contributor") against any losses, 165 | damages and costs (collectively "Losses") arising from claims, lawsuits 166 | and other legal actions brought by a third party against the Indemnified 167 | Contributor to the extent caused by the acts or omissions of such 168 | Commercial Contributor in connection with its distribution of the Program 169 | in a commercial product offering. The obligations in this section do not 170 | apply to any claims or Losses relating to any actual or alleged 171 | intellectual property infringement. In order to qualify, an Indemnified 172 | Contributor must: a) promptly notify the Commercial Contributor in 173 | writing of such claim, and b) allow the Commercial Contributor to control, 174 | and cooperate with the Commercial Contributor in, the defense and any 175 | related settlement negotiations. The Indemnified Contributor may 176 | participate in any such claim at its own expense. 177 | 178 | For example, a Contributor might include the Program in a commercial 179 | product offering, Product X. That Contributor is then a Commercial 180 | Contributor. If that Commercial Contributor then makes performance 181 | claims, or offers warranties related to Product X, those performance 182 | claims and warranties are such Commercial Contributor's responsibility 183 | alone. Under this section, the Commercial Contributor would have to 184 | defend claims against the other Contributors related to those performance 185 | claims and warranties, and if a court requires any other Contributor to 186 | pay any damages as a result, the Commercial Contributor must pay 187 | those damages. 188 | 189 | 5. NO WARRANTY 190 | 191 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT 192 | PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" 193 | BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR 194 | IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF 195 | TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR 196 | PURPOSE. Each Recipient is solely responsible for determining the 197 | appropriateness of using and distributing the Program and assumes all 198 | risks associated with its exercise of rights under this Agreement, 199 | including but not limited to the risks and costs of program errors, 200 | compliance with applicable laws, damage to or loss of data, programs 201 | or equipment, and unavailability or interruption of operations. 202 | 203 | 6. DISCLAIMER OF LIABILITY 204 | 205 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT 206 | PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS 207 | SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 208 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST 209 | PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 210 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 211 | ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE 212 | EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE 213 | POSSIBILITY OF SUCH DAMAGES. 214 | 215 | 7. GENERAL 216 | 217 | If any provision of this Agreement is invalid or unenforceable under 218 | applicable law, it shall not affect the validity or enforceability of 219 | the remainder of the terms of this Agreement, and without further 220 | action by the parties hereto, such provision shall be reformed to the 221 | minimum extent necessary to make such provision valid and enforceable. 222 | 223 | If Recipient institutes patent litigation against any entity 224 | (including a cross-claim or counterclaim in a lawsuit) alleging that the 225 | Program itself (excluding combinations of the Program with other software 226 | or hardware) infringes such Recipient's patent(s), then such Recipient's 227 | rights granted under Section 2(b) shall terminate as of the date such 228 | litigation is filed. 229 | 230 | All Recipient's rights under this Agreement shall terminate if it 231 | fails to comply with any of the material terms or conditions of this 232 | Agreement and does not cure such failure in a reasonable period of 233 | time after becoming aware of such noncompliance. If all Recipient's 234 | rights under this Agreement terminate, Recipient agrees to cease use 235 | and distribution of the Program as soon as reasonably practicable. 236 | However, Recipient's obligations under this Agreement and any licenses 237 | granted by Recipient relating to the Program shall continue and survive. 238 | 239 | Everyone is permitted to copy and distribute copies of this Agreement, 240 | but in order to avoid inconsistency the Agreement is copyrighted and 241 | may only be modified in the following manner. The Agreement Steward 242 | reserves the right to publish new versions (including revisions) of 243 | this Agreement from time to time. No one other than the Agreement 244 | Steward has the right to modify this Agreement. The Eclipse Foundation 245 | is the initial Agreement Steward. The Eclipse Foundation may assign the 246 | responsibility to serve as the Agreement Steward to a suitable separate 247 | entity. Each new version of the Agreement will be given a distinguishing 248 | version number. The Program (including Contributions) may always be 249 | Distributed subject to the version of the Agreement under which it was 250 | received. In addition, after a new version of the Agreement is published, 251 | Contributor may elect to Distribute the Program (including its 252 | Contributions) under the new version. 253 | 254 | Except as expressly stated in Sections 2(a) and 2(b) above, Recipient 255 | receives no rights or licenses to the intellectual property of any 256 | Contributor under this Agreement, whether expressly, by implication, 257 | estoppel or otherwise. All rights in the Program not expressly granted 258 | under this Agreement are reserved. Nothing in this Agreement is intended 259 | to be enforceable by any entity that is not a Contributor or Recipient. 260 | No third-party beneficiary rights are created under this Agreement. 261 | 262 | Exhibit A - Form of Secondary Licenses Notice 263 | 264 | "This Source Code may also be made available under the following 265 | Secondary Licenses when the conditions for such availability set forth 266 | in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), 267 | version(s), and exceptions or additional permissions here}." 268 | 269 | Simply including a copy of this Agreement, including this Exhibit A 270 | is not sufficient to license the Source Code under Secondary Licenses. 271 | 272 | If it is not possible or desirable to put the notice in a particular 273 | file, then You may include the notice in a location (such as a LICENSE 274 | file in a relevant directory) where a recipient would be likely to 275 | look for such a notice. 276 | 277 | You may add additional accurate notices of copyright ownership. -------------------------------------------------------------------------------- /planet-themes-plugin/src/main/java/io/github/pyvesb/eclipse_planet_themes/README.txt: -------------------------------------------------------------------------------- 1 | The class in this package is extracted from Eclipse's Platform project (https://projects.eclipse.org/projects/eclipse.platform). Its license is included in the LICENSE.txt file. 2 | 3 | All significant changes to the original source code are outlined in the headers of the file. 4 | -------------------------------------------------------------------------------- /planet-themes-targetplatform/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | planet-themes-targetplatform 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.m2e.core.maven2Builder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.m2e.core.maven2Nature 16 | 17 | 18 | -------------------------------------------------------------------------------- /planet-themes-targetplatform/planet-themes-targetplatform.target: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /planet-themes-updatesite/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | planet-themes-updatesite 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.pde.UpdateSiteBuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.pde.UpdateSiteNature 16 | 17 | 18 | -------------------------------------------------------------------------------- /planet-themes-updatesite/category.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The Planet Themes plugin update site. 5 | 6 | 7 | 8 | 9 | 10 | 11 | Collection of light and dark Eclipse themes, inspired by planets of the Solar System. 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 4.0.0 7 | io.github.pyvesb.eclipse_planet_themes 8 | planet-themes 9 | 1.0.0-SNAPSHOT 10 | pom 11 | 12 | planet-themes-feature 13 | planet-themes-plugin 14 | planet-themes-targetplatform 15 | planet-themes-updatesite 16 | 17 | 18 | JavaSE-11 19 | 11 20 | UTF-8 21 | 2.7.5 22 | 23 | 24 | 25 | 26 | org.eclipse.tycho 27 | tycho-maven-plugin 28 | ${tycho.version} 29 | true 30 | 31 | 32 | org.eclipse.tycho 33 | target-platform-configuration 34 | ${tycho.version} 35 | 36 | ${javase.version} 37 | true 38 | 39 | 40 | io.github.pyvesb.eclipse_planet_themes 41 | planet-themes-targetplatform 42 | 1.0.0-SNAPSHOT 43 | 44 | 45 | 46 | 47 | win32 48 | win32 49 | x86_64 50 | 51 | 52 | linux 53 | gtk 54 | x86_64 55 | 56 | 57 | macosx 58 | cocoa 59 | x86_64 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | --------------------------------------------------------------------------------