ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > Workbench-Icons Drag and Drop | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
19.08.2007, 22:39 Uhr woop Posts: 67 Nutzer |
Hallo, ich suche gerade Infos darüber, wie man ein Fenster auf der Workbench öffnet, in welches man Workbench-Icons ziehen und fallenlassen kann, werde allerdings nicht fündig. Wie ist die Vorgehensweise für sowas? Optimal wäre für mich, wenn mein Programm sobald der User das tut eine Message bekommt, inklusive einer Liste mit Locks und Namen der fallengelassenen Icons. Ich nehme an, ich muss bein Fenster dazu erstmal bei der Workbench als "Iconempfänger" anmelden. Achja, unter Kick 1.2 soll das ganze auch funktionieren Gruß [ - Antworten - Zitieren - Direktlink - ] |
19.08.2007, 23:21 Uhr Der_Wanderer Posts: 1229 Nutzer |
Welche Sprache ? Ab Amiblitz3_beta4 sind Templates dabei, da gibt es WB_App2, das macht genau das, was du oben schreibst. Wie es funktioniert, kannst du da sehen. Es nutzt allerdings eine inlcude (app.inlcude), die müsstest du dir auch anschauen, dort passiert eigentlich die dreckige Arbeit. Ob das allerdings unter 1.2 geht, wage ich zu bezweifeln. -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ - Antworten - Zitieren - Direktlink - ] |
19.08.2007, 23:29 Uhr woop Posts: 67 Nutzer |
Zitat: Das gute alte C. Zitat: Ist das lesbarer Code, der da in den Amiblitz Templates und Includes steht, sprich, sehe ich welche Betriebssystemfunktionen benutzt und welche Strukturen verändert werden? Wenn ja, wo kriege ich die am besten her? Gruß [ - Antworten - Zitieren - Direktlink - ] |
19.08.2007, 23:37 Uhr Der_Wanderer Posts: 1229 Nutzer |
Der Code ist änhlich wie C, und man sieht wie die OS funktionen benutzt werden. Das ganze is abgekapselt in die "app.inlcude", die dann high-level funktionalität für AB3 zur verfügung stellt, die dann von dem Template Code benutzt wird. Wenn du willst kann ich dir dir app.inlcude als ASCII zuschicken, ansonsten benötigtst du AB3 beta4, das gibts hier: http://www.david-mcminn.co.uk/bernd/ab3/AmiBlitz3full_beta4.lha ACHTUNG: Jetzt bitte keine News draus machen, das ist eine Developer Version. Das Final 3.0 release kommt schon noch, keine Angst. Kannst ja, wenn du AB3 hast, einfach mal auf Source->New->WB_App2 gehen und compile&run machen, dann siehst du was es macht. Ist ein wenig mehr als du brauchst, also auch App Menu und App Icon, aber das kann man einfach weglassen. -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ Dieser Beitrag wurde von Der_Wanderer am 19.08.2007 um 23:39 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
20.08.2007, 17:03 Uhr Holger Posts: 8116 Nutzer |
@woop: Hier das Standard-Beispiel: C code:;/* AppWindow.c - Execute me to compile me with SAS/C 6.56 sc NMINC STRMERGE NOSTKCHK NODEBUG DATA=NEAR IGNORE=73 AppWindow.c slink FROM LIB:c.o,AppWindow.o TO AppWindow LIBRARY LIB:sc.lib,LIB:amiga.lib quit */ /* Copyright (c) 1991-1999 Amiga, Inc. This example is provided in electronic form by Amiga, Inc. for use with the Amiga Mail Volume II technical publication. Amiga Mail Volume II contains additional information on the correct usage of the techniques and operating system functions presented in these examples. The source and executable code of these examples may only be distributed in free electronic form, via bulletin board or as part of a fully non-commercial and freely redistributable diskette. Both the source and executable code (including comments) must be included, without modification, in any copy. This example may not be published in printed form or distributed with any commercial product. However, the programming techniques and support routines set forth in these examples may be used in the development of original executable software products for Amiga computers. All other rights reserved. This example is provided "as-is" and is subject to change; no warranties are made. All use is at your own risk. No liability or responsibility is assumed. */ #include <exec/memory.h> #include <intuition/intuition.h> #include <workbench/startup.h> #include <workbench/workbench.h> #ifdef LATTICE #include <stdio.h> /* disable SAS/C CTRL-C handing */ int CXBRK(void) { return (0); } int chkabort(void) { return (0); } #include <clib/exec_protos.h> #include <clib/intuition_protos.h> #include <clib/icon_protos.h> #include <clib/wb_protos.h> #endif struct IntuitionBase *IntuitionBase; struct WorkbenchBase *WorkbenchBase; void main(void); void main(void) { struct MsgPort *msgport; struct Window *window; struct AppWindow *appwindow; struct IntuiMessage *imsg; struct AppMessage *appmsg; struct WBArg *argptr; ULONG id = 1, userdata = 0; BOOL ABORT = FALSE; UCOUNT i; /* Open Intuition.library & Workbench.library. Fail silently if < 36 */ if (IntuitionBase = OpenLibrary("intuition.library", 36)) { if (WorkbenchBase = OpenLibrary("workbench.library", 36)) { /* Create the message port to which Workbench can send messages */ if (msgport = CreateMsgPort()) { if (window = OpenWindowTags(NULL, WA_Left, 0, WA_Top, 1, WA_Width, 160, WA_Height, 50, WA_IDCMP, CLOSEWINDOW, WA_Flags, WINDOWCLOSE | WINDOWDRAG, WA_Title, "AppWindow", TAG_END)) { /* * Turn the window we opened into an AppWindow. Provide an * ID so you can tell possible more AppWindows apart. */ if (appwindow = AddAppWindow(id, userdata, window, msgport, NULL)) { do { /* Wait for either a CLOSEWINDOW or an AppMessage */ Wait(1 << window->UserPort->mp_SigBit | 1 << msgport->mp_SigBit); while (imsg = (struct IntuiMessage *) GetMsg(window->UserPort)) { if (imsg->Class = CLOSEWINDOW) ABORT = TRUE; ReplyMsg((struct Message *) imsg); } while (appmsg = (struct AppMessage *) GetMsg(msgport)) { /* * The AppMessage type will be MTYPE_APPWINDOW, * the ID & userdata are what we supplied when * the window was designed as an AppWindow. * NumArgs allows us to process the Workbench * arguments properly. */ printf( "aw: appmsg=%lx, Type=%ld, ID=%ld, UserData=%ld, NumArgs=%ldn", appmsg, appmsg->am_Type, appmsg->am_ID, appmsg->am_UserData, appmsg->am_NumArgs); /* * Get a pointer to the start of the Workbench * argument list. */ argptr = appmsg->am_ArgList; for (i = 0; i < appmsg->am_NumArgs; i++) { /* * The lock will be on the directory in * which the file resides. If there is no * filename, either a volume or window was * dropped on us. */ printf("targ(%ld): Name='%s', Lock=%lxn", i, argptr->wa_Name, argptr->wa_Lock); /* Point to next argument */ argptr++; } ReplyMsg((struct Message *) appmsg); } } while (ABORT == FALSE); /* remove the appwindow status and close down */ RemoveAppWindow(appwindow); } else printf("Couldn't AddAppWindown"); CloseWindow(window); } else printf("Couldn't open windown"); DeleteMsgPort(msgport); } else printf("Coulnd't create messageportn"); CloseLibrary(WorkbenchBase); } else printf("Couldn't open workbench.libraryn"); CloseLibrary(IntuitionBase); } else printf("Couldn't open intuition.libraryn"); } Zitat:Das kannst Du allerdings vergessen. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
20.08.2007, 21:13 Uhr woop Posts: 67 Nutzer |
Zitat: Prima, genau das habe ich gesucht! Zitat:Zitat:Das kannst Du allerdings vergessen. Hmja, das hatte ich befürchtet. Die benötigte workbench.library gibts erst ab 2.0. Vielen Dank euch beiden für die Hilfe und das Codebeispiel! Gruß, woop [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Workbench-Icons Drag and Drop | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |