mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 22:02:49 -06:00
72 lines
1.4 KiB
C++
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();
|
|
}
|
|
|