Autor Thema: Farbe Mauszeiger ändern  (Gelesen 3572 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

HamSTer

  • Gast
Farbe Mauszeiger ändern
« am: Di 07.05.2013, 21:11:56 »
Ich habe mich mal daran versucht..

#include <aes.h>
#include <vdi.h>
#include <stdio.h>

int main(void){
short appid;
int gl_wchar;
int gl_hchar;
int gl_wbox;
int gl_hbox;
int vdi_handle;
int farbmaus[36];

farbmaus[0]  = 0;
farbmaus[1]  = 0;
farbmaus[2]  = 1;
farbmaus[3]  = 0;
farbmaus[4]  = 15;
farbmaus[5]  = 0xE000; /* 1110 0000 0000 0000 */
farbmaus[6]  = 0xF800; /* 1111 1000 0000 0000 */
farbmaus[7]  = 0xFE00; /* 1111 1110 0000 0000 */
farbmaus[8]  = 0xFF80; /* 1111 1111 1000 0000 */
farbmaus[9]  = 0xFFE0; /* 1111 1111 1110 0000 */
farbmaus[10] = 0xFFF8; /* 1111 1111 1111 1000 */
farbmaus[11] = 0xFFFC; /* 1111 1111 1111 1100 */
farbmaus[12] = 0xFFFE; /* 1111 1111 1111 1110 */
farbmaus[13] = 0xFFFF; /* 1111 1111 1111 1111 */
farbmaus[14] = 0xF3C0; /* 1111 0011 1100 0000 */
farbmaus[15] = 0xE1E0; /* 1110 0001 1110 0000 */
farbmaus[16] = 0x01E0; /* 0000 0001 1110 0000 */
farbmaus[17] = 0x00F0; /* 0000 0000 1111 0000 */
farbmaus[18] = 0x0078; /* 0000 0000 0111 1000 */
farbmaus[19] = 0x0078; /* 0000 0000 0111 1000 */
farbmaus[20] = 0x003C; /* 0000 0000 0011 1100 */
farbmaus[21] = 0x0000; /* 0000 0000 0000 0000 */
farbmaus[22] = 0x7000; /* 0111 0000 0000 0000 */
farbmaus[23] = 0x7C00; /* 0111 1100 0000 0000 */
farbmaus[24] = 0x7F00; /* 0111 1111 0000 0000 */
farbmaus[25] = 0x7FC0; /* 0111 1111 1100 0000 */
farbmaus[26] = 0x7FF0; /* 0111 1111 1111 0000 */
farbmaus[27] = 0x7FF8; /* 0111 1111 1111 1000 */
farbmaus[28] = 0x7FFC; /* 0111 1111 1111 1100 */
farbmaus[29] = 0x6180; /* 0110 0001 1000 0000 */
farbmaus[30] = 0x6180; /* 0110 0001 1000 0000 */
farbmaus[31] = 0x00C0; /* 0000 0000 1100 0000 */
farbmaus[32] = 0x00C0; /* 0000 0000 1100 0000 */
farbmaus[33] = 0x0060; /* 0000 0000 0110 0000 */
farbmaus[34] = 0x0030; /* 0000 0000 0011 0000 */
farbmaus[35] = 0x0030; /* 0000 0000 0011 0000 */
farbmaus[36] = 0x0000; /* 0000 0000 0000 0000 */

appid = appl_init();

vdi_handle = graf_handle(&gl_wchar,&gl_hchar,&gl_wbox,&gl_hbox);

wind_update(BEG_UPDATE);

graf_mouse(M_OFF,0);
vsc_form(vdi_handle,farbmaus);
graf_mouse(M_ON,0);

wind_update(END_UPDATE);

while(1){}

appl_exit();
return 0;
}

Es wird auch kurz die Form und Farbe geändert, springt aber sofort wieder um.
Woran scheitert das dauerhafte Umschalten?

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: Farbe Mauszeiger ändern
« Antwort #1 am: Di 07.05.2013, 21:28:32 »
...
Es wird auch kurz die Form und Farbe geändert, springt aber sofort wieder um.
Woran scheitert das dauerhafte Umschalten?

Das ist alles richtig gemacht, funktioniert aber so nur aus den AES heraus, weil die VDI-Input-Funktionen dummerweise nur für diesen Zweck gedacht sind (ein Aufruf aus eigenen Programmen kollidiert dann mit den Aufrufen der AES, die deine Einstellungen sofort wieder zurücksetzen). Aus eigenen "richtigen" GEM-Programmen darf man nur virtuelle Workstations verwenden.

Drum mein Vorschlag von oben (wobei ich auch nicht weiß, ob das funktioniert) - noch eine Ebene drunter die AES aushebeln. Es gab mal (ich glaube, das war auf einer Heftdiskette aus der Zeitschrift "TOS") ein Programm, das den Mauszeiger permanent um sich selbst rotieren ließ. Kann mich aber nicht mehr erinnern, wie das gemacht wurde.
And remember: Beethoven wrote his first symphony in C

gstoll

  • Gast
Re: Farbe Mauszeiger ändern
« Antwort #2 am: Do 09.05.2013, 11:14:32 »
Es gab mal (ich glaube, das war auf einer Heftdiskette aus der Zeitschrift "TOS") ein Programm, das den Mauszeiger permanent um sich selbst rotieren ließ. Kann mich aber nicht mehr erinnern, wie das gemacht wurde.
Kommt jetzt darauf an, ob das eine grundsätzliche Änderung war (AES weit) oder nur innerhalb eines Programms. Es besteht ja die Möglichkeit eigene Mauszeiger zuerstellen und dann zu nutzen. Dafür gibt es http://toshyp.atari.org/de/00800c.html#graf_mouse. Man könnte sich also in den Trap reinhängen und graf_mouse abfangen und immer auf benutzerdefinierte Mauszeiger umschalten.

Das fällt mir zumindest auf die schnelle ein. Wobei dies natürlich auch nur ein Hack ist.

Ansonsten würde ich mal die AES Programmieren ansprechen, ob da in Zukunft nichts machbar ist.