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

amiga-news.de Forum > Programmierung > fenster unter maus aktivieren [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

20.12.2010, 09:24 Uhr

AGSzabo
Posts: 1663
Nutzer
hallo,

ich frage mich, wie das commodity "AutoPoint" funktioniert, welches immer das fenster unter dem mauszeiger aktiviert. Normalerweise dürfte es ja ein Fenster nicht mitbekommen wenn de Mauszeiger blos drüber fährt ohne rein zu klicken?

ich brauche das zum erstellen eines window-menus, das unter der titelzeile meines windows sitzt. die aktivierung soll nur auf meine eigenen (menu)-fenster angewendet werden, nicht auf alle fenster (wenn ein menu aufklappt dann benutzt es ein borderless-fenster).

ags
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

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

[ - Antworten - Zitieren - Direktlink - ]

20.12.2010, 10:21 Uhr

Thore
Posts: 2266
Nutzer
Kannst Dir auch mal die Layers-Lib anschauen ;)
Du kannst das IDCMP Flag für MOUSEMOVE verwenden um zu schauen ob die Maus sich bewegt und prüfen ob sie auf dein Objekt fährt.

[ - Antworten - Zitieren - Direktlink - ]

20.12.2010, 13:25 Uhr

AGSzabo
Posts: 1663
Nutzer
@Thore:

layers lib? wieso?

mousemove geht nur wenn das menu in das mutterfenster gezeichnet wird. ich hätte es aber gerne 'düber'. dabei ist zu beachten, dass es auch aus dem fenster raus hängen können soll. daher window. oder geht das auch mit layer?
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 20.12.2010 um 13:26 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

20.12.2010, 13:54 Uhr

Thore
Posts: 2266
Nutzer
Wie meinst du es, du hättest es gerne drüber? Willst du eine Menu-Leiste die zwischen Titelzeile und Fensterinhalt ist?
Wenn du das von Hand machst, musst Du Offset Berechnung machen, um den Ursprung des Bildes in die entsprechende Ecke zu setzen. Da wird dann zur Y Koordinatein der Zeichenfläche der Offset (entspricht Höhe der Menuzeile) dazuaddiert.

Soll deine Menuzeile auch ein eigenes Window werden? Dann kannst ja von dem die MouseMove abfragen.

Das handling was passiert, wenn du mit der Maus drüberfährst kann über dein MouseMove Flag gemacht werden, dann öffnet sich eben dein Layer oder Window.
Je nach dem ob es sticky sein soll oder nicht, bleibt es bis zum Klick offen oder schließt, sobald die Maus aus dem Menu-Fenster gezogen wird.

Grob gesagt: Die Menuzeile bestimmt wann ein Menu aufgeht, und das Menuitem-Fenster bestimmt wann es wieder geschlossen wird. Beide sollten aber per Parent-Zuordnungen verbunden sein, in der Reigenfolge:

Window -> Menuzeile -> Menu-Fenster [-> SubMenu-Fenster] ....

Die Art und Weise wie Du nun das abfragst liegt bei dir, aber Mausbewegung, Positionsabfrage und Klicks auswerten wirst du ja können :)

Ich empfehle auch die Events abzufragen und nicht ständig zu pollen, das macht die Sache schneller.

[ Dieser Beitrag wurde von Thore am 20.12.2010 um 14:00 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

20.12.2010, 17:34 Uhr

AGSzabo
Posts: 1663
Nutzer
@Thore:

ok. so soll es sein: die menuzeile wird im mutterfenster selbst dargestellt und zwar immer. der y-offset zum inhalt wird berechnet. ich klicke mit der maus auf einen menupunkt und halte die taste gedrückt. ein menu-fenster geht auf. ich ziehe die maus über einen anderen menupunkt der menuzeile und ein anderes menu-fenster geht auf. ich ziehe die maus über das eben geöffnete menu-fenster, da wird es aktiv und die menu items darin werden blau hinterlegt wenn ich mit der maus darüber fahre, bzw submenus klappen auf nach gleichem schema. geht das so?
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

20.12.2010, 21:16 Uhr

Thore
Posts: 2266
Nutzer
Durchführbar auf jeden Fall.

[ - Antworten - Zitieren - Direktlink - ]

20.12.2010, 21:31 Uhr

AGSzabo
Posts: 1663
Nutzer
@Thore:

Fragt sich blos wie...
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 14:40 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von AGSzabo:
Fragt sich blos wie...

Wo ist denn jetzt das Problem?

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 14:52 Uhr

AGSzabo
Posts: 1663
Nutzer
@Holger:

Das Fenster des pulldown menus soll aktiv werden sobald ich mit der maus darüber fahre.
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 14:59 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von AGSzabo:
Das Fenster des pulldown menus soll aktiv werden sobald ich mit der maus darüber fahre.

Wieso?
Das sieht doch total hässlich aus, wenn das Fenster, in dem ich ein Menü öffne, deaktiviert wird. Während die Aktivierung des borderless-Menüfensters überhaupt keinen optischen Unterschied bewirkt.

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 15:02 Uhr

AGSzabo
Posts: 1663
Nutzer
@Holger:

DA hast du natürlich recht. Ok, also wie bekomme ich in dem borderless-fenster dann die maus abgefragt solange es nicht aktiv ist? bzw es soll garnicht aktiv werden, weil auch beim auswählen eines menupunktes das mutterfenster nicht inaktiv werden soll...

--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 21.12.2010 um 15:03 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 15:29 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von AGSzabo:
DA hast du natürlich recht. Ok, also wie bekomme ich in dem borderless-fenster dann die maus abgefragt solange es nicht aktiv ist?

Da es nicht aktiv ist, bekommt Dein normales Anwendungsfenster weiterhin die Maus-Events.

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 15:32 Uhr

AGSzabo
Posts: 1663
Nutzer
@Holger:

Und dann muss ich die coords im anwendungsfenster umrechnen und den fensterzeiger des layers des menufensters auf mein anwendungsfenster verbiegen?

bekomme ich auch MOUSEMOVE wenn ich die maus über den rahmen des anwendungsfensters hinaus ziehe?

--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 21.12.2010 um 15:32 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 15:39 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von AGSzabo:
Und dann muss ich die coords im anwendungsfenster umrechnen und den fensterzeiger des layers des menufensters auf mein anwendungsfenster verbiegen?

Kannst Du machen, musst Du aber nicht. Den Klick in das Menü kannst Du auch über das Menüfenster empfangen, Du kannst zur Vereinfachung auch beiden Fenstern denselben IDCMP-Port geben, und da Du nach dem Klick sofort das Menü schließt, wird auch Dein Fenster wieder re-aktiviert, was optisch nicht wahrgenommen wird, wenn es schnell genug passiert.
Zitat:
bekomme ich auch MOUSEMOVE wenn ich die maus über den rahmen des anwendungsfensters hinaus ziehe?
Meines Wissens, ja.

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 15:51 Uhr

AGSzabo
Posts: 1663
Nutzer
@Holger:

Mooops, dieser beitrag hat sich erledigt.

[ Dieser Beitrag wurde von AGSzabo am 21.12.2010 um 16:00 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 16:08 Uhr

AGSzabo
Posts: 1663
Nutzer
@Holger:

muss ich den messageport-zeiger im menufenster auf den des anwendungsfensters setzen oder ist der portzeiger im menufenster überflüssig wenn man seinen layer auf das anwendungsfenster verbiegt?
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 16:32 Uhr

Thore
Posts: 2266
Nutzer
Ich denke du schaust Dir erstmal die Guides der Developer CD ind er Rubrik Event- und Message Handling an :)
Ohne das Grundwissen wird das sonst ein Stochern im Nebel.

[ - Antworten - Zitieren - Direktlink - ]

21.12.2010, 18:11 Uhr

AGSzabo
Posts: 1663
Nutzer
@Thore:

Keine Ursache, ich habs jetzt hin bekommen! Fehlt nur noch die Umrechnung der Mauskoordinaten! Danke...
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

22.12.2010, 17:41 Uhr

AGSzabo
Posts: 1663
Nutzer
Ok, das Menu ist soweit dass (sub)fenster auf und zu gehen können. sie werden gezeichnet und die maus darüber wird korrekt umgesetzt.

Über IDCMP_INACTIVEWINDOW des anwendungsfensters weis ich ob ich die menus alle wieder zu klappen soll. das funktioniet auch, außer wenn ich in das workbench fenster klicke, dann friert der amiga für 2 sekunden ein! dann gehen meine menus zu und alles geht normal weiter...

EDIT: hat sich erledigt, war ein bug meinerseits!

--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ Dieser Beitrag wurde von AGSzabo am 22.12.2010 um 22:07 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

30.12.2010, 06:37 Uhr

AGSzabo
Posts: 1663
Nutzer
ok, hier ist ein screenshot vom menu wie es jetzt aussieht:

Bild: http://images.quicktunnels.net/ox.jpg
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

30.12.2010, 08:21 Uhr

Thore
Posts: 2266
Nutzer
Ist das Absicht oder Zufall daß du deine Initialen A S (sogar von rechts nach links) als hebräische Schrift da hast? ;)

Lässt sich aber schonmal sehen, gratuliere.

[ - Antworten - Zitieren - Direktlink - ]

30.12.2010, 09:22 Uhr

AGSzabo
Posts: 1663
Nutzer
@Thore:

Hat sich so ergeben, ist mir bewusst. ich habe absichtlich die hebräischen buchstaben als grundlage für das logo genommen. :-) die gleiche frage wurde mir schon von jmd anderem gestellet. oder warst das auch du? lediglich das alef habe ich ein wenig verändert damit es mehr nach einem X aussieht. :-)
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

30.12.2010, 10:25 Uhr

Thore
Posts: 2266
Nutzer
> oder warst das auch du?
Schon möglich, war aber dann sicher ne Weile her. Meine Erinnerung ist bislang nicht immer die beste :)

[ - Antworten - Zitieren - Direktlink - ]

30.12.2010, 19:11 Uhr

AGSzabo
Posts: 1663
Nutzer
@Thore:

Das sich das so ergeben hat mit den buchstaben finde ich witzig. :lach: ich habe zwar OX als namen gut gefunden und wusste dass es die bedeutung von alef ist, aber anfangs hab ich nich noch nicht gewusst dass es darauf hinaus läuf dass sich dann meine initialen ergeben. was hast du mit hebräischen buchstaben zu tun? warum oder woher weisst du das es meine initialen sind? :)
--
Sam mini os4.1 upd. 2 / e-uae 39bb2 / A4000D 3.0 & 3.9 2mbchip 8mbfast Ariadne_II ide DVD und HD / A500 3.1 (mkick) adide 50mb / Athlon ii X2 Ubuntu Linux

[ - Antworten - Zitieren - Direktlink - ]

30.12.2010, 22:34 Uhr

Thore
Posts: 2266
Nutzer
Ich befasse mich seit langem mit Sprachen und Schriften, darunter chinesisch, arabisch und eben auch hebräisch.
Dein Name ist ja auch auf dem Screenshot lesbar, und die Zeichen sind eben von links nach rechts gelesen Samech und Alef (wobei der Anstrich des linken Füsschens nach unten versetzt wurde), richtigrum gelesen also AS.
OX (wie du erwähntest, Alef bedeutet "mythologisch" auch Ochse, nicht jedoch von der echten Bedeutung, da heißt Alef nur "A" oder "das erste") erinnert mich an GNU, von dem her finde ich die Wortwahl lustig gewählt :)

[ Dieser Beitrag wurde von Thore am 30.12.2010 um 22:37 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > fenster unter maus aktivieren [ - Suche - Neue Beiträge - Registrieren - Login - ]


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