Rev 8954 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
8954 | leency | 1 | #define MAX_LINE_CHARS 128 |
7331 | leency | 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]; |
8954 | leency | 38 | char txt_data[MAX_LINE_CHARS+4*LINES_COUNT+30]; |
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 | |||
7437 | leency | 56 | count = LINES_COUNT; |
57 | |||
7331 | leency | 58 | strcpy(#txt_path, file_path); |
59 | ReadFile(0, 4096, #txt_data, #txt_path); |
||
60 | if (!txt_data) || (strncmp(#txt_data, "notes", 5)!=0) |
||
61 | { |
||
7434 | leency | 62 | txt_file_exists = false; |
7331 | leency | 63 | return 0; |
64 | } |
||
65 | else |
||
66 | { |
||
7434 | leency | 67 | txt_file_exists = true; |
7331 | leency | 68 | i+=5; //skip "notes" indefinier |
69 | while (txt_data[i]) |
||
70 | { |
||
71 | if (txt_data[i]=='\n') { |
||
72 | item_n++; |
||
73 | i+=2; |
||
74 | if (txt_data[i]=='-') lines[item_n].state=false; else lines[item_n].state=true; |
||
75 | i+=2; |
||
76 | linepos = 0; |
||
77 | continue; |
||
78 | } |
||
79 | if (linepos |
||
80 | linepos++; |
||
81 | i++; |
||
82 | } |
||
7422 | leency | 83 | while (item_n < LINES_COUNT) |
84 | { |
||
85 | //lines[item_n].Delete(); |
||
86 | item_n++; |
||
87 | } |
||
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; |
||
7444 | leency | 119 | int drawy; |
7331 | leency | 120 | char line_text[4096]; |
121 | if (line_n<0) return; |
||
7422 | leency | 122 | x = 1; |
123 | if (line_n==cur_y) COL_BG = COL_BG_ACTIVE; else COL_BG = COL_BG_INACTIVE; |
||
124 | DrawBar(x, line_n*item_h+y, RED_LINE_X, draw_h-1, COL_BG_INACTIVE); |
||
125 | DrawBar(x+RED_LINE_X+1, line_n*item_h+y, w-RED_LINE_X-1, draw_h-1, COL_BG); |
||
7331 | leency | 126 | |
127 | cur_text = #lines[line_n].data; |
||
128 | |||
7422 | leency | 129 | if (draw_h!=item_h) |
7331 | leency | 130 | { |
131 | COL_BOTTOM_LINE=COL_BG; |
||
132 | } |
||
133 | else |
||
134 | { |
||
7444 | leency | 135 | drawy = item_h*line_n+5+y; |
136 | DefineButton(RED_LINE_X-CHBOX/2+x, drawy, CHBOX-1,CHBOX-1, CHECKBOX_ID+line_n+BT_HIDE, 0); //checkbox |
||
9602 | leency | 137 | PutImage(RED_LINE_X-CHBOX/2+x,drawy, CHBOX,CHBOX, lines[line_n].state*CHBOX*CHBOX*3+#checkbox); |
7444 | leency | 138 | if (cur_text) WriteText(x+RED_LINE_X+6, drawy+2, 0x80, lines[line_n].state*0x777777, cur_text); |
139 | if (lines[line_n].state == true) DrawBar(x+RED_LINE_X+6, drawy+6, strlen(cur_text)*6, 1, 0x444444); //strike |
||
140 | DrawBar(WIN_W,drawy,1,item_h,0xBBBBBB); //fast fix; proper fix is to restrict WriteText() char length |
||
7331 | leency | 141 | } |
7422 | leency | 142 | DrawBar(x, line_n*item_h+draw_h-1+y, w, 1, COL_BOTTOM_LINE); |
143 | DrawBar(x+RED_LINE_X, line_n*item_h+y, 1, draw_h, COL_RED_LINE); |
||
144 | x = RED_LINE_X; |
||
7331 | leency | 145 | return cur_text; |
146 | }0)>=count;>> |