summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/clipboard.cxx32
1 files changed, 17 insertions, 15 deletions
diff --git a/examples/clipboard.cxx b/examples/clipboard.cxx
index c75705875..6518ff308 100644
--- a/examples/clipboard.cxx
+++ b/examples/clipboard.cxx
@@ -55,11 +55,13 @@ public:
}
fl_pop_clip();
fl_pop_clip();
- }
+ }
draw_label(); // draw the box image
}
} *chess_obj;
+#define TAB_COLOR FL_DARK3
+
class clipboard_viewer : public Fl_Tabs { // use tabs to display as appropriate the image or textual content of the clipboard
public:
clipboard_viewer(int x, int y, int w, int h) : Fl_Tabs(x,y,w,h) {};
@@ -80,11 +82,11 @@ public:
if (format && format < CF_MAX) { sprintf(p, " %d",format); p += strlen(p); }
}
HANDLE h;
- if (h = GetClipboardData(CF_DIB)) {
+ if ((h = GetClipboardData(CF_DIB))) {
LPBITMAPINFO lpBI = (LPBITMAPINFO)GlobalLock(h);
sprintf(p, " biBitCount=%d biCompression=%d biClrUsed=%d",
- lpBI->bmiHeader.biBitCount, lpBI->bmiHeader.biCompression, lpBI->bmiHeader.biClrUsed);
- }
+ lpBI->bmiHeader.biBitCount, (int)lpBI->bmiHeader.biCompression, (int)lpBI->bmiHeader.biClrUsed);
+ }
CloseClipboard();
#endif
float scale_x = (float)im->w() / image_box->w(); // rescale the image if larger than the display box
@@ -95,21 +97,21 @@ public:
Fl_Image *im2 = im->copy(im->w()/scale, im->h()/scale);
delete im;
im = im2;
- }
+ }
Fl_Image *oldim = image_box->image();
if (oldim) delete oldim;
image_box->image(im); // show the scaled image
image_size->copy_label(title);
value(image_box->parent());
window()->redraw();
- }
+ }
else { // text is being pasted
display->buffer()->text(Fl::event_text());
value(display);
display->redraw();
- }
- return 1;
}
+ return 1;
+ }
} *tabs;
@@ -118,7 +120,7 @@ void cb(Fl_Widget *wid, clipboard_viewer *tabs)
if (Fl::clipboard_contains(Fl::clipboard_image)) {
Fl::paste(*tabs, 1, Fl::clipboard_image); // try to find image in the clipboard
return;
- }
+ }
if (Fl::clipboard_contains(Fl::clipboard_plain_text)) Fl::paste(*tabs, 1, Fl::clipboard_plain_text); // also try to find text
}
@@ -126,7 +128,7 @@ void clip_callback(int source, void *data) { // called after clipboard was chang
if ( source == 1 ) cb(NULL, (clipboard_viewer *)data);
}
-int main()
+int main(int argc, char **argv)
{
#if !(defined(__APPLE__) || defined(WIN32))
extern void fl_register_images();
@@ -139,15 +141,15 @@ int main()
image_box = new chess(5, 30, 490, 450);
image_size = new Fl_Box(FL_NO_BOX, 5, 485, 490, 10, 0);
g->end();
- g->selection_color(FL_INACTIVE_COLOR);
-
+ g->selection_color(TAB_COLOR);
+
Fl_Text_Buffer *buffer = new Fl_Text_Buffer();
display = new Fl_Text_Display(5,30,490, 460, Fl::clipboard_plain_text); // display will display the text form
display->buffer(buffer);
- display->selection_color(FL_INACTIVE_COLOR);
+ display->selection_color(TAB_COLOR);
tabs->end();
tabs->resizable(display);
-
+
Fl_Group *g2 = new Fl_Group( 10,510,200,25);
Fl_Button *refresh = new Fl_Button(10,510,200,25, "Refresh from clipboard");
refresh->callback((Fl_Callback*)cb, tabs);
@@ -155,7 +157,7 @@ int main()
g2->resizable(NULL);
win->end();
win->resizable(tabs);
- win->show();
+ win->show(argc,argv);
#if defined(__APPLE__) || defined(WIN32)
clip_callback(1, tabs); // use clipboard content at start
#endif