mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-22 06:05:33 -06:00
.GridCtrl: property grid improvements
git-svn-id: svn://ultimatepp.org/upp/trunk@2658 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
db1c50226a
commit
65b3e28689
2 changed files with 230 additions and 234 deletions
|
|
@ -75,65 +75,65 @@ GridCtrl::GridCtrl() : holder(*this)
|
||||||
|
|
||||||
oldpos.Clear();
|
oldpos.Clear();
|
||||||
|
|
||||||
indicator = false;
|
indicator = false;
|
||||||
resizing_cols = true;
|
resizing_cols = true;
|
||||||
resizing_rows = true;
|
resizing_rows = true;
|
||||||
resizing_fixed_cols = true;
|
resizing_fixed_cols = true;
|
||||||
resizing_fixed_rows = false;
|
resizing_fixed_rows = false;
|
||||||
resize_paint_mode = 2;
|
resize_paint_mode = 2;
|
||||||
resize_col_mode = 1;
|
resize_col_mode = 1;
|
||||||
resize_row_mode = 0;
|
resize_row_mode = 0;
|
||||||
multi_select = false;
|
multi_select = false;
|
||||||
select_row = true;
|
select_row = true;
|
||||||
moving_cols = false;
|
moving_cols = false;
|
||||||
moving_rows = false;
|
moving_rows = false;
|
||||||
dragging = false;
|
dragging = false;
|
||||||
horz_grid = true;
|
horz_grid = true;
|
||||||
vert_grid = true;
|
vert_grid = true;
|
||||||
draw_last_horz_line = true;
|
draw_last_horz_line = true;
|
||||||
draw_last_vert_line = true;
|
draw_last_vert_line = true;
|
||||||
sorting = false;
|
sorting = false;
|
||||||
live_cursor = false;
|
live_cursor = false;
|
||||||
row_changing = true;
|
row_changing = true;
|
||||||
edit_mode = GE_ROW;
|
edit_mode = GE_ROW;
|
||||||
one_click_edit = false;
|
one_click_edit = false;
|
||||||
coloringMode = 0;
|
coloring_mode = 0;
|
||||||
ctrls = false;
|
isedit = false;
|
||||||
genr_ctrls = 0;
|
genr_ctrls = 0;
|
||||||
edit_ctrls = false;
|
edit_ctrls = false;
|
||||||
sorting = true;
|
sorting = true;
|
||||||
sorting_multicol = true;
|
sorting_multicol = true;
|
||||||
header = true;
|
header = true;
|
||||||
|
|
||||||
cancel_update_cell = false;
|
cancel_update_cell = false;
|
||||||
cancel_update = false;
|
cancel_update = false;
|
||||||
cancel_insert = false;
|
cancel_insert = false;
|
||||||
cancel_remove = false;
|
cancel_remove = false;
|
||||||
cancel_accept = false;
|
cancel_accept = false;
|
||||||
cancel_duplicate = false;
|
cancel_duplicate = false;
|
||||||
cancel_cursor = false;
|
cancel_cursor = false;
|
||||||
cancel_move = false;
|
cancel_move = false;
|
||||||
|
|
||||||
inserting = false;
|
inserting = false;
|
||||||
appending = false;
|
appending = false;
|
||||||
duplicating = false;
|
duplicating = false;
|
||||||
removing = false;
|
removing = false;
|
||||||
accepting = false;
|
accepting = false;
|
||||||
canceling = false;
|
canceling = false;
|
||||||
moving = false;
|
moving = false;
|
||||||
navigating = false;
|
navigating = false;
|
||||||
searching = false;
|
searching = false;
|
||||||
editing = false;
|
editing = false;
|
||||||
edits_in_new_row = true;
|
edits_in_new_row = true;
|
||||||
closing = false;
|
closing = false;
|
||||||
hiding = false;
|
hiding = false;
|
||||||
clipboard = false;
|
clipboard = false;
|
||||||
extra_paste = true;
|
extra_paste = true;
|
||||||
fixed_paste = false;
|
fixed_paste = false;
|
||||||
copy_column_names = false;
|
copy_column_names = false;
|
||||||
draw_focus = false;
|
draw_focus = false;
|
||||||
cancel_all = false;
|
cancel_all = false;
|
||||||
ask_remove = false;
|
ask_remove = false;
|
||||||
|
|
||||||
search_hide = true;
|
search_hide = true;
|
||||||
search_highlight = true;
|
search_highlight = true;
|
||||||
|
|
@ -143,26 +143,27 @@ GridCtrl::GridCtrl() : holder(*this)
|
||||||
search_move_cursor = true;
|
search_move_cursor = true;
|
||||||
search_display = true;
|
search_display = true;
|
||||||
|
|
||||||
row_order = false;
|
row_order = false;
|
||||||
row_data = false;
|
row_data = false;
|
||||||
|
|
||||||
reject_null_row = true;
|
reject_null_row = true;
|
||||||
tab_changes_row = true;
|
tab_changes_row = true;
|
||||||
tab_adds_row = false;
|
tab_adds_row = false;
|
||||||
enter_like_tab = false;
|
enter_like_tab = false;
|
||||||
keep_last_row = false;
|
keep_last_row = false;
|
||||||
remove_hides = false;
|
remove_hides = false;
|
||||||
full_col_resizing = true;
|
full_col_resizing = true;
|
||||||
full_row_resizing = false;
|
full_row_resizing = false;
|
||||||
chameleon = false;
|
chameleon = false;
|
||||||
summary_row = false;
|
summary_row = false;
|
||||||
update_summary = true;
|
update_summary = true;
|
||||||
popups = true;
|
popups = true;
|
||||||
|
focus_lost_accepting = false;
|
||||||
|
|
||||||
mouse_move = false;
|
mouse_move = false;
|
||||||
row_modified = 0;
|
row_modified = 0;
|
||||||
|
|
||||||
valid_cursor = false;
|
valid_cursor = false;
|
||||||
|
|
||||||
curpos.x = curpos.y = -1;
|
curpos.x = curpos.y = -1;
|
||||||
oldcur.x = oldcur.y = -1;
|
oldcur.x = oldcur.y = -1;
|
||||||
|
|
@ -290,18 +291,18 @@ void GridCtrl::StdToolBar(Bar &bar)
|
||||||
bar.Add(c, t_("Insert "), GridImg::Insert(), StdInsert);
|
bar.Add(c, t_("Insert "), GridImg::Insert(), StdInsert);
|
||||||
|
|
||||||
if(duplicating)
|
if(duplicating)
|
||||||
bar.Add(d && !ctrls, t_("Duplicate"), GridImg::Duplicate(), StdDuplicate);
|
bar.Add(d && !isedit, t_("Duplicate"), GridImg::Duplicate(), StdDuplicate);
|
||||||
|
|
||||||
if(removing)
|
if(removing)
|
||||||
bar.Add(d && (keep_last_row ? GetCount() > 1 : true), t_("Delete "), GridImg::Delete(), StdRemove);
|
bar.Add(d && (keep_last_row ? GetCount() > 1 : true), t_("Delete "), GridImg::Delete(), StdRemove);
|
||||||
|
|
||||||
if(editing)
|
if(editing)
|
||||||
{
|
{
|
||||||
bar.Add(!ctrls && d, t_("Edit"), GridImg::Modify(), StdEdit);
|
bar.Add(!isedit && d, t_("Edit"), GridImg::Modify(), StdEdit);
|
||||||
if(accepting)
|
if(accepting)
|
||||||
bar.Add(ctrls, t_("Accept"), GridImg::Commit(), THISBACK(DoEndEdit));
|
bar.Add(isedit, t_("Accept"), GridImg::Commit(), THISBACK(DoEndEdit));
|
||||||
if(canceling)
|
if(canceling)
|
||||||
bar.Add(ctrls, t_("Cancel"), GridImg::Cancel(), THISBACK(DoCancelEdit));
|
bar.Add(isedit, t_("Cancel"), GridImg::Cancel(), THISBACK(DoCancelEdit));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(searching)
|
if(searching)
|
||||||
|
|
@ -526,7 +527,7 @@ void GridCtrl::StdMenuBar(Bar &bar)
|
||||||
|
|
||||||
if(editing)
|
if(editing)
|
||||||
{
|
{
|
||||||
bar.Add(!ctrls && e, t_("Edit"), StdEdit)
|
bar.Add(!isedit && e, t_("Edit"), StdEdit)
|
||||||
.Image(GridImg::Modify())
|
.Image(GridImg::Modify())
|
||||||
.Help(RowFormat(t_("Edit active %s.")))
|
.Help(RowFormat(t_("Edit active %s.")))
|
||||||
.Key(K_ENTER);
|
.Key(K_ENTER);
|
||||||
|
|
@ -1350,7 +1351,7 @@ void GridCtrl::Paint(Draw &w)
|
||||||
ItemRect& vi = vitems[i];
|
ItemRect& vi = vitems[i];
|
||||||
if(vi.hidden) continue;
|
if(vi.hidden) continue;
|
||||||
|
|
||||||
bool even = coloringMode == 2 ? (i - vi.n - fixed_rows) & 1 : false;
|
bool even = coloring_mode == 2 ? (i - vi.n - fixed_rows) & 1 : false;
|
||||||
|
|
||||||
for(j = max(firstCol, fixed_cols); j < total_cols; j++)
|
for(j = max(firstCol, fixed_cols); j < total_cols; j++)
|
||||||
{
|
{
|
||||||
|
|
@ -1376,7 +1377,7 @@ void GridCtrl::Paint(Draw &w)
|
||||||
{
|
{
|
||||||
bool iscur = draw_focus ? (i == curpos.y && j == curpos.x) : false;
|
bool iscur = draw_focus ? (i == curpos.y && j == curpos.x) : false;
|
||||||
|
|
||||||
if(coloringMode == 1)
|
if(coloring_mode == 1)
|
||||||
even = (j - hi.n - fixed_cols) & 1;
|
even = (j - hi.n - fixed_cols) & 1;
|
||||||
|
|
||||||
int id = hi.id;
|
int id = hi.id;
|
||||||
|
|
@ -1391,7 +1392,7 @@ void GridCtrl::Paint(Draw &w)
|
||||||
if(it.ctrl)
|
if(it.ctrl)
|
||||||
style |= GD::NOTEXT;
|
style |= GD::NOTEXT;
|
||||||
|
|
||||||
if(coloringMode > 0)
|
if(coloring_mode > 0)
|
||||||
style |= (even ? GD::EVEN : GD::ODD);
|
style |= (even ? GD::EVEN : GD::ODD);
|
||||||
if(hasfocus)
|
if(hasfocus)
|
||||||
style |= GD::FOCUS;
|
style |= GD::FOCUS;
|
||||||
|
|
@ -2127,8 +2128,8 @@ void GridCtrl::LeftDown(Point p, dword keyflags)
|
||||||
|
|
||||||
WhenLeftClick();
|
WhenLeftClick();
|
||||||
|
|
||||||
if(editing && cs.IsValid() && one_click_edit) //&& IsRowEditable() ?
|
if(editing && one_click_edit && cs.IsValid() ) //&& IsRowEditable() ?
|
||||||
StartEdit(true);
|
StartEdit();
|
||||||
else
|
else
|
||||||
RebuildToolBar();
|
RebuildToolBar();
|
||||||
}
|
}
|
||||||
|
|
@ -2282,7 +2283,7 @@ void GridCtrl::LeftDouble(Point p, dword keyflags)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(editing)
|
if(editing)
|
||||||
StartEdit(true);
|
StartEdit();
|
||||||
|
|
||||||
if(!IsCtrl(curpos))
|
if(!IsCtrl(curpos))
|
||||||
{
|
{
|
||||||
|
|
@ -2371,7 +2372,7 @@ void GridCtrl::Layout()
|
||||||
UpdateSizes();
|
UpdateSizes();
|
||||||
UpdateSb();
|
UpdateSb();
|
||||||
UpdateHolder();
|
UpdateHolder();
|
||||||
UpdateCtrls(UC_CHECK_VIS | UC_SHOW | UC_FOCUS);
|
UpdateCtrls(UC_CHECK_VIS | UC_SHOW);
|
||||||
SyncCtrls();
|
SyncCtrls();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2382,7 +2383,7 @@ void GridCtrl::ChildAction(Ctrl *child, int event)
|
||||||
|
|
||||||
if(child != focused_ctrl)
|
if(child != focused_ctrl)
|
||||||
{
|
{
|
||||||
if(event == LEFTDOWN || event == RIGHTDOWN)
|
if(event == LEFTDOWN || event == RIGHTDOWN || event == MOUSEWHEEL)
|
||||||
{
|
{
|
||||||
//LG(2, "got event :%x child: %x", event, child);
|
//LG(2, "got event :%x child: %x", event, child);
|
||||||
Point cp = GetCtrlPos(child);
|
Point cp = GetCtrlPos(child);
|
||||||
|
|
@ -2390,7 +2391,7 @@ void GridCtrl::ChildAction(Ctrl *child, int event)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
SetCursor0(cp);
|
SetCursor0(cp);
|
||||||
UpdateCtrls(UC_SHOW | UC_FOCUS | UC_CTRLS_OFF);
|
UpdateCtrls(UC_SHOW);
|
||||||
WhenCtrlAction();
|
WhenCtrlAction();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2550,7 +2551,7 @@ void GridCtrl::Scroll()
|
||||||
LG("Scroll (%d, %d)", delta.cx, delta.cy);
|
LG("Scroll (%d, %d)", delta.cx, delta.cy);
|
||||||
|
|
||||||
SyncCtrls();
|
SyncCtrls();
|
||||||
UpdateCtrls(UC_CHECK_VIS | UC_SHOW | UC_SCROLL | UC_FOCUS);
|
UpdateCtrls(UC_CHECK_VIS | UC_SHOW | UC_SCROLL);
|
||||||
|
|
||||||
if(resizeCol || resizeRow)
|
if(resizeCol || resizeRow)
|
||||||
return;
|
return;
|
||||||
|
|
@ -2787,7 +2788,7 @@ Value GridCtrl::Get0(int r, int c) const
|
||||||
|
|
||||||
Ctrl * ctrl = items[r][c].ctrl;
|
Ctrl * ctrl = items[r][c].ctrl;
|
||||||
|
|
||||||
if(!ctrl && /*ctrls &&*/ ctrlid.y == r)
|
if(!ctrl && ctrlid.y == r)
|
||||||
ctrl = edits[c].ctrl;
|
ctrl = edits[c].ctrl;
|
||||||
|
|
||||||
return ctrl ? ctrl->GetData() : items[r][c].val;
|
return ctrl ? ctrl->GetData() : items[r][c].val;
|
||||||
|
|
@ -3325,7 +3326,7 @@ GridCtrl::CurState GridCtrl::SetCursor0(Point p, int opt, int dirx, int diry)
|
||||||
if(newvalid && ctrlmode)
|
if(newvalid && ctrlmode)
|
||||||
{
|
{
|
||||||
Ctrl * ctrl = it.ctrl;
|
Ctrl * ctrl = it.ctrl;
|
||||||
if(!ctrl && ctrls)
|
if(!ctrl && isedit)
|
||||||
ctrl = edits[idx].ctrl;
|
ctrl = edits[idx].ctrl;
|
||||||
|
|
||||||
if(ctrl && it.editable && ctrl->IsEnabled())
|
if(ctrl && it.editable && ctrl->IsEnabled())
|
||||||
|
|
@ -3427,7 +3428,7 @@ GridCtrl::CurState GridCtrl::SetCursor0(Point p, int opt, int dirx, int diry)
|
||||||
cs.accepted = true;
|
cs.accepted = true;
|
||||||
if(hidectrls && (edit_mode == GE_CELL || (edit_mode == GE_ROW && (isnewrow || !newvalid))))
|
if(hidectrls && (edit_mode == GE_CELL || (edit_mode == GE_ROW && (isnewrow || !newvalid))))
|
||||||
{
|
{
|
||||||
UpdateCtrls(UC_HIDE | UC_CTRLS | UC_OLDCUR | UC_FOCUS);
|
UpdateCtrls(UC_HIDE | UC_CTRLS | UC_OLDCUR);
|
||||||
if(!one_click_edit || !newvalid)
|
if(!one_click_edit || !newvalid)
|
||||||
WhenEndEdit();
|
WhenEndEdit();
|
||||||
}
|
}
|
||||||
|
|
@ -4099,9 +4100,7 @@ bool GridCtrl::IsRowEditable(int r)
|
||||||
else
|
else
|
||||||
r += fixed_rows;
|
r += fixed_rows;
|
||||||
|
|
||||||
return vitems[r].editable &&
|
return vitems[r].editable && hitems[curpos.x].editable;
|
||||||
hitems[curpos.x].editable &&
|
|
||||||
(select_row || (!select_row && edits[curid.x].ctrl));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GridCtrl::IsRowClickable(int r /* = -1*/)
|
bool GridCtrl::IsRowClickable(int r /* = -1*/)
|
||||||
|
|
@ -4560,12 +4559,12 @@ bool GridCtrl::CancelCtrlsData(bool all)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GridCtrl::UpdateCtrls(int opt /*= UC_CHECK_VIS | UC_SHOW | UC_CURSOR | UC_FOCUS*/)
|
void GridCtrl::UpdateCtrls(int opt /*= UC_CHECK_VIS | UC_SHOW | UC_CURSOR */)
|
||||||
{
|
{
|
||||||
if(!valid_cursor)
|
if(!valid_cursor)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if((opt & UC_CHECK_VIS) && !ctrls)
|
if((opt & UC_CHECK_VIS) && !HasCtrls())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Point cp(opt & UC_OLDCUR ? oldcur : curpos);
|
Point cp(opt & UC_OLDCUR ? oldcur : curpos);
|
||||||
|
|
@ -4580,24 +4579,24 @@ void GridCtrl::UpdateCtrls(int opt /*= UC_CHECK_VIS | UC_SHOW | UC_CURSOR | UC_F
|
||||||
|
|
||||||
Size sz = GetSize();
|
Size sz = GetSize();
|
||||||
|
|
||||||
bool isctrl = false;
|
bool gofirst = (opt & UC_GOFIRST) && !IsCtrl(cp, false);
|
||||||
|
|
||||||
|
edit_ctrls = false;
|
||||||
|
|
||||||
Ctrl * first_ctrl = NULL;
|
|
||||||
focused_ctrl = NULL;
|
focused_ctrl = NULL;
|
||||||
focused_ctrl_id = -1;
|
focused_ctrl_id = -1;
|
||||||
focused_col = -1;
|
focused_col = -1;
|
||||||
|
|
||||||
bool gofirst = opt & UC_GOFIRST && select_row && !ctrls && !draw_focus;
|
|
||||||
if(opt & UC_MOUSE)
|
|
||||||
gofirst = gofirst && !GetCtrl(cp, false, false, false);
|
|
||||||
|
|
||||||
for(int i = 1; i < total_cols; i++)
|
for(int i = 1; i < total_cols; i++)
|
||||||
{
|
{
|
||||||
if(hitems[i].hidden)
|
if(hitems[i].hidden)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Ctrl * ctrl = GetCtrl(cp.y, i, show == false);
|
Ctrl* ctrl = GetCtrl(cp.y, i, show == false);
|
||||||
|
|
||||||
|
if(!ctrl)
|
||||||
|
continue;
|
||||||
|
|
||||||
if(show)
|
if(show)
|
||||||
{
|
{
|
||||||
if(newrow_appended || newrow_inserted)
|
if(newrow_appended || newrow_inserted)
|
||||||
|
|
@ -4612,49 +4611,47 @@ void GridCtrl::UpdateCtrls(int opt /*= UC_CHECK_VIS | UC_SHOW | UC_CURSOR | UC_F
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!ctrl)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
int id = hitems[i].id;
|
int id = hitems[i].id;
|
||||||
|
|
||||||
if(!first_ctrl)
|
bool sync_ctrl = items[vitems[cp.y].id][id].ctrl;
|
||||||
first_ctrl = ctrl;
|
|
||||||
|
|
||||||
bool dorect = false;
|
bool dorect = false;
|
||||||
bool dofocus = false;
|
bool dorf = i == curpos.x;
|
||||||
|
|
||||||
bool factory_ctrl = edits[id].factory;
|
if(gofirst)
|
||||||
bool manual_ctrl = items[vitems[cp.y].id][id].ctrl_flag & IC_MANUAL;
|
{
|
||||||
|
dorf = true;
|
||||||
|
gofirst = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool dofocus = !(opt & UC_HIDE) && dorf;
|
||||||
|
|
||||||
if(show)
|
if(show)
|
||||||
{
|
{
|
||||||
bool dorf = gofirst ? ctrl == first_ctrl : i == curpos.x;
|
dorect = edit_mode == GE_CELL ? dorf : (isedit || (opt & UC_CTRLS));
|
||||||
dofocus = dorf;
|
|
||||||
dorect = edit_mode == GE_CELL ? dorf : (ctrls || opt & UC_CTRLS);
|
|
||||||
dorect = dorect && GetItem(cp.y, i).editable;
|
dorect = dorect && GetItem(cp.y, i).editable;
|
||||||
}
|
}
|
||||||
if(dorect)
|
|
||||||
|
if(!sync_ctrl)
|
||||||
{
|
{
|
||||||
Rect r = GetItemRect(ctrlpos.y, i, horz_grid, vert_grid, true, true);
|
if(dorect)
|
||||||
|
|
||||||
if(!r.Intersects(sz))
|
|
||||||
r.Set(0, 0, 0, 0);
|
|
||||||
|
|
||||||
if(!factory_ctrl && !manual_ctrl)
|
|
||||||
{
|
{
|
||||||
|
Rect r = GetItemRect(ctrlpos.y, i, horz_grid, vert_grid, true, true);
|
||||||
|
|
||||||
|
if(!r.Intersects(sz))
|
||||||
|
r.Set(0, 0, 0, 0);
|
||||||
|
|
||||||
ctrl->SetRect(AlignRect(r, i));
|
ctrl->SetRect(AlignRect(r, i));
|
||||||
ctrl->Show();
|
ctrl->Show();
|
||||||
isctrl = true;
|
edit_ctrls = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ctrl->SetRect(0, 0, 0, 0);
|
||||||
|
ctrl->Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
else if(!factory_ctrl && !manual_ctrl)
|
|
||||||
{
|
|
||||||
ctrl->SetRect(0, 0, 0, 0);
|
|
||||||
ctrl->Hide();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dofocus)
|
if(dofocus && ctrl->IsShown())
|
||||||
{
|
{
|
||||||
LG(2, "Focus on %d", i);
|
LG(2, "Focus on %d", i);
|
||||||
ctrl->SetFocus();
|
ctrl->SetFocus();
|
||||||
|
|
@ -4668,21 +4665,19 @@ void GridCtrl::UpdateCtrls(int opt /*= UC_CHECK_VIS | UC_SHOW | UC_CURSOR | UC_F
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
edit_ctrls = isctrl;
|
if(!focused_ctrl)
|
||||||
|
|
||||||
if(opt & UC_FOCUS && !show && ctrls)
|
|
||||||
SetFocus();
|
SetFocus();
|
||||||
|
|
||||||
if(opt & UC_CTRLS)
|
|
||||||
ctrls = isctrl;
|
|
||||||
|
|
||||||
if(opt & UC_CTRLS_OFF && !isctrl)
|
|
||||||
ctrls = false;
|
|
||||||
|
|
||||||
if(!(opt & UC_SCROLL))
|
if(!(opt & UC_SCROLL))
|
||||||
RebuildToolBar();
|
RebuildToolBar();
|
||||||
|
|
||||||
if(ctrls)
|
if(opt & UC_CTRLS)
|
||||||
|
isedit = edit_ctrls;
|
||||||
|
|
||||||
|
if(opt & UC_CTRLS_OFF)
|
||||||
|
isedit = false;
|
||||||
|
|
||||||
|
if(isedit)
|
||||||
popup.Close();
|
popup.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4881,18 +4876,12 @@ bool GridCtrl::HasCtrls()
|
||||||
|
|
||||||
void GridCtrl::SetCtrlFocus(int col)
|
void GridCtrl::SetCtrlFocus(int col)
|
||||||
{
|
{
|
||||||
//SetCursor0(rowidx, col);
|
|
||||||
oldcur.x = curpos.x;
|
oldcur.x = curpos.x;
|
||||||
Ctrl * ctrl = GetCtrl(col + fixed_cols, rowidx, false, false);
|
Ctrl * ctrl = GetCtrl(col + fixed_cols, rowidx, false, false);
|
||||||
focused_ctrl = ctrl;
|
focused_ctrl = ctrl;
|
||||||
focused_ctrl_id = hitems[col + fixed_cols].id;
|
focused_ctrl_id = hitems[col + fixed_cols].id;
|
||||||
ctrl->SetFocus();
|
ctrl->SetFocus();
|
||||||
curpos.x = col + fixed_cols;
|
curpos.x = col + fixed_cols;
|
||||||
|
|
||||||
// oldcur.x = curpos.x;
|
|
||||||
// curpos.x = col + fixed_cols;
|
|
||||||
// if(ctrls)
|
|
||||||
// UpdateCtrls(UC_CHECK_VIS | UC_SHOW | UC_FOCUS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GridCtrl::SetCtrlFocus(Id id)
|
void GridCtrl::SetCtrlFocus(Id id)
|
||||||
|
|
@ -4915,7 +4904,7 @@ void GridCtrl::Reject()
|
||||||
|
|
||||||
void GridCtrl::RestoreFocus()
|
void GridCtrl::RestoreFocus()
|
||||||
{
|
{
|
||||||
if(focused_ctrl)
|
if(focused_ctrl && !focused_ctrl->HasFocusDeep())
|
||||||
focused_ctrl->SetFocus();
|
focused_ctrl->SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4923,7 +4912,7 @@ bool GridCtrl::ShowNextCtrl()
|
||||||
{
|
{
|
||||||
if(GoRight(1, 1))
|
if(GoRight(1, 1))
|
||||||
{
|
{
|
||||||
UpdateCtrls(UC_CHECK_VIS | UC_SHOW | UC_FOCUS);
|
UpdateCtrls(UC_CHECK_VIS | UC_SHOW);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -4933,7 +4922,7 @@ bool GridCtrl::ShowPrevCtrl()
|
||||||
{
|
{
|
||||||
if(GoLeft(1, 1))
|
if(GoLeft(1, 1))
|
||||||
{
|
{
|
||||||
UpdateCtrls(UC_CHECK_VIS | UC_SHOW | UC_FOCUS);
|
UpdateCtrls(UC_CHECK_VIS | UC_SHOW);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -5009,7 +4998,7 @@ void GridCtrl::Split(int state, bool sync)
|
||||||
if((resize_paint_mode > 1 && state > GS_UP) || state == GS_UP)
|
if((resize_paint_mode > 1 && state > GS_UP) || state == GS_UP)
|
||||||
{
|
{
|
||||||
SyncCtrls();
|
SyncCtrls();
|
||||||
UpdateCtrls(UC_CHECK_VIS | UC_SHOW | (UC_FOCUS * int(state == GS_UP)));
|
UpdateCtrls(UC_CHECK_VIS | UC_SHOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sync)
|
if(sync)
|
||||||
|
|
@ -5032,7 +5021,7 @@ bool GridCtrl::TabKey(bool enter_mode)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return focused_ctrl ? true : isnext;
|
return focused_ctrl ? true : (genr_ctrls > 0 && !edit_ctrls) ? true : isnext;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(tab_changes_row && ((enter_mode && has_ctrls) || (!enter_mode && !has_ctrls)))
|
if(tab_changes_row && ((enter_mode && has_ctrls) || (!enter_mode && !has_ctrls)))
|
||||||
|
|
@ -5279,7 +5268,7 @@ bool GridCtrl::Key(dword key, int)
|
||||||
WriteClipboardText(GetColumnWidths());
|
WriteClipboardText(GetColumnWidths());
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
if(searching && !ctrls && Search(key))
|
if(searching && !isedit && Search(key))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5467,7 +5456,7 @@ void GridCtrl::MoveRows(int n, bool onerow)
|
||||||
|
|
||||||
bool GridCtrl::SwapRows(int n, int m, bool repaint)
|
bool GridCtrl::SwapRows(int n, int m, bool repaint)
|
||||||
{
|
{
|
||||||
if(ctrls || m == n ||
|
if(isedit || m == n ||
|
||||||
n < fixed_rows || n > total_rows - 1 ||
|
n < fixed_rows || n > total_rows - 1 ||
|
||||||
m < fixed_rows || m > total_rows - 1)
|
m < fixed_rows || m > total_rows - 1)
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -5628,7 +5617,7 @@ GridCtrl& GridCtrl::EvenColor(Color fg, Color bg)
|
||||||
|
|
||||||
GridCtrl& GridCtrl::ColoringMode(int m)
|
GridCtrl& GridCtrl::ColoringMode(int m)
|
||||||
{
|
{
|
||||||
coloringMode = m;
|
coloring_mode = m;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5663,7 +5652,7 @@ void GridCtrl::Clear(bool columns)
|
||||||
{
|
{
|
||||||
doscroll = false;
|
doscroll = false;
|
||||||
|
|
||||||
UpdateCtrls(UC_HIDE | UC_CTRLS | UC_FOCUS);
|
UpdateCtrls(UC_HIDE | UC_CTRLS);
|
||||||
|
|
||||||
int nrows = columns ? 1 : fixed_rows;
|
int nrows = columns ? 1 : fixed_rows;
|
||||||
items.Remove(nrows, items.GetCount() - nrows);
|
items.Remove(nrows, items.GetCount() - nrows);
|
||||||
|
|
@ -5696,6 +5685,8 @@ void GridCtrl::Clear(bool columns)
|
||||||
firstVisRow = fixed_rows - 1;
|
firstVisRow = fixed_rows - 1;
|
||||||
lastVisRow = fixed_rows - 1;
|
lastVisRow = fixed_rows - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
focused_ctrl = NULL;
|
||||||
|
|
||||||
valid_cursor = false;
|
valid_cursor = false;
|
||||||
|
|
||||||
|
|
@ -5988,7 +5979,7 @@ bool GridCtrl::Go0(int jump, bool scroll, bool goleft, bool ctrlmode)
|
||||||
Size sz = GetSize();
|
Size sz = GetSize();
|
||||||
int sy = -1;
|
int sy = -1;
|
||||||
|
|
||||||
int opt = ctrls ? CU_CTRLMODE : 0;
|
int opt = /*ctrls*/ ctrlmode ? CU_CTRLMODE : 0;
|
||||||
|
|
||||||
switch(jump)
|
switch(jump)
|
||||||
{
|
{
|
||||||
|
|
@ -6145,24 +6136,13 @@ bool GridCtrl::Go0(int jump, bool scroll, bool goleft, bool ctrlmode)
|
||||||
{
|
{
|
||||||
if(scroll && resize_row_mode == 0 && sy >= 0)
|
if(scroll && resize_row_mode == 0 && sy >= 0)
|
||||||
sby.Set(sy);
|
sby.Set(sy);
|
||||||
|
|
||||||
if(ctrls)
|
|
||||||
UpdateCtrls(UC_CHECK_VIS | UC_SHOW | UC_FOCUS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!ctrls)
|
opt = UC_CHECK_VIS;
|
||||||
{
|
if(isedit)
|
||||||
Ctrl * ctrl = valid_cursor ? GetItem(curpos).ctrl : NULL;
|
opt |= UC_SHOW;
|
||||||
if(ctrl)
|
UpdateCtrls(opt);
|
||||||
{
|
|
||||||
focused_ctrl = ctrl;
|
|
||||||
focused_ctrl_id = hitems[curpos.x].id;
|
|
||||||
focused_col = curpos.x;
|
|
||||||
ctrl->SetFocus();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
focused_ctrl = NULL;
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -6201,7 +6181,7 @@ bool GridCtrl::GoFirstVisible(bool scroll)
|
||||||
SetCursor0(curpos.x < 0 ? firstVisCol : curpos.x, max(firstVisRow, firstRow));
|
SetCursor0(curpos.x < 0 ? firstVisCol : curpos.x, max(firstVisRow, firstRow));
|
||||||
if(scroll && resize_row_mode == 0)
|
if(scroll && resize_row_mode == 0)
|
||||||
sby.Set(vitems[firstRow].nTop(/*fixed_height*/));
|
sby.Set(vitems[firstRow].nTop(/*fixed_height*/));
|
||||||
if(ctrls)
|
if(isedit)
|
||||||
UpdateCtrls();
|
UpdateCtrls();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -6243,9 +6223,9 @@ Ctrl * GridCtrl::GetCtrl(int c)
|
||||||
return GetCtrl(curpos.y, c, true, true, false);
|
return GetCtrl(curpos.y, c, true, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GridCtrl::IsCtrl(Point &p)
|
bool GridCtrl::IsCtrl(Point &p, bool check_visibility)
|
||||||
{
|
{
|
||||||
return GetCtrl(p, true, false, false);
|
return GetCtrl(p, check_visibility, false, false) != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GridCtrl::GoTo(int r, bool setcursor, bool scroll)
|
void GridCtrl::GoTo(int r, bool setcursor, bool scroll)
|
||||||
|
|
@ -6322,7 +6302,11 @@ void GridCtrl::LostFocus()
|
||||||
{
|
{
|
||||||
LG("LostFocus");
|
LG("LostFocus");
|
||||||
if(valid_cursor)
|
if(valid_cursor)
|
||||||
|
{
|
||||||
|
// if(focus_lost_accepting && !HasFocusDeep())
|
||||||
|
// EndEdit();
|
||||||
RefreshRow(curpos.y, 0, 0);
|
RefreshRow(curpos.y, 0, 0);
|
||||||
|
}
|
||||||
popup.Close();
|
popup.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -6426,26 +6410,38 @@ bool GridCtrl::SwitchEdit()
|
||||||
if(!valid_cursor)
|
if(!valid_cursor)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if(ctrls)
|
Ctrl * ctrl = items[curid.y][curid.x].ctrl;
|
||||||
EndEdit(true, true);
|
if(ctrl)
|
||||||
|
{
|
||||||
|
if(ctrl->HasFocusDeep())
|
||||||
|
EndEdit(true, true);
|
||||||
|
SetFocus();
|
||||||
|
//rowbkp[curid.x] = ctrl->GetData();
|
||||||
|
//items[curid.y][curid.x].val = ctrl->GetData();
|
||||||
|
focused_ctrl = ctrl;
|
||||||
|
focused_ctrl_id = curid.x;
|
||||||
|
focused_ctrl_val = ctrl->GetData();
|
||||||
|
ctrl->SetFocus();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
StartEdit();
|
{
|
||||||
|
if(isedit)
|
||||||
|
EndEdit(true, true);
|
||||||
|
else
|
||||||
|
StartEdit();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GridCtrl::StartEdit(bool mouse)
|
bool GridCtrl::StartEdit()
|
||||||
{
|
{
|
||||||
if(!valid_cursor || !IsRowEditable())
|
if(!valid_cursor || !IsRowEditable())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
//ctrls = true;
|
|
||||||
WhenStartEdit();
|
WhenStartEdit();
|
||||||
|
|
||||||
SetCtrlsData();
|
SetCtrlsData();
|
||||||
int opt = UC_SHOW | UC_FOCUS | UC_GOFIRST | UC_CURSOR | UC_CTRLS;
|
UpdateCtrls(UC_SHOW | UC_GOFIRST | UC_CURSOR | UC_CTRLS);
|
||||||
if(mouse)
|
|
||||||
opt |= UC_MOUSE;
|
|
||||||
UpdateCtrls(opt);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -6457,7 +6453,7 @@ bool GridCtrl::EndEdit(bool accept, bool doall, bool remove_row)
|
||||||
if(accept && !GetCtrlsData(false, doall, accept))
|
if(accept && !GetCtrlsData(false, doall, accept))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
UpdateCtrls(UC_HIDE | UC_CTRLS | UC_FOCUS);
|
UpdateCtrls(UC_HIDE | UC_CTRLS);
|
||||||
|
|
||||||
if(!accept)
|
if(!accept)
|
||||||
{
|
{
|
||||||
|
|
@ -6618,7 +6614,7 @@ bool GridCtrl::Remove0(int row, int cnt /* = 1*/, bool recalc /* = true*/, bool
|
||||||
total_height -= vitems[rowidx].nHeight();
|
total_height -= vitems[rowidx].nHeight();
|
||||||
|
|
||||||
if(rid == ctrlid.y)
|
if(rid == ctrlid.y)
|
||||||
UpdateCtrls(UC_HIDE | UC_CTRLS | UC_FOCUS);
|
UpdateCtrls(UC_HIDE | UC_CTRLS);
|
||||||
|
|
||||||
bool removed = false;
|
bool removed = false;
|
||||||
|
|
||||||
|
|
@ -7150,7 +7146,7 @@ void GridCtrl::DoInsert0(bool edit, bool after)
|
||||||
if(edit)
|
if(edit)
|
||||||
StartEdit();
|
StartEdit();
|
||||||
|
|
||||||
if(!ctrls)
|
if(!isedit)
|
||||||
WhenInsertRow0();
|
WhenInsertRow0();
|
||||||
|
|
||||||
WhenNewRow();
|
WhenNewRow();
|
||||||
|
|
@ -7286,7 +7282,7 @@ void GridCtrl::DoAppend0(bool edit)
|
||||||
GoCursorLeftRight();
|
GoCursorLeftRight();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!ctrls)
|
if(!isedit)
|
||||||
WhenInsertRow0();
|
WhenInsertRow0();
|
||||||
|
|
||||||
WhenNewRow();
|
WhenNewRow();
|
||||||
|
|
|
||||||
|
|
@ -821,10 +821,8 @@ class GridCtrl : public Ctrl
|
||||||
bool sorting_multicol:1;
|
bool sorting_multicol:1;
|
||||||
bool header:1;
|
bool header:1;
|
||||||
bool live_cursor:1;
|
bool live_cursor:1;
|
||||||
bool ctrlRowMode:1;
|
|
||||||
bool ctrlColMode:1;
|
|
||||||
bool row_changing:1;
|
bool row_changing:1;
|
||||||
int coloringMode;
|
int coloring_mode;
|
||||||
|
|
||||||
int resize_paint_mode;
|
int resize_paint_mode;
|
||||||
int resize_col_mode;
|
int resize_col_mode;
|
||||||
|
|
@ -867,6 +865,7 @@ class GridCtrl : public Ctrl
|
||||||
bool summary_row:1;
|
bool summary_row:1;
|
||||||
bool update_summary:1;
|
bool update_summary:1;
|
||||||
bool popups:1;
|
bool popups:1;
|
||||||
|
bool focus_lost_accepting:1;
|
||||||
|
|
||||||
bool search_hide:1;
|
bool search_hide:1;
|
||||||
bool search_highlight:1;
|
bool search_highlight:1;
|
||||||
|
|
@ -893,7 +892,7 @@ class GridCtrl : public Ctrl
|
||||||
bool scrollLeftRight:1;
|
bool scrollLeftRight:1;
|
||||||
bool doscroll:1;
|
bool doscroll:1;
|
||||||
bool ready:1;
|
bool ready:1;
|
||||||
bool ctrls:1;
|
bool isedit:1;
|
||||||
int genr_ctrls;
|
int genr_ctrls;
|
||||||
bool edit_ctrls:1;
|
bool edit_ctrls:1;
|
||||||
bool shiftmode:1;
|
bool shiftmode:1;
|
||||||
|
|
@ -1086,46 +1085,47 @@ class GridCtrl : public Ctrl
|
||||||
|
|
||||||
int GetDefaultRowHeight() { return GD_ROW_HEIGHT; }
|
int GetDefaultRowHeight() { return GD_ROW_HEIGHT; }
|
||||||
|
|
||||||
GridCtrl& Inserting(bool b = true) { inserting = b; return *this; }
|
GridCtrl& Inserting(bool b = true) { inserting = b; return *this; }
|
||||||
GridCtrl& Appending(bool b = true) { appending = b; return *this; }
|
GridCtrl& Appending(bool b = true) { appending = b; return *this; }
|
||||||
GridCtrl& Duplicating(bool b = true) { duplicating = b; return *this; }
|
GridCtrl& Duplicating(bool b = true) { duplicating = b; return *this; }
|
||||||
GridCtrl& Moving(bool b = true) { moving = b; return *this; }
|
GridCtrl& Moving(bool b = true) { moving = b; return *this; }
|
||||||
GridCtrl& Removing(bool b = true) { removing = b; return *this; }
|
GridCtrl& Removing(bool b = true) { removing = b; return *this; }
|
||||||
GridCtrl& Accepting(bool b = true) { accepting = b; return *this; }
|
GridCtrl& Accepting(bool b = true) { accepting = b; return *this; }
|
||||||
GridCtrl& Canceling(bool b = true) { canceling = b; return *this; }
|
GridCtrl& Canceling(bool b = true) { canceling = b; return *this; }
|
||||||
GridCtrl& Navigating(bool b = true) { navigating = b; return *this; }
|
GridCtrl& Navigating(bool b = true) { navigating = b; return *this; }
|
||||||
GridCtrl& Searching(bool b = true) { searching = b; return *this; }
|
GridCtrl& Searching(bool b = true) { searching = b; return *this; }
|
||||||
GridCtrl& Closing(bool b = true) { closing = b; return *this; }
|
GridCtrl& Closing(bool b = true) { closing = b; return *this; }
|
||||||
GridCtrl& Editing(bool b = true) { editing = b; return *this; }
|
GridCtrl& Editing(bool b = true) { editing = b; return *this; }
|
||||||
GridCtrl& EditsInNewRow(bool b = true) { edits_in_new_row = b; return *this; }
|
GridCtrl& EditsInNewRow(bool b = true) { edits_in_new_row = b; return *this; }
|
||||||
GridCtrl& Hiding(bool b = true) { hiding = b; return *this; }
|
GridCtrl& Hiding(bool b = true) { hiding = b; return *this; }
|
||||||
GridCtrl& Clipboard(bool b = true) { clipboard = b; return *this; }
|
GridCtrl& Clipboard(bool b = true) { clipboard = b; return *this; }
|
||||||
GridCtrl& ExtraPaste(bool b = true) { extra_paste = b; return *this; }
|
GridCtrl& ExtraPaste(bool b = true) { extra_paste = b; return *this; }
|
||||||
GridCtrl& FixedPaste(bool b = true) { fixed_paste = b; return *this; }
|
GridCtrl& FixedPaste(bool b = true) { fixed_paste = b; return *this; }
|
||||||
GridCtrl& CopyColumnNames(bool b = true) { copy_column_names = b; return *this; }
|
GridCtrl& CopyColumnNames(bool b = true) { copy_column_names = b; return *this; }
|
||||||
GridCtrl& AskRemove(bool b = true) { ask_remove = b; return *this; }
|
GridCtrl& AskRemove(bool b = true) { ask_remove = b; return *this; }
|
||||||
GridCtrl& RowChanging(bool b = true) { row_changing = b; return *this; }
|
GridCtrl& RowChanging(bool b = true) { row_changing = b; return *this; }
|
||||||
|
|
||||||
GridCtrl& DrawFocus(bool b = true) { draw_focus = b; return *this; }
|
GridCtrl& DrawFocus(bool b = true) { draw_focus = b; return *this; }
|
||||||
GridCtrl& CancelAll(bool b = true) { cancel_all = b; return *this; }
|
GridCtrl& CancelAll(bool b = true) { cancel_all = b; return *this; }
|
||||||
|
|
||||||
GridCtrl& RejectNullRow(bool b = true) { reject_null_row = b; return *this; }
|
GridCtrl& RejectNullRow(bool b = true) { reject_null_row = b; return *this; }
|
||||||
GridCtrl& KeepLastRow(bool b = true) { keep_last_row = b; return *this; }
|
GridCtrl& KeepLastRow(bool b = true) { keep_last_row = b; return *this; }
|
||||||
GridCtrl& RemoveHides(bool b = true) { remove_hides = b; return *this; }
|
GridCtrl& RemoveHides(bool b = true) { remove_hides = b; return *this; }
|
||||||
GridCtrl& TabChangesRow(bool b = true) { tab_changes_row = b; return *this; }
|
GridCtrl& TabChangesRow(bool b = true) { tab_changes_row = b; return *this; }
|
||||||
GridCtrl& TabAddsRow(bool b = true) { tab_adds_row = b; return *this; }
|
GridCtrl& TabAddsRow(bool b = true) { tab_adds_row = b; return *this; }
|
||||||
GridCtrl& EnterLikeTab(bool b = true) { enter_like_tab = b; return *this; }
|
GridCtrl& EnterLikeTab(bool b = true) { enter_like_tab = b; return *this; }
|
||||||
GridCtrl& FullColResizing(bool b = true) { full_col_resizing = b; return *this; }
|
GridCtrl& FullColResizing(bool b = true) { full_col_resizing = b; return *this; }
|
||||||
GridCtrl& FullRowResizing(bool b = true) { full_row_resizing = b; return *this; }
|
GridCtrl& FullRowResizing(bool b = true) { full_row_resizing = b; return *this; }
|
||||||
GridCtrl& Chameleon(bool b = true) { chameleon = b; return *this; }
|
GridCtrl& Chameleon(bool b = true) { chameleon = b; return *this; }
|
||||||
GridCtrl& SummaryRow(bool b = true) { summary_row = b; return *this; }
|
GridCtrl& SummaryRow(bool b = true) { summary_row = b; return *this; }
|
||||||
GridCtrl& Popups(bool b = true) { popups = b; return *this; }
|
GridCtrl& Popups(bool b = true) { popups = b; return *this; }
|
||||||
|
GridCtrl& FocusLostAccepting(bool b = true) { focus_lost_accepting = b; return *this; }
|
||||||
|
|
||||||
GridCtrl& SearchOffset(int offset) { find_offset = offset; return *this; }
|
GridCtrl& SearchOffset(int offset) { find_offset = offset; return *this; }
|
||||||
GridCtrl& SearchMoveCursor(bool b = true) { search_move_cursor = b; return *this; }
|
GridCtrl& SearchMoveCursor(bool b = true) { search_move_cursor = b; return *this; }
|
||||||
GridCtrl& SearchImmediate(bool b = true) { search_immediate = b; return *this; }
|
GridCtrl& SearchImmediate(bool b = true) { search_immediate = b; return *this; }
|
||||||
GridCtrl& SearchHideRows(bool b = true) { search_hide = b; return *this; }
|
GridCtrl& SearchHideRows(bool b = true) { search_hide = b; return *this; }
|
||||||
GridCtrl& SearchDisplay(bool b = true) { search_display = b; return *this; }
|
GridCtrl& SearchDisplay(bool b = true) { search_display = b; return *this; }
|
||||||
|
|
||||||
GridCtrl& SetToolBar(bool b = true, int align = BarCtrl::BAR_BOTTOM, int frame = 1);
|
GridCtrl& SetToolBar(bool b = true, int align = BarCtrl::BAR_BOTTOM, int frame = 1);
|
||||||
ToolBar& GetToolBar() { return bar; }
|
ToolBar& GetToolBar() { return bar; }
|
||||||
|
|
@ -1339,8 +1339,8 @@ class GridCtrl : public Ctrl
|
||||||
|
|
||||||
void SetDisplay(int r, int c, GridDisplay& gd);
|
void SetDisplay(int r, int c, GridDisplay& gd);
|
||||||
|
|
||||||
bool IsEdit() { return ctrls; }
|
bool IsEdit() { return isedit; }
|
||||||
bool StartEdit(bool mouse = false);
|
bool StartEdit();
|
||||||
bool SwitchEdit();
|
bool SwitchEdit();
|
||||||
bool EndEdit(bool accept = true, bool doall = false, bool remove_row = true);
|
bool EndEdit(bool accept = true, bool doall = false, bool remove_row = true);
|
||||||
bool CancelEdit(bool remove_row = true) { return EndEdit(false, false, remove_row); }
|
bool CancelEdit(bool remove_row = true) { return EndEdit(false, false, remove_row); }
|
||||||
|
|
@ -1694,7 +1694,7 @@ class GridCtrl : public Ctrl
|
||||||
|
|
||||||
Ctrl * GetCtrl(int x, int y, bool check_visibility, bool hrel = false, bool vrel = false, bool check_edits = true);
|
Ctrl * GetCtrl(int x, int y, bool check_visibility, bool hrel = false, bool vrel = false, bool check_edits = true);
|
||||||
Ctrl * GetCtrl(const Point &p, bool check_visibility, bool hrel = false, bool vrel = false, bool check_edits = true);
|
Ctrl * GetCtrl(const Point &p, bool check_visibility, bool hrel = false, bool vrel = false, bool check_edits = true);
|
||||||
bool IsCtrl(Point &p);
|
bool IsCtrl(Point &p, bool check_visibility = true);
|
||||||
|
|
||||||
GridClipboard GetClipboard();
|
GridClipboard GetClipboard();
|
||||||
void SetClipboard(bool all = false, bool silent = false);
|
void SetClipboard(bool all = false, bool silent = false);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue