cppAdaptive1
view release on metacpan or search on metacpan
src/dlib/gui_core/gui_core_kernel_abstract.h view on Meta::CPAN
// Copyright (C) 2005 Davis E. King (davis@dlib.net), Keita Mochizuki
// License: Boost Software License See LICENSE.txt for the full license.
#undef DLIB_GUI_CORE_KERNEl_ABSTRACT_
#ifdef DLIB_GUI_CORE_KERNEl_ABSTRACT_
#include <string>
#include "../algs.h"
#include "../geometry/rectangle_abstract.h"
#include "../unicode/unicode_abstract.h"
namespace dlib
{
/*!
OVERVIEW:
This is a set of objects and functions which provide a very basic
framework for manipulating windows. It is intended to provide a
portable interface which can be used to build a more complex windowing
toolkit.
EXCEPTIONS
Do not let an exception leave any of the base_window event handlers.
The results of doing so are undefined.
THREAD SAFETY
Event Handlers
All event handlers are executed in a special event handling thread.
This means that you must not do anything that will take a long time or
block while in an event handler. Doing so will freeze all event
processing.
Also, don't rely on get_thread_id() always returning the same ID from
inside event handlers.
canvas
Never access a canvas object outside of the paint() callback
that supplied it. Only access a canvas object from the event
handling thread. After the paint() event handler has returned do
not access that canvas object again.
base_window
All methods for this class are thread safe. You may call them
from any thread and do not need to serialize access.
!*/
// ----------------------------------------------------------------------------------------
void put_on_clipboard (
const std::string& str
);
/*!
ensures
- posts the contents of str to the system clipboard
throws
- std::bad_alloc
- dlib::gui_error
- dlib::thread_error
!*/
// overloads for wide character strings
void put_on_clipboard (const std::wstring& str);
void put_on_clipboard (const dlib::ustring& str);
// ----------------------------------------------------------------------------------------
void get_from_clipboard (
std::string& str
);
/*!
ensures
- if (there is string data on the system clipboard) then
- #str == the data from the clipboard
- else
- #str == ""
throws
- std::bad_alloc
- dlib::gui_error
- dlib::thread_error
!*/
// overloads for wide character strings
void get_from_clipboard (std::wtring& str);
void get_from_clipboard (dlib::utring& str);
// ----------------------------------------------------------------------------------------
class canvas : public rectangle
{
/*!
POINTERS AND REFERENCES TO INTERNAL DATA
All functions of this object may invalidate pointers and references
to internal data.
INITIAL VALUE
The initial value of each pixel is undefined.
is_empty() == false
WHAT THIS OBJECT REPRESENTS
This object represents a rectangular area of a window that you
can draw on.
Each pixel can be accessed with the following syntax:
canvas_instance[y][x].red == the red value for this pixel
canvas_instance[y][x].blue == the blue value for this pixel
canvas_instance[y][x].green == the green value for this pixel
The origin, i.e. (0,0), of the x,y coordinate plane of the canvas is in
the upper left corner of the canvas. Note that the upper left corner
of the canvas appears at the point (left(),top()) in its window.
!*/
public:
struct pixel
{
/*!
WHAT THIS OBJECT REPRESENTS
This object represents a single pixel. Each pixel's value
ranges from 0 to 255 with 0 indicating that the color is not
present in the pixel at all and 255 indicating that the color
is present in the pixel with maximum intensity.
Note that the structure, order, and size of of this struct are
implementation dependent. It will always contain fields called
red, green, and blue but they may not be in that order and there
may be padding.
Also note that pixel_traits<> is defined for this pixel type,
thus you can use it in assign_pixel() calls.
!*/
unsigned char red;
unsigned char green;
unsigned char blue;
};
pixel* operator[] (
unsigned long row
) const;
/*!
requires
- row < height()
( run in 0.770 second using v1.01-cache-2.11-cpan-81fc1098f69 )