summaryrefslogtreecommitdiff
path: root/wintable/selection.h
diff options
context:
space:
mode:
Diffstat (limited to 'wintable/selection.h')
-rw-r--r--wintable/selection.h83
1 files changed, 0 insertions, 83 deletions
diff --git a/wintable/selection.h b/wintable/selection.h
deleted file mode 100644
index 12c30d5..0000000
--- a/wintable/selection.h
+++ /dev/null
@@ -1,83 +0,0 @@
-// 30 november 2014
-
-static void finishSelect(struct table *t, intptr_t prev)
-{
- if (t->selected < 0)
- t->selected = 0;
- if (t->selected >= t->count)
- t->selected = t->count - 1;
-
- // always redraw the old and new rows to avoid artifacts when scrolling, even if they are the same (since the focused column may have changed)
- redrawRow(t, prev);
- if (prev != t->selected)
- redrawRow(t, t->selected);
-
- // if we need to scroll, the scrolling will force a redraw, so we don't have to worry about doing so ourselves
- if (t->selected < t->firstVisible)
- vscrollto(t, t->selected);
- // note that this is not lastVisible(t) because the last visible row may only be partially visible and we want selections to make them fully visible
- else if (t->selected >= (t->firstVisible + t->pagesize))
- vscrollto(t, t->selected - t->pagesize + 1);
-}
-
-// TODO isolate functionality so other keyboard event handlers can run
-static void keySelect(struct table *t, WPARAM wParam, LPARAM lParam)
-{
- intptr_t prev;
-
- // TODO figure out correct behavior with nothing selected
- if (t->count == 0) // don't try to do anything if there's nothing to do
- return;
- prev = t->selected;
- switch (wParam) {
- case VK_UP:
- t->selected--;
- break;
- case VK_DOWN:
- t->selected++;
- break;
- case VK_PRIOR:
- t->selected -= t->pagesize;
- break;
- case VK_NEXT:
- t->selected += t->pagesize;
- break;
- case VK_HOME:
- t->selected = 0;
- break;
- case VK_END:
- t->selected = t->count - 1;
- break;
- case VK_LEFT:
- t->focusedColumn--;
- if (t->focusedColumn < 0)
- if (t->nColumns == 0) // peg at -1
- t->focusedColumn = -1;
- else
- t->focusedColumn = 0;
- break;
- case VK_RIGHT:
- t->focusedColumn++;
- if (t->focusedColumn >= t->nColumns)
- if (t->nColumns == 0) // peg at -1
- t->focusedColumn = -1;
- else
- t->focusedColumn = t->nColumns - 1;
- break;
- // TODO keyboard shortcuts for going to the first/last column?
- default:
- // don't touch anything
- return;
- }
- finishSelect(t, prev);
-}
-
-// TODO rename
-static void selectItem(struct table *t, WPARAM wParam, LPARAM lParam)
-{
- intptr_t prev;
-
- prev = t->selected;
- lParamToRowColumn(t, lParam, &(t->selected), &(t->focusedColumn));
- finishSelect(t, prev);
-}