pax_global_header00006660000000000000000000000064137214107150014513gustar00rootroot0000000000000052 comment=7053f9e6a890175fc212df625e02ffbdce418146 gcolor3-2.4.0/000077500000000000000000000000001372141071500130665ustar00rootroot00000000000000gcolor3-2.4.0/.gitignore000066400000000000000000000001301372141071500150500ustar00rootroot00000000000000_build/ build/ .flatpak-builder *.swp *.la *.lo *.o *.gresource /subprojects/libportal/ gcolor3-2.4.0/.gitlab-ci.yml000066400000000000000000000007461372141071500155310ustar00rootroot00000000000000include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml' stages: - test - deploy variables: BUNDLE: "gcolor3-nightly.flatpak" MANIFEST_PATH: "nl.hjdskes.gcolor3.json" FLATPAK_MODULE: "gcolor3" flatpak: extends: '.flatpak' image: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/rust_bundle:master" variables: RUNTIME_REPO: 'https://nightly.gnome.org/gnome-nightly.flatpakrepo' APP_ID: "nl.hjdskes.gcolor3" gcolor3-2.4.0/LICENSE000066400000000000000000000432551372141071500141040ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. gcolor3-2.4.0/README.md000066400000000000000000000030421372141071500143440ustar00rootroot00000000000000Color Picker ============ **Choose colors from the picker or the screen** This README is only relevant for development resources and instructions. For a description of Color Picker, screenshots and installation instructions for end-users, please see the [website](https://hjdskes.nl/projects/gcolor3/). Compile from source ------------ ### GNOME Builder (Recommended) GNOME Builder is the environment used for the development of this application. It can use Flatpak manifests to create a consistent building and running environment cross-distro. Thus, it is highly recommended you use it. 1. Download [GNOME Builder](https://flathub.org/apps/details/org.gnome.Builder). 2. In Builder, click the "Clone Repository" button at the bottom, using `git@gitlab.gnome.org/World/gcolor3.git` or `https://gitlab.gnome.org/World/gcolor3.git` as the URL. 3. Click the build button at the top once the project is loaded. ### Manual If you feel at home in the terminal or would like to build outside of Builder, these are the commands to use: ```bash git clone https://gitlab.gnome.org/World/gcolor3.git cd gcolor3 meson _build ninja -C _build ``` Bugs ---- For any bug or request, please [create an issue](https://gitlab.gnome.org/World/gcolor3/issues/new?issue%5Bassignee_id%5D=&issue%5Bmilestone_id%5D=) on [GitLab][gitlab]. License ------- Please see [LICENSE](https://gitlab.gnome.org/World/gcolor3/blob/master/LICENSE) on [GitLab][gitlab]. **Copyright © 2013 - 2018** Jente Hidskes <hjdskes@gmail.com> [gitlab]: https://gitlab.gnome.org/World/gcolor3 gcolor3-2.4.0/color-picker.doap000066400000000000000000000017661372141071500163360ustar00rootroot00000000000000 Color Picker Choose colors from the picker or the screen Color Picker enables you to pick the color from any pixel on your screen. C Christopher Davis christopherdavis Jente Hidskes hjdskes gcolor3-2.4.0/data/000077500000000000000000000000001372141071500137775ustar00rootroot00000000000000gcolor3-2.4.0/data/color-row.ui000066400000000000000000000123251372141071500162640ustar00rootroot00000000000000 gcolor3-2.4.0/data/gcolor3-marshalers.list000066400000000000000000000022641372141071500204070ustar00rootroot00000000000000# see glib-genmarshal(1) for a detailed description of the file format, # possible parameter types are: # VOID indicates no return type, or no extra # parameters. if VOID is used as the parameter # list, no additional parameters may be present. # BOOLEAN for boolean types (gboolean) # CHAR for signed char types (gchar) # UCHAR for unsigned char types (guchar) # INT for signed integer types (gint) # UINT for unsigned integer types (guint) # LONG for signed long integer types (glong) # ULONG for unsigned long integer types (gulong) # ENUM for enumeration types (gint) # FLAGS for flag enumeration types (guint) # FLOAT for single-precision float types (gfloat) # DOUBLE for double-precision float types (gdouble) # STRING for string types (gchar*) # BOXED for boxed (anonymous but reference counted) types (GBoxed*) # POINTER for anonymous pointer types (gpointer) # OBJECT for GObject or derived types (GObject*) # NONE deprecated alias for VOID # BOOL deprecated alias for BOOLEAN VOID:STRING VOID:STRING,STRING gcolor3-2.4.0/data/gcolor3.1000066400000000000000000000016311372141071500154320ustar00rootroot00000000000000.TH GCOLOR3 "1" "August 26, 2018" . .SH NAME gcolor3 \- a color selection dialog . .SH SYNOPSIS .B gcolor3 .RI [ OPTIONS ] . .SH DESCRIPTION .B gcolor3 enables you to pick the color from any pixel on your screen. It also offers a palette, so that you can easily mix and match a couple of colors together. . .SH OPTIONS .SS "Help Options" .TP .BR \-h ", " \-\^\-help Show help options .TP .BR \-\^\-help\-all Show all help options .SS "Application Options" .TP .BR \-v ", " \-\^\-version Show the application's version .TP .BI "\-\^\-display=" DISPLAY X display to use . .SH FILES .TP .BR $XDG_CONFIG_HOME/gcolor3/rgb.ini Your saved color are stored in this file . .SH NOTES .B gcolor3 prints the last selected color to stdout in hex format on exit. . .SH BUGS For any bugs or feature requests, please create an issue on GitLab at https://gitlab.gnome.org/World/gcolor3/issues . .SH AUTHORS Jente Hidskes and contributors gcolor3-2.4.0/data/gcolor3.gresource.xml000066400000000000000000000005421372141071500200670ustar00rootroot00000000000000 shortcuts.ui menus.ui color-row.ui window.ui gcolor3-2.4.0/data/menus.ui000066400000000000000000000007211372141071500154650ustar00rootroot00000000000000
app.shortcuts _Keyboard Shortcuts app.about _About Color Picker
gcolor3-2.4.0/data/meson.build000066400000000000000000000023161372141071500161430ustar00rootroot00000000000000install_data('nl.hjdskes.gcolor3.svg', install_dir: join_paths(datadir, 'icons', 'hicolor', 'scalable', 'apps')) install_data('nl.hjdskes.gcolor3-symbolic.svg', install_dir: join_paths(datadir, 'icons', 'hicolor', 'symbolic', 'apps')) install_man('gcolor3.1') desktop_file = i18n.merge_file( input: 'nl.hjdskes.gcolor3.desktop.in', output: 'nl.hjdskes.gcolor3.desktop', type: 'desktop', po_dir: join_paths(meson.source_root(), 'po'), install: true, install_dir: join_paths(datadir, 'applications') ) desktop_file_validate = find_program('desktop-file-validate', required: false) if desktop_file_validate.found() test( 'validate-desktop', desktop_file_validate, args: [ desktop_file.full_path() ] ) endif appdata_file = i18n.merge_file( input: 'nl.hjdskes.gcolor3.appdata.xml.in', output: 'nl.hjdskes.gcolor3.appdata.xml', type: 'xml', po_dir: join_paths(meson.source_root(), 'po'), install: true, install_dir: join_paths(datadir, 'metainfo') ) appstream_util = find_program('appstream-util', required: false) if appstream_util.found() test( 'validate-appdata', appstream_util, args: [ 'validate-relax', '--nonet', appdata_file.full_path() ] ) endif gcolor3-2.4.0/data/nl.hjdskes.gcolor3-symbolic.svg000066400000000000000000000115531372141071500217560ustar00rootroot00000000000000 image/svg+xml gcolor3-2.4.0/data/nl.hjdskes.gcolor3.appdata.xml.in000066400000000000000000000112661372141071500221570ustar00rootroot00000000000000 nl.hjdskes.gcolor3 CC0-1.0 GPL-2.0+ Color Picker Choose colors from the picker or the screen

Ever wanted to know the value of that color on your screen? Color Picker enables you to pick the color from any pixel on your screen. It also offers a palette, so that you can easily mix and match a couple of colors together.

When you have found the perfect combination of colors, naturally you want to save them. Color Picker allows you to conveniently save and retrieve colors.

Color Picker is a color selection dialog written in GTK 3. It is much alike Gcolor2, but uses the newer GTK version and other modernisations to better integrate into your modern desktop.

HiDpiIcon ModernToolkit https://gitlab.gnome.org/World/gcolor3/-/raw/master/picker.png The picker and the color palette https://gitlab.gnome.org/World/gcolor3/-/raw/master/saved.png The list of saved colors https://hjdskes.nl/projects/gcolor3/ https://gitlab.gnome.org/World/gcolor3/issues https://gitlab.gnome.org/World/gcolor3/issues Christopher Davis christopherdavis_at_gnome.org gcolor3

Gcolor3 is now "Color Picker"! With the rename comes a new maintiner, a new icon, lots of new improvements, and many translation updates.

  • Color Picker now works on Wayland!
  • The typography and iconography of Color Picker has changed to be consistent and more in line with the GNOME HIG.
  • The use of deprecated GTK APIs has been dropped, which will make porting to GTK4 a smooth process.
  • Multiple other under-the-hood improvements

Gcolor3 has moved to the GNOME umbrella! It is now part of the World collection, non official GNOME projects that use additional functionality.

  • The saved colors page is now more in-line with GNOME
  • Gcolor3 now builds on FreeBSD

After two years, work has finally picked up again on Gcolor3. Thanks to numerous contributors, Gcolor3 version 2.3 is finally here. It brings UI improvements, new and updated translations and a crash fix for Wayland. Full Wayland support is planned for version 2.4.

  • Redesign the saved colors page
  • Redesign the header bar
  • Disable color picking on Wayland for now, instead of crashing
  • Add a shortcuts window
  • Gcolor3 is now available as a Flatpak
  • New and updated translations
  • Gcolor3 now comes with a manual page
  • Lots of under-the-hood improvements

  • Centrally manage colors between several running instances;
  • Follow the XDG directory specification for the configuration file. This means that the configuration file has moved from `~/.rgb.ini` to `$XDG_CONFIG_HOME/gcolor3/config.ini`;
  • Copy the selected color's hex value from the tree view using Ctrl-C;
  • Make the main window resizable;
  • Translation updates.
For more information, see the release notes on Gcolor3's GitLab page.

nl.hjdskes.gcolor3.desktop
gcolor3-2.4.0/data/nl.hjdskes.gcolor3.desktop.in000066400000000000000000000007661372141071500214220ustar00rootroot00000000000000[Desktop Entry] Name=Color Picker Comment=Choose colors from the picker or the screen Exec=gcolor3 # Translators: Do NOT translate or transliterate this text (this is an icon file name)! Icon=nl.hjdskes.gcolor3 StartupNotify=true Terminal=false Type=Application Categories=GNOME;GTK;Graphics; # Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity Keywords=Color;Picker;Palette; # Required for Unity to show the application name. X-Ubuntu-Gettext-Domain=gcolor3 gcolor3-2.4.0/data/nl.hjdskes.gcolor3.svg000066400000000000000000000062461372141071500201420ustar00rootroot00000000000000gcolor3-2.4.0/data/shortcuts.ui000066400000000000000000000051341372141071500163770ustar00rootroot00000000000000 1 1 shortcuts 12 1 General 1 F9 Change page 1 Palette shortcuts 1 <ctrl>s Save currently selected color 1 Saved color management 1 <ctrl>c Copy highlighted color’s hex value 1 Delete Delete highlighted color gcolor3-2.4.0/data/window.ui000066400000000000000000000302141372141071500156450ustar00rootroot00000000000000 True False document-save-symbolic gcolor3-2.4.0/meson.build000066400000000000000000000031271372141071500152330ustar00rootroot00000000000000project('gcolor3', 'c', version: '2.4.0', license: 'GPL2+', meson_version: '>= 0.40.0', ) dep_gtk = dependency('gtk+-3.0', version: '>= 3.20.0', required: true) dep_libportal = dependency( 'libportal', required: true, fallback: ['libportal', 'libportal_dep'], default_options: ['gtk_doc=false'], ) cc = meson.get_compiler('c') dep_lm = cc.find_library('m', required: true) i18n= import('i18n') gnome = import('gnome') prefix = get_option('prefix') bindir = join_paths(prefix, get_option('bindir')) datadir = join_paths(prefix, get_option('datadir')) localedir = join_paths(prefix, get_option('localedir')) subdir('data') subdir('src') subdir('po') defines = [ ['PACKAGE', meson.project_name()], ['PACKAGE_NAME', meson.project_name()], ['PACKAGE_URL', 'https://hjdskes.nl/projects/gcolor3'], ['PACKAGE_VERSION', meson.project_version()], ['GETTEXT_PACKAGE', meson.project_name()], ['LOCALE_DIR', localedir], ['COPYRIGHT', '2013 - 2020'], ] config_h = configuration_data() foreach define: defines config_h.set_quoted(define[0], define[1]) endforeach config_h.set('UNUSED', '__attribute__ ((unused))') configure_file(output: 'config.h', configuration: config_h) meson.add_install_script('meson_install.sh', get_option('datadir')) output = '\n ' + meson.project_name() + ' ' + meson.project_version() + '\n' output += ' ==================\n\n' output += ' prefix: ' + prefix + '\n' output += ' bindir: ' + bindir + '\n' output += ' datadir: ' + datadir + '\n' output += ' localedir: ' + localedir + '\n' message(output) gcolor3-2.4.0/meson_install.sh000066400000000000000000000003441372141071500162720ustar00rootroot00000000000000#!/usr/bin/env sh if [ -z $DESTDIR ]; then DATADIR=$1 # Update the desktop database update-desktop-database -q # Update icon cache gtk-update-icon-cache -f -t $MESON_INSTALL_DESTDIR_PREFIX/$DATADIR/icons/hicolor fi gcolor3-2.4.0/nl.hjdskes.gcolor3.json000066400000000000000000000020061372141071500173710ustar00rootroot00000000000000{ "app-id": "nl.hjdskes.gcolor3", "runtime": "org.gnome.Platform", "runtime-version": "master", "sdk": "org.gnome.Sdk", "command": "gcolor3", "finish-args": [ "--share=ipc", "--socket=x11", "--socket=wayland", "--metadata=X-DConf=migrate-path=/nl/hjdskes/gcolor3/" ], "cleanup": [ "/share/man" ], "modules": [ { "name": "libportal", "buildsystem": "meson", "sources": [ { "type": "git", "url": "https://github.com/flatpak/libportal.git" } ] }, { "name": "gcolor3", "buildsystem": "meson", "config-opts": [ "--buildtype=debugoptimized" ], "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/World/gcolor3.git" } ] } ] } gcolor3-2.4.0/picker.png000066400000000000000000001226631372141071500150630ustar00rootroot00000000000000PNG  IHDRm/\sBIT|dtEXtSoftwaregnome-screenshot>-tEXtCreation TimeWed 26 Aug 2020 12:32:17 AM PDT" IDATxw|etAK(K 8q+b}ů8QQDEq *( 2)eR;G4I6i$M>'wKs;q B!B!B!B!B!BQ) |B!BgFv y B!A!Bȩ󠢮.k] :B!6Ap^`JP!B!`PPf;TZ &B!DCT &j{j/}˄B!h]H/CUDuE(B!"Tua_]`.}T `) U[!B,؋kPL< !cU_!B,EyuCE0B!> %2 6cʁ^hH!BxR]WL^*}w@B!"$|{ŰA.T?|_]} !B "4R|ku/H.Ke LC !BƵ2m籪|yI ze@RS!B Ty׵sx>cYH5U]1~ * (˟B!.PmDu <`Byg턿SE5j5a< (s!B!P cyP>~[Ṯ<`V6.pӀt1`-[.5B!!I(!\ҞAgEUyJ(DU 4 0W'%'74(!BQ0p:zQaaW_|p 7~ l&^5q V>[<ϧvnRbbRBJKJp:FFB!APM3aMH 1)œ3>οk-޵Nyg 4%GUy3۱:PQ>%wĕM:cCM@錄tDvna+m]L  > C¯|>^ D]aD-ꞔ"whݱX;[i7 Z@ML fԦ`Gkj)4wTYĦ=%"/ѬpTAG9ٴʴYv[)E80@QL&3${Y"/w?%Ehr>*,7m圈pC4LZ #hDŵxݯ=|;T;zSM#hW#8itׇTx_CQ+\ra @ӎVBvIMKG3,s::Gmf2?'On咔҈r]_'zFs#)0whuD=ʃ{Gxz>h&PUt(~2_m10 5gHYnQ7r|gVfIj& @[i){)]a` BJFtq 7lbZ%aIQ1Rd4E ?<(BqWb |FP3ADD;MW7y5o2tZDf]P.DX5kqi0 aK K6+IdJiuDG{ێ݁(lӎ0-(jd C,$Oa5"H!(bKMZ|ëfJE5U [ ۱NaΆ{V9jO aUP5}oFm6Uw nx,uY⩳19uC  :\_ Q]Cu2.K5B\QlsF3OpC;EGuٰ9ۯjX0B6)?D$,V uL0DU5UE6aVܐ!CX`fΝ;sM7qmiu;S^=z4#G&\EN]1dsXhFfM{Fo?tOHOdVGys͙O|ǖ}>sssycV<4IأῷqFaO0l6} dܷhݪ4}#~EmӚKTQoAؿ_.Dt-lDMB!]L3~BKƎKAA<@-UIT9gKSZjgM"JJKU#t±=iwD(2#e~TWNz4QrJ?eS}:gwv்INL *e)?D$;Ϲn7_awf(Mw>VV+2l0xꩧ$Qa vfFbb"q䋯݁ĕG9-\M[;o;1 ҩS{v{σevk֮e᜷XL@#bN#}-D uun9wvTw;7pA_ʟmbv}^@_yu=3ؿ?вeKΝ˹纚(o~&Jcǎe٬Z>?^zq~zuƴiիl6x.\Hqq1^z)&M"%%%)y1];wdHHmŷ?l>Oa4MONqq1?t<?e՚vN}Ϛ5{7riqsA;v,7ofլY{#S#raRS/}-[]M^'xuim[qIWugo3ﻓ}%^އ>Dk,]: ~>˦ݺqd:.}9֛Mfq}%ٱc'pхUN?EL ve377{p}u曬u ȼgKKJٹ+n]T Ugz,GI͞E5f8/CH*_Nxw1.ҋyq3׷o'R~ ZTP >M6ٶc?,=,[oef&/nu/۾c'8)Mu|&Ɍ\uW~k?w={ղҁ$%~xdI0u.I0O={n`iيoǹg#GYps”yp/ F)Nx&((C8t]ac* ӼqdrvH8vt]na6f kBBAɓ}Z>d)?2;{$w\bٲH 3w<9YY>ypS<=4IKVj|M_8]>jS "997h۾5 WGҵk׎FdɒJDRf f^;tpoGԗHNN6EGm.h4]ٺcg4M3=Z~lYVX!l5LpرJh4kop~>6[tأ&p[o6mI'AMINJo ),u]s;_3t5[.Yݽ?+ԝlܴNڻ]Ņ֕ᅲfʏ?LNP?bxb & i߮0qRD. $f"ɥO>l߾;vk{ŋc=F~~>W\qM6e֭lfw}|8Nvɯރ!̟[&Ԧe vPdN{G4.~ `y H 7WY޳]Yټ5w7oܾgӴi,|8|6 CsaW9iZ#UUạxc]ٗæ-`e`x~T6nL^!~g~^}ť(F2mع+~+  SidWIo҄N8TvSvWޟ|WݷÇU$&&ҸqF!SÞj/ j۶ѥsg^za"Æ |lݶ=qԇJě<8q"#FGjՊ#Fuy1~xviƲemƍѣٰa- 11cDzcZh9餓Dᅿa$ZM,/cXI]#>Ip8kӊ#Z4Ӡ~uΜw~a5pyy6jDϡ[ aj.$11Wٳw tڕS_u[oͷa:N=`xႾg{3j^o2ޤ :aomLyyQ̚qD֮mt2}$#[fҾ};.?3nL1})'bʤ11xy򑇪M.,(+ƛrG0 XLZ/BDM]}cX2Rrs;ؘ5c:f: aFA(TILR6x?7L~YY@ZLMՋѣG3rZo^v0JDOfCecNaa:uԶ oEQAg_$7jZv'A]$z)ae7]sZПꨪlA3PTaPk8oNFH4R(..7[fU Ҋ* Vk& K)).?,LfTU@ם6vWh5lF5]LX躓j'&mXUUbM@4Pt]VZRk#ZhxjZ.Qp5qO!^ρN]{ϣl8=&c TE BпyX(\#\E,-ilRl* U0())ZT3Vٰ p`#?EEou˂!MeK^DW 0oP}Co Z6="n& C krԜHB!.rD yW۶DJ">s#j ߡq)5E`,}}&D\ )?D$whI.'IFZs#볘lUDQpXѢΨ U( Jn#"@~_,?D'ߡq#6uma7T>]_čE*;Bt}z.f~fK QU-*M;f Éf.TN,?D#ߡ)ꝭtof*IR3!"'E_Y@YaIvϭa~L&'!)9j΁e7RpD4LLN&Mj%g]~GCS;[wor:5-Öfȧ&EyI$>UUQ\ד٪-)S]wICAZFSw窝ܹcZXX\v]!D슕C4LbM)1mvVDgQuFd[iTUt̞ض0 ="yTBbr niZԮc+-b iSY]w:IHHdoD;K"b |Ɨ$79L !V)*V&`2[1"5]TWU-5%:%ŚŚ}:aS>$1X~ECOB_]&PSI4TՐ8#凈&/HQ兎aTtЏ)>yPg|^bO+;4~DnWqJQ;Rg'疨+l'凈%ZIa hx%m!D]r-B!Rj$vlԮB!u,b)g] !B!4mB!BL !B!D$B!BL !B!D$B!BL !B!D$B!BL !B!D$B!BL !B!D$B!BL !B!D$B!BL !B!D$B!BL !B!D$B!BL !B!D$B!BL !B!D$B!BL !B!D$B!B !D}UTOn^ ug#BI)d4kNRJhgG!9OEsy#B@n^k, IDATrӶ}G6AӴhg)($=IdJjt2J>Dݪi% $CrSsXɦX9@1)Q`Sb# @SXIlр$RI62H)F:FKHۑb#Ȍ Q OcNdb>4 Rq†NS+⹼3+=vS]O=lJ(L)DW\DS`Lރ4'zOGX?Ƚ BYn^ڶ('qd2Ѧ]GrdpTĚx,o3dcl~fIc`e'˪M9($O]au{&,ǓL4Ќ*D(I!¤qZv%a&穈EVH QikY}oڗlnpTp'pj7(_h8@]nTLH{꼀4$ؚAw:u4 S:9OE,FzjoE|mZn_`& wL3̏a5ڐ漘T$ؚB!& $ꑬ,>i6G<u8T(CE^jtc(78B!"XH8y?wgHCMx78TOTTlI ϐ伀0~x7B!&D*,,dIJvowCu͖ ᨥ`[+/~T f=I[:nD!9B!!DefT7}JڇꂀpVUl0+(n~?X7B!h(hg@0<T)y@'@`"AFAMׇVP'R aPHꇇi/]wYᯍΑL>>}NI =sE8Fv%|x~6OF;[a9r$W]u?#-bݺu >+]AAs^SVBJ#m۶m۶hg#HӦ(T٩ls t\̾|LT7k&5{RE5D? wB=[o~ަMΝKff&9994k &s1`bxΜ9tЁ /f}Y˴i;ꨣ"w0"Yf]͎='w[GaQIIQ]2ͬ]Uu,uG2i$Oii)Vp ɟ`oF" T7p~E\iVeuF&p&Qb "TeCG0 JVY~i:ngW!r~nEE0vͨDHKKIv7lM+i, _~9{٬Y=zt++`2~k\肯:^3 ^S_pFyQyuӰRRRN0i7HDnTNO8J@@ DmPD>XEo0*˱j}0+͝vŕP4Ŭ33WSfM5]gŊ <}c5kFƍ^ӥKv8x iii\{dffҩS' !0 ye\6b Pu0}L~^zٯ !1>˗/{$yh"5jD-YnI#DMB]ŭoIeBfL4̉** |B&My]9-o|1|q PXTOiӨ={Z絡?>]w'p\p{ݞ={HMM @vv6pw2l0L²e˸СIT] ן}@y]ċ}>p?5FF \(xG:m ;u`%էr~ &x-9r$ÇM6ر{}ҲeˠӈRy?y^bufx$&_Eǁgaծw0Q]Q<  ,R1:\oOSM#hd4% t TT4Â/3v:%TŦRXAbu;ft@EUD*c VDž8q૮࿷Zig6v܉#(e%AQQa]{ :lz-òe8 77k:D-HOO0 Fe]W^ɲeXpaD ߮Rn3]׹v(\޽ӵsgksϴ1cpGr7z-ѣ{I&,XΝ;{1vؠo$Cla1w󇺾lIE-3 &M衟JWc9BA1IT$ƑӖ()P7㰺|u%fMUۉ/ڿÖZאzFtP֭[oriѦM8@nn.[nm۶hM>_vʧ~үy)2XhC|Օ$'%U[.m6t]GJ} ɓ'g ̄iZi- s ;wUQY,˾5 5 W>c\G9P7;e>?{]G"Hs^bFZfoe||.1skD*hISytɱ 8x+'A'ҝc2\B &|&Mz,SkH?6߃Xm;kٜD)¹jXVK۶mywu]gѢEab5M /ΦMҥK2.^je՗ ۴u/͛#<ҥKiݺuN'7nk׮J#D}'5afٸ;e"3M nٜQz T#l-Dєsp2uw#ItI H lh+Q} Jn *WPQp$=iP,z똞=YSh'u&k^'e&'<9s /ne_>=w!u?_N.]p:|,Zp {/sm۶'l6{o⮻btޝ?;jժhSkYsrWPeȀ~ xircŌ9ӽ{w ]Ͷf[o /㎣gy5\N0i7HQvv6C;*r7\9Yrs8Lz/UٗFξLX[Fi')P@ʠS Ԓ?5gLdȰ4Ha2WïLeϾқ4!ЭkWt]'{7o#?7nLFFw}7[n%!!N8/N:ɝn̘1}޽{90}e<7ݻxbu⒋/f֜CnvhӦs`6xQ?ڶq݄>7x#%%%>H|A&LjՊz4"XK$ʛ;`yt;Z:j 7#_kz ~*eJ}"z5>/]y#SP[mJJ|k'Zfbš}.Z;P!BzLZe˭pX)CCNJt׾gaW|R#;Qڵk93yw{u4ɥKH,/0i(Ē="vB!0Y^lmDUAk*D.O9Yϛ3 W_;{7shKPIQ] )Pt`ξ:l!Bz̍1/u*̳u%Z<`aa ;p/C7P HS}y60v+7:s}( !B?Z6![ZP$TXo01A?3{_5 2JW s`a`O=0z\!0{Ҽ\t~4J>Q$ɤI/2xrrrT M ״'_ Q.1Jkb'S󘲞B!ϤiSy!_F˪hrDi݌V\(q1j'{_ҍ*`R`v<恄g:?h}[XQDN/㐜"[y#5AePZߩ~$J>ND| x1ƻ|BAS4LáI :v3>ݳ&z-))CyΆCILJv6Dy*bQ7HKm-wXC%z(YqzQtl6&<z!_w?N3)RfbOy K͘4k^uz,)Mٸn y5s:<Aj E;K"<"#Qlua\^wλr~LW_,^'xbTEP I){1T000\AnN.3C#Xr8s "SWR{ kfQoe4kAbb9{tHWTM#))mK]xTĂx.o$nsC9d+ WM'J&q&,ۋuEEHߎ?`\Zϲk&rv/[8q , =|yB!$x\\isһ0MN'g]wM^^ <͕=lcrJS86yQL:q?UM~ 5g ߟ oB!bTfTV E<Lg-+f2O~`b(Ƞ c|R]3FYb(oBrX#ލ[9X_zj#M&lũϫYE쥨]a%UHJN!Ys'y*- $RnOo?7Qz+Gb7g駟xqTbVQWQqlpWo]Z"b]uJU7s |:ec(g0%M~ELK^~ڶH&hZ}El)*'/w?ݎ9rqRiFZz]{G^~ %frXM$֫{yѼꃈJX~di,K~{%sBsR~) zOZF0`$v<0!7oܿ,"6mLR[ߙL&ڴHnNݕ1":<&˛Hv B3Fy`N;E"d3~=ܹUt\j>AOQ*Tvc*:rzػ?||y: 7c!PQQ!RD;"L5 a&穈EV40m3l\@y?LTL;Ne>2KJL~\tP0|*ՠOFE tj T}$ q x3jjm dQ ږ8\Ryѡ;L"h)p㍜"[y`bL/ NG陼h:bӦg^L};W+ǼoxTo{Z^RPg³9R OӦ=y^1WYsOuW"77ge q5Cx9 oJm6JJJ4Ukȍ#xy4믿N-o7oz"==AU4B7}ϸ1koCnƔSX\775r~ Q3 jԦ"BHMChQ}]yPTTޣ)UFbR<&0yW:FyR} {?C4i1E۰ЮGk 0x w5wEjj*99}:R93k~( f_gއ]cܸqs2 ,oߦK.65|;wb6+;kדhF;uN/.ן-rNbG $f7Łf "$%ddR~G^V7U8ln~'7굺`B)ôz.o{6mBVVsx=^zz&t9+32Ya2vXnF2330a=̙CX`Ç:5%LV-[r'F1g#5`69N^6Fx6e~ޚGE!/'NcŊ\ IDATE/ z{L^T݄O%ѝQSo}DW3u\z]r9O?7խ,`-{W)ABe3m`R54UCS=yM)=uP;{,]<Dx&7E~#UUNPnE닰gGnt؁cyٗ}>L֭y { \ԏ O?;~`_s6+'4 /</O؞=¶zo}ӏ?왯b1nӬ\{/=s#bQfM%;vYf4nky.]صkWipTj0}y^5~}ټPG<x;t/{-gji|,X>|s sN\q%7^;%K?寍h׶m}ӈ kYme٘B^2N;rCqϜs|wG++SO"iϞ=VZNSW'DT\LT$~5gv?4p?9_XTOiuӨ=jח s\Wwo޵1۩Qyeeep@^}!u~t?} ^~חU#;zݯr< & r0#UX󕜘C3+Y=F7^}Ν:qA['@J0JZ)Dm{ëubb"=ztgێ~_23D2Vi;t-Z:525ά,7 \|Wzs~Νν?RV_p8(** jzsz@1 UV7t:+ʄϼc,LuFY曎*bt6n[Y}M`@[1ǀu?g}z3|nٚcn㜳d԰hޢ'Jjrv[)t:QՊk(Jhymڴ撑^uVږүmBʨM5@L{*Y,,e%HInN'I0[H$X8X:}>Gb)wQuoQ \=:8{vzt_9(~yw.jż2ϲЦy~kq>6>~mZNQ4fd`ٴe37ѡ}{Qtq8^ؾmGHei!{,m۶wu/uEqWFvPC|hٜDFc_BNkClUJ)44?Jl߱Yof۶mQvptwZy2`Uw05Ξ1teaϟbi7wf,ޘ6lܾgNaa!~㵍͛ٳⲛOӳ'~ʞ={ٳw/-ڼt_&"7m@^/NF4NuRPɽ=œ Jmqrdv-܂lv_FN>DF4?neϞ|v-I`2v`^~uVw>6n`,M:]PXM/+_0 # Mʚ+)z7i&M~U)O)?󎓢<wfvW)RbDE5jQcÂb?c[4c/1l*t[f[nvv^[~w}ݽe}Z} f=X I7x!ޘV\[3>ykYN$}<Ȇe.нD/d }r:<ٛcoȏ9H~gN̞{ݷ˧^m3gw>cxI2|ذ]5W]C_;fއͼ,o`)eSO=W^y%z\?T^VgѻdtY>_qg}{Ks9}gsS]bLZh"+ASzweφzmփPB}ҾTvȦN޿{ Ww5֒wuHPGzb\~>EkCzzbKfJ{z@Z˼O?fzzB˟l7}{Z*`>}0wW(w0bڵi*O{ݙ"xshW"~a9Ͽ"2Ÿ3"$iԲξm3λj)[]/poRE۾a%Ůs  ڵFݚH0tvGݽ |g,^Ԯ1\RIMjź?SƸT9ܗڑ~}\ҳH?{kĸ_  BjEc mF(:0{&ul޼9 a=uP MYm(WzB69B;aMVެH:_ְJ /%xүz`  !kzBEsw9O/ ;`; n ̥gP1[MnHD), ,sϟ`z}gh[Qy  !kc$fV@0&&}'zb c̙2-tYWۘ,-RO"am-}|5lsԡGϻl[{OI?pVO,[A!#dEbф[ScE9,&sؘneHd&%[։5"6Y HXm[oR$CN!47gp_}yO{ق  !kOVݚ}wE0^bY;,\eY!ʚ@Hj{K]y-J8CXsaŞw^X{cϻtkO /[+d00M0zz)B0͠- lw2fYO,;dzp"4ELvoRzXJ&g龤6\b]lMnM)\oEE{kϣn #:GAA [zIiԓ_P2|NH}dEb~!ܚ野'[My&wekJt>ҷPLJ<'f6J"gLESm#E=7`7HZ~Ї ֭^IQR<f[ACR #S7YZwk+zRe˾cwߡJքL6:@I;Čr@αm5#=o6")(*1tHez[4MԱnJJ*(()Bϩ[T$tT8?nKK .>@D5~k4hIp?A!n!)MƜR$tBLS lPŪ˰L$0(((bАY|N@6d"D)վ?*:WK a',8N٘ٔ mNA֪^p XcØ5#׿V)tEe mTS$R,MB h"1E1M/g͚Kkt#m]6Y9bt$J=]r>O6U*[oQ:c!9xi˾  dS$uF4ڧHw'>^JSSS a)E` }cm ŝThPS[sN9IHܖU /UalԶ1,dTY$FԾZڲUV +AAYH,{?R T]q&~a9ia}Rح ZHHfyN`E&JE-vfHdqiD %zEbTQ9Z}mJQ$AAsd"݊D[ҵ+K+-n]Hh!<$Ac,XlAਐ UE!NZaD!hke#Z^IU>]FAALu =H%#.[WSSϗ [ZW8dl6I'ES>Wl[oH|E"vU.NA :EbW$BuEbMB)ꈛQtLs9 IŻ42ҤBA Z \`k`kO^ZڃnD|u}j]KZTMsS%i%nPPXDE'ˑϩdM)5ԯһ`05kihh@-9+S!EݗEhCsVآHz(8 7%Ůĸ(7oz$EpΕhҔCXU&QemM\pՊEQa#FIx:|$6TeB lɺOW,>"Xy'@ @Mrd9rYF#2+E8Y+6QBv|O4Sι4}TykǴں.ZU477Q\R2D2V/_2|NH}d"v\i'LMm-eu"z{0Rx/\Ne|ۼIɮHX߻,Ļ6EH6lj5 ]ekEiJn!S7m7YH6%{+c3(E-466z(FVdT4½\8`&UNSd4ǘK&dxsUʈ}K/sSS/sm"77ֵ)B:oW# d":Cn/G && `0BX*uV&Kdjr ilO1T$sՖ 529\h$<',FV "sVdbeeuuݮ6Az D'  }S$q''ewZZ[ihhD)Վsa7mY\ ݠ;ǻ4L6oIϓL6:>Bh^s";.EA;:E">k MM?|PW}{@56K@e "㐍 O:!\fXq牓M5줖kYZfdˣ  BJN1~ ?y4ijniG@uF4vJ iZ b,mk$SaEO-"PhDEeC+񊏳V6/PֵW/֍|tX-RAAU`%x*p{Z0I~un`޻u Mo׌}= t-ld>ۼ>Nۼ:t lڷ͡p|8p#8 - GvS9Wկݴ\x˭#??C9vl\+W24'p<=̵W^3\pz*1׿Xh'On E]yx7Yt)'tRw?% tqL:渞^F"\͜r^诵4-4]Ǔ,O{owM\u&Lts®T. -N6q`mn&KٴRlUM{t->N($_v!q[':_I GBPJqwpWr2h WiӦqwrq~i~{^xJ:2Q^sЁp'2{'=npBt=;=ñ#777-j^|E_dwd…=+:DesmJdm)a6w!7w-UH4"A(^Vswru#9Nq?yyΕh76fpZY&tU EgofΞ3dzta@״zSq::y7ǝx _̛=eL8@ ? ?'V t}ޔK/uyeos',dN9XNN'tZ2ItM2l~( eY1ER|wTVVFCr0cƌ.\ ,YHT0ViO("z2T6$g]H%qr+"k:JZ<xRY@&n)hE)`ڈ"LqH:H@Ƚi9xB>到"z:dw61nUktw?VY˓=?x*z1 tݿԊ6Xz5_~1;3k׮M[F2ņ xN?̞=1cPP8S2`:gsm*GŧT RcX*[OL%gGmWPhƢtr עp9e#WKZ_vMy܍\j;Λf?NDl[KU/R$jwmJfUE ğ|ØѣYh1Ee'3ycz7 6kjn7gG,t30[B,6l$net}{yM1bD%[xQPPءCss3~;ӦMk;nƅ^ȃ>Ȗ-[뮻uXzЛo9kd"QڡH84*t-Ye'8+?'+|CW!u.㺸՗]*H+>DʹrMCPiʡhE1ڪ*ҿ;uBwf~<1GYQ,+x0 IDATlZ[;tk`Yf4B΂ ͽWpزe L[F:駞// ޜ_}-w{>]sS;rKFur%.0j(.r^oRˆ uN F^m~4MÃMjLp'B JXAUuT9UksjYJ79~m-mErU'cM!;}#&SxS.ds_[`Lp(w~rΈbÔuz2CeVXaakQ:2]MoiiX" )'̏ l~x뭷?~¸d2#Gwމ{9lHoq%bMki.FbUЯ'J)*OCi5c )OSR;M$b崄qzlܷuLŚxmt\יz 0}rm#17tU7{awfٷoeLa#(OY mmE1lrI E"r:xmNͭ(xRt MV ׾k9mZ78 ո+ nJW#v~L:|b̹rx߯S__{!F7De7v,6TfT3O硿>_~eYToo\< ~^َa\\YK/Uґ`&~ֆ>1_Ο_ .੧b̘1455S/zYfzj^{5&MM7D{i BuM ['I}-LAF-?G1Fo%;4[g~փnDQDH$1ִxYla+'q0w\?@ֲř}mm5Z]3M#'̏?fk0|0.d }r:<ٛ9S{Yr%wv+Og8|*+z>\A6lDyYgsF eQ~z*JxҤI~<@Z) 7@uu5v3g$'''tdyPү;0?aZԲ{.x1 N%ܹs[|}ݢ YۛnkΟ]}Noxi-}SPXt0>;s,[S!Hhv(V=-EB 30uW홑,8~(=V`7e%/>q}\1#8P~}S.svr!Zܭi(cR  %NkX|fکH|d@Y i`晘y&z@j7&fR Iitw6˦ȹ3D%d*&-N״Րh"a*  }T$s__y PfBAج)ʽNC AʹC$GḮM6~!9dI&|.}NJe h5tTĵIA>JV*{Xwꇏg5tN+%`ޤalPeJGWG5[mМ˹΋My9 |Y-*Rvd4b$U=H-]HMC AA&YHGzZC̱np~e0k VR(Z=0H]9pR?w'ul{slC4".J2GMdΑ|f֘(zqKЖ)&i u:AAW$os* -I/V$lXJa| ծ[{.Mu58)J;RiW+<_(ݬ w$c}+IlxV ޴p5\ap*X۸KkgM+ Л<.]  BwY"=ddՖ-nA35PߥC=hnْ2Z9JMee&Sҽa cl  6H\K*vԖ_KÈ pj `KIiMR$r}u%S4RȄ7 ].A_MkF8t! B( PUֈ{YtCswxQ=.7aJa[3EUsKYFhll{lڧ8UY3  ۔"Qv V {j9Z4vk.u#P{Ќ1q>:fM7ttͰm{瘳HtMz޲mh]ip%@anOA?vpŮYaOKdd\/' GCWCxg&ZM8:lq}-|4[#K X<U x}q R 4AnٛB}/ed-S476P&,&L"K;GGdm2 V 4ŦquOx`(AvS5F/^anK]+v0H%BaᜧsieQ4Q<ü m¥eU릦&r.ksij5"\7brSzADqIYO/CbWZFKscO/#clDpJDd쇍:WϠr ܔC| լd:3h5oh2ЛLAkKZ)LB0 L3{;wrP4 v;O=; ]Wף[J/[&ƇATgjrWGڂH0-d&_xi-\1`kalNE![( nR M Y#{A۴"p$?-@26%jy)qC,1{̎bаzi`kb@h92=ُY# 6ѹN(xo)Jrx淋ۮ/Bqg߼szja񇰩nd&wǏvډ?Ffʔ)؍H~>/ٌ(6n:^xe8U_`py%:9<݋_͇)^u$TN': Rt*$kJ#M.|8ss6\|,XϿM55ݲ .;ezgßk (0AV| cv5Uxx/[J0rE⥗^>;`Wk套^466r7mK,I d3akSq]y4hiF$R(^cs_J6\j"-t0`AB1Z >֞ ֞"%l8 Oa'QDXBtW^7[0 U2x0݇)]Ï=7  N"@mF (+*eRWŤ4?93_|13g7NBByy9s:/ٌX$Piq["X/gFon!yhe֚ŴdDss3EV:Be?N]Zó/Ĺg"DD wߣ!TEs򔩼ʫL qe, dٸ9g1c8sxws㨟56D~}xxgx8hyx˭X ?{_xJ)Λr 塌> tJ)6U3pYܔ톲y.HzmЀ|)**J8G͈E…3 :~M5S ~<^GdsJU<x1f+I?&ͅ| eYh͛7i[?i&yTY&yڏ2d;HSS555vG)Ūիxm*4g˯^z"M#77>iѣ>lRy}nTT3"JKJ{šukp{,+9s94vJ}w]͉ dJ2h?'ٽƈ(;38͙3O?=z_UW]9裙6m H d3H$,^3[#^ap*nV G^ǫӏD0ObEPhiAa`|7>IG['=#XMenۭOP @y xAA\;7vWR~)'3N>ܹ87f~a0MO?w]BGMJށKac?־'߇xu An>YPEivح)BnN~'kxXl^xat鱗 ,X5\ٳ1 #yAfDH׀\YWu,N~XsĔ<^KvGX V( s`yC=f xHڲBJD?7rsP?g` 6TodGӺ隣>^uvu,׮w_}Ŗ-[\_8R 0z.Zknn.?~]0Oth&,lE~f"ے,PZtJTUUq%p}Qbpĉ?Ɏ;… kRlF$lWxV֦v(jQXPYyk'CGQkaxCnǚv g1,FE)<9]ʾeJcȸ_/]6dH9 ]'/7V.z9'ʅÀDPَ6xoӹ 5{G>C5.=j(J\,E) 3z->**ijjN}}=}}Jc!p}jZZ=w.~glPMKK $uAraqb%^< ] ]qpuk). eqgb y MMM455bӦML2YfQUU'|)~3F d;r&Og+hs)S&ڍeb44^ &HSZ9~lukR3mļfQTԏ((GuQ"#Y:ȵGrPI T94"Lr-~(gߒ1߮+xG;>bsEzOp3"^VA/}}5k8䠃zz) dM딖iy|dy*ֺZ6m)(._! n$FL+%q |A&7CMœey1K(ӽ[ex^gw}Al$/aY-4l݂Z+V摟_H~Q1E+Z"2a M1b$Gg6 u! Sl?6cO . piA( 0_Y5,߇CEAkCaa 43x` Dyy9x<Q""DOp83=D1{;YrSם˜!>J mMgy[o!\>8[2T(¯FXoے\|3a,-aDČe3nQ L3a=!DTxVHLה-q""^pIy}_|;}rNΣ_LzC |7)8sk8, ^VoF%j`|AzvD6i hRy34l'(`!˽}v\hk7Q[R hxs{(.3HqLydR|gw gBSMHnqJpg\_ċyX!At[?uWRԯO }`0Ⱥ+4${RK֦.:*/ɋ*V:iqYb,FonX 8-k5i\3OuTrD0EV$+rQ&j d3a+-*`& [Xz%%eTהMYN[|B Grn#{CS{K 8n 3ڲ)0bE, PCA\ax@@NQ}oPAкY_ ͫtWii^akqJwe8[*a?aV( TH~~6Tj2,z0(((bАr2(] 1\zm.c#z;nm"Mu?Xgp:wSc;"J۱)j!kQ A% )(ʮ7A-Hu7q&´%"HH+ZaqC"{W2S&jX~+ ^:W%BA!"эxp¡qJDD{$#1I#8+)㎸39%S"ʄ5|)MDAA!D0foʋី4e#nMOv$29v*7R" ~|cv^]AAH c5[*We"Yr$"7( Ye 6?E͘g|  BGE˃k ~7OIJ,t*Ţ=dJq5"vMmI ꀸ1  tPTg䉿xyq[6kSRљBb7>= gJe(&inlvS5MMX:Qd D/\q\?o_rn%d[!h"j /^$Rj؈H+s Vճn Jʩ?$qmgy}ǙxGy$eee|̜93$cʔ)hӶ~<{A!EBn3>(G1GzSN<]iY=w>C/^̙3y]ǖ-[ĉ9c?>ws ,ΕL*ill"# $FB8[0gvءWgٻkYlm]ұ\}p ̛7{wz*mT466R^^Naaa "!}'O(N,_`[oq_^vuH~򔩜vIҥ[]~\uT>}o̞;j8?9c:2*3yT9@>=UkVտdEƛlܸދ^wm xG3ip\u٥䡔bScnz{?4믿ukgy]wݕ/nlL>=:~:\pA8ύ7K/DKK 'psEEE@HA!$6R:Kkk+k֮cc=1|LnvׄG2h@^/C ۦq1?fwj͚}9Z^yY ގ\Bj?7wU߯UM:r|8Jl|)E"Gǧꫳgi˯a9)nlL:4k,zW5c mٲEoO5khժUUVVZqرZt&O%K誫 /0YO5޼yMϴH*x3:cgk$bdbP(O~jE;f@gHv pwloKt@YI}q!IafH5`ʩ@* #!BRփ [Lm  H9D@cV{Lmavּ 5A8i׎;cN=wuImmڰG.0z0 H?pNyH=zIp>>|>_`T H ER uG!I>OϏ+(Q{kU (0 )6)zߴ]? Py~>;P( DŽB!5|v\UU $ER\q`***קp(( BGL9(p8F+(f{HSRztPVY+y< jj:5|'VPa>g**/?ӧNwHai| JtEՄAp"6ox\3/Cu*,, ߯?!"J PUb:q!bz;Vm7/QiipkMEH 9ta|h<6oՌS]>s}ΞQ(B\C>[._~ X^IY!@$DWW91My 8ps:jf3 ='nDO<]6 /q& I}gZ]0J>٭_ ]V3UPw"t$fL_ڦ.uf{8YG@s Ch iEFyd{FH y}^ C^ov3a>7kEEP$qtvW;ѩCGej:(060tQ0$<^% a67)gl pXM:A%z0*Ԧ~'C9d{#_4LT7^c Ǩ'u'  >O'^`Y9!*9$_>;C(-}>$t\JJ)2p+0<&3Ap&^ a5h'F3`.3ՑhA@3F+`Ba Ak$"qcjs:\ (Н2##uy:A @f4IDAT9SH$0!ȎaS N/HWȼTp auOJVjT690îO;@D _#6<ݻ6YGlqN89$H$bs+d]-新Iw7 'F$̈n89SkiLmRn$kn:~uxiN)?g"Hu&(DحP awY'[takpsHe)B~(#a\@ra5iH0}NaKnۼ^=,^\hdK{f017F+==-Z{e  I^tNog<حA6Jj6MDk( v$DÄ" W)M @ dY<$ n* av\dc}2@;F"\[ VN/Mv]DcVәܭ@\d7)UH&>ۭp=i0/JD; V">Lvr]w d@azI:*2"Yg$d*@.HV' sڝt6`G48L/6/vӉ < MsJԙ Qy]I$1YMk9,Djg'DPa9YpZD| [m.;'lvSXk$„dq0B`il}OJVXV!>A@>IPNyTD~P(\X: da"(48 Kr^ n!p&B@wZ; ND@>rZ; Nh݄"=As$QQ($:9T u?`T8d_;GP-N@pR3Um`)؇b}E:ӂM0HYCUg*^IS '``dސx<9TǦj&IENDB`gcolor3-2.4.0/po/000077500000000000000000000000001372141071500135045ustar00rootroot00000000000000gcolor3-2.4.0/po/LINGUAS000066400000000000000000000001771372141071500145360ustar00rootroot00000000000000# please keep this list sorted alphabetically # cs da de el en_GB es eu fi fr fur gl hu id it nb nl pl pt_BR ro ru sr sv tr uk gcolor3-2.4.0/po/POTFILES.in000066400000000000000000000005641372141071500152660ustar00rootroot00000000000000# List of source files containing translatable strings. # Please keep this list sorted alphabetically. data/nl.hjdskes.gcolor3.desktop.in data/nl.hjdskes.gcolor3.appdata.xml.in data/color-row.ui data/menus.ui data/shortcuts.ui data/window.ui src/main.c src/gcolor3-application.c src/gcolor3-color-row.c src/gcolor3-color-selection.c src/gcolor3-hsv.c src/gcolor3-window.c gcolor3-2.4.0/po/cs.po000066400000000000000000000235771372141071500144670ustar00rootroot00000000000000# Czech translation for gcolor3. # Copyright (C) 2018 gcolor3's COPYRIGHT HOLDER # This file is distributed under the same license as the gcolor3 package. # Marek Černocký , 2018, 2019. # msgid "" msgstr "" "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-01-16 12:12+0000\n" "PO-Revision-Date: 2019-01-16 17:23+0100\n" "Last-Translator: Marek Černocký \n" "Language-Team: čeština \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Gtranslator 2.91.7\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:146 msgid "Color Picker" msgstr "Barvičky" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:84 msgid "Choose colors from the picker or the screen" msgstr "Namíchejte si barvu nebo ji sejměte z obrazovky" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: data/nl.hjdskes.gcolor3.desktop.in:7 msgid "nl.hjdskes.gcolor3" msgstr "nl.hjdskes.gcolor3" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "barva;míchání;pipeta;paleta;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" "Potřebovali jste někdy znát hodnotu barvy na obrazovce? Díky Gcolor3 můžete " "zjistit barvu kteréhokoliv pixelu na obrazovce. Navíc máte k dispozici " "paletu, pomoci které si můžete jednoduše barvu namíchat a případně ji " "porovnat s jinou barvou." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" "Když najdete tu správnou kombinaci barev, přirozeně si ji budete chtít " "uložit. Gcolor vám umožní barvu pohodlně uložit a opět získat." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Aplikace Gcolor3 je dialogové okno pro výběr barvy v GTK+ 3. Je podobná, " "jako aplikace Gcolor2, akorát vyžívá novější verzi GTK+ a další modernizace, " "aby lépe zapadla do uživatelského prostředí současnosti." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Snímání a míchání barev" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Seznam uložených barev" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Jente Hidskes" msgstr "Jente Hidskes" #: data/color-row.ui:31 msgid "Hex" msgstr "Šestnáctkově" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Kliknutím změníte název barvy." #: data/color-row.ui:47 msgid "Name" msgstr "Název" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Zkopírovat šestnáctkovou hodnotu barvy do schránky." #: data/color-row.ui:90 msgid "Delete this color" msgstr "Smazat tuto barvu." #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Klávesové zkratky" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "O _aplikaci Barvičky" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Obecné" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Změnit stránku" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Klávesové zkratky palety" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Uložit právě vybranou barvu" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Správa uložených barev" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Zkopírovat šestnáctkovou hodnotu vybrané barvy" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Smazat vybranou barvu" #: data/window.ui:32 msgid "Color name…" msgstr "název barvy…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Když si namíchanou nebo sejmutou barvu uložíte, objeví se zde." #: data/window.ui:112 msgid "You have no saved colors" msgstr "Nemáte uložené žádné barvy" #: data/window.ui:249 msgid "Saved Colors" msgstr "Uložené barvy" #: src/main.c:43 msgid "Show the application’s version" msgstr "Zobrazit verzi aplikace" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— namíchat barvu nebo ji sejmout z obrazovky" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Spuštěním „%s --help“ si zobrazíte všechny dostupné přepínače příkazové " "řádky." #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:88 msgid "translator-credits" msgstr "Marek Černocký " #: src/gcolor3-application.c:89 msgid "Website" msgstr "Webové stránky" #: src/gcolor3-color-selection.c:409 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Na vnějším prstenci si vyberte požadovanou barvu. Na vnitřním trojúhelníku " "pak, jak má být tmavá nebo naopak světlá." #: src/gcolor3-color-selection.c:439 msgid "Picking a color is currently not supported on Wayland." msgstr "Snímání barev není v současnosti podporováno nad protokolem Wayland." #: src/gcolor3-color-selection.c:450 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Klikněte na pipetu a po té kdekoliv na obrazovce, abyste vybrali barvu " "daného bodu." #: src/gcolor3-color-selection.c:461 msgid "_Hue:" msgstr "_Tón:" #: src/gcolor3-color-selection.c:462 msgid "Position on the color wheel." msgstr "Místo na barevném kole." #: src/gcolor3-color-selection.c:464 msgid "S_aturation:" msgstr "S_ytost:" #: src/gcolor3-color-selection.c:465 msgid "Intensity of the color." msgstr "Intenzita barvy." #: src/gcolor3-color-selection.c:466 msgid "_Value:" msgstr "Hodota:" #: src/gcolor3-color-selection.c:467 msgid "Brightness of the color." msgstr "Jas barvy." #: src/gcolor3-color-selection.c:468 msgid "_Red:" msgstr "Če_rvená:" #: src/gcolor3-color-selection.c:469 msgid "Amount of red light in the color." msgstr "Množství červeného světla v barvě." #: src/gcolor3-color-selection.c:470 msgid "_Green:" msgstr "_Zelená:" #: src/gcolor3-color-selection.c:471 msgid "Amount of green light in the color." msgstr "Množství zeleného světla v barvě." #: src/gcolor3-color-selection.c:472 msgid "_Blue:" msgstr "_Modrá:" #: src/gcolor3-color-selection.c:473 msgid "Amount of blue light in the color." msgstr "Množství modrého světla v barvě." #: src/gcolor3-color-selection.c:476 msgid "Op_acity:" msgstr "K_rytí:" #: src/gcolor3-color-selection.c:484 src/gcolor3-color-selection.c:494 msgid "Transparency of the color." msgstr "Průhlednost barvy." #: src/gcolor3-color-selection.c:501 msgid "Color _Name:" msgstr "_Název barvy:" #: src/gcolor3-color-selection.c:516 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Sem můžete zadat šestnáctkovou hodnotu barvy nebo její anglický název, jako " "třeba „orange“." #: src/gcolor3-color-selection.c:548 msgid "_Palette:" msgstr "_Paleta:" #: src/gcolor3-color-selection.c:578 msgid "Color Wheel" msgstr "Barevné kolo" #: src/gcolor3-color-selection.c:1043 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Předchozí vybraná barva pro porovnání s právě vybranou barvou. Můžete ji " "přetáhnout na položku v paletě, nebo ji vybrat jako aktuální, jejím " "přetažením na vzorek barvy vedle." #: src/gcolor3-color-selection.c:1049 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Barva, kterou máte právě vybranou. Můžete ji přetáhnout na položku v paletě, " "aby se uložila pro pozdější použití." #: src/gcolor3-color-selection.c:1055 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "Předchozí vybraná barva pro porovnání s právě vybranou barvou." #: src/gcolor3-color-selection.c:1059 msgid "The color you’ve chosen." msgstr "Barva, kterou máte právě vybranou." #: src/gcolor3-color-selection.c:1428 msgid "_Save color here" msgstr "_Uložit barvu sem" #: src/gcolor3-color-selection.c:1634 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Kliknutím na položku palety ji vyberete jako aktuální barvu. Pro změnu " "položky sem přetáhněte vzorek barvy nebo na něj klikněte pravým tlačítkem a " "zvolte „Uložit barvu sem“." #: src/gcolor3-window.c:410 msgid "Picker" msgstr "Výběr barvy" gcolor3-2.4.0/po/da.po000066400000000000000000000225701372141071500144360ustar00rootroot00000000000000# Danish translation for gcolor3. # Copyright (C) 2019 gcolor3's COPYRIGHT HOLDER # This file is distributed under the same license as the gcolor3 package. # scootergrisen, 2019. msgid "" msgstr "" "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-02-02 11:18+0000\n" "PO-Revision-Date: 2019-02-22 00:00+0200\n" "Last-Translator: scootergrisen\n" "Language-Team: Danish\n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Farvevælger" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Vælg farver fra vælgeren eller skærmen" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: data/nl.hjdskes.gcolor3.desktop.in:7 msgid "nl.hjdskes.gcolor3" msgstr "nl.hjdskes.gcolor3" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Farve;Vælger;Pipette;Palet;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" "Har du nogensinde haft brug for værdien af en farve på skærmen? Gcolor3 " "giver dig mulighed for at vælge farven fra enhver pixel på din skærm. Den " "har også en palet, så du let kan blande og matche et par farver." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" "Når du har fundet den perfekte farvekombination, så kan du naturligvis gemme " "dem. Med Gcolor3 kan du let gemme og hente farver." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Gcolor3 er en farvevælgerdialog som er skrevet i GTK+ 3. Den minder meget om " "Gcolor2, men bruger den nyere GTK+-version og andre moderniseringer for at " "opnå bedre integration i dit moderne skrivebord." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Vælgeren og farvepaletten" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Listen over gemte farver" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Jente Hidskes" msgstr "Jente Hidskes" #: data/color-row.ui:31 msgid "Hex" msgstr "Hex" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Klik for at ændre farvens navn" #: data/color-row.ui:47 msgid "Name" msgstr "Navn" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Kopiér farvens hex-værdi til udklipsholderen" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Slet farven" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Tastaturgenveje" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_Om Farvevælger" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Generelt" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Skift side" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Paletgenveje" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Gem den nuværende farve" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Håndtering af gemt farve" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Kopiér den fremhævede farves hex-værdi" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Slet fremhævet farve" #: data/window.ui:32 msgid "Color name…" msgstr "Farvenavn …" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Gem en valgt farve for at vise den her" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Du har ikke gemt nogen farver" #: data/window.ui:249 msgid "Saved Colors" msgstr "Gemte farver" #: src/main.c:43 msgid "Show the application’s version" msgstr "Vis programmets version" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— vælg en farve fra vælgeren eller skærmen" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Kør “%s --help” for at se en fuld liste over tilgængelige " "kommandolinjetilvalg" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "scootergrisen" #: src/gcolor3-application.c:91 msgid "Website" msgstr "Websted" #: src/gcolor3-color-selection.c:409 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Vælg den ønskede farve i ringen yderst. Vælg hvor mørk/lys farven skal være " "med trekanten i midten." #: src/gcolor3-color-selection.c:439 msgid "Picking a color is currently not supported on Wayland." msgstr "På nuværende tidspunkt er det ikke muligt at vælge farve i Wayland." #: src/gcolor3-color-selection.c:450 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "Klik på pipetten og klik så på en farve på skærmen for at vælge farven." #: src/gcolor3-color-selection.c:461 msgid "_Hue:" msgstr "Farve_tone:" #: src/gcolor3-color-selection.c:462 msgid "Position on the color wheel." msgstr "Position på farvehjulet." #: src/gcolor3-color-selection.c:464 msgid "S_aturation:" msgstr "_Mætning:" #: src/gcolor3-color-selection.c:465 msgid "Intensity of the color." msgstr "Farvens intensitet." #: src/gcolor3-color-selection.c:466 msgid "_Value:" msgstr "_Valør:" #: src/gcolor3-color-selection.c:467 msgid "Brightness of the color." msgstr "Farvens lysstyrke." #: src/gcolor3-color-selection.c:468 msgid "_Red:" msgstr "_Rød:" #: src/gcolor3-color-selection.c:469 msgid "Amount of red light in the color." msgstr "Mængden af rødt lys i farven." #: src/gcolor3-color-selection.c:470 msgid "_Green:" msgstr "_Grøn:" #: src/gcolor3-color-selection.c:471 msgid "Amount of green light in the color." msgstr "Mængden af grønt lys i farven." #: src/gcolor3-color-selection.c:472 msgid "_Blue:" msgstr "_Blå:" #: src/gcolor3-color-selection.c:473 msgid "Amount of blue light in the color." msgstr "Mængden af blåt lys i farven." #: src/gcolor3-color-selection.c:476 msgid "Op_acity:" msgstr "_Opacitet:" #: src/gcolor3-color-selection.c:484 src/gcolor3-color-selection.c:494 msgid "Transparency of the color." msgstr "Farvens gennemsigtighed." #: src/gcolor3-color-selection.c:501 msgid "Color _Name:" msgstr "Farve_navn:" #: src/gcolor3-color-selection.c:516 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Her kan du indtaste en hexadecimal farveværdi i HTML-stil eller navnet på en " "farve såsom “orange”." #: src/gcolor3-color-selection.c:548 msgid "_Palette:" msgstr "_Palet:" #: src/gcolor3-color-selection.c:578 msgid "Color Wheel" msgstr "Farvehjul" #: src/gcolor3-color-selection.c:1043 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Den tidligere valgte farve til sammenligning med den nuværende farve. Du " "kan trække farven til et paletindslag eller vælge farven som den " "nuværende ved at trække den til det andet farvekort ved siden af." #: src/gcolor3-color-selection.c:1049 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Farven du har valgt. Du kan trække farven til et paletindslag for at " "gemme den til senere." #: src/gcolor3-color-selection.c:1055 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "Den tidligere valgte farve til sammenligning med den nuværende farve." #: src/gcolor3-color-selection.c:1059 msgid "The color you’ve chosen." msgstr "Farven du har valgt." #: src/gcolor3-color-selection.c:1428 msgid "_Save color here" msgstr "Gem farve _her" #: src/gcolor3-color-selection.c:1634 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Klik på paletindslaget for at bruge farven. For at ændre indslaget " "skal du trække et farvekort herhen eller højreklikke på den og vælge “Gem " "farve her”." #: src/gcolor3-window.c:410 msgid "Picker" msgstr "Vælger" gcolor3-2.4.0/po/de.po000066400000000000000000000303701372141071500144370ustar00rootroot00000000000000# German (de) translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. # # Tim Sabsch , 2018. # Mario Blättermann , 2018. # Wolfgang Stöggl , 2019. # msgid "" msgstr "" "Project-Id-Version: 2.0\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-01-16 12:12+0000\n" "PO-Revision-Date: 2019-03-13 09:45+0100\n" "Last-Translator: Wolfgang Stoeggl \n" "Language-Team: Deutsch \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:146 msgid "Color Picker" msgstr "Farbwähler" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:84 msgid "Choose colors from the picker or the screen" msgstr "Wählen Sie Farben vom Farbrad oder dem Bildschirm" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: data/nl.hjdskes.gcolor3.desktop.in:7 msgid "nl.hjdskes.gcolor3" msgstr "nl.hjdskes.gcolor3" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Farbe;Farbauswahl;Farbpalette;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" "Wollten Sie schon immer den Wert dieser einen Farbe auf dem Bildschirm " "wissen? Gcolor3 ermöglicht es Ihnen, die Farbe eines beliebigen Pixels des " "Bildschirms aufzunehmen. Weiterhin wird eine Farbpalette zur Abstimmung von " "Farbkombinationen bereitgestellt." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" "Haben Sie Ihre perfekte Farbkombination gefunden, können Sie sie mit Gcolor3 " "bequem speichern und abrufen." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Gcolor3 ist ein Farbwahlprogramm basierend auf GTK+ 3. Es ist ähnlich zu " "Gcolor2, fügt sich jedoch durch die neue GTK-Version und andere " "Modernisierungen besser in Ihren modernen Arbeitsplatz ein." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Der Farbwähler und die Farbpalette" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Liste der gespeicherten Farben" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Jente Hidskes" msgstr "Jente Hidskes" #: data/color-row.ui:31 msgid "Hex" msgstr "HEX" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Klicken, um den Namen der Farbe zu ändern" #: data/color-row.ui:47 msgid "Name" msgstr "Name" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Diesen HEX-Wert in die Zwischenablage kopieren" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Diese Farbe löschen" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Tastenkürzel" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_Info zu Farbwähler" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Allgemein" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Seite wechseln" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Tastenkürzel für die Farbpalette" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Momentan gewählte Farbe speichern" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Gespeichertes Farbmanagement" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "HEX-Wert der hervorgehobenen Farbe kopieren" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Hervorgehobene Farbe löschen" #: data/window.ui:32 msgid "Color name…" msgstr "Farbname …" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Eine gewählte Farbe speichern, um sie hier erscheinen zu lassen" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Sie haben keine gespeicherten Farben" #: data/window.ui:249 msgid "Saved Colors" msgstr "Gespeicherte Farben" #: src/main.c:43 msgid "Show the application’s version" msgstr "Programmversion anzeigen" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— wählen Sie eine Farbe vom Farbwähler oder dem Bildschirm" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Rufen Sie »%s --help« auf, um eine vollständige Liste der verfügbaren " "Befehlszeilenoptionen zu erhalten" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:88 msgid "translator-credits" msgstr "" "Jens John,\n" "Vincent Bermel,\n" "Tim Sabsch" #: src/gcolor3-application.c:89 msgid "Website" msgstr "Webseite" #: src/gcolor3-color-selection.c:409 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Wählen Sie die gewünschte Farbe vom äußeren Farbkreis und die gewünschte " "Helligkeit auf dem inneren Dreieck." #: src/gcolor3-color-selection.c:439 msgid "Picking a color is currently not supported on Wayland." msgstr "" "Das Abgreifen einer Farbe vom Bildschirm ist momentan unter Wayland nicht " "möglich." #: src/gcolor3-color-selection.c:450 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Klicken Sie auf das Pipettensymbol und dann auf einen beliebigen Punkt auf " "dem Bildschirm, um die dortige Farbe auszuwählen." #: src/gcolor3-color-selection.c:461 msgid "_Hue:" msgstr "_Farbton:" #: src/gcolor3-color-selection.c:462 msgid "Position on the color wheel." msgstr "Winkel auf dem Farbkreis." #: src/gcolor3-color-selection.c:464 msgid "S_aturation:" msgstr "_Sättigung:" #: src/gcolor3-color-selection.c:465 msgid "Intensity of the color." msgstr "Intensität der Farbe." #: src/gcolor3-color-selection.c:466 msgid "_Value:" msgstr "_Wert:" #: src/gcolor3-color-selection.c:467 msgid "Brightness of the color." msgstr "Helligkeit der Farbe." #: src/gcolor3-color-selection.c:468 msgid "_Red:" msgstr "_Rot:" #: src/gcolor3-color-selection.c:469 msgid "Amount of red light in the color." msgstr "Rotanteil der Farbe." #: src/gcolor3-color-selection.c:470 msgid "_Green:" msgstr "_Grün:" #: src/gcolor3-color-selection.c:471 msgid "Amount of green light in the color." msgstr "Grünanteil der Farbe." #: src/gcolor3-color-selection.c:472 msgid "_Blue:" msgstr "_Blau:" #: src/gcolor3-color-selection.c:473 msgid "Amount of blue light in the color." msgstr "Blauanteil der Farbe." #: src/gcolor3-color-selection.c:476 msgid "Op_acity:" msgstr "_Deckkraft:" #: src/gcolor3-color-selection.c:484 src/gcolor3-color-selection.c:494 msgid "Transparency of the color." msgstr "Transparenz der Farbe." #: src/gcolor3-color-selection.c:501 msgid "Color _Name:" msgstr "Farb_name:" #: src/gcolor3-color-selection.c:516 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Akzeptiert werden sowohl HTML-artige Hexadezimal-Farbwerte als auch " "Farbnamen wie »Orange«." #: src/gcolor3-color-selection.c:548 msgid "_Palette:" msgstr "_Palette:" #: src/gcolor3-color-selection.c:578 msgid "Color Wheel" msgstr "Farbrad" #: src/gcolor3-color-selection.c:1043 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Die zuvor gewählte Farbe und zum Vergleich rechts die aktuelle Farbe. Kann " "in die Palette gezogen werden für einen Eintrag dort oder als gewählte Farbe " "festgelegt werden." #: src/gcolor3-color-selection.c:1049 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Die gewählte Farbe. Kann in eine Palette gezogen und so zur zukünftigen " "Verwendung gespeichert werden." #: src/gcolor3-color-selection.c:1055 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "Die zuvor gewählte Farbe und zum Vergleich die aktuelle Farbe." #: src/gcolor3-color-selection.c:1059 msgid "The color you’ve chosen." msgstr "Die gewählte Farbe." #: src/gcolor3-color-selection.c:1428 msgid "_Save color here" msgstr "Farbe hier _speichern" #: src/gcolor3-color-selection.c:1634 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Auf diesen Paletteneintrag klicken, um die Farbe auszuwählen. Zum Bearbeiten " "des Eintrags Farbfeld hier hin ziehen oder Rechtsklick und Klick auf »Farbe " "hier speichern«." #: src/gcolor3-window.c:410 msgid "Picker" msgstr "Farbwähler" #~ msgid "_About" #~ msgstr "_Info" #~ msgid "_Quit" #~ msgstr "_Beenden" #~ msgid "Centrally manage colors between several running instances;" #~ msgstr "Zentrale Farbverwaltung zwischen verschiedenen laufenden Instanzen;" #~ msgid "" #~ "Follow the XDG directory specification for the configuration file. This " #~ "means that the configuration file has moved from `~/.rgb.ini` to `" #~ "$XDG_CONFIG_HOME/gcolor3/config.ini`;" #~ msgstr "" #~ "Die Konfigurationsdatei folgt nun der \"XDG directory specification\". " #~ "Das bedeutet dass die Datei nun am Ort `$XDG_CONFIG_HOME/gcolor3/config." #~ "ini` statt am Ort `~/.rgb.ini` liegt;" #~ msgid "Copy the selected color's hex value from the tree view using Ctrl-C;" #~ msgstr "Strg+C zum Kopieren des gewählten HEX-Werts aus der Baumansicht;" #~ msgid "Make the main window resizable;" #~ msgstr "Hauptfenster größenveränderbar;" #~ msgid "Translation updates." #~ msgstr "Aktualisierung der Übersetzungen." #~ msgid "Color name..." #~ msgstr "Farbname..." #~ msgid "Could not parse color to display thumbnail\n" #~ msgstr "Farbe konnte nicht verarbeitet werden\n" #~ msgid "Error creating config directory: %s" #~ msgstr "Fehler beim Anlegen des Konfigurationsordners: %s" #~ msgid "Cannot count number of items: %s\n" #~ msgstr "Anzahl der Einträge konnte nicht gezählt werden: %s\n" #~ msgid "Cannot read colors: %s\n" #~ msgstr "Folgende Farbe konnte nicht verarbeitet werden: %s\n" #~ msgid "Cannot access color at position %d: %s\n" #~ msgstr "Zugriff nicht möglich auf Farbe an Position %d: %s\n" #~ msgid "Error writing file: %s" #~ msgstr "Fehler beim Schreiben der Datei: %s" #~ msgid "" #~ "Error opening file: %s. Colors likely won't be saved, unless this is the " #~ "first run" #~ msgstr "Fehler beim Öffnen der Datei: %s. Farben werden nicht gespeichert." #~ msgid "There is already a color named `%s`" #~ msgstr "Eine Farbe mit Name `%s` besteht bereits." #~ msgid "Error deleting key: %s" #~ msgstr "Fehler beim Löschen des Schlüssels: %s" #~ msgid "Cannot rename nonexisting color `%s`" #~ msgstr "Nichtexistente Farbe `%s` konnte nicht umbenannt werden." #~ msgid "Cannot retrieve hex value belonging to `%s`: %s" #~ msgstr "Der HEX-Wert konnte nicht ermittelt werden für `%s`: %s" #~ msgid "Error deleting old name `%s`: %s" #~ msgstr "Fehler beim Löschen des alten Namens `%s`: %s" #~ msgid "Error reading keys: %s. This is harmless if this is the first run" #~ msgstr "Fehler beim Lesen der Schlüssel: %s. Harmlos beim ersten Start." gcolor3-2.4.0/po/el.po000066400000000000000000000062261372141071500144520ustar00rootroot00000000000000# Greek translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. msgid "" msgstr "" "Project-Id-Version: 2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-10-01 14:04+0200\n" "PO-Revision-Date: Wed Jul 29 2015 19:07:48 GMT+0200 (CEST)\n" "Last-Translator: Konstantinos Thermos \n" "Language-Team: Greek\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Loco-Source-Locale: en_US\n" "X-Generator: Loco - https://localise.biz/\n" "X-Loco-Parser: loco_parse_po\n" "X-Loco-Target-Locale: el_GR\n" #: ../data/nl.hjdskes.gcolor3.desktop.in.in.h:1 ../src/gcolor3-application.c:146 #, fuzzy msgid "Color picker" msgstr "Επιλογέας χρώματος" #: ../data/nl.hjdskes.gcolor3.desktop.in.in.h:2 ../src/gcolor3-window.c:499 #, fuzzy msgid "Choose colors from the picker or the screen" msgstr "Επιλέξτε χρώματα απο την παλέτα ή απο την οθόνη" #. Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: ../data/nl.hjdskes.gcolor3.desktop.in.in.h:4 msgid "Color;Picker;Palette;" msgstr "Χρώμα;Επιλογέας;Παλέτα;" #: ../src/main.c:45 msgid "Show the application's version" msgstr "Εμφάνιση έκδοσης εφαρμογής" #: ../src/main.c:56 #, fuzzy msgid "- pick a color from the picker or the screen" msgstr "- επιλέξτε χρώματα απο την παλέτα ή απο την οθόνη" #: ../src/main.c:67 #, c-format msgid "Run '%s --help' to see a full list of available command line options" msgstr "" "Τρέξτε '%s --help' για να δείτε μια ολοκληρωμένη λίστα με διαθέσιμες " "επιλογές γραμής εντολών" #: ../src/gcolor3-application.c:86 msgid "About" msgstr "Σχετικά" #: ../src/gcolor3-application.c:87 msgid "Quit" msgstr "Κλείσιμο" #: ../src/gcolor3-application.c:131 msgid "Error opening file: " msgstr "Σφάλμα στο άνοιγμα του αρχείου: " #: ../src/gcolor3-application.c:178 msgid "Error writing file: " msgstr "Σφάλμα στην αποθήκευση στο αρχείο: " #: ../src/gcolor3-window.c:129 msgid "Error deleting key: " msgstr "Σφάλμα στη διαγραφή του κλειδιού: " #: ../src/gcolor3-window.c:341 msgid "Color name..." msgstr "Το όνομά χρώμα..." #: ../src/gcolor3-window.c:364 msgid "Picker" msgstr "" #: ../src/gcolor3-window.c:374 msgid "Saved colors" msgstr "Αποθηκευμένα χρώματα" #: ../src/gcolor3-window.c:389 msgid "Color" msgstr "Χρώμα" #: ../src/gcolor3-window.c:404 msgid "Name" msgstr "Όνομα" #. Translators: translate this to give yourself credits. #: ../src/gcolor3-window.c:503 msgid "translator-credits" msgstr "Κωνσταντίνος Θερμός" #: ../src/gcolor3-window.c:504 msgid "Website" msgstr "Ιστοσελίδα" #: ../src/gcolor3-window.c:538 msgid "Error reading keys: " msgstr "Σφάλμα στην ανάγνωση των κλειδιών: " gcolor3-2.4.0/po/en_GB.po000066400000000000000000000324351372141071500150250ustar00rootroot00000000000000# British English translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. msgid "" msgstr "" "Project-Id-Version: 2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-09-01 19:35+0200\n" "PO-Revision-Date: 2013-06-11 13:09+0200\n" "Last-Translator: Jente Hidskes \n" "Language-Team: British English\n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:145 msgid "Color picker" msgstr "Colour picker" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:84 msgid "Choose colors from the picker or the screen" msgstr "Choose colours from the picker or the screen" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: data/nl.hjdskes.gcolor3.desktop.in:7 msgid "nl.hjdskes.gcolor3" msgstr "" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Colour;Picker;Palette" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" "Ever wanted to know the value of that colour on your screen? Gcolor3 enables " "you to pick the colour from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colours together." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" "When you have found the perfect combination of colours, naturally you want " "to save them. Gcolor3 allows you to conveniently save and retrieve colours." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Gcolor3 is a colour selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernizations to better " "integrate into your modern desktop." #: data/nl.hjdskes.gcolor3.appdata.xml.in:33 msgid "The picker and the color palette" msgstr "The picker and the colour palette" #: data/nl.hjdskes.gcolor3.appdata.xml.in:37 msgid "The list of saved colors" msgstr "The list of saved colours" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:44 msgid "Jente Hidskes" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:58 msgid "Redesign the saved colors page" msgstr "Redesign the saved colours page" #: data/nl.hjdskes.gcolor3.appdata.xml.in:59 msgid "Redesign the header bar" msgstr "Redesign the header bar" #: data/nl.hjdskes.gcolor3.appdata.xml.in:60 msgid "Disable color picking on Wayland for now, instead of crashing" msgstr "Disable colour picking on Wayland for now, instead of crashing" #: data/nl.hjdskes.gcolor3.appdata.xml.in:61 msgid "Add a shortcuts window" msgstr "Add a shortcuts window" #: data/nl.hjdskes.gcolor3.appdata.xml.in:62 msgid "Gcolor3 is now available as a Flatpak" msgstr "Gcolor3 is now available as a Flatpak" #: data/nl.hjdskes.gcolor3.appdata.xml.in:63 msgid "New and updated translations" msgstr "New and updated translations" #: data/nl.hjdskes.gcolor3.appdata.xml.in:64 msgid "Gcolor3 now comes with a manual page" msgstr "Gcolor3 now comes with a manual page" #: data/nl.hjdskes.gcolor3.appdata.xml.in:65 msgid "Lots of under-the-hood improvements" msgstr "Lots of under-the-hood improvements" #: data/nl.hjdskes.gcolor3.appdata.xml.in:74 msgid "Centrally manage colors between several running instances;" msgstr "Centrally manage colours between several running instances;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:75 msgid "" "Follow the XDG directory specification for the configuration file. This " "means that the configuration file has moved from `~/.rgb.ini` to `" "$XDG_CONFIG_HOME/gcolor3/config.ini`;" msgstr "" "Follow the XDG directory specification for the configuration file. This " "means that the configuration file has moved from `~/.rgb.ini` to `" "$XDG_CONFIG_HOME/gcolor3/config.ini`;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:77 msgid "Copy the selected color's hex value from the tree view using Ctrl-C;" msgstr "Copy the selected colour's hex value from the tree view using Ctrl-C;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:78 msgid "Make the main window resizable;" msgstr "Make the main window resizable;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:79 msgid "Translation updates." msgstr "Translation updates." #: data/color-row.ui:46 msgid "Click to change the color's name" msgstr "Click to change the colour's name" #: data/color-row.ui:47 msgid "Name" msgstr "Name" #: data/color-row.ui:68 msgid "Copy this color's hex value to the clipboard" msgstr "Copy this colour's hex value to the clipboard" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Delete this colour" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Keyboard Shortcuts" #: data/menus.ui:11 msgid "_About" msgstr "_About" #: data/menus.ui:15 msgid "_Quit" msgstr "_Quit" #: data/shortcuts.ui:14 msgid "General" msgstr "General" #: data/shortcuts.ui:19 msgid "Change page" msgstr "Change page" #: data/shortcuts.ui:27 msgid "Palette shortcuts" msgstr "Palette shortcuts" #: data/shortcuts.ui:32 msgid "Save currently selected color" msgstr "Save currently selected colour" #: data/shortcuts.ui:40 msgid "Saved color management" msgstr "Saved colour management" #: data/shortcuts.ui:45 msgid "Copy highlighted color's hex value" msgstr "Copy highlighted colour's hex value" #: data/shortcuts.ui:52 msgid "Delete highlighted color" msgstr "Delete highlighted colour" #: data/window.ui:26 msgid "Color name..." msgstr "Colour name..." #: data/window.ui:89 msgid "page0" msgstr "" #: data/window.ui:155 msgid "page1" msgstr "" #: data/window.ui:162 msgid "Saved colors" msgstr "Saved colours" #: src/main.c:43 msgid "Show the application's version" msgstr "Show the application's version" #: src/main.c:54 msgid "- pick a color from the picker or the screen" msgstr "- pick a colour from the picker or the screen" #: src/main.c:65 #, c-format msgid "Run '%s --help' to see a full list of available command line options" msgstr "Run '%s --help' to see a full list of available command line options" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:88 msgid "translator-credits" msgstr "Jente Hidskes" #: src/gcolor3-application.c:89 msgid "Website" msgstr "Website" #: src/gcolor3-color-row.c:76 msgid "Could not parse color to display thumbnail\n" msgstr "Could not parse colour to display thumbnail\n" #: src/gcolor3-color-selection.c:406 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Select the colour you want from the outer ring. Select the darkness or " "lightness of that colour using the inner triangle." #: src/gcolor3-color-selection.c:436 msgid "Picking a color is currently not supported on Wayland." msgstr "Picking a colour is currently not supported on Wayland." #: src/gcolor3-color-selection.c:447 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Click the eyedropper, then click a colour anywhere on your screen to select " "that colour." #: src/gcolor3-color-selection.c:458 msgid "_Hue:" msgstr "_Hue:" #: src/gcolor3-color-selection.c:459 msgid "Position on the color wheel." msgstr "Position on the colour wheel." #: src/gcolor3-color-selection.c:461 msgid "S_aturation:" msgstr "S_aturation:" #: src/gcolor3-color-selection.c:462 msgid "Intensity of the color." msgstr "Intensity of the colour." #: src/gcolor3-color-selection.c:463 msgid "_Value:" msgstr "_Value:" #: src/gcolor3-color-selection.c:464 msgid "Brightness of the color." msgstr "Brightness of the colour." #: src/gcolor3-color-selection.c:465 msgid "_Red:" msgstr "_Red:" #: src/gcolor3-color-selection.c:466 msgid "Amount of red light in the color." msgstr "Amount of red light in the colour." #: src/gcolor3-color-selection.c:467 msgid "_Green:" msgstr "_Green:" #: src/gcolor3-color-selection.c:468 msgid "Amount of green light in the color." msgstr "Amount of green light in the colour." #: src/gcolor3-color-selection.c:469 msgid "_Blue:" msgstr "_Blue:" #: src/gcolor3-color-selection.c:470 msgid "Amount of blue light in the color." msgstr "Amount of blue light in the colour." #: src/gcolor3-color-selection.c:473 msgid "Op_acity:" msgstr "Op_acity:" #: src/gcolor3-color-selection.c:481 src/gcolor3-color-selection.c:491 msgid "Transparency of the color." msgstr "Transparency of the colour." #: src/gcolor3-color-selection.c:498 msgid "Color _name:" msgstr "Colour _name:" #: src/gcolor3-color-selection.c:513 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "You can enter an HTML-style hexadecimal colour value, or simply a colour " "name such as “orange” in this entry." #: src/gcolor3-color-selection.c:545 msgid "_Palette:" msgstr "_Palette:" #: src/gcolor3-color-selection.c:575 msgid "Color Wheel" msgstr "Colour Wheel" #: src/gcolor3-color-selection.c:1040 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "The previously-selected colour, for comparison to the colour you’re " "selecting now. You can drag this colour to a palette entry, or select this " "colour as current by dragging it to the other colour swatch alongside." #: src/gcolor3-color-selection.c:1046 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "The colour you’ve chosen. You can drag this colour to a palette entry to " "save it for use in the future." #: src/gcolor3-color-selection.c:1052 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "The previously-selected colour, for comparison to the colour you’re " "selecting now." #: src/gcolor3-color-selection.c:1056 msgid "The color you’ve chosen." msgstr "The colour you’ve chosen." #: src/gcolor3-color-selection.c:1425 msgid "_Save color here" msgstr "_Save colour here" #: src/gcolor3-color-selection.c:1631 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Click this palette entry to make it the current colour. To change this " "entry, drag a colour swatch here or right-click it and select “Save colour " "here.”" #: src/gcolor3-color-store.c:66 #, c-format msgid "Error creating config directory: %s" msgstr "Error creating config directory: %s" #: src/gcolor3-color-store.c:89 #, c-format msgid "Cannot count number of items: %s\n" msgstr "Cannot count number of items: %s\n" #: src/gcolor3-color-store.c:110 #, fuzzy, c-format msgid "Cannot read colors: %s\n" msgstr "Cannot read colours: %s\n" #: src/gcolor3-color-store.c:124 #, c-format msgid "Cannot access color at position %d: %s\n" msgstr "Cannot access colour at position %d: %s\n" #: src/gcolor3-color-store.c:147 #, c-format msgid "Error writing file: %s" msgstr "Error writing file: %s" #: src/gcolor3-color-store.c:187 #, c-format msgid "" "Error opening file: %s. Colors likely won't be saved, unless this is the " "first run" msgstr "" "Error opening file: %s. Colours likely won't be saved, unless this is the " "first run" #: src/gcolor3-color-store.c:215 src/gcolor3-color-store.c:301 #, c-format msgid "There is already a color named `%s`" msgstr "There is already a colour named `%s`" #: src/gcolor3-color-store.c:222 #, c-format msgid "Cannot locate index of addition: %s. UI won't be updated\n" msgstr "Cannot locate index of addition: %s. UI won't be updated\n" #: src/gcolor3-color-store.c:254 #, c-format msgid "Cannot locate index of removal: %s. UI won't be updated\n" msgstr "Cannot locate index of removal: %s. UI won't be updated\n" #: src/gcolor3-color-store.c:268 #, c-format msgid "Error deleting key: %s" msgstr "Error deleting key: %s" #: src/gcolor3-color-store.c:296 #, c-format msgid "Cannot rename nonexisting color `%s`" msgstr "Cannot rename nonexisting colour `%s`" #: src/gcolor3-color-store.c:306 #, c-format msgid "Cannot retrieve hex value belonging to `%s`: %s" msgstr "Cannot retrieve hex value belonging to `%s`: %s" #: src/gcolor3-color-store.c:312 #, c-format msgid "Error deleting old name `%s`: %s" msgstr "Error deleting old name `%s`: %s" #: src/gcolor3-color-store.c:345 #, c-format msgid "Error reading keys: %s. This is harmless if this is the first run" msgstr "Error reading keys: %s. This is harmless if this is the first run" #: src/gcolor3-window.c:397 msgid "Picker" msgstr "Picker" gcolor3-2.4.0/po/es.po000066400000000000000000000317531372141071500144640ustar00rootroot00000000000000# Spanish translation for Gcolor3 # This file is distributed under the same license as the Gcolor3 package. # Rodrigo , 2018. # Daniel Mustieles , 2018-2019. # msgid "" msgstr "" "Project-Id-Version: 2.2\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-11-02 20:24+0000\n" "PO-Revision-Date: 2019-11-05 15:03+0100\n" "Last-Translator: Daniel Mustieles \n" "Language-Team: Spanish - Spain \n" "Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Gtranslator 3.34.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Selector de color" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Elija colores desde un selector o desde la pantalla" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Color;Selector;Paleta;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 #| msgid "" #| "Ever wanted to know the value of that color on your screen? Gcolor3 " #| "enables you to pick the color from any pixel on your screen. It also " #| "offers a palette, so that you can easily mix and match a couple of colors " #| "together." msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "¿Alguna vez quiso saber el valor de ese color en su pantalla? El selector de " "color le permite elegir el color de cualquier píxel en su pantalla. También " "ofrece una paleta, para que pueda mezclar y combinar fácilmente un par de " "colores." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 #| msgid "" #| "When you have found the perfect combination of colors, naturally you want " #| "to save them. Gcolor3 allows you to conveniently save and retrieve colors." msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Cuando haya encontrado la combinación perfecta de colores, seguramente " "quiera guardarlos. El selector de color le permite guardar y recuperar " "colores cómodamente." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 #| msgid "" #| "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " #| "Gcolor2, but uses the newer GTK+ version and other modernisations to " #| "better integrate into your modern desktop." msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "El selector de color es un diálogo de selección de color escrito en GTK+ 3. " "Se parece mucho a Gcolor2, pero utiliza la versión más nueva de GTK+ y otras " "modernizaciones para integrarse mejor en su escritorio moderno." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "El selector y la paleta de colores" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "La lista de colores guardados" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Hex" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Pulse para cambiar el nombre del color" #: data/color-row.ui:47 msgid "Name" msgstr "Nombre" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Copiar este valor hexadecimal de color al portapapeles" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Eliminar este color" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Atajos de teclado" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_Acerca del selector de color" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "General" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Cambiar página" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Atajos de paleta" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Guardar el color actualmente seleccionado" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Administración de color guardada" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Copiar el valor hexadecimal de color destacado" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Eliminar el color destacado" #: data/window.ui:32 msgid "Color name…" msgstr "Nombre del color…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Guarde un color seleccionado para hacer que aparezca aquí" #: data/window.ui:112 msgid "You have no saved colors" msgstr "No tiene colores guardados" #: data/window.ui:249 msgid "Saved Colors" msgstr "Colores guardados" #: src/main.c:43 msgid "Show the application’s version" msgstr "Mostrar la versión de la aplicación" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— elija un color desde el selector o desde la pantalla" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Ejecute «%s --help» para ver una lista completa de las opciones disponibles" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "" "Daniel Mustieles , 2019\n" "Rodrigo Lledó , 2018\n" "Xoan Sampaiño " #: src/gcolor3-application.c:91 msgid "Website" msgstr "Sitio web" #: src/gcolor3-color-selection.c:408 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Seleccione el color que quiere desde el anillo exterior. Seleccione la " "oscuridad o luminosidad de ese color usando el triángulo interior." #: src/gcolor3-color-selection.c:438 msgid "Picking a color is currently not supported on Wayland." msgstr "Seleccionar un color no está soportado actualmente en Wayland." #: src/gcolor3-color-selection.c:449 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Pulse en el cuentagotas y luego pulse en un color en cualquier lugar de la " "pantalla para seleccionar ese color." #: src/gcolor3-color-selection.c:460 msgid "_Hue:" msgstr "_Tono:" #: src/gcolor3-color-selection.c:461 msgid "Position on the color wheel." msgstr "Posición en la rueda de color." #: src/gcolor3-color-selection.c:463 msgid "S_aturation:" msgstr "S_aturación:" #: src/gcolor3-color-selection.c:464 msgid "Intensity of the color." msgstr "Intensidad del color." #: src/gcolor3-color-selection.c:465 msgid "_Value:" msgstr "_Valor:" #: src/gcolor3-color-selection.c:466 msgid "Brightness of the color." msgstr "Brillo del color." #: src/gcolor3-color-selection.c:467 msgid "_Red:" msgstr "_Rojo:" #: src/gcolor3-color-selection.c:468 msgid "Amount of red light in the color." msgstr "Cantidad de luz roja en el color." #: src/gcolor3-color-selection.c:469 msgid "_Green:" msgstr "_Verde:" #: src/gcolor3-color-selection.c:470 msgid "Amount of green light in the color." msgstr "Cantidad de luz verde en el color." #: src/gcolor3-color-selection.c:471 msgid "_Blue:" msgstr "_Azul:" #: src/gcolor3-color-selection.c:472 msgid "Amount of blue light in the color." msgstr "Cantidad de luz azul en el color." #: src/gcolor3-color-selection.c:475 msgid "Op_acity:" msgstr "Op_acidad:" #: src/gcolor3-color-selection.c:483 src/gcolor3-color-selection.c:493 msgid "Transparency of the color." msgstr "Transparencia del color." #: src/gcolor3-color-selection.c:500 msgid "Color _Name:" msgstr "_Nombre del color:" #: src/gcolor3-color-selection.c:515 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Puede introducir un valor de color hexadecimal de estilo HTML o simplemente " "un nombre de color como «naranja» en esta entrada." #: src/gcolor3-color-selection.c:547 msgid "_Palette:" msgstr "_Paleta:" #: src/gcolor3-color-selection.c:577 msgid "Color Wheel" msgstr "Rueda de color" #: src/gcolor3-color-selection.c:1040 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "El color seleccionado previamente, para comparar con el color que está " "seleccionando ahora. Puede arrastrar este color a una entrada de paleta o " "seleccionar este color como actual arrastrándolo junto a la otra muestra de " "color." #: src/gcolor3-color-selection.c:1046 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "El color que ha elegido. Puede arrastrar este color a una entrada de la " "paleta o guardarlo para usarlo más tarde." #: src/gcolor3-color-selection.c:1052 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "El color seleccionado previamente, para comparar con el color que está " "seleccionando ahora." #: src/gcolor3-color-selection.c:1056 msgid "The color you’ve chosen." msgstr "El color que ha elegido." #: src/gcolor3-color-selection.c:1424 msgid "_Save color here" msgstr "_Guardar color aquí" #: src/gcolor3-color-selection.c:1630 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Pulse en esta entrada de la paleta para que sea el color actual. Para " "cambiar esta entrada, arrastre una muestra de color aquí o pulse con el " "botón derecho y seleccione «Guardar color aquí»." #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Selector" #~ msgid "nl.hjdskes.gcolor3" #~ msgstr "nl.hjdskes.gcolor3" #~ msgid "Jente Hidskes" #~ msgstr "Jente Hidskes" #~ msgid "_About" #~ msgstr "A_cerca de" #~ msgid "_Quit" #~ msgstr "_Salir" #~ msgid "Centrally manage colors between several running instances;" #~ msgstr "" #~ "Gestiona los colores de forma centralizada entre varias instancias en " #~ "ejecución;" #~ msgid "" #~ "Follow the XDG directory specification for the configuration file. This " #~ "means that the configuration file has moved from `~/.rgb.ini` to `" #~ "$XDG_CONFIG_HOME/gcolor3/config.ini`;" #~ msgstr "" #~ "Seguir las especificaciones de directorio XDG para el archivo de " #~ "configuración. Esto significa que el archivo de configuración se ha " #~ "movido de `~/.rgb.ini` a`$XDG_CONFIG_HOME/gcolor3/config.ini`;" #~ msgid "Copy the selected color's hex value from the tree view using Ctrl-C;" #~ msgstr "" #~ "Copie el valor hexadecimal del color seleccionado desde la vista de árbol " #~ "usando Ctrl-C;" #~ msgid "Make the main window resizable;" #~ msgstr "Hacer que la ventana principal sea redimensionable;" #~ msgid "Translation updates." #~ msgstr "Actualizaciones de la traducción." #~ msgid "Error creating config directory: %s" #~ msgstr "" #~ "Se ha producido un error al crear el directorio de configuración: %s" #~ msgid "Error writing file: %s" #~ msgstr "Se ha producido un error al escribir el fichero: %s" #~ msgid "Error opening file: %s. Colors likely won't be saved" #~ msgstr "" #~ "Se ha producido un error al abrir el fichero: %s. Probablemente no se " #~ "guardarán los colores" #~ msgid "There is already a color named `%s`" #~ msgstr "Ya existe un color llamado «%s»" #~ msgid "Error deleting key: %s" #~ msgstr "Se ha producido un error al borrar la clave: %s" #~ msgid "Cannot rename nonexisting color `%s`" #~ msgstr "No se ha podido renombrar el color «%s» no existente" #~ msgid "Cannot retrieve hex value belonging to `%s`: %s" #~ msgstr "No se ha podido recuperar el valor hexadecimal del color «%s»: %s" #~ msgid "Error deleting old name `%s`: %s" #~ msgstr "Se ha producido un error al borrar el nombre antiguo «%s»: %s" #~ msgid "Error reading keys: %s" #~ msgstr "Se ha producido un error al leer las claves: %s" #~ msgid "The model is empty; there are no colors to remove" #~ msgstr "El modelo está vacío; no hay colores para eliminar" #~ msgid "Cannot update color: invalid path" #~ msgstr "No se ha podido actualizar el color: ruta no válida" gcolor3-2.4.0/po/eu.po000066400000000000000000000216701372141071500144630ustar00rootroot00000000000000# Basque translation for gcolor3. # Copyright (C) 2019 gcolor3's COPYRIGHT HOLDER # This file is distributed under the same license as the gcolor3 package. # Asier Sarasua Garmendia , 2019. # msgid "" msgstr "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-09-08 10:51+0000\n" "PO-Revision-Date: 2019-09-19 10:00+0100\n" "Last-Translator: Asier Sarasua Garmendia \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Kolore-hautatzailea" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Aukeratu koloreak hautatzailetik edo pantailatik" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Kolorea;hautatzailea;Paleta;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Hautatzailea eta kolore-paleta" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Gordetako koloreen zerrenda" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Jente Hidskes" msgstr "Jente Hidskes" #: data/color-row.ui:31 msgid "Hex" msgstr "Hamaseitarra" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Klik kolorearen izena aldatzeko" #: data/color-row.ui:47 msgid "Name" msgstr "Izena" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Kopiatu kolore honen hex balioa arbelean" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Ezabatu kolore hau" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "Las_ter-teklak" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_Color Picker aplikazioari buruz" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Orokorra" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Aldatu orria" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Paletaren lasterbideak" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Gorde unean hautatutako kolorea" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Gordetako kolore-kudeaketa" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Kopiatu nabarmendutako kolorearen hex balioa" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Ezabatu nabarmendutako kolorea" #: data/window.ui:32 msgid "Color name…" msgstr "Kolorearen izena…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Gorde hautatutako kolore bat hemen ager dadin" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Ez duzu gordetako kolorerik" #: data/window.ui:249 msgid "Saved Colors" msgstr "Gordetako koloreak" #: src/main.c:43 msgid "Show the application’s version" msgstr "Erakutsi aplikazioaren bertsioa" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— aukeratu kolore bat hautatzailetik edo pantailatik" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "Exekutatu “%s --help” komando-lerroko aukera guztiak zerrendatzeko" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "Asier Sarasua Garmendia " #: src/gcolor3-application.c:91 msgid "Website" msgstr "Webgunea" #: src/gcolor3-color-selection.c:409 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "Hautatu nahi duzun kolorea kanpoko biribiletik. Hautatu kolore horren iluntasuna edo argitasuna barruko triangelua erabiliz" #: src/gcolor3-color-selection.c:439 msgid "Picking a color is currently not supported on Wayland." msgstr "Kolorea hautatzea ez dago oraindik onartuta Wayland pean." #: src/gcolor3-color-selection.c:450 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "Egin klik tanta-kontagailuan, eta egin klik zure pantailako edozein koloretan kolore hori hautatzeko." #: src/gcolor3-color-selection.c:461 msgid "_Hue:" msgstr "_Ñabardura:" #: src/gcolor3-color-selection.c:462 msgid "Position on the color wheel." msgstr "Kolore-gurpileko kokalekua." #: src/gcolor3-color-selection.c:464 msgid "S_aturation:" msgstr "_Saturazioa:" #: src/gcolor3-color-selection.c:465 msgid "Intensity of the color." msgstr "Kolorearen intentsitatea." #: src/gcolor3-color-selection.c:466 msgid "_Value:" msgstr "_Balioa:" #: src/gcolor3-color-selection.c:467 msgid "Brightness of the color." msgstr "Kolorearen distira." #: src/gcolor3-color-selection.c:468 msgid "_Red:" msgstr "_Gorria:" #: src/gcolor3-color-selection.c:469 msgid "Amount of red light in the color." msgstr "Argi gorriaren kantitatea kolorean." #: src/gcolor3-color-selection.c:470 msgid "_Green:" msgstr "Be_rdea:" #: src/gcolor3-color-selection.c:471 msgid "Amount of green light in the color." msgstr "Argi berdearen kantitatea kolorean." #: src/gcolor3-color-selection.c:472 msgid "_Blue:" msgstr "_Urdina:" #: src/gcolor3-color-selection.c:473 msgid "Amount of blue light in the color." msgstr "Argi urdinaren kantitatea kolorean." #: src/gcolor3-color-selection.c:476 msgid "Op_acity:" msgstr "_Opakutasuna:" #: src/gcolor3-color-selection.c:484 src/gcolor3-color-selection.c:494 msgid "Transparency of the color." msgstr "Kolorearen gardentasuna." #: src/gcolor3-color-selection.c:501 msgid "Color _Name:" msgstr "Kolorearen _izena:" #: src/gcolor3-color-selection.c:516 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "HTML estiloko kolore-balio hamaseitarra sar dezakezu edo bestela kolore baten izena, adibidez 'laranja', sarrera honetan." #: src/gcolor3-color-selection.c:548 msgid "_Palette:" msgstr "_Paleta:" #: src/gcolor3-color-selection.c:578 msgid "Color Wheel" msgstr "Kolore-gurpila" #: src/gcolor3-color-selection.c:1043 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "Aurrez hautatutako kolorea orain hautatzen ari zaren kolorearekin konparatzeko. Kolore hori paleta-sarrerara arrasta dezakezu edo kolore hori uneko kolore gisa hauta dezakezu, koloreen ondoko lagin-multzora arrastatuz." #: src/gcolor3-color-selection.c:1049 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "Hautatu duzun kolorea. Kolore hori paleta-sarrerara arrasta dezakezu eta han gorde aurrerago erabiltzeko." #: src/gcolor3-color-selection.c:1055 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "Aurrez hautatutako kolorea, orain hautatzen ari zaren kolorearekin konparatzeko." #: src/gcolor3-color-selection.c:1059 msgid "The color you’ve chosen." msgstr "Aukeratu duzun kolorea." #: src/gcolor3-color-selection.c:1428 msgid "_Save color here" msgstr "_Gorde kolorea hemen" #: src/gcolor3-color-selection.c:1634 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "Egin klik paleta-sarrera honetan uneko kolore bihurtzeko. Sarrera hori aldatzeko, arrastatu koloreen lagin-multzoa hona edo egin klik eskuineko botoiarekin eta hautatu \"Gorde kolorea hemen.\"" #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Hautatzailea" gcolor3-2.4.0/po/fi.po000066400000000000000000000216321372141071500144460ustar00rootroot00000000000000# Finnish translation for gcolor3. # Copyright (C) 2018 gcolor3's COPYRIGHT HOLDER # This file is distributed under the same license as the gcolor3 package. # Jiri Grönroos , 2018. # msgid "" msgstr "" "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-11-16 21:30+0000\n" "PO-Revision-Date: 2020-03-08 13:29+0200\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 2.3\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Värivalitsin" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Valitse värejä valitsimesta tai näytöltä" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Color;Picker;Palette;väri;valitsin;paletti;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Oletko koskaan halunnut tietää jonkin yksittäisen näytölläsi näkyvän värin " "arvon? Värivalitsin mahdollistaa värin poimimisen yksittäisistä " "kuvapisteistä. Se tarjoaa myös paletin, joten voi yhdistellä eri värejä." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Kun olet löytänyt täydellisen väriyhdistelmän, voit tallentaa värit. " "Värivalitsin mahdollistaa vaivattoman väriarvojen tallentamisen ja " "palauttamisen." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Värivalitsin on värin valintaikkuna, joka on toteutettu GTK+ 3:lla. Se on " "kuten Gcolor2, mutta käyttää uudempaa GTK-versiota ja muita uusia " "teknologioita, jotka mahdollistavat integraation nykyaikaiseen työpöytään." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Valitsin ja väripaletti" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Luettelo tallennetuista väreistä" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Heksa" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Napsauta vaihtaaksesi värin nimeä" #: data/color-row.ui:47 msgid "Name" msgstr "Nimi" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Kopioi tämän värin heksa-arvo leikepöydälle" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Poista tämä väri" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Pikanäppäimet" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_Tietoja - Värivalitsin" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Yleiset" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Vaihda sivua" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Paletin pikavalinnat" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Tallenna valittu väri" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Tallennetujen värien hallinta" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Kopioi korostetun värin heksa-arvo" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Poista korostettu väri" #: data/window.ui:32 msgid "Color name…" msgstr "Värin nimi…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Tallenna valittu väri asettaaksesi sen tänne näkyviin" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Ei tallennettuja värejä" #: data/window.ui:249 msgid "Saved Colors" msgstr "Tallennetut värit" #: src/main.c:43 msgid "Show the application’s version" msgstr "Näytä sovelluksen versio" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— valitse väri valitsimesta tai näytöltä" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "Näet kaikki komentorivivalitsimet komennolla “%s --help”" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "Jiri Grönroos" #: src/gcolor3-application.c:91 msgid "Website" msgstr "Verkkosivusto" #: src/gcolor3-color-selection.c:361 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" #: src/gcolor3-color-selection.c:387 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" #: src/gcolor3-color-selection.c:397 msgid "_Hue:" msgstr "_Sävy:" #: src/gcolor3-color-selection.c:398 msgid "Position on the color wheel." msgstr "" #: src/gcolor3-color-selection.c:400 msgid "S_aturation:" msgstr "_Kylläisyys:" #: src/gcolor3-color-selection.c:401 msgid "Intensity of the color." msgstr "Värin intensiteetti." #: src/gcolor3-color-selection.c:402 msgid "_Value:" msgstr "_Arvo:" #: src/gcolor3-color-selection.c:403 msgid "Brightness of the color." msgstr "Värin kirkkaus." #: src/gcolor3-color-selection.c:404 msgid "_Red:" msgstr "_Punainen:" #: src/gcolor3-color-selection.c:405 msgid "Amount of red light in the color." msgstr "Punaisen valon määrä värissä." #: src/gcolor3-color-selection.c:406 msgid "_Green:" msgstr "_Vihreä:" #: src/gcolor3-color-selection.c:407 msgid "Amount of green light in the color." msgstr "Vihreän valon määrä värissä." #: src/gcolor3-color-selection.c:408 msgid "_Blue:" msgstr "_Sininen:" #: src/gcolor3-color-selection.c:409 msgid "Amount of blue light in the color." msgstr "Sinisen valon määrä värissä." #: src/gcolor3-color-selection.c:412 msgid "Op_acity:" msgstr "Peittokyk_y:" #: src/gcolor3-color-selection.c:420 src/gcolor3-color-selection.c:430 msgid "Transparency of the color." msgstr "Värin läpinäkyvyys." #: src/gcolor3-color-selection.c:437 msgid "Color _Name:" msgstr "Värin _nimi:" #: src/gcolor3-color-selection.c:452 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Voit kirjoittaa HTML-tyyliin heksadesimaalina väriarvon, tai kirjoittaa " "värin englanninkielisen nimen kuten \"orange\"." #: src/gcolor3-color-selection.c:484 msgid "_Palette:" msgstr "_Paletti:" #: src/gcolor3-color-selection.c:514 msgid "Color Wheel" msgstr "Väriympyrä" #: src/gcolor3-color-selection.c:964 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" #: src/gcolor3-color-selection.c:970 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" #: src/gcolor3-color-selection.c:976 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" #: src/gcolor3-color-selection.c:980 msgid "The color you’ve chosen." msgstr "Valitsemasi väri." #: src/gcolor3-color-selection.c:1348 msgid "_Save color here" msgstr "_Tallenna väri tähän" #: src/gcolor3-color-selection.c:1554 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Valitsin" #~ msgid "nl.hjdskes.gcolor3" #~ msgstr "nl.hjdskes.gcolor3" #~ msgid "Jente Hidskes" #~ msgstr "Jente Hidskes" #~ msgid "Picking a color is currently not supported on Wayland." #~ msgstr "Värin valitsiminen ei ole tällä hetkellä tuettu Wayland-istunnossa." #~ msgid "_About" #~ msgstr "_Tietoja" #~ msgid "_Quit" #~ msgstr "_Lopeta" gcolor3-2.4.0/po/fr.po000066400000000000000000000344341372141071500144630ustar00rootroot00000000000000# French translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. # Sébastien 'sogal' Poher , 2018. # msgid "" msgstr "" "Project-Id-Version: 2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-12 21:42+0200\n" "PO-Revision-Date: 2018-12-15 23:39+0100\n" "Last-Translator: Sébastien 'sogal' Poher \n" "Language-Team: français <>\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 2.91.7\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:145 msgid "Color picker" msgstr "Sélecteur de couleur" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:84 msgid "Choose colors from the picker or the screen" msgstr "Choisissez les couleurs depuis le sélecteur ou l’écran" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: data/nl.hjdskes.gcolor3.desktop.in:7 msgid "nl.hjdskes.gcolor3" msgstr "" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Couleur;Sélecteur;Palette" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" "Avez-vous déjà eu envie d'obtenir la valeur d'une couleur ? Gcolor3 vous " "permet d'obtenir la couleur de n'importe quel pixel de votre écran. Il offre " "aussi une palette permettant d'aisément mélanger et assortir ces couleurs." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" "Après avoir trouvé la combinaison parfaite, vous ne voulez évidemment pas la " "perdre. Gcolor3 permet efficacement de sauvegarder puis récupérer vos " "couleurs." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Gcolor3 est un sélecteur de couleurs écrit en GTK+ 3. Il est largement " "semblable à Gcolor2 mais utilise une version plus récente de GTK+. Il " "implémente aussi d'autres améliorations afin de mieux s'intégrer dans les " "environnements de bureau modernes." #: data/nl.hjdskes.gcolor3.appdata.xml.in:33 msgid "The picker and the color palette" msgstr "Sélecteur et palette" #: data/nl.hjdskes.gcolor3.appdata.xml.in:37 msgid "The list of saved colors" msgstr "Liste des couleurs sauvegardées" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:44 msgid "Jente Hidskes" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:58 msgid "Redesign the saved colors page" msgstr "Réagencement de la page des couleurs sauvegardées" #: data/nl.hjdskes.gcolor3.appdata.xml.in:59 msgid "Redesign the header bar" msgstr "Réagencement de la barre d'en-tête" #: data/nl.hjdskes.gcolor3.appdata.xml.in:60 msgid "Disable color picking on Wayland for now, instead of crashing" msgstr "" "Désactivation du sélecteur de couleur sous Wayland pour l'instant au lieu de " "crasher" #: data/nl.hjdskes.gcolor3.appdata.xml.in:61 msgid "Add a shortcuts window" msgstr "Ajout d'une fenêtre des raccourcis" #: data/nl.hjdskes.gcolor3.appdata.xml.in:62 msgid "Gcolor3 is now available as a Flatpak" msgstr "Gcolor3 est maintenant disponible via Flatpak" #: data/nl.hjdskes.gcolor3.appdata.xml.in:63 msgid "New and updated translations" msgstr "Ajout et mise à jour des traductions" #: data/nl.hjdskes.gcolor3.appdata.xml.in:64 msgid "Gcolor3 now comes with a manual page" msgstr "Gcolor3 dispose à présent d'une page de manuel" #: data/nl.hjdskes.gcolor3.appdata.xml.in:65 msgid "Lots of under-the-hood improvements" msgstr "Nombreux améliorations sous le capot" #: data/nl.hjdskes.gcolor3.appdata.xml.in:74 msgid "Centrally manage colors between several running instances;" msgstr "Gestion centralisée des couleurs entre plusieurs instances ;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:75 msgid "" "Follow the XDG directory specification for the configuration file. This " "means that the configuration file has moved from `~/.rgb.ini` to `" "$XDG_CONFIG_HOME/gcolor3/config.ini`;" msgstr "" "Suivi de la spécification des dossiers XDG. Cela signifie que le fichier de " "configuration est déplacé depuis `~/.rgb.ini` vers `$XDG_CONFIG_HOME/gcolor3/" "config.ini` ;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:77 msgid "Copy the selected color's hex value from the tree view using Ctrl-C;" msgstr "" "Copie de la valeur hexadécimale de la couleur sélectionnée via Ctrl-C ;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:78 msgid "Make the main window resizable;" msgstr "La fenêtre principale devient redimensionnable ;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:79 msgid "Translation updates." msgstr "Mise à jour des traductions." #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Cliquer pour changer le nom de la couleur" #: data/color-row.ui:47 msgid "Name" msgstr "Nom" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Copier la valeur hexadécimale de cette couleur" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Supprimer cette couleur" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Raccourcis clavier" #: data/menus.ui:11 msgid "_About" msgstr "_À propos" #: data/menus.ui:15 msgid "_Quit" msgstr "_Quitter" #: data/shortcuts.ui:14 msgid "General" msgstr "Géneral" #: data/shortcuts.ui:19 msgid "Change page" msgstr "Changer de page" #: data/shortcuts.ui:27 msgid "Palette shortcuts" msgstr "Raccourcis de la palette" #: data/shortcuts.ui:32 msgid "Save currently selected color" msgstr "Enregistrer la couleur sélectionnée" #: data/shortcuts.ui:40 msgid "Saved color management" msgstr "Gestion des couleurs enregistrées" #: data/shortcuts.ui:45 msgid "Copy highlighted color's hex value" msgstr "Copier la valeur hexadécimale de la couleur sélectionnée" #: data/shortcuts.ui:52 msgid "Delete highlighted color" msgstr "Supprimer la couleur sélectionnée" #: data/window.ui:25 msgid "Color name…" msgstr "Nom de la couleur…" #: data/window.ui:76 msgid "Save a picked color to make it appear here" msgstr "Enregistrez une couleur sélectionnée pour la faire apparaître ici" #: data/window.ui:94 msgid "You have no saved colors" msgstr "Vous n'avez pas de couleurs enregistrées" #: data/window.ui:231 msgid "Saved colors" msgstr "Couleurs enregistrées" #: src/main.c:43 msgid "Show the application's version" msgstr "Afficher la version de l’application" #: src/main.c:54 msgid "- pick a color from the picker or the screen" msgstr "- choisir une couleur depuis le sélecteur ou l’écran" #: src/main.c:65 #, c-format msgid "Run '%s --help' to see a full list of available command line options" msgstr "" "Utilisez '%s --help' pour voir une liste complète des options disponibles en " "ligne de commande" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:88 msgid "translator-credits" msgstr "" "Nicolas Gaulard-Querol\n" "Timothée Floure\n" "Sébastien Poher" #: src/gcolor3-application.c:89 msgid "Website" msgstr "Site web" #: src/gcolor3-color-selection.c:409 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Sélectionner la couleur de votre choix dans l'anneau extérieur puis ajuster " "le niveau de luminosité de celle-ci grâce au triangle." #: src/gcolor3-color-selection.c:439 msgid "Picking a color is currently not supported on Wayland." msgstr "" "La sélection d'une couleur n'est actuellement pas prise en charge sous " "Wayland." #: src/gcolor3-color-selection.c:450 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Cliquer sur la pipette puis cliquer sur une couleur n'importe où sur votre " "écran pour sélectionner cette couleur." #: src/gcolor3-color-selection.c:461 msgid "_Hue:" msgstr "_Teinte:" #: src/gcolor3-color-selection.c:462 msgid "Position on the color wheel." msgstr "Position dans la roue des couleurs." #: src/gcolor3-color-selection.c:464 msgid "S_aturation:" msgstr "S_aturation:" #: src/gcolor3-color-selection.c:465 msgid "Intensity of the color." msgstr "Intensité de la couleur." #: src/gcolor3-color-selection.c:466 msgid "_Value:" msgstr "_Valeur:" #: src/gcolor3-color-selection.c:467 msgid "Brightness of the color." msgstr "Luminosité de la couleur." #: src/gcolor3-color-selection.c:468 msgid "_Red:" msgstr "_Rouge:" #: src/gcolor3-color-selection.c:469 msgid "Amount of red light in the color." msgstr "Niveau de rouge dans la couleur." #: src/gcolor3-color-selection.c:470 msgid "_Green:" msgstr "_Vert:" #: src/gcolor3-color-selection.c:471 msgid "Amount of green light in the color." msgstr "Niveau de vert dans la couleur." #: src/gcolor3-color-selection.c:472 msgid "_Blue:" msgstr "_Bleu:" #: src/gcolor3-color-selection.c:473 msgid "Amount of blue light in the color." msgstr "Niveau de bleu dans la couleur." #: src/gcolor3-color-selection.c:476 msgid "Op_acity:" msgstr "Op_acité:" #: src/gcolor3-color-selection.c:484 src/gcolor3-color-selection.c:494 msgid "Transparency of the color." msgstr "Transparence de la couleur." #: src/gcolor3-color-selection.c:501 msgid "Color _name:" msgstr "_Nom de la couleur:" #: src/gcolor3-color-selection.c:516 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Vous pouvez saisir ici la valeur d'une couleur au format hexadécimal HTML ou " "simplement son nom comme, par exemple, « orange »." #: src/gcolor3-color-selection.c:548 msgid "_Palette:" msgstr "_Palette:" #: src/gcolor3-color-selection.c:578 msgid "Color Wheel" msgstr "Roue des couleurs" #: src/gcolor3-color-selection.c:1043 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Couleur précédemment sélectionnée, pour comparaison avec la couleur " "actuellement active. Vous pouvez glisser cette couleur vers la palette ou " "rendre cette couleur active en la glissant vers l'autre échantillon de " "couleur." #: src/gcolor3-color-selection.c:1049 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "La couleur choisie. Vous pouvez glisser cette couleur vers une palette afin " "de l'enregistrer pour un usage futur." #: src/gcolor3-color-selection.c:1055 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "Couleur précédemment sélectionnée, pour comparaison avec la couleur " "actuellement active." #: src/gcolor3-color-selection.c:1059 msgid "The color you’ve chosen." msgstr "La couleur choisie." #: src/gcolor3-color-selection.c:1428 msgid "_Save color here" msgstr "_Enregistrer la couleur ici" #: src/gcolor3-color-selection.c:1634 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Cliquer sur la palette pour en faire la couleur active. Pour modifier cette " "couleur, glisser un échantillon de couleur ici ou faire un clic-droit puis " "« Enregistrer la couleur ici »." #: src/gcolor3-window.c:401 src/gcolor3-window.c:397 msgid "Picker" msgstr "Sélecteur" #: src/gcolor3-color-store.c:89 #, c-format msgid "Cannot count number of items: %s\n" msgstr "Impossible de calculer le nombre d'éléments: %s\n" #: src/gcolor3-color-store.c:110 #, c-format msgid "Cannot read colors: %s\n" msgstr "Impossible de lire les couleurs: %s\n" #: src/gcolor3-color-store.c:124 #, c-format msgid "Cannot access color at position %d: %s\n" msgstr "Impossible d'accéder à la couleur à la position %d: %s\n" #: src/gcolor3-color-store.c:147 #, c-format msgid "Error writing file: %s" msgstr "Erreur lors de l’écriture du fichier: %s" #: src/gcolor3-color-store.c:187 #, c-format msgid "" "Error opening file: %s. Colors likely won't be saved, unless this is the " "first run" msgstr "" "Erreur lors de l'ouverture du fichier: %s. Les couleurs ne seront pas " "sauvegardées à moins que cela soit la première exécution." #: src/gcolor3-color-store.c:215 src/gcolor3-color-store.c:301 #, c-format msgid "There is already a color named `%s`" msgstr "Il y a déjà une couleur nommée `%s`" #: src/gcolor3-color-store.c:222 #, c-format msgid "Cannot locate index of addition: %s. UI won't be updated\n" msgstr "" "Impossible de trouver l'index de l'ajout: %s. L'interface graphique ne sera " "pas rafraîchie\n" #: src/gcolor3-color-store.c:254 #, c-format msgid "Cannot locate index of removal: %s. UI won't be updated\n" msgstr "" "Impossible de trouver l'index de la suppression: %s. L'interface graphique " "ne sera pas rafraîchie\n" #: src/gcolor3-color-store.c:268 #, c-format msgid "Error deleting key: %s" msgstr "Erreur lors de la suppression de la clé: %s" #: src/gcolor3-color-store.c:296 #, c-format msgid "Cannot rename nonexisting color `%s`" msgstr "Impossible de renommer `%s` : couleur inexistante" #: src/gcolor3-color-store.c:306 #, c-format msgid "Cannot retrieve hex value belonging to `%s`: %s" msgstr "Impossible d'extraire la valeur hexadécimale appartenant à `%s`: %s" #: src/gcolor3-color-store.c:312 #, c-format msgid "Error deleting old name `%s`: %s" msgstr "Erreur lors de la suppression de la clé `%s` : %s " #: src/gcolor3-color-store.c:345 #, c-format msgid "Error reading keys: %s. This is harmless if this is the first run" msgstr "" "Impossible de lire la clé: %s. Ceci n'est pas grave s'il s'agît de la " "première exécution du logiciel" gcolor3-2.4.0/po/fur.po000066400000000000000000000230511372141071500146410ustar00rootroot00000000000000# Friulian translation for gcolor3. # Copyright (C) 2020 gcolor3's COPYRIGHT HOLDER # This file is distributed under the same license as the gcolor3 package. # Fabio Tomat , 2020. # msgid "" msgstr "" "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-12-25 16:36+0000\n" "PO-Revision-Date: 2020-01-08 10:38+0100\n" "Language-Team: Friulian \n" "Language: fur\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Last-Translator: Fabio Tomat \n" "X-Generator: Poedit 2.2.4\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Seletôr colôr" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Sielç i colôrs dal seletôr o dal schermi" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Colôr;Seletôr;Palete;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Âstu mai volût savê il valôr di chel colôr sul to schermi? Seletôr colôr ti " "permet di cjoli il colôr di cualsisei pixel sul schermi. Al ufrìs ancje une " "palete, in mût di podê miscliçâ in mût facil e cumbinâ une cubie di colôrs " "adun." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Cuant che tu âs cjatât la cumbinazion perfete di colôrs, al è sigûr che tu " "desideredis salvâju. Seletôr colôr ti permet di salvâ e recuperâ chei colôrs." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Seletôr colôr al è un dialic di selezion dai colôrs scrit in GTK+ 3. Al è " "une vore simil a Gcolor2, ma al dopre la gnove version di GTK+ e altris " "inzornaments par integrâsi miôr sul scritori moderni." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Il seletôr e la palete dai colôrs" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "La liste dai colôrs salvâts" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Esadecimâl" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Fâs clic par cambiâ il non dal colôr" #: data/color-row.ui:47 msgid "Name" msgstr "Non" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Copie chest valôr esadecimâl dal colôr intes notis" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Elimine chest colôr" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Scurtis di tastiere" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_Informazions su Seletôr colôr" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Gjenerâl" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Cambie pagjine" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Scurtis de palete" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Salve il colôr cumò selezionât" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Salve la gjestion colôrs" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Cope il valôr esadecimâl dal colôr evidenziât" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Elimine il colôr evidenziât" #: data/window.ui:32 msgid "Color name…" msgstr "Non dal colôr…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Salve une colôr selezionât par fâlu vignî fûr achì" #: data/window.ui:112 msgid "You have no saved colors" msgstr "No tu âs colôrs salvâts" #: data/window.ui:249 msgid "Saved Colors" msgstr "Colôrs salvâts" #: src/main.c:43 msgid "Show the application’s version" msgstr "Mostre la version de aplicazion" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— sielç un colôr dal seletôr o dal schermi" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Eseguìs “%s --help” par viodi une liste complete des opzions a rie di comant " "disponibilis" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "Fabio Tomat , 2020" #: src/gcolor3-application.c:91 msgid "Website" msgstr "Sît web" #: src/gcolor3-color-selection.c:361 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Selezione il colôr che si desidere dal anel esterni. Selezion la scuretât o " "la luminositât di chel colôr doprant il triangul interni." #: src/gcolor3-color-selection.c:387 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Fâs clic sul contegotis, dopo fâs clic dulà che tu vûs tal schermi par " "selezionâ il colôr che al sta lì." #: src/gcolor3-color-selection.c:397 msgid "_Hue:" msgstr "_Tonalitât:" #: src/gcolor3-color-selection.c:398 msgid "Position on the color wheel." msgstr "Posizion te ruede dal colôr." #: src/gcolor3-color-selection.c:400 msgid "S_aturation:" msgstr "S_aturazion:" #: src/gcolor3-color-selection.c:401 msgid "Intensity of the color." msgstr "Intensitât dal colôr." #: src/gcolor3-color-selection.c:402 msgid "_Value:" msgstr "_Valôr:" #: src/gcolor3-color-selection.c:403 msgid "Brightness of the color." msgstr "Luminositât dal colôr." #: src/gcolor3-color-selection.c:404 msgid "_Red:" msgstr "_Ros:" #: src/gcolor3-color-selection.c:405 msgid "Amount of red light in the color." msgstr "Cuantitât di lûs rosse tal colôr." #: src/gcolor3-color-selection.c:406 msgid "_Green:" msgstr "_Vert:" #: src/gcolor3-color-selection.c:407 msgid "Amount of green light in the color." msgstr "Cuantitât di lûs verde tal colôr." #: src/gcolor3-color-selection.c:408 msgid "_Blue:" msgstr "_Blu:" #: src/gcolor3-color-selection.c:409 msgid "Amount of blue light in the color." msgstr "Cuantitât di lûs blu tal colôr." #: src/gcolor3-color-selection.c:412 msgid "Op_acity:" msgstr "Op_acitât:" #: src/gcolor3-color-selection.c:420 src/gcolor3-color-selection.c:430 msgid "Transparency of the color." msgstr "Trasparence dal colôr." #: src/gcolor3-color-selection.c:437 msgid "Color _Name:" msgstr "_Non colôr:" #: src/gcolor3-color-selection.c:452 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Si pues inserî, in cheste vôs, un valôr di colôr esadecimâl in stîl HTML o " "semplicementri un non di colôr come “narant”." #: src/gcolor3-color-selection.c:484 msgid "_Palette:" msgstr "_Palete:" #: src/gcolor3-color-selection.c:514 msgid "Color Wheel" msgstr "Ruede colôr" #: src/gcolor3-color-selection.c:964 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Il colôr selezionât prime, par comparazion cul colôr che si sta selezionant. " "Si pues strissinâ chest colôr suntun spazi de palete o selezionâ chest colôr " "come atuâl strisinantlu in bande dal altri campion di colôr." #: src/gcolor3-color-selection.c:970 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Il colôr che si è sielt. Si pues strissinâ chest colôr suntun spazi de " "palete par salvâlu par un ûs plui indenant." #: src/gcolor3-color-selection.c:976 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "Il colôr selezionât prime, par comparazion cul colôr che si sta selezionant " "cumò." #: src/gcolor3-color-selection.c:980 msgid "The color you’ve chosen." msgstr "Il colôr che si à sielt." #: src/gcolor3-color-selection.c:1348 msgid "_Save color here" msgstr "_Salve il colôr achì" #: src/gcolor3-color-selection.c:1554 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Fâs clic su chest spazi de palete par fâlu deventâ il colôr atuâl. Par " "cambiâ chest spazi, strissine un campion colôr achì o fâsi un clic diestri e " "selezion “Salve colôr achì.”" #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Seletôr" gcolor3-2.4.0/po/gl.po000066400000000000000000000131031372141071500144440ustar00rootroot00000000000000# Galician translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. msgid "" msgstr "" "Project-Id-Version: 2.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-01-18 11:54+0100\n" "PO-Revision-Date: 2018-01-18 12:15+0100\n" "Last-Translator: Xoan Sampaiño \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 2.0.5\n" #: ../data/nl.hjdskes.gcolor3.desktop.in.in.h:1 ../data/nl.hjdskes.gcolor3.appdata.xml.in.h:1 #: ../src/gcolor3-application.c:121 msgid "Color picker" msgstr "Selector de cor" #: ../data/nl.hjdskes.gcolor3.desktop.in.in.h:2 ../data/nl.hjdskes.gcolor3.appdata.xml.in.h:2 #: ../src/gcolor3-application.c:58 msgid "Choose colors from the picker or the screen" msgstr "Escolla cores desde o selector ou desde a pantalla" #. Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: ../data/nl.hjdskes.gcolor3.desktop.in.in.h:4 msgid "Color;Picker;Palette;" msgstr "Cor;Selector;Paleta;" #: ../data/nl.hjdskes.gcolor3.appdata.xml.in.h:3 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" "Algunha vez quixo saber o valor desa cor na pantalla? Gcolor3 permítelle " "escoller a cor desde calquera píxel na pantalla. Tamén ofrece unha paleta, " "para que poida mesturar facilmente e combinar un par de cores xuntos." #: ../data/nl.hjdskes.gcolor3.appdata.xml.in.h:4 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" "Cando atopa a combinación perfecta de cores, seguramente quererá gardalos. " "Gcolor3 permítelle gardar e recuperar cores comodamente." #: ../data/nl.hjdskes.gcolor3.appdata.xml.in.h:5 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Gcolor3 é un diálogo de selección de cor escrito en GTK+ 3. É moi parecido a " "Gcolor2, pero usa a nova versión de GTK+ e outras modernizacións para " "integrarse mellor no seu escritorio moderno." #: ../data/nl.hjdskes.gcolor3.appdata.xml.in.h:6 msgid "The picker and the color palette" msgstr "O selector e a paleta de cores" #: ../data/nl.hjdskes.gcolor3.appdata.xml.in.h:7 msgid "The list of saved colors" msgstr "A lista de cores gardadas" #: ../data/menus.ui.h:1 msgid "_About" msgstr "_Sobre" #: ../data/menus.ui.h:2 msgid "_Quit" msgstr "_Saír" #: ../data/window.ui.h:1 msgid "Saved colors" msgstr "Cores gardadas" #: ../data/window.ui.h:2 msgid "Color name..." msgstr "Nome da cor…" #: ../src/main.c:45 msgid "Show the application's version" msgstr "Mostrar a versión do aplicativo" #: ../src/main.c:56 msgid "- pick a color from the picker or the screen" msgstr "- escolla unha cor desde o selector ou desde a pantalla" #: ../src/main.c:67 #, c-format msgid "Run '%s --help' to see a full list of available command line options" msgstr "" "Execute '%s --help' para ver a lista completa de opcións por liña de ordes " "dispoñíbeis" #. Translators: translate this to give yourself credits. #: ../src/gcolor3-application.c:62 msgid "translator-credits" msgstr "" "Fran Dieguez , 2016.\n" "Xoan Sampaiño , 2018." #: ../src/gcolor3-application.c:63 msgid "Website" msgstr "Sitio web" #: ../src/gcolor3-color-store.c:70 #, c-format msgid "Error creating config directory: %s" msgstr "Produciuse un erro ao crear o cartafol de configuración: %s" #: ../src/gcolor3-color-store.c:88 #, c-format msgid "Error writing file: %s" msgstr "Produciuse un erro ao escribir o ficheiro: %s" #: ../src/gcolor3-color-store.c:140 #, c-format msgid "Error opening file: %s. Colors likely won't be saved" msgstr "" "Produciuse un erro ao escribir o ficheiro: %s. É posíbel que as cores non se " "garden" #: ../src/gcolor3-color-store.c:165 ../src/gcolor3-color-store.c:219 #, c-format msgid "There is already a color named `%s`" msgstr "Xa hai unha cor chamada «%s»" #: ../src/gcolor3-color-store.c:186 #, c-format msgid "Error deleting key: %s" msgstr "Produciuse un erro ao eliminar a chave: %s" #: ../src/gcolor3-color-store.c:214 #, c-format msgid "Cannot rename nonexisting color `%s`" msgstr "Non se puido renomear a cor «%s» non existente" #: ../src/gcolor3-color-store.c:224 #, c-format msgid "Cannot retrieve hex value belonging to `%s`: %s" msgstr "Non se puido recuperar o valor hexadecimal pertencente a «%s»: %s" #: ../src/gcolor3-color-store.c:230 #, c-format msgid "Error deleting old name `%s`: %s" msgstr "Produciuse un erro ao eliminar o nome antigo «%s»: %s" #: ../src/gcolor3-color-store.c:255 #, c-format msgid "Error reading keys: %s" msgstr "Produciuse un erro ao ler as chaves: %s" #: ../src/gcolor3-window.c:336 msgid "The model is empty; there are no colors to remove" msgstr "O modelo está baleiro; non hai cores para eliminar" #: ../src/gcolor3-window.c:376 msgid "Cannot update color: invalid path" msgstr "Non se puido actualizar a cor: ruta non válida" #: ../src/gcolor3-window.c:510 msgid "Color" msgstr "Cor" #: ../src/gcolor3-window.c:530 msgid "Name" msgstr "Nome" #: ../src/gcolor3-window.c:555 msgid "Picker" msgstr "Selector" gcolor3-2.4.0/po/hu.po000066400000000000000000000247621372141071500144730ustar00rootroot00000000000000# Hungarian translation for gcolor3. # Copyright (C) 2019, 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the gcolor3 package. # # Balázs Meskó , 2019. # Balázs Úr , 2019, 2020. msgid "" msgstr "" "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-11-16 21:30+0000\n" "PO-Revision-Date: 2020-02-17 23:46+0100\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 19.04.3\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Színválasztó" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Válasszon színeket a színválasztóból vagy a képernyőről" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Szín;Színválasztó;Paletta;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 #| msgid "" #| "Ever wanted to know the value of that color on your screen? Gcolor3 " #| "enables you to pick the color from any pixel on your screen. It also " #| "offers a palette, so that you can easily mix and match a couple of colors " #| "together." msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Szerette volna már tudni a kijelzőjén lévő szín értékét? A Színválasztó" " lehetővé teszi, hogy színt válasszon a képernyő tetszőleges képpontjáról." " Palettát is biztosít, így könnyen keverhet és rakhat össze színeket." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 #| msgid "" #| "When you have found the perfect combination of colors, naturally you want " #| "to save them. Gcolor3 allows you to conveniently save and retrieve colors." msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Ha megtalálta a színek tökéletes kombinációját, akkor persze el szeretné " "menteni őket. A Színválasztó lehetővé teszi, hogy kényelmesen elmentse és " "lekérdezze a színeket." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 #| msgid "" #| "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " #| "Gcolor2, but uses the newer GTK+ version and other modernisations to " #| "better integrate into your modern desktop." msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "A Színválasztó egy GTK+ 3-ban írt színválasztó párbeszédablak. Nagyon" " hasonlít a Gcolor2-re, de az újabb GTK+ verziót használja, és más" " modernizálásokat is tartalmaz, hogy jobban illeszkedjen a modern asztali" " környezetébe." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "A színválasztó és a színpaletta" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "A mentett színek listája" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Hexadecimális" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Kattintson a szín nevének módosításához" #: data/color-row.ui:47 msgid "Name" msgstr "Név" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "A szín hexadecimális értékének másolása a vágólapra" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Szín törlése" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "Gyor_sbillentyűk" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "A Színválasztó _névjegye" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Általános" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Lap módosítása" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Paletta gyorsbillentyűk" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Jelenleg kiválasztott szín mentése" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Mentett színek kezelése" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Kiemelt szín hexadecimális értékének másolása" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Kiemelt szín törlése" #: data/window.ui:32 msgid "Color name…" msgstr "Szín neve…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Mentsen egy kiválasztott színt, hogy az itt megjelenjen" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Nincsenek mentett színei" #: data/window.ui:249 msgid "Saved Colors" msgstr "Mentett színek" #: src/main.c:43 msgid "Show the application’s version" msgstr "Az alkalmazás verziószámának megjelenítése" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "– válasszon színt a színválasztóból vagy a képernyőről" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Futtassa a(z) „%s --help” parancsot a parancssori kapcsolók teljes listájáért" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "Meskó Balázs " #: src/gcolor3-application.c:91 msgid "Website" msgstr "Weboldal" #: src/gcolor3-color-selection.c:361 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Válassza ki a kívánt színt a külső gyűrűről. Válassza ki a szín sötétségét " "vagy világosságát a belső háromszög használatával." #: src/gcolor3-color-selection.c:387 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Egy képernyőpont színének kiválasztásához kattintson a pipettára, majd a " "kívánt képernyőpontra." #: src/gcolor3-color-selection.c:397 msgid "_Hue:" msgstr "Árny_alat:" #: src/gcolor3-color-selection.c:398 msgid "Position on the color wheel." msgstr "Pozíció a színkeréken." #: src/gcolor3-color-selection.c:400 msgid "S_aturation:" msgstr "Telített_ség:" #: src/gcolor3-color-selection.c:401 msgid "Intensity of the color." msgstr "A szín intenzitása." #: src/gcolor3-color-selection.c:402 msgid "_Value:" msgstr "É_rték:" #: src/gcolor3-color-selection.c:403 msgid "Brightness of the color." msgstr "A szín fényessége." #: src/gcolor3-color-selection.c:404 msgid "_Red:" msgstr "_Vörös:" #: src/gcolor3-color-selection.c:405 msgid "Amount of red light in the color." msgstr "A vörös fény mennyisége a színben." #: src/gcolor3-color-selection.c:406 msgid "_Green:" msgstr "_Zöld:" #: src/gcolor3-color-selection.c:407 msgid "Amount of green light in the color." msgstr "A zöld fény mennyisége a színben." #: src/gcolor3-color-selection.c:408 msgid "_Blue:" msgstr "_Kék:" #: src/gcolor3-color-selection.c:409 msgid "Amount of blue light in the color." msgstr "A kék fény mennyisége a színben." #: src/gcolor3-color-selection.c:412 msgid "Op_acity:" msgstr "Át_látszatlanság:" #: src/gcolor3-color-selection.c:420 src/gcolor3-color-selection.c:430 msgid "Transparency of the color." msgstr "A szín átlátszósága." #: src/gcolor3-color-selection.c:437 msgid "Color _Name:" msgstr "Szín _neve:" #: src/gcolor3-color-selection.c:452 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Beírhat ide egy HTML-stílusú hexadecimális színértéket, vagy egyszerűen egy " "színnevet, például „orange”." #: src/gcolor3-color-selection.c:484 msgid "_Palette:" msgstr "_Paletta:" #: src/gcolor3-color-selection.c:514 msgid "Color Wheel" msgstr "Színkerék" #: src/gcolor3-color-selection.c:964 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Az előzőleg kiválasztott szín, összehasonlításként a most kiválasztottal. " "Áthúzhatja ezt a színt egy palettabejegyzéshez, vagy kiválaszthatja mint " "jelenlegit a mellette lévő mezőbe húzással." #: src/gcolor3-color-selection.c:970 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Az Ön által kiválasztott szín. Ezt a színt egy palettabejegyzésbe áthúzva " "elmentheti későbbi felhasználásra." #: src/gcolor3-color-selection.c:976 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "A korábban kiválasztott szín a most kiválasztott színnel való " "összehasonlításhoz." #: src/gcolor3-color-selection.c:980 msgid "The color you’ve chosen." msgstr "A kiválasztott szín." #: src/gcolor3-color-selection.c:1348 msgid "_Save color here" msgstr "Szín _mentése ide" #: src/gcolor3-color-selection.c:1554 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Kattintson erre a palettabejegyzésre, hogy ez legyen a jelenlegi szín. A " "bejegyzés megváltoztatásához húzzon ide egy színt a pipetta melletti " "színmezőből vagy a jobb gombos menüben kattintson a „Szín mentése ide” " "menüpontra." #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Színválasztó" gcolor3-2.4.0/po/id.po000066400000000000000000000255111372141071500144440ustar00rootroot00000000000000# Indonesian translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. msgid "" msgstr "" "Project-Id-Version: 2.2\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-11-16 21:30+0000\n" "PO-Revision-Date: 2020-02-13 19:42+0700\n" "Last-Translator: Kukuh Syafaat \n" "Language-Team: Indonesian\n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.3\n" "Plural-Forms: nplurals=1; plural=0;\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Pemilih Warna" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Pilih warna dari pemilih atau layar" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Warna;Pemilih; Palet;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Pernah ingin tahu nilai warna itu di layar Anda? Pemilih Warna memungkinkan " "Anda untuk memilih warna dari piksel pada layar Anda. Ini juga menawarkan " "palet, sehingga Anda dapat dengan mudah mencampur dan mencocokkan beberapa " "warna bersama-sama." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Bila Anda telah menemukan kombinasi warna yang sempurna, tentu Anda ingin " "menyimpanya. Pemilih Warna memungkinkan Anda menyimpan dan mengambil warna " "dengan mudah." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Pemilih Warna adalah dialog pilihan warna yang ditulis dalam GTK+ 3. Ini " "sangat mirip dengan Gcolor2, namun menggunakan versi GTK+ yang lebih baru " "dan modernisasi lainnya untuk mengintegrasikannya dengan lebih baik ke dalam " "destop modern Anda." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Pemilih dan palet warna" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Daftar warna yang disimpan" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Heksa" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Klik untuk mengubah nama warna" #: data/color-row.ui:47 msgid "Name" msgstr "Nama" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Salin nilai hex warna ini ke papan klip" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Hapus warna ini" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "Pintasan Papan Ti_k" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "Tent_ang Pemilih Warna" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Umum" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Change page" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Pintasan palet" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Simpan warna yang saat ini dipilih" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Pengelola warna tersimpan" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Salin nilai heksa warna yang disorot" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Hapus warna yang disorot" #: data/window.ui:32 msgid "Color name…" msgstr "Nama warna..." #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Simpan warna yang dipilih untuk membuatnya muncul di sini" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Anda tidak memiliki warna yang disimpan" #: data/window.ui:249 msgid "Saved Colors" msgstr "Warna Tersimpan" #: src/main.c:43 msgid "Show the application’s version" msgstr "Tampilkan versi aplikasi" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— pilih warna dari pemilih atau layar" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Jalankan \"%s --help\" untuk melihat daftar lengkap opsi baris perintah yang " "tersedia" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "Kukuh Syafaat , 2018, 2020." #: src/gcolor3-application.c:91 msgid "Website" msgstr "Situs web" #: src/gcolor3-color-selection.c:361 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Pilih warna yang Anda inginkan dari cincin luar. Pilih kegelapan atau " "kecerahan warna itu menggunakan segitiga dalam." #: src/gcolor3-color-selection.c:387 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Klik eyedropper, lalu klik warna di mana saja pada layar Anda untuk memilih " "warna itu." #: src/gcolor3-color-selection.c:397 msgid "_Hue:" msgstr "_Corak:" #: src/gcolor3-color-selection.c:398 msgid "Position on the color wheel." msgstr "Posisikan di roda warna." #: src/gcolor3-color-selection.c:400 msgid "S_aturation:" msgstr "S_aturasi:" #: src/gcolor3-color-selection.c:401 msgid "Intensity of the color." msgstr "Intensitas warna." #: src/gcolor3-color-selection.c:402 msgid "_Value:" msgstr "_Nilai:" #: src/gcolor3-color-selection.c:403 msgid "Brightness of the color." msgstr "Kecerahan warna." #: src/gcolor3-color-selection.c:404 msgid "_Red:" msgstr "Me_rah:" #: src/gcolor3-color-selection.c:405 msgid "Amount of red light in the color." msgstr "Jumlah cahaya merah dalam warna." #: src/gcolor3-color-selection.c:406 msgid "_Green:" msgstr "_Hijau:" #: src/gcolor3-color-selection.c:407 msgid "Amount of green light in the color." msgstr "Jumlah cahaya hijau dalam warna." #: src/gcolor3-color-selection.c:408 msgid "_Blue:" msgstr "_Biru:" #: src/gcolor3-color-selection.c:409 msgid "Amount of blue light in the color." msgstr "Jumlah cahaya biru dalam warna." #: src/gcolor3-color-selection.c:412 msgid "Op_acity:" msgstr "Op_asitas:" #: src/gcolor3-color-selection.c:420 src/gcolor3-color-selection.c:430 msgid "Transparency of the color." msgstr "Transparansi warna." #: src/gcolor3-color-selection.c:437 msgid "Color _Name:" msgstr "_Nama Warna:" #: src/gcolor3-color-selection.c:452 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Anda dapat memasukkan nilai warna heksadesimal gaya HTML, atau hanya nama " "warna seperti \"jingga\" dalam entri ini." #: src/gcolor3-color-selection.c:484 msgid "_Palette:" msgstr "_Palet:" #: src/gcolor3-color-selection.c:514 msgid "Color Wheel" msgstr "Roda Warna" #: src/gcolor3-color-selection.c:964 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Warna yang sebelumnya dipilih, untuk dibandingkan dengan warna yang Anda " "pilih sekarang. Anda dapat menyeret warna ini ke entri palet, atau memilih " "warna ini sebagai warna saat ini dengan menyeretnya ke carikan warna lain di " "sampingnya. " #: src/gcolor3-color-selection.c:970 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Warna yang Anda pilih. Anda dapat menyeret warna ini ke entri palet untuk " "menyimpannya untuk digunakan di masa mendatang." #: src/gcolor3-color-selection.c:976 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "Warna yang sebelumnya dipilih, untuk dibandingkan dengan warna yang Anda " "pilih sekarang." #: src/gcolor3-color-selection.c:980 msgid "The color you’ve chosen." msgstr "Warna yang Anda pilih." #: src/gcolor3-color-selection.c:1348 msgid "_Save color here" msgstr "_Simpan warna di sini" #: src/gcolor3-color-selection.c:1554 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Klik entri palet ini untuk menjadikannya warna saat ini. Untuk mengubah " "entri ini, seret suatu warna ke sini atau klik kanan dan pilih \"Simpan " "warna di sini.\"" #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Pemilih" #~ msgid "nl.hjdskes.gcolor3" #~ msgstr "nl.hjdskes.gcolor3" #~ msgid "Jente Hidskes" #~ msgstr "Jente Hidskes" #~ msgid "_About" #~ msgstr "_Tentang" #~ msgid "_Quit" #~ msgstr "_Keluar" #~ msgid "Picking a color is currently not supported on Wayland." #~ msgstr "Memilih warna saat ini tidak didukung di Wayland." #, fuzzy #~ msgid "Error creating config directory: %s" #~ msgstr "Kesalahan membuat direktori config:% s" #, fuzzy #~ msgid "Error writing file: %s" #~ msgstr "Kesalahan saat menulis berkas:% s" #, fuzzy #~ msgid "Error opening file: %s. Colors likely won't be saved" #~ msgstr "" #~ "Kesalahan saat membuka berkas:% s. Warna kemungkinan tidak akan disimpan" #, fuzzy #~ msgid "There is already a color named `%s`" #~ msgstr "Sudah ada warna yang bernama `% s`" #, fuzzy #~ msgid "Error deleting key: %s" #~ msgstr "Kesalahan saat menghapus kunci:% s" #, fuzzy #~ msgid "Cannot rename nonexisting color `%s`" #~ msgstr "Tidak dapat mengganti nama warna tidak ada `% s`" #, fuzzy #~ msgid "Cannot retrieve hex value belonging to `%s`: %s" #~ msgstr "Tidak dapat mengambil nilai hex milik `% s`:% s" #, fuzzy #~ msgid "Error deleting old name `%s`: %s" #~ msgstr "Kesalahan menghapus nama lama `% s`:% s" #, fuzzy #~ msgid "Error reading keys: %s" #~ msgstr "Kesalahan saat membaca kunci:% s" #, fuzzy #~ msgid "The model is empty; there are no colors to remove" #~ msgstr "Modelnya kosong; tidak ada warna untuk dihapus" #, fuzzy #~ msgid "Cannot update color: invalid path" #~ msgstr "Tidak dapat memperbarui warna: jalur tidak valid" gcolor3-2.4.0/po/it.po000066400000000000000000000236201372141071500144630ustar00rootroot00000000000000# Italian translation for gcolor3. # Copyright (C) 2018 Free Software Foundation, Ltd. # This file is distributed under the same license as the gcolor3 package. # Milo Casagrande , 2018. # msgid "" msgstr "" "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2018-12-01 17:36+0000\n" "PO-Revision-Date: 2018-12-06 10:04+0100\n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Last-Translator: Milo Casagrande \n" "X-Generator: Poedit 2.2\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:145 msgid "Color picker" msgstr "Selettore colore" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:84 msgid "Choose colors from the picker or the screen" msgstr "Scelta colori tramite il selettore a schermo" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: data/nl.hjdskes.gcolor3.desktop.in:7 msgid "nl.hjdskes.gcolor3" msgstr "nl.hjdskes.gcolor3" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Colore;Selettore;Picker;Palette;Tavolozza;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" "Vuoi conoscere il valore di quel particolare colore sullo schermo? Con " "Gcolor3 è possibile selezionare un colore da un qualsiasi pixel sullo " "schermo. Gcolor3 è inoltre dotato di una tavolozza così da poter mischiare i " "colori." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" "Una volta trovata la combinazione perfetta di colori, con Gcolor3 è " "possibile salvarla e ritrovarla facilmente." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Gcolor3 è uno strumento di selezione del colore scritto con GTK+ 3. È molto " "simile a Gcolor2, ma utilizza la versione GTK+ più recente e altre recenti " "funzionalità per integrarlo al meglio nell'ambiente grafico." #: data/nl.hjdskes.gcolor3.appdata.xml.in:33 msgid "The picker and the color palette" msgstr "Il selettore e la tavolozza di colori" #: data/nl.hjdskes.gcolor3.appdata.xml.in:37 msgid "The list of saved colors" msgstr "L'elenco dei colori salvati" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:44 msgid "Jente Hidskes" msgstr "Jente Hidskes" #: data/color-row.ui:31 msgid "Hex" msgstr "Esadecimale" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Clic per modificare il nome del colore" #: data/color-row.ui:47 msgid "Name" msgstr "Nome" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Copia il valore esadecimale negli appunti" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Elimina questo colore" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "Scorciatoie da _tastiera" #: data/menus.ui:11 msgid "_About" msgstr "_Informazioni" #: data/menus.ui:15 msgid "_Quit" msgstr "_Chiudi" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Generale" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Cambia pagina" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Scorciatoie della tavolozza" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Salva il colore selezionato" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Gestione colore salvata" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Copia il valore esadecimale del colore selezionato" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Elimina il colore selezionato" #: data/window.ui:25 msgid "Color name…" msgstr "Nome colore…" #: data/window.ui:76 msgid "Save a picked color to make it appear here" msgstr "Salvare un colore selezionato per vederlo qui" #: data/window.ui:94 msgid "You have no saved colors" msgstr "Non ci sono colori salvati" #: data/window.ui:231 msgid "Saved colors" msgstr "Colori salvati" #: src/main.c:43 msgid "Show the application’s version" msgstr "Mostra la versione dell'applicazione" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— Scegli un colore dal selettore a schermo" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Eseguire «%s --help» per l'elenco completo delle opzioni a riga di comando" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:88 msgid "translator-credits" msgstr "Milo Casagrande " #: src/gcolor3-application.c:89 msgid "Website" msgstr "Sito web" #: src/gcolor3-color-selection.c:409 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Selezionare la tonalità di colore tramite l'anello esterno e la luminosità " "tramite il triangolo interno." #: src/gcolor3-color-selection.c:439 msgid "Picking a color is currently not supported on Wayland." msgstr "La selezione di un colore non è attualmente supportata su Wayland." #: src/gcolor3-color-selection.c:450 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Fare clic sul contagocce, quindi fare clic su un punto qualsiasi dello " "schermo per selezionare il colore di quel punto." #: src/gcolor3-color-selection.c:461 msgid "_Hue:" msgstr "_Tonalità:" #: src/gcolor3-color-selection.c:462 msgid "Position on the color wheel." msgstr "Posizione sull'anello dei colori" #: src/gcolor3-color-selection.c:464 msgid "S_aturation:" msgstr "_Saturazione:" #: src/gcolor3-color-selection.c:465 msgid "Intensity of the color." msgstr "Intensità del colore" #: src/gcolor3-color-selection.c:466 msgid "_Value:" msgstr "_Valore:" #: src/gcolor3-color-selection.c:467 msgid "Brightness of the color." msgstr "Luminosità del colore" #: src/gcolor3-color-selection.c:468 msgid "_Red:" msgstr "_Rosso:" #: src/gcolor3-color-selection.c:469 msgid "Amount of red light in the color." msgstr "Quantità di luce rossa nel colore" #: src/gcolor3-color-selection.c:470 msgid "_Green:" msgstr "_Verde:" #: src/gcolor3-color-selection.c:471 msgid "Amount of green light in the color." msgstr "Quantità di luce verde nel colore" #: src/gcolor3-color-selection.c:472 msgid "_Blue:" msgstr "_Blu:" #: src/gcolor3-color-selection.c:473 msgid "Amount of blue light in the color." msgstr "Quantità di luce blu nel colore" #: src/gcolor3-color-selection.c:476 msgid "Op_acity:" msgstr "_Opacità:" #: src/gcolor3-color-selection.c:484 src/gcolor3-color-selection.c:494 msgid "Transparency of the color." msgstr "Trasparenza del colore" #: src/gcolor3-color-selection.c:501 msgid "Color _name:" msgstr "_Nome colore:" #: src/gcolor3-color-selection.c:516 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "È possibile inserire il valore esadecimale (in stile HTML) del colore o " "semplicemente il nome del colore come per esempio «orange»." #: src/gcolor3-color-selection.c:548 msgid "_Palette:" msgstr "_Tavolozza:" #: src/gcolor3-color-selection.c:578 msgid "Color Wheel" msgstr "Anello dei colori" #: src/gcolor3-color-selection.c:1043 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Il colore selezionato in precedenza, per un confronto con il colore " "selezionato ora. È possibile trascinare questo colore in una posizione della " "tavolozza o selezionarlo come colore corrente trascinandolo sul colore che " "si vuole sostituire." #: src/gcolor3-color-selection.c:1049 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Il colore scelto. È possibile trascinarlo su una posizione della tavolozza " "per averlo disponibile in futuro." #: src/gcolor3-color-selection.c:1055 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "Il colore selezionato in precedenza, per confronto con il colore selezionato " "ora." #: src/gcolor3-color-selection.c:1059 msgid "The color you’ve chosen." msgstr "Il colore scelto." #: src/gcolor3-color-selection.c:1428 msgid "_Save color here" msgstr "_Salva il colore in questa posizione" #: src/gcolor3-color-selection.c:1634 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Fare clic su questo elemento della tavolozza per renderlo il colore " "corrente. Per cambiare questo elemento, trascinare qui il colore desiderato " "o fare clic col pulsante destro e selezionare «Salva il colore in questa " "posizione»." #: src/gcolor3-window.c:401 msgid "Picker" msgstr "Selettore" gcolor3-2.4.0/po/meson.build000066400000000000000000000000631372141071500156450ustar00rootroot00000000000000i18n.gettext(meson.project_name(), preset: 'glib') gcolor3-2.4.0/po/nb.po000066400000000000000000000142331372141071500144460ustar00rootroot00000000000000# Norsk Bokmål translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. msgid "" msgstr "" "Project-Id-Version: 2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-12 21:42+0200\n" "PO-Revision-Date: 2017-03-22 11:00+0100\n" "Last-Translator: Kristian Robertsen \n" "Language-Team: Norsk Bokmål\n" "Language: nb_NO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:119 msgid "Color picker" msgstr "Fargevelger" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:56 msgid "Choose colors from the picker or the screen" msgstr "Velg farger enten fra velgeren eller fra skjermen" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: data/nl.hjdskes.gcolor3.desktop.in:7 msgid "nl.hjdskes.gcolor3" msgstr "" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Farge;Velger;Palett" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" "Har du noen gang villet vite verdien til en farge du ser på skjermen? Gcolor " "3lar deg hente ut fargen til en hvilken som helst piksel på skjermen. Den " "tilbyrogså en palett å velge fra, slik at du ekelt kan mikse og matche flere " "farger." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" "Når du har funnet den perfekte kombinasjonen av farger vil du naturligvis ha " "muligheten til å lagre de. Gcolor3 lar deg enkelt lagre og hente inn farger." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Gcolor3 er en fargevelgerdialog skrevet med GTK+ 3. Den er svært lik Gcolor " "2,men bruker en nyere GTK+ versjon og andre moderniseringer slik at " "denintegrerer bedre med moderne desktops." #: data/nl.hjdskes.gcolor3.appdata.xml.in:33 msgid "The picker and the color palette" msgstr "Fargevelgeren og fargepaletten" #: data/nl.hjdskes.gcolor3.appdata.xml.in:37 msgid "The list of saved colors" msgstr "Listen over lagrede farger" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:44 msgid "Jente Hidskes" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:53 msgid "Centrally manage colors between several running instances;" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:54 msgid "" "Follow the XDG directory specification for the configuration file. This " "means that the configuration file has moved from `~/.rgb.ini` to `" "$XDG_CONFIG_HOME/gcolor3/config.ini`;" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:56 msgid "Copy the selected color's hex value from the tree view using Ctrl-C;" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:57 msgid "Make the main window resizable;" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:58 msgid "Translation updates." msgstr "" #: data/menus.ui:7 msgid "_About" msgstr "_Om" #: data/menus.ui:11 msgid "_Quit" msgstr "_Avslutt" #: data/window.ui:55 msgid "Saved colors" msgstr "Lagrede farger" #: data/window.ui:104 msgid "Color name..." msgstr "Fargenavn..." #: src/main.c:43 msgid "Show the application's version" msgstr "Vis applikasjonens versjon" #: src/main.c:54 msgid "- pick a color from the picker or the screen" msgstr "- velg en farge fra fargevelgeren eller fra skjermen" #: src/main.c:65 #, c-format msgid "Run '%s --help' to see a full list of available command line options" msgstr "" "Kjør '%s --help' for å se en komplett liste over tilgjengelige kommandolinje-" "opsjoner" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:60 msgid "translator-credits" msgstr "oversetter-kreditering" #: src/gcolor3-application.c:61 msgid "Website" msgstr "Nettside" #: src/gcolor3-color-store.c:68 #, c-format msgid "Error creating config directory: %s" msgstr "Feil ved oppretting av konfig mappe: %s" #: src/gcolor3-color-store.c:86 #, c-format msgid "Error writing file: %s" msgstr "Feil ved oppretting av fil: %s" #: src/gcolor3-color-store.c:138 #, c-format msgid "Error opening file: %s. Colors likely won't be saved" msgstr "Feil ved åpning av fil: %s. Fargene vil sannsynligvis ikke bli lagret." #: src/gcolor3-color-store.c:163 src/gcolor3-color-store.c:217 #, c-format msgid "There is already a color named `%s`" msgstr "Det er allerede en farge ved navn `%s`" #: src/gcolor3-color-store.c:184 #, c-format msgid "Error deleting key: %s" msgstr "Feil ved sletting av tast: %s" #: src/gcolor3-color-store.c:212 #, c-format msgid "Cannot rename nonexisting color `%s`" msgstr "Kan ikke endre navn på ikke-eksisterende farge `%s`" #: src/gcolor3-color-store.c:222 #, c-format msgid "Cannot retrieve hex value belonging to `%s`: %s" msgstr "Kan ikke hente hex-verdien tilhørende `%s`: %s" #: src/gcolor3-color-store.c:228 #, c-format msgid "Error deleting old name `%s`: %s" msgstr "Feil ved sletting av gammelt navn `%s`: %s" #: src/gcolor3-color-store.c:253 #, c-format msgid "Error reading keys: %s" msgstr "Feil ved innlesing av taster: %s" #: src/gcolor3-window.c:327 msgid "The model is empty; there are no colors to remove" msgstr "Modellen en tom; det er ingen farger å fjerne" #: src/gcolor3-window.c:367 msgid "Cannot update color: invalid path" msgstr "Kan ikke oppdatere farge: ugyldig filsti" #: src/gcolor3-window.c:501 msgid "Color" msgstr "Farge" #: src/gcolor3-window.c:521 msgid "Name" msgstr "Navn" #: src/gcolor3-window.c:546 msgid "Picker" msgstr "Velger" gcolor3-2.4.0/po/nl.po000066400000000000000000000324371372141071500144660ustar00rootroot00000000000000# Dutch translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. # # Nathan Follens , 2019-2020. # msgid "" msgstr "" "Project-Id-Version: 2.0\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-11-16 21:30+0000\n" "PO-Revision-Date: 2020-03-07 23:32+0100\n" "Last-Translator: Nathan Follens \n" "Language-Team: Dutch\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.3\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Kleurenkiezer" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Kies kleuren van de kiezer of van het scherm" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Color;Picker;Palette;Kleur;Kiezer;Palet;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Ooit de waarde van die kleur op uw scherm willen weten? Kleurenkiezer stelt " "u in staat om de kleur van elke pixel op uw scherm te kiezen. Het biedt u " "ook een palet, zodat u eenvoudig een selectie van kleuren kunt combineren." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Als u de perfecte combinatie van kleuren heeft gevonden, wilt u deze " "uiteraard opslaan. Kleurenkiezer laat u gemakkelijk kleuren opslaan en " "ophalen." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Kleurenkiezer is een kleurenselectievenster, geschreven in GTK+ 3. Het lijkt " "op Gcolor2, maar gebruikt de nieuwere GTK+-versie en andere moderniseringen " "om beter te integreren in uw moderne bureaubladomgeving." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "De kiezer en het kleurenpalet" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "De lijst met opgeslagen kleuren" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Hex" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Klik om de naam van kleur te veranderen" #: data/color-row.ui:47 msgid "Name" msgstr "Naam" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Kopieer de hexwaarde van deze kleur naar het klembord" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Deze kleur verwijderen" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Sneltoetsen" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_Over Kleurenkiezer" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Algemeen" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Veranderen van pagina" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Paletsneltoetsen" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Geselecteerde kleur opslaan" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Beheer van opgeslagen kleuren" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Hexwaarde van gemarkeerde kleur kopiëren" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Gemarkeerde kleur verwijderen" #: data/window.ui:32 msgid "Color name…" msgstr "Kleurnaam…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Sla een gekozen kleur op om deze hier te doen verschijnen" #: data/window.ui:112 msgid "You have no saved colors" msgstr "U heeft geen opgeslagen kleuren" #: data/window.ui:249 msgid "Saved Colors" msgstr "Opgeslagen kleuren" #: src/main.c:43 msgid "Show the application’s version" msgstr "De toepassingsversie tonen" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— kies een kleur van de kiezer of van het scherm" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Voer ‘%s --help’ uit om een volledige lijst van beschikbare " "opdrachtregelopties te zien" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "" "Jente Hidskes\n" "Nathan Follens\n" "\n" "Meer info over Gnome-NL http://nl.gnome.org" #: src/gcolor3-application.c:91 msgid "Website" msgstr "Website" #: src/gcolor3-color-selection.c:361 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Selecteer een kleur in de buitenste ring. De helderheid van deze kleur kunt " "u instellen met de driehoek binnenin." #: src/gcolor3-color-selection.c:387 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Klik op de pipet, en klik daarna op een kleur ergens op het scherm om die " "kleur te selecteren." #: src/gcolor3-color-selection.c:397 msgid "_Hue:" msgstr "_Tint:" #: src/gcolor3-color-selection.c:398 msgid "Position on the color wheel." msgstr "Positie op het kleurenwiel." #: src/gcolor3-color-selection.c:400 msgid "S_aturation:" msgstr "_Verzadiging:" #: src/gcolor3-color-selection.c:401 msgid "Intensity of the color." msgstr "Intensiteit van de kleur." #: src/gcolor3-color-selection.c:402 msgid "_Value:" msgstr "_Waarde:" #: src/gcolor3-color-selection.c:403 msgid "Brightness of the color." msgstr "Helderheid van de kleur." #: src/gcolor3-color-selection.c:404 msgid "_Red:" msgstr "_Rood:" #: src/gcolor3-color-selection.c:405 msgid "Amount of red light in the color." msgstr "Hoeveelheid rood licht in de kleur." #: src/gcolor3-color-selection.c:406 msgid "_Green:" msgstr "_Groen:" #: src/gcolor3-color-selection.c:407 msgid "Amount of green light in the color." msgstr "Hoeveelheid groen licht in de kleur." #: src/gcolor3-color-selection.c:408 msgid "_Blue:" msgstr "_Blauw:" #: src/gcolor3-color-selection.c:409 msgid "Amount of blue light in the color." msgstr "Hoeveelheid blauw licht in de kleur." #: src/gcolor3-color-selection.c:412 msgid "Op_acity:" msgstr "_Doorzichtigheid:" #: src/gcolor3-color-selection.c:420 src/gcolor3-color-selection.c:430 msgid "Transparency of the color." msgstr "Doorzichtigheid van de kleur." #: src/gcolor3-color-selection.c:437 msgid "Color _Name:" msgstr "Kleur_naam:" #: src/gcolor3-color-selection.c:452 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "U kunt in dit veld een hexadecimale kleurwaarde in HTML-stijl geven, of " "gewoon een kleur (in het Engels) invoeren zoals ‘orange’." #: src/gcolor3-color-selection.c:484 msgid "_Palette:" msgstr "_Palet:" #: src/gcolor3-color-selection.c:514 msgid "Color Wheel" msgstr "Kleurenwiel" #: src/gcolor3-color-selection.c:964 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "De laatst geselecteerde kleur, ter vergelijking met de kleur die u nu " "selecteert. U kunt deze kleur naar een paletvak slepen, of als huidige kleur " "instellen door deze naar het kleurenmodel hiernaast te slepen." #: src/gcolor3-color-selection.c:970 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "De nieuwe kleur die u gekozen heeft. U kunt deze verslepen naar een " "kleurenpalet om het te bewaren voor toekomstig gebruik." #: src/gcolor3-color-selection.c:976 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "De laatst geselecteerde kleur, ter vergelijking met de kleur die u " "selecteert." #: src/gcolor3-color-selection.c:980 msgid "The color you’ve chosen." msgstr "De kleur die u heeft gekozen." #: src/gcolor3-color-selection.c:1348 msgid "_Save color here" msgstr "Kleur hier op_slaan" #: src/gcolor3-color-selection.c:1554 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Klik op deze kleur van het palet om het de huidige kleur te maken. Om de " "kleur te wijzigen sleept u een kleurenstaal naar deze plek of klikt u met de " "rechter muisknop en selecteert u ‘Kleur hier opslaan’." #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Kiezer" #~ msgid "nl.hjdskes.gcolor3" #~ msgstr "nl.hjdskes.gcolor3" #~ msgid "Jente Hidskes" #~ msgstr "Jente Hidskes" #~ msgid "Picking a color is currently not supported on Wayland." #~ msgstr "Een kleur kiezen wordt op dit moment niet ondersteund op Wayland." #~ msgid "Redesign the saved colors page" #~ msgstr "De pagina voor opgeslagen kleuren opnieuw ontworpen" #~ msgid "Redesign the header bar" #~ msgstr "De header bar opnieuw ontworpen" #~ msgid "Disable color picking on Wayland for now, instead of crashing" #~ msgstr "" #~ "Kleuren kiezen op Wayland is voor nu uitgeschakeld, in plaats van te " #~ "crashen" #~ msgid "Add a shortcuts window" #~ msgstr "Een shortcuts venster toegevoegd" #~ msgid "Gcolor3 is now available as a Flatpak" #~ msgstr "Gcolor3 is nu beschikbaar als een Flatpak" #~ msgid "New and updated translations" #~ msgstr "Nieuwe en bijgewerkte translaties" #~ msgid "Gcolor3 now comes with a manual page" #~ msgstr "Gcolor3 komt nu met een man pagina" #~ msgid "Lots of under-the-hood improvements" #~ msgstr "Veel onder-de-motorkap verbeteringen" #~ msgid "Centrally manage colors between several running instances;" #~ msgstr "Opgeslagen kleuren worden nu centraal beheerd;" #~ msgid "" #~ "Follow the XDG directory specification for the configuration file. This " #~ "means that the configuration file has moved from `~/.rgb.ini` to `" #~ "$XDG_CONFIG_HOME/gcolor3/config.ini`;" #~ msgstr "" #~ "Volg de XDG directory specificatie voor het configuratiebestand.Dit " #~ "betekent dat het configuratiebestand is verplaatst van `~/.rgb.ini` naar `" #~ "$XDG_CONFIG_HOME/gcolor3/config.ini`;" #~ msgid "Copy the selected color's hex value from the tree view using Ctrl-C;" #~ msgstr "" #~ "Kopieer de geselecteerde kleur's hex waarde van de tree view met CTRL-C;" #~ msgid "Make the main window resizable;" #~ msgstr "Maak het hoofdvenster schaalbaar;" #~ msgid "Translation updates." #~ msgstr "Translatie-updates." #~ msgid "_About" #~ msgstr "_Over" #~ msgid "_Quit" #~ msgstr "_Afsluiten" #~ msgid "Color name..." #~ msgstr "Kleurnaam..." #~ msgid "Could not parse color to display thumbnail\n" #~ msgstr "Kon de kleur niet parseren om de thumbnail weer te geven\n" #~ msgid "Error creating config directory: %s" #~ msgstr "Fout bij het aanmaken van de configuratiemap: %s" #~ msgid "Cannot count number of items: %s\n" #~ msgstr "Kan hoeveelheid items niet tellen: %s\n" #~ msgid "Cannot read colors: %s\n" #~ msgstr "Kan kleur niet lezen: %s\n" #~ msgid "Cannot access color at position %d: %s\n" #~ msgstr "Kan niet bij kleur op positie %d: %s\n" #~ msgid "Error writing file: %s" #~ msgstr "Fout bij het schrijven van bestand: %s" #~ msgid "" #~ "Error opening file: %s. Colors likely won't be saved, unless this is the " #~ "first run" #~ msgstr "" #~ "Fout bij het openen van bestand: %s. Kleuren worden waarschijnlijk niet " #~ "opgeslagen, tenzij dit de eerste uitvoer is" #~ msgid "There is already a color named `%s`" #~ msgstr "Er is al een kleur genaamd `%s`" #~ msgid "Cannot locate index of addition: %s. UI won't be updated\n" #~ msgstr "" #~ "Kan index van toevoeging niet vinden: %s. UI wordt niet bijgewerkt\n" #~ msgid "Cannot locate index of removal: %s. UI won't be updated\n" #~ msgstr "" #~ "Kan index van verwijdering niet vinden: %s. UI wordt niet bijgewerkt\n" #~ msgid "Error deleting key: %s" #~ msgstr "Fout bij het verwijderen van sleutel: %s" #~ msgid "Cannot rename nonexisting color `%s`" #~ msgstr "Kan niet-bestaande kleur `%s` niet hernoemen" #~ msgid "Cannot retrieve hex value belonging to `%s`: %s" #~ msgstr "Kan hex-waarde behorende bij `%s` niet ophalen: %s" #~ msgid "Error deleting old name `%s`: %s" #~ msgstr "Fout bij het verwijderen van sleutel `%s`: %s" #~ msgid "Error reading keys: %s. This is harmless if this is the first run" #~ msgstr "" #~ "Fout bij het lezen van sleutels: %s. Dit is ongevaarlijk als dit de " #~ "eerste uitvoer is" gcolor3-2.4.0/po/pl.po000066400000000000000000000231461372141071500144650ustar00rootroot00000000000000# Polish translation for gcolor3. # Copyright © 2018-2019 the gcolor3 authors. # This file is distributed under the same license as the gcolor3 package. # Piotr Drąg , 2018-2019. # Aviary.pl , 2018-2019. # msgid "" msgstr "" "Project-Id-Version: gcolor3\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-11-02 20:24+0000\n" "PO-Revision-Date: 2019-11-03 12:44+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Wybór kolorów" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Wybieranie kolorów z ekranu" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Kolory;Wybór;Paleta;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Program umożliwiający wybieranie kolorów z dowolnego piksela ekranu. " "Zapewnia także paletę, aby można było łatwo mieszać i dopasowywać kilka " "kolorów." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Po znalezieniu idealnego połączenia kolorów umożliwia ich wygodne zapisanie " "i odczytanie." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Okno wyboru kolorów napisane za pomocą biblioteki GTK 3. Jest bardzo podobne " "do Gcolor2, ale używa nowszej wersji biblioteki GTK i zawiera inne " "unowocześnienia, aby lepiej integrować się z nowoczesnym pulpitem." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Okno wyboru i paleta kolorów" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Lista zapisanych kolorów" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Szesnastkowo" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Zmienia nazwę koloru" #: data/color-row.ui:47 msgid "Name" msgstr "Nazwa" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Kopiuje szesnastkową wartość koloru do schowka" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Usuwa ten kolor" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Skróty klawiszowe" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_O programie" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Ogólne" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Zmiana strony" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Skróty palety" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Zapisanie obecnie wybranego koloru" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Zarządzanie zapisanymi kolorami" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Skopiowanie szesnastkowej wartości wyróżnionego koloru" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Usunięcie wyróżnionego koloru" #: data/window.ui:32 msgid "Color name…" msgstr "Nazwa koloru…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Zapisanie wybranego koloru spowoduje wyświetlanie go tutaj" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Nie ma zapisanych kolorów" #: data/window.ui:249 msgid "Saved Colors" msgstr "Zapisane kolory" #: src/main.c:43 msgid "Show the application’s version" msgstr "Wyświetla wersję programu" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— wybór koloru z ekranu" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Polecenie „%s --help” wyświetli pełną listę dostępnych opcji wiersza poleceń" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "" "Piotr Drąg , 2018-2019\n" "Aviary.pl , 2018-2019" #: src/gcolor3-application.c:91 msgid "Website" msgstr "Strona WWW" #: src/gcolor3-color-selection.c:408 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Proszę wybrać kolor z zewnętrznego kręgu oraz ciemność lub jasność tego " "koloru za pomocą wewnętrznego trójkąta." #: src/gcolor3-color-selection.c:438 msgid "Picking a color is currently not supported on Wayland." msgstr "Wybór koloru jest obecnie nieobsługiwany w systemie Wayland." #: src/gcolor3-color-selection.c:449 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Proszę kliknąć zakraplacz, a następnie kliknąć kolor w dowolny miejscu " "ekranu, aby go wybrać." #: src/gcolor3-color-selection.c:460 msgid "_Hue:" msgstr "_Barwa:" #: src/gcolor3-color-selection.c:461 msgid "Position on the color wheel." msgstr "Położenie na kole kolorów." #: src/gcolor3-color-selection.c:463 msgid "S_aturation:" msgstr "_Nasycenie:" #: src/gcolor3-color-selection.c:464 msgid "Intensity of the color." msgstr "Natężenie koloru." #: src/gcolor3-color-selection.c:465 msgid "_Value:" msgstr "_Wartość:" #: src/gcolor3-color-selection.c:466 msgid "Brightness of the color." msgstr "Jasność koloru." #: src/gcolor3-color-selection.c:467 msgid "_Red:" msgstr "_Czerwony:" #: src/gcolor3-color-selection.c:468 msgid "Amount of red light in the color." msgstr "Ilość czerwonego światła w kolorze." #: src/gcolor3-color-selection.c:469 msgid "_Green:" msgstr "_Zielony:" #: src/gcolor3-color-selection.c:470 msgid "Amount of green light in the color." msgstr "Ilość zielonego światła w kolorze." #: src/gcolor3-color-selection.c:471 msgid "_Blue:" msgstr "Ni_ebieski:" #: src/gcolor3-color-selection.c:472 msgid "Amount of blue light in the color." msgstr "Ilość niebieskiego światła w kolorze." #: src/gcolor3-color-selection.c:475 msgid "Op_acity:" msgstr "Niepr_zezroczystość:" #: src/gcolor3-color-selection.c:483 src/gcolor3-color-selection.c:493 msgid "Transparency of the color." msgstr "Przezroczystość koloru." #: src/gcolor3-color-selection.c:500 msgid "Color _Name:" msgstr "Nazwa _koloru:" #: src/gcolor3-color-selection.c:515 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "W tym polu można wpisać szesnastkową wartość koloru w stylu języka HTML lub " "jego nazwę w języku angielskim, np. „orange”." #: src/gcolor3-color-selection.c:547 msgid "_Palette:" msgstr "_Paleta:" #: src/gcolor3-color-selection.c:577 msgid "Color Wheel" msgstr "Koło kolorów" #: src/gcolor3-color-selection.c:1040 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Poprzednio wybrany kolor do porównania z kolorem wybranym teraz. Można " "przeciągnąć ten kolor do wpisu palety lub wybrać go jako obecny przeciągając " "go do drugiej próbki obok." #: src/gcolor3-color-selection.c:1046 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Wybrany kolor. Można go przeciągnąć do wpisu palety, aby zapisać go do " "przyszłego użytku." #: src/gcolor3-color-selection.c:1052 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "Poprzednio wybrany kolor do porównania z kolorem wybranym teraz." #: src/gcolor3-color-selection.c:1056 msgid "The color you’ve chosen." msgstr "Wybrany kolor." #: src/gcolor3-color-selection.c:1424 msgid "_Save color here" msgstr "_Zapisz kolor tutaj" #: src/gcolor3-color-selection.c:1630 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Kliknięcie tego wpisu palety ustawi go na obecny kolor. Aby zapisać ten " "wpis, należy przeciągnąć próbkę tutaj lub kliknąć go prawym przyciskiem " "myszy i wybrać „Zapisz kolor tutaj”." #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Wybór" gcolor3-2.4.0/po/pt_BR.po000066400000000000000000000247761372141071500150720ustar00rootroot00000000000000# Brazilian Portuguese translation for gcolor3. # Copyright (C) 2019 gcolor3's COPYRIGHT HOLDER # This file is distributed under the same license as the gcolor3 package. # Rafael Fontenelle , 2018-2019. # msgid "" msgstr "" "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-11-16 21:30+0000\n" "PO-Revision-Date: 2019-11-29 02:24-0300\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" "X-Generator: Gtranslator 3.32.0\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Seletor de cor" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Escolha cores a partir do seletor ou da tela" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Cor; Seletor;Palette;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 #| msgid "" #| "Ever wanted to know the value of that color on your screen? Gcolor3 " #| "enables you to pick the color from any pixel on your screen. It also " #| "offers a palette, so that you can easily mix and match a couple of colors " #| "together." msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Sempre quis saber o valor dessa cor na tela? Seletor de cor permite que você " "escolha a cor de qualquer pixel na tela. Ele também oferece uma paleta, para " "que você possa facilmente misturar e combinar algumas cores." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 #| msgid "" #| "When you have found the perfect combination of colors, naturally you want " #| "to save them. Gcolor3 allows you to conveniently save and retrieve colors." msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Quando você encontrou a combinação perfeita de cores, naturalmente você quer " "salvá-las. Seletor de cor permite que você salve e recupere cores de forma " "conveniente." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 #| msgid "" #| "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " #| "Gcolor2, but uses the newer GTK+ version and other modernisations to " #| "better integrate into your modern desktop." msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Seletor de cor é um diálogo de seleção de cores escrito em GTK 3. É muito " "parecido com o Gcolor2, mas usa a versão mais recente do GTK e outras " "modernizações para melhor integração em seu ambiente de área de trabalho " "moderno." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "O seletor e a paleta de cores" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "A lista de cores salvas" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Hexa" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Clique para alterar o nome da cor" #: data/color-row.ui:47 msgid "Name" msgstr "Nome" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Copia o valor hexadecimal dessa cor para a área de transferência" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Exclui essa cor" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Atalhos de teclados" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_Sobre o Seletor de cor" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Geral" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Alterna a página" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Atalhos da paleta" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Salva a cor selecionada atualmente" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Gerenciamento de cor salvo" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Copia o valor hexadecimal da cor realçada" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Exclui a cor selecionada" #: data/window.ui:32 msgid "Color name…" msgstr "Nome da cor…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Salve a cor selecionada para fazê-la aparecer aqui" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Você tem nenhuma cor salva" #: data/window.ui:249 msgid "Saved Colors" msgstr "Cores salvas" #: src/main.c:43 msgid "Show the application’s version" msgstr "Mostra a versão do aplicativo" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— escolha uma cor a partir do seletor ou da tela" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Execute “%s --help” para ver uma lista completa das opções de linha de " "comando disponíveis" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "Rafael Fontenelle " #: src/gcolor3-application.c:91 msgid "Website" msgstr "Site" #: src/gcolor3-color-selection.c:361 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Selecione a cor desejada no anel externo. Selecione a escuridão ou a " "luminosidade dessa cor usando o triângulo interno." #: src/gcolor3-color-selection.c:387 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Clique no conta-gotas e, em seguida, clique em uma cor em qualquer lugar da " "tela para selecionar essa cor." #: src/gcolor3-color-selection.c:397 msgid "_Hue:" msgstr "_Matiz:" #: src/gcolor3-color-selection.c:398 msgid "Position on the color wheel." msgstr "Posição na roda de cor." #: src/gcolor3-color-selection.c:400 msgid "S_aturation:" msgstr "_Saturação:" #: src/gcolor3-color-selection.c:401 msgid "Intensity of the color." msgstr "Intensidade da cor." #: src/gcolor3-color-selection.c:402 msgid "_Value:" msgstr "_Valor:" #: src/gcolor3-color-selection.c:403 msgid "Brightness of the color." msgstr "Brilho da cor." #: src/gcolor3-color-selection.c:404 msgid "_Red:" msgstr "Ve_rmelho:" #: src/gcolor3-color-selection.c:405 msgid "Amount of red light in the color." msgstr "Quantidade de luz vermelha na cor." #: src/gcolor3-color-selection.c:406 msgid "_Green:" msgstr "Ver_de:" #: src/gcolor3-color-selection.c:407 msgid "Amount of green light in the color." msgstr "Quantidade de verdade vermelho na cor." #: src/gcolor3-color-selection.c:408 msgid "_Blue:" msgstr "_Azul:" #: src/gcolor3-color-selection.c:409 msgid "Amount of blue light in the color." msgstr "Quantidade de azul leve na cor." #: src/gcolor3-color-selection.c:412 msgid "Op_acity:" msgstr "_Opacidade:" #: src/gcolor3-color-selection.c:420 src/gcolor3-color-selection.c:430 msgid "Transparency of the color." msgstr "Transparência da cor." #: src/gcolor3-color-selection.c:437 msgid "Color _Name:" msgstr "_Nome da cor:" #: src/gcolor3-color-selection.c:452 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Você pode inserir um valor de cor hexadecimal no estilo HTML ou simplesmente " "um nome de cor como “laranja” nessa entrada." #: src/gcolor3-color-selection.c:484 msgid "_Palette:" msgstr "_Paleta:" #: src/gcolor3-color-selection.c:514 msgid "Color Wheel" msgstr "Roda de cor" #: src/gcolor3-color-selection.c:964 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "A cor selecionada anteriormente, para comparação com a cor que você está " "selecionando agora. Você pode arrastar essa cor para uma entrada de paleta " "ou selecionar essa cor como corrente arrastando-a para a outra amostra de " "cor ao lado." #: src/gcolor3-color-selection.c:970 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "A cor que você escolheu. Você pode arrastar essa cor para uma entrada de " "paleta para salvá-la para uso no futuro." #: src/gcolor3-color-selection.c:976 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "A cor selecionada anteriormente, para comparação com a cor que você está " "selecionando agora." #: src/gcolor3-color-selection.c:980 msgid "The color you’ve chosen." msgstr "A cor que você escolheu." #: src/gcolor3-color-selection.c:1348 msgid "_Save color here" msgstr "_Salvar cor aqui" #: src/gcolor3-color-selection.c:1554 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Clique nesta entrada da paleta para torná-la a cor atual. Para alterar essa " "entrada, arraste uma amostra de cor aqui ou clique com o botão direito e " "selecione “Salvar cor aqui”." #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Seletor" #~ msgid "nl.hjdskes.gcolor3" #~ msgstr "nl.hjdskes.gcolor3" #~ msgid "Jente Hidskes" #~ msgstr "Jente Hidskes" #~ msgid "Picking a color is currently not supported on Wayland." #~ msgstr "Não suporte a escolher uma cor no Wayland." #~ msgid "_About" #~ msgstr "S_obre" #~ msgid "_Quit" #~ msgstr "_Sair" gcolor3-2.4.0/po/ro.po000066400000000000000000000236551372141071500144770ustar00rootroot00000000000000# Romanian translation for gcolor3. # Copyright (C) 2020 gcolor3's COPYRIGHT HOLDER # This file is distributed under the same license as the gcolor3 package. # Florentina Mușat , 2020. # msgid "" msgstr "" "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2020-04-01 19:03+0000\n" "PO-Revision-Date: 2020-05-18 18:20+0300\n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2);;\n" "Last-Translator: Florentina Mușat \n" "X-Generator: Poedit 2.3.1\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Selector de culori" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Alegeți culori din selector sau de pe ecran" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Color;Picker;Palette;culori;selector;paletă;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Ați dorit vreodată să știți valoarea culorii aceea de pe ecran? Selector de " "culori vă permite să alegeți culoarea din oricare pixel de pe ecran. Oferă, " "de asemenea, o paletă, pentru ca să puteți amesteca și potrivi ușor câteva " "culori împreună." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Când ați găsit combinația perfectă de culori, în mod natural doriți să le " "salvați. Selector de culori vă permite să salvați și să obțineți culori " "convenient." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Selector de culori este un dialog de selectare a culorii scris în GTK+ 3. " "Este foarte similar cu Gcolor2, dar utilizează versiunea nouă GTK+ și alte " "modernizări pentru a se integra mai bine în desktopul modern." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Selectorul și paleta de culori" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Lista culorilor salvate" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Hex" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Apăsați clic pentru a modifica numele culorii" #: data/color-row.ui:47 msgid "Name" msgstr "Nume" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Copiază valoarea hex a acestei culori pe clipboard" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Șterge această culoare" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "Scurtături de _tastatură" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_Despre selector de culori" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Generale" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Modifică pagina" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Scurtături de paletă" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Salvează culoarea selectată curent" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Gestionarea culorii salvate" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Copiază valoarea hex a culorii evidențiate" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Șterge culoarea evidențiată" #: data/window.ui:32 msgid "Color name…" msgstr "Nume culoare…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Salvează o culoare aleasă pentru a o face să apară aici" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Nu aveți culori salvate" #: data/window.ui:249 msgid "Saved Colors" msgstr "Culori salvate" #: src/main.c:43 msgid "Show the application’s version" msgstr "Arată versiunea aplicației" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— alege o culoare din selector sau de pe ecran" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Rulați „%s --help” pentru a vedea o listă completă de opțiuni în linie de " "comandă disponibile" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "Florentina Mușat , 2020" #: src/gcolor3-application.c:91 msgid "Website" msgstr "Pagină web" #: src/gcolor3-color-selection.c:361 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Selectați culoarea pe care o doriți din inelul exterior. Selectați " "obscuritatea sau luminozitatea acelei culori utilizând triunghiul interior." #: src/gcolor3-color-selection.c:387 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Apăsați clic pe pipetă, apoi clic pe o culoare oriunde pe ecran pentru a " "selecta acea culoare." #: src/gcolor3-color-selection.c:397 msgid "_Hue:" msgstr "_Nuanță:" #: src/gcolor3-color-selection.c:398 msgid "Position on the color wheel." msgstr "Poziția pe paleta de culori." #: src/gcolor3-color-selection.c:400 msgid "S_aturation:" msgstr "S_aturație:" #: src/gcolor3-color-selection.c:401 msgid "Intensity of the color." msgstr "Intensitatea culorii." #: src/gcolor3-color-selection.c:402 msgid "_Value:" msgstr "_Valoare:" #: src/gcolor3-color-selection.c:403 msgid "Brightness of the color." msgstr "Luminozitatea culorii." #: src/gcolor3-color-selection.c:404 msgid "_Red:" msgstr "_Roșu:" #: src/gcolor3-color-selection.c:405 msgid "Amount of red light in the color." msgstr "Cantitatea de lumină roșie în culoare." #: src/gcolor3-color-selection.c:406 msgid "_Green:" msgstr "_Verde:" #: src/gcolor3-color-selection.c:407 msgid "Amount of green light in the color." msgstr "Cantitatea de lumină verde în culoare." #: src/gcolor3-color-selection.c:408 msgid "_Blue:" msgstr "Al_bastru:" #: src/gcolor3-color-selection.c:409 msgid "Amount of blue light in the color." msgstr "Cantitatea de lumină albastră în culoare." #: src/gcolor3-color-selection.c:412 msgid "Op_acity:" msgstr "Op_acitate:" #: src/gcolor3-color-selection.c:420 src/gcolor3-color-selection.c:430 msgid "Transparency of the color." msgstr "Transparența culorii." #: src/gcolor3-color-selection.c:437 msgid "Color _Name:" msgstr "_Nume culoare:" #: src/gcolor3-color-selection.c:452 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Puteți să introduceți o valoare de culoare hexazecimală în stil HTML, sau " "pur și simplu un nume de culoare precum „portocaliu” în această intrare." #: src/gcolor3-color-selection.c:484 msgid "_Palette:" msgstr "_Paletă:" #: src/gcolor3-color-selection.c:514 msgid "Color Wheel" msgstr "Paletă de culori" #: src/gcolor3-color-selection.c:964 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Culoarea selectată anterior, pentru comparație cu culoarea pe care o " "selectați acum. Puteți trage această culoare într-o intrare de paletă, sau " "puteți selecta această culoare ca și curentă, trăgând-o în cealaltă mostră " "de culoare de lângă." #: src/gcolor3-color-selection.c:970 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Culoarea pe care ați ales-o. Puteți să trageți această culoare la o intrare " "de paletă pentru a o salva pentru uz în viitor." #: src/gcolor3-color-selection.c:976 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "Culoarea selectată anterior, pentru comparație cu culoarea pe care o " "selectați acum." #: src/gcolor3-color-selection.c:980 msgid "The color you’ve chosen." msgstr "Culoarea pe care ați ales-o." #: src/gcolor3-color-selection.c:1348 msgid "_Save color here" msgstr "_Salvează culoarea aici" #: src/gcolor3-color-selection.c:1554 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Apăsați clic pe această intrare de paletă pentru a o face culoarea curentă. " "Pentru a schimba această intrare, trageți o mostră de culoare aici sau " "apăsați clic dreapta pe ea și selectați „Salvează culoarea aici”." #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Selector" gcolor3-2.4.0/po/ru.po000066400000000000000000000366331372141071500145050ustar00rootroot00000000000000# Russian translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. msgid "" msgstr "" "Project-Id-Version: 2.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-09-01 19:50+0200\n" "PO-Revision-Date: 2018-08-28 10:50+0200\n" "Last-Translator: PuppyRus linux Team \n" "Language-Team: puppyrus.org\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:145 msgid "Color picker" msgstr "Выбор цвета" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:84 msgid "Choose colors from the picker or the screen" msgstr "Определите цвет на экране с помощью пипетки" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: data/nl.hjdskes.gcolor3.desktop.in:7 msgid "nl.hjdskes.gcolor3" msgstr "" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Color;Picker;Palette;Цвет;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" "Хотите узнать значение любого цвета на экране? Gcolor3 поможет вам, " "коснитесь пипеткой нужной точки на экране. Программа также имеет палитру, " "так что вы можете легко смешивать и сочетать пару цветов вместе." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" "Gcolor3 позволяет сохранять и загружать созданные вами комбинации цвета." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Gcolor3 это программа выбора цвета написанная на GTK+ 3. Программа похожа на " "Gcolor2, но использует новую версию GTK+ и другие улучшения для лучшей " "интеграции в современные окружения рабочих столов." #: data/nl.hjdskes.gcolor3.appdata.xml.in:33 msgid "The picker and the color palette" msgstr "Пипетка и палитра цветов" #: data/nl.hjdskes.gcolor3.appdata.xml.in:37 msgid "The list of saved colors" msgstr "Список сохраненных цветов" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:44 msgid "Jente Hidskes" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:58 msgid "Redesign the saved colors page" msgstr "Редактор страницы сохраненных цветов" #: data/nl.hjdskes.gcolor3.appdata.xml.in:59 msgid "Redesign the header bar" msgstr "Редактор заголовка панели" #: data/nl.hjdskes.gcolor3.appdata.xml.in:60 msgid "Disable color picking on Wayland for now, instead of crashing" msgstr "Выключить пробу цветов в Wayland, для исключения падения программы" #: data/nl.hjdskes.gcolor3.appdata.xml.in:61 msgid "Add a shortcuts window" msgstr "Добавить окно со ссылками" #: data/nl.hjdskes.gcolor3.appdata.xml.in:62 msgid "Gcolor3 is now available as a Flatpak" msgstr "Gcolor3 теперь доступен как пакет Flatpak" #: data/nl.hjdskes.gcolor3.appdata.xml.in:63 msgid "New and updated translations" msgstr "Новые и обновленные переводы" #: data/nl.hjdskes.gcolor3.appdata.xml.in:64 msgid "Gcolor3 now comes with a manual page" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:65 msgid "Lots of under-the-hood improvements" msgstr "Множество других имзменений" #: data/nl.hjdskes.gcolor3.appdata.xml.in:74 msgid "Centrally manage colors between several running instances;" msgstr "" "Централизованное управление цветами между несколькими запущенными " "экземплярами;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:75 msgid "" "Follow the XDG directory specification for the configuration file. This " "means that the configuration file has moved from `~/.rgb.ini` to `" "$XDG_CONFIG_HOME/gcolor3/config.ini`;" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:77 msgid "Copy the selected color's hex value from the tree view using Ctrl-C;" msgstr "" "Копировать hex значение цвета в буфер обмена для последующей вставки Ctrl-C;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:78 msgid "Make the main window resizable;" msgstr "Разрешить изменение размеров окна;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:79 msgid "Translation updates." msgstr "Обновления переводов." #: data/color-row.ui:46 msgid "Click to change the color's name" msgstr "Щелкните для изменения имени цвета" #: data/color-row.ui:47 msgid "Name" msgstr "Имя" #: data/color-row.ui:68 msgid "Copy this color's hex value to the clipboard" msgstr "Копировать hex значение цвета в буфер обмена" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Удалить цвет" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Горячие клавиши" #: data/menus.ui:11 msgid "_About" msgstr "_О программе" #: data/menus.ui:15 msgid "_Quit" msgstr "_Выход" #: data/shortcuts.ui:14 msgid "General" msgstr "Основные" #: data/shortcuts.ui:19 msgid "Change page" msgstr "Изменить страницу" #: data/shortcuts.ui:27 msgid "Palette shortcuts" msgstr "Palette shortcuts" #: data/shortcuts.ui:32 msgid "Save currently selected color" msgstr "Сохранить выбранный цвет" #: data/shortcuts.ui:40 msgid "Saved color management" msgstr "Saved colour management" #: data/shortcuts.ui:45 msgid "Copy highlighted color's hex value" msgstr "Copy highlighted colour's hex value" #: data/shortcuts.ui:52 msgid "Delete highlighted color" msgstr "Delete highlighted colour" #: data/window.ui:26 msgid "Color name..." msgstr "Название цвета..." #: data/window.ui:89 msgid "page0" msgstr "страница0" #: data/window.ui:155 msgid "page1" msgstr "страница1" #: data/window.ui:162 msgid "Saved colors" msgstr "Сохраненные цвета" #: src/main.c:43 msgid "Show the application's version" msgstr "Показать версию программы" #: src/main.c:54 msgid "- pick a color from the picker or the screen" msgstr "- определите цвет на экране с помощью пипетки" #: src/main.c:65 #, c-format msgid "Run '%s --help' to see a full list of available command line options" msgstr "Запустите '%s --help' для просмотра списка всех доступных параметров" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:88 msgid "translator-credits" msgstr "PuppyRus linux Team" #: src/gcolor3-application.c:89 msgid "Website" msgstr "Website" #: src/gcolor3-color-row.c:76 msgid "Could not parse color to display thumbnail\n" msgstr "Не удается получить цвет для предпросмотра\n" #: src/gcolor3-color-selection.c:406 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Выберите нужный цвет на внешнем круге. Выберите темный или более светлый " "оттенок, используя внутренний треугольник." #: src/gcolor3-color-selection.c:436 msgid "Picking a color is currently not supported on Wayland." msgstr "Пипетка в настоящее время не работает в Wayland." #: src/gcolor3-color-selection.c:447 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Щелкните на пипетке, затем щелкните на цвете в любом месте экрана чтобы " "выбрать этот цвет." #: src/gcolor3-color-selection.c:458 msgid "_Hue:" msgstr "_Тон:" #: src/gcolor3-color-selection.c:459 msgid "Position on the color wheel." msgstr "Положение на цветовом круге." #: src/gcolor3-color-selection.c:461 msgid "S_aturation:" msgstr "Н_асыщенность:" #: src/gcolor3-color-selection.c:462 msgid "Intensity of the color." msgstr "Глубина цвета." #: src/gcolor3-color-selection.c:463 msgid "_Value:" msgstr "_Значение:" #: src/gcolor3-color-selection.c:464 msgid "Brightness of the color." msgstr "Яркость цвета." #: src/gcolor3-color-selection.c:465 msgid "_Red:" msgstr "_Красный:" #: src/gcolor3-color-selection.c:466 msgid "Amount of red light in the color." msgstr "Количество красного оттенка в цвете." #: src/gcolor3-color-selection.c:467 msgid "_Green:" msgstr "_Зеленый:" #: src/gcolor3-color-selection.c:468 msgid "Amount of green light in the color." msgstr "Количество зеленого оттенка в цвете." #: src/gcolor3-color-selection.c:469 msgid "_Blue:" msgstr "_Синий:" #: src/gcolor3-color-selection.c:470 msgid "Amount of blue light in the color." msgstr "Количество зеленого оттенка в цвете." #: src/gcolor3-color-selection.c:473 msgid "Op_acity:" msgstr "Не_прозрачность:" #: src/gcolor3-color-selection.c:481 src/gcolor3-color-selection.c:491 msgid "Transparency of the color." msgstr "Прозрачность цвета." #: src/gcolor3-color-selection.c:498 msgid "Color _name:" msgstr "_Имя цвета:" #: src/gcolor3-color-selection.c:513 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Вы можете ввести в этой строке или шестнадцатеричное значение цвета (в стиле " "HTML), или название цвета, например, “orange”" #: src/gcolor3-color-selection.c:545 msgid "_Palette:" msgstr "_Палитра:" #: src/gcolor3-color-selection.c:575 msgid "Color Wheel" msgstr "Цветовой круг" #: src/gcolor3-color-selection.c:1040 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Выбранный ранее цвет, для сравнения c цветом, выбранным сейчас. Вы можете " "перетащить этот цвет на палитру, или выбрать в качестве основного, перетащив " "поверх основного цвета." #: src/gcolor3-color-selection.c:1046 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Выбранный вами цвет. Вы можете перетащить этот цвет на палитру и сохранить " "его для будущего использования." #: src/gcolor3-color-selection.c:1052 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "Выбранный ранее цвет, для сравнения c цветом, выбранным сейчас." #: src/gcolor3-color-selection.c:1056 msgid "The color you’ve chosen." msgstr "Выбранный вами цвет." #: src/gcolor3-color-selection.c:1425 msgid "_Save color here" msgstr "_Сохранить цвет" #: src/gcolor3-color-selection.c:1631 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Щелкните на палитре чтобы выбрать цвет. Для изменения цвета, перемещайте " "указатель, щелчком правой кнопки выберите “Сохранить цвет”." #: src/gcolor3-color-store.c:66 #, c-format msgid "Error creating config directory: %s" msgstr "Ошибка создания каталога с настройками: %s" #: src/gcolor3-color-store.c:89 #, c-format msgid "Cannot count number of items: %s\n" msgstr "Ошибка подсчета количества элементов: %s\n" #: src/gcolor3-color-store.c:110 #, c-format msgid "Cannot read colors: %s\n" msgstr "Ошибка чтения цвета: %s\n" #: src/gcolor3-color-store.c:124 #, c-format msgid "Cannot access color at position %d: %s\n" msgstr "Ошибка чтения цвета %d: %s\n" #: src/gcolor3-color-store.c:147 #, c-format msgid "Error writing file: %s" msgstr "Ошибка записи файла: %s" #: src/gcolor3-color-store.c:187 #, c-format msgid "" "Error opening file: %s. Colors likely won't be saved, unless this is the " "first run" msgstr "" "Ошибка открытия файла: %s. Цвета не были сохранены, возможно это первый " "запуск программы" #: src/gcolor3-color-store.c:215 src/gcolor3-color-store.c:301 #, c-format msgid "There is already a color named `%s`" msgstr "Уже есть цвет с именем `%s`" #: src/gcolor3-color-store.c:222 #, c-format msgid "Cannot locate index of addition: %s. UI won't be updated\n" msgstr "Cannot locate index of addition: %s. UI не обновлен\n" #: src/gcolor3-color-store.c:254 #, c-format msgid "Cannot locate index of removal: %s. UI won't be updated\n" msgstr "Cannot locate index of removal: %s. UI не обновлен\n" #: src/gcolor3-color-store.c:268 #, c-format msgid "Error deleting key: %s" msgstr "Ошибка удаления ключа: %s" #: src/gcolor3-color-store.c:296 #, c-format msgid "Cannot rename nonexisting color `%s`" msgstr "Нельзя переименовать несуществующий цвет `%s`" #: src/gcolor3-color-store.c:306 #, c-format msgid "Cannot retrieve hex value belonging to `%s`: %s" msgstr "Не удается получить hex значение `%s`: %s" #: src/gcolor3-color-store.c:312 #, c-format msgid "Error deleting old name `%s`: %s" msgstr "Ошибка удаления старого имени `%s`: %s" #: src/gcolor3-color-store.c:345 #, c-format msgid "Error reading keys: %s. This is harmless if this is the first run" msgstr "Ошибка чтения ключей: %s. Это нормально при первом запуске программы" #: src/gcolor3-window.c:397 msgid "Picker" msgstr "Цвет" gcolor3-2.4.0/po/sr.po000066400000000000000000000403131372141071500144710ustar00rootroot00000000000000# Serbian translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. msgid "" msgstr "" "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-09-01 19:42+0200\n" "PO-Revision-Date: 2018-08-26 18:28+0200\n" "Last-Translator: Марко М. Костић \n" "Language-Team: Serbian\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 2.0.6\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:145 msgid "Color picker" msgstr "Бирач боја" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:84 msgid "Choose colors from the picker or the screen" msgstr "Изаберите боју из бирача или са екрана" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: data/nl.hjdskes.gcolor3.desktop.in:7 msgid "nl.hjdskes.gcolor3" msgstr "" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Боја;Бирач;Палета;Color;Picker;Pallete;Boja:Birač;Paleta" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Gcolor3 enables " "you to pick the color from any pixel on your screen. It also offers a " "palette, so that you can easily mix and match a couple of colors together." msgstr "" "Да ли сте икада пожелели да знате вредност боје на одређеном делу вашег " "екрана? Програм Gcolor3 вам омогућава да одаберете боју са било ког пиксела " "на вашем екрану. Такође вам нуди палету са којом можете лако мешати и " "тражити одговарајуће нијансе." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Gcolor3 allows you to conveniently save and retrieve colors." msgstr "" "Када пронађете савршен спој боја, желите да сачувате те боје. Програм " "Gcolor3 вам омогућава да чувате тренутно изабране боје и користите већ " "сачуване боје." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Програм Gcolor3 је алатка за бирање боја која је написана коришћењем ГТК+ 3. " "Слична је програму Gcolor2 али користи новије издање ГТК+-а и друге модерне " "елементе да би се боље уклопио у ваш модеран начин коришћења рачунара." #: data/nl.hjdskes.gcolor3.appdata.xml.in:33 msgid "The picker and the color palette" msgstr "Бирач и палета боја" #: data/nl.hjdskes.gcolor3.appdata.xml.in:37 msgid "The list of saved colors" msgstr "Списак сачуваних боја" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:44 msgid "Jente Hidskes" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:58 msgid "Redesign the saved colors page" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:59 msgid "Redesign the header bar" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:60 msgid "Disable color picking on Wayland for now, instead of crashing" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:61 msgid "Add a shortcuts window" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:62 msgid "Gcolor3 is now available as a Flatpak" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:63 msgid "New and updated translations" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:64 msgid "Gcolor3 now comes with a manual page" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:65 msgid "Lots of under-the-hood improvements" msgstr "" #: data/nl.hjdskes.gcolor3.appdata.xml.in:74 msgid "Centrally manage colors between several running instances;" msgstr "" "Управљајте бојама са више покренутих примерака програма на једном месту;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:75 msgid "" "Follow the XDG directory specification for the configuration file. This " "means that the configuration file has moved from `~/.rgb.ini` to `" "$XDG_CONFIG_HOME/gcolor3/config.ini`;" msgstr "" "Пратите XDG спецификацију фасцикли за датотеку са подешавањима. Ово значи да " "је датотека подешавања премештена из „~/.rgb.ini“ у „$XDG_CONFIG_HOME/" "gcolor3/config.ini“;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:77 msgid "Copy the selected color's hex value from the tree view using Ctrl-C;" msgstr "" "Копирај хекс вредност изабране боје из приказа стабла користећи Ctrl+C;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:78 msgid "Make the main window resizable;" msgstr "Учини величину главног прозора промењивом;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:79 msgid "Translation updates." msgstr "Ажурирања превода." #: data/color-row.ui:46 msgid "Click to change the color's name" msgstr "Кликни за промену назива боје" #: data/color-row.ui:47 msgid "Name" msgstr "Име" #: data/color-row.ui:68 msgid "Copy this color's hex value to the clipboard" msgstr "Копирај хекс вредност ове боје у оставу" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Обриши ову боју" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "Пречице _тастатуре" #: data/menus.ui:11 msgid "_About" msgstr "_О програму" #: data/menus.ui:15 msgid "_Quit" msgstr "_Изађи" #: data/shortcuts.ui:14 msgid "General" msgstr "Опште" #: data/shortcuts.ui:19 msgid "Change page" msgstr "Промени страницу" #: data/shortcuts.ui:27 msgid "Palette shortcuts" msgstr "Пречице палете" #: data/shortcuts.ui:32 msgid "Save currently selected color" msgstr "Сачувај тренутно изабрану боју" #: data/shortcuts.ui:40 msgid "Saved color management" msgstr "Управљање сачуваним бојама" #: data/shortcuts.ui:45 msgid "Copy highlighted color's hex value" msgstr "Копирај хекс вредност означене боје" #: data/shortcuts.ui:52 msgid "Delete highlighted color" msgstr "Обриши означену боју" #: data/window.ui:26 msgid "Color name..." msgstr "Име боје..." #: data/window.ui:89 msgid "page0" msgstr "" #: data/window.ui:155 msgid "page1" msgstr "" #: data/window.ui:162 msgid "Saved colors" msgstr "Сачуване боје" #: src/main.c:43 msgid "Show the application's version" msgstr "Прикажи издање програма" #: src/main.c:54 msgid "- pick a color from the picker or the screen" msgstr "- изабери боју из бирача или са екрана" #: src/main.c:65 #, c-format msgid "Run '%s --help' to see a full list of available command line options" msgstr "" "Покрените „%s --help“ да бисте видели списак са свим доступним опцијама у " "терминалу" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:88 msgid "translator-credits" msgstr "Марко М. Костић (Marko M. Kostić) " #: src/gcolor3-application.c:89 msgid "Website" msgstr "Веб страница" #: src/gcolor3-color-row.c:76 msgid "Could not parse color to display thumbnail\n" msgstr "Нисам успео да обрадим боју да бих приказао сличицу\n" #: src/gcolor3-color-selection.c:406 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Изаберите жељену боју са спољног прстена. Изаберите светлу или тамну нијансу " "ове боје користећи унутрашњи троугао." #: src/gcolor3-color-selection.c:436 msgid "Picking a color is currently not supported on Wayland." msgstr "Бирање боје тренутно није подржано на Вејленду." #: src/gcolor3-color-selection.c:447 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Кликните на пипету па онда кликните на било коју боју на вашем екрану да " "бисте је изабрали." #: src/gcolor3-color-selection.c:458 msgid "_Hue:" msgstr "_Нијанса:" #: src/gcolor3-color-selection.c:459 msgid "Position on the color wheel." msgstr "Положај на точку боја." #: src/gcolor3-color-selection.c:461 msgid "S_aturation:" msgstr "З_асићеност:" #: src/gcolor3-color-selection.c:462 msgid "Intensity of the color." msgstr "Засићеност боје." #: src/gcolor3-color-selection.c:463 msgid "_Value:" msgstr "_Вредност:" #: src/gcolor3-color-selection.c:464 msgid "Brightness of the color." msgstr "Осветљеност боје." #: src/gcolor3-color-selection.c:465 msgid "_Red:" msgstr "_Црвена:" #: src/gcolor3-color-selection.c:466 msgid "Amount of red light in the color." msgstr "Количина црвене светлости у боји." #: src/gcolor3-color-selection.c:467 msgid "_Green:" msgstr "_Зелена:" #: src/gcolor3-color-selection.c:468 msgid "Amount of green light in the color." msgstr "Количина зелене светлости у боји." #: src/gcolor3-color-selection.c:469 msgid "_Blue:" msgstr "_Плава:" #: src/gcolor3-color-selection.c:470 msgid "Amount of blue light in the color." msgstr "Количина плаве светлости у боји." #: src/gcolor3-color-selection.c:473 msgid "Op_acity:" msgstr "_Провидност:" #: src/gcolor3-color-selection.c:481 src/gcolor3-color-selection.c:491 msgid "Transparency of the color." msgstr "Провидност боје." #: src/gcolor3-color-selection.c:498 msgid "Color _name:" msgstr "_Назив боје:" #: src/gcolor3-color-selection.c:513 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Овде можете унети ХТМЛ хексадецималну вредност боје или назив боје на " "енглеском као што је „orange“." #: src/gcolor3-color-selection.c:545 msgid "_Palette:" msgstr "_Палета:" #: src/gcolor3-color-selection.c:575 msgid "Color Wheel" msgstr "Точак боја" #: src/gcolor3-color-selection.c:1040 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Раније изабрана боја, која се пореди са бојом коју сада изаберете. Ову боју " "можете превући на палету или је изабрати као текућу ако је превучете на " "преглед тренутно изабране боје." #: src/gcolor3-color-selection.c:1046 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Изабрана боја. Можете је превући на палету боја како би је сачували за " "накнадну употребу." #: src/gcolor3-color-selection.c:1052 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "" "Раније изабрана боја која се користи за поређење са бојом коју сада бирате." #: src/gcolor3-color-selection.c:1056 msgid "The color you’ve chosen." msgstr "Боја коју сте изабрали." #: src/gcolor3-color-selection.c:1425 msgid "_Save color here" msgstr "Овде _сачувај боју" #: src/gcolor3-color-selection.c:1631 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Кликните на ову ставку палете да је изаберете као текућу боју. Уколико " "желите да је измените превуците другу боју овде или кликните десним тастером " "миша и изаберите „Овде сачувај боју.“" #: src/gcolor3-color-store.c:66 #, c-format msgid "Error creating config directory: %s" msgstr "Грешка приликом прављења фасцикле са подешавањима: %s" #: src/gcolor3-color-store.c:89 #, c-format msgid "Cannot count number of items: %s\n" msgstr "Не могу да пребројим број ставки: %s\n" #: src/gcolor3-color-store.c:110 #, c-format msgid "Cannot read colors: %s\n" msgstr "Не могу да прочитам боје: %s\n" #: src/gcolor3-color-store.c:124 #, c-format msgid "Cannot access color at position %d: %s\n" msgstr "Не могу да приступим боји на положају %d: %s\n" #: src/gcolor3-color-store.c:147 #, c-format msgid "Error writing file: %s" msgstr "Грешка приликом уписивања у датотеку:%s" #: src/gcolor3-color-store.c:187 #, c-format msgid "" "Error opening file: %s. Colors likely won't be saved, unless this is the " "first run" msgstr "" "Не могу да отворим датотеку: %s. Боје највероватније неће бити сачуване, " "осим ако ово није прво покретање програма" #: src/gcolor3-color-store.c:215 src/gcolor3-color-store.c:301 #, c-format msgid "There is already a color named `%s`" msgstr "Већ постоји боја са називом „%s“" #: src/gcolor3-color-store.c:222 #, c-format msgid "Cannot locate index of addition: %s. UI won't be updated\n" msgstr "Не могу да нађем индекс додатог: %s. УИ вероватно неће бити измењен\n" #: src/gcolor3-color-store.c:254 #, c-format msgid "Cannot locate index of removal: %s. UI won't be updated\n" msgstr "" "Не могу да нађем индекс уклоњеног: %s. УИ вероватно неће бити измењен\n" #: src/gcolor3-color-store.c:268 #, c-format msgid "Error deleting key: %s" msgstr "Грешка приликом брисања кључа: %s" #: src/gcolor3-color-store.c:296 #, c-format msgid "Cannot rename nonexisting color `%s`" msgstr "Не могу да уклоним непостојећу боју „%s“" #: src/gcolor3-color-store.c:306 #, c-format msgid "Cannot retrieve hex value belonging to `%s`: %s" msgstr "Не могу да прочитам хексадецималну вредност која припада „%s“: %s" #: src/gcolor3-color-store.c:312 #, c-format msgid "Error deleting old name `%s`: %s" msgstr "Грешка приликом брисања старог назива `%s`: %s" #: src/gcolor3-color-store.c:345 #, c-format msgid "Error reading keys: %s. This is harmless if this is the first run" msgstr "" "Грешка при читању кључева: %s. Ово је безопасно ако је ово прво покретање " "програма" #: src/gcolor3-window.c:397 msgid "Picker" msgstr "Бирач" gcolor3-2.4.0/po/sv.po000066400000000000000000000254651372141071500145100ustar00rootroot00000000000000# Swedish translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. # Anders Jonsson , 2018, 2019. # msgid "" msgstr "" "Project-Id-Version: gcolor3 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-11-03 11:44+0000\n" "PO-Revision-Date: 2019-11-10 19:12+0100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.4\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Färgväljare" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Välj färger från väljaren eller skärmen" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Färg;Väljare;Palett;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Har du någonsin velat veta värdet på den där färgen på skärmen? Färgväljare " "möjliggör att du kan välja färg från vilken bildpunkt som helst på skärmen. " "Den erbjuder också en palett, så att du enkelt kan blanda olika färger." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "När du har hittat den perfekta kombinationen av färger, vill du naturligtvis " "spara dem. Färgväljare låter dig praktiskt spara och hämta färger." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Färgväljare är en färgvalsdialog skriven i GTK+ 3. Den är mycket lik " "Gcolor2, men använder den nyare GTK+-versionen och andra moderniseringar för " "att bättre integreras i ditt moderna skrivbord." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Väljaren och färgpaletten" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Listan med sparade färger" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Hex" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Klicka för att ändra färgens namn" #: data/color-row.ui:47 msgid "Name" msgstr "Namn" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Kopiera den här färgens hexadecimala värde till urklipp" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Ta bort denna färg" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Tangentbordsgenvägar" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "_Om Färgväljare" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Allmänt" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Ändra sida" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Palettgenvägar" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Spara för närvarande vald färg" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Hantering av sparade färger" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Kopiera hexadecimalt värde för markerad färg" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Ta bort markerad färg" #: data/window.ui:32 msgid "Color name…" msgstr "Färgnamn…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Spara en vald färg för att få den att dyka upp här" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Du har inga sparade färger" #: data/window.ui:249 msgid "Saved Colors" msgstr "Sparade färger" #: src/main.c:43 msgid "Show the application’s version" msgstr "Visa programmets version" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— välj en färg från väljaren eller skärmen" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Kör ”%s --help” för en komplett lista över tillgängliga kommandoradsflaggor" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "" "Angelica Ankarberg\n" "Anders Jonsson" #: src/gcolor3-application.c:91 msgid "Website" msgstr "Webbplats" #: src/gcolor3-color-selection.c:408 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Välj den färg som du vill ha från den yttre ringen. Välj mörkheten eller " "ljusheten på den färgen genom att använda den inre triangeln." #: src/gcolor3-color-selection.c:438 msgid "Picking a color is currently not supported on Wayland." msgstr "Att välja en färg stöds för närvarande inte på Wayland." #: src/gcolor3-color-selection.c:449 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Klicka på pipetten, och klicka sedan på en färg någonstans på din skärm för " "att välja den färgen." #: src/gcolor3-color-selection.c:460 msgid "_Hue:" msgstr "_Nyans:" #: src/gcolor3-color-selection.c:461 msgid "Position on the color wheel." msgstr "Position på färghjulet." #: src/gcolor3-color-selection.c:463 msgid "S_aturation:" msgstr "_Mättnad:" #: src/gcolor3-color-selection.c:464 msgid "Intensity of the color." msgstr "Intensiteten för färgen." #: src/gcolor3-color-selection.c:465 msgid "_Value:" msgstr "_Intensitet:" #: src/gcolor3-color-selection.c:466 msgid "Brightness of the color." msgstr "Ljushet för färgen." #: src/gcolor3-color-selection.c:467 msgid "_Red:" msgstr "_Röd:" #: src/gcolor3-color-selection.c:468 msgid "Amount of red light in the color." msgstr "Mängd rött ljus i färgen." #: src/gcolor3-color-selection.c:469 msgid "_Green:" msgstr "_Grön:" #: src/gcolor3-color-selection.c:470 msgid "Amount of green light in the color." msgstr "Mängd grönt ljus i färgen." #: src/gcolor3-color-selection.c:471 msgid "_Blue:" msgstr "_Blå:" #: src/gcolor3-color-selection.c:472 msgid "Amount of blue light in the color." msgstr "Mängd blått ljus i färgen." #: src/gcolor3-color-selection.c:475 msgid "Op_acity:" msgstr "Op_acitet:" #: src/gcolor3-color-selection.c:483 src/gcolor3-color-selection.c:493 msgid "Transparency of the color." msgstr "Genomskinlighet för färgen." #: src/gcolor3-color-selection.c:500 msgid "Color _Name:" msgstr "Färg_namn:" #: src/gcolor3-color-selection.c:515 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Du kan ange ett hexadecimalt färgvärde i HTML-stil, eller helt enkelt ange " "ett engelskt namn på färgen som exempelvis ”orange” i detta fält." #: src/gcolor3-color-selection.c:547 msgid "_Palette:" msgstr "_Palett:" #: src/gcolor3-color-selection.c:577 msgid "Color Wheel" msgstr "Färghjul" #: src/gcolor3-color-selection.c:1040 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Den färg som valdes tidigare, för att du ska kunna jämföra med den färg du " "väljer nu. Du kan dra färgen till en palettpost, eller välja denna färg som " "den aktuella genom att dra den till det andra färgprovet." #: src/gcolor3-color-selection.c:1046 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Färgen som du valt. Du kan dra den här färgen till en palettpost för att " "spara den för framtida bruk." #: src/gcolor3-color-selection.c:1052 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "Den tidigare valda färgen, för jämförelse med färgen som du väljer nu." #: src/gcolor3-color-selection.c:1056 msgid "The color you’ve chosen." msgstr "Färgen som du valt." #: src/gcolor3-color-selection.c:1424 msgid "_Save color here" msgstr "_Spara färgen här" #: src/gcolor3-color-selection.c:1630 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Klicka på denna palettpost för att göra den till aktuell färg. För att ändra " "denna post kan du dra ett färgprov hit eller högerklicka och välja ”Spara " "färg här”." #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Väljare" #~ msgid "nl.hjdskes.gcolor3" #~ msgstr "nl.hjdskes.gcolor3" #~ msgid "Jente Hidskes" #~ msgstr "Jente Hidskes" #~ msgid "_About" #~ msgstr "_Om" #~ msgid "_Quit" #~ msgstr "_Avsluta" #~ msgid "Error creating config directory: %s" #~ msgstr "Fel vid skapande av konfigurationsmappen: %s" #~ msgid "Error writing file: %s" #~ msgstr "Fel vid skrivande av fil: %s" #~ msgid "Error opening file: %s. Colors likely won't be saved" #~ msgstr "Fel vid öppnande av fil: %s. Färger kommer inte att sparas" #~ msgid "There is already a color named `%s`" #~ msgstr "Det finns redan en färg som heter `%s`" #~ msgid "Error deleting key: %s" #~ msgstr "Fel vid radering av nyckel: %s" #~ msgid "Cannot rename nonexisting color `%s`" #~ msgstr "Kan inte namge obefintlig färg `%s`" #~ msgid "Cannot retrieve hex value belonging to `%s`: %s" #~ msgstr "Kan inte hämta hex-värde tillhörande `%s`: %s" #~ msgid "Error deleting old name `%s`: %s" #~ msgstr "Fel vid radering av gammalt namn `%s`: %s" #~ msgid "Error reading keys: %s" #~ msgstr "Fel vid avläsning av nycklar: %s" #~ msgid "The model is empty; there are no colors to remove" #~ msgstr "Modellen är tom; det finns inga färger att radera" #~ msgid "Cannot update color: invalid path" #~ msgstr "Kan inte uppdatera färg: ogiltig väg" gcolor3-2.4.0/po/tr.po000066400000000000000000000227271372141071500145030ustar00rootroot00000000000000# Turkish translation for Color Picker. # Copyright (C) 2019 Color Picker's COPYRIGHT HOLDER # This file is distributed under the same license as the Color Picker package. # # Sabri Ünal , 2019. # msgid "" msgstr "" "Project-Id-Version: Color Picker master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-11-21 19:52+0000\n" "PO-Revision-Date: 2019-11-28 05:09+0300\n" "Last-Translator: Sabri Ünal \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 2.0.6\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 msgid "Color Picker" msgstr "Renk Seçici" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Seçiciden veya ekrandan renk seç" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Renk;Seçici;Palet;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Ekranınızdaki o rengin değerini bilmek istediniz mi? Renk Seçici, ekrandaki " "herhangi bir pikselden renk seçmenize olanak tanır. Ayrıca bir palet sunar, " "böylece birkaç rengi kolayca karıştırabilir ve eşleştirebilirsiniz." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Mükemmel renk kombinasyonunu bulduğunuzda, doğal olarak kaydetmek " "istersiniz. Renk Seçici, renkleri kolayca yakalamanızı ve kaydetmenizi " "sağlar." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "Renk Seçici, GTK+ 3 ile yazılmış bir renk seçimi iletişim penceresidir. " "Gcolor2'ye çok benzer, ancak modern masaüstünüze daha iyi entegre olmak için " "daha yeni GTK+ sürümünü ve diğer modernizasyonları kullanır." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Renk seçici ve renk paleti" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Kaydedilmiş renklerin listesi" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Onaltılık" #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Rengin adını değiştirmek için tıklayın" #: data/color-row.ui:47 msgid "Name" msgstr "Ad" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "Bu rengin onaltılık değerini panoya kopyala" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Bu rengi sil" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "Klavye _Kısayolları" #: data/menus.ui:11 msgid "_About Color Picker" msgstr "Renk Seçici _Hakkında" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Genel" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Sayfayı değiştir" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Palet kısayolları" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Seçilmiş rengi kaydet" #: data/shortcuts.ui:40 msgctxt "shortcut window" msgid "Saved color management" msgstr "Kaydedilmiş renkler yönetimi" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Vurgulanan rengin onaltılık değerini kopyala" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Vurgulanan rengi sil" #: data/window.ui:32 msgid "Color name…" msgstr "Renk adı…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Burada görünmesini sağlamak için seçilmiş bir rengi kaydedin" #: data/window.ui:112 msgid "You have no saved colors" msgstr "Kaydedilmiş renk yok" #: data/window.ui:249 msgid "Saved Colors" msgstr "Kaydedilmiş Renkler" #: src/main.c:43 msgid "Show the application’s version" msgstr "Uygulamanın sürümünü göster" #: src/main.c:54 msgid "— pick a color from the picker or the screen" msgstr "— seçiciden veya ekrandan renk seç" #: src/main.c:65 #, c-format msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Tüm komut satırı seçeneklerini görmek için “%s --help” komutunu çalıştırın" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "Sabri Ünal , 2019" #: src/gcolor3-application.c:91 msgid "Website" msgstr "Web sitesi" #: src/gcolor3-color-selection.c:361 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Dış çemberden istediğiniz bir rengi seçin. İçteki üçgeni kullanarak rengin " "koyuluğunu ya da açıklığını seçebilirsiniz." #: src/gcolor3-color-selection.c:387 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Damlalığa tıkladıktan sonra ekranınızdaki istediğiniz bir renge tıklayarak " "rengi seçebilirsiniz." #: src/gcolor3-color-selection.c:397 msgid "_Hue:" msgstr "_Renk tonu:" #: src/gcolor3-color-selection.c:398 msgid "Position on the color wheel." msgstr "Renk tekerleği üstündeki konum." #: src/gcolor3-color-selection.c:400 msgid "S_aturation:" msgstr "D_oygunluk:" #: src/gcolor3-color-selection.c:401 msgid "Intensity of the color." msgstr "Rengin yoğunluğu." #: src/gcolor3-color-selection.c:402 msgid "_Value:" msgstr "_Değer:" #: src/gcolor3-color-selection.c:403 msgid "Brightness of the color." msgstr "Rengin parlaklığı." #: src/gcolor3-color-selection.c:404 msgid "_Red:" msgstr "_Kırmızı:" #: src/gcolor3-color-selection.c:405 msgid "Amount of red light in the color." msgstr "Renkteki kırmızı ışık miktarı." #: src/gcolor3-color-selection.c:406 msgid "_Green:" msgstr "_Yeşil:" #: src/gcolor3-color-selection.c:407 msgid "Amount of green light in the color." msgstr "Renkteki yeşil ışık miktarı." #: src/gcolor3-color-selection.c:408 msgid "_Blue:" msgstr "_Mavi:" #: src/gcolor3-color-selection.c:409 msgid "Amount of blue light in the color." msgstr "Renkteki mavi ışık miktarı." #: src/gcolor3-color-selection.c:412 msgid "Op_acity:" msgstr "_Matlık:" #: src/gcolor3-color-selection.c:420 src/gcolor3-color-selection.c:430 msgid "Transparency of the color." msgstr "Rengin şeffaflığı." #: src/gcolor3-color-selection.c:437 msgid "Color _Name:" msgstr "Renk _Adı:" #: src/gcolor3-color-selection.c:452 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "HTML biçemi bir onaltılık renk değeri girebileceğiniz gibi, “orange” gibi " "bir renk adı da belirtebilirsiniz." #: src/gcolor3-color-selection.c:484 msgid "_Palette:" msgstr "_Palet:" #: src/gcolor3-color-selection.c:514 msgid "Color Wheel" msgstr "Renk Çemberi" #: src/gcolor3-color-selection.c:964 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Şimdi seçtiğiniz renkle karşılaştırmak için önceden seçilmiş renk. Bu rengi " "bir palete sürükleyebilir ya da diğer renk örneklerinin yanına sürükleyerek " "onu geçerli renk yapabilirsiniz." #: src/gcolor3-color-selection.c:970 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Seçtiğiniz renk. Bu rengi bir palete sürükleyerek ileride kullanmak üzere " "kaydedebilirsiniz." #: src/gcolor3-color-selection.c:976 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "Şimdi seçtiğiniz rengi karşılaştırmak için önceden seçilen renk." #: src/gcolor3-color-selection.c:980 msgid "The color you’ve chosen." msgstr "Seçmiş olduğunuz renk." #: src/gcolor3-color-selection.c:1348 msgid "_Save color here" msgstr "_Rengi buraya kaydet" #: src/gcolor3-color-selection.c:1554 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Bu palet girdisine tıklayarak onu şu anki renginiz yapabilirsiniz. Bu " "girdiyi değiştirmek isterseniz buraya bir renk örneğini sürekledikten sonra " "“Rengi buraya kaydet” ögesini seçiniz." #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Seçici" gcolor3-2.4.0/po/uk.po000066400000000000000000000306061372141071500144700ustar00rootroot00000000000000# Swedish translation for Gcolor3. # This file is distributed under the same license as the Gcolor3 package. # Yuri Chornoivan , 2020. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/gcolor3/issues\n" "POT-Creation-Date: 2019-11-16 21:30+0000\n" "PO-Revision-Date: 2020-04-01 22:02+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<" "=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 20.07.70\n" #: data/nl.hjdskes.gcolor3.desktop.in:3 #: data/nl.hjdskes.gcolor3.appdata.xml.in:7 src/gcolor3-application.c:148 #| msgid "Color picker" msgid "Color Picker" msgstr "Піпетка" #: data/nl.hjdskes.gcolor3.desktop.in:4 #: data/nl.hjdskes.gcolor3.appdata.xml.in:8 src/gcolor3-application.c:86 msgid "Choose colors from the picker or the screen" msgstr "Виберіть колір з набору або з екрана" #. Translators: Extra keywords that can be used to search for Gcolor3 in GNOME Shell and Unity #: data/nl.hjdskes.gcolor3.desktop.in:13 msgid "Color;Picker;Palette;" msgstr "Color;Picker;Palette;колір;піпетка;палітра;" #: data/nl.hjdskes.gcolor3.appdata.xml.in:10 #| msgid "" #| "Ever wanted to know the value of that color on your screen? Gcolor3 " #| "enables you to pick the color from any pixel on your screen. It also " #| "offers a palette, so that you can easily mix and match a couple of colors " #| "together." msgid "" "Ever wanted to know the value of that color on your screen? Color Picker " "enables you to pick the color from any pixel on your screen. It also offers " "a palette, so that you can easily mix and match a couple of colors together." msgstr "" "Бажаєте одержати значення кольору на вашому екрані? «Піпетка» надає змогу" " вибрати " "колір з будь-якої точки екрана. Також є палітра, тож можете легко змішувати " "і поєднувати кольори." #: data/nl.hjdskes.gcolor3.appdata.xml.in:15 #| msgid "" #| "When you have found the perfect combination of colors, naturally you want " #| "to save them. Gcolor3 allows you to conveniently save and retrieve colors." msgid "" "When you have found the perfect combination of colors, naturally you want to " "save them. Color Picker allows you to conveniently save and retrieve colors." msgstr "" "Коли ви знайшли ідеальний набір кольорів, вочевидь, ви захочете їх зберегти. " "«Піпетка» дозволяє зручно зберігати і одержувати кольори." #: data/nl.hjdskes.gcolor3.appdata.xml.in:19 #| msgid "" #| "Gcolor3 is a color selection dialog written in GTK+ 3. It is much alike " #| "Gcolor2, but uses the newer GTK+ version and other modernisations to " #| "better integrate into your modern desktop." msgid "" "Color Picker is a color selection dialog written in GTK+ 3. It is much alike " "Gcolor2, but uses the newer GTK+ version and other modernisations to better " "integrate into your modern desktop." msgstr "" "«Піпетка» — вікно вибору кольорів, написаних на GTK+ 3. Дуже схожий на " "Gcolor2, але підтримує новішу версію GTK+ та інші покращення для " "інтегрування в сучасні стільниці." #: data/nl.hjdskes.gcolor3.appdata.xml.in:32 msgid "The picker and the color palette" msgstr "Палітра і вибір кольорів" #: data/nl.hjdskes.gcolor3.appdata.xml.in:36 msgid "The list of saved colors" msgstr "Перелік збережений кольорів" #. Translators: please do NOT translate this. #: data/nl.hjdskes.gcolor3.appdata.xml.in:43 msgid "Christopher Davis" msgstr "Christopher Davis" #: data/color-row.ui:31 msgid "Hex" msgstr "Шістн." #: data/color-row.ui:46 msgid "Click to change the color’s name" msgstr "Натисніть, щоб змінити назву кольору" #: data/color-row.ui:47 msgid "Name" msgstr "Назва" #: data/color-row.ui:68 msgid "Copy this color’s hex value to the clipboard" msgstr "" "Копіювати шістнадцяткове значення цього кольору до буфера обміну даними" #: data/color-row.ui:90 msgid "Delete this color" msgstr "Вилучити цей колір" #: data/menus.ui:7 msgid "_Keyboard Shortcuts" msgstr "_Клавіатурні скорочення" #: data/menus.ui:11 #| msgid "Color picker" msgid "_About Color Picker" msgstr "_Про «Піпетку»" #: data/shortcuts.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Загальні" #: data/shortcuts.ui:19 msgctxt "shortcut window" msgid "Change page" msgstr "Змінити сторінку" #: data/shortcuts.ui:27 msgctxt "shortcut window" msgid "Palette shortcuts" msgstr "Клавіатурні скорочення палітри" #: data/shortcuts.ui:32 msgctxt "shortcut window" msgid "Save currently selected color" msgstr "Зберегти поточний позначений колір" #: data/shortcuts.ui:40 #| msgid "Saved colors" msgctxt "shortcut window" msgid "Saved color management" msgstr "Керування збереженими кольорам" #: data/shortcuts.ui:45 msgctxt "shortcut window" msgid "Copy highlighted color’s hex value" msgstr "Копіювати шістнадцяткове значення підсвіченого кольору" #: data/shortcuts.ui:52 msgctxt "shortcut window" msgid "Delete highlighted color" msgstr "Вилучити підсвічений колір" #: data/window.ui:32 #| msgid "Color name..." msgid "Color name…" msgstr "Назва кольору…" #: data/window.ui:94 msgid "Save a picked color to make it appear here" msgstr "Збережіть вибраний колір, щоб він з'явився у цьому наборі" #: data/window.ui:112 #| msgid "The list of saved colors" msgid "You have no saved colors" msgstr "У вас немає збережених кольорів" #: data/window.ui:249 #| msgid "Saved colors" msgid "Saved Colors" msgstr "Збережені кольори" #: src/main.c:43 #| msgid "Show the application's version" msgid "Show the application’s version" msgstr "Показати версію програми" #: src/main.c:54 #| msgid "- pick a color from the picker or the screen" msgid "— pick a color from the picker or the screen" msgstr "— виберіть колір з набору або з екрана" #: src/main.c:65 #, c-format #| msgid "Run '%s --help' to see a full list of available command line options" msgid "Run “%s --help” to see a full list of available command line options" msgstr "" "Щоб переглянути повний список можливих параметрів командного рядка, віддайте " "команду «%s --help»" #. Translators: translate this to give yourself credits. #: src/gcolor3-application.c:90 msgid "translator-credits" msgstr "Daniel Korostil " #: src/gcolor3-application.c:91 msgid "Website" msgstr "Сайт" #: src/gcolor3-color-selection.c:361 msgid "" "Select the color you want from the outer ring. Select the darkness or " "lightness of that color using the inner triangle." msgstr "" "Виберіть бажаний колір на зовнішньому колі. Виберіть темніший чи світліший " "відтінок, використовуючи внутрішній трикутник." #: src/gcolor3-color-selection.c:387 msgid "" "Click the eyedropper, then click a color anywhere on your screen to select " "that color." msgstr "" "Клацніть на піпетці, а потім по кольору в будь-якому місці екрана, щоб " "вибрати цей колір." #: src/gcolor3-color-selection.c:397 msgid "_Hue:" msgstr "_Відтінок:" #: src/gcolor3-color-selection.c:398 msgid "Position on the color wheel." msgstr "Позиція у колірному колі." #: src/gcolor3-color-selection.c:400 msgid "S_aturation:" msgstr "Нас_иченість:" #: src/gcolor3-color-selection.c:401 msgid "Intensity of the color." msgstr "Прозорість кольору." #: src/gcolor3-color-selection.c:402 msgid "_Value:" msgstr "_Яскравість:" #: src/gcolor3-color-selection.c:403 msgid "Brightness of the color." msgstr "Яскравість кольору." #: src/gcolor3-color-selection.c:404 msgid "_Red:" msgstr "_Червоний:" #: src/gcolor3-color-selection.c:405 msgid "Amount of red light in the color." msgstr "Кількість червоного в кольорі." #: src/gcolor3-color-selection.c:406 msgid "_Green:" msgstr "_Зелений:" #: src/gcolor3-color-selection.c:407 msgid "Amount of green light in the color." msgstr "Кількість зеленого в кольорі." #: src/gcolor3-color-selection.c:408 msgid "_Blue:" msgstr "С_иній:" #: src/gcolor3-color-selection.c:409 msgid "Amount of blue light in the color." msgstr "Кількість синього в кольорі." #: src/gcolor3-color-selection.c:412 msgid "Op_acity:" msgstr "_Непрозорість:" #: src/gcolor3-color-selection.c:420 src/gcolor3-color-selection.c:430 msgid "Transparency of the color." msgstr "Прозорість вибраного кольору." #: src/gcolor3-color-selection.c:437 #| msgid "Color name..." msgid "Color _Name:" msgstr "Н_азва кольору:" #: src/gcolor3-color-selection.c:452 msgid "" "You can enter an HTML-style hexadecimal color value, or simply a color name " "such as “orange” in this entry." msgstr "" "Ви можете ввести в цьому полі або шістнадцяткове значення кольору в стилі " "HTML, або назву кольору англійською. Наприклад, «orange»." #: src/gcolor3-color-selection.c:484 msgid "_Palette:" msgstr "_Палітра:" #: src/gcolor3-color-selection.c:514 #| msgid "Color" msgid "Color Wheel" msgstr "Колірне коло" #: src/gcolor3-color-selection.c:964 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now. You can drag this color to a palette entry, or select this color as " "current by dragging it to the other color swatch alongside." msgstr "" "Попередній вибраний колір для порівняння з теперішнім вибраним кольором. " "Можете перетягнути цей колір у палітру чи зробити цей колір чинним, " "перетягнувши його у розміщений збоку зразок." #: src/gcolor3-color-selection.c:970 msgid "" "The color you’ve chosen. You can drag this color to a palette entry to save " "it for use in the future." msgstr "" "Вибраний вами колір. Можете перетягнути його в палітру, щоб зберегти для " "подальшого використання." #: src/gcolor3-color-selection.c:976 msgid "" "The previously-selected color, for comparison to the color you’re selecting " "now." msgstr "Попередньо вибраний колір, для порівняння з вибраним наразі кольором." #: src/gcolor3-color-selection.c:980 msgid "The color you’ve chosen." msgstr "Вибраний колір." #: src/gcolor3-color-selection.c:1348 #| msgid "Saved colors" msgid "_Save color here" msgstr "З_берегти колір тут" #: src/gcolor3-color-selection.c:1554 msgid "" "Click this palette entry to make it the current color. To change this entry, " "drag a color swatch here or right-click it and select “Save color here.”" msgstr "" "Натисніть на елемент у палітрі, щоб зробити його поточним кольором. Щоб " "змінити цей елемент, перетягніть сюди зразок кольору або натисніть правою " "клавішею і виберіть «Зберегти колір тут»." #: src/gcolor3-window.c:409 msgid "Picker" msgstr "Піпетка" gcolor3-2.4.0/saved.png000066400000000000000000000563231372141071500147070ustar00rootroot00000000000000PNG  IHDRm/\sBIT|dtEXtSoftwaregnome-screenshot>-tEXtCreation TimeWed 26 Aug 2020 12:30:57 AM PDTH IDATxy|u?LzmBhiP@PAeEuEVP8VUnQUYDE֟|Wak]V"*(J9 B[ڦg&$%m3=2cI睴|g"""""""""""""""""""""""O:km|K:_k]?QsYV V/Z5}^oS75jwM`4EZ6}ٸ9!DDDDԔd֥6IhԤ1l2H(HQSE"Q[BM( _#l]mb"ADDDDA}{W@_ǍD%""""[ѯqC{0H[P[Pn[L$Hjv\0ΏWi쓭kKY`"ADDDDAmC'J o5YP8T6mQmB]{~C1 """mֺ_=P\4Fڒ$&DDDDԔ;Om ~ocOk_uDMz%' b %5鱷8k5J$T=y<'{#+m$B⾧& """YkHnn=Qcl]p&oL """"jJ =p'B8ЮM~um5 Q=Q0x 0UԖDL$)5t or]*PXUG%_8շGSSOmď>x?\c0'l@riIɥoJq%n.=[Ԕ7µ'zbڵk}h $;'x `C`P!(+-t-C:|TNHǰ'}OK ve~]BTO Bt{gw*KKj co#Gƕ ŧD]'UWO n^uZ]QQEDDDDD \&C2qd ՚HuVOI61IIJ먒#OlYx-Mk˟mx'cuOZח^띬-t^D±$=sjZWG}DԌ8]wL(7 -vKDbQ" 0Ll|£NGuq함| ^ 6tڮafmWY闢(P6k*Jas҄n O0`G^PSP+C# EQڡ \ձ_r[𶪆\Λ 9z*#"p$q I0d1ZAHjsnuHhv\FΙE?-+ehs] ֹ.y{Qz$e.4yDv[RȰ*+'R 3Q@A`âVBA@Ʉnq, ${$<%@=.FԯG.IQZ^ImD@AAL$GPe;A@L|Ν: bH"&Փ&UGuxD-(#vD5Se+@>(0@lP-G .s2(jK$< gM-/CZͲ(Dl E: j%9[Kބ5-']{5̩= orQ #s"ՃZ'2M̵ ^װzk9J"x5Q颗DԼL^jm 29Q+Tuܕ3?D? zT֒NFÙ,RGiMkxhٽDDThru glhSmjJ&wQ=cꇟg=?[595~GD-v[~~~G=w(V1pmb}cޣS]F`ĝw4e-Vaa>k:¢"MHMN fǣ3/@5Q8]8}&h6 ~[{e97McNB{6:vFkQ4`1maΝ(+-ń ftū"be׭G6KVAbx< E8/ :G~0QKN:`p&_hcC*}mL쓨G~#ʰGRtOa#6YǃL~!ȒIbsxsz/ 2LHqdWK߽_ $C\Q,M=M@)4d*t(>[~cVmϑP[^Bcp݆Bh „G&㮑݆+}Sl [.9 km%%%<ϸu-xa~ 7i !is]oqQsc/߽ d6yv| ;˅ Ex 0 ¹ ">z^F3./-r6!(Lk~탏1=bF_!˲Gcpǭ7>SṹO.g?Oy lf8V+~ O'ߟoEw՛~oHakq=ozl6o>+-G3K_}gg_^'OALvXK]ϸ<]TX]#xŃBQd.pG>?,3I 0qpe{o2<3. /c?1a2Q|vXNz n OǛY1tMᩧ㭵s9241Ĉ݊k"} {ΐ$ <(, 'z^ض}';B&<G ރ6 :"M?REZk[1qw҄PV^}3]#aPh\.($q]W ԿD:hmj{.~jkh3h׶-^_W1ƞFcQ˷!OCĴkǍF$ٯ*{!99\ydnw?_ȱ,lZ1PU̹ses~=$~UkM~1f;o /,Ygba#}O~9YPaz?NIOѽ+} dYAW.AV$ĻQÿprK~)/$!}s]``;& ׋.v) ^|=[CN5֜>|yEpGIQ!j>xg uS%Dw 0?`)Vl6Dz%% ӻ7N9?L~!)m"@ /i {vGa b ]>7]ÇM,}on׻>Sk2Es tU}6 8ϕMhh&>V\Y.oԖwsgLѬ_ +׼b|D0cwH[o\.(Ģ̹sD8yY\D&osh՛Co6 Vk9JKaU\Uq?&6,6Y|'~PmtBCiI1JKQRbAIc=姩03v0B[ %8u,N:뺤"#` ~Ê :(c?*v3p17e\( OA|lsJ2{pΚ?raWH~y{ՋK;ח.K 1!g`e>lhVDMu o7Vs=/)zvG_$B|\ ּڵF=CQ_OaǞ}y]W,Hߝ`12sCt4 g}lCקq]W  7~6 (XбC{1}>GTd$.Xr3fWa;ѹS} qps~G`ѦM>[:\͇(0YޓRd wMEшO 00!!q>L5pqü*_߸m'NDJNx+{__3=?,?K$񲁮-Ż8<=w6:xj6l6RMƵ` t6<8^df_ۯ/ǃ"( 6.zm""p1ګiBB*\O>E@1oƟ6?7}nSЭՍ}z[;ow[??ܾdAn|3,[.D/F{`Sm۱k>% ض<f|=H:bִIQfOpyLp=)--Þ}gQVVјD{iB~+l ]E"xo[@ΙXt>MRVRu$j?BMޝ?PlQ7cb \5oNS@bsYEULzv놇5{ܧRYYieJK&We^}VkW%"j?,* NJDUHu܅LD᧘|Afz.p&"""""R6ǚ|AvIԛϑ_vΕ9&_DD -slzY~,Cyhxs}U51%t"""""&ơMDDDDD """""RDTc"ADDDDD1 """""՘HjL$H5&DDDDD """""RDTc"ADDDDD1 """""՘HjL$H5&DDDDD """""RDTc"ADDDDD1 """""՘HjL$H5&DDDDD """""RDTc"ADDDDD1 """""՘Hj~Z@-ӑZ@DDDUtu1&ӫ C ""j2ӴZ(m""""""՘HjL$H5&DDDDD """""RDTc"ADDDDD1 """""՘HjL$H5? """DQA71 """ GݵƼ.˲c-bPyI ""qYC%áVH  5!:&6ZS@Q҅>8DQk",< &_7˗{%%MSGHЧSȑMS59gN"EOLB9A됨$ =u%EmuH>h;<'") ~oȲ Yqp7d2Ξ:sQu  ҧyW_mzJJ[+ ^j:I /#Et ~4\ D"4̌#3{&ID<!kO( k$U~'A@Ʉnq,BMf Dqo`fKpYOLbA$\<NP|BQ\vqmPdMYv"+툉O 9M  ҟ˵{2&Md: "7a(-hFS,`ZJQCPVZ Yuݫ]{hW7iJ$Ac0ClZ*YdI hݐW\jGH^qx ҟbƣ#"3ǐ"/r<{!H8TciG750 """z6 """FdcgÎtpӮ-(LGH8xQ#6mV\||ne$IΝ;#33:طonvDDD`ضmUu U7nA E۷c=K.{K#FJ\)^/qtTmE]<3qQG־??YX]}:m۶!%%㺬, 2wy'ۇÇcذaؿs[,CN\t ֭Þ={p}iQeZkv' ;vb3`<`łO?w1feeewވA۶mq݊+0rHGx`IL$B fm}dd$ //9/0ڊ+b Ew] Xx1(//o4ù5ku鑷xd!DB5sL$h0LXf fΜ Ʉcǎo߾0LW5kɄǏFdd$}Z@cܹXb3QܹٳgaXTN*I$I,~"]kLFuoYbݪzcR$wLĩgptǪMԬ1 j b`Xl, , RSS{nX,o5 ֭s[a=Z2T &h4bժUL&|_{iii v#Acsٽ=aBM9kӠ>GaƬ91kB82W  "9s& %K͛~zkRj3g⥗^Œ39s`HLL_{d„ 0e|HLL믿 j3ݣFUo<8l]#G,> "W_aӦMٟ[tE2TI&x O?ya0͸[w^gUVa1b\k鑢4limxNP?^xv9S5E/< uiY>B\?UU]oo(-)^4/ 7~O3~aJi%jB-SQȲ ISN$vdY-wx>?Gpߘls&gUg,zETMZQ]ٌ={d{_u~QU.{]ZUWݷ\e,F6n4PNMϝأp8X^mPy7O7b[ZrΟA0Q]EAWL$H?+, ֊ X+ʽ&6 c` T uRdv 6vM6E(UK= D """ Rk&ֆ^4phQk_IBC;,LZ)53v|HOH:&M$I: "7d`:  H|ռZ-A IZ5L$HzuM 1RxY0X b: EyI5Rq((/)1Xz0 9X> 0|%]ù'9;nǹ'u(M1TGDFC~^.dY8*eyl"&O/|90xpӞ3 l ,^t# "2 Gfr^.9f$IBA~.F됚 Eafq!^s$I(a GɬDM6~QHlDs8u" 2 Ҁh0 $ĄĤVD88!pΞ:Im/R5K$h.~03R"M%&DD.m`h=7"=p4'GD^sDQU,%ẫ"ǭ(E 0 ]a"ADDDsM&DQ,>m#p$L"HoH.wm4kਲ਼c_zI """ ׆sƼ/b|4ZzH8+DTc"ADDDDD1 """""՘HjL$H5&DDDDD """""RDTc"ADDDDD1 """""՘HjL$H5&DDDDD """""RDTc"ADDDDD1 """""՘Hj~Z@DDD䉢(-nb +&DDDkޗyG]eZĠ(> #&DDU /().,KZC(jBtLmE((*ǥ 9}qv# ״EXx&?L$HNn..%MS_0if!I]IH2G`0hB$RXNgsQTD$MY!2ف^~v\S'`.j0 }a"Asզ^l\z-u^Gޥҽ4h9 DhGf $4UL8y(*CJמPV[`-$I )+-iNP ݺX&F$e8.?IL"H7i(Kr..v v@Q"ˎs54Zdvv1 t!G8JM\W9oy5۱X+B:ʲ_Y=r5_ jFWƬYLg?//'OҥK={.++ aaa$ڶmn 7o޽{q!L0O>Vnرظq2tҥK` ,^~!._ ӧnCXX[XVSO8q"z!7|իWĉׯƌ 7olڴ {(8~ӧODZcǰ{ndddĉ;wn#DM}DQDFvdoǞi>ڴ=}[< oZxݺtƑGlOɡMԬqhQ#rۻs}'''oģ>z Xlv;*_XXua˖-uf 1ne###yyyyk+c2TR:u hӦ Ο?\ /`ĉn?9ϟ?.vڅTxzP8YǏGRR|M9υYb֬Y(**;#]v9\x1 ||ۡDr"KQ!nz(b mq?3s|m :~z[s99EL$Qc$ `:u*uN:aԩ0ΣҮ>t ssM\(,,Pu+bccOFxxU///GAAK.aݺuؾ};rss믿zb8q$9 .++ ,c63J>.Is&l6;6p^X;m"jŋd29)L&L&;v }dؓPD|W(,,Ğ={#vk:ۘ:uۺ0L&!/H{UBdd$<~׮]0 ԩS(..F~p9<Ϝ= qM $I$I9;w";;8{,QҐ:߄CbݪzcR$wLĩgptǪ&j֘H5… aX0yd,[ ؽ{7,N>[bܸqn{>}wU5j֭[nÆ =z2t?%K\u_$GaƬ91kB82W 0 ҡիWc֭8s 6oތ!C`ܹ5Ə\3gbXd Ν;5k` ]1{l_~ؼy3rrrcذa3l]#GxQDHgV+v؁c_WW5R/^ߘ}:f3nݻ~/H Ұ19AxمbmDQ >y]Dԧ.Tﺈ.e_uPuҒMH@~5>l [j… Eii)Ys(e$᧌HNZmɲ[|c1utLϪ1aϾX‹(p/,z7j or0 jXdFztUwAj1CBg V^u@rYdtI۷oDPѐC95=wcb`VxZ{n =Ӎؖ)bcqA}(9g#jΘH5#Gűcp-… ?>fϞuXDxDA?\ZQkEWڤfA0~LN,nfn&^1 "jF K/C||K!CZ&DDDZPMD %ծQR3Qk5[gݤ`$IZAF0 ZSIwR:A R_恉OufBBL^: "7\},88%/$KUPǡ` {jD'a$k a%E铜םtn铈:&#"!?/,k~Ȳ\Dm^ ҧ/>79@`f⦫tQ8r0r9̉4#I sq6Z @Ea #Px9_Ϣ$r>)<&+Z55D0r! pDd&`@H I&pp$1q 0Cp)=u۞Bj&IѶ],MiLaf$tEx(&KL$#ѺoDzh ;N(HgqX\KuWE [Q!" A`2AD4LY}x#G"H D0 """]p=h֢7QgǾ>#&DDD y_h """%=4^qW"""""RDTc"ADDDDD1 """""՘HjL$H5&DDDDD """""RDTc"ADDDDD1 """""՘HjL$H5&DDDDD """""RDTc"ADDDDD1 """""EQ4[@WL$H7 w/ƻ,nAQ}&GL$+Ϣ,iBh@H 1q0G:(EQPTKr4L:EF;'iL&HHm(i:Bl:HrΜDޥh$s !Q+$I,8{J>Q|x?w:EyODRJ|Te,onGae=u6 &O<[e+$(Kѥ{/iX!r0 o03@HhXp$PT=(2 ZI,TRVZ&RuDZ5L&H/8kF&/6kP/ih$t Ix֡(t!a`ۡ ,8WCEV`aKr4=&?r ^]s%%0#MXxJK,ZS@eyY])cpJ!˲b#a8ҡֽGúdI9;95pI$ ye˭vA$In70 h<*u$"ǐ"/r<{!H8TciG750 """z6 """FdcgÎtpӮ-(LGH8xQ#6mV\||ne$IΝ;#33uطonvDDD`ضm[< p ѣ^mO>xwk|LDˀ!{\;U۩yQ`Gz:ƌw9z(((Gď;w3"}a"ACk׮w}Ca۶mHIIz]]0dyطoaÆaʐW^y ϛ7'OFΝ5]5yĎ;1EXj}bܧŏ默GPDȇлwoĠm۶z]]VX#G'Dbb"ϟÇcʐ8̝;̓flٲwƢE4QT4vj۾e,<ʫe(2^|e ,ŖFyDZa"A@?{[lcǎƍU͚5 Vo6EypBDFF:,x嗑1'O7nlEE1k,纒ĉ Dڿ7nrHߎkV#""f3y downڬED'[5ТEh"L6 :uݺuúuн{w5k\{{n'IDATݻaZ1qD̝;o&ʐdRRRPXX??:˘LFZш%KGPP._'x­Lmo.֭7-ErD:}NAxZ[8D Zp!, &Oe˖bb 55wbq;)>`2XfԨQXnۺ 6`Ѫʐz}jsB9I={8:5 ۶mW_}#FF9nVf";og1D;;&Ԕ6 ߭q4f̚,s+3h`U 653gϟD <999_ѻwo̙31`,Y?6oތ#==ݹoʐz}d2ԩS:t/h :@e˗o]>fH+ Goރ(=ffA2;nEhF0G%b@R"1%*&Xee=2)1HX,{wewΦgٝ~KwϮoUVxON\$5ӮY|@W`D&y͛7OgV$ѤIe˖GwyGWn_1jڵ1bc1̝;W:=J]{9rjjj?9zu%kՁtW'ifu]si}х 3w?@9?Y>-hB-OR}߶诚u͏?ڵJc.`-*us t4MSa(ê::|-04 ov83s5*P^6o@/QmBJ"-^@@yQcGΘ  ]MԮ\#8>_AaI[%HjMGG%,aRI$Q|#rR{?խ7X--']$EQ}z}xk]NG$ 8P6qf\3]}䝲HȢ'hˆNyIyɥM.D[[ 4놙m֍ :hU--&W$h/)%4ے# @wF"|Yjٔ6 W(ʲ MX>Ta z;~W ^6r- )y * y'bqʺ^mA 뵟 'pol9WXVC]a jUP: OFw7벭-(0uS HIA $M]x| >)7ѨTyJKuDqqTaNTWٷ'? ?~)ޖ4Y];gHeR`x ہEJ ^93XL'kχTZv"%)# ];TWs³I?tcjNhG.)QQ8@Wc&Rj@7pH :o x  0g$".L 4T:vاX,#f*Mo[*s~\(pqDg ?O% /H")흝7Ҳ3)-kY)"> * * )LWH$D0a9Q<'$ o⭝f/Fm&?e $# ֎srg>o֣2%?tW, 5 HpDk$\#H$F"5 HpDk$\#H$F"5 HpDk$\:;izv M _H߈wܭ\vw0{iI*G$ 愾8zHM2 C*, | EJy'LӔi=/1G0]xpf*.)D2!o*=gYդ.iPq{5MӺ ߑ>U_hHY:+RP(uHbju>55k Cʩxր:kx?rU1 Cah sĜ/IhTu5:t`"4$L_H$Kk~ty;MjZ_vy𗺚 9FytXP(~e**h*xQWSj ?oLPKIkObž i1 TGjTH&YU9I"='Fkr.CRqI|#//O/:2MS_;**4L< #>Wã0FF5`P}y숧;$ggm?=khjjT8Ru@R}u9c W_5)[B5(0|Wp-Yۛٳ #cN|' tUXLyӲɲN P,K]Q? 4ʣzTI =Kb-/?+JƈT7^&+ʚ'$7ciW$Qo\6Tck%u>]p9@'e˖?w>nݪ/\Krʕ+5|p-_X,ٳg3й瞫;wھ 'TuUWiȐ!***y睧{W L:xp)?tuԛx$S*+5sz]wVڵ{?fݢoXK$z 7 ݫ.LW]unݪS+Զm$I[lѤI4g577'/vءw}WÇ}-SNL_ [nڵkc=s *,,:Dgpد63AaF=`R>XРyT|<`ǻ (mrgմi4w\I?*=3zW/G?NM:5ܽ{jر0`@2$zcm۶M~zÆ Ӕ)S< YLL9ynШ~X0O^(sBEi{Lzu+??_ڹsƏ|UWWK,O8nЪU$I˗/=ܣ}&s]wiҥzWԧO55'm8=x -^8!3n8꫚2evZIRKKx :T;o-3?n8WE]"5J^\UF"*WiiJ"SU5^ t K-Rss~iҥjnnVssFM6Yeeejnnug'?|pեu}[oUkkmf6ѡCt::~Μ95k{=M0A4{lٳG6mRUUۧzLK_=ڷo.b͜9S---~r`0\弴i} ܹSezwjGY_&tk$@'흼;"H9eee>j 'm"СCPc)owqG{/mݦ#G@z饗h"kzǵrJI~7߬1cƨ\ӱc7aZBP_1OИMХS~t|&'9}< #GG&sW~ K$u뜆:IRyyy;i#vy=Ͱa$I|p(mBF"di…jhh]wݥ~Z jhh9眣M6}`ZbEof̘i8i#q4ײe˴{n:Tp8!q>Л8- ڰ}۴~],m8ᒄ=dvݣ9?9?=Րx%bMn>@O&LГO>nIk֬oʜ8zo]ӟ4~x-YD'OVqq}o;e^>}? Mhه,[^GR_> k{\`74H$Dw2z,KSӳ_Se6'1@ZE*b{6Vܥ9~WpȮ/.P_#Dz*kpdmPHX0XTP0r. )f^lA 땟dŮ/nBI9 2}Aսmx04ժ0u9WPP&m]ynjR~w薒r&HpdiZvt৬߈F:|Su(9/ *+e2U + ͥJ(, DrɄf[_jdM9E*eLok.k)Ҳ3k{jSb1՞8=nSiٙ:  **(\RwP] Qb9mWDE;ZWK'K":T4lڶe,]"<5p,d=i"a>>'vōTL 7pH%yk;-#`(uш@Oc77!ӨDnLK:M]2|ҏFfI'tZ-nu$$&kvMv,$O[HD7rɭG&%ە9Yɏʚ ED"܈%ZΔk+ tNf-hٔ6j<c=gD6Dim1]"a789{i+7udu&3A?ԩID|ݜT D;4"nTs&G)ɏoSuRL6NF$8M2a7:skkٮo$>Jguz 'LnVbrZkxM%MTJvHG'dz\9DmId8Lt֝3cM(dX6ӽtWn'[z-]26R%' F%I@8'"ALvǮ:>SRiu3>MWquȷItu 6;NK)u4pRaDAGVu)QLwvξmA6 BItF9Pgͳtm ^78:s^AWIDS\MP&Y)wy$\IňDc#ֽ߃y6IENDB`gcolor3-2.4.0/src/000077500000000000000000000000001372141071500136555ustar00rootroot00000000000000gcolor3-2.4.0/src/gcolor3-application.c000066400000000000000000000146231372141071500177000ustar00rootroot00000000000000/* Gcolor3Application * * Copyright (C) 2015-2016, 2018 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "config.h" #include #include #include "gcolor3-application.h" #include "gcolor3-color-store.h" #include "gcolor3-window.h" struct _Gcolor3ApplicationPrivate { Gcolor3ColorStore *colors; }; G_DEFINE_TYPE_WITH_PRIVATE (Gcolor3Application, gcolor3_application, GTK_TYPE_APPLICATION); static void gcolor3_application_action_shortcuts (UNUSED GSimpleAction *action, UNUSED GVariant *parameter, gpointer user_data) { static GtkWindow *overlay = NULL; GtkBuilder *builder; GtkWindow *window; if (!overlay) { builder = gtk_builder_new_from_resource ("/nl/hjdskes/gcolor3/shortcuts.ui"); overlay = GTK_WINDOW (gtk_builder_get_object (builder, "shortcuts-gcolor3")); g_object_unref (builder); g_object_set (overlay, "view-name", NULL, NULL); g_signal_connect (overlay, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), NULL); window = gtk_application_get_active_window (GTK_APPLICATION (user_data)); gtk_window_set_modal (overlay, TRUE); gtk_window_set_transient_for (overlay, window); gtk_window_set_destroy_with_parent (overlay, TRUE); } gtk_window_present (overlay); } static void gcolor3_application_action_about (UNUSED GSimpleAction *action, UNUSED GVariant *parameter, gpointer user_data) { static const char *authors[] = { "Jente Hidskes ", "Christopher Davis ", NULL, }; static const char *artists[] = { "Sam Hewitt", "Tobias Bernard", "hhh", NULL, }; gtk_show_about_dialog (gtk_application_get_active_window (GTK_APPLICATION (user_data)), "program-name", g_get_application_name (), "version", PACKAGE_VERSION, "copyright", "Copyright \xc2\xa9 "COPYRIGHT" Jente Hidskes, Christopher Davis", "comments", _("Choose colors from the picker or the screen"), "authors", authors, "artists", artists, /* Translators: translate this to give yourself credits. */ "translator-credits", _("translator-credits"), "website-label", _("Website"), "website", PACKAGE_URL, "logo-icon-name", "nl.hjdskes.gcolor3", "wrap-license", TRUE, "license-type", GTK_LICENSE_GPL_2_0, NULL); } static void gcolor3_application_action_quit (UNUSED GSimpleAction *action, UNUSED GVariant *parameter, gpointer user_data) { GList *windows; windows = gtk_application_get_windows (GTK_APPLICATION (user_data)); g_list_foreach (windows, (GFunc) gcolor3_window_destroy, NULL); } static GActionEntry app_entries[] = { { "shortcuts", gcolor3_application_action_shortcuts, NULL, NULL, NULL }, { "about", gcolor3_application_action_about, NULL, NULL, NULL }, { "quit", gcolor3_application_action_quit, NULL, NULL, NULL }, }; static void gcolor3_application_init_accelerators (GtkApplication *application) { /* Taken from eog, which in turn has this based on a simular * construct in Evince (src/ev-application.c). * Setting multiple accelerators at once for an action * is not very straight forward in a static way. * * This gchar* array simulates an action<->accels mapping. * Enter the action name followed by the accelerator strings * and terminate the entry with a NULL-string.*/ static const gchar *const accelmap[] = { "win.change-page", "F9", NULL, "app.quit", "q", NULL, NULL /* Terminating NULL */ }; const gchar *const *it; for (it = accelmap; it[0]; it += g_strv_length ((gchar **)it) + 1) { gtk_application_set_accels_for_action (application, it[0], &it[1]); } } static void gcolor3_application_startup (GApplication *application) { Gcolor3Application *app = GCOLOR3_APPLICATION (application); G_APPLICATION_CLASS (gcolor3_application_parent_class)->startup (application); gtk_window_set_default_icon_name ("gcolor3"); g_set_application_name (_("Color Picker")); g_action_map_add_action_entries (G_ACTION_MAP (application), app_entries, G_N_ELEMENTS (app_entries), application); gcolor3_application_init_accelerators (GTK_APPLICATION (app)); } static void gcolor3_application_activate (GApplication *application) { Gcolor3ApplicationPrivate *priv; Gcolor3Window *window; priv = gcolor3_application_get_instance_private (GCOLOR3_APPLICATION (application)); window = gcolor3_window_new (GCOLOR3_APPLICATION (application), priv->colors); gtk_window_present_with_time (GTK_WINDOW (window), GDK_CURRENT_TIME); } static void gcolor3_application_dispose (GObject *object) { Gcolor3ApplicationPrivate *priv; priv = gcolor3_application_get_instance_private (GCOLOR3_APPLICATION (object)); g_clear_object (&priv->colors); G_OBJECT_CLASS (gcolor3_application_parent_class)->dispose (object); } static void gcolor3_application_class_init (Gcolor3ApplicationClass *gcolor3_application_class) { GObjectClass *object_class = G_OBJECT_CLASS (gcolor3_application_class); GApplicationClass *application_class = G_APPLICATION_CLASS (gcolor3_application_class); object_class->dispose = gcolor3_application_dispose; application_class->startup = gcolor3_application_startup; application_class->activate = gcolor3_application_activate; } static void gcolor3_application_init (Gcolor3Application *application) { Gcolor3ApplicationPrivate *priv; priv = gcolor3_application_get_instance_private (application); priv->colors = gcolor3_color_store_new (); } Gcolor3Application * gcolor3_application_new (void) { return g_object_new (GCOLOR3_TYPE_APPLICATION, "application-id", "nl.hjdskes.gcolor3", "flags", G_APPLICATION_FLAGS_NONE, NULL); } gcolor3-2.4.0/src/gcolor3-application.h000066400000000000000000000041551372141071500177040ustar00rootroot00000000000000/* Gcolor3Application * * Copyright (C) 2015-2016 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __GCOLOR3_APPLICATION_H__ #define __GCOLOR3_APPLICATION_H__ #include #include G_BEGIN_DECLS typedef struct _Gcolor3Application Gcolor3Application; typedef struct _Gcolor3ApplicationClass Gcolor3ApplicationClass; typedef struct _Gcolor3ApplicationPrivate Gcolor3ApplicationPrivate; #define GCOLOR3_TYPE_APPLICATION (gcolor3_application_get_type ()) #define GCOLOR3_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCOLOR3_TYPE_APPLICATION, Gcolor3Application)) #define GCOLOR3_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCOLOR3_TYPE_APPLICATION, Gcolor3ApplicationClass)) #define GCOLOR3_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCOLOR3_TYPE_APPLICATION)) #define GCOLOR3_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCOLOR3_TYPE_APPLICATION)) #define GCOLOR3_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCOLOR3_TYPE_APPLICATION, Gcolor3ApplicationClass)) struct _Gcolor3Application { GtkApplication base_instance; }; struct _Gcolor3ApplicationClass { GtkApplicationClass parent_class; }; GType gcolor3_application_get_type (void) G_GNUC_CONST; Gcolor3Application *gcolor3_application_new (void); G_END_DECLS #endif /* __GCOLOR3_APPLICATION_H__ */ gcolor3-2.4.0/src/gcolor3-color-item.c000066400000000000000000000067641372141071500174560ustar00rootroot00000000000000/* Gcolor3ColorItem * * Copyright (C) 2018 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "config.h" #include "gcolor3-color-item.h" enum { PROP_0, PROP_KEY, PROP_HEX, }; struct _Gcolor3ColorItemPrivate { gchar *key; const gchar *hex; }; G_DEFINE_TYPE_WITH_PRIVATE (Gcolor3ColorItem, gcolor3_color_item, G_TYPE_OBJECT) static void gcolor3_color_item_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { Gcolor3ColorItemPrivate *priv; priv = gcolor3_color_item_get_instance_private (GCOLOR3_COLOR_ITEM (object)); switch (prop_id) { case PROP_KEY: g_value_set_string (value, priv->key); break; case PROP_HEX: g_value_set_string (value, priv->hex); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gcolor3_color_item_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { Gcolor3ColorItemPrivate *priv; priv = gcolor3_color_item_get_instance_private (GCOLOR3_COLOR_ITEM (object)); switch (prop_id) { case PROP_KEY: priv->key = g_value_dup_string (value); break; case PROP_HEX: priv->hex = g_value_dup_string (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gcolor3_color_item_finalize (GObject *object) { Gcolor3ColorItemPrivate *priv; priv = gcolor3_color_item_get_instance_private (GCOLOR3_COLOR_ITEM (object)); g_free (priv->key); G_OBJECT_CLASS (gcolor3_color_item_parent_class)->finalize (object); } static void gcolor3_color_item_class_init (Gcolor3ColorItemClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = gcolor3_color_item_finalize; object_class->get_property = gcolor3_color_item_get_property; object_class->set_property = gcolor3_color_item_set_property; g_object_class_install_property (object_class, PROP_KEY, g_param_spec_string ("key", "key", "Key of this row's color", "Black", G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_HEX, g_param_spec_string ("hex", "HexValue", "Hex value of this row's color", "#000000", G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } static void gcolor3_color_item_init (Gcolor3ColorItem *item) { } Gcolor3ColorItem * gcolor3_color_item_new (const gchar *key, const gchar *hex) { g_return_val_if_fail (key != NULL, NULL); g_return_val_if_fail (hex != NULL, NULL); return g_object_new (GCOLOR3_TYPE_COLOR_ITEM, "key", key, "hex", hex, NULL); } gcolor3-2.4.0/src/gcolor3-color-item.h000066400000000000000000000040701372141071500174470ustar00rootroot00000000000000/* Gcolor3ColorItem * * Copyright (C) 2018 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __GCOLOR3_COLOR_ITEM_H__ #define __GCOLOR3_COLOR_ITEM_H__ #include G_BEGIN_DECLS typedef struct _Gcolor3ColorItem Gcolor3ColorItem; typedef struct _Gcolor3ColorItemClass Gcolor3ColorItemClass; typedef struct _Gcolor3ColorItemPrivate Gcolor3ColorItemPrivate; #define GCOLOR3_TYPE_COLOR_ITEM (gcolor3_color_item_get_type ()) #define GCOLOR3_COLOR_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCOLOR3_TYPE_COLOR_ITEM, Gcolor3ColorItem)) #define GCOLOR3_COLOR_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCOLOR3_TYPE_COLOR_ITEM, Gcolor3ColorItemClass)) #define GCOLOR3_IS_COLOR_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCOLOR3_TYPE_COLOR_ITEM)) #define GCOLOR3_IS_COLOR_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCOLOR3_TYPE_COLOR_ITEM)) #define GCOLOR3_COLOR_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCOLOR3_TYPE_COLOR_ITEM, Gcolor3ColorItemClass)) struct _Gcolor3ColorItem { GObject base_instance; }; struct _Gcolor3ColorItemClass { GObjectClass parent_class; }; GType gcolor3_color_item_get_type (void) G_GNUC_CONST; Gcolor3ColorItem *gcolor3_color_item_new (const gchar *key, const gchar *hex); G_END_DECLS #endif /* __GCOLOR3_COLOR_ITEM_H__ */ gcolor3-2.4.0/src/gcolor3-color-row.c000066400000000000000000000215101372141071500173110ustar00rootroot00000000000000/* Gcolor3ColorRow * * Copyright (C) 2018 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "config.h" #include #include #include #include "gcolor3-color-row.h" #define I_(string) g_intern_static_string (string) #define THUMB_SIZE 32 #define RADIUS 3 enum { PROP_0, PROP_KEY, PROP_HEX, }; enum { SIGNAL_COLOR_REMOVED, SIGNAL_COLOR_RENAMED, SIGNAL_LAST, }; static guint signals[SIGNAL_LAST]; struct _Gcolor3ColorRowPrivate { GtkWidget *image; GtkWidget *label; GtkWidget *entry; gchar *key; const gchar *hex; }; G_DEFINE_TYPE_WITH_PRIVATE (Gcolor3ColorRow, gcolor3_color_row, GTK_TYPE_LIST_BOX_ROW) static void set_color_thumbnail (Gcolor3ColorRow *row) { Gcolor3ColorRowPrivate *priv; GtkStyleContext *style_context; cairo_surface_t *surface; cairo_t *context; GValue border_radius = { 0 }; GdkRGBA color; double x = 0; double y = 0; double degrees = G_PI / 180.0; int radius = RADIUS; priv = gcolor3_color_row_get_instance_private (row); if (!gdk_rgba_parse (&color, priv->hex)) { g_warning ("Could not parse color to display thumbnail\n"); return; } surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, THUMB_SIZE, THUMB_SIZE); context = cairo_create (surface); cairo_set_source_rgba (context, color.red, color.green, color.blue, color.alpha); style_context = gtk_widget_get_style_context (GTK_WIDGET (priv->entry)); gtk_style_context_save (style_context); gtk_style_context_get_property (style_context, GTK_STYLE_PROPERTY_BORDER_RADIUS, GTK_STATE_FLAG_NORMAL, &border_radius); gtk_style_context_restore (style_context); if (G_VALUE_HOLDS_INT (&border_radius)) { radius = g_value_get_int (&border_radius); } g_value_unset (&border_radius); /* Code from https://www.cairographics.org/samples/rounded_rectangle/ */ cairo_new_sub_path (context); cairo_arc (context, x + THUMB_SIZE - radius, y + radius, radius, -90 * degrees, 0); cairo_arc (context, x + THUMB_SIZE - radius, y + THUMB_SIZE - radius, radius, 0, 90 * degrees); cairo_arc (context, x + radius, y + THUMB_SIZE - radius, radius, 90 * degrees, 180 * degrees); cairo_arc (context, x + radius, y + radius, radius, 180 * degrees, 270 * degrees); cairo_close_path (context); cairo_fill_preserve (context); gtk_image_set_from_surface (GTK_IMAGE (priv->image), surface); cairo_destroy (context); cairo_surface_destroy (surface); } static void set_color_in_clipboard (const gchar *color) { GtkClipboard *clipboard; clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); gtk_clipboard_set_text (clipboard, color, -1); } static void gcolor3_color_row_copy_button_clicked (UNUSED GtkButton *button, gpointer user_data) { Gcolor3ColorRowPrivate *priv; priv = gcolor3_color_row_get_instance_private (GCOLOR3_COLOR_ROW (user_data)); set_color_in_clipboard (priv->hex); } static void gcolor3_color_row_delete_button_clicked (UNUSED GtkButton *button, gpointer user_data) { g_signal_emit (GCOLOR3_COLOR_ROW (user_data), signals[SIGNAL_COLOR_REMOVED], 0); } static void gcolor3_color_row_entry_activated (GtkEntry *entry, gpointer user_data) { Gcolor3ColorRowPrivate *priv; gchar *old_key; priv = gcolor3_color_row_get_instance_private (GCOLOR3_COLOR_ROW (user_data)); old_key = g_strdup (priv->key); priv->key = g_strdup (gtk_entry_get_text (entry)); g_signal_emit (GCOLOR3_COLOR_ROW (user_data), signals[SIGNAL_COLOR_RENAMED], 0, old_key, priv->key); g_free (old_key); } static gboolean gcolor3_color_row_key_press_event (GtkWidget *row, GdkEventKey *event) { Gcolor3ColorRowPrivate *priv; if (event->type != GDK_KEY_PRESS) { return GDK_EVENT_PROPAGATE; } priv = gcolor3_color_row_get_instance_private (GCOLOR3_COLOR_ROW (row)); switch (event->keyval) { case GDK_KEY_c: if ((event->state & GDK_CONTROL_MASK) != GDK_CONTROL_MASK) { return GDK_EVENT_PROPAGATE; } set_color_in_clipboard (priv->hex); return GDK_EVENT_STOP; case GDK_KEY_Delete: g_object_ref (row); g_signal_emit (GCOLOR3_COLOR_ROW (row), signals[SIGNAL_COLOR_REMOVED], 0); return GDK_EVENT_STOP; default: return GDK_EVENT_PROPAGATE; } } static void gcolor3_color_row_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { Gcolor3ColorRowPrivate *priv; priv = gcolor3_color_row_get_instance_private (GCOLOR3_COLOR_ROW (object)); switch (prop_id) { case PROP_KEY: priv->key = g_value_dup_string (value); break; case PROP_HEX: priv->hex = g_value_dup_string (value); set_color_thumbnail (GCOLOR3_COLOR_ROW (object)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gcolor3_color_row_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { Gcolor3ColorRowPrivate *priv; priv = gcolor3_color_row_get_instance_private (GCOLOR3_COLOR_ROW (object)); switch (prop_id) { case PROP_KEY: g_value_set_string (value, priv->key); break; case PROP_HEX: g_value_set_string (value, priv->hex); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gcolor3_color_row_finalize (GObject *object) { Gcolor3ColorRowPrivate *priv; priv = gcolor3_color_row_get_instance_private (GCOLOR3_COLOR_ROW (object)); g_free (priv->key); G_OBJECT_CLASS (gcolor3_color_row_parent_class)->finalize (object); } static void gcolor3_color_row_class_init (Gcolor3ColorRowClass *gcolor3_color_row_class) { GObjectClass *object_class = G_OBJECT_CLASS (gcolor3_color_row_class); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (gcolor3_color_row_class); object_class->set_property = gcolor3_color_row_set_property; object_class->get_property = gcolor3_color_row_get_property; object_class->finalize = gcolor3_color_row_finalize; widget_class->key_press_event = gcolor3_color_row_key_press_event; signals[SIGNAL_COLOR_REMOVED] = g_signal_new (I_("color-removed"), GCOLOR3_TYPE_COLOR_ROW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0); signals[SIGNAL_COLOR_RENAMED] = g_signal_new (I_("color-renamed"), GCOLOR3_TYPE_COLOR_ROW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); g_object_class_install_property (object_class, PROP_KEY, g_param_spec_string ("key", "key", "Key of this row's color", "Black", G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_HEX, g_param_spec_string ("hex", "HexValue", "Hex value of this row's color", "#000000", G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gtk_widget_class_set_template_from_resource (widget_class, "/nl/hjdskes/gcolor3/color-row.ui"); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3ColorRow, image); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3ColorRow, label); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3ColorRow, entry); gtk_widget_class_bind_template_callback (widget_class, gcolor3_color_row_copy_button_clicked); gtk_widget_class_bind_template_callback (widget_class, gcolor3_color_row_delete_button_clicked); gtk_widget_class_bind_template_callback (widget_class, gcolor3_color_row_entry_activated); } static void gcolor3_color_row_init (Gcolor3ColorRow *color_row) { Gcolor3ColorRowPrivate *priv; priv = gcolor3_color_row_get_instance_private (color_row); gtk_widget_init_template (GTK_WIDGET (color_row)); g_object_bind_property (color_row, "key", priv->entry, "text", G_BINDING_DEFAULT); g_object_bind_property (color_row, "hex", priv->label, "label", G_BINDING_DEFAULT); } Gcolor3ColorRow * gcolor3_color_row_new (const gchar *key, const gchar *hex) { g_return_val_if_fail (key != NULL, NULL); g_return_val_if_fail (hex != NULL, NULL); return g_object_new (GCOLOR3_TYPE_COLOR_ROW, "key", key, "hex", hex, NULL); } gcolor3-2.4.0/src/gcolor3-color-row.h000066400000000000000000000040451372141071500173220ustar00rootroot00000000000000/* Gcolor3ColorRow * * Copyright (C) 2018 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __GCOLOR3_COLOR_ROW_H__ #define __GCOLOR3_COLOR_ROW_H__ #include G_BEGIN_DECLS typedef struct _Gcolor3ColorRow Gcolor3ColorRow; typedef struct _Gcolor3ColorRowClass Gcolor3ColorRowClass; typedef struct _Gcolor3ColorRowPrivate Gcolor3ColorRowPrivate; #define GCOLOR3_TYPE_COLOR_ROW (gcolor3_color_row_get_type ()) #define GCOLOR3_COLOR_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCOLOR3_TYPE_COLOR_ROW, Gcolor3ColorRow)) #define GCOLOR3_COLOR_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCOLOR3_TYPE_COLOR_ROW, Gcolor3ColorRowClass)) #define GCOLOR3_IS_COLOR_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCOLOR3_TYPE_COLOR_ROW)) #define GCOLOR3_IS_COLOR_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCOLOR3_TYPE_COLOR_ROW)) #define GCOLOR3_COLOR_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCOLOR3_TYPE_COLOR_ROW, Gcolor3ColorRowClass)) struct _Gcolor3ColorRow { GtkListBoxRow base_instance; }; struct _Gcolor3ColorRowClass { GtkListBoxRowClass parent_class; }; GType gcolor3_color_row_get_type (void) G_GNUC_CONST; Gcolor3ColorRow *gcolor3_color_row_new (const gchar *key, const gchar *hex); G_END_DECLS #endif /* __GCOLOR3_COLOR_ROW_H__ */ gcolor3-2.4.0/src/gcolor3-color-selection.c000066400000000000000000002706661372141071500205110ustar00rootroot00000000000000/* GTK - The GIMP Toolkit * Copyright (C) 2000 Red Hat, Inc. * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . */ /* * Modified by the GTK Team and others 1997-2001. See the AUTHORS * file for a list of people on the GTK Team. See the ChangeLog * files for a list of changes. These files are distributed with * GTK at ftp://ftp.gtk.org/pub/gtk/. * * Updated and adapted for inclusion in Gcolor3 by Jente Hidskes 2017. */ #include "config.h" // TODO: replace gtk_container_set_focus_chain() #define GDK_DISABLE_DEPRECATION_WARNINGS #include "gcolor3-color-selection.h" #include "gcolor3-hsv.h" #include "utils.h" #include #include #include #include #include #include #include #include #ifdef ENABLE_NLS #define P_(String) g_dgettext(GETTEXT_PACKAGE "-properties",String) #else #define P_(String) (String) #endif #define I_(string) g_intern_static_string (string) /** * SECTION:gtkcolorsel * @Short_description: Widget used to select a color * @Title: Gcolor3ColorSelection * * The #Gcolor3ColorSelection is a widget that is used to select * a color. It consists of a color wheel and number of sliders * and entry boxes for color parameters such as hue, saturation, * value, red, green, blue, and opacity. */ /* Keep it in sync with gtksettings.c:default_color_palette */ #define DEFAULT_COLOR_PALETTE "black:white:gray50:red:purple:blue:light blue:green:yellow:orange:lavender:brown:goldenrod4:dodger blue:pink:light green:gray10:gray30:gray75:gray90" /* Number of elements in the custom palatte */ #define CUSTOM_PALETTE_WIDTH 10 #define CUSTOM_PALETTE_HEIGHT 2 #define CUSTOM_PALETTE_ENTRY_WIDTH 20 #define CUSTOM_PALETTE_ENTRY_HEIGHT 20 /* The cursor for the dropper */ #define DROPPER_WIDTH 17 #define DROPPER_HEIGHT 17 #define DROPPER_STRIDE (DROPPER_WIDTH * 4) #define DROPPER_X_HOT 2 #define DROPPER_Y_HOT 16 #define SAMPLE_WIDTH 64 #define SAMPLE_HEIGHT 28 #define CHECK_SIZE 16 #define BIG_STEP 20 /* Conversion between 0->1 double and and guint16. See * scale_round() in utils.c for more general conversions */ #define SCALE(i) (i / 65535.) #define UNSCALE(d) ((guint16)(d * 65535 + 0.5)) #define INTENSITY(r, g, b) ((r) * 0.30 + (g) * 0.59 + (b) * 0.11) enum { COLOR_CHANGED, LAST_SIGNAL }; enum { PROP_0, PROP_HAS_PALETTE, PROP_HAS_OPACITY_CONTROL, PROP_CURRENT_ALPHA, PROP_CURRENT_RGBA }; enum { COLORSEL_RED = 0, COLORSEL_GREEN = 1, COLORSEL_BLUE = 2, COLORSEL_OPACITY = 3, COLORSEL_HUE, COLORSEL_SATURATION, COLORSEL_VALUE, COLORSEL_NUM_CHANNELS }; struct _Gcolor3ColorSelectionPrivate { guint has_opacity : 1; guint has_palette : 1; guint changing : 1; guint default_set : 1; guint default_alpha_set : 1; guint has_grab : 1; // FIXME: these can be replaced with a GdkRGBA gdouble color[COLORSEL_NUM_CHANNELS]; gdouble old_color[COLORSEL_NUM_CHANNELS]; GtkWidget *triangle_colorsel; GtkWidget *hue_spinbutton; GtkWidget *sat_spinbutton; GtkWidget *val_spinbutton; GtkWidget *red_spinbutton; GtkWidget *green_spinbutton; GtkWidget *blue_spinbutton; GtkWidget *opacity_slider; GtkWidget *opacity_label; GtkWidget *opacity_entry; GtkWidget *palette_frame; GtkWidget *hex_entry; /* The Palette code */ GtkWidget *custom_palette [CUSTOM_PALETTE_WIDTH][CUSTOM_PALETTE_HEIGHT]; GdkRGBA palette_color; /* The color_sample stuff */ GtkWidget *sample_area; GtkWidget *old_sample; GtkWidget *cur_sample; GtkWidget *colorsel; GCancellable *cancellable; /* Connection to settings */ gulong settings_connection; }; static void gcolor3_color_selection_destroy (GtkWidget *widget); static void gcolor3_color_selection_finalize (GObject *object); static void update_color (Gcolor3ColorSelection *colorsel); static void gcolor3_color_selection_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); static void gcolor3_color_selection_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); static void gcolor3_color_selection_realize (GtkWidget *widget); static void gcolor3_color_selection_unrealize (GtkWidget *widget); static void gcolor3_color_selection_show_all (GtkWidget *widget); static void gcolor3_color_selection_set_palette_color (Gcolor3ColorSelection *colorsel, gint index, GdkRGBA *color); static void set_focus_line_attributes (GtkWidget *drawing_area, cairo_t *cr, gint *focus_width); static void default_noscreen_change_palette_func (const GdkRGBA *colors, gint n_colors); static void default_change_palette_func (GdkScreen *screen, const GdkRGBA *colors, gint n_colors); static void make_control_relations (AtkObject *atk_obj, GtkWidget *widget); static void make_all_relations (AtkObject *atk_obj, Gcolor3ColorSelectionPrivate *priv); static void hsv_changed (GtkWidget *hsv, gpointer data); static void get_screen_color (GtkWidget *button); static void pick_color_cb (GObject *source_object, GAsyncResult *result, gpointer user_data); static void adjustment_changed (GtkAdjustment *adjustment, gpointer data); static void opacity_entry_changed (GtkWidget *opacity_entry, gpointer data); static void hex_changed (GtkWidget *hex_entry, gpointer data); static gboolean hex_focus_out (GtkWidget *hex_entry, GdkEventFocus *event, gpointer data); static void color_sample_new (Gcolor3ColorSelection *colorsel); static void make_label_spinbutton (Gcolor3ColorSelection *colorsel, GtkWidget **spinbutton, gchar *text, GtkWidget *table, gint i, gint j, gint channel_type, const gchar *tooltip); static void make_palette_frame (Gcolor3ColorSelection *colorsel, GtkWidget *table, gint i, gint j); static void set_selected_palette (Gcolor3ColorSelection *colorsel, int x, int y); static void set_focus_line_attributes (GtkWidget *drawing_area, cairo_t *cr, gint *focus_width); static gboolean mouse_press (GtkWidget *invisible, GdkEventButton *event, gpointer data); static void palette_change_notify_instance (GObject *object, GParamSpec *pspec, gpointer data); static void update_palette (Gcolor3ColorSelection *colorsel); static guint color_selection_signals[LAST_SIGNAL] = { 0 }; static Gcolor3ColorSelectionChangePaletteFunc noscreen_change_palette_hook = default_noscreen_change_palette_func; static Gcolor3ColorSelectionChangePaletteWithScreenFunc change_palette_hook = default_change_palette_func; G_DEFINE_TYPE_WITH_PRIVATE (Gcolor3ColorSelection, gcolor3_color_selection, GTK_TYPE_BOX) static void gcolor3_color_selection_class_init (Gcolor3ColorSelectionClass *klass) { GObjectClass *gobject_class; GtkWidgetClass *widget_class; gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = gcolor3_color_selection_finalize; gobject_class->set_property = gcolor3_color_selection_set_property; gobject_class->get_property = gcolor3_color_selection_get_property; widget_class = GTK_WIDGET_CLASS (klass); widget_class->destroy = gcolor3_color_selection_destroy; widget_class->realize = gcolor3_color_selection_realize; widget_class->unrealize = gcolor3_color_selection_unrealize; widget_class->show_all = gcolor3_color_selection_show_all; g_object_class_install_property (gobject_class, PROP_HAS_OPACITY_CONTROL, g_param_spec_boolean ("has-opacity-control", P_("Has Opacity Control"), P_("Whether the color selector should allow setting opacity"), FALSE, G_PARAM_READWRITE| G_PARAM_STATIC_NAME| G_PARAM_STATIC_NICK| G_PARAM_STATIC_BLURB)); g_object_class_install_property (gobject_class, PROP_HAS_PALETTE, g_param_spec_boolean ("has-palette", P_("Has palette"), P_("Whether a palette should be used"), FALSE, G_PARAM_READWRITE| G_PARAM_STATIC_NAME| G_PARAM_STATIC_NICK| G_PARAM_STATIC_BLURB)); g_object_class_install_property (gobject_class, PROP_CURRENT_ALPHA, g_param_spec_uint ("current-alpha", P_("Current Alpha"), P_("The current opacity value (0 fully transparent, 65535 fully opaque)"), 0, 65535, 65535, G_PARAM_READWRITE| G_PARAM_STATIC_NAME| G_PARAM_STATIC_NICK| G_PARAM_STATIC_BLURB)); /** * Gcolor3ColorSelection:current-rgba: * * The current RGBA color. * * Since: 3.0 */ g_object_class_install_property (gobject_class, PROP_CURRENT_RGBA, g_param_spec_boxed ("current-rgba", P_("Current RGBA"), P_("The current RGBA color"), GDK_TYPE_RGBA, G_PARAM_READWRITE| G_PARAM_STATIC_NAME| G_PARAM_STATIC_NICK| G_PARAM_STATIC_BLURB)); /** * Gcolor3ColorSelection::color-changed: * @colorselection: the object which received the signal. * * This signal is emitted when the color changes in the #Gcolor3ColorSelection * according to its update policy. */ color_selection_signals[COLOR_CHANGED] = g_signal_new (I_("color-changed"), G_OBJECT_CLASS_TYPE (gobject_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (Gcolor3ColorSelectionClass, color_changed), NULL, NULL, NULL, G_TYPE_NONE, 0); } static void gcolor3_color_selection_init (Gcolor3ColorSelection *colorsel) { GtkWidget *top_hbox; GtkWidget *top_right_vbox; GtkWidget *table, *label, *hbox, *frame, *vbox, *button; GtkAdjustment *adjust; GtkWidget *picker_image; gint i, j; Gcolor3ColorSelectionPrivate *priv; AtkObject *atk_obj; GList *focus_chain = NULL; gtk_orientable_set_orientation (GTK_ORIENTABLE (colorsel), GTK_ORIENTATION_VERTICAL); priv = colorsel->private_data = gcolor3_color_selection_get_instance_private (colorsel); priv->changing = FALSE; priv->default_set = FALSE; priv->default_alpha_set = FALSE; priv->cancellable = g_cancellable_new (); top_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_box_pack_start (GTK_BOX (colorsel), top_hbox, FALSE, FALSE, 0); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); priv->triangle_colorsel = gcolor3_hsv_new (); g_signal_connect (priv->triangle_colorsel, "changed", G_CALLBACK (hsv_changed), colorsel); gcolor3_hsv_set_metrics (GCOLOR3_HSV (priv->triangle_colorsel), 174, 15); gtk_box_pack_start (GTK_BOX (top_hbox), vbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), priv->triangle_colorsel, FALSE, FALSE, 0); gtk_widget_set_tooltip_text (priv->triangle_colorsel, _("Select the color you want from the outer ring. " "Select the darkness or lightness of that color " "using the inner triangle.")); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); gtk_box_pack_end (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_widget_set_size_request (frame, -1, 30); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); color_sample_new (colorsel); gtk_container_add (GTK_CONTAINER (frame), priv->sample_area); gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); button = gtk_button_new (); gtk_widget_set_events (button, GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK); g_object_set_data (G_OBJECT (button), I_("COLORSEL"), colorsel); g_signal_connect (button, "clicked", G_CALLBACK (get_screen_color), NULL); picker_image = gtk_image_new_from_icon_name ("color-select-symbolic", GTK_ICON_SIZE_BUTTON); gtk_container_add (GTK_CONTAINER (button), picker_image); gtk_widget_show (GTK_WIDGET (picker_image)); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_widget_set_tooltip_text (button, _("Click the eyedropper, then click a color " "anywhere on your screen to select that color.")); top_right_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_box_pack_start (GTK_BOX (top_hbox), top_right_vbox, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (top_right_vbox), table, FALSE, FALSE, 0); gtk_grid_set_row_spacing (GTK_GRID (table), 6); gtk_grid_set_column_spacing (GTK_GRID (table), 12); make_label_spinbutton (colorsel, &priv->hue_spinbutton, _("_Hue:"), table, 0, 0, COLORSEL_HUE, _("Position on the color wheel.")); gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (priv->hue_spinbutton), TRUE); make_label_spinbutton (colorsel, &priv->sat_spinbutton, _("S_aturation:"), table, 0, 1, COLORSEL_SATURATION, _("Intensity of the color.")); make_label_spinbutton (colorsel, &priv->val_spinbutton, _("_Value:"), table, 0, 2, COLORSEL_VALUE, _("Brightness of the color.")); make_label_spinbutton (colorsel, &priv->red_spinbutton, _("_Red:"), table, 6, 0, COLORSEL_RED, _("Amount of red light in the color.")); make_label_spinbutton (colorsel, &priv->green_spinbutton, _("_Green:"), table, 6, 1, COLORSEL_GREEN, _("Amount of green light in the color.")); make_label_spinbutton (colorsel, &priv->blue_spinbutton, _("_Blue:"), table, 6, 2, COLORSEL_BLUE, _("Amount of blue light in the color.")); gtk_grid_attach (GTK_GRID (table), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), 0, 3, 8, 1); priv->opacity_label = gtk_label_new_with_mnemonic (_("Op_acity:")); gtk_widget_set_halign (priv->opacity_label, GTK_ALIGN_START); gtk_widget_set_valign (priv->opacity_label, GTK_ALIGN_CENTER); gtk_grid_attach (GTK_GRID (table), priv->opacity_label, 0, 4, 1, 1); adjust = gtk_adjustment_new (0.0, 0.0, 255.0, 1.0, 1.0, 0.0); g_object_set_data (G_OBJECT (adjust), I_("COLORSEL"), colorsel); priv->opacity_slider = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adjust); gtk_widget_set_tooltip_text (priv->opacity_slider, _("Transparency of the color.")); gtk_label_set_mnemonic_widget (GTK_LABEL (priv->opacity_label), priv->opacity_slider); gtk_scale_set_draw_value (GTK_SCALE (priv->opacity_slider), FALSE); g_signal_connect (adjust, "value-changed", G_CALLBACK (adjustment_changed), GINT_TO_POINTER (COLORSEL_OPACITY)); gtk_grid_attach (GTK_GRID (table), priv->opacity_slider, 1, 4, 6, 1); priv->opacity_entry = gtk_entry_new (); gtk_widget_set_tooltip_text (priv->opacity_entry, _("Transparency of the color.")); gtk_widget_set_size_request (priv->opacity_entry, 40, -1); g_signal_connect (priv->opacity_entry, "activate", G_CALLBACK (opacity_entry_changed), colorsel); gtk_grid_attach (GTK_GRID (table), priv->opacity_entry, 7, 4, 1, 1); label = gtk_label_new_with_mnemonic (_("Color _Name:")); gtk_grid_attach (GTK_GRID (table), label, 0, 5, 1, 1); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); priv->hex_entry = gtk_entry_new (); gtk_label_set_mnemonic_widget (GTK_LABEL (label), priv->hex_entry); g_signal_connect (priv->hex_entry, "activate", G_CALLBACK (hex_changed), colorsel); g_signal_connect (priv->hex_entry, "focus-out-event", G_CALLBACK (hex_focus_out), colorsel); gtk_widget_set_tooltip_text (priv->hex_entry, _("You can enter an HTML-style hexadecimal color " "value, or simply a color name such as “orange” " "in this entry.")); gtk_entry_set_width_chars (GTK_ENTRY (priv->hex_entry), 7); gtk_grid_attach (GTK_GRID (table), priv->hex_entry, 1, 5, 4, 1); focus_chain = g_list_append (focus_chain, priv->hue_spinbutton); focus_chain = g_list_append (focus_chain, priv->sat_spinbutton); focus_chain = g_list_append (focus_chain, priv->val_spinbutton); focus_chain = g_list_append (focus_chain, priv->red_spinbutton); focus_chain = g_list_append (focus_chain, priv->green_spinbutton); focus_chain = g_list_append (focus_chain, priv->blue_spinbutton); focus_chain = g_list_append (focus_chain, priv->opacity_slider); focus_chain = g_list_append (focus_chain, priv->opacity_entry); focus_chain = g_list_append (focus_chain, priv->hex_entry); gtk_container_set_focus_chain (GTK_CONTAINER (table), focus_chain); g_list_free (focus_chain); /* Set up the palette */ table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 1); gtk_grid_set_column_spacing (GTK_GRID (table), 1); for (i = 0; i < CUSTOM_PALETTE_WIDTH; i++) { for (j = 0; j < CUSTOM_PALETTE_HEIGHT; j++) { make_palette_frame (colorsel, table, i, j); } } set_selected_palette (colorsel, 0, 0); priv->palette_frame = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); label = gtk_label_new_with_mnemonic (_("_Palette:")); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (priv->palette_frame), label, FALSE, FALSE, 0); gtk_label_set_mnemonic_widget (GTK_LABEL (label), priv->custom_palette[0][0]); gtk_box_pack_end (GTK_BOX (top_right_vbox), priv->palette_frame, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (priv->palette_frame), table, FALSE, FALSE, 0); gtk_widget_show_all (top_hbox); /* hide unused stuff */ if (priv->has_opacity == FALSE) { gtk_widget_hide (priv->opacity_label); gtk_widget_hide (priv->opacity_slider); gtk_widget_hide (priv->opacity_entry); } if (priv->has_palette == FALSE) { gtk_widget_hide (priv->palette_frame); } atk_obj = gtk_widget_get_accessible (priv->triangle_colorsel); if (GTK_IS_ACCESSIBLE (atk_obj)) { atk_object_set_name (atk_obj, _("Color Wheel")); atk_object_set_role (gtk_widget_get_accessible (GTK_WIDGET (colorsel)), ATK_ROLE_COLOR_CHOOSER); make_all_relations (atk_obj, priv); } } /* GObject methods */ static void gcolor3_color_selection_finalize (GObject *object) { G_OBJECT_CLASS (gcolor3_color_selection_parent_class)->finalize (object); } static void gcolor3_color_selection_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { Gcolor3ColorSelection *colorsel = GCOLOR3_COLOR_SELECTION (object); switch (prop_id) { case PROP_HAS_OPACITY_CONTROL: gcolor3_color_selection_set_has_opacity_control (colorsel, g_value_get_boolean (value)); break; case PROP_HAS_PALETTE: gcolor3_color_selection_set_has_palette (colorsel, g_value_get_boolean (value)); break; case PROP_CURRENT_ALPHA: gcolor3_color_selection_set_current_alpha (colorsel, g_value_get_uint (value)); break; case PROP_CURRENT_RGBA: gcolor3_color_selection_set_current_rgba (colorsel, g_value_get_boxed (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gcolor3_color_selection_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { Gcolor3ColorSelection *colorsel = GCOLOR3_COLOR_SELECTION (object); switch (prop_id) { case PROP_HAS_OPACITY_CONTROL: g_value_set_boolean (value, gcolor3_color_selection_get_has_opacity_control (colorsel)); break; case PROP_HAS_PALETTE: g_value_set_boolean (value, gcolor3_color_selection_get_has_palette (colorsel)); break; case PROP_CURRENT_ALPHA: g_value_set_uint (value, gcolor3_color_selection_get_current_alpha (colorsel)); break; case PROP_CURRENT_RGBA: { GdkRGBA rgba; gcolor3_color_selection_get_current_rgba (colorsel, &rgba); g_value_set_boxed (value, &rgba); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } /* GtkWidget methods */ static void gcolor3_color_selection_destroy (GtkWidget *widget) { Gcolor3ColorSelection *colorsel = GCOLOR3_COLOR_SELECTION (widget); Gcolor3ColorSelectionPrivate *priv = colorsel->private_data; g_cancellable_cancel (priv->cancellable); GTK_WIDGET_CLASS (gcolor3_color_selection_parent_class)->destroy (widget); } static void gcolor3_color_selection_realize (GtkWidget *widget) { Gcolor3ColorSelection *colorsel = GCOLOR3_COLOR_SELECTION (widget); Gcolor3ColorSelectionPrivate *priv = colorsel->private_data; GtkSettings *settings = gtk_widget_get_settings (widget); priv->settings_connection = g_signal_connect (settings, "notify::gtk-color-palette", G_CALLBACK (palette_change_notify_instance), widget); update_palette (colorsel); GTK_WIDGET_CLASS (gcolor3_color_selection_parent_class)->realize (widget); } static void gcolor3_color_selection_unrealize (GtkWidget *widget) { Gcolor3ColorSelection *colorsel = GCOLOR3_COLOR_SELECTION (widget); Gcolor3ColorSelectionPrivate *priv = colorsel->private_data; GtkSettings *settings = gtk_widget_get_settings (widget); g_signal_handler_disconnect (settings, priv->settings_connection); GTK_WIDGET_CLASS (gcolor3_color_selection_parent_class)->unrealize (widget); } /* We override show-all since we have internal widgets that * shouldn’t be shown when you call show_all(), like the * palette and opacity sliders. */ static void gcolor3_color_selection_show_all (GtkWidget *widget) { gtk_widget_show (widget); } /* * * The Sample Color * */ static void color_sample_draw_sample (Gcolor3ColorSelection *colorsel, int which, cairo_t * cr); static void color_sample_update_samples (Gcolor3ColorSelection *colorsel); static void set_color_internal (Gcolor3ColorSelection *colorsel, gdouble *color) { Gcolor3ColorSelectionPrivate *priv; gint i; priv = colorsel->private_data; priv->changing = TRUE; priv->color[COLORSEL_RED] = color[0]; priv->color[COLORSEL_GREEN] = color[1]; priv->color[COLORSEL_BLUE] = color[2]; priv->color[COLORSEL_OPACITY] = color[3]; gtk_rgb_to_hsv (priv->color[COLORSEL_RED], priv->color[COLORSEL_GREEN], priv->color[COLORSEL_BLUE], &priv->color[COLORSEL_HUE], &priv->color[COLORSEL_SATURATION], &priv->color[COLORSEL_VALUE]); if (priv->default_set == FALSE) { for (i = 0; i < COLORSEL_NUM_CHANNELS; i++) priv->old_color[i] = priv->color[i]; } priv->default_set = TRUE; priv->default_alpha_set = TRUE; update_color (colorsel); } static void set_color_icon (GdkDragContext *context, gdouble *colors) { GdkPixbuf *pixbuf; guint32 pixel; pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 48, 32); pixel = (((UNSCALE (colors[COLORSEL_RED]) & 0xff00) << 16) | ((UNSCALE (colors[COLORSEL_GREEN]) & 0xff00) << 8) | ((UNSCALE (colors[COLORSEL_BLUE]) & 0xff00))); gdk_pixbuf_fill (pixbuf, pixel); gtk_drag_set_icon_pixbuf (context, pixbuf, -2, -2); g_object_unref (pixbuf); } static void color_sample_drag_begin (GtkWidget *widget, GdkDragContext *context, gpointer data) { Gcolor3ColorSelection *colorsel = data; Gcolor3ColorSelectionPrivate *priv; gdouble *colsrc; priv = colorsel->private_data; if (widget == priv->old_sample) colsrc = priv->old_color; else colsrc = priv->color; set_color_icon (context, colsrc); } static void color_sample_drag_end (GtkWidget *widget, UNUSED GdkDragContext *context, UNUSED gpointer data) { g_object_set_data (G_OBJECT (widget), I_("gtk-color-selection-drag-window"), NULL); } static void color_sample_drop_handle (GtkWidget *widget, UNUSED GdkDragContext *context, UNUSED gint x, UNUSED gint y, GtkSelectionData *selection_data, UNUSED guint info, UNUSED guint time, gpointer data) { Gcolor3ColorSelection *colorsel = data; Gcolor3ColorSelectionPrivate *priv; gint length; guint16 *vals; gdouble color[4]; priv = colorsel->private_data; /* This is currently a guint16 array of the format: * R * G * B * opacity */ length = gtk_selection_data_get_length (selection_data); if (length < 0) return; /* We accept drops with the wrong format, since the KDE color * chooser incorrectly drops application/x-color with format 8. */ if (length != 8) { g_warning ("Received invalid color data"); return; } vals = (guint16 *) gtk_selection_data_get_data (selection_data); if (widget == priv->cur_sample) { color[0] = (gdouble)vals[0] / 0xffff; color[1] = (gdouble)vals[1] / 0xffff; color[2] = (gdouble)vals[2] / 0xffff; color[3] = (gdouble)vals[3] / 0xffff; set_color_internal (colorsel, color); } } static void color_sample_drag_handle (GtkWidget *widget, UNUSED GdkDragContext *context, GtkSelectionData *selection_data, UNUSED guint info, UNUSED guint time, gpointer data) { Gcolor3ColorSelection *colorsel = data; Gcolor3ColorSelectionPrivate *priv; guint16 vals[4]; gdouble *colsrc; priv = colorsel->private_data; if (widget == priv->old_sample) colsrc = priv->old_color; else colsrc = priv->color; vals[0] = colsrc[COLORSEL_RED] * 0xffff; vals[1] = colsrc[COLORSEL_GREEN] * 0xffff; vals[2] = colsrc[COLORSEL_BLUE] * 0xffff; vals[3] = priv->has_opacity ? colsrc[COLORSEL_OPACITY] * 0xffff : 0xffff; gtk_selection_data_set (selection_data, gdk_atom_intern_static_string ("application/x-color"), 16, (guchar *)vals, 8); } /* which = 0 means draw old sample, which = 1 means draw new */ static void color_sample_draw_sample (Gcolor3ColorSelection *colorsel, int which, cairo_t *cr) { GtkWidget *da; gint x, y, goff; Gcolor3ColorSelectionPrivate *priv; int width, height; g_return_if_fail (colorsel != NULL); priv = colorsel->private_data; g_return_if_fail (priv->sample_area != NULL); if (!gtk_widget_is_drawable (priv->sample_area)) return; if (which == 0) { da = priv->old_sample; goff = 0; } else { GtkAllocation old_sample_allocation; da = priv->cur_sample; gtk_widget_get_allocation (priv->old_sample, &old_sample_allocation); goff = old_sample_allocation.width % 32; } /* Below needs tweaking for non-power-of-two */ width = gtk_widget_get_allocated_width (da); height = gtk_widget_get_allocated_height (da); if (priv->has_opacity) { /* Draw checks in background */ cairo_set_source_rgb (cr, 0.5, 0.5, 0.5); cairo_rectangle (cr, 0, 0, width, height); cairo_fill (cr); cairo_set_source_rgb (cr, 0.75, 0.75, 0.75); for (x = goff & -CHECK_SIZE; x < goff + width; x += CHECK_SIZE) for (y = 0; y < height; y += CHECK_SIZE) if ((x / CHECK_SIZE + y / CHECK_SIZE) % 2 == 0) cairo_rectangle (cr, x - goff, y, CHECK_SIZE, CHECK_SIZE); cairo_fill (cr); } if (which == 0) { cairo_set_source_rgba (cr, priv->old_color[COLORSEL_RED], priv->old_color[COLORSEL_GREEN], priv->old_color[COLORSEL_BLUE], priv->has_opacity ? priv->old_color[COLORSEL_OPACITY] : 1.0); } else { cairo_set_source_rgba (cr, priv->color[COLORSEL_RED], priv->color[COLORSEL_GREEN], priv->color[COLORSEL_BLUE], priv->has_opacity ? priv->color[COLORSEL_OPACITY] : 1.0); } cairo_rectangle (cr, 0, 0, width, height); cairo_fill (cr); } static void color_sample_update_samples (Gcolor3ColorSelection *colorsel) { Gcolor3ColorSelectionPrivate *priv = colorsel->private_data; gtk_widget_queue_draw (priv->old_sample); gtk_widget_queue_draw (priv->cur_sample); } static gboolean color_old_sample_draw (UNUSED GtkWidget *da, cairo_t *cr, Gcolor3ColorSelection *colorsel) { color_sample_draw_sample (colorsel, 0, cr); return FALSE; } static gboolean color_cur_sample_draw (UNUSED GtkWidget *da, cairo_t *cr, Gcolor3ColorSelection *colorsel) { color_sample_draw_sample (colorsel, 1, cr); return FALSE; } static void color_sample_setup_dnd (Gcolor3ColorSelection *colorsel, GtkWidget *sample) { static const GtkTargetEntry targets[] = { { "application/x-color", 0 } }; Gcolor3ColorSelectionPrivate *priv; priv = colorsel->private_data; gtk_drag_source_set (sample, GDK_BUTTON1_MASK | GDK_BUTTON3_MASK, targets, 1, GDK_ACTION_COPY | GDK_ACTION_MOVE); g_signal_connect (sample, "drag-begin", G_CALLBACK (color_sample_drag_begin), colorsel); if (sample == priv->cur_sample) { gtk_drag_dest_set (sample, GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, targets, 1, GDK_ACTION_COPY); g_signal_connect (sample, "drag-end", G_CALLBACK (color_sample_drag_end), colorsel); } g_signal_connect (sample, "drag-data-get", G_CALLBACK (color_sample_drag_handle), colorsel); g_signal_connect (sample, "drag-data-received", G_CALLBACK (color_sample_drop_handle), colorsel); } static void update_tooltips (Gcolor3ColorSelection *colorsel) { Gcolor3ColorSelectionPrivate *priv; priv = colorsel->private_data; if (priv->has_palette == TRUE) { gtk_widget_set_tooltip_text (priv->old_sample, _("The previously-selected color, for comparison to the color " "you’re selecting now. You can drag this color to a palette " "entry, or select this color as current by dragging it to the " "other color swatch alongside.")); gtk_widget_set_tooltip_text (priv->cur_sample, _("The color you’ve chosen. You can drag this color to a palette " "entry to save it for use in the future.")); } else { gtk_widget_set_tooltip_text (priv->old_sample, _("The previously-selected color, for comparison to the color " "you’re selecting now.")); gtk_widget_set_tooltip_text (priv->cur_sample, _("The color you’ve chosen.")); } } static void color_sample_new (Gcolor3ColorSelection *colorsel) { Gcolor3ColorSelectionPrivate *priv; priv = colorsel->private_data; priv->sample_area = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); priv->old_sample = gtk_drawing_area_new (); priv->cur_sample = gtk_drawing_area_new (); gtk_box_pack_start (GTK_BOX (priv->sample_area), priv->old_sample, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (priv->sample_area), priv->cur_sample, TRUE, TRUE, 0); g_signal_connect (priv->old_sample, "draw", G_CALLBACK (color_old_sample_draw), colorsel); g_signal_connect (priv->cur_sample, "draw", G_CALLBACK (color_cur_sample_draw), colorsel); color_sample_setup_dnd (colorsel, priv->old_sample); color_sample_setup_dnd (colorsel, priv->cur_sample); update_tooltips (colorsel); gtk_widget_show_all (priv->sample_area); } /* The palette area code */ static void palette_get_color (GtkWidget *drawing_area, gdouble *color) { gdouble *color_val; g_return_if_fail (color != NULL); color_val = g_object_get_data (G_OBJECT (drawing_area), "color_val"); if (color_val == NULL) { /* Default to white for no good reason */ color[0] = 1.0; color[1] = 1.0; color[2] = 1.0; color[3] = 1.0; return; } color[0] = color_val[0]; color[1] = color_val[1]; color[2] = color_val[2]; color[3] = 1.0; } static gboolean palette_draw (GtkWidget *drawing_area, cairo_t *cr, gpointer data) { Gcolor3ColorSelection *self = GCOLOR3_COLOR_SELECTION (data); Gcolor3ColorSelectionPrivate *priv = gcolor3_color_selection_get_instance_private (self); gint focus_width; gdk_cairo_set_source_rgba (cr, &priv->palette_color); cairo_paint (cr); if (gtk_widget_has_visible_focus (drawing_area)) { set_focus_line_attributes (drawing_area, cr, &focus_width); cairo_rectangle (cr, focus_width / 2., focus_width / 2., gtk_widget_get_allocated_width (drawing_area) - focus_width, gtk_widget_get_allocated_height (drawing_area) - focus_width); cairo_stroke (cr); } return FALSE; } static void set_focus_line_attributes (GtkWidget *drawing_area, cairo_t *cr, gint *focus_width) { gdouble color[4]; gint8 *dash_list; gtk_widget_style_get (drawing_area, "focus-line-width", focus_width, "focus-line-pattern", (gchar *)&dash_list, NULL); palette_get_color (drawing_area, color); if (INTENSITY (color[0], color[1], color[2]) > 0.5) cairo_set_source_rgb (cr, 0., 0., 0.); else cairo_set_source_rgb (cr, 1., 1., 1.); cairo_set_line_width (cr, *focus_width); if (dash_list[0]) { gint n_dashes = strlen ((gchar *)dash_list); gdouble *dashes = g_new (gdouble, n_dashes); gdouble total_length = 0; gdouble dash_offset; gint i; for (i = 0; i < n_dashes; i++) { dashes[i] = dash_list[i]; total_length += dash_list[i]; } /* The dash offset here aligns the pattern to integer pixels * by starting the dash at the right side of the left border * Negative dash offsets in cairo don't work * (https://bugs.freedesktop.org/show_bug.cgi?id=2729) */ dash_offset = - *focus_width / 2.; while (dash_offset < 0) dash_offset += total_length; cairo_set_dash (cr, dashes, n_dashes, dash_offset); g_free (dashes); } g_free (dash_list); } static void palette_drag_begin (GtkWidget *widget, UNUSED GdkDragContext *context, UNUSED gpointer data) { gdouble colors[4]; palette_get_color (widget, colors); set_color_icon (context, colors); } static void palette_drag_handle (GtkWidget *widget, UNUSED GdkDragContext *context, GtkSelectionData *selection_data, UNUSED guint info, UNUSED guint time, UNUSED gpointer data) { guint16 vals[4]; gdouble colsrc[4]; palette_get_color (widget, colsrc); vals[0] = colsrc[COLORSEL_RED] * 0xffff; vals[1] = colsrc[COLORSEL_GREEN] * 0xffff; vals[2] = colsrc[COLORSEL_BLUE] * 0xffff; vals[3] = 0xffff; gtk_selection_data_set (selection_data, gdk_atom_intern_static_string ("application/x-color"), 16, (guchar *)vals, 8); } static void palette_drag_end (GtkWidget *widget, UNUSED GdkDragContext *context, UNUSED gpointer data) { g_object_set_data (G_OBJECT (widget), I_("gtk-color-selection-drag-window"), NULL); } static GdkRGBA * get_current_colors (Gcolor3ColorSelection *colorsel) { GtkSettings *settings; GdkRGBA *colors = NULL; gint n_colors = 0; gchar *palette; settings = gtk_widget_get_settings (GTK_WIDGET (colorsel)); g_object_get (settings, "gtk-color-palette", &palette, NULL); if (!gcolor3_color_selection_palette_from_string (palette, &colors, &n_colors)) { gcolor3_color_selection_palette_from_string (DEFAULT_COLOR_PALETTE, &colors, &n_colors); } else { /* If there are less colors provided than the number of slots in the * color selection, we fill in the rest from the defaults. */ if (n_colors < (CUSTOM_PALETTE_WIDTH * CUSTOM_PALETTE_HEIGHT)) { GdkRGBA *tmp_colors = colors; gint tmp_n_colors = n_colors; gcolor3_color_selection_palette_from_string (DEFAULT_COLOR_PALETTE, &colors, &n_colors); memcpy (colors, tmp_colors, sizeof (GdkRGBA) * tmp_n_colors); g_free (tmp_colors); } } /* make sure that we fill every slot */ g_assert (n_colors == CUSTOM_PALETTE_WIDTH * CUSTOM_PALETTE_HEIGHT); g_free (palette); return colors; } /* Changes the model color */ static void palette_change_color (GtkWidget *drawing_area, Gcolor3ColorSelection *colorsel, gdouble *color) { gint x, y; Gcolor3ColorSelectionPrivate *priv; GdkRGBA gdk_color; GdkRGBA *current_colors; GdkScreen *screen; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); g_return_if_fail (GTK_IS_DRAWING_AREA (drawing_area)); priv = colorsel->private_data; gdk_color.red = color[0]; gdk_color.green = color[1]; gdk_color.blue = color[2]; x = 0; y = 0; /* Quiet GCC */ while (x < CUSTOM_PALETTE_WIDTH) { y = 0; while (y < CUSTOM_PALETTE_HEIGHT) { if (priv->custom_palette[x][y] == drawing_area) goto out; ++y; } ++x; } out: g_assert (x < CUSTOM_PALETTE_WIDTH || y < CUSTOM_PALETTE_HEIGHT); current_colors = get_current_colors (colorsel); current_colors[y * CUSTOM_PALETTE_WIDTH + x] = gdk_color; screen = gtk_widget_get_screen (GTK_WIDGET (colorsel)); if (change_palette_hook != default_change_palette_func) (* change_palette_hook) (screen, current_colors, CUSTOM_PALETTE_WIDTH * CUSTOM_PALETTE_HEIGHT); else if (noscreen_change_palette_hook != default_noscreen_change_palette_func) { if (screen != gdk_screen_get_default ()) g_warning ("gcolor3_color_selection_set_change_palette_hook used by " "widget is not on the default screen."); (* noscreen_change_palette_hook) (current_colors, CUSTOM_PALETTE_WIDTH * CUSTOM_PALETTE_HEIGHT); } else (* change_palette_hook) (screen, current_colors, CUSTOM_PALETTE_WIDTH * CUSTOM_PALETTE_HEIGHT); g_free (current_colors); } /* Changes the view color */ static void palette_set_color (GtkWidget *drawing_area, Gcolor3ColorSelection *colorsel, gdouble *color) { Gcolor3ColorSelectionPrivate *priv = gcolor3_color_selection_get_instance_private (colorsel); gdouble *new_color = g_new (double, 4); GdkRGBA rgba; rgba.red = color[0]; rgba.green = color[1]; rgba.blue = color[2]; rgba.alpha = 1; priv->palette_color = rgba; if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (drawing_area), "color_set")) == 0) { static const GtkTargetEntry targets[] = { { "application/x-color", 0 } }; gtk_drag_source_set (drawing_area, GDK_BUTTON1_MASK | GDK_BUTTON3_MASK, targets, 1, GDK_ACTION_COPY | GDK_ACTION_MOVE); g_signal_connect (drawing_area, "drag-begin", G_CALLBACK (palette_drag_begin), colorsel); g_signal_connect (drawing_area, "drag-data-get", G_CALLBACK (palette_drag_handle), colorsel); g_object_set_data (G_OBJECT (drawing_area), I_("color_set"), GINT_TO_POINTER (1)); } new_color[0] = color[0]; new_color[1] = color[1]; new_color[2] = color[2]; new_color[3] = 1.0; g_object_set_data_full (G_OBJECT (drawing_area), I_("color_val"), new_color, (GDestroyNotify)g_free); } static void save_color_selected (UNUSED GtkWidget *menuitem, gpointer data) { Gcolor3ColorSelection *colorsel; GtkWidget *drawing_area; Gcolor3ColorSelectionPrivate *priv; drawing_area = GTK_WIDGET (data); colorsel = GCOLOR3_COLOR_SELECTION (g_object_get_data (G_OBJECT (drawing_area), "gtk-color-sel")); priv = colorsel->private_data; palette_change_color (drawing_area, colorsel, priv->color); } static void do_popup (Gcolor3ColorSelection *colorsel, GtkWidget *drawing_area, const GdkEvent *trigger_event) { GtkWidget *menu; GtkWidget *mi; g_object_set_data (G_OBJECT (drawing_area), I_("gtk-color-sel"), colorsel); menu = gtk_menu_new (); g_signal_connect (menu, "hide", G_CALLBACK (gtk_widget_destroy), NULL); mi = gtk_menu_item_new_with_mnemonic (_("_Save color here")); g_signal_connect (mi, "activate", G_CALLBACK (save_color_selected), drawing_area); gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi); gtk_widget_show_all (mi); if (trigger_event && gdk_event_triggers_context_menu (trigger_event)) gtk_menu_popup_at_pointer (GTK_MENU (menu), trigger_event); else gtk_menu_popup_at_widget (GTK_MENU (menu), drawing_area, GDK_GRAVITY_CENTER, GDK_GRAVITY_NORTH_WEST, trigger_event); } static gboolean palette_enter (GtkWidget *drawing_area, UNUSED GdkEventCrossing *event, UNUSED gpointer data) { g_object_set_data (G_OBJECT (drawing_area), I_("gtk-colorsel-have-pointer"), GUINT_TO_POINTER (TRUE)); return FALSE; } static gboolean palette_leave (GtkWidget *drawing_area, UNUSED GdkEventCrossing *event, UNUSED gpointer data) { g_object_set_data (G_OBJECT (drawing_area), I_("gtk-colorsel-have-pointer"), NULL); return FALSE; } static gboolean palette_press (GtkWidget *drawing_area, GdkEventButton *event, gpointer data) { Gcolor3ColorSelection *colorsel = GCOLOR3_COLOR_SELECTION (data); gtk_widget_grab_focus (drawing_area); if (gdk_event_triggers_context_menu ((GdkEvent *) event)) { do_popup (colorsel, drawing_area, (GdkEvent *) event); return TRUE; } return FALSE; } static gboolean palette_release (GtkWidget *drawing_area, GdkEventButton *event, gpointer data) { Gcolor3ColorSelection *colorsel = GCOLOR3_COLOR_SELECTION (data); gtk_widget_grab_focus (drawing_area); if (event->button == GDK_BUTTON_PRIMARY && g_object_get_data (G_OBJECT (drawing_area), "gtk-colorsel-have-pointer") != NULL) { if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (drawing_area), "color_set")) != 0) { gdouble color[4]; palette_get_color (drawing_area, color); set_color_internal (colorsel, color); } } return FALSE; } static void palette_drop_handle (GtkWidget *widget, UNUSED GdkDragContext *context, UNUSED gint x, UNUSED gint y, GtkSelectionData *selection_data, UNUSED guint info, UNUSED guint time, gpointer data) { Gcolor3ColorSelection *colorsel = GCOLOR3_COLOR_SELECTION (data); gint length; guint16 *vals; gdouble color[4]; length = gtk_selection_data_get_length (selection_data); if (length < 0) return; /* We accept drops with the wrong format, since the KDE color * chooser incorrectly drops application/x-color with format 8. */ if (length != 8) { g_warning ("Received invalid color data"); return; } vals = (guint16 *) gtk_selection_data_get_data (selection_data); color[0] = (gdouble)vals[0] / 0xffff; color[1] = (gdouble)vals[1] / 0xffff; color[2] = (gdouble)vals[2] / 0xffff; color[3] = (gdouble)vals[3] / 0xffff; palette_change_color (widget, colorsel, color); set_color_internal (colorsel, color); } static gint palette_activate (GtkWidget *widget, GdkEventKey *event, gpointer data) { /* should have a drawing area subclass with an activate signal */ if ((event->keyval == GDK_KEY_space) || (event->keyval == GDK_KEY_Return) || (event->keyval == GDK_KEY_ISO_Enter) || (event->keyval == GDK_KEY_KP_Enter) || (event->keyval == GDK_KEY_KP_Space)) { if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "color_set")) != 0) { gdouble color[4]; palette_get_color (widget, color); set_color_internal (GCOLOR3_COLOR_SELECTION (data), color); } return TRUE; } return FALSE; } static gboolean palette_popup (GtkWidget *widget, gpointer data) { do_popup (data, widget, NULL); return TRUE; } static GtkWidget* palette_new (Gcolor3ColorSelection *colorsel) { GtkWidget *retval; static const GtkTargetEntry targets[] = { { "application/x-color", 0 } }; retval = gtk_drawing_area_new (); gtk_widget_set_can_focus (retval, TRUE); g_object_set_data (G_OBJECT (retval), I_("color_set"), GINT_TO_POINTER (0)); gtk_widget_set_events (retval, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); g_signal_connect (retval, "draw", G_CALLBACK (palette_draw), colorsel); g_signal_connect (retval, "button-press-event", G_CALLBACK (palette_press), colorsel); g_signal_connect (retval, "button-release-event", G_CALLBACK (palette_release), colorsel); g_signal_connect (retval, "enter-notify-event", G_CALLBACK (palette_enter), colorsel); g_signal_connect (retval, "leave-notify-event", G_CALLBACK (palette_leave), colorsel); g_signal_connect (retval, "key-press-event", G_CALLBACK (palette_activate), colorsel); g_signal_connect (retval, "popup-menu", G_CALLBACK (palette_popup), colorsel); gtk_drag_dest_set (retval, GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, targets, 1, GDK_ACTION_COPY); g_signal_connect (retval, "drag-end", G_CALLBACK (palette_drag_end), NULL); g_signal_connect (retval, "drag-data-received", G_CALLBACK (palette_drop_handle), colorsel); gtk_widget_set_tooltip_text (retval, _("Click this palette entry to make it the current color. " "To change this entry, drag a color swatch here or right-click " "it and select “Save color here.”")); return retval; } /* The actual Gcolor3ColorSelection widget */ static void grab_color_at_pointer (GdkScreen *screen, GdkDevice *device, gint x_root, gint y_root, gpointer data) { GdkPixbuf *pixbuf; guchar *pixels; Gcolor3ColorSelection *colorsel = data; Gcolor3ColorSelectionPrivate *priv; GdkWindow *root_window = gdk_screen_get_root_window (screen); priv = colorsel->private_data; pixbuf = gdk_pixbuf_get_from_window (root_window, x_root, y_root, 1, 1); if (!pixbuf) { gint x, y; GdkWindow *window = gdk_device_get_window_at_position (device, &x, &y); if (!window) return; pixbuf = gdk_pixbuf_get_from_window (window, x, y, 1, 1); if (!pixbuf) return; } pixels = gdk_pixbuf_get_pixels (pixbuf); priv->color[COLORSEL_RED] = SCALE(pixels[0] * 0x101); priv->color[COLORSEL_GREEN] = SCALE(pixels[1] * 0x101); priv->color[COLORSEL_BLUE] = SCALE(pixels[2] * 0x101); g_object_unref (pixbuf); gtk_rgb_to_hsv (priv->color[COLORSEL_RED], priv->color[COLORSEL_GREEN], priv->color[COLORSEL_BLUE], &priv->color[COLORSEL_HUE], &priv->color[COLORSEL_SATURATION], &priv->color[COLORSEL_VALUE]); update_color (colorsel); } static void mouse_motion (UNUSED GtkWidget *invisible, GdkEventMotion *event, gpointer data) { grab_color_at_pointer (gdk_event_get_screen ((GdkEvent *) event), gdk_event_get_device ((GdkEvent *) event), event->x_root, event->y_root, data); } static gboolean mouse_release (GtkWidget *invisible, GdkEventButton *event, gpointer data) { /* Gcolor3ColorSelection *colorsel = data; */ if (event->button != GDK_BUTTON_PRIMARY) return FALSE; grab_color_at_pointer (gdk_event_get_screen ((GdkEvent *) event), gdk_event_get_device ((GdkEvent *) event), event->x_root, event->y_root, data); g_signal_handlers_disconnect_by_func (invisible, mouse_motion, data); g_signal_handlers_disconnect_by_func (invisible, mouse_release, data); return TRUE; } /* Helper Functions */ static gboolean key_press (GtkWidget *invisible, GdkEventKey *event, gpointer data) { GdkScreen *screen = gdk_event_get_screen ((GdkEvent *) event); GdkDevice *device, *pointer_device; guint state = event->state & gtk_accelerator_get_default_mod_mask (); gint x, y; gint dx, dy; device = gdk_event_get_device ((GdkEvent * ) event); pointer_device = gdk_device_get_associated_device (device); gdk_device_get_position (pointer_device, NULL, &x, &y); dx = 0; dy = 0; switch (event->keyval) { case GDK_KEY_space: case GDK_KEY_Return: case GDK_KEY_ISO_Enter: case GDK_KEY_KP_Enter: case GDK_KEY_KP_Space: grab_color_at_pointer (screen, pointer_device, x, y, data); /* fall through */ case GDK_KEY_Escape: g_signal_handlers_disconnect_by_func (invisible, mouse_press, data); g_signal_handlers_disconnect_by_func (invisible, key_press, data); return TRUE; case GDK_KEY_Up: case GDK_KEY_KP_Up: dy = state == GDK_MOD1_MASK ? -BIG_STEP : -1; break; case GDK_KEY_Down: case GDK_KEY_KP_Down: dy = state == GDK_MOD1_MASK ? BIG_STEP : 1; break; case GDK_KEY_Left: case GDK_KEY_KP_Left: dx = state == GDK_MOD1_MASK ? -BIG_STEP : -1; break; case GDK_KEY_Right: case GDK_KEY_KP_Right: dx = state == GDK_MOD1_MASK ? BIG_STEP : 1; break; default: return FALSE; } gdk_device_warp (pointer_device, screen, x + dx, y + dy); return TRUE; } static gboolean mouse_press (GtkWidget *invisible, GdkEventButton *event, gpointer data) { if (event->type == GDK_BUTTON_PRESS && event->button == GDK_BUTTON_PRIMARY) { g_signal_connect (invisible, "motion-notify-event", G_CALLBACK (mouse_motion), data); g_signal_connect (invisible, "button-release-event", G_CALLBACK (mouse_release), data); g_signal_handlers_disconnect_by_func (invisible, mouse_press, data); g_signal_handlers_disconnect_by_func (invisible, key_press, data); return TRUE; } return FALSE; } /* when the button is clicked */ static void get_screen_color (GtkWidget *button) { Gcolor3ColorSelection *colorsel = g_object_get_data (G_OBJECT (button), "COLORSEL"); Gcolor3ColorSelectionPrivate *priv = colorsel->private_data; XdpPortal *portal; XdpParent *parent; GtkWindow *window; GtkApplication *app; app = GTK_APPLICATION (g_application_get_default ()); window = gtk_application_get_active_window (app); portal = xdp_portal_new (); parent = xdp_parent_new_gtk (window); xdp_portal_pick_color (portal, parent, priv->cancellable, pick_color_cb, colorsel); } static void pick_color_cb (GObject *source_object, GAsyncResult *result, gpointer user_data) { Gcolor3ColorSelection *colorsel; Gcolor3ColorSelectionPrivate *priv; GdkRGBA color; GVariant *variant; GError *error = NULL; colorsel = GCOLOR3_COLOR_SELECTION (user_data); priv = colorsel->private_data; variant = xdp_portal_pick_color_finish (XDP_PORTAL (source_object), result, &error); if (!variant) { if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) g_warning ("Failed to pick color: %s", error->message); g_error_free (error); return; } g_variant_get (variant, "(ddd)", &color.red, &color.green, &color.blue); priv->color[COLORSEL_RED] = color.red; priv->color[COLORSEL_GREEN] = color.green; priv->color[COLORSEL_BLUE] = color.blue; gtk_rgb_to_hsv (priv->color[COLORSEL_RED], priv->color[COLORSEL_GREEN], priv->color[COLORSEL_BLUE], &priv->color[COLORSEL_HUE], &priv->color[COLORSEL_SATURATION], &priv->color[COLORSEL_VALUE]); update_color (colorsel); } static void hex_changed (GtkWidget *hex_entry, gpointer data) { Gcolor3ColorSelection *colorsel; Gcolor3ColorSelectionPrivate *priv; GdkRGBA color; gchar *text; colorsel = GCOLOR3_COLOR_SELECTION (data); priv = colorsel->private_data; if (priv->changing) return; text = gtk_editable_get_chars (GTK_EDITABLE (priv->hex_entry), 0, -1); if (!g_str_has_prefix (text, "#")) { text = g_strconcat ("#", text, NULL); } if (gdk_rgba_parse (&color, text)) { priv->color[COLORSEL_RED] = color.red; priv->color[COLORSEL_GREEN] = color.green; priv->color[COLORSEL_BLUE] = color.blue; gtk_rgb_to_hsv (priv->color[COLORSEL_RED], priv->color[COLORSEL_GREEN], priv->color[COLORSEL_BLUE], &priv->color[COLORSEL_HUE], &priv->color[COLORSEL_SATURATION], &priv->color[COLORSEL_VALUE]); update_color (colorsel); } g_free (text); } static gboolean hex_focus_out (GtkWidget *hex_entry, UNUSED GdkEventFocus *event, gpointer data) { hex_changed (hex_entry, data); return FALSE; } static void hsv_changed (GtkWidget *hsv, gpointer data) { Gcolor3ColorSelection *colorsel; Gcolor3ColorSelectionPrivate *priv; colorsel = GCOLOR3_COLOR_SELECTION (data); priv = colorsel->private_data; if (priv->changing) return; gcolor3_hsv_get_color (GCOLOR3_HSV (hsv), &priv->color[COLORSEL_HUE], &priv->color[COLORSEL_SATURATION], &priv->color[COLORSEL_VALUE]); gtk_hsv_to_rgb (priv->color[COLORSEL_HUE], priv->color[COLORSEL_SATURATION], priv->color[COLORSEL_VALUE], &priv->color[COLORSEL_RED], &priv->color[COLORSEL_GREEN], &priv->color[COLORSEL_BLUE]); update_color (colorsel); } static void adjustment_changed (GtkAdjustment *adjustment, gpointer data) { Gcolor3ColorSelection *colorsel; Gcolor3ColorSelectionPrivate *priv; colorsel = GCOLOR3_COLOR_SELECTION (g_object_get_data (G_OBJECT (adjustment), "COLORSEL")); priv = colorsel->private_data; if (priv->changing) return; switch (GPOINTER_TO_INT (data)) { case COLORSEL_SATURATION: case COLORSEL_VALUE: priv->color[GPOINTER_TO_INT (data)] = gtk_adjustment_get_value (adjustment) / 100; gtk_hsv_to_rgb (priv->color[COLORSEL_HUE], priv->color[COLORSEL_SATURATION], priv->color[COLORSEL_VALUE], &priv->color[COLORSEL_RED], &priv->color[COLORSEL_GREEN], &priv->color[COLORSEL_BLUE]); break; case COLORSEL_HUE: priv->color[GPOINTER_TO_INT (data)] = gtk_adjustment_get_value (adjustment) / 360; gtk_hsv_to_rgb (priv->color[COLORSEL_HUE], priv->color[COLORSEL_SATURATION], priv->color[COLORSEL_VALUE], &priv->color[COLORSEL_RED], &priv->color[COLORSEL_GREEN], &priv->color[COLORSEL_BLUE]); break; case COLORSEL_RED: case COLORSEL_GREEN: case COLORSEL_BLUE: priv->color[GPOINTER_TO_INT (data)] = gtk_adjustment_get_value (adjustment) / 255; gtk_rgb_to_hsv (priv->color[COLORSEL_RED], priv->color[COLORSEL_GREEN], priv->color[COLORSEL_BLUE], &priv->color[COLORSEL_HUE], &priv->color[COLORSEL_SATURATION], &priv->color[COLORSEL_VALUE]); break; default: priv->color[GPOINTER_TO_INT (data)] = gtk_adjustment_get_value (adjustment) / 255; break; } update_color (colorsel); } static void opacity_entry_changed (UNUSED GtkWidget *opacity_entry, gpointer data) { Gcolor3ColorSelection *colorsel; Gcolor3ColorSelectionPrivate *priv; GtkAdjustment *adj; gchar *text; colorsel = GCOLOR3_COLOR_SELECTION (data); priv = colorsel->private_data; if (priv->changing) return; text = gtk_editable_get_chars (GTK_EDITABLE (priv->opacity_entry), 0, -1); adj = gtk_range_get_adjustment (GTK_RANGE (priv->opacity_slider)); gtk_adjustment_set_value (adj, g_strtod (text, NULL)); update_color (colorsel); g_free (text); } static void make_label_spinbutton (Gcolor3ColorSelection *colorsel, GtkWidget **spinbutton, gchar *text, GtkWidget *table, gint i, gint j, gint channel_type, const gchar *tooltip) { GtkWidget *label; GtkAdjustment *adjust; if (channel_type == COLORSEL_HUE) { adjust = gtk_adjustment_new (0.0, 0.0, 360.0, 1.0, 1.0, 0.0); } else if (channel_type == COLORSEL_SATURATION || channel_type == COLORSEL_VALUE) { adjust = gtk_adjustment_new (0.0, 0.0, 100.0, 1.0, 1.0, 0.0); } else { adjust = gtk_adjustment_new (0.0, 0.0, 255.0, 1.0, 1.0, 0.0); } g_object_set_data (G_OBJECT (adjust), I_("COLORSEL"), colorsel); *spinbutton = gtk_spin_button_new (adjust, 10.0, 0); gtk_widget_set_tooltip_text (*spinbutton, tooltip); g_signal_connect (adjust, "value-changed", G_CALLBACK (adjustment_changed), GINT_TO_POINTER (channel_type)); label = gtk_label_new_with_mnemonic (text); gtk_label_set_mnemonic_widget (GTK_LABEL (label), *spinbutton); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_grid_attach (GTK_GRID (table), label, i, j, 1, 1); gtk_grid_attach (GTK_GRID (table), *spinbutton, i+1, j, 1, 1); } static void make_palette_frame (Gcolor3ColorSelection *colorsel, GtkWidget *table, gint i, gint j) { GtkWidget *frame; Gcolor3ColorSelectionPrivate *priv; priv = colorsel->private_data; frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); priv->custom_palette[i][j] = palette_new (colorsel); gtk_widget_set_size_request (priv->custom_palette[i][j], CUSTOM_PALETTE_ENTRY_WIDTH, CUSTOM_PALETTE_ENTRY_HEIGHT); gtk_container_add (GTK_CONTAINER (frame), priv->custom_palette[i][j]); gtk_grid_attach (GTK_GRID (table), frame, i, j, 1, 1); } /* Set the palette entry [x][y] to be the currently selected one. */ static void set_selected_palette (Gcolor3ColorSelection *colorsel, int x, int y) { Gcolor3ColorSelectionPrivate *priv = colorsel->private_data; gtk_widget_grab_focus (priv->custom_palette[x][y]); } static void update_color (Gcolor3ColorSelection *colorsel) { Gcolor3ColorSelectionPrivate *priv = colorsel->private_data; gchar entryval[12]; gchar opacity_text[32]; gchar *ptr; priv->changing = TRUE; color_sample_update_samples (colorsel); gcolor3_hsv_set_color (GCOLOR3_HSV (priv->triangle_colorsel), priv->color[COLORSEL_HUE], priv->color[COLORSEL_SATURATION], priv->color[COLORSEL_VALUE]); gtk_adjustment_set_value (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->hue_spinbutton)), scale_round (priv->color[COLORSEL_HUE], 360)); gtk_adjustment_set_value (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->sat_spinbutton)), scale_round (priv->color[COLORSEL_SATURATION], 100)); gtk_adjustment_set_value (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->val_spinbutton)), scale_round (priv->color[COLORSEL_VALUE], 100)); gtk_adjustment_set_value (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->red_spinbutton)), scale_round (priv->color[COLORSEL_RED], 255)); gtk_adjustment_set_value (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->green_spinbutton)), scale_round (priv->color[COLORSEL_GREEN], 255)); gtk_adjustment_set_value (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->blue_spinbutton)), scale_round (priv->color[COLORSEL_BLUE], 255)); gtk_adjustment_set_value (gtk_range_get_adjustment (GTK_RANGE (priv->opacity_slider)), scale_round (priv->color[COLORSEL_OPACITY], 255)); g_snprintf (opacity_text, 32, "%.0f", scale_round (priv->color[COLORSEL_OPACITY], 255)); gtk_entry_set_text (GTK_ENTRY (priv->opacity_entry), opacity_text); g_snprintf (entryval, 11, "#%2x%2x%2x", (guint) (scale_round (priv->color[COLORSEL_RED], 255)), (guint) (scale_round (priv->color[COLORSEL_GREEN], 255)), (guint) (scale_round (priv->color[COLORSEL_BLUE], 255))); for (ptr = entryval; *ptr; ptr++) if (*ptr == ' ') *ptr = '0'; gtk_entry_set_text (GTK_ENTRY (priv->hex_entry), entryval); priv->changing = FALSE; g_object_ref (colorsel); g_signal_emit (colorsel, color_selection_signals[COLOR_CHANGED], 0); g_object_freeze_notify (G_OBJECT (colorsel)); g_object_notify (G_OBJECT (colorsel), "current-rgba"); g_object_notify (G_OBJECT (colorsel), "current-alpha"); g_object_thaw_notify (G_OBJECT (colorsel)); g_object_unref (colorsel); } static void update_palette (Gcolor3ColorSelection *colorsel) { GdkRGBA *current_colors; gint i, j; current_colors = get_current_colors (colorsel); for (i = 0; i < CUSTOM_PALETTE_HEIGHT; i++) { for (j = 0; j < CUSTOM_PALETTE_WIDTH; j++) { gint index; index = i * CUSTOM_PALETTE_WIDTH + j; gcolor3_color_selection_set_palette_color (colorsel, index, ¤t_colors[index]); } } g_free (current_colors); } static void palette_change_notify_instance (UNUSED GObject *object, UNUSED GParamSpec *pspec, gpointer data) { update_palette (GCOLOR3_COLOR_SELECTION (data)); } static void default_noscreen_change_palette_func (const GdkRGBA *colors, gint n_colors) { default_change_palette_func (gdk_screen_get_default (), colors, n_colors); } static void default_change_palette_func (GdkScreen *screen, const GdkRGBA *colors, gint n_colors) { GValue value = G_VALUE_INIT; gchar *str; g_value_init (&value, G_TYPE_STRING); str = gcolor3_color_selection_palette_to_string (colors, n_colors); g_value_set_string (&value, str); g_object_set_property (G_OBJECT (gtk_settings_get_for_screen (screen)), "gtk-color-palette", &value); g_free (str); } /** * gcolor3_color_selection_new: * * Creates a new Gcolor3ColorSelection. * * Returns: a new #Gcolor3ColorSelection */ GtkWidget * gcolor3_color_selection_new (void) { Gcolor3ColorSelection *colorsel; Gcolor3ColorSelectionPrivate *priv; gdouble color[4]; color[0] = 1.0; color[1] = 1.0; color[2] = 1.0; color[3] = 1.0; colorsel = g_object_new (GCOLOR3_TYPE_COLOR_SELECTION, NULL); priv = colorsel->private_data; set_color_internal (colorsel, color); gcolor3_color_selection_set_has_opacity_control (colorsel, TRUE); /* We want to make sure that default_set is FALSE. * This way the user can still set it. */ priv->default_set = FALSE; priv->default_alpha_set = FALSE; return GTK_WIDGET (colorsel); } /** * gcolor3_color_selection_get_has_opacity_control: * @colorsel: a #Gcolor3ColorSelection * * Determines whether the colorsel has an opacity control. * * Returns: %TRUE if the @colorsel has an opacity control, * %FALSE if it does't */ gboolean gcolor3_color_selection_get_has_opacity_control (Gcolor3ColorSelection *colorsel) { Gcolor3ColorSelectionPrivate *priv; g_return_val_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel), FALSE); priv = colorsel->private_data; return priv->has_opacity; } /** * gcolor3_color_selection_set_has_opacity_control: * @colorsel: a #Gcolor3ColorSelection * @has_opacity: %TRUE if @colorsel can set the opacity, %FALSE otherwise * * Sets the @colorsel to use or not use opacity. */ void gcolor3_color_selection_set_has_opacity_control (Gcolor3ColorSelection *colorsel, gboolean has_opacity) { Gcolor3ColorSelectionPrivate *priv; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); priv = colorsel->private_data; has_opacity = has_opacity != FALSE; if (priv->has_opacity != has_opacity) { priv->has_opacity = has_opacity; if (has_opacity) { gtk_widget_show (priv->opacity_slider); gtk_widget_show (priv->opacity_label); gtk_widget_show (priv->opacity_entry); } else { gtk_widget_hide (priv->opacity_slider); gtk_widget_hide (priv->opacity_label); gtk_widget_hide (priv->opacity_entry); } color_sample_update_samples (colorsel); g_object_notify (G_OBJECT (colorsel), "has-opacity-control"); } } /** * gcolor3_color_selection_get_has_palette: * @colorsel: a #Gcolor3ColorSelection * * Determines whether the color selector has a color palette. * * Returns: %TRUE if the selector has a palette, %FALSE if it hasn't */ gboolean gcolor3_color_selection_get_has_palette (Gcolor3ColorSelection *colorsel) { Gcolor3ColorSelectionPrivate *priv; g_return_val_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel), FALSE); priv = colorsel->private_data; return priv->has_palette; } /** * gcolor3_color_selection_set_has_palette: * @colorsel: a #Gcolor3ColorSelection * @has_palette: %TRUE if palette is to be visible, %FALSE otherwise * * Shows and hides the palette based upon the value of @has_palette. */ void gcolor3_color_selection_set_has_palette (Gcolor3ColorSelection *colorsel, gboolean has_palette) { Gcolor3ColorSelectionPrivate *priv; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); priv = colorsel->private_data; has_palette = has_palette != FALSE; if (priv->has_palette != has_palette) { priv->has_palette = has_palette; if (has_palette) gtk_widget_show (priv->palette_frame); else gtk_widget_hide (priv->palette_frame); update_tooltips (colorsel); g_object_notify (G_OBJECT (colorsel), "has-palette"); } } /** * gcolor3_color_selection_set_current_color: * @colorsel: a #Gcolor3ColorSelection * @color: a #GdkRGBA to set the current color with * * Sets the current color to be @color. * * The first time this is called, it will also set * the original color to be @color too. */ void gcolor3_color_selection_set_current_color (Gcolor3ColorSelection *colorsel, const GdkRGBA *color) { Gcolor3ColorSelectionPrivate *priv; gint i; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); g_return_if_fail (color != NULL); priv = colorsel->private_data; priv->changing = TRUE; priv->color[COLORSEL_RED] = color->red; priv->color[COLORSEL_GREEN] = color->green; priv->color[COLORSEL_BLUE] = color->blue; gtk_rgb_to_hsv (priv->color[COLORSEL_RED], priv->color[COLORSEL_GREEN], priv->color[COLORSEL_BLUE], &priv->color[COLORSEL_HUE], &priv->color[COLORSEL_SATURATION], &priv->color[COLORSEL_VALUE]); if (priv->default_set == FALSE) { for (i = 0; i < COLORSEL_NUM_CHANNELS; i++) priv->old_color[i] = priv->color[i]; } priv->default_set = TRUE; update_color (colorsel); } /** * gcolor3_color_selection_set_current_alpha: * @colorsel: a #Gcolor3ColorSelection * @alpha: an integer between 0 and 65535 * * Sets the current opacity to be @alpha. * * The first time this is called, it will also set * the original opacity to be @alpha too. */ // FIXME: this can possibly be removed, together with all special alpha treatment. void gcolor3_color_selection_set_current_alpha (Gcolor3ColorSelection *colorsel, guint16 alpha) { Gcolor3ColorSelectionPrivate *priv; gint i; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); priv = colorsel->private_data; priv->changing = TRUE; priv->color[COLORSEL_OPACITY] = SCALE (alpha); if (priv->default_alpha_set == FALSE) { for (i = 0; i < COLORSEL_NUM_CHANNELS; i++) priv->old_color[i] = priv->color[i]; } priv->default_alpha_set = TRUE; update_color (colorsel); } /** * gcolor3_color_selection_get_current_color: * @colorsel: a #Gcolor3ColorSelection * @color: (out): a #GdkRGBA to fill in with the current color * * Sets @color to be the current color in the Gcolor3ColorSelection widget. */ void gcolor3_color_selection_get_current_color (Gcolor3ColorSelection *colorsel, GdkRGBA *color) { Gcolor3ColorSelectionPrivate *priv; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); g_return_if_fail (color != NULL); priv = colorsel->private_data; color->red = priv->color[COLORSEL_RED]; color->green = priv->color[COLORSEL_GREEN]; color->blue = priv->color[COLORSEL_BLUE]; } /** * gcolor3_color_selection_get_current_alpha: * @colorsel: a #Gcolor3ColorSelection * * Returns the current alpha value. * * Returns: an integer between 0 and 65535 */ guint16 gcolor3_color_selection_get_current_alpha (Gcolor3ColorSelection *colorsel) { Gcolor3ColorSelectionPrivate *priv; g_return_val_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel), 0); priv = colorsel->private_data; return priv->has_opacity ? UNSCALE (priv->color[COLORSEL_OPACITY]) : 65535; } /** * gcolor3_color_selection_set_previous_color: * @colorsel: a #Gcolor3ColorSelection * @color: a #GdkRGBA to set the previous color with * * Sets the “previous” color to be @color. * * This function should be called with some hesitations, * as it might seem confusing to have that color change. * Calling gcolor3_color_selection_set_current_color() will also * set this color the first time it is called. */ void gcolor3_color_selection_set_previous_color (Gcolor3ColorSelection *colorsel, const GdkRGBA *color) { Gcolor3ColorSelectionPrivate *priv; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); g_return_if_fail (color != NULL); priv = colorsel->private_data; priv->changing = TRUE; priv->old_color[COLORSEL_RED] = color->red; priv->old_color[COLORSEL_GREEN] = color->green; priv->old_color[COLORSEL_BLUE] = color->blue; gtk_rgb_to_hsv (priv->old_color[COLORSEL_RED], priv->old_color[COLORSEL_GREEN], priv->old_color[COLORSEL_BLUE], &priv->old_color[COLORSEL_HUE], &priv->old_color[COLORSEL_SATURATION], &priv->old_color[COLORSEL_VALUE]); color_sample_update_samples (colorsel); priv->default_set = TRUE; priv->changing = FALSE; } /** * gcolor3_color_selection_set_previous_alpha: * @colorsel: a #Gcolor3ColorSelection * @alpha: an integer between 0 and 65535 * * Sets the “previous” alpha to be @alpha. * * This function should be called with some hesitations, * as it might seem confusing to have that alpha change. */ void gcolor3_color_selection_set_previous_alpha (Gcolor3ColorSelection *colorsel, guint16 alpha) { Gcolor3ColorSelectionPrivate *priv; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); priv = colorsel->private_data; priv->changing = TRUE; priv->old_color[COLORSEL_OPACITY] = SCALE (alpha); color_sample_update_samples (colorsel); priv->default_alpha_set = TRUE; priv->changing = FALSE; } /** * gcolor3_color_selection_get_previous_color: * @colorsel: a #Gcolor3ColorSelection * @color: (out): a #GdkRGBA to fill in with the original color value * * Fills @color in with the original color value. */ void gcolor3_color_selection_get_previous_color (Gcolor3ColorSelection *colorsel, GdkRGBA *color) { Gcolor3ColorSelectionPrivate *priv; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); g_return_if_fail (color != NULL); priv = colorsel->private_data; color->red = priv->old_color[COLORSEL_RED]; color->green = priv->old_color[COLORSEL_GREEN]; color->blue = priv->old_color[COLORSEL_BLUE]; } /** * gcolor3_color_selection_get_previous_alpha: * @colorsel: a #Gcolor3ColorSelection * * Returns the previous alpha value. * * Returns: an integer between 0 and 65535 */ guint16 gcolor3_color_selection_get_previous_alpha (Gcolor3ColorSelection *colorsel) { Gcolor3ColorSelectionPrivate *priv; g_return_val_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel), 0); priv = colorsel->private_data; return priv->has_opacity ? UNSCALE (priv->old_color[COLORSEL_OPACITY]) : 65535; } /** * gcolor3_color_selection_set_current_rgba: * @colorsel: a #Gcolor3ColorSelection * @rgba: A #GdkRGBA to set the current color with * * Sets the current color to be @rgba. * * The first time this is called, it will also set * the original color to be @rgba too. * * Since: 3.0 */ void gcolor3_color_selection_set_current_rgba (Gcolor3ColorSelection *colorsel, const GdkRGBA *rgba) { Gcolor3ColorSelectionPrivate *priv; gint i; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); g_return_if_fail (rgba != NULL); priv = colorsel->private_data; priv->changing = TRUE; priv->color[COLORSEL_RED] = CLAMP (rgba->red, 0, 1); priv->color[COLORSEL_GREEN] = CLAMP (rgba->green, 0, 1); priv->color[COLORSEL_BLUE] = CLAMP (rgba->blue, 0, 1); priv->color[COLORSEL_OPACITY] = CLAMP (rgba->alpha, 0, 1); gtk_rgb_to_hsv (priv->color[COLORSEL_RED], priv->color[COLORSEL_GREEN], priv->color[COLORSEL_BLUE], &priv->color[COLORSEL_HUE], &priv->color[COLORSEL_SATURATION], &priv->color[COLORSEL_VALUE]); if (priv->default_set == FALSE) { for (i = 0; i < COLORSEL_NUM_CHANNELS; i++) priv->old_color[i] = priv->color[i]; } priv->default_set = TRUE; update_color (colorsel); } /** * gcolor3_color_selection_get_current_rgba: * @colorsel: a #Gcolor3ColorSelection * @rgba: (out): a #GdkRGBA to fill in with the current color * * Sets @rgba to be the current color in the Gcolor3ColorSelection widget. * * Since: 3.0 */ void gcolor3_color_selection_get_current_rgba (Gcolor3ColorSelection *colorsel, GdkRGBA *rgba) { Gcolor3ColorSelectionPrivate *priv; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); g_return_if_fail (rgba != NULL); priv = colorsel->private_data; rgba->red = priv->color[COLORSEL_RED]; rgba->green = priv->color[COLORSEL_GREEN]; rgba->blue = priv->color[COLORSEL_BLUE]; rgba->alpha = (priv->has_opacity) ? priv->color[COLORSEL_OPACITY] : 1; } /** * gcolor3_color_selection_set_previous_rgba: * @colorsel: a #Gcolor3ColorSelection * @rgba: a #GdkRGBA to set the previous color with * * Sets the “previous” color to be @rgba. * * This function should be called with some hesitations, * as it might seem confusing to have that color change. * Calling gcolor3_color_selection_set_current_rgba() will also * set this color the first time it is called. * * Since: 3.0 */ void gcolor3_color_selection_set_previous_rgba (Gcolor3ColorSelection *colorsel, const GdkRGBA *rgba) { Gcolor3ColorSelectionPrivate *priv; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); g_return_if_fail (rgba != NULL); priv = colorsel->private_data; priv->changing = TRUE; priv->old_color[COLORSEL_RED] = CLAMP (rgba->red, 0, 1); priv->old_color[COLORSEL_GREEN] = CLAMP (rgba->green, 0, 1); priv->old_color[COLORSEL_BLUE] = CLAMP (rgba->blue, 0, 1); priv->old_color[COLORSEL_OPACITY] = CLAMP (rgba->alpha, 0, 1); gtk_rgb_to_hsv (priv->old_color[COLORSEL_RED], priv->old_color[COLORSEL_GREEN], priv->old_color[COLORSEL_BLUE], &priv->old_color[COLORSEL_HUE], &priv->old_color[COLORSEL_SATURATION], &priv->old_color[COLORSEL_VALUE]); color_sample_update_samples (colorsel); priv->default_set = TRUE; priv->changing = FALSE; } /** * gcolor3_color_selection_get_previous_rgba: * @colorsel: a #Gcolor3ColorSelection * @rgba: (out): a #GdkRGBA to fill in with the original color value * * Fills @rgba in with the original color value. * * Since: 3.0 */ void gcolor3_color_selection_get_previous_rgba (Gcolor3ColorSelection *colorsel, GdkRGBA *rgba) { Gcolor3ColorSelectionPrivate *priv; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); g_return_if_fail (rgba != NULL); priv = colorsel->private_data; rgba->red = priv->old_color[COLORSEL_RED]; rgba->green = priv->old_color[COLORSEL_GREEN]; rgba->blue = priv->old_color[COLORSEL_BLUE]; rgba->alpha = (priv->has_opacity) ? priv->old_color[COLORSEL_OPACITY] : 1; } /** * gcolor3_color_selection_set_palette_color: * @colorsel: a #Gcolor3ColorSelection * @index: the color index of the palette * @color: A #GdkRGBA to set the palette with * * Sets the palette located at @index to have @color as its color. */ static void gcolor3_color_selection_set_palette_color (Gcolor3ColorSelection *colorsel, gint index, GdkRGBA *color) { Gcolor3ColorSelectionPrivate *priv; gint x, y; gdouble col[3]; g_return_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel)); g_return_if_fail (index >= 0 && index < CUSTOM_PALETTE_WIDTH*CUSTOM_PALETTE_HEIGHT); x = index % CUSTOM_PALETTE_WIDTH; y = index / CUSTOM_PALETTE_WIDTH; priv = colorsel->private_data; col[0] = color->red; col[1] = color->green; col[2] = color->blue; palette_set_color (priv->custom_palette[x][y], colorsel, col); } /** * gcolor3_color_selection_is_adjusting: * @colorsel: a #Gcolor3ColorSelection * * Gets the current state of the @colorsel. * * Returns: %TRUE if the user is currently dragging * a color around, and %FALSE if the selection has stopped */ gboolean gcolor3_color_selection_is_adjusting (Gcolor3ColorSelection *colorsel) { Gcolor3ColorSelectionPrivate *priv; g_return_val_if_fail (GCOLOR3_IS_COLOR_SELECTION (colorsel), FALSE); priv = colorsel->private_data; return (gcolor3_hsv_is_adjusting (GCOLOR3_HSV (priv->triangle_colorsel))); } /** * gcolor3_color_selection_palette_from_string: * @str: a string encoding a color palette * @colors: (out) (array length=n_colors): return location for * allocated array of #GdkRGBA * @n_colors: return location for length of array * * Parses a color palette string; the string is a colon-separated * list of color names readable by gdk_rgba_parse(). * * Returns: %TRUE if a palette was successfully parsed */ gboolean gcolor3_color_selection_palette_from_string (const gchar *str, GdkRGBA **colors, gint *n_colors) { GdkRGBA *retval; gint count; gchar *p; gchar *start; gchar *copy; count = 0; retval = NULL; copy = g_strdup (str); start = copy; p = copy; while (TRUE) { if (*p == ':' || *p == '\0') { gboolean done = TRUE; if (start == p) { goto failed; /* empty entry */ } if (*p) { *p = '\0'; done = FALSE; } retval = g_renew (GdkRGBA, retval, count + 1); if (!gdk_rgba_parse (retval + count, start)) { goto failed; } ++count; if (done) break; else start = p + 1; } ++p; } g_free (copy); if (colors) *colors = retval; else g_free (retval); if (n_colors) *n_colors = count; return TRUE; failed: g_free (copy); g_free (retval); if (colors) *colors = NULL; if (n_colors) *n_colors = 0; return FALSE; } /** * gcolor3_color_selection_palette_to_string: * @colors: (array length=n_colors): an array of colors * @n_colors: length of the array * * Encodes a palette as a string, useful for persistent storage. * * Returns: allocated string encoding the palette */ gchar* gcolor3_color_selection_palette_to_string (const GdkRGBA *colors, gint n_colors) { gint i; gchar **strs = NULL; gchar *retval; if (n_colors == 0) return g_strdup (""); strs = g_new0 (gchar*, n_colors + 1); i = 0; while (i < n_colors) { gchar *ptr; strs[i] = g_strdup_printf ("#%2x%2x%2x", (unsigned int) colors[i].red / 256, (unsigned int) colors[i].green / 256, (unsigned int) colors[i].blue / 256); for (ptr = strs[i]; *ptr; ptr++) if (*ptr == ' ') *ptr = '0'; ++i; } retval = g_strjoinv (":", strs); g_strfreev (strs); return retval; } /** * gcolor3_color_selection_set_change_palette_with_screen_hook: (skip) * @func: a function to call when the custom palette needs saving * * Installs a global function to be called whenever the user * tries to modify the palette in a color selection. * * This function should save the new palette contents, and update * the #GtkSettings:gtk-color-palette GtkSettings property so all * Gcolor3ColorSelection widgets will be modified. * * Returns: the previous change palette hook (that was replaced) * * Since: 2.2 */ Gcolor3ColorSelectionChangePaletteWithScreenFunc gcolor3_color_selection_set_change_palette_with_screen_hook (Gcolor3ColorSelectionChangePaletteWithScreenFunc func) { Gcolor3ColorSelectionChangePaletteWithScreenFunc old; old = change_palette_hook; change_palette_hook = func; return old; } static void make_control_relations (AtkObject *atk_obj, GtkWidget *widget) { AtkObject *obj; obj = gtk_widget_get_accessible (widget); atk_object_add_relationship (atk_obj, ATK_RELATION_CONTROLLED_BY, obj); atk_object_add_relationship (obj, ATK_RELATION_CONTROLLER_FOR, atk_obj); } static void make_all_relations (AtkObject *atk_obj, Gcolor3ColorSelectionPrivate *priv) { make_control_relations (atk_obj, priv->hue_spinbutton); make_control_relations (atk_obj, priv->sat_spinbutton); make_control_relations (atk_obj, priv->val_spinbutton); make_control_relations (atk_obj, priv->red_spinbutton); make_control_relations (atk_obj, priv->green_spinbutton); make_control_relations (atk_obj, priv->blue_spinbutton); } gcolor3-2.4.0/src/gcolor3-color-selection.h000066400000000000000000000147151372141071500205050ustar00rootroot00000000000000/* GTK - The GIMP Toolkit * Copyright (C) 2000 Red Hat, Inc. * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . */ /* * Modified by the GTK Team and others 1997-2000. See the AUTHORS * file for a list of people on the GTK Team. See the ChangeLog * files for a list of changes. These files are distributed with * GTK at ftp://ftp.gtk.org/pub/gtk/. * * Updated and adapted for inclusion in Gcolor3 by Jente Hidskes 2017. */ #ifndef __GCOLOR3_COLOR_SELECTION_H__ #define __GCOLOR3_COLOR_SELECTION_H__ #include G_BEGIN_DECLS #define GCOLOR3_TYPE_COLOR_SELECTION (gcolor3_color_selection_get_type ()) #define GCOLOR3_COLOR_SELECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCOLOR3_TYPE_COLOR_SELECTION, Gcolor3ColorSelection)) #define GCOLOR3_COLOR_SELECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCOLOR3_TYPE_COLOR_SELECTION, Gcolor3ColorSelectionClass)) #define GCOLOR3_IS_COLOR_SELECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCOLOR3_TYPE_COLOR_SELECTION)) #define GCOLOR3_IS_COLOR_SELECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCOLOR3_TYPE_COLOR_SELECTION)) #define GCOLOR3_COLOR_SELECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCOLOR3_TYPE_COLOR_SELECTION, Gcolor3ColorSelectionClass)) typedef struct _Gcolor3ColorSelection Gcolor3ColorSelection; typedef struct _Gcolor3ColorSelectionPrivate Gcolor3ColorSelectionPrivate; typedef struct _Gcolor3ColorSelectionClass Gcolor3ColorSelectionClass; /** * Gcolor3ColorSelectionChangePaletteFunc: * @colors: (array length=n_colors): Array of colors * @n_colors: Number of colors in the array */ typedef void (* Gcolor3ColorSelectionChangePaletteFunc) (const GdkRGBA *colors, gint n_colors); /** * Gcolor3ColorSelectionChangePaletteWithScreenFunc: * @screen: * @colors: (array length=n_colors): Array of colors * @n_colors: Number of colors in the array * * Since: 2.2 */ typedef void (* Gcolor3ColorSelectionChangePaletteWithScreenFunc) (GdkScreen *screen, const GdkRGBA *colors, gint n_colors); struct _Gcolor3ColorSelection { GtkBox parent_instance; /*< private >*/ Gcolor3ColorSelectionPrivate *private_data; }; /** * Gcolor3ColorSelectionClass: * @parent_class: The parent class. * @color_changed: */ struct _Gcolor3ColorSelectionClass { GtkBoxClass parent_class; void (*color_changed) (Gcolor3ColorSelection *color_selection); /*< private >*/ /* Padding for future expansion */ void (*_gcolor3_reserved1) (void); void (*_gcolor3_reserved2) (void); void (*_gcolor3_reserved3) (void); void (*_gcolor3_reserved4) (void); }; /* ColorSelection */ GType gcolor3_color_selection_get_type (void) G_GNUC_CONST; GtkWidget *gcolor3_color_selection_new (void); gboolean gcolor3_color_selection_get_has_opacity_control (Gcolor3ColorSelection *colorsel); void gcolor3_color_selection_set_has_opacity_control (Gcolor3ColorSelection *colorsel, gboolean has_opacity); gboolean gcolor3_color_selection_get_has_palette (Gcolor3ColorSelection *colorsel); void gcolor3_color_selection_set_has_palette (Gcolor3ColorSelection *colorsel, gboolean has_palette); void gcolor3_color_selection_set_current_alpha (Gcolor3ColorSelection *colorsel, guint16 alpha); guint16 gcolor3_color_selection_get_current_alpha (Gcolor3ColorSelection *colorsel); void gcolor3_color_selection_set_previous_alpha (Gcolor3ColorSelection *colorsel, guint16 alpha); guint16 gcolor3_color_selection_get_previous_alpha (Gcolor3ColorSelection *colorsel); void gcolor3_color_selection_set_current_rgba (Gcolor3ColorSelection *colorsel, const GdkRGBA *rgba); void gcolor3_color_selection_get_current_rgba (Gcolor3ColorSelection *colorsel, GdkRGBA *rgba); void gcolor3_color_selection_set_previous_rgba (Gcolor3ColorSelection *colorsel, const GdkRGBA *rgba); void gcolor3_color_selection_get_previous_rgba (Gcolor3ColorSelection *colorsel, GdkRGBA *rgba); gboolean gcolor3_color_selection_is_adjusting (Gcolor3ColorSelection *colorsel); gboolean gcolor3_color_selection_palette_from_string (const gchar *str, GdkRGBA **colors, gint *n_colors); gchar* gcolor3_color_selection_palette_to_string (const GdkRGBA *colors, gint n_colors); Gcolor3ColorSelectionChangePaletteWithScreenFunc gcolor3_color_selection_set_change_palette_with_screen_hook (Gcolor3ColorSelectionChangePaletteWithScreenFunc func); void gcolor3_color_selection_set_current_color (Gcolor3ColorSelection *colorsel, const GdkRGBA *color); void gcolor3_color_selection_get_current_color (Gcolor3ColorSelection *colorsel, GdkRGBA *color); void gcolor3_color_selection_set_previous_color (Gcolor3ColorSelection *colorsel, const GdkRGBA *color); void gcolor3_color_selection_get_previous_color (Gcolor3ColorSelection *colorsel, GdkRGBA *color); G_END_DECLS #endif /* __GCOLOR3_COLOR_SELECTION_H__ */ gcolor3-2.4.0/src/gcolor3-color-store.c000066400000000000000000000233441372141071500176450ustar00rootroot00000000000000/* Gcolor3ColorStore * * Copyright (C) 2016 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "config.h" #include #include #include #include "gcolor3-color-item.h" #include "gcolor3-color-store.h" #include "gcolor3-marshalers.h" struct _Gcolor3ColorStorePrivate { GKeyFile *colors; }; static void gcolor3_color_store_iface_init (GListModelInterface *iface); G_DEFINE_TYPE_WITH_CODE (Gcolor3ColorStore, gcolor3_color_store, G_TYPE_OBJECT, G_ADD_PRIVATE (Gcolor3ColorStore) G_IMPLEMENT_INTERFACE (G_TYPE_LIST_MODEL, gcolor3_color_store_iface_init) ) static inline gchar * get_user_file (void) { return g_build_filename (g_get_user_config_dir (), "gcolor3", "config.ini", NULL); } static inline gchar * get_user_dir (void) { return g_build_filename (g_get_user_config_dir (), "gcolor3", NULL); } static gboolean ensure_user_dir (void) { gchar *dir; int ret; dir = get_user_dir (); ret = g_mkdir_with_parents (dir, 0700); g_free (dir); if (ret < 0) { g_warning ("Error creating config directory: %s", g_strerror (errno)); return FALSE; } return TRUE; } static GType gcolor3_color_store_get_item_type (UNUSED GListModel *list) { return G_TYPE_VARIANT; } static guint gcolor3_color_store_get_n_items (GListModel *list) { Gcolor3ColorStorePrivate *priv; GError *error = NULL; gsize n_items; gchar **keys; priv = gcolor3_color_store_get_instance_private (GCOLOR3_COLOR_STORE (list)); if (!(keys = g_key_file_get_keys (priv->colors, "Colors", &n_items, &error))) { g_warning ("Cannot count number of items: %s\n", error->message); g_clear_error (&error); return 0; } g_strfreev (keys); return n_items; } static gpointer gcolor3_color_store_get_item (GListModel *list, guint position) { Gcolor3ColorStorePrivate *priv; Gcolor3ColorItem *item; GError *error = NULL; gsize n_items; gchar **keys; gchar *value; priv = gcolor3_color_store_get_instance_private (GCOLOR3_COLOR_STORE (list)); if (!(keys = g_key_file_get_keys (priv->colors, "Colors", &n_items, &error))) { g_warning ("Cannot read colors: %s\n", error->message); g_clear_error (&error); // Returning NULL violates an assumption of the interface, // where get_item should never return NULL for an // index that is smaller than the length of the // list. Hence, we return a default value of black. return g_variant_new ("(ss)", "Black", "#000000"); } if (position > n_items) { return NULL; } if (!(value = g_key_file_get_string (priv->colors, "Colors", keys[position], &error))) { g_warning ("Cannot access color at position %d: %s\n", position, error->message); g_clear_error (&error); return g_variant_new ("(ss)", "Black", "#000000"); } item = gcolor3_color_item_new (keys[position], value); g_free (value); g_strfreev (keys); return item; } static void gcolor3_color_store_dispose (GObject *object) { Gcolor3ColorStorePrivate *priv; GError *error = NULL; gchar *file; priv = gcolor3_color_store_get_instance_private (GCOLOR3_COLOR_STORE (object)); // TODO: possibly only write to disk if contents changed? file = get_user_file (); if ((ensure_user_dir ()) && !(g_key_file_save_to_file (priv->colors, file, &error))) { g_warning ("Error writing file: %s", error->message); g_clear_error (&error); } g_free (file); g_key_file_free (priv->colors); G_OBJECT_CLASS (gcolor3_color_store_parent_class)->dispose (object); } static void gcolor3_color_store_class_init (Gcolor3ColorStoreClass *gcolor3_color_store_class) { GObjectClass *object_class = G_OBJECT_CLASS (gcolor3_color_store_class); object_class->dispose = gcolor3_color_store_dispose; } static void gcolor3_color_store_iface_init (GListModelInterface *iface) { iface->get_item_type = gcolor3_color_store_get_item_type; iface->get_n_items = gcolor3_color_store_get_n_items; iface->get_item = gcolor3_color_store_get_item; } static void gcolor3_color_store_init (Gcolor3ColorStore *store) { Gcolor3ColorStorePrivate *priv; gchar *file; GError *error = NULL; priv = gcolor3_color_store_get_instance_private (store); priv->colors = g_key_file_new (); file = get_user_file (); if (!(g_key_file_load_from_file (priv->colors, file, G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, &error))) { g_warning ("Error opening file: %s. Colors likely won't be saved, unless this is the first run", error->message); g_clear_error (&error); } g_free (file); } Gcolor3ColorStore * gcolor3_color_store_new () { return g_object_new (GCOLOR3_TYPE_COLOR_STORE, NULL); } gboolean gcolor3_color_store_add_color (Gcolor3ColorStore *store, const gchar *key, const gchar *hex) { Gcolor3ColorStorePrivate *priv; GError *error = NULL; gchar **keys; gsize length; g_return_val_if_fail (GCOLOR3_IS_COLOR_STORE (store), FALSE); g_return_val_if_fail (key != NULL && hex != NULL, FALSE); priv = gcolor3_color_store_get_instance_private (store); if (g_key_file_has_key (priv->colors, "Colors", key, NULL)) { g_warning ("There is already a color named `%s`", key); return FALSE; } g_key_file_set_string (priv->colors, "Colors", key, hex); if (!(keys = g_key_file_get_keys (priv->colors, "Colors", &length, &error))) { g_warning ("Cannot locate index of addition: %s. UI won't be updated\n", error->message); g_clear_error (&error); return TRUE; } for (guint i = 0; i < length; i++) { if (strcmp (keys[i], key) != 0) { continue; } g_list_model_items_changed (G_LIST_MODEL (store), i, 0, 1); break; } g_strfreev (keys); return TRUE; } gboolean gcolor3_color_store_remove_color (Gcolor3ColorStore *store, const gchar *key) { Gcolor3ColorStorePrivate *priv; GError *error = NULL; gchar **keys; gsize length; guint i; g_return_val_if_fail (GCOLOR3_IS_COLOR_STORE (store), FALSE); g_return_val_if_fail (key != NULL, FALSE); priv = gcolor3_color_store_get_instance_private (store); if (!(keys = g_key_file_get_keys (priv->colors, "Colors", &length, &error))) { g_warning ("Cannot locate index of removal: %s. UI won't be updated\n", error->message); g_clear_error (&error); return TRUE; } for (i = 0; i < length; i++) { if (strcmp (keys[i], key) != 0) { continue; } break; } g_strfreev (keys); if (!(g_key_file_remove_key (priv->colors, "Colors", key, &error))) { g_warning ("Error deleting key: %s", error->message); g_clear_error (&error); return FALSE; } g_list_model_items_changed (G_LIST_MODEL (store), i, 1, 0); return TRUE; } gboolean gcolor3_color_store_rename_color (Gcolor3ColorStore *store, const gchar *old_name, const gchar *new_name) { Gcolor3ColorStorePrivate *priv; gchar *hex; GError *error = NULL; g_return_val_if_fail (GCOLOR3_IS_COLOR_STORE (store), FALSE); g_return_val_if_fail (old_name != NULL && new_name != NULL, FALSE); priv = gcolor3_color_store_get_instance_private (store); if (strlen (new_name) <= 0 || !g_strcmp0 (old_name, new_name)) { return FALSE; } if (!(g_key_file_has_key (priv->colors, "Colors", old_name, NULL))) { g_warning ("Cannot rename non-existing color `%s`", old_name); return FALSE; } if (g_key_file_has_key (priv->colors, "Colors", new_name, NULL)) { g_warning ("There is already a color named `%s`", new_name); return FALSE; } if (!(hex = g_key_file_get_string (priv->colors, "Colors", old_name, &error))) { g_warning ("Cannot retrieve hex value belonging to `%s`: %s", old_name, error->message); g_clear_error (&error); return FALSE; } if (!(g_key_file_remove_key (priv->colors, "Colors", old_name, &error))) { g_warning ("Error deleting old name `%s`: %s", old_name, error->message); g_clear_error (&error); g_free (hex); return FALSE; } g_key_file_set_string (priv->colors, "Colors", new_name, hex); g_free (hex); // TODO: find out position of rename. This is tricky, because // the removal might be in a different spot than the addition, // and the interface expects an in-place update. If we model // this by removing and inserting, the location changes and // this will be reflected in the UI, which is confusing. // g_list_model_items_changed (G_LIST_MODEL (store), x, 0, 0); return TRUE; } void gcolor3_color_store_foreach (Gcolor3ColorStore *store, Gcolor3ColorStoreForeachFunc func, gpointer user_data) { Gcolor3ColorStorePrivate *priv; GError *error = NULL; gchar **keys = NULL; gsize length; g_return_if_fail (GCOLOR3_IS_COLOR_STORE (store)); priv = gcolor3_color_store_get_instance_private (store); if (!(keys = g_key_file_get_keys (priv->colors, "Colors", &length, &error))) { g_warning ("Error reading keys: %s. This is harmless if this is the first run", error->message); g_clear_error (&error); return; } for (guint i = 0; i < length; i++) { gchar *value; if (!(value = g_key_file_get_string (priv->colors, "Colors", keys[i], NULL))) { continue; } func (keys[i], value, user_data); g_free (value); } g_strfreev (keys); } gboolean gcolor3_color_store_empty (Gcolor3ColorStore *store) { g_return_val_if_fail (GCOLOR3_IS_COLOR_STORE (store), TRUE); return gcolor3_color_store_get_n_items (G_LIST_MODEL (store)) == 0; } gcolor3-2.4.0/src/gcolor3-color-store.h000066400000000000000000000055171372141071500176540ustar00rootroot00000000000000/* Gcolor3ColorStore * * Copyright (C) 2016 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __GCOLOR3_COLOR_STORE_H__ #define __GCOLOR3_COLOR_STORE_H__ #include #include G_BEGIN_DECLS typedef struct _Gcolor3ColorStore Gcolor3ColorStore; typedef struct _Gcolor3ColorStoreClass Gcolor3ColorStoreClass; typedef struct _Gcolor3ColorStorePrivate Gcolor3ColorStorePrivate; typedef void (*Gcolor3ColorStoreForeachFunc) (const gchar *key, const gchar *hex, gpointer user_data); #define GCOLOR3_TYPE_COLOR_STORE (gcolor3_color_store_get_type ()) #define GCOLOR3_COLOR_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCOLOR3_TYPE_COLOR_STORE, Gcolor3ColorStore)) #define GCOLOR3_COLOR_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCOLOR3_TYPE_COLOR_STORE, Gcolor3ColorStoreClass)) #define GCOLOR3_IS_COLOR_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCOLOR3_TYPE_COLOR_STORE)) #define GCOLOR3_IS_COLOR_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCOLOR3_TYPE_COLOR_STORE)) #define GCOLOR3_COLOR_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCOLOR3_TYPE_COLOR_STORE, Gcolor3ColorStoreClass)) struct _Gcolor3ColorStore { GObject base_instance; }; struct _Gcolor3ColorStoreClass { GObjectClass parent_class; }; GType gcolor3_color_store_get_type (void); Gcolor3ColorStore *gcolor3_color_store_new (void); gboolean gcolor3_color_store_add_color (Gcolor3ColorStore *store, const gchar *key, const gchar *hex); gboolean gcolor3_color_store_remove_color (Gcolor3ColorStore *store, const gchar *key); gboolean gcolor3_color_store_rename_color (Gcolor3ColorStore *store, const gchar *old_name, const gchar *new_name); void gcolor3_color_store_foreach (Gcolor3ColorStore *store, Gcolor3ColorStoreForeachFunc func, gpointer user_data); gboolean gcolor3_color_store_empty (Gcolor3ColorStore *store); G_END_DECLS #endif /* __GCOLOR3_COLOR_STORE_H__ */ gcolor3-2.4.0/src/gcolor3-hsv.c000066400000000000000000001110131372141071500161640ustar00rootroot00000000000000/* HSV color selector for GTK * * Copyright (C) 1999 The Free Software Foundation * * Authors: Simon Budig (original code) * Federico Mena-Quintero (cleanup for GTK) * Jonathan Blandford (cleanup for GTK) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . */ /* * Modified by the GTK Team and others 1997-2000. See the AUTHORS * file for a list of people on the GTK Team. See the ChangeLog * files for a list of changes. These files are distributed with * GTK at ftp://ftp.gtk.org/pub/gtk/. * * Updated and adapted for inclusion in Gcolor3 by Jente Hidskes 2018 */ #include "config.h" #include "gcolor3-hsv.h" #include #include #include /** * SECTION:gtkhsv * @Short_description: A “color wheel” widget * @Title: Gcolor3HSV * @See_also: #Gcolor3ColorSelection, #Gcolor3ColorSelectionDialog * * #Gcolor3HSV is the “color wheel” part of a complete color selector widget. * It allows to select a color by determining its HSV components in an * intuitive way. Moving the selection around the outer ring changes the hue, * and moving the selection point inside the inner triangle changes value and * saturation. */ /* Default width/height */ #define DEFAULT_SIZE 100 /* Default ring width */ #define DEFAULT_RING_WIDTH 10 /* Dragging modes */ typedef enum { DRAG_NONE, DRAG_H, DRAG_SV } DragMode; /* Private part of the Gcolor3HSV structure */ struct _Gcolor3HSVPrivate { /* Color value */ double h; double s; double v; /* Size and ring width */ int size; int ring_width; /* Window for capturing events */ GdkWindow *window; /* Dragging mode */ DragMode mode; guint focus_on_ring : 1; }; /* Signal IDs */ enum { CHANGED, MOVE, LAST_SIGNAL }; static void gcolor3_hsv_destroy (GtkWidget *widget); static void gcolor3_hsv_realize (GtkWidget *widget); static void gcolor3_hsv_unrealize (GtkWidget *widget); static void gcolor3_hsv_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural); static void gcolor3_hsv_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural); static void gcolor3_hsv_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean gcolor3_hsv_button_press (GtkWidget *widget, GdkEventButton *event); static gboolean gcolor3_hsv_button_release (GtkWidget *widget, GdkEventButton *event); static gboolean gcolor3_hsv_motion (GtkWidget *widget, GdkEventMotion *event); static gboolean gcolor3_hsv_draw (GtkWidget *widget, cairo_t *cr); static gboolean gcolor3_hsv_grab_broken (GtkWidget *widget, GdkEventGrabBroken *event); static gboolean gcolor3_hsv_focus (GtkWidget *widget, GtkDirectionType direction); static void gcolor3_hsv_move (Gcolor3HSV *hsv, GtkDirectionType dir); static guint hsv_signals[LAST_SIGNAL]; G_DEFINE_TYPE_WITH_PRIVATE (Gcolor3HSV, gcolor3_hsv, GTK_TYPE_WIDGET) /* Class initialization function for the HSV color selector */ static void gcolor3_hsv_class_init (Gcolor3HSVClass *class) { GObjectClass *gobject_class; GtkWidgetClass *widget_class; Gcolor3HSVClass *hsv_class; GtkBindingSet *binding_set; gobject_class = (GObjectClass *) class; widget_class = (GtkWidgetClass *) class; hsv_class = GCOLOR3_HSV_CLASS (class); widget_class->destroy = gcolor3_hsv_destroy; widget_class->realize = gcolor3_hsv_realize; widget_class->unrealize = gcolor3_hsv_unrealize; widget_class->get_preferred_width = gcolor3_hsv_get_preferred_width; widget_class->get_preferred_height = gcolor3_hsv_get_preferred_height; widget_class->size_allocate = gcolor3_hsv_size_allocate; widget_class->button_press_event = gcolor3_hsv_button_press; widget_class->button_release_event = gcolor3_hsv_button_release; widget_class->motion_notify_event = gcolor3_hsv_motion; widget_class->draw = gcolor3_hsv_draw; widget_class->focus = gcolor3_hsv_focus; widget_class->grab_broken_event = gcolor3_hsv_grab_broken; gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_COLOR_CHOOSER); hsv_class->move = gcolor3_hsv_move; hsv_signals[CHANGED] = g_signal_new ("changed", G_OBJECT_CLASS_TYPE (gobject_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (Gcolor3HSVClass, changed), NULL, NULL, NULL, G_TYPE_NONE, 0); hsv_signals[MOVE] = g_signal_new ("move", G_OBJECT_CLASS_TYPE (gobject_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (Gcolor3HSVClass, move), NULL, NULL, NULL, G_TYPE_NONE, 1, GTK_TYPE_DIRECTION_TYPE); binding_set = gtk_binding_set_by_class (class); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Up, 0, "move", 1, G_TYPE_ENUM, GTK_DIR_UP); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Up, 0, "move", 1, G_TYPE_ENUM, GTK_DIR_UP); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Down, 0, "move", 1, G_TYPE_ENUM, GTK_DIR_DOWN); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Down, 0, "move", 1, G_TYPE_ENUM, GTK_DIR_DOWN); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Right, 0, "move", 1, G_TYPE_ENUM, GTK_DIR_RIGHT); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Right, 0, "move", 1, G_TYPE_ENUM, GTK_DIR_RIGHT); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Left, 0, "move", 1, G_TYPE_ENUM, GTK_DIR_LEFT); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Left, 0, "move", 1, G_TYPE_ENUM, GTK_DIR_LEFT); } static void gcolor3_hsv_init (Gcolor3HSV *hsv) { Gcolor3HSVPrivate *priv; priv = gcolor3_hsv_get_instance_private (hsv); hsv->priv = priv; gtk_widget_set_has_window (GTK_WIDGET (hsv), FALSE); gtk_widget_set_can_focus (GTK_WIDGET (hsv), TRUE); priv->h = 0.0; priv->s = 0.0; priv->v = 0.0; priv->size = DEFAULT_SIZE; priv->ring_width = DEFAULT_RING_WIDTH; } static void gcolor3_hsv_destroy (GtkWidget *widget) { GTK_WIDGET_CLASS (gcolor3_hsv_parent_class)->destroy (widget); } static void gcolor3_hsv_realize (GtkWidget *widget) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; GtkAllocation allocation; GdkWindow *parent_window; GdkWindowAttr attr; int attr_mask; gtk_widget_set_realized (widget, TRUE); gtk_widget_get_allocation (widget, &allocation); attr.window_type = GDK_WINDOW_CHILD; attr.x = allocation.x; attr.y = allocation.y; attr.width = allocation.width; attr.height = allocation.height; attr.wclass = GDK_INPUT_ONLY; attr.event_mask = gtk_widget_get_events (widget); attr.event_mask |= (GDK_KEY_PRESS_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); attr_mask = GDK_WA_X | GDK_WA_Y; parent_window = gtk_widget_get_parent_window (widget); gtk_widget_set_window (widget, parent_window); g_object_ref (parent_window); priv->window = gdk_window_new (parent_window, &attr, attr_mask); gdk_window_set_user_data (priv->window, hsv); gdk_window_show (priv->window); } static void gcolor3_hsv_unrealize (GtkWidget *widget) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; gdk_window_set_user_data (priv->window, NULL); gdk_window_destroy (priv->window); priv->window = NULL; GTK_WIDGET_CLASS (gcolor3_hsv_parent_class)->unrealize (widget); } static void gcolor3_hsv_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; gint focus_width; gint focus_pad; gtk_widget_style_get (widget, "focus-line-width", &focus_width, "focus-padding", &focus_pad, NULL); *minimum = priv->size + 2 * (focus_width + focus_pad); *natural = priv->size + 2 * (focus_width + focus_pad); } static void gcolor3_hsv_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; gint focus_width; gint focus_pad; gtk_widget_style_get (widget, "focus-line-width", &focus_width, "focus-padding", &focus_pad, NULL); *minimum = priv->size + 2 * (focus_width + focus_pad); *natural = priv->size + 2 * (focus_width + focus_pad); } static void gcolor3_hsv_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; gtk_widget_set_allocation (widget, allocation); if (gtk_widget_get_realized (widget)) gdk_window_move_resize (priv->window, allocation->x, allocation->y, allocation->width, allocation->height); } /* Utility functions */ #define INTENSITY(r, g, b) ((r) * 0.30 + (g) * 0.59 + (b) * 0.11) /* Converts from HSV to RGB */ static void hsv_to_rgb (gdouble *h, gdouble *s, gdouble *v) { gdouble hue, saturation, value; gdouble f, p, q, t; if (*s == 0.0) { *h = *v; *s = *v; *v = *v; /* heh */ } else { hue = *h * 6.0; saturation = *s; value = *v; if (hue == 6.0) hue = 0.0; f = hue - (int) hue; p = value * (1.0 - saturation); q = value * (1.0 - saturation * f); t = value * (1.0 - saturation * (1.0 - f)); switch ((int) hue) { case 0: *h = value; *s = t; *v = p; break; case 1: *h = q; *s = value; *v = p; break; case 2: *h = p; *s = value; *v = t; break; case 3: *h = p; *s = q; *v = value; break; case 4: *h = t; *s = p; *v = value; break; case 5: *h = value; *s = p; *v = q; break; default: g_assert_not_reached (); } } } /* Computes the vertices of the saturation/value triangle */ static void compute_triangle (Gcolor3HSV *hsv, gint *hx, gint *hy, gint *sx, gint *sy, gint *vx, gint *vy) { Gcolor3HSVPrivate *priv = hsv->priv; GtkWidget *widget = GTK_WIDGET (hsv); gdouble center_x; gdouble center_y; gdouble inner, outer; gdouble angle; center_x = gtk_widget_get_allocated_width (widget) / 2.0; center_y = gtk_widget_get_allocated_height (widget) / 2.0; outer = priv->size / 2.0; inner = outer - priv->ring_width; angle = priv->h * 2.0 * G_PI; *hx = floor (center_x + cos (angle) * inner + 0.5); *hy = floor (center_y - sin (angle) * inner + 0.5); *sx = floor (center_x + cos (angle + 2.0 * G_PI / 3.0) * inner + 0.5); *sy = floor (center_y - sin (angle + 2.0 * G_PI / 3.0) * inner + 0.5); *vx = floor (center_x + cos (angle + 4.0 * G_PI / 3.0) * inner + 0.5); *vy = floor (center_y - sin (angle + 4.0 * G_PI / 3.0) * inner + 0.5); } /* Computes whether a point is inside the hue ring */ static gboolean is_in_ring (Gcolor3HSV *hsv, gdouble x, gdouble y) { Gcolor3HSVPrivate *priv = hsv->priv; GtkWidget *widget = GTK_WIDGET (hsv); gdouble dx, dy, dist; gdouble center_x; gdouble center_y; gdouble inner, outer; center_x = gtk_widget_get_allocated_width (widget) / 2.0; center_y = gtk_widget_get_allocated_height (widget) / 2.0; outer = priv->size / 2.0; inner = outer - priv->ring_width; dx = x - center_x; dy = center_y - y; dist = dx * dx + dy * dy; return (dist >= inner * inner && dist <= outer * outer); } /* Computes a saturation/value pair based on the mouse coordinates */ static void compute_sv (Gcolor3HSV *hsv, gdouble x, gdouble y, gdouble *s, gdouble *v) { GtkWidget *widget = GTK_WIDGET (hsv); int ihx, ihy, isx, isy, ivx, ivy; double hx, hy, sx, sy, vx, vy; double center_x; double center_y; compute_triangle (hsv, &ihx, &ihy, &isx, &isy, &ivx, &ivy); center_x = gtk_widget_get_allocated_width (widget) / 2.0; center_y = gtk_widget_get_allocated_height (widget) / 2.0; hx = ihx - center_x; hy = center_y - ihy; sx = isx - center_x; sy = center_y - isy; vx = ivx - center_x; vy = center_y - ivy; x -= center_x; y = center_y - y; if (vx * (x - sx) + vy * (y - sy) < 0.0) { *s = 1.0; *v = (((x - sx) * (hx - sx) + (y - sy) * (hy-sy)) / ((hx - sx) * (hx - sx) + (hy - sy) * (hy - sy))); if (*v < 0.0) *v = 0.0; else if (*v > 1.0) *v = 1.0; } else if (hx * (x - sx) + hy * (y - sy) < 0.0) { *s = 0.0; *v = (((x - sx) * (vx - sx) + (y - sy) * (vy - sy)) / ((vx - sx) * (vx - sx) + (vy - sy) * (vy - sy))); if (*v < 0.0) *v = 0.0; else if (*v > 1.0) *v = 1.0; } else if (sx * (x - hx) + sy * (y - hy) < 0.0) { *v = 1.0; *s = (((x - vx) * (hx - vx) + (y - vy) * (hy - vy)) / ((hx - vx) * (hx - vx) + (hy - vy) * (hy - vy))); if (*s < 0.0) *s = 0.0; else if (*s > 1.0) *s = 1.0; } else { *v = (((x - sx) * (hy - vy) - (y - sy) * (hx - vx)) / ((vx - sx) * (hy - vy) - (vy - sy) * (hx - vx))); if (*v<= 0.0) { *v = 0.0; *s = 0.0; } else { if (*v > 1.0) *v = 1.0; if (fabs (hy - vy) < fabs (hx - vx)) *s = (x - sx - *v * (vx - sx)) / (*v * (hx - vx)); else *s = (y - sy - *v * (vy - sy)) / (*v * (hy - vy)); if (*s < 0.0) *s = 0.0; else if (*s > 1.0) *s = 1.0; } } } /* Computes whether a point is inside the saturation/value triangle */ static gboolean is_in_triangle (Gcolor3HSV *hsv, gdouble x, gdouble y) { int hx, hy, sx, sy, vx, vy; double det, s, v; compute_triangle (hsv, &hx, &hy, &sx, &sy, &vx, &vy); det = (vx - sx) * (hy - sy) - (vy - sy) * (hx - sx); s = ((x - sx) * (hy - sy) - (y - sy) * (hx - sx)) / det; v = ((vx - sx) * (y - sy) - (vy - sy) * (x - sx)) / det; return (s >= 0.0 && v >= 0.0 && s + v <= 1.0); } /* Computes a value based on the mouse coordinates */ static double compute_v (Gcolor3HSV *hsv, gdouble x, gdouble y) { GtkWidget *widget = GTK_WIDGET (hsv); double center_x; double center_y; double dx, dy; double angle; center_x = gtk_widget_get_allocated_width (widget) / 2.0; center_y = gtk_widget_get_allocated_height (widget) / 2.0; dx = x - center_x; dy = center_y - y; angle = atan2 (dy, dx); if (angle < 0.0) angle += 2.0 * G_PI; return angle / (2.0 * G_PI); } /* Event handlers */ static void set_cross_grab (Gcolor3HSV *hsv, GdkDevice *device, guint32 time) { Gcolor3HSVPrivate *priv = hsv->priv; GdkCursor *cursor; cursor = gdk_cursor_new_for_display (gtk_widget_get_display (GTK_WIDGET (hsv)), GDK_CROSSHAIR); gdk_seat_grab (gdk_device_get_seat (device), priv->window, GDK_SEAT_CAPABILITY_ALL_POINTING, FALSE, cursor, NULL, NULL, NULL); g_object_unref (cursor); } static gboolean gcolor3_hsv_grab_broken (GtkWidget *widget, UNUSED GdkEventGrabBroken *event) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; priv->mode = DRAG_NONE; return TRUE; } static gint gcolor3_hsv_button_press (GtkWidget *widget, GdkEventButton *event) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; double x, y; if (priv->mode != DRAG_NONE || event->button != GDK_BUTTON_PRIMARY) return FALSE; x = event->x; y = event->y; if (is_in_ring (hsv, x, y)) { priv->mode = DRAG_H; set_cross_grab (hsv, gdk_event_get_device ((GdkEvent *) event), event->time); gcolor3_hsv_set_color (hsv, compute_v (hsv, x, y), priv->s, priv->v); gtk_widget_grab_focus (widget); priv->focus_on_ring = TRUE; return TRUE; } if (is_in_triangle (hsv, x, y)) { gdouble s, v; priv->mode = DRAG_SV; set_cross_grab (hsv, gdk_event_get_device ((GdkEvent *) event), event->time); compute_sv (hsv, x, y, &s, &v); gcolor3_hsv_set_color (hsv, priv->h, s, v); gtk_widget_grab_focus (widget); priv->focus_on_ring = FALSE; return TRUE; } return FALSE; } static gint gcolor3_hsv_button_release (GtkWidget *widget, GdkEventButton *event) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; DragMode mode; gdouble x, y; if (priv->mode == DRAG_NONE || event->button != GDK_BUTTON_PRIMARY) return FALSE; /* Set the drag mode to DRAG_NONE so that signal handlers for "catched" * can see that this is the final color state. */ mode = priv->mode; priv->mode = DRAG_NONE; x = event->x; y = event->y; if (mode == DRAG_H) { gcolor3_hsv_set_color (hsv, compute_v (hsv, x, y), priv->s, priv->v); } else if (mode == DRAG_SV) { gdouble s, v; compute_sv (hsv, x, y, &s, &v); gcolor3_hsv_set_color (hsv, priv->h, s, v); } else { g_assert_not_reached (); } gdk_seat_ungrab (gdk_device_get_seat (gdk_event_get_device ((GdkEvent *) event))); return TRUE; } static gint gcolor3_hsv_motion (GtkWidget *widget, GdkEventMotion *event) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; gdouble x, y; if (priv->mode == DRAG_NONE) return FALSE; gdk_event_request_motions (event); x = event->x; y = event->y; if (priv->mode == DRAG_H) { gcolor3_hsv_set_color (hsv, compute_v (hsv, x, y), priv->s, priv->v); return TRUE; } else if (priv->mode == DRAG_SV) { gdouble s, v; compute_sv (hsv, x, y, &s, &v); gcolor3_hsv_set_color (hsv, priv->h, s, v); return TRUE; } g_assert_not_reached (); return FALSE; } /* Redrawing */ /* Paints the hue ring */ static void paint_ring (Gcolor3HSV *hsv, cairo_t *cr) { Gcolor3HSVPrivate *priv = hsv->priv; GtkWidget *widget = GTK_WIDGET (hsv); int xx, yy, width, height; gdouble dx, dy, dist; gdouble center_x; gdouble center_y; gdouble inner, outer; guint32 *buf, *p; gdouble angle; gdouble hue; gdouble r, g, b; cairo_surface_t *source; cairo_t *source_cr; gint stride; width = gtk_widget_get_allocated_width (widget); height = gtk_widget_get_allocated_height (widget); center_x = width / 2.0; center_y = height / 2.0; outer = priv->size / 2.0; inner = outer - priv->ring_width; /* Create an image initialized with the ring colors */ stride = cairo_format_stride_for_width (CAIRO_FORMAT_RGB24, width); buf = g_new (guint32, height * stride / 4); for (yy = 0; yy < height; yy++) { p = buf + yy * width; dy = -(yy - center_y); for (xx = 0; xx < width; xx++) { dx = xx - center_x; dist = dx * dx + dy * dy; if (dist < ((inner-1) * (inner-1)) || dist > ((outer+1) * (outer+1))) { *p++ = 0; continue; } angle = atan2 (dy, dx); if (angle < 0.0) angle += 2.0 * G_PI; hue = angle / (2.0 * G_PI); r = hue; g = 1.0; b = 1.0; hsv_to_rgb (&r, &g, &b); *p++ = (((int)floor (r * 255 + 0.5) << 16) | ((int)floor (g * 255 + 0.5) << 8) | (int)floor (b * 255 + 0.5)); } } source = cairo_image_surface_create_for_data ((unsigned char *)buf, CAIRO_FORMAT_RGB24, width, height, stride); /* Now draw the value marker onto the source image, so that it * will get properly clipped at the edges of the ring */ source_cr = cairo_create (source); r = priv->h; g = 1.0; b = 1.0; hsv_to_rgb (&r, &g, &b); if (INTENSITY (r, g, b) > 0.5) cairo_set_source_rgb (source_cr, 0., 0., 0.); else cairo_set_source_rgb (source_cr, 1., 1., 1.); cairo_move_to (source_cr, center_x, center_y); cairo_line_to (source_cr, center_x + cos (priv->h * 2.0 * G_PI) * priv->size / 2, center_y - sin (priv->h * 2.0 * G_PI) * priv->size / 2); cairo_stroke (source_cr); cairo_destroy (source_cr); /* Draw the ring using the source image */ cairo_save (cr); cairo_set_source_surface (cr, source, 0, 0); cairo_surface_destroy (source); cairo_set_line_width (cr, priv->ring_width); cairo_new_path (cr); cairo_arc (cr, center_x, center_y, priv->size / 2. - priv->ring_width / 2., 0, 2 * G_PI); cairo_stroke (cr); cairo_restore (cr); g_free (buf); } /* Converts an HSV triplet to an integer RGB triplet */ static void get_color (gdouble h, gdouble s, gdouble v, gint *r, gint *g, gint *b) { hsv_to_rgb (&h, &s, &v); *r = floor (h * 255 + 0.5); *g = floor (s * 255 + 0.5); *b = floor (v * 255 + 0.5); } #define SWAP(a, b, t) ((t) = (a), (a) = (b), (b) = (t)) #define LERP(a, b, v1, v2, i) (((v2) - (v1) != 0) \ ? ((a) + ((b) - (a)) * ((i) - (v1)) / ((v2) - (v1))) \ : (a)) /* Number of pixels we extend out from the edges when creating * color source to avoid artifacts */ #define PAD 3 /* Paints the HSV triangle */ static void paint_triangle (Gcolor3HSV *hsv, cairo_t *cr, gboolean draw_focus) { Gcolor3HSVPrivate *priv = hsv->priv; GtkWidget *widget = GTK_WIDGET (hsv); gint hx, hy, sx, sy, vx, vy; /* HSV vertices */ gint x1, y1, r1, g1, b1; /* First vertex in scanline order */ gint x2, y2, r2, g2, b2; /* Second vertex */ gint x3, y3, r3, g3, b3; /* Third vertex */ gint t; guint32 *buf, *p, c; gint xl, xr, rl, rr, gl, gr, bl, br; /* Scanline data */ gint xx, yy; gint x_interp, y_interp; gint x_start, x_end; cairo_surface_t *source; gdouble r, g, b; gint stride; int width, height; GtkStyleContext *context; priv = hsv->priv; width = gtk_widget_get_allocated_width (widget); height = gtk_widget_get_allocated_height (widget); /* Compute triangle's vertices */ compute_triangle (hsv, &hx, &hy, &sx, &sy, &vx, &vy); x1 = hx; y1 = hy; get_color (priv->h, 1.0, 1.0, &r1, &g1, &b1); x2 = sx; y2 = sy; get_color (priv->h, 1.0, 0.0, &r2, &g2, &b2); x3 = vx; y3 = vy; get_color (priv->h, 0.0, 1.0, &r3, &g3, &b3); if (y2 > y3) { SWAP (x2, x3, t); SWAP (y2, y3, t); SWAP (r2, r3, t); SWAP (g2, g3, t); SWAP (b2, b3, t); } if (y1 > y3) { SWAP (x1, x3, t); SWAP (y1, y3, t); SWAP (r1, r3, t); SWAP (g1, g3, t); SWAP (b1, b3, t); } if (y1 > y2) { SWAP (x1, x2, t); SWAP (y1, y2, t); SWAP (r1, r2, t); SWAP (g1, g2, t); SWAP (b1, b2, t); } /* Shade the triangle */ stride = cairo_format_stride_for_width (CAIRO_FORMAT_RGB24, width); buf = g_new (guint32, height * stride / 4); for (yy = 0; yy < height; yy++) { p = buf + yy * width; if (yy >= y1 - PAD && yy < y3 + PAD) { y_interp = CLAMP (yy, y1, y3); if (y_interp < y2) { xl = LERP (x1, x2, y1, y2, y_interp); rl = LERP (r1, r2, y1, y2, y_interp); gl = LERP (g1, g2, y1, y2, y_interp); bl = LERP (b1, b2, y1, y2, y_interp); } else { xl = LERP (x2, x3, y2, y3, y_interp); rl = LERP (r2, r3, y2, y3, y_interp); gl = LERP (g2, g3, y2, y3, y_interp); bl = LERP (b2, b3, y2, y3, y_interp); } xr = LERP (x1, x3, y1, y3, y_interp); rr = LERP (r1, r3, y1, y3, y_interp); gr = LERP (g1, g3, y1, y3, y_interp); br = LERP (b1, b3, y1, y3, y_interp); if (xl > xr) { SWAP (xl, xr, t); SWAP (rl, rr, t); SWAP (gl, gr, t); SWAP (bl, br, t); } x_start = MAX (xl - PAD, 0); x_end = MIN (xr + PAD, width); x_start = MIN (x_start, x_end); c = (rl << 16) | (gl << 8) | bl; for (xx = 0; xx < x_start; xx++) *p++ = c; for (; xx < x_end; xx++) { x_interp = CLAMP (xx, xl, xr); *p++ = ((LERP (rl, rr, xl, xr, x_interp) << 16) | (LERP (gl, gr, xl, xr, x_interp) << 8) | LERP (bl, br, xl, xr, x_interp)); } c = (rr << 16) | (gr << 8) | br; for (; xx < width; xx++) *p++ = c; } } source = cairo_image_surface_create_for_data ((unsigned char *)buf, CAIRO_FORMAT_RGB24, width, height, stride); /* Draw a triangle with the image as a source */ cairo_set_source_surface (cr, source, 0, 0); cairo_surface_destroy (source); cairo_move_to (cr, x1, y1); cairo_line_to (cr, x2, y2); cairo_line_to (cr, x3, y3); cairo_close_path (cr); cairo_fill (cr); g_free (buf); /* Draw value marker */ xx = floor (sx + (vx - sx) * priv->v + (hx - vx) * priv->s * priv->v + 0.5); yy = floor (sy + (vy - sy) * priv->v + (hy - vy) * priv->s * priv->v + 0.5); r = priv->h; g = priv->s; b = priv->v; hsv_to_rgb (&r, &g, &b); context = gtk_widget_get_style_context (widget); gtk_style_context_save (context); if (INTENSITY (r, g, b) > 0.5) { gtk_style_context_add_class (context, "light-area-focus"); cairo_set_source_rgb (cr, 0., 0., 0.); } else { gtk_style_context_add_class (context, "dark-area-focus"); cairo_set_source_rgb (cr, 1., 1., 1.); } #define RADIUS 4 #define FOCUS_RADIUS 6 cairo_new_path (cr); cairo_arc (cr, xx, yy, RADIUS, 0, 2 * G_PI); cairo_stroke (cr); /* Draw focus outline */ if (draw_focus && !priv->focus_on_ring) { gint focus_width; gint focus_pad; gtk_widget_style_get (widget, "focus-line-width", &focus_width, "focus-padding", &focus_pad, NULL); gtk_render_focus (context, cr, xx - FOCUS_RADIUS - focus_width - focus_pad, yy - FOCUS_RADIUS - focus_width - focus_pad, 2 * (FOCUS_RADIUS + focus_width + focus_pad), 2 * (FOCUS_RADIUS + focus_width + focus_pad)); } gtk_style_context_restore (context); } /* Paints the contents of the HSV color selector */ static gboolean gcolor3_hsv_draw (GtkWidget *widget, cairo_t *cr) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; gboolean draw_focus; draw_focus = gtk_widget_has_visible_focus (widget); paint_ring (hsv, cr); paint_triangle (hsv, cr, draw_focus); if (draw_focus && priv->focus_on_ring) { GtkStyleContext *context; context = gtk_widget_get_style_context (widget); gtk_render_focus (context, cr, 0, 0, gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_height (widget)); } return FALSE; } static gboolean gcolor3_hsv_focus (GtkWidget *widget, GtkDirectionType dir) { Gcolor3HSV *hsv = GCOLOR3_HSV (widget); Gcolor3HSVPrivate *priv = hsv->priv; if (!gtk_widget_has_focus (widget)) { if (dir == GTK_DIR_TAB_BACKWARD) priv->focus_on_ring = FALSE; else priv->focus_on_ring = TRUE; gtk_widget_grab_focus (GTK_WIDGET (hsv)); return TRUE; } switch (dir) { case GTK_DIR_UP: if (priv->focus_on_ring) return FALSE; else priv->focus_on_ring = TRUE; break; case GTK_DIR_DOWN: if (priv->focus_on_ring) priv->focus_on_ring = FALSE; else return FALSE; break; case GTK_DIR_LEFT: case GTK_DIR_TAB_BACKWARD: if (priv->focus_on_ring) return FALSE; else priv->focus_on_ring = TRUE; break; case GTK_DIR_RIGHT: case GTK_DIR_TAB_FORWARD: if (priv->focus_on_ring) priv->focus_on_ring = FALSE; else return FALSE; break; } gtk_widget_queue_draw (GTK_WIDGET (hsv)); return TRUE; } /** * gcolor3_hsv_new: * * Creates a new HSV color selector. * * Returns: A newly-created HSV color selector. * * Since: 2.14 */ GtkWidget* gcolor3_hsv_new (void) { return g_object_new (GCOLOR3_TYPE_HSV, NULL); } /** * gcolor3_hsv_set_color: * @hsv: An HSV color selector * @h: Hue * @s: Saturation * @v: Value * * Sets the current color in an HSV color selector. * Color component values must be in the [0.0, 1.0] range. * * Since: 2.14 */ void gcolor3_hsv_set_color (Gcolor3HSV *hsv, gdouble h, gdouble s, gdouble v) { Gcolor3HSVPrivate *priv; g_return_if_fail (GCOLOR3_IS_HSV (hsv)); g_return_if_fail (h >= 0.0 && h <= 1.0); g_return_if_fail (s >= 0.0 && s <= 1.0); g_return_if_fail (v >= 0.0 && v <= 1.0); priv = hsv->priv; priv->h = h; priv->s = s; priv->v = v; g_signal_emit (hsv, hsv_signals[CHANGED], 0); gtk_widget_queue_draw (GTK_WIDGET (hsv)); } /** * gcolor3_hsv_get_color: * @hsv: An HSV color selector * @h: (out): Return value for the hue * @s: (out): Return value for the saturation * @v: (out): Return value for the value * * Queries the current color in an HSV color selector. * Returned values will be in the [0.0, 1.0] range. * * Since: 2.14 */ void gcolor3_hsv_get_color (Gcolor3HSV *hsv, double *h, double *s, double *v) { Gcolor3HSVPrivate *priv; g_return_if_fail (GCOLOR3_IS_HSV (hsv)); priv = hsv->priv; if (h) *h = priv->h; if (s) *s = priv->s; if (v) *v = priv->v; } /** * gcolor3_hsv_set_metrics: * @hsv: An HSV color selector * @size: Diameter for the hue ring * @ring_width: Width of the hue ring * * Sets the size and ring width of an HSV color selector. * * Since: 2.14 */ void gcolor3_hsv_set_metrics (Gcolor3HSV *hsv, gint size, gint ring_width) { Gcolor3HSVPrivate *priv; int same_size; g_return_if_fail (GCOLOR3_IS_HSV (hsv)); g_return_if_fail (size > 0); g_return_if_fail (ring_width > 0); g_return_if_fail (2 * ring_width + 1 <= size); priv = hsv->priv; same_size = (priv->size == size); priv->size = size; priv->ring_width = ring_width; if (same_size) gtk_widget_queue_draw (GTK_WIDGET (hsv)); else gtk_widget_queue_resize (GTK_WIDGET (hsv)); } /** * gcolor3_hsv_get_metrics: * @hsv: An HSV color selector * @size: (out): Return value for the diameter of the hue ring * @ring_width: (out): Return value for the width of the hue ring * * Queries the size and ring width of an HSV color selector. * * Since: 2.14 */ void gcolor3_hsv_get_metrics (Gcolor3HSV *hsv, gint *size, gint *ring_width) { Gcolor3HSVPrivate *priv; g_return_if_fail (GCOLOR3_IS_HSV (hsv)); priv = hsv->priv; if (size) *size = priv->size; if (ring_width) *ring_width = priv->ring_width; } /** * gcolor3_hsv_is_adjusting: * @hsv: A #Gcolor3HSV * * An HSV color selector can be said to be adjusting if multiple rapid * changes are being made to its value, for example, when the user is * adjusting the value with the mouse. This function queries whether * the HSV color selector is being adjusted or not. * * Returns: %TRUE if clients can ignore changes to the color value, * since they may be transitory, or %FALSE if they should consider * the color value status to be final. * * Since: 2.14 */ gboolean gcolor3_hsv_is_adjusting (Gcolor3HSV *hsv) { Gcolor3HSVPrivate *priv; g_return_val_if_fail (GCOLOR3_IS_HSV (hsv), FALSE); priv = hsv->priv; return priv->mode != DRAG_NONE; } static void gcolor3_hsv_move (Gcolor3HSV *hsv, GtkDirectionType dir) { Gcolor3HSVPrivate *priv = hsv->priv; gdouble hue, sat, val; gint hx, hy, sx, sy, vx, vy; /* HSV vertices */ gint x, y; /* position in triangle */ hue = priv->h; sat = priv->s; val = priv->v; compute_triangle (hsv, &hx, &hy, &sx, &sy, &vx, &vy); x = floor (sx + (vx - sx) * priv->v + (hx - vx) * priv->s * priv->v + 0.5); y = floor (sy + (vy - sy) * priv->v + (hy - vy) * priv->s * priv->v + 0.5); #define HUE_DELTA 0.002 switch (dir) { case GTK_DIR_UP: if (priv->focus_on_ring) hue += HUE_DELTA; else { y -= 1; compute_sv (hsv, x, y, &sat, &val); } break; case GTK_DIR_DOWN: if (priv->focus_on_ring) hue -= HUE_DELTA; else { y += 1; compute_sv (hsv, x, y, &sat, &val); } break; case GTK_DIR_LEFT: if (priv->focus_on_ring) hue += HUE_DELTA; else { x -= 1; compute_sv (hsv, x, y, &sat, &val); } break; case GTK_DIR_RIGHT: if (priv->focus_on_ring) hue -= HUE_DELTA ; else { x += 1; compute_sv (hsv, x, y, &sat, &val); } break; default: /* we don't care about the tab directions */ break; } /* Wrap */ if (hue < 0.0) hue = 1.0; else if (hue > 1.0) hue = 0.0; gcolor3_hsv_set_color (hsv, hue, sat, val); } gcolor3-2.4.0/src/gcolor3-hsv.h000066400000000000000000000064261372141071500162040ustar00rootroot00000000000000/* HSV color selector for GTK * * Copyright (C) 1999 The Free Software Foundation * * Authors: Simon Budig (original code) * Federico Mena-Quintero (cleanup for GTK) * Jonathan Blandford (cleanup for GTK) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . */ /* * Modified by the GTK Team and others 1997-2000. See the AUTHORS * file for a list of people on the GTK Team. See the ChangeLog * files for a list of changes. These files are distributed with * GTK at ftp://ftp.gtk.org/pub/gtk/. * * Updated and adapted for inclusion in Gcolor3 by Jente Hidskes 2018. */ #ifndef __GCOLOR3_HSV_H__ #define __GCOLOR3_HSV_H__ #include G_BEGIN_DECLS #define GCOLOR3_TYPE_HSV (gcolor3_hsv_get_type ()) #define GCOLOR3_HSV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCOLOR3_TYPE_HSV, Gcolor3HSV)) #define GCOLOR3_HSV_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCOLOR3_TYPE_HSV, Gcolor3HSVClass)) #define GCOLOR3_IS_HSV(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCOLOR3_TYPE_HSV)) #define GCOLOR3_IS_HSV_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCOLOR3_TYPE_HSV)) #define GCOLOR3_HSV_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCOLOR3_TYPE_HSV, Gcolor3HSVClass)) typedef struct _Gcolor3HSV Gcolor3HSV; typedef struct _Gcolor3HSVPrivate Gcolor3HSVPrivate; typedef struct _Gcolor3HSVClass Gcolor3HSVClass; struct _Gcolor3HSV { GtkWidget parent_instance; /*< private >*/ Gcolor3HSVPrivate *priv; }; struct _Gcolor3HSVClass { GtkWidgetClass parent_class; /* Notification signals */ void (* changed) (Gcolor3HSV *hsv); /* Keybindings */ void (* move) (Gcolor3HSV *hsv, GtkDirectionType type); /* Padding for future expansion */ void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); void (*_gtk_reserved3) (void); void (*_gtk_reserved4) (void); }; GType gcolor3_hsv_get_type (void) G_GNUC_CONST; GtkWidget* gcolor3_hsv_new (void); void gcolor3_hsv_set_color (Gcolor3HSV *hsv, double h, double s, double v); void gcolor3_hsv_get_color (Gcolor3HSV *hsv, gdouble *h, gdouble *s, gdouble *v); void gcolor3_hsv_set_metrics (Gcolor3HSV *hsv, gint size, gint ring_width); void gcolor3_hsv_get_metrics (Gcolor3HSV *hsv, gint *size, gint *ring_width); gboolean gcolor3_hsv_is_adjusting (Gcolor3HSV *hsv); G_END_DECLS #endif /* __GCOLOR3_HSV_H__ */ gcolor3-2.4.0/src/gcolor3-window.c000066400000000000000000000330021372141071500166740ustar00rootroot00000000000000/* Gcolor3Window * * Copyright (C) 2015-2018 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "config.h" #include #include #include #include #include "gcolor3-color-item.h" #include "gcolor3-color-row.h" #include "gcolor3-color-selection.h" #include "gcolor3-color-store.h" #include "gcolor3-window.h" #include "utils.h" enum { PROP_0, PROP_STORE, }; struct _Gcolor3WindowPrivate { GtkWidget *button_primary_menu; GtkWidget *button_save; GtkWidget *entry; GtkWidget *page_stack; GtkWidget *picker; GtkWidget *list_stack; GtkWidget *scroll; GtkWidget *listbox; GtkWidget *empty_placeholder; Gcolor3ColorStore *store; GdkRGBA current; }; G_DEFINE_TYPE_WITH_PRIVATE (Gcolor3Window, gcolor3_window, GTK_TYPE_APPLICATION_WINDOW) static void save_color (Gcolor3WindowPrivate *priv) { const gchar *key; gchar *hex; key = gtk_entry_get_text (GTK_ENTRY (priv->entry)); hex = hex_value (&priv->current); if (strlen (key) == 0) { /* If using `hex` as key, do not save the first character (e.g., `#`) * because GKeyFile will see these as (and subsequently ignore) comments. */ key = hex + 1; } /* This will add the color to the store (if the key isn't * already used), which in turn will update the list box due * to the binding between the store's list model and the list * box. */ gcolor3_color_store_add_color (priv->store, key, hex); g_free (hex); if (!gcolor3_color_store_empty (priv->store)) { gtk_stack_set_visible_child (GTK_STACK (priv->list_stack), priv->scroll); } } static gboolean gcolor3_window_picker_page_key_handler (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { Gcolor3WindowPrivate *priv; if (event->type != GDK_KEY_PRESS) { return GDK_EVENT_PROPAGATE; } priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (user_data)); switch (event->keyval) { case GDK_KEY_s: if ((event->state & GDK_CONTROL_MASK) != GDK_CONTROL_MASK) { return GDK_EVENT_PROPAGATE; } /* Emulate a button click, to give the user visual feedback of the save action. */ g_signal_emit_by_name (priv->button_save, "activate"); return GDK_EVENT_STOP; default: return GDK_EVENT_PROPAGATE; } } static void gcolor3_window_entry_activated (UNUSED GtkEntry *entry, gpointer user_data) { Gcolor3WindowPrivate *priv; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (user_data)); /* Emulate a button click, to give the user visual feedback of the save action. */ g_signal_emit_by_name (priv->button_save, "activate"); } static void gcolor3_window_save_button_clicked (UNUSED GtkButton *button, gpointer user_data) { Gcolor3WindowPrivate *priv; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (user_data)); save_color (priv); } static void gcolor3_window_color_row_deleted (Gcolor3ColorRow *row, gpointer user_data) { Gcolor3WindowPrivate *priv; gchar *key; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (user_data)); g_object_get (row, "key", &key, NULL); /* Removing a color from the store will automatically remove it from the list box, due to the binding between the two. */ gcolor3_color_store_remove_color (priv->store, key); g_free (key); if (gcolor3_color_store_empty (priv->store)) { gtk_stack_set_visible_child (GTK_STACK (priv->list_stack), priv->empty_placeholder); } } static void gcolor3_window_color_row_renamed (UNUSED Gcolor3ColorRow *row, const gchar *old_name, const gchar *new_name, gpointer user_data) { Gcolor3WindowPrivate *priv; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (user_data)); gcolor3_color_store_rename_color (priv->store, old_name, new_name); } static void gcolor3_window_action_change_page (UNUSED GSimpleAction *action, UNUSED GVariant *parameter, gpointer user_data) { Gcolor3WindowPrivate *priv; const gchar *page; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (user_data)); page = gtk_stack_get_visible_child_name (GTK_STACK (priv->page_stack)); if (g_strcmp0 (page, "saved-colors") == 0) { gtk_stack_set_visible_child_name (GTK_STACK (priv->page_stack), "picker"); } else { gtk_stack_set_visible_child_name (GTK_STACK (priv->page_stack), "saved-colors"); } } static const GActionEntry window_actions[] = { { "change-page", gcolor3_window_action_change_page, NULL, NULL, NULL }, }; static void gcolor3_window_picker_changed (Gcolor3ColorSelection *picker, gpointer user_data) { Gcolor3WindowPrivate *priv; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (user_data)); gcolor3_color_selection_get_current_color (GCOLOR3_COLOR_SELECTION (picker), &priv->current); } static void gcolor3_window_stack_changed (GtkStack *stack, UNUSED GParamSpec *pspec, gpointer user_data) { Gcolor3WindowPrivate *priv; const gchar *page; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (user_data)); page = gtk_stack_get_visible_child_name (stack); if (g_strcmp0 (page, "saved-colors") == 0) { gtk_widget_hide (priv->button_save); gtk_widget_hide (priv->entry); } else { gtk_widget_show (priv->button_save); gtk_widget_show (priv->entry); } } static void gcolor3_window_selection_changed (GtkListBox *listbox, gpointer user_data) { Gcolor3WindowPrivate *priv; GtkListBoxRow *row; GdkRGBA new, current; gchar *color; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (user_data)); row = gtk_list_box_get_selected_row (listbox); if (!row) { /* This callback also triggers when a row is deleted, in which the selected row returns NULL. In this case, we don't want to select another color, anyway. */ return; } g_object_get (row, "hex", &color, NULL); gdk_rgba_parse (&new, color); g_free (color); /* Save the old color in the picker. */ gcolor3_color_selection_get_current_color (GCOLOR3_COLOR_SELECTION (priv->picker), ¤t); gcolor3_color_selection_set_previous_color (GCOLOR3_COLOR_SELECTION (priv->picker), ¤t); gcolor3_color_selection_set_current_color (GCOLOR3_COLOR_SELECTION (priv->picker), &new); } static GtkWidget * create_widget_func (gpointer item, gpointer user_data) { Gcolor3ColorRow *row; gchar *key, *hex; g_object_get ((Gcolor3ColorItem *) item, "key", &key, "hex", &hex, NULL); row = gcolor3_color_row_new (key, hex); g_signal_connect (row, "color-removed", G_CALLBACK (gcolor3_window_color_row_deleted), user_data); g_signal_connect (row, "color-renamed", G_CALLBACK (gcolor3_window_color_row_renamed), user_data); g_free (key); g_free (hex); return GTK_WIDGET (row); } static void gcolor3_window_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { Gcolor3WindowPrivate *priv; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (object)); switch (prop_id) { case PROP_STORE: priv->store = GCOLOR3_COLOR_STORE (g_value_dup_object (value)); gtk_list_box_bind_model (GTK_LIST_BOX (priv->listbox), G_LIST_MODEL (priv->store), create_widget_func, object, NULL); if (gcolor3_color_store_empty (priv->store)) { gtk_stack_set_visible_child (GTK_STACK (priv->list_stack), priv->empty_placeholder); } else { gtk_stack_set_visible_child (GTK_STACK (priv->list_stack), priv->scroll); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gcolor3_window_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { Gcolor3WindowPrivate *priv; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (object)); switch (prop_id) { case PROP_STORE: g_value_set_object (value, priv->store); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gcolor3_window_dispose (GObject *object) { Gcolor3WindowPrivate *priv; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (object)); g_clear_object (&priv->store); G_OBJECT_CLASS (gcolor3_window_parent_class)->dispose (object); } static void gcolor3_window_finalize (GObject *object) { Gcolor3WindowPrivate *priv; gchar *hex; priv = gcolor3_window_get_instance_private (GCOLOR3_WINDOW (object)); hex = hex_value (&priv->current); g_printf ("%s\n", hex); g_free (hex); G_OBJECT_CLASS (gcolor3_window_parent_class)->finalize (object); } static void gcolor3_window_class_init (Gcolor3WindowClass *gcolor3_window_class) { GObjectClass *object_class = G_OBJECT_CLASS (gcolor3_window_class); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (gcolor3_window_class); object_class->set_property = gcolor3_window_set_property; object_class->get_property = gcolor3_window_get_property; object_class->dispose = gcolor3_window_dispose; object_class->finalize = gcolor3_window_finalize; g_object_class_install_property (object_class, PROP_STORE, g_param_spec_object ("color-store", "ColorStore", "The managed colors", GCOLOR3_TYPE_COLOR_STORE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); gtk_widget_class_set_template_from_resource (widget_class, "/nl/hjdskes/gcolor3/window.ui"); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3Window, button_primary_menu); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3Window, button_save); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3Window, entry); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3Window, page_stack); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3Window, list_stack); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3Window, scroll); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3Window, listbox); gtk_widget_class_bind_template_child_private (widget_class, Gcolor3Window, empty_placeholder); gtk_widget_class_bind_template_callback (widget_class, gcolor3_window_stack_changed); gtk_widget_class_bind_template_callback (widget_class, gcolor3_window_picker_changed); gtk_widget_class_bind_template_callback (widget_class, gcolor3_window_selection_changed); gtk_widget_class_bind_template_callback (widget_class, gcolor3_window_picker_page_key_handler); gtk_widget_class_bind_template_callback (widget_class, gcolor3_window_entry_activated); gtk_widget_class_bind_template_callback (widget_class, gcolor3_window_save_button_clicked); } static void gcolor3_window_init (Gcolor3Window *window) { Gcolor3WindowPrivate *priv; GtkBuilder *menu_builder; GMenuModel *model; priv = gcolor3_window_get_instance_private (window); gtk_widget_init_template (GTK_WIDGET (window)); /* Add the primary menu */ menu_builder = gtk_builder_new_from_resource ("/nl/hjdskes/gcolor3/menus.ui"); model = G_MENU_MODEL (gtk_builder_get_object (menu_builder, "primary-menu")); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (priv->button_primary_menu), model); /* Add the custom color selection widget. */ priv->picker = gcolor3_color_selection_new (); gtk_widget_set_valign (priv->picker, GTK_ALIGN_CENTER); gtk_widget_set_halign (priv->picker, GTK_ALIGN_CENTER); gtk_widget_set_margin_top (priv->picker, 24); gtk_widget_set_margin_bottom (priv->picker, 24); gtk_widget_set_margin_start (priv->picker, 24); gtk_widget_set_margin_end (priv->picker, 24); g_signal_connect (priv->picker, "color-changed", G_CALLBACK (gcolor3_window_picker_changed), window); g_signal_connect (priv->picker, "key-press-event", G_CALLBACK (gcolor3_window_picker_page_key_handler), window); gtk_stack_add_titled (GTK_STACK (priv->page_stack), priv->picker, "picker", _("Picker")); gtk_container_child_set (GTK_CONTAINER (priv->page_stack), priv->picker, "position", 0, NULL); gtk_widget_set_visible (priv->picker, TRUE); /* Call the callback to initialise the GtkEntry and to prevent * saving #000000 when saving the white color right away. */ gcolor3_window_picker_changed (GCOLOR3_COLOR_SELECTION (priv->picker), window); g_action_map_add_action_entries (G_ACTION_MAP (window), window_actions, G_N_ELEMENTS (window_actions), window); /* Finally, make the color picker the visible stack page. */ gtk_stack_set_visible_child_name (GTK_STACK (priv->page_stack), "picker"); } Gcolor3Window * gcolor3_window_new (Gcolor3Application *application, Gcolor3ColorStore *store) { g_return_val_if_fail (GCOLOR3_IS_APPLICATION (application), NULL); g_return_val_if_fail (GCOLOR3_IS_COLOR_STORE (store), NULL); return g_object_new (GCOLOR3_TYPE_WINDOW, "application", application, "color-store", store, NULL); } void gcolor3_window_destroy (Gcolor3Window *window, UNUSED gpointer user_data) { g_return_if_fail (window != NULL); gtk_widget_destroy (GTK_WIDGET (window)); } gcolor3-2.4.0/src/gcolor3-window.h000066400000000000000000000042511372141071500167050ustar00rootroot00000000000000/* Gcolor3Window * * Copyright (C) 2015-2016 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __GCOLOR3_WINDOW_H__ #define __GCOLOR3_WINDOW_H__ #include #include #include "gcolor3-application.h" #include "gcolor3-color-store.h" G_BEGIN_DECLS typedef struct _Gcolor3Window Gcolor3Window; typedef struct _Gcolor3WindowClass Gcolor3WindowClass; typedef struct _Gcolor3WindowPrivate Gcolor3WindowPrivate; #define GCOLOR3_TYPE_WINDOW (gcolor3_window_get_type ()) #define GCOLOR3_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCOLOR3_TYPE_WINDOW, Gcolor3Window)) #define GCOLOR3_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCOLOR3_TYPE_WINDOW, Gcolor3WindowClass)) #define GCOLOR3_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCOLOR3_TYPE_WINDOW)) #define GCOLOR3_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCOLOR3_TYPE_WINDOW)) #define GCOLOR3_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCOLOR3_TYPE_WINDOW, Gcolor3WindowClass)) struct _Gcolor3Window { GtkApplicationWindow base_instance; }; struct _Gcolor3WindowClass { GtkApplicationWindowClass parent_class; }; GType gcolor3_window_get_type (void) G_GNUC_CONST; Gcolor3Window *gcolor3_window_new (Gcolor3Application *application, Gcolor3ColorStore *store); void gcolor3_window_destroy (Gcolor3Window *window, gpointer user_data); G_END_DECLS #endif /* __GCOLOR3_WINDOW_H__ */ gcolor3-2.4.0/src/main.c000066400000000000000000000051621372141071500147510ustar00rootroot00000000000000/* Gcolor3 main * * Copyright (C) 2015-2016 Jente Hidskes * * Author: Jente Hidskes * * Modeled after eog's main.c * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "config.h" #include #include #include "gcolor3-application.h" static gboolean _print_version_and_exit (UNUSED const gchar *name, UNUSED const gchar *value, UNUSED gpointer user_data, UNUSED GError **error) { g_print ("%s %s\n", PACKAGE_NAME, PACKAGE_VERSION); exit (EXIT_SUCCESS); return TRUE; } static const GOptionEntry options[] = { { "version", 'v', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, _print_version_and_exit, N_("Show the application’s version"), NULL }, { NULL } }; static gboolean _parse_options (int argc, char **argv) { GOptionContext *context; GError *error = NULL; gboolean succes; context = g_option_context_new (_("— pick a color from the picker or the screen")); g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE); /* This initialises GTK during parsing. */ g_option_context_add_group (context, gtk_get_option_group (FALSE)); succes = g_option_context_parse (context, &argc, &argv, &error); g_option_context_free (context); if (!succes) { gchar *help; help = g_strdup_printf (_("Run “%s --help” to see a full " "list of available command line " "options"), argv[0]); g_printerr ("%s\n%s\n", error->message, help); g_clear_error (&error); g_free (help); return FALSE; } return TRUE; } int main (int argc, char **argv) { Gcolor3Application *application; int status; bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); if (!_parse_options (argc, argv)) { return EXIT_FAILURE; } application = gcolor3_application_new (); status = g_application_run (G_APPLICATION (application), argc, argv); g_object_unref (application); return status; } gcolor3-2.4.0/src/meson.build000066400000000000000000000017761372141071500160320ustar00rootroot00000000000000headers = [ 'gcolor3-application.h', 'gcolor3-color-item.h', 'gcolor3-color-row.h', 'gcolor3-color-selection.h', 'gcolor3-color-store.h', 'gcolor3-hsv.h', 'gcolor3-window.h', 'utils.h' ] sources = [ 'gcolor3-application.c', 'gcolor3-color-item.c', 'gcolor3-color-row.c', 'gcolor3-color-selection.c', 'gcolor3-color-store.c', 'gcolor3-hsv.c', 'gcolor3-window.c', 'main.c', 'utils.c' ] sources += gnome.compile_resources( 'gcolor3-resources', join_paths(meson.source_root(), 'data', 'gcolor3.gresource.xml'), source_dir: join_paths(meson.source_root(), 'data'), c_name: 'gcolor3' ) sources += gnome.genmarshal( 'gcolor3-marshalers', sources: join_paths(meson.source_root(), 'data', 'gcolor3-marshalers.list'), prefix: '_gcolor3_marshal' ) executable( meson.project_name(), sources + headers, include_directories: [ include_directories('../data', '..') ], dependencies: [ dep_gtk, dep_libportal, dep_lm ], install: true, install_dir: bindir ) gcolor3-2.4.0/src/utils.c000066400000000000000000000025101372141071500151570ustar00rootroot00000000000000/* Utilities * * Copyright (C) 2018 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "config.h" #include #include #include #include "utils.h" inline double scale_round (double val, double factor) { val = floor (val * factor + 0.5); val = MAX (val, 0); val = MIN (val, factor); return val; } inline gchar * hex_value (GdkRGBA *color) { return g_strdup_printf ("#%.2x%.2x%.2x", (unsigned int) (scale_round (color->red, 255)), (unsigned int) (scale_round (color->green, 255)), (unsigned int) (scale_round (color->blue, 255))); } gcolor3-2.4.0/src/utils.h000066400000000000000000000020251372141071500151650ustar00rootroot00000000000000/* Utilities * * Copyright (C) 2018 Jente Hidskes * * Author: Jente Hidskes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __UTILS_H__ #define __UTILS_H__ #include #include G_BEGIN_DECLS double scale_round (double val, double factor); gchar *hex_value (GdkRGBA *color); G_END_DECLS #endif /* __UTILS_H__ */ gcolor3-2.4.0/subprojects/000077500000000000000000000000001372141071500154315ustar00rootroot00000000000000gcolor3-2.4.0/subprojects/libportal.wrap000066400000000000000000000001431372141071500203120ustar00rootroot00000000000000[wrap-git] directory=libportal url=https://github.com/flatpak/libportal.git revision=origin/master