Home » U++ Library support » ArrayCtrl, HeaderCtrl & GridCtrl » GridCtrl: custom ButtonOption inside a cell
Re: GridCtrl: custom ButtonOption inside a cell [message #43277 is a reply to message #43271] |
Sat, 21 June 2014 22:28   |
Sender Ghost
Messages: 301 Registered: November 2008
|
Senior Member |
|
|
Hello, Luigi.
forlano wrote on Sat, 21 June 2014 08:46It works but I do not see where to use
.SetImage()
The One::Create() method returns reference to created object of specified type. For example, in your case:
void MakeButtonOption(One<Ctrl>& ctrl)
{
ButtonOption& option = ctrl.Create<ButtonOption>();
option.SetImage(Null, CtrlImg::check());
option.WantFocus();
}
I created following example to demonstrate this:

Toggle source code#include <GridCtrl/GridCtrl.h>
using namespace Upp;
void MakeButtonOption(One<Ctrl>& ctrl)
{
ButtonOption& option = ctrl.Create<ButtonOption>();
option.SetImage(Null, CtrlImg::check());
option.WantFocus();
}
class App : public TopWindow {
private:
GridCtrl grid;
public:
typedef App CLASSNAME;
App();
void FillData(int count = 0x100);
};
App::App()
{
Title("GridCtrl with Option and ButtonOption");
Sizeable().Zoomable();
const Size sz(400, 240);
SetMinSize(sz); SetRect(sz);
grid.Chameleon();
grid.AddColumn("Option").Option().Default(true);
grid.AddColumn("ButtonOption").Ctrls(MakeButtonOption).Default(true);
Add(grid.VSizePosZ(2, 2).HSizePosZ(2, 2));
}
void App::FillData(int count)
{
if (grid.GetCount())
grid.Clear();
grid.Ready(false);
for (int i = 0; i < count; ++i) {
const bool v = i % 2 == 0;
grid.Add(v, v);
}
grid.Ready(true);
}
GUI_APP_MAIN
{
App app;
app.FillData();
app.Run();
}
[Updated on: Sat, 21 June 2014 22:42] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Mon Aug 25 20:18:34 CEST 2025
Total time taken to generate the page: 0.06186 seconds
|