Ticket #3813: screenshot-clipboard-wim.patch

File screenshot-clipboard-wim.patch, 1.4 KB (added by Wim, 14 years ago)

This patch adds a "Copy to clipboard" button to the application.

  • src/apps/screenshot/ScreenshotWindow.cpp

     
    2626#include <CardLayout.h>
    2727#include <Catalog.h>
    2828#include <CheckBox.h>
     29#include <Clipboard.h>
    2930#include <Directory.h>
    3031#include <Entry.h>
    3132#include <File.h>
     
    295296            fBackToSave->SetEnabled(true);
    296297            break;
    297298        }
     299       
     300        case B_COPY:
     301        {
     302            if (be_clipboard->Lock()) {
     303                be_clipboard->Clear();
     304                BMessage* clipboard = be_clipboard->Data();
     305                if (clipboard) {
     306                    BMessage* bitmap = new BMessage();
     307                    fScreenshot->Archive(bitmap);
     308                    clipboard->AddMessage("image/bitmap", bitmap);
     309                    be_clipboard->Commit();
     310                }
     311                be_clipboard->Unlock();
     312            }
     313            break;
     314        }
    298315
    299316        default:
    300317            BWindow::MessageReceived(message);
     
    460477        .Add(menuField->CreateLabelLayoutItem(), 0, 1)
    461478        .Add(menuField->CreateMenuBarLayoutItem(), 1, 1)
    462479        .Add(menuField2->CreateLabelLayoutItem(), 0, 2)
    463         .Add(menuField2->CreateMenuBarLayoutItem(), 1, 2);
     480        .Add(menuField2->CreateMenuBarLayoutItem(), 1, 2)
     481        .Add(new BButton("", TR("Copy to clipboard"),
     482            new BMessage(B_COPY)), 1, 3);
     483       
    464484    gridLayout->SetMinColumnWidth(1,
    465485        menuField->StringWidth("SomethingLongHere"));
    466486