/*
* Copyright 2010 Inalogic Inc.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License version 3, as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranties of
* MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the applicable version of the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of both the GNU Lesser General Public
* License version 3 along with this program. If not, see
*
*
* Authored by: Jay Taoko
*
*/
#ifndef MOUSEAREACTRL_H
#define MOUSEAREACTRL_H
#include "EditTextBox.h"
#include "Layout.h"
#include "HLayout.h"
#include "VLayout.h"
namespace nux
{
//replace MouseAreaCtrl with GfxViewCtrl
class MouseAreaCtrl: public View
{
public:
MouseAreaCtrl (NUX_FILE_LINE_PROTO);
~MouseAreaCtrl();
virtual long ProcessEvent (IEvent &ievent, long TraverseInfo, long ProcessEventInfo);
virtual void Draw (GraphicsEngine &GfxContext, bool force_draw);
virtual void DrawContent (GraphicsEngine &GfxContext, bool force_draw);
virtual void PostDraw (GraphicsEngine &GfxContext, bool force_draw);
int getAreaPosY();
int getAreaPosX();
int getAreaWidth();
int getAreaHeight();
/////////////////
// EMITERS //
/////////////////
void MouseDown (int x, int y, unsigned long button_flags, unsigned long key_flags);
void MouseUp (int x, int y, unsigned long button_flags, unsigned long key_flags);
void MouseDrag (int x, int y, int dx, int dy, unsigned long button_flags, unsigned long key_flags);
/////////////////
// SIGNALS //
/////////////////
sigc::signal sigMouseDown;
sigc::signal sigMouseUp;
sigc::signal sigMouseDrag;
sigc::signal sigDraw;
private:
VLayout *m_vlayout;
CoreArea *m_Area;
public:
virtual void SetGeometry (const Geometry &geo)
{
Area::SetGeometry (geo);
ComputeChildLayout();
}
};
}
#endif // MOUSEAREACTRL_H