DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > Hidden Windows unter OS4 Herausfinden | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2005-09-19, 19:55 h DariusBrewka Posts: 899 [Banned user] |
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. [ - Answer - Quote - Direct link - ] |
2005-09-21, 01:39 h geit Posts: 332 [Former member] |
@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 [ - Answer - Quote - Direct link - ] |
2005-09-21, 09:51 h DariusBrewka Posts: 899 [Banned user] |
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 [ - Answer - Quote - Direct link - ] |
2005-09-21, 10:43 h srupprecht Posts: 39 User |
Mit long boolean; GetWindowAttrs(window, WA_Hidden, &boolean, TAG_DONE); [ - Answer - Quote - Direct link - ] |
2005-09-21, 10:56 h DariusBrewka Posts: 899 [Banned user] |
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 [ - Answer - Quote - Direct link - ] |
2005-09-21, 12:03 h srupprecht Posts: 39 User |
@DariusBrewka: Ok, da hab' ich wohl verpennt das Autodoc aktuell zu halten ;-) Es funktioniert aber damit. [ - Answer - Quote - Direct link - ] |
2005-09-21, 12:14 h DariusBrewka Posts: 899 [Banned user] |
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. [ - Answer - Quote - Direct link - ] |
2005-09-21, 12:22 h srupprecht Posts: 39 User |
@DariusBrewka: An den paar Sourcecode-Zeilen kann ich nichts finden. IdR. ist eine Ausgabe des GrimReapers bzw. ein serieller log, da schon hilfreicher. [ - Answer - Quote - Direct link - ] |
2005-09-21, 12:30 h DariusBrewka Posts: 899 [Banned user] |
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. ] [ - Answer - Quote - Direct link - ] |
2005-09-21, 12:36 h geit Posts: 332 [Former member] |
@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. ] [ - Answer - Quote - Direct link - ] |
2005-09-21, 12:43 h DariusBrewka Posts: 899 [Banned user] |
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. ] [ - Answer - Quote - Direct link - ] |
2005-09-21, 12:53 h srupprecht Posts: 39 User |
@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(). [ - Answer - Quote - Direct link - ] |
2005-09-21, 16:15 h DariusBrewka Posts: 899 [Banned user] |
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 [ - Answer - Quote - Direct link - ] |
2005-09-22, 21:12 h Georg Posts: 107 User |
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). [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > Hidden Windows unter OS4 Herausfinden | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |