Popularity
1.4
Declining
Activity
5.0
-
16
5
5

Description

Cross-platform library to copy/retrieve content (text, image, custom data) to/from the clipboard/pasteboard.

Code Quality Rank: L3
Programming language: C++
License: MIT License
Tags: CLI     GUI     Image Processing     Serialization    

Clip Library alternatives and similar libraries

Based on the "GUI" category.
Alternatively, view Clip Library alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Clip Library or a related project?

Add another 'GUI' Library

README

Clip Library

Copyright (c) 2015-2021 David Capello

build [MIT Licensed](LICENSE.txt)

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;

  clip::lock l;
  l.clear();
  l.set_data(clip::text_format(), "Alternative text for value 32");
  l.set_data(my_format, &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.

Who is using this library?

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


*Note that all licence references and agreements mentioned in the Clip Library README section above are relevant to that project's source code only.