Who's Online |
98 user(s) are online ( 29 user(s) are browsing Forums)
Members: 3
Guests: 95
khayoz, eastone, K-L,
more...
|
|
|
|
Re: 2023 - November - Blastaway
|
Posted on: 11/27 22:08
#1
|
Just can't stay away 
|
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
Posted on: 11/20 14:38
#2
|
Just can't stay away 
|
@kas1e
Don't use GA_RelRight but set gadgets position using GA_Left and GA_Top.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
|
Just can't stay away 
|
I'll have to give up. Either WB crashes, anything crashes or no gadgets show up.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
Posted on: 11/18 14:44
#5
|
Just can't stay away 
|
@jabirulo Quote: But don't know how to "bind" mouse events to such gadget. You can find UserPort in Window structure. Doesn't GetMsg remove the message from the port. Then one have to put messages back to the port if they don't belong to you. struct MsgPort contains mp_MsgList so maybe it's possible to browse through the list with GetHead+GetSucc.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
Posted on: 11/18 14:35
#6
|
Just can't stay away 
|
@jabirulo
Can you share your source code ? When I'm trying to add gadgets to a WB window nothing shows up. Are you adding gadgets to the NewWindow or to the already opened window ?
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
Posted on: 11/16 19:25
#7
|
Just can't stay away 
|
@kas1e What I'm doing is getting list of opened drawers from WB and then comparing directory paths last part to a window title. That method is not errorless, of course. Volumes have more stuff on the titlebar than just the name.
struct List *drwlist=NULL;
IWorkbench->WorkbenchControl(0,WBCTRLA_GetOpenDrawerList,&drwlist,TAG_DONE);
// browser through the list
IWorkbench->WorkbenchControl(0,WBCTRLA_FreeOpenDrawerList,drwlist,TAG_DONE);
You can use AddGadget() to add more gadgets to a window. PS. I'm almost tempted to volunteer to Hyperion to improve the WB itself.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
|
Just can't stay away 
|
Even if you guys manage to add your own gadgets to a window, remember that any input events will then go to Workbench and not your program. You'll have to find the used msg port and read events for your gadgets from there without removing any messages because WB needs to get its messages to function correctly.
I found in my tests that even Notepad had the WFLG_WBENCHWINDOW set.
I tried to read tag list in the patched OpenWindow... but found bogus tags only.
Also if you'll do anything in your patched OpenWindow... before calling the original function, Workbench will crash eventually and at random for a reason or another. You'll have to call the original function immediately in the beginning of your function to prevent WB crashing.
@kas1e Restore the original function pointer to Intuition before quitting your program. Otherwise Intuition will stay broken. Or was the idea that your program won't ever quit.
@jabirulo It's interesting to see the tag list you found.
@thread We have many features in context menus already so is this WB toolbar really that much necessary ?
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
|
Just can't stay away 
|
Patching any OpenWindow routines is useless obviously. We can find struct Window memory pointers to WB windows by other means and then add more gadgets to them.
Also I noticed that when you hold the window titlebar Intuition won't refresh the display no matter how you try to update window positions.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
Posted on: 11/14 22:54
#10
|
Just can't stay away 
|
@jabirulo
Thanks, for the WFLG_WBENCHWINDOW tip!
@thread I found and fixed a bug also.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
Posted on: 11/14 22:29
#11
|
Just can't stay away 
|
I was trying to find this topic at one night but didn't find it. I thought it was removed by somebody for some reason. :)
>"when you move the window, buttons stays not connected to the window, but leaves on the workbench screen, and after a while moved to the window"
I thought, I didn't know if it's possible to patch WB to get what we want. So I'm using timer.device. I didn't want it to use too much CPU so put the delay to 2 seconds. That makes reacting to window changes that slow. The routine checks for opened and closed WB windows. I thought it's acceptable delay. There's a notification system built into AOS but it reports screen opening closing or depth arrangement but it doesn't report window moving, so not possible to use that approach.
>"have preferences to choose what kind of buttons we want" That's quite bunch of work to do. Didn't bother.
@kas1e >"Instead, seems OpenWindowTagList() is used for!" Thanks, to find out which one of the functions WB uses!
Thanks, for the SetMethod example!
@thread Workbench offers few hooks for copying and deleting files and text inputting, which you can use for your own implementation. That's how RAWBInfo works. But WB doesn't offer hooks for anything else.
If you guys don't mind flooding the window titlebar with buttons, it's rather easy to add new titlebar buttons to windows. But I don't like that trend. I want to find free place to grab a window with the mouse.
Any this kind of a utility as a dirty hack. It would be the best if Hyperion's AmigaOS developers could improve the Workbench itself!
We can try that patching of window opening routines, if that would give better chances.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: 2023 - November - Blastaway
|
Posted on: 11/12 0:22
#12
|
Just can't stay away 
|
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: 2023 - November - Blastaway
|
Posted on: 11/11 17:34
#13
|
Just can't stay away 
|
post deleted
Edited by TSK on 2023/11/12 0:23:08
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: 2023 - November - Blastaway
|
Posted on: 11/9 23:06
#14
|
Just can't stay away 
|
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
Posted on: 11/6 22:02
#15
|
Just can't stay away 
|
Okay. They don't patch WB but rather find out where WB windows are located and then open a small borderless window on top of a drawer window. Basically I have done the same with WBPreview commodity. When you open the WBPreview window and then select any picture file on an open drawer window the WBPreview displays the picture. Adding a toolbar to a window works in icon mode because you can scroll icons down a bit to make room for the toolbar. But you shouldn't cover the titlebar with the toolbar window in lister/text mode.
I'm wondering, Mac and Windows are stuffing buttons on the window titlebar, which is wrong IMHO, the window titlebar is also a drag bar. But adding few buttons to the titlebar (as titlebar/sys gadgets) could be one option.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: DrawerGenie for AOS4?
|
Posted on: 11/5 22:22
#16
|
Just can't stay away 
|
The interesting thing is how do they patch Workbench to add the toolbar. I understood a complete WB replacement is not desired here but patching WB drawers instead. The source code is without linefeeds so a bit hard to read in Notepad. They seem to use WB's arexx port a lot. I'm wondering also if AOS3.5 WB has features missing in AOS 3.1-3.2 and AOS4.x.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: Amiga38 Germany
|
Posted on: 10/13 1:04
#17
|
Just can't stay away 
|
1200 EUR for A1222 is too much. I was thinking to get one but not with such price. Luckily my X1000 functions fine still.
Any speed up to emulation sounds interesting. I would like to use AmigaOS4 on a laptop. I've had trouble to get WinUAE or qemu working well enough.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: Amiga38 Germany
|
Posted on: 10/8 12:17
#18
|
Just can't stay away 
|
Who was that person who presented AmigaOS 3.3 ?
Who was that person sitting next to Dave Haynie ?
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: USB driver for eGalax touchscreen controller
|
|
Just can't stay away 
|
I guess this is not enough ?
struct IOStdReq *MyInputReqMsg=NULL;
struct InputEvent *inputEvent=NULL;
inputEvent=(struct InputEvent *)IExec->AllocVecTags(sizeof(struct InputEvent),TAG_DONE);
if (inputEvent!=NULL)
{
inputEvent->ie_NextEvent=NULL;
inputEvent->ie_Class=(uint8)IECLASS_RAWKEY;
inputEvent->ie_SubClass=0;
inputEvent->ie_Code=(uint16)code;
inputEvent->ie_Qualifier=0;
IIntuition->CurrentTime(&inputEvent->ie_TimeStamp.Seconds,&inputEvent->ie_TimeStamp.Microseconds);
}
MyInputReqMsg=(struct IOStdReq *)IExec->AllocSysObjectTags(ASOT_IOREQUEST,ASO_NoTrack,FALSE,
ASOIOR_Size,sizeof(struct IOStdReq),
TAG_DONE);
if (MyInputReqMsg!=NULL)
{
if (IExec->OpenDevice("input.device",0,(struct IORequest *)MyInputReqMsg,0)==0)
{
MyInputReqMsg->io_Data=(APTR)inputEvent;
MyInputReqMsg->io_Command=IND_ADDEVENT; //IND_WRITEEVENT
IExec->SendIO((struct IORequest *)MyInputReqMsg);
IExec->CloseDevice((struct IORequest *)MyInputReqMsg);
}
else IExec->DebugPrintF("VirtualKeyboard: Open device failed\n");
}
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|
Re: Amiga38 Germany
|
Posted on: 10/3 23:56
#20
|
Just can't stay away 
|
Uh! Too short notice.
|
Rock lobster bit me, so excuse me. X1000 + AmigaOS 4.1 FE "Anyone can build a fast CPU. The trick is to build a fast system." - Seymour Cray
|
|
|