amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > SetGadgetAttrsA() [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

10.09.2009, 16:02 Uhr

AGSzabo
Posts: 1663
Nutzer
hi,

ich habe ein broblem mit der größe und position von boopsi gadgets, genauergesagt mit dem colorwheel. und zwar wird es immer in der linken oberen ecke gerendert obwohl ich mit SetGadgetAttrsA() die werte richtig setze. Unter os4.1 funktioniert es, aber unter os 3.0 nicht.
warum?

hier wieder wie von mir gewohnt der frageliche code:

code:
WGSETLAYOUT	move.l	xuiLI_left(a1),xuiWG_left(a0) ; left, top
		move.l	xuiLI_width(a1),xuiWG_width(a0) ; w, h

		move.l	a0,a4

WG_setl		; come here from set window/ make newobject

		tst.l	xuiWG_slider(a4)
		beq.b	.rts0

		movem.w	xuiWG_left(a4),d0-d3

		sub.w	#30,d2
		cmp.w	d3,d2
		ble.b	.flips
		move.w	d3,d2
		bra.b	.flops
.flips		move.w	d2,d3
.flops		movem.w	xuiWG_left(a4),d0-d2

		add.w	d2,d0
		moveq	#20,d2
		sub.w	d2,d0

		move.l	#TAG_END,-(a7)
		move.l	d3,-(a7)
		move.l	#GA_Height,-(a7)
		move.l	d2,-(a7)
		move.l	#GA_Width,-(a7)
		move.l	d1,-(a7)
		move.l	#GA_Top,-(a7)
		move.l	d0,-(a7)
		move.l	#GA_Left,-(a7)

		move.l	xuiWG_slider(a4),a0
		move.l	xuiWG_window(a4),a1
		move.l	a7,a3
		move.l	intbase(pc),a6
		jsr	_LVOSetGadgetAttrsA(a6)
		lea	36(a7),a7
		tst.l	d0
		beq.b	.no_change
		bset	#xuiWGB_CHANGE,xuiWG_flags(a4)
.no_change
		movem.w	xuiWG_left(a4),d0-d3

		sub.w	#30,d2
		cmp.w	d3,d2
		ble.b	.flip
		move.w	d3,d2
		bra.b	.flop
.flip		move.w	d2,d3
.flop
		move.l	#TAG_END,-(a7)
		move.l	d3,-(a7)
		move.l	#GA_Height,-(a7)
		move.l	d2,-(a7)
		move.l	#GA_Width,-(a7)
		move.l	d1,-(a7)
		move.l	#GA_Top,-(a7)
		move.l	d0,-(a7)
		move.l	#GA_Left,-(a7)

		move.l	xuiWG_wheel(a4),a0
		move.l	xuiWG_window(a4),a1
		move.l	a7,a3
		jsr	_LVOSetGadgetAttrsA(a6)
		lea	36(a7),a7
		tst.l	d0
		beq.b	.no_change2
		bset	#xuiWGB_CHANGE,xuiWG_flags(a4)
.no_change2
		moveq	#1,d0
		rts
.rts0		moveq	#0,d0
		rts

--
Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110

[ - Antworten - Zitieren - Direktlink - ]

10.09.2009, 18:07 Uhr

thomas
Posts: 7717
Nutzer
@AGSzabo:

Scheinbar läßt sich das colorwheel.gadget in Version 40 und älter nicht nachträglich ändern. Ich habe gerade mal ein bißchen herumprobiert, es bleibt immer an der Position, die man bei NewDTObject angegeben hat. Allerdings werden die neuen Koordinaten durchaus gesetzt. Wenn man nach der Änderung in das sichtbare Gadget klickt, passiert gar nichts. Wenn man aber an die neue Position klickt, bewegt sich der Knopf.

Dir wird nichts anderes übrig bleiben, als das Gadget komplett freizugeben und neu anzulegen.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

14.09.2009, 19:46 Uhr

AGSzabo
Posts: 1663
Nutzer
@thomas:

> Dir wird nichts anderes übrig bleiben, als das Gadget komplett freizugeben und neu anzulegen.


ok, das habe ich jetzt mal gemacht und es funktioniert. aber der slider wird jetzt immer etwas nach rechts und nach unten verschoben gezeichnet. der maus-angriffspunkt ist an der richtigen stelle, nur die grafik ist versetzt. es sieht so aus als ob das maß der versetzung der fensterrahmen breite und höhe der titelzeile entspricht, aber das herumexperimentieren mit GA_GZZGadget bachte keine besserung. was ist nun schon wieder los? im prefs/farb-voreinsteller funktioniert es doch auch!

außerdem wird 'mein' wheel im gegensatz zu dem des palette-prefs programms mit viel weniger farben gezeichnet und der slider bleibt immer grau auch wenn ich das wheel auf farbe stelle. wenn ich aber den slider bewege 'springt' er auf die farbe die im wheel eingestellt ist.

all das tritt nur unter OS 3.0/3.1 auf, ab 3.5 funktioniert es.

ps: unter os4.1 wird der hintergrund des wheels mit mülldaten aufgefüllt...

--
Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110

[ Dieser Beitrag wurde von AGSzabo am 15.09.2009 um 09:39 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > SetGadgetAttrsA() [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.