ultimatepp/uppdev/ChildMouseEventTest/main.cpp
cxl 351994a6cc Adding uppdev....
git-svn-id: svn://ultimatepp.org/upp/trunk@328 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2008-08-15 08:36:24 +00:00

72 lines
1.4 KiB
C++

#include <CtrlLib/CtrlLib.h>
using namespace Upp;
LineEdit logger;
struct MyCtrl : Ctrl
{
DropList lst;
Button btn;
void Log(const char *fmt, ...)
{
static int pos = 0;
char buffer[1024];
va_list argptr;
va_start(argptr, fmt);
int l = vsprintf(buffer, fmt, argptr);
va_end(argptr);
logger.Insert(pos, buffer);
pos += l;
logger.Insert(pos, "\n");
pos++;
logger.SetCursor(pos);
}
virtual void Paint(Draw &w)
{
w.DrawRect(GetSize(), Green());
}
MyCtrl()
{
Add(lst.LeftPos(10, 150).TopPos(10, 19));
Add(btn.RightPos(50, 150).TopPos(10, 40));
lst.Add("Item 0").Add("Item 1").Add("Item 2");
}
virtual void ChildMouseEvent(Ctrl *child, int event, Point p, int zdelta, dword keyflags)
{
if(event == CURSORIMAGE || event == MOUSEMOVE)
return;
Log("event :%x child: %x", event, child);
return Ctrl::ChildMouseEvent(child, event, p, zdelta, keyflags);
}
virtual void ChildFrameMouseEvent(Ctrl *child, int event, Point p, int zdelta, dword keyflags)
{
if(event == CURSORIMAGE || event == MOUSEMOVE)
return;
Log("frameevent :%x child: %x", event, child);
return Ctrl::ChildMouseEvent(child, event, p, zdelta, keyflags);
}
};
struct App : TopWindow
{
MyCtrl myctrl;
App()
{
Add(myctrl.HSizePos().TopPos(0, 200));
Add(logger.HSizePos().VSizePos(200, 0));
}
};
GUI_APP_MAIN
{
App().Run();
}