Subversion Repositories Kolibri OS

Rev

Rev 7500 | Rev 7504 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7500 Rev 7503
Line 4... Line 4...
4
#include "kosSyst.h"
4
#include "kosSyst.h"
5
//#include "KosFile.h"
5
//#include "KosFile.h"
6
 
6
 
7
extern DWORD def_col_width, def_row_height;
7
#define DEFAULT_CELL_W 80
Line -... Line 8...
-
 
8
#define DEFAULT_CELL_H 19
8
extern DWORD col_count, row_count;
9
 
-
 
10
extern DWORD col_count, row_count;
9
extern char ***cells;
11
extern char ***cells;
10
extern DWORD *col_width, *row_height;
12
extern DWORD *cell_w, *cell_h;
11
extern char ***values;
13
extern char ***values;
12
 
14
 
Line 13... Line 15...
13
extern DWORD *col_left, *row_top;
15
extern DWORD *cell_x, *cell_y;
Line 14... Line 16...
14
 
16
 
15
// áóôåð îáìåíà
17
// áóôåð îáìåíà
16
extern char ***buffer;
18
extern char ***buffer;
17
extern DWORD buf_col, buf_row;
19
extern DWORD buf_col, buf_row;
Line 18... Line 20...
18
extern DWORD buf_old_x, buf_old_y;
20
extern DWORD buf_old_x, buf_old_y;
Line -... Line 21...
-
 
21
 
-
 
22
extern bool sel_moved;
-
 
23
 
-
 
24
extern struct GRID
-
 
25
{
19
 
26
	int x,y,w,h;
Line 20... Line 27...
20
extern bool sel_moved;
27
} grid;
Line 43... Line 50...
43
	if (x > col_count) 
50
	if (x > col_count) 
44
		x = col_count;
51
		x = col_count;
45
	for (i = 0; i < x; i++)
52
	for (i = 0; i < x; i++)
46
		r+=col_width[i];
53
		r+=cell_w[i];
47
	return r;
54
	return r;
48
}
55
}
49
 
56
 
50
// àíàëîã
57
// àíàëîã
Line 51... Line 58...
51
int get_y(int y)
58
int get_y(int y)
52
{
59
{
53
	int i, r = 0;
60
	int i, r = 0;
54
	if (y > row_count) 
61
	if (y > row_count) 
55
		y = row_count;
62
		y = row_count;
56
	for (i = 0; i < y; i++)
63
	for (i = 0; i < y; i++)
57
		r+=row_height[i];
64
		r+=cell_h[i];
58
	return r;
65
	return r;
59
}
66
}
60
 
67
 
Line 104... Line 111...
104
{
111
{
105
	int i, j;
112
	int i, j;
106
 
113
 
107
	//col_count = WND_W / def_col_width;
114
	cell_w = (DWORD*)allocmem(col_count * sizeof(DWORD));
Line 108... Line -...
108
	//row_count = WND_H / def_row_height;
-
 
109
 
-
 
110
	col_width = (DWORD*)allocmem(col_count * sizeof(DWORD));
-
 
111
	row_height = (DWORD*)allocmem(row_count * sizeof(DWORD));
115
	cell_h = (DWORD*)allocmem(row_count * sizeof(DWORD));
112
	col_left = (DWORD*)allocmem(col_count * sizeof(DWORD));
116
	cell_x = (DWORD*)allocmem(col_count * sizeof(DWORD));
113
	row_top = (DWORD*)allocmem(row_count * sizeof(DWORD));
117
	cell_y = (DWORD*)allocmem(row_count * sizeof(DWORD));
114
	for (i = 0; i < col_count; i++)
118
	for (i = 0; i < col_count; i++)
115
	{
119
	{
116
		col_width[i] = def_col_width;
120
		cell_w[i] = DEFAULT_CELL_W;
117
	}
121
	}
118
	col_width[0] = 30;
122
	cell_w[0] = 30; //make row headers smaller
119
 
123
 
Line 120... Line 124...
120
	for (i = 0; i < row_count; i++)
124
	for (i = 0; i < row_count; i++)
121
	{
125
	{
122
		row_height[i] = def_row_height;
126
		cell_h[i] = DEFAULT_CELL_H;
123
	}
127
	}
Line 124... Line 128...
124
 
128
 
125
	cells = (char***)allocmem(col_count * sizeof(char**));
129
	cells = (char***)allocmem(col_count * sizeof(char**));
126
	values = (char***)allocmem(col_count * sizeof(char**));
130
	values = (char***)allocmem(col_count * sizeof(char**));
Line 149... Line 153...
149
 
153
 
150
	for (i = 0; i < col_count; i++)
154
	for (i = 0; i < col_count; i++)
Line 151... Line 155...
151
	{
155
	{
152
		col_width[i] = def_col_width;
156
		cell_w[i] = DEFAULT_CELL_W;
153
	}
157
	}
154
 
158
 
Line 155... Line 159...
155
	for (i = 0; i < row_count; i++)
159
	for (i = 0; i < row_count; i++)
156
	{
160
	{
157
		row_height[i] = def_row_height;
161
		cell_h[i] = DEFAULT_CELL_H;
158
	}
162
	}
Line 159... Line 163...
159
 
163
 
160
	for (i = 1; i < col_count; i++)
164
	for (i = 1; i < col_count; i++)
161
	{
165
	{
Line 484... Line 488...
484
	{
488
	{
485
		char smalbuf[32];
489
		char smalbuf[32];
486
		memset((Byte*)smalbuf,0,32);
490
		memset((Byte*)smalbuf,0,32);
487
		sprintf(smalbuf, "%U,", col_width[i]);
491
		sprintf(smalbuf, "%U,", cell_w[i]);
488
		strcpy(buffer+strlen(buffer),smalbuf);
492
		strcpy(buffer+strlen(buffer),smalbuf);
489
	}
493
	}
490
	buffer[strlen(buffer)-1] = '\n';	// çàìåíèëè ïîñëåäíþþ çàïÿòóþ íà ïåðåâîä ñòðîêè
494
	buffer[strlen(buffer)-1] = '\n';	// çàìåíèëè ïîñëåäíþþ çàïÿòóþ íà ïåðåâîä ñòðîêè
491
	//rtlDebugOutString(buffer);
495
	//rtlDebugOutString(buffer);
492
	fileInfo.dataCount = strlen(buffer);
496
	fileInfo.dataCount = strlen(buffer);
493
	fileInfo.bufferPtr = (Byte*)buffer;
497
	fileInfo.bufferPtr = (Byte*)buffer;
494
	fileInfo.rwMode = 3;
498
	fileInfo.rwMode = 3;
Line 506... Line 510...
506
	{
510
	{
507
		char smalbuf[32];
511
		char smalbuf[32];
508
		memset((Byte*)smalbuf,0,32);
512
		memset((Byte*)smalbuf,0,32);
509
		sprintf(smalbuf, "%U,", row_height[i]);
513
		sprintf(smalbuf, "%U,", cell_h[i]);
510
		strcpy(buffer+strlen(buffer),smalbuf);
514
		strcpy(buffer+strlen(buffer),smalbuf);
511
	}
515
	}
512
	buffer[strlen(buffer)-1] = '\n';	// çàìåíèëè ïîñëåäíþþ çàïÿòóþ íà ïåðåâîä ñòðîêè
516
	buffer[strlen(buffer)-1] = '\n';	// çàìåíèëè ïîñëåäíþþ çàïÿòóþ íà ïåðåâîä ñòðîêè
513
	//rtlDebugOutString(buffer);
517
	//rtlDebugOutString(buffer);
514
	fileInfo.dataCount = strlen(buffer);
518
	fileInfo.dataCount = strlen(buffer);
515
	fileInfo.bufferPtr = (Byte*)buffer;
519
	fileInfo.bufferPtr = (Byte*)buffer;
516
	fileInfo.rwMode = 3;
520
	fileInfo.rwMode = 3;
Line 767... Line 771...
767
			}
771
			}
768
			*d = '\0';
772
			*d = '\0';
769
			i = atoi(buffer);
773
			i = atoi(buffer);
770
			col_width[items++] = i;
774
			cell_w[items++] = i;
771
			if (items == col_count)
775
			if (items == col_count)
772
			{
776
			{
773
				step++;
777
				step++;
774
				items = 1;	//	òåïåðü âûñîòû ñòðîê ÷èòàòü ìû áóäåì ñìåëî
778
				items = 1;	//	òåïåðü âûñîòû ñòðîê ÷èòàòü ìû áóäåì ñìåëî
775
							//  ÷òîá èõ âîññòàíîâèòü è áûëî êàê âñåãäà
779
							//  ÷òîá èõ âîññòàíîâèòü è áûëî êàê âñåãäà
776
				//sprintf(debuf, "cols read done last buf %S file pos %U",buffer,fileInfo.OffsetLow);
780
				//sprintf(debuf, "col_count read done last buf %S file pos %U",buffer,fileInfo.OffsetLow);
777
				//rtlDebugOutString(debuf);
781
				//rtlDebugOutString(debuf);
778
			}
782
			}
779
			d+=2;
783
			d+=2;
780
			break;
784
			break;
781
 
785
 
782
		case 1:			// ñòðîêè, êîèõ âûñîòà çàïèñàíà
786
		case 1:			// ñòðîêè, êîèõ âûñîòà çàïèñàíà
Line 791... Line 795...
791
			}
795
			}
792
			*d = '\0';
796
			*d = '\0';
793
			i = atoi(buffer);
797
			i = atoi(buffer);
794
			row_height[items++] = i;
798
			cell_h[items++] = i;
795
			/*if (items > 5)
799
			/*if (items > 5)
796
			{
800
			{
797
				sprintf(debuf, "set row from %S hei %U %U",buffer,items-1,i);
801
				sprintf(debuf, "set row from %S hei %U %U",buffer,items-1,i);
798
				rtlDebugOutString(debuf);
802
				rtlDebugOutString(debuf);
799
			}*/
803
			}*/
800
 
804
 
801
			if (items == row_count)
805
			if (items == row_count)