Rev 7422 | Rev 7437 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
7331 | leency | 1 | #define MAX_LINE_CHARS 256 |
2 | |||
3 | #define CHBOX 12 |
||
4 | #define CHECKBOX_ID 50 |
||
7434 | leency | 5 | unsigned char checkbox[sizeof(file "img/checkbox.raw")]= FROM "img/checkbox.raw"; |
7331 | leency | 6 | |
7422 | leency | 7 | #define COL_BG_ACTIVE 0xFFF0A9 |
7331 | leency | 8 | #define COL_BG_INACTIVE 0xFFFFFF |
9 | |||
10 | //===================================================// |
||
11 | // // |
||
12 | // LINE // |
||
13 | // // |
||
14 | //===================================================// |
||
15 | |||
16 | struct NOTE_LINE |
||
17 | { |
||
18 | bool state; |
||
19 | char data[MAX_LINE_CHARS]; |
||
7422 | leency | 20 | void Delete(); |
7331 | leency | 21 | }; |
22 | |||
7422 | leency | 23 | void NOTE_LINE::Delete() |
24 | { |
||
25 | state=false; |
||
26 | data[0]=' '; |
||
27 | data[1]=NULL; |
||
28 | } |
||
29 | |||
7331 | leency | 30 | //===================================================// |
31 | // // |
||
32 | // LIST // |
||
33 | // // |
||
34 | //===================================================// |
||
35 | |||
7422 | leency | 36 | struct NOTES : llist { |
7331 | leency | 37 | char txt_path[4096]; |
38 | char txt_data[MAX_LINE_CHARS*LINES_COUNT]; |
||
7434 | leency | 39 | bool txt_file_exists; |
7331 | leency | 40 | |
41 | NOTE_LINE lines[LINES_COUNT]; |
||
42 | |||
43 | char edit_active; |
||
44 | int OpenTxt(); |
||
45 | int SaveTxt(); |
||
46 | void DrawList(); |
||
47 | dword DrawLine(int line_n, draw_h); |
||
48 | } notes; |
||
49 | |||
50 | |||
51 | int NOTES::OpenTxt(dword file_path) |
||
52 | { |
||
53 | int i=0, linepos=0; |
||
54 | int item_n=-1; |
||
55 | |||
56 | strcpy(#txt_path, file_path); |
||
57 | ReadFile(0, 4096, #txt_data, #txt_path); |
||
58 | if (!txt_data) || (strncmp(#txt_data, "notes", 5)!=0) |
||
59 | { |
||
7434 | leency | 60 | txt_file_exists = false; |
7331 | leency | 61 | notify("'Notes\nData file does not exists or is not valid' -tE"); |
62 | return 0; |
||
63 | } |
||
64 | else |
||
65 | { |
||
7434 | leency | 66 | txt_file_exists = true; |
7331 | leency | 67 | i+=5; //skip "notes" indefinier |
68 | while (txt_data[i]) |
||
69 | { |
||
70 | if (txt_data[i]=='\n') { |
||
71 | item_n++; |
||
72 | i+=2; |
||
73 | if (txt_data[i]=='-') lines[item_n].state=false; else lines[item_n].state=true; |
||
74 | i+=2; |
||
75 | linepos = 0; |
||
76 | continue; |
||
77 | } |
||
78 | if (linepos |
||
79 | linepos++; |
||
80 | i++; |
||
81 | } |
||
7422 | leency | 82 | while (item_n < LINES_COUNT) |
83 | { |
||
84 | //lines[item_n].Delete(); |
||
85 | item_n++; |
||
86 | } |
||
87 | count = LINES_COUNT; |
||
7331 | leency | 88 | return 1; |
89 | } |
||
90 | } |
||
91 | |||
92 | int NOTES::SaveTxt() |
||
93 | { |
||
94 | int i; |
||
95 | dword tm; |
||
96 | strcpy(#txt_data, "notes"); |
||
7422 | leency | 97 | for (i=0; i<=count; i++) |
7331 | leency | 98 | { |
99 | if (lines[i].state==false) strcat(#txt_data, "\n- "); else strcat(#txt_data, "\n+ "); |
||
100 | tm = #lines[i].data; |
||
101 | strcat(#txt_data, #lines[i].data); |
||
102 | } |
||
7434 | leency | 103 | if (!txt_file_exists) CreateFile(0, 0, #txt_path); |
7331 | leency | 104 | WriteFile(0, strlen(#txt_data), #txt_data, #txt_path); |
105 | } |
||
106 | |||
107 | void NOTES::DrawList() |
||
108 | { |
||
109 | int i; |
||
7422 | leency | 110 | for (i=0; i |
7331 | leency | 111 | } |
112 | |||
113 | |||
114 | dword NOTES::DrawLine(int line_n, draw_h) { |
||
115 | dword |
||
116 | COL_BOTTOM_LINE=0xE8EFF4, |
||
117 | COL_BG, |
||
118 | cur_text; |
||
119 | char line_text[4096]; |
||
120 | if (line_n<0) return; |
||
7422 | leency | 121 | x = 1; |
122 | if (line_n==cur_y) COL_BG = COL_BG_ACTIVE; else COL_BG = COL_BG_INACTIVE; |
||
123 | DrawBar(x, line_n*item_h+y, RED_LINE_X, draw_h-1, COL_BG_INACTIVE); |
||
124 | DrawBar(x+RED_LINE_X+1, line_n*item_h+y, w-RED_LINE_X-1, draw_h-1, COL_BG); |
||
7331 | leency | 125 | |
126 | cur_text = #lines[line_n].data; |
||
127 | |||
7422 | leency | 128 | if (draw_h!=item_h) |
7331 | leency | 129 | { |
130 | COL_BOTTOM_LINE=COL_BG; |
||
131 | } |
||
132 | else |
||
133 | { |
||
7422 | leency | 134 | DefineButton(RED_LINE_X-CHBOX/2+x, item_h*line_n+5+y, CHBOX-1,CHBOX-1, CHECKBOX_ID+line_n+BT_HIDE, 0); //checkbox |
135 | _PutImage(RED_LINE_X-CHBOX/2+x, item_h*line_n+5+y, CHBOX,CHBOX, lines[line_n].state*CHBOX*CHBOX*3+#checkbox); |
||
136 | if (cur_text) WriteText(x+RED_LINE_X+6, item_h*line_n+7+y, 0x80, lines[line_n].state*0x777777, cur_text); |
||
137 | if (lines[line_n].state == true) DrawBar(x+RED_LINE_X+6, item_h*line_n+11+y, strlen(cur_text)*6, 1, 0x444444); //strike |
||
7331 | leency | 138 | } |
7422 | leency | 139 | DrawBar(x, line_n*item_h+draw_h-1+y, w, 1, COL_BOTTOM_LINE); |
140 | DrawBar(x+RED_LINE_X, line_n*item_h+y, 1, draw_h, COL_RED_LINE); |
||
141 | x = RED_LINE_X; |
||
7331 | leency | 142 | return cur_text; |
143 | }0)>=count;>> |