From bf19362179544fe7086e3655c5a5b16a9c619034 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Fri, 27 Jul 2018 09:05:12 +0000 Subject: [PATCH] Add missing Fl_Cairo_Window constructors (STR #3160). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12993 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- CHANGES | 2 ++ FL/Fl_Cairo_Window.H | 17 +++++++++++------ test/cairo_test.cxx | 14 +++++++------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGES b/CHANGES index 7a8fa19c0..f811e28c9 100644 --- a/CHANGES +++ b/CHANGES @@ -102,6 +102,8 @@ Changes in FLTK 1.4.0 Released: ??? ?? 2017 Other Improvements - (add new items here) + - Fl_Cairo_Window constructors are now compatible with Fl_Double_Window + constructors - fixed missing constructors (STR #3160). - The include file for platform specific functions and definitions (FL/x.H) has been replaced with FL/platform.H. FL/x.H is deprecated but still available for backwards compatibility (STR #3435). diff --git a/FL/Fl_Cairo_Window.H b/FL/Fl_Cairo_Window.H index 8f8dac6cc..ec2d74bb4 100644 --- a/FL/Fl_Cairo_Window.H +++ b/FL/Fl_Cairo_Window.H @@ -3,7 +3,7 @@ // // Main header file for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2018 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -17,7 +17,7 @@ // /* \file - Fl_Cairo_Window Handling transparently a fltk window incorporte a cairo draw callback. + Fl_Cairo_Window Handling transparently a FLTK window incorporating a cairo draw callback. */ #ifndef FL_CAIRO_WINDOW_H @@ -35,11 +35,13 @@ */ /** - This defines a pre-configured cairo fltk window. + This defines a FLTK window with cairo support. + This class overloads the virtual draw() method for you, so that the only thing you have to do is to provide your cairo code. All cairo context handling is achieved transparently. - \note You can alternatively define your custom cairo fltk window, + + \note You can alternatively define your custom cairo FLTK window, and thus at least override the draw() method to provide custom cairo support. In this case you will probably use Fl::cairo_make_current(Fl_Window*) to attach a context to your window. You should do it only when your window is @@ -48,7 +50,10 @@ class FL_EXPORT Fl_Cairo_Window : public Fl_Double_Window { public: - Fl_Cairo_Window(int w, int h) : Fl_Double_Window(w,h),draw_cb_(0) {} + Fl_Cairo_Window(int W, int H, const char *L = 0) + : Fl_Double_Window(W, H, L), draw_cb_(0) {} + Fl_Cairo_Window(int X, int Y, int W, int H, const char *L = 0) + : Fl_Double_Window(X, Y, W, H, L), draw_cb_(0) {} protected: /** Overloaded to provide cairo callback support */ @@ -67,7 +72,7 @@ public: You must provide a draw callback which will implement your cairo rendering. This method will permit you to set your cairo callback to \p cb. */ - void set_draw_cb(cairo_draw_cb cb){draw_cb_=cb;} + void set_draw_cb(cairo_draw_cb cb) { draw_cb_ = cb; } private: cairo_draw_cb draw_cb_; }; diff --git a/test/cairo_test.cxx b/test/cairo_test.cxx index 71dcf7711..ca6edfeb9 100644 --- a/test/cairo_test.cxx +++ b/test/cairo_test.cxx @@ -138,14 +138,14 @@ int main(int argc, char** argv) { #ifdef AUTOLINK Fl::cairo_autolink_context(true); #endif - Fl_Cairo_Window window(300,300); - - window.resizable(&window); - window.color(FL_WHITE); - window.set_draw_cb(my_cairo_draw_cb); - window.show(argc,argv); + Fl_Cairo_Window window(300, 300, "FLTK loves Cairo"); - return Fl::run(); + window.resizable(&window); + window.color(FL_WHITE); + window.set_draw_cb(my_cairo_draw_cb); + window.show(argc,argv); + + return Fl::run(); } #else #include