home *** CD-ROM | disk | FTP | other *** search
-
- #include <fscreen.h>
- #include <attrdefs.h>
-
- #include "DEPT.H"
-
- dfDEPT dept;
-
- void draw_screen(void)
- {
- FSputs("dept_code", attrLEGEND, 3, 1);
- FSputs("dept_name", attrLEGEND, 4, 1);
- FSputs("payrise", attrLEGEND, 5, 3);
- }
-
- void display_all(void)
- {
- FSclrbox(3, 11, 5, 79, attrSCREEN);
- FSputs(dept.dept_code, attrINPUT, 3, 11);
- FSputs(dept.dept_name, attrINPUT, 4, 11);
- FSputi(dept.payrise, attrINPUT, 5, 11);
- }
-
- int input_data(int is_index = 0)
- {
- for (int x = 0; x < 3 && x >= 0;)
- {
- int FSerror = 0;
- switch(x)
- {
- case 0:
- FSerror = FSinputs(dept.dept_code, attrINPUT, 3, 11, 1);
- break;
-
- case 1:
- if (is_index)
- {
- x++;
- break;
- }
- FSerror = FSinputs(dept.dept_name, attrINPUT, 4, 11, 40);
- break;
-
- case 2:
- if (is_index)
- {
- x++;
- break;
- }
- FSerror = FSinputi(dept.payrise, attrINPUT, 5, 11);
- break;
- }
-
- switch (FSerror)
- {
- case FS_ENTER:
- case FS_CURSORDOWN:
- x++;
- break;
-
- case FS_CURSORUP:
- case FS_BACKSPACE:
- x--;
- break;
-
- case FS_PGDN:
- x = 999;
- break;
-
- case FS_ESCAPE:
- case FS_PGUP:
- x = -1;
- break;
- }
- }
- if (x < 0)
- return IM_ERROR;
- return IM_OK;
- }
-
- int main(void)
- {
- static char *menopts[] = { "^Insert", "^Amend", "^Delete", "^Find",
- "^Next", "^Prev", "E^xit", NULL };
- FSinit();
- FSclrscr(attrSCREEN);
- draw_screen();
- dept.rew();
- dept.clear_buf();
- display_all();
- FStitle("DEPT FILE MAINTENANCE", attrTITLE, 0);
- for (;;)
- {
- switch (FSbarmenu(22, FS_CENTRE, 2, menopts, attrBMNORM, attrBMHIGH, attrBMHOTK))
- {
- case 0: // Insert
- dept.clear_buf();
- display_all();
- if (input_data() == IM_OK)
- dept.insert();
- else
- dept.rew();
- break;
-
- case 1: // Amend
- if (dept.retrieve() == IM_ERROR)
- break;
- display_all();
- if (input_data() == IM_OK)
- dept.amend();
- break;
-
- case 2: // Delete
- dept.erase();
- dept.clear_buf();
- display_all();
- break;
-
- case 3: // Find
- dept.clear_buf();
- display_all();
- if (input_data(1) == IM_OK)
- {
- if (dept.find() == IM_ERROR)
- if (dept.retrieve() == IM_ERROR)
- if (dept.prev() == IM_ERROR)
- dept.clear_buf();
- display_all();
- }
- else
- {
- dept.clear_buf();
- display_all();
- }
- break;
-
- case 4: // Next
- if (dept.next() == IM_ERROR)
- dept.prev();
- display_all();
- break;
-
- case 5: // Prev
- if (dept.prev() == IM_ERROR)
- dept.next();
- display_all();
- break;
-
- case 6: // Exit
- case -1: // <ESCAPE> Pressed
- return 0;
-
- }
- }
- return 0;
- }
-
-