-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathfiledemo.cpp
More file actions
134 lines (119 loc) · 3.09 KB
/
Copy pathfiledemo.cpp
File metadata and controls
134 lines (119 loc) · 3.09 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include "iGraphics.h"
char name[100];
char prev_names[5][100];
char* filename = "names.txt";
void saveName()
{
FILE* file = fopen(filename, "a");
if (file == nullptr) {
printf("Failed to open file\n");
return;
}
fprintf(file, "%s\n", name);
fclose(file);
}
void loadNames()
{
FILE* file = fopen(filename, "r");
if (file == nullptr) {
printf("Failed to open file\n");
return;
}
for (int i = 0; i < 5; i++) {
if (fgets(prev_names[i], 100, file) == nullptr) {
break;
}
}
fclose(file);
}
void iDraw()
{
//place your drawing codes here
iClear();
// iText(10, 10, "Move the mouse cursor to see real-time coordinates", GLUT_BITMAP_HELVETICA_12);
// textbox to take input
iText(50, 50, "Enter your name: ", GLUT_BITMAP_HELVETICA_18);
iRectangle(190, 40, 200, 30);
if(strlen(name) > 0) {
iText(192, 48, name, GLUT_BITMAP_HELVETICA_18);
}
// previous names
iText(50, 100, "Previous names: ", GLUT_BITMAP_HELVETICA_18);
for (int i = 0; i < 5; i++) {
iText(50, 120 + 20 * i, prev_names[i], GLUT_BITMAP_HELVETICA_18);
}
}
/*
function iMouseMove() is called when the user presses and drags the mouse.
(mx, my) is the position where the mouse pointer is.
*/
void iMouseMove(int mx, int my)
{
//place your codes here
}
/*
function iPassiveMouseMove() is called automatically when the mouse pointer is in motion
*/
void iPassiveMouseMove(int mx, int my)
{
//place your code here
}
/*
function iMouse() is called when the user presses/releases the mouse.
(mx, my) is the position where the mouse pointer is.
*/
void iMouse(int button, int state, int mx, int my)
{
if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
}
if(button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN)
{
}
}
/*
function iKeyboard() is called whenever the user hits a key in keyboard.
key- holds the ASCII value of the key pressed.
*/
void iKeyboard(unsigned char key)
{
//place your codes for other keys here
if (key == '\r') {
saveName();
loadNames();
name[0] = '\0';
} else if (key == '\b') {
if (strlen(name) > 0) {
name[strlen(name) - 1] = '\0';
}
} else {
if (strlen(name) < 99) {
name[strlen(name)] = key;
name[strlen(name) + 1] = '\0';
}
}
printf("name = %s\n", name);
}
/*
function iSpecialKeyboard() is called whenver user hits special keys like-
function keys, home, end, pg up, pg down, arraows etc. you have to use
appropriate constants to detect them. A list is:
GLUT_KEY_F1, GLUT_KEY_F2, GLUT_KEY_F3, GLUT_KEY_F4, GLUT_KEY_F5, GLUT_KEY_F6,
GLUT_KEY_F7, GLUT_KEY_F8, GLUT_KEY_F9, GLUT_KEY_F10, GLUT_KEY_F11, GLUT_KEY_F12,
GLUT_KEY_LEFT, GLUT_KEY_UP, GLUT_KEY_RIGHT, GLUT_KEY_DOWN, GLUT_KEY_PAGE UP,
GLUT_KEY_PAGE DOWN, GLUT_KEY_HOME, GLUT_KEY_END, GLUT_KEY_INSERT
*/
void iSpecialKeyboard(unsigned char key)
{
if(key == GLUT_KEY_END)
{
exit(0);
}
//place your codes for other keys here
}
int main()
{
loadNames();
iInitialize(600, 400, "Mousedemo");
return 0;
}