-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogramMenuEdit.c
More file actions
74 lines (65 loc) · 1.95 KB
/
programMenuEdit.c
File metadata and controls
74 lines (65 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include "programMenu.h"
#include "machineTimeStruct.h"
#include "programMenuEditTemplate.h"
void *getNextMachineTimeRecord(void *current)
{
return ((struct MachineTime *) current) -> next;
}
void *getPreviousMachineTimeRecord(void *current)
{
return ((struct MachineTime *) current) -> previous;
}
bool deleteSelectedRecord()
{
int currentChoicesNumber;
int linesAvailable = LINES - SPACES_OTHER_THAN_TABLE;
if ( start == end )
{
start = end = NULL;
}
else if (currentChoicePointer == start)
{
start = start -> next;
}
switch ( deleteRecord((struct MachineTime **)¤tChoicePointer) )
{
case ENDING:
currentChoice--;
break;
case EMPTY:
updateTable();
return EXIT;
default:
break;
}
end = getTableEnd(start, linesAvailable , GET_NORMAL);
currentChoicesNumber = (int) getRecordCount(start, end) - 1;
if ( currentChoicesNumber != choicesNumber )
{
choicesNumber = currentChoicesNumber;
somethingDeleted = true;
}
updateTable();
return CONTINUE;
}
void printEditTable(int helpType)
{
updateTable();
printTable(helpType);
}
struct MachineTime *getCurrentEditChoiceRecord(void *choice)
{
return (struct MachineTime*) choice;
}
void editMachineTimeStruct()
{
choicesNumber = (int) getRecordCount(start, end) - 1;
EditArguments arguments = initEditStructArguments(getNextMachineTimeRecord,
getPreviousMachineTimeRecord,
deleteSelectedRecord,
printEditTable,
getCurrentEditChoiceRecord,
choicesNumber,
start);
editStruct(table, arguments);
}