| 1 | ///////////////////////////////////////////////////////////////////////////// |
| 2 | // Name: dcscreen.h |
| 3 | // Purpose: interface of wxScreenDC |
| 4 | // Author: wxWidgets team |
| 5 | // RCS-ID: $Id$ |
| 6 | // Licence: wxWindows license |
| 7 | ///////////////////////////////////////////////////////////////////////////// |
| 8 | |
| 9 | /** |
| 10 | @class wxScreenDC |
| 11 | |
| 12 | A wxScreenDC can be used to paint on the screen. This should normally be |
| 13 | constructed as a temporary stack object; don't store a wxScreenDC object. |
| 14 | |
| 15 | @library{wxcore} |
| 16 | @category{dc} |
| 17 | |
| 18 | @see wxDC, wxMemoryDC, wxPaintDC, wxClientDC, wxWindowDC |
| 19 | */ |
| 20 | class wxScreenDC : public wxDC |
| 21 | { |
| 22 | public: |
| 23 | /** |
| 24 | Constructor. |
| 25 | */ |
| 26 | wxScreenDC(); |
| 27 | |
| 28 | /** |
| 29 | Use this in conjunction with StartDrawingOnTop(). |
| 30 | |
| 31 | This function destroys the temporary window created to implement on-top |
| 32 | drawing (X only). |
| 33 | */ |
| 34 | static bool EndDrawingOnTop(); |
| 35 | |
| 36 | /** |
| 37 | Use this in conjunction with EndDrawingOnTop() to ensure that drawing |
| 38 | to the screen occurs on top of existing windows. Without this, some |
| 39 | window systems (such as X) only allow drawing to take place underneath |
| 40 | other windows. |
| 41 | |
| 42 | This version of StartDrawingOnTop() is used to specify that the area |
| 43 | that will be drawn on coincides with the given window. It is |
| 44 | recommended that an area of the screen is specified with |
| 45 | StartDrawingOnTop(wxRect*) because with large regions, flickering |
| 46 | effects are noticeable when destroying the temporary transparent window |
| 47 | used to implement this feature. |
| 48 | |
| 49 | You might use this function when implementing a drag feature, for |
| 50 | example as in the wxSplitterWindow implementation. |
| 51 | |
| 52 | @remarks This function is probably obsolete since the X implementations |
| 53 | allow drawing directly on the screen now. However, the fact |
| 54 | that this function allows the screen to be refreshed |
| 55 | afterwards, may be useful to some applications. |
| 56 | */ |
| 57 | static bool StartDrawingOnTop(wxWindow* window); |
| 58 | /** |
| 59 | Use this in conjunction with EndDrawingOnTop() to ensure that drawing |
| 60 | to the screen occurs on top of existing windows. Without this, some |
| 61 | window systems (such as X) only allow drawing to take place underneath |
| 62 | other windows. |
| 63 | |
| 64 | This version of StartDrawingOnTop() is used to specify an area of the |
| 65 | screen which is to be drawn on. If @NULL is passed, the whole screen is |
| 66 | available. It is recommended that an area of the screen is specified |
| 67 | with this function rather than with StartDrawingOnTop(wxWindow*), |
| 68 | because with large regions, flickering effects are noticeable when |
| 69 | destroying the temporary transparent window used to implement this |
| 70 | feature. |
| 71 | |
| 72 | You might use this function when implementing a drag feature, for |
| 73 | example as in the wxSplitterWindow implementation. |
| 74 | |
| 75 | @remarks This function is probably obsolete since the X implementations |
| 76 | allow drawing directly on the screen now. However, the fact |
| 77 | that this function allows the screen to be refreshed |
| 78 | afterwards, may be useful to some applications. |
| 79 | */ |
| 80 | static bool StartDrawingOnTop(wxRect* rect = NULL); |
| 81 | }; |
| 82 | |