ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > Hidden Windows unter OS4 Herausfinden | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
19.09.2005, 19:55 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Wie kann ich unter OS4 herausfinden, ob ein Fenster Hidden ist irgendwie finde ich dafür weder eine Funktion, noch ein Flag irgendwo in der WindowStruktur. [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 01:39 Uhr geit Posts: 332 [Ex-Mitglied] |
@DariusBrewka: Also da hier noch keine Antworten gekommen sind, liege ich wohl mit meiner Vermutung richtig. Das "Hiden"-Feature wurde von MorphOS erfunden. Dabei bleiben Rastports und alle anderen Strukturen intakt, während das Fenster einfach nur nicht mehr gezeichnet wird. Da Du wie Du sagst keine Funktionen dafür gefunden hast, gehe ich mal davon aus, das es sie nicht gibt, weil es das Feature nicht gibt. Der Iconify-State, wie ihn Reaction oder MUI durchführt ist ein Fensterschließen. Die Fenster gibt es schlicht nicht mehr. Guido Mersmann [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 09:51 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Zitat: Naja, da es die Funktionen SchowWindow() und HideWindow() gibt, wirds wohl auch das Verschwinden-der-Fenster Feature geben, und ob es nur ein einfaches Fenster schliessen ist glaube ich nicht, ich habe das gleiche auch in AROS wo das Fenster verschwindet aber dennoch die Fensterstruktur weiterhin existent bleibt. gruss Darius [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 10:43 Uhr srupprecht Posts: 39 Nutzer |
Mit long boolean; GetWindowAttrs(window, WA_Hidden, &boolean, TAG_DONE); [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 10:56 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
So habe ich es mir auch gedacht, in den Autodocs die ich habe steht WA_Hidden nicht in der Liste der für GetWindowAttrs() nutzbaren Tags. danke [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 12:03 Uhr srupprecht Posts: 39 Nutzer |
@DariusBrewka: Ok, da hab' ich wohl verpennt das Autodoc aktuell zu halten ;-) Es funktioniert aber damit. [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 12:14 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Hab's mir auch gedacht, aber ich will nicht etwas was nicht explizit erlaubt ist nutzen. Wie auch immer testen kann ich's nicht ohne einen OS4 Rechner, ansonsten funktioniert mein Programm nach hörensagen ganz gut auf OS4 (ok hat nur einer getestet bisher). Was mir jetzt noch fehlt ist das meine zusatztools auch damit laufen (das hatten wir doch schon mal), ich habe zwar das Ganze durch einen OS4 Lib code ergänzt, aber irgendwie schmiert das ab und nun weiß ich nicht ob's an der Lib liegt oder an dem wie ich auf diese zugreife. code:void CreateArgTool(struct ToolsModule *mod, char *name, APTR config) { if (toolPort) { if (name) { freeString(mod->libname); mod->libname = allocString(name); } if (mod->libname) { mod->lib = OpenLibrary(mod->libname, 39); #ifdef __amigaos4__ if (mod->lib) { mod->IF = (struct Amistart_ToolsIFace *) GetInterface(mod->lib,"main",1,NULL); if (mod->IF == NULL) { CloseLibrary((struct Library *) mod->lib); mod->lib = NULL; } } #endif mod->tool = NULL; if (mod->lib) { #ifdef __amigaos4__ if (mod->IF->OpenTool()) { #else if (OpenTool(mod->lib)) { #endif #ifdef __amigaos4__ mod->tool = mod->IF->NewTool(config, pool); if (mod->tool) mod->port = mod->IF->GetToolPort(mod->tool); #else mod->tool = NewTool(config, pool, mod->lib); if (mod->tool) mod->port = GetToolPort(mod->tool, mod->lib); #endif } } } } } da mehrere Module vorhanden sein können kann ich nicht einfach NewTool() etc. nutzen, sondern muss auch die Libbase mit angeben. Bei OS4 sichere ich halt das Interface und rufe die Funktionen darüber auf. [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 12:22 Uhr srupprecht Posts: 39 Nutzer |
@DariusBrewka: An den paar Sourcecode-Zeilen kann ich nichts finden. IdR. ist eine Ausgabe des GrimReapers bzw. ein serieller log, da schon hilfreicher. [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 12:30 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Ich vermute mal, dass es an der Library selber liegt, gibt's irgendwo ein Beispiel wie man eine erzeugt für OS4 PPC Nativ?, ich habe von os4depot die expat_lib genommen und geschaut wie es da geht und mir auch den muiheader source angeschaut und genauso verfahren, trotzdem der Absturz. Wie gesagt selber testen kann ich nicht, darum muss ich warten bis ich die Meldung der GrimReapers von meinem Tester bekomme. gruss und danke Darius [ Dieser Beitrag wurde von DariusBrewka am 21.09.2005 um 12:30 Uhr editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 12:36 Uhr geit Posts: 332 [Ex-Mitglied] |
@DariusBrewka Ok, dann werde ich mir wohl auch mal ein aktuelleres SDK besorgen müssen. Hab OS4 auch noch nicht wirklich selbst benutzt. Geit [ Dieser Beitrag wurde von geit am 21.09.2005 um 12:37 Uhr editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 12:43 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Zu OS4 selber ich find's schon lustig dass ich trotz mangels an OS4 mein Programm (ca 25000 Zeilen) innerhalb von ein Paar stunden auf OS4 lauffähig gemacht habe (soviel zum Thema Bugs und Bernd Rösch...) Das SDK das habe ich aus dem GoldED Developer Environment [ Dieser Beitrag wurde von DariusBrewka am 21.09.2005 um 12:45 Uhr editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 12:53 Uhr srupprecht Posts: 39 Nutzer |
@DariusBrewka: Mit dem idltool (68k version im os4depot) kann man auch ein Skelett einer OS4 Library erzeugen. Notwendige Änderungen sind (kurzgefasst): - RTF_NATIVE in ROM Tag setzen. - rt_Init muß auf die OS4 Erweiterungen zeigen (siehe Skelettcode). - Letzter Parameter von LibInit() ist struct ExecIFace und nicht struct ExecBase. - Der erste Parameter einer Libraryfunktion ist immer das Interface. Die "Base" bekommst Du mittels Interface->Data.LibBase. - vararg Funktionen (...) müssen mit VARARGS68K deklariert werden (siehe auch va_start(), va_getlinearva() und va_end()). - In LibExpunge() die Library mit DeleteLibrary(Base) freigeben und nicht mit FreeMem(). [ - Antworten - Zitieren - Direktlink - ] |
21.09.2005, 16:15 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
Ich denke ich habe den Fehler gefunden war meine eigene Blödheit ich habe vergessen in libInit() vergessen die dos.library zu öffnen. Der Grimreaper log hat mir doch geholfen ;-) Da schaut man doch 10 mal libInit() an und sieht nicht das OpenLibrary("dos"...) fehlt. gruss und danke [ - Antworten - Zitieren - Direktlink - ] |
22.09.2005, 21:12 Uhr Georg Posts: 107 Nutzer |
Zitat: Das ganze ist eigentlich ne relativ einfache Layers Geschichte. Ein unsichtbarer Layer wird aus seiner Sicht so gehandelt also ob er komplett verdeckt bzw. außerhalb des Screens ist. Und andere Layer handeln den unsichtbaren Layer so, als ober er gar nicht da wäre (z. B. beim Berechnen der sichtbaren/unsichtbaren Bereiche dieser anderen Layer). [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Hidden Windows unter OS4 Herausfinden | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |