Subversion Repositories Kolibri OS

Rev

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

Rev 5631 Rev 5640
Line 34... Line 34...
34
//Button options
34
//Button options
35
#define BT_DEL      0x80000000
35
#define BT_DEL      0x80000000
36
#define BT_HIDE     0x40000000
36
#define BT_HIDE     0x40000000
37
#define BT_NOFRAME  0x20000000
37
#define BT_NOFRAME  0x20000000
Line 38... Line 38...
38
 
38
 
39
//Button mouse
39
//Button MOUSE
40
#define MOUSE_LEFT   001b
40
#define MOUSE_LEFT   001b
41
#define MOUSE_RIGHT  010b
41
#define MOUSE_RIGHT  010b
42
#define MOUSE_LR     011b
42
#define MOUSE_LR     011b
Line 77... Line 77...
77
:struct raw_image {
77
:struct raw_image {
78
	dword w, h, data;
78
	dword w, h, data;
79
};
79
};
Line 80... Line 80...
80
 
80
 
81
/**
81
/**
82
 *  The structure of the mouse
82
 *  The structure of the MOUSE
83
 *  x - coordinate X
83
 *  x - coordinate X
84
 *  y - coordinate Y
84
 *  y - coordinate Y
85
 *  xx and yy - time coordinates
85
 *  xx and yy - time coordinates
86
 *  lkm - left mouse button
86
 *  lkm - left MOUSE button
87
 *  pkm - right mouse button
87
 *  pkm - right MOUSE button
88
 *  mkm - mouse wheel
88
 *  mkm - MOUSE wheel
89
 *  key - keycode button
89
 *  key - keycode button
90
 *  tmp - time keycode 
90
 *  tmp - time keycode 
91
 *  down - key event press
91
 *  down - key event press
92
 *  up - key release events
92
 *  up - key release events
93
 *  move - event mouse movements
93
 *  move - event MOUSE movements
94
 *  click - when clicked
94
 *  click - when clicked
95
 *  dblclick - double-click the default 50 (500 ms)
95
 *  dblclick - double-click the default 50 (500 ms)
Line 96... Line 96...
96
 */
96
 */
97
 
97
 
98
:dword __TMP_TIME,MOUSE_TIME;
98
:dword __TMP_TIME,MOUSE_TIME;
99
:struct mouse
99
:struct MOUSE
100
{
100
{
101
	signed x,y,xx,yy,lkm,mkm,pkm,key,tmp,tmp_time,hor,vert,down,up,move,click,dblclick,left,top;
101
	signed x,y,xx,yy,lkm,mkm,pkm,key,tmp,tmp_time,hor,vert,down,up,move,click,dblclick,left,top;
102
	dword handle,_;
102
	dword handle,_;
Line 106... Line 106...
106
	void set();
106
	void set();
107
	void center();
107
	void center();
108
	dword hide();
108
	dword hide();
109
	void slider();
109
	void slider();
110
	void show();
110
	void show();
111
};
111
} mouse;
112
:void mouse::clearTime()
112
:void MOUSE::clearTime()
113
{
113
{
114
	tmp_time = GetStartTime()+MOUSE_TIME;
114
	tmp_time = GetStartTime()+MOUSE_TIME;
115
}
115
}
116
:void mouse::show()
116
:void MOUSE::show()
117
{
117
{
118
	if(!handle)return;
118
	if(!handle)return;
119
	ECX = handle;
119
	ECX = handle;
120
	EAX = 37;
120
	EAX = 37;
121
	EBX = 5;
121
	EBX = 5;
122
	$int 0x40;
122
	$int 0x40;
123
}
123
}
124
:dword mouse::hide()
124
:dword MOUSE::hide()
125
{
125
{
126
	if(!_)
126
	if(!_)
127
	{
127
	{
128
		EAX = 68;
128
		EAX = 68;
129
		EBX = 12;
129
		EBX = 12;
Line 142... Line 142...
142
	EBX = 5;
142
	EBX = 5;
143
	$int 0x40;
143
	$int 0x40;
144
	handle = EAX;
144
	handle = EAX;
145
}
145
}
Line 146... Line 146...
146
 
146
 
147
//set new attributes mouse
147
//set new attributes MOUSE
148
:void mouse::set()
148
:void MOUSE::set()
149
{
149
{
150
	if((xx!=x)||(yy!=y))
150
	if((xx!=x)||(yy!=y))
151
	{
151
	{
152
		EAX = 18;
152
		EAX = 18;
Line 165... Line 165...
165
		EDX = (x<<16)+y;
165
		EDX = (x<<16)+y;
166
		$int 0x40
166
		$int 0x40
167
	}
167
	}
168
}
168
}
Line 169... Line 169...
169
 
169
 
170
:void mouse::center()
170
:void MOUSE::center()
171
{
171
{
172
	EAX = 18;
172
	EAX = 18;
173
	EBX = 15;
173
	EBX = 15;
174
	$int 0x40
174
	$int 0x40
Line 175... Line 175...
175
}
175
}
176
 
176
 
177
//get new attributes mouse
177
//get new attributes MOUSE
178
:void mouse::get()
178
:void MOUSE::get()
179
{
179
{
180
	EAX = 37;
180
	EAX = 37;
181
	EBX = 1;
181
	EBX = 1;
Line 200... Line 200...
200
	$and	ecx, 0x00000001
200
	$and	ecx, 0x00000001
201
	lkm = EAX;
201
	lkm = EAX;
202
	pkm = EBX;
202
	pkm = EBX;
203
	mkm = ECX;
203
	mkm = ECX;
Line 204... Line 204...
204
	
204
	
205
	//when you release the mouse button
205
	//when you release the MOUSE button
206
	// Mouse Up Event
206
	// Mouse Up Event
207
	if((cmd)&&!(key)){
207
	if((cmd)&&!(key)){
208
		up = true;
208
		up = true;
209
		down = false;
209
		down = false;
Line 220... Line 220...
220
		mkm = 4&tmp;
220
		mkm = 4&tmp;
221
		mkm >>= 2;
221
		mkm >>= 2;
222
		cmd = false;
222
		cmd = false;
223
	}
223
	}
Line 224... Line 224...
224
	
224
	
225
	//when you press the mouse button
225
	//when you press the MOUSE button
226
	// Mouse Down Event/Move Event
226
	// Mouse Down Event/Move Event
227
	else {
227
	else {
228
	    up       = false;
228
	    up       = false;
229
		click    = false;
229
		click    = false;
Line 251... Line 251...
251
	vert = EBX;
251
	vert = EBX;
252
}
252
}
Line 253... Line 253...
253
 
253
 
254
 
254
 
255
 
255
 
256
:void mouse::slider()
256
:void MOUSE::slider()
257
{
257
{
258
	signed _x,_y;
258
	signed _x,_y;
Line 879... Line 879...
879
:struct _skin
879
:struct _skin
880
{
880
{
881
	dword width,height;
881
	dword width,height;
882
} SKIN;
882
} SKIN;
Line -... Line 883...
-
 
883
 
-
 
884
:void DrawDate(dword x, y, color, in_date)
-
 
885
{
-
 
886
	//char text[15];
-
 
887
	EDI = in_date;
-
 
888
	EAX = 47;
-
 
889
	EBX = 2<<16;
-
 
890
	EDX = x<<16+y;
-
 
891
	ESI = 0x80<<24+color;
-
 
892
	ECX = EDI.date.day;
-
 
893
	$int 0x40;
-
 
894
	EDX += 18<<16;
-
 
895
	ECX = EDI.date.month;
-
 
896
	$int 0x40;
-
 
897
	EDX += 18<<16;
-
 
898
	EBX = 4<<16;
-
 
899
	ECX = EDI.date.year;
-
 
900
	$int 0x40;
-
 
901
	PutPixel(x+14,y+6,color);
-
 
902
	PutPixel(x+32,y+6,color);
-
 
903
	//sprintf(#text,"%d",EDI.date.year);
-
 
904
	//WriteText(x, y, 0x80, 0x000000, #text);
-
 
905
}
883
 
906
 
Line 884... Line 907...
884
dword __generator;  // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë
907
dword __generator;  // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë
Line 885... Line 908...
885
 
908