The mockup I'm talking about was different but the author is the same. If I find time I will try to prepare sth similar or else Thomas will beat me to it
And it would be nice to have such sources (with permision of author) and fix those bugs and make maybe a minimal release without all those settings, just the addresbar and couple of buttons, instead of reinventing the whell for N time.
And it would be nice to have such sources (with permision of author) and fix those bugs and make maybe a minimal release without all those settings
Well, it's so buggy in all the ways (options, strings, etc) that it really hardcore to fix this all. Instead, all we need is just 4 buttons : left, right, root, dir up (maybe) + ulr_bar, like on DH1 window of screenshot above, and we will be happy with :)
Btw, there how to check if the window we need to patch are the one we need (so no other windowses , no "About" window of workbench, no other stuff, so we will add gadgets only to the necessary windowses):
w = Original_OpenWindowTagList(Self, nw, tagList);
if(!w) {
return NULL;
}
// To find out if it workbench window or not we want to patch, we check on:
// 1. caller's Node name of current Task should be "Workbench"
// 2. if WFLG_WBNECHWINDOW flag should be set
// 3. if WFLG_BACKDROP flag is NOT set
// TRUE if it Workbench, WFLG_WBENCHWINDOW and not WFLG_BACKDROP, and FALSE is requments not meet.
wb = nw && !stricmp(Caller->tc_Node.ln_Name, "Workbench") && (nw->Flags & WFLG_WBENCHWINDOW) && !(nw->Flags & WFLG_BACKDROP);
if (wb == TRUE) {
IExec->DebugPrintF(" -- This is Workbench Window and need pathing!\n");
} else {
IExec->DebugPrintF(" -- This window need no patching!\n");
// exit from patch
return w;
}
if(wb) {
IExec->DebugPrintF("#3 Let's Add gadgets to Workbench window!\n");
// all our code by adding gadgets are there
}
return w;
}
At least with this one, i do have correct output on serial for only necessary Workbench windowses.
Its purpose was exactly to collect new projects to integrate into AmigaOS So how about opening a project there?... Maybe, once we have a working basic version this could push the team to officially integrate these changes into AmigaOS
But to say for real, this makes no sense. The past show that all what important is the programmer working on. No special hosting, not special teams, no special sites are help there.
And , we talk about patch, which is hack. For amigaos4 itself, it should be just fully rewritten workbench from scratch, or , at least this functionality should be added to the original workbench code, with ability to enable/disable it.
The hacks are just for us, for the time (maybe forever) being, but asking for official include of the hacks to the OS, that hardcore :)
I think I'm already using it, it's the EvoTheme, but in the screenshot you showed it looks a little different, maybe the image was edited afterwards. Thanks anyway
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne x5000/40 AmigaOs4.1 FE
I'd suggest WBBar (or maybe WBToolBar) - that leaves it open for whatever later ideas you'll get for new tools/buttons, and it doesn't tie it too much to the Windows Genie program.
It may seem boring, but it's always nice when a name describes what it is, no more, no less .
@TSK Of course, it's not the work of one day. It's boring work with bug hunting and tests. If you don't ready for, better not worry about :) Giving up after few days mean you have no interest in, so why bother then :)
@All There is my simple test case when nothing crashes, patching happens of only necessary WB windows, and added simple gadget at top (through, to the title bar for now only):
w = Original_OpenWindowTagList(Self, nw, tagList);
if(!w) {
return NULL;
}
// To find out if it workbench window or not we want to patch, we check on:
// 1. caller's Node name of current Task should be "Workbench"
// 2. if WFLG_WBNECHWINDOW flag should be set
// 3. if WFLG_BACKDROP flag is NOT set
// TRUE if it Workbench, WFLG_WBENCHWINDOW and not WFLG_BACKDROP, and FALSE is requments not meet.
wb = nw && !stricmp(Caller->tc_Node.ln_Name, "Workbench") && (nw->Flags & WFLG_WBENCHWINDOW) && !(nw->Flags & WFLG_BACKDROP);
if (wb == TRUE) {
IExec->DebugPrintF(" -- This is Workbench Window and need pathing!\n");
} else {
IExec->DebugPrintF(" -- This window need no patching!\n");
// exit from patch
return w;
}
if(wb) {
IExec->DebugPrintF("#3 Let's Add gadgets to Workbench window!\n");
// all our code by adding gadgets are there
Now just need to understand how to add this gadget correctly on the window content with resizing and refreshing of the window content on the necessary size and then send/recv actions from window port and that mostly all.
@All I suck on Intution/Reaction coding, learning now, but so far i were able also to create string gadget, with attached string hook to it, which can handle all stuff in (so that kind of "path/url" string). Need to understand now how to calcualte all those negative GA_* things, and what is more necessary : how to expand the window size with adding new gadget in it (i.e. not to overwrite content of window, but read all the gadgets from current window, and change them)
@TSK Quote:
Don't use GA_RelRight but set gadgets position using GA_Left and GA_Top.