forked from KolibriOS/kolibrios
Aelia 0.33: add cursor pointer
git-svn-id: svn://kolibrios.org@6059 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
ae17b4e165
commit
228094c871
@ -10,6 +10,7 @@
|
|||||||
#include "../lib/obj/iconv.h"
|
#include "../lib/obj/iconv.h"
|
||||||
#include "../lib/obj/proc_lib.h"
|
#include "../lib/obj/proc_lib.h"
|
||||||
#include "../lib/obj/http.h"
|
#include "../lib/obj/http.h"
|
||||||
|
#include "../lib/cursor.h"
|
||||||
#include "../lib/patterns/libimg_load_skin.h"
|
#include "../lib/patterns/libimg_load_skin.h"
|
||||||
#include "../lib/patterns/simple_open_dialog.h"
|
#include "../lib/patterns/simple_open_dialog.h"
|
||||||
#include "../lib/patterns/history.h"
|
#include "../lib/patterns/history.h"
|
||||||
@ -55,6 +56,9 @@ char address[UML]="http://";
|
|||||||
int mouse_address_box;
|
int mouse_address_box;
|
||||||
edit_box address_box = {250,56,34,0xffffff,0x94AECE,0xffffff,0xffffff,0,UML,#address,#mouse_address_box,2,19,19};
|
edit_box address_box = {250,56,34,0xffffff,0x94AECE,0xffffff,0xffffff,0,UML,#address,#mouse_address_box,2,19,19};
|
||||||
|
|
||||||
|
CustomCursor CursorPointer;
|
||||||
|
dword CursorFile = FROM "pointer.cur";
|
||||||
|
|
||||||
#include "ini.h"
|
#include "ini.h"
|
||||||
#include "gui.h"
|
#include "gui.h"
|
||||||
#include "label.h"
|
#include "label.h"
|
||||||
@ -80,6 +84,7 @@ void main()
|
|||||||
{
|
{
|
||||||
InitDlls();
|
InitDlls();
|
||||||
OpenDialog_init stdcall (#o_dialog);
|
OpenDialog_init stdcall (#o_dialog);
|
||||||
|
CursorPointer.Load(#CursorFile);
|
||||||
label.init(DEFAULT_FONT);
|
label.init(DEFAULT_FONT);
|
||||||
Libimg_LoadImage(#skin, abspath("toolbar.png"));
|
Libimg_LoadImage(#skin, abspath("toolbar.png"));
|
||||||
LoadIniSettings();
|
LoadIniSettings();
|
||||||
|
Binary file not shown.
@ -23,11 +23,11 @@ void WriteTextIntoBuf(int _x, _y; dword _text_col, _text_off)
|
|||||||
{
|
{
|
||||||
char error_message[128];
|
char error_message[128];
|
||||||
if (_x > list.w) {
|
if (_x > list.w) {
|
||||||
sprintf(#error_message, "\nWriteTextIntoBuf _x overflow: H %d X %d \n", label.size.height, _x);
|
sprintf(#error_message, "'WriteTextIntoBuf _x overflow: H %d X %d' -A", label.size.height, _x);
|
||||||
notify(#error_message);
|
notify(#error_message);
|
||||||
}
|
}
|
||||||
if (_y+label.size.pt > label.size.height) {
|
if (_y+label.size.pt > label.size.height) {
|
||||||
sprintf(#error_message, "\nWriteTextIntoBuf _y overflow: H %d Y %d \n", label.size.height, _y);
|
sprintf(#error_message, "'WriteTextIntoBuf _y overflow: H %d Y %d' -A", label.size.height, _y);
|
||||||
notify(#error_message);
|
notify(#error_message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ int _link::hover()
|
|||||||
//char tempp[4096];
|
//char tempp[4096];
|
||||||
dword color;
|
dword color;
|
||||||
int i;
|
int i;
|
||||||
active = 0;
|
active = -1;
|
||||||
mouse.x = mouse.x - list.x;
|
mouse.x = mouse.x - list.x;
|
||||||
mouse.y = mouse.y - list.y;
|
mouse.y = mouse.y - list.y;
|
||||||
for (i=0; i<link.count; i++) {
|
for (i=0; i<link.count; i++) {
|
||||||
@ -44,12 +44,17 @@ int _link::hover()
|
|||||||
if (mouse.x>link.x[i])
|
if (mouse.x>link.x[i])
|
||||||
&& (-list.first*list.item_h+link.y[i]<mouse.y)
|
&& (-list.first*list.item_h+link.y[i]<mouse.y)
|
||||||
&& (mouse.x<link.x[i]+link.w[i])
|
&& (mouse.x<link.x[i]+link.w[i])
|
||||||
&& (-list.first*list.item_h+link.y[i]+link.h[i]>mouse.y)
|
&& (-list.first*list.item_h+link.y[i]+link.h[i]>mouse.y) {
|
||||||
color = 0xFF0000;
|
color = 0xFFFfff;
|
||||||
else
|
CursorPointer.Set();
|
||||||
color = 0xCCCccc;
|
active = i;
|
||||||
DrawRectangle(link.x[i]+list.x+1, -list.first*list.item_h+link.y[i]+list.y, link.w[i], link.h[i], color);
|
}
|
||||||
|
else {
|
||||||
|
color = 0x0000FF;
|
||||||
|
}
|
||||||
|
DrawBar(link.x[i]+list.x, -list.first*list.item_h+link.y[i]+list.y+link.h[i]-1, link.w[i], 1, color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (active==-1) CursorPointer.Restore();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
BIN
programs/cmm/aelia/pointer.cur
Normal file
BIN
programs/cmm/aelia/pointer.cur
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
@ -53,9 +53,9 @@ int stroka_y=5, line_length=0;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (draw==false) {
|
if (draw==false) {
|
||||||
list.count = stroka_y/list.item_h+2;
|
list.count = stroka_y/list.item_h+3;
|
||||||
if (list.count < list.visible) list.count = list.visible;
|
if (list.count < list.visible) list.count = list.visible;
|
||||||
label.size.height = list.count+1*list.item_h;
|
label.size.height = list.count+5*list.item_h;
|
||||||
label.raw_size = 0;
|
label.raw_size = 0;
|
||||||
}
|
}
|
||||||
if (draw==true) WriteTextIntoBuf(8, stroka_y, 0x000000, line_start);
|
if (draw==true) WriteTextIntoBuf(8, stroka_y, 0x000000, line_start);
|
||||||
@ -171,6 +171,7 @@ dword DOM_pos;
|
|||||||
strcpy(#title, text.start);
|
strcpy(#title, text.start);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
strtrim(text.start);
|
||||||
while (get_label_len(text.start) + stroka_x + 30 > list.w)
|
while (get_label_len(text.start) + stroka_x + 30 > list.w)
|
||||||
{
|
{
|
||||||
zeroch = 0;
|
zeroch = 0;
|
||||||
@ -186,6 +187,7 @@ dword DOM_pos;
|
|||||||
label_draw_bar(stroka_x, stroka_y+label.size.pt+1, get_label_len(text.start), style.color);
|
label_draw_bar(stroka_x, stroka_y+label.size.pt+1, get_label_len(text.start), style.color);
|
||||||
}
|
}
|
||||||
WriteTextIntoBuf(stroka_x, stroka_y, style.color, text.start);
|
WriteTextIntoBuf(stroka_x, stroka_y, style.color, text.start);
|
||||||
|
stroka_x+=char_width[' '];
|
||||||
}
|
}
|
||||||
ESBYTE[line_break] >< zeroch; //restore line
|
ESBYTE[line_break] >< zeroch; //restore line
|
||||||
text.start = line_break;
|
text.start = line_break;
|
||||||
@ -198,6 +200,7 @@ dword DOM_pos;
|
|||||||
label_draw_bar(stroka_x, stroka_y+label.size.pt+1, get_label_len(text.start), style.color);
|
label_draw_bar(stroka_x, stroka_y+label.size.pt+1, get_label_len(text.start), style.color);
|
||||||
}
|
}
|
||||||
WriteTextIntoBuf(stroka_x, stroka_y, style.color, text.start);
|
WriteTextIntoBuf(stroka_x, stroka_y, style.color, text.start);
|
||||||
|
stroka_x+=char_width[' '];
|
||||||
}
|
}
|
||||||
stroka_x += get_label_len(text.start);
|
stroka_x += get_label_len(text.start);
|
||||||
}
|
}
|
||||||
@ -205,7 +208,16 @@ dword DOM_pos;
|
|||||||
ESBYTE[DOM_pos] = '\0';
|
ESBYTE[DOM_pos] = '\0';
|
||||||
text.start = DOM_pos + 1;
|
text.start = DOM_pos + 1;
|
||||||
tag.parce();
|
tag.parce();
|
||||||
if (tag.nameis("br")) || (tag.nameis("p")) || (tag.nameis("div")) || (tag.nameis("h1")) || (tag.nameis("h2")) {
|
if (tag.nameis("br"))
|
||||||
|
|| (tag.nameis("p"))
|
||||||
|
|| (tag.nameis("div"))
|
||||||
|
|| (tag.nameis("tr")) {
|
||||||
|
stroka_y+= list.item_h;
|
||||||
|
stroka_x = HTML_PADDING_X;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (tag.nameis("h1")) || (tag.nameis("/h1"))
|
||||||
|
|| (tag.nameis("h2")) || (tag.nameis("/h2")) {
|
||||||
stroka_y+= list.item_h;
|
stroka_y+= list.item_h;
|
||||||
stroka_x = HTML_PADDING_X;
|
stroka_x = HTML_PADDING_X;
|
||||||
continue;
|
continue;
|
||||||
@ -217,9 +229,9 @@ dword DOM_pos;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (draw==false) {
|
if (draw==false) {
|
||||||
list.count = stroka_y/list.item_h+2;
|
list.count = stroka_y/list.item_h+3;
|
||||||
if (list.count < list.visible) list.count = list.visible;
|
if (list.count < list.visible) list.count = list.visible;
|
||||||
label.size.height = list.count+1*list.item_h;
|
label.size.height = list.count+5*list.item_h;
|
||||||
label.raw_size = 0;
|
label.raw_size = 0;
|
||||||
}
|
}
|
||||||
free(DOM.start);
|
free(DOM.start);
|
||||||
|
Loading…
Reference in New Issue
Block a user