165 lines
4.5 KiB
C++
165 lines
4.5 KiB
C++
/**
|
|
* @author Edouard DUPIN
|
|
*
|
|
* @copyright 2011, Edouard DUPIN, all right reserved
|
|
*
|
|
* @license BSD v3 (see license file)
|
|
*/
|
|
|
|
#ifndef __EWOL_WIDGET_H__
|
|
#define __EWOL_WIDGET_H__
|
|
|
|
#include <ewol/object/Object.h>
|
|
#include <ewol/Dimension.h>
|
|
'dfgd\'fg'
|
|
'e' sdfsdf '\e'
|
|
|
|
"dqf\"gsdfg" // \\ \n "
|
|
// TODO : sqdkfjsdldkqfj
|
|
|
|
|
|
example_param
|
|
|
|
=_param
|
|
|
|
_
|
|
_s
|
|
_3RTDRsdfqsd
|
|
|
|
m_
|
|
|
|
m_d6
|
|
|
|
|
|
namespace ewol {
|
|
class Widget;
|
|
namespace widget {
|
|
class Manager;
|
|
class Windows;
|
|
};
|
|
};
|
|
#include <etk/types.h>
|
|
#include <vector>
|
|
#include <etk/math/Vector2D.h>
|
|
#include <ewol/debug.h>
|
|
#include <ewol/context/clipBoard.h>
|
|
#include <ewol/key/key.h>
|
|
#include <ewol/context/cursor.h>
|
|
#include <ewol/event/Input.h>
|
|
#include <ewol/event/Entry.h>
|
|
#include <ewol/event/Time.h>
|
|
|
|
#define ULTIMATE_MAX_SIZE (99999999)
|
|
|
|
namespace ewol {
|
|
#if 0
|
|
/**
|
|
* @not-in-doc
|
|
*/
|
|
#endif
|
|
class DrawProperty{
|
|
/*
|
|
/--> m_windowsSize
|
|
*--------------------------------------------------*
|
|
| g |
|
|
| |
|
|
| m_size |
|
|
| / |
|
|
| o-------------------o |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| o-------------------o |
|
|
| / |
|
|
| m_origin |
|
|
| |
|
|
*--------------------------------------------------*
|
|
/
|
|
(0,0)
|
|
*/
|
|
public :
|
|
ivec2 m_windowsSize; //!< Windows compleate size
|
|
ivec2 m_origin; //!< Windows clipping upper widget (can not be <0)
|
|
ivec2 m_size; //!< Windows clipping upper widget (can not be <0 and >m_windowsSize)
|
|
void limit(const vec2& _origin, const vec2& _size);
|
|
};
|
|
std::ostream& operator <<(std::ostream& _os, const ewol::DrawProperty& _obj);
|
|
/**
|
|
* @brief Gravity of the widget property
|
|
* @not-in-doc
|
|
*/
|
|
enum gravity {
|
|
gravityCenter=0x00, //!< gravity is in certer
|
|
gravityTopLeft=0x05,
|
|
gravityTop=0x01,
|
|
gravityTopRight=0x03,
|
|
gravityRight=0x02,
|
|
gravityButtomRight=0x06,
|
|
gravityButtom=0x04,
|
|
gravityButtomLeft=0x0C,
|
|
gravityLeft=0x08,
|
|
};
|
|
std::ostream& operator <<(std::ostream& _os, const enum ewol::gravity _obj);
|
|
std::string gravityToString(const enum ewol::gravity _obj);
|
|
enum ewol::gravity stringToGravity(const std::string& _obj);
|
|
/**
|
|
* @not-in-doc
|
|
*/
|
|
class EventShortCut {
|
|
public:
|
|
bool broadcastEvent; //!< if it is true, then the message is sent to all the system
|
|
const char* generateEventId; //!< Local generated event
|
|
std::string eventData; //!< data link with the event
|
|
ewol::key::Special specialKey; //!< special board key
|
|
char32_t unicodeValue; //!< 0 if not used
|
|
enum ewol::key::keyboard keyboardMoveValue; //!< ewol::EVENT_KB_MOVE_TYPE_NONE if not used
|
|
EventShortCut(void) {
|
|
broadcastEvent = false;
|
|
generateEventId = NULL;
|
|
eventData = "";
|
|
unicodeValue = 0;
|
|
keyboardMoveValue = ewol::key::keyboardUnknow;
|
|
};
|
|
~EventShortCut(void) { };
|
|
};
|
|
/**
|
|
* @brief Widget class is the main widget interface, it hase some generic properties:
|
|
* :** known his parent
|
|
* :** Can be display at a special position with a special scale
|
|
* :** Can get focus
|
|
* :** Receive Event (keyboard / mouse / ...)
|
|
*
|
|
*/
|
|
class Widget : public ewol::Object {
|
|
public:
|
|
// Config list of properties
|
|
static const char* const configFill;
|
|
static const char* const configExpand;
|
|
static const char* const configHide;
|
|
static const char* const configFocus;
|
|
static const char* const configMinSize;
|
|
static const char* const configMaxSize;
|
|
static const char* const configGravity;
|
|
public:
|
|
/**
|
|
* @brief Constructor of the widget classes
|
|
* @return (no execption generated (not managed in embended platform))
|
|
*/
|
|
Widget(void);
|
|
/**
|
|
* @brief Destructor of the widget classes
|
|
*/
|
|
virtual ~Widget(void) {
|
|
vec2 plop = vec2(15.2, 56.6f);
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
#endif
|