summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2014-09-17 11:51:56 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2014-09-17 11:51:56 +0000
commit49e21120b64ad1f73192da228a01cff7917b923c (patch)
tree69bdc5e723a735e27909e8bd5fa300e378f1d314 /examples
parent9dae6e96b2db941ef4d617d71173e72124fd3aa5 (diff)
Improve clipboard example program, fix compilation warnings.
Use show(argc,argv) to enable command line arguments and colors, fix indentation, Windows compilation warnings, and change tab selection color, which was too dark on my Win7 system (low contrast with tab labels). I also added #define TAB_COLOR to make changing the tab selection colors easier, if needed. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10318 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'examples')
-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