Skip to content
/ clip Public
forked from dacap/clip

Cross-platform C++ library to copy/paste clipboard content

License

Notifications You must be signed in to change notification settings

gbbasic/clip

This branch is 1 commit behind dacap/clip:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a1a5fd1 · Jan 26, 2025
Jan 26, 2025
Apr 30, 2024
Mar 5, 2024
Jan 26, 2025
Mar 5, 2021
Mar 5, 2024
Jan 26, 2025
Apr 30, 2024
Apr 30, 2024
Apr 11, 2024
Apr 30, 2024
Jan 26, 2025
Apr 12, 2024
Apr 12, 2024
May 6, 2024
Apr 11, 2024
May 13, 2024
Apr 12, 2024
May 6, 2024
May 6, 2024
Mar 5, 2024
Mar 22, 2021
Mar 10, 2022

Repository files navigation

Clip Library

Copyright (c) 2015-2024 David Capello

build MIT Licensed

Library to copy/retrieve content to/from the clipboard/pasteboard.

Features

Available features on Windows, macOS, and Linux (X11):

  • Copy/paste UTF-8 text.
  • Copy/paste user-defined data.
  • Copy/paste RGB/RGBA images. This library use non-premultiplied alpha RGB values.

Example

#include "clip.h"
#include <iostream>

int main() {
  clip::set_text("Hello World");

  std::string value;
  clip::get_text(value);
  std::cout << value << "\n";
}

User-defined clipboard formats

#include "clip.h"

int main() {
  clip::format my_format =
    clip::register_format("com.appname.FormatName");

  int value = 32;
  std::string str = "Alternative text for value 32";

  clip::lock l;
  l.clear();
  l.set_data(clip::text_format(), str.c_str(), str.size());
  l.set_data(my_format, (const char*)&value, sizeof(int));
}

Platform specific details

  • If two versions of your application (32-bit and 64-bit) can run at at the same time, remember to avoid storing data types that could change depending on the platform (e.g. size_t) in your custom format data.
  • Windows:
  • Linux:
    • To be able to copy/paste on Linux you need libx11-dev/libX11-devel package.
    • To copy/paste images you will need libpng-dev/libpng-devel package.

Compilation Flags

  • CLIP_ENABLE_IMAGE: Enables the support to copy/paste images.
  • CLIP_ENABLE_LIST_FORMATS (only for Windows): Enables the clip::lock::list_formats() API function and the list_clip_formats example.
  • CLIP_EXAMPLES: Compile examples.
  • CLIP_TESTS: Compile tests.
  • CLIP_X11_WITH_PNG (only for Linux/X11): Enables support to copy/paste images using the libpng library on Linux.

Who is using this library?

Check the wiki to know what projects are using the clip library.

About

Cross-platform C++ library to copy/paste clipboard content

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 86.6%
  • Objective-C++ 9.9%
  • CMake 3.1%
  • C 0.4%