[#1] GoSnap
Moja propozycja na Amiga 40 Tools Jam 2025:

GoSnap - program który wprowadza do AmigaOS funkcję "snapowania" okien do krawędzi ekranu, znaną z nowoczesnych systemów operacyjnych.

Na chwilę obecną rozpoznawanych jest 8 obszarów:
  • 4 narożniki ekranu, do których przyciągnięcie okna powoduje ustawienie rozmiaru snapowanego okna na 1/4 rozmiaru ekranu i spozycjonowanie go do danego narożnika
  • krawędzie lewa, prawa, dolna - ustawienie rozmiaru okna na 1/2 wielkości ekranu i spozycjonowanie go do krawędzi
  • krawędź górna - ustawienie okna na cały ekran.

Działanie bety można zobaczyc na poniższym filmie:



Program działa jako commodity, i jest zarządzalny przez systemowy Exchange, skąd można go wyłączyć lub spauzować działanie.

Konfiguracja za pomocą ToolType - można ustawić szerokość monitorowanej strefy przy krawędziach ekranu (domyslnie 10 pikseli), określić jak ma być wyliczana pozycja okna względem belki ekranu (przysłaniać czy nie), można też włączyc/wyłączyc pokazanie przy starcie obszarów snapowania (funkcja testowa, docelowo pewnie usunę to).

Beta 0.12 do pobrania stąd:
https://bitplan.itch.io/gosnap

Ostatnia aktualizacja: 18.05.2025 16:11:55 przez vojo

Ostatnia aktualizacja: 18.05.2025 22:33:31 przez vojo
11
[#2] Re: GoSnap

@vojo, post #1

Szkoda, że nie dla OS3.1
[#3] Re: GoSnap

@TomcioPaluszek, post #2

OS 3.1 nie wspiera przeciągania okien poza krawędź ekranu, więc trudno byłoby przesunąć okno tak, żeby myszka dotknąć krawędzi ekranu lub narożnika.
1
[#4] Re: GoSnap

@vojo, post #1

Od kiedy w Windows (chyba 7?) pojawiło się to rozwiązanie, bardzo mi go brakuje w AmigaOS :) Dziękuję!!!
[#5] Re: GoSnap

@vojo, post #1

Dodam że program respektuje minimalne/maksymalne rozmiary okna ustawione przez autora danego programu, oraz to czy okno w ogóle jest skalowalne. Jeśli nie, to GoSnap tylko ustawi okno do właściwej pozycji bez zmiany rozmiaru.
[#6] Re: GoSnap

@vojo, post #1

Super domyślam się, że powstał w AmigaE
[#7] Re: GoSnap

@tukinem, post #6

domyślam się, że powstał w AmigaE

No dobrze się domyślasz OK
[#8] Re: GoSnap

@vojo, post #3

Czyli programy które to umożliwiają na OS3.1 np.PowerWindows (aminet) w tym nie pomogą ?
[#9] Re: GoSnap

@Norbert, post #8

Czyli programy które to umożliwiają na OS3.1 np.PowerWindows (aminet) w tym nie pomogą ?

Szczerze mówiąc nie mam pojęcia, może by działało. Tylko czy ktoś tego jeszcze używa?
[#10] Re: GoSnap

@vojo, post #9

Hej, wiele osób używa Amiga OS 3.1 w tym ja (albo 3.5, 3.9).

Moim zdaniem można zrobić tak, by po dotknięciu okienkiem (nie myszką) o ramę ekranu wywoływana była funkcja programu GoSnap.

Notabene, Twój program to bardzo ciekawe i pomysłowe narzędzie.
[#11] Re: GoSnap

@Hexmage960, post #10

wiele osób używa Amiga OS 3.1

Wszystkim tym osobom szczerze polecam przesiadkę na 3.2, naprawdę ma całą masę uprawnień, nie tylko bezproblemowe przeciąganie okien poza ekran.

Ja już os 3.1 traktuje na zasadzie że jak coś robię i działa to fajnie, a jak nie działa - trudno. Chyba że jakiś drobiazg, który w kilka minut można obejść, to ok - dodam. To co proponujesz to napisanie prawie nowego programu z nową logiką, poza tym wywoływaloby wg mnie całą masę niechcianych przez użytkownika akcji. Tak samo traktuje OS 2.0 i 1.3.

Jak program się ustabilizuje, udostępnię na Githubie źródła, może ktoś będzie chciał dodać wsparcie dla 3.1.
3
[#12] Re: GoSnap

@vojo, post #11

To co proponujesz to napisanie prawie nowego programu z nową logiką, poza tym wywoływaloby wg mnie całą masę niechcianych przez użytkownika akcji.

Nie wiem jak działa Twój program. Zakładałem, że wydarzenie "mysz dotknęła ramy ekranu" można łatwo zastąpić wydarzeniem "okno dotknęło ramy ekranu", bo to tylko kwestia czy to współrzędne myszy czy lewego górnego rogu okienka.

Jeżeli to jednak spory problem implementacyjny, to oczywiście nie nalegam na to rozwiązanie.

Na mojej Amidze 1200 jest ciężko zainstalować OS 3.2 z Workbenchem, bo mam niezgodną kartę turbo Blizzard, która ma problemy z SetPatch lub LoadModule. OS 3.1, 3.5 i 3.9 natomiast działają prawidłowo.

Ostatnia aktualizacja: 18.05.2025 23:31:25 przez Hexmage960
[#13] Re: GoSnap

@Hexmage960, post #12

Wkładasz Kickstart 3.2 albo mapujesz BlizKicksiem, instalujesz OS3.2 i będzie działać.

Nie widzę powodu korzystania nadal z 3.1 na maszynie z odpowiednią ilością pamięci dla 3.2.

Ostatnia aktualizacja: 18.05.2025 23:39:01 przez alt_
[#14] Re: GoSnap

@alt_, post #13

Ja nawet poleciłbym OS 3.2.3. Mam zarówno w A1200 z 8 MB fast RAM, jak i w A600 z 030 i 64 MB fast RAM. Szybciej startuje od OS 3.2.0. Na A600 miałem zwiechy, ale wyremowałem FBlit i FText z S-S i działa bez zająknięcia. Zdaję sobie sprawę, że jednak jeśli ktoś używa naście, dziesiąt lat systemu 3.1, to... starych drzew się nie przesadza
[#15] Re: GoSnap

@tukinem, post #14

Ależ oczywiście - mówiąc 3.2 mam na myśli jego najnowszy release.
[#16] Re: GoSnap

@vojo, post #11

Systemu 3.1 proszę nie poprawiać bo jeszcze będzie wyglądał jak 3.2.x. Niech już zostanie jak jest, a ten program to już na stałe do systemu 3.2.x powinni dodać. OK
1
[#17] Re: GoSnap

@alt_, post #13

Tylko BlizKick u mnie działa. SetPatch lub LoadModule w OS 3.2 powodują domyślnie zwiechę przy starcie.

OK, skoro ta funkcja OS 3.2 przeciągania okien poza ekran jest potrzebna do działania GoSnap, ja nie nalegam tak jak napisałem. To był tylko mój pomysł jak zapewnić działanie na OS 3.1.

@Tukinem

Ja używam Amiga OS 3.1 od dawna, mam też OS 3.5 i OS 3.9 w oryginalnych wersjach na płytach CD.

OS 3.5 pojawił się w 1999 roku. Jestem wierny systemowi Amigi. Używałem nawet OS 4.0 i 4.1, które wymagają procesora PPC.

OS 3.2 zrywa troszkę kompatybilność z popularnymi kartami turbo. Blizzard to bardzo popularna karta.
[#18] Re: GoSnap

@Hexmage960, post #17

Nie zrywa kompatybilności. U mnie działa poprawnie na Blizzardzie 1230 MK4 i CyberStormie MK1. Fizyczne ROMy.
[#19] Re: GoSnap

@alt_, post #18

OK, fizyczne ROMy w moim przypadku nie wchodzą w rachubę. Mam Blizzard 1230-IV i Blizzard 1260.

Ja zgłaszałem się z tą sprawą do deweloperów OS 3.2, bo póki co wygląda na to że tylko karty ACA i TF są w pełni obsługiwane.

Kolega Vojo celuje ze swoimi programami w Amiga OS 3.2, który posiada i działa u niego prawidłowo.

Faktycznie np. ja piszę soft, który wymaga OS 3.1, bo korzystam z kilku funkcji, które dopiero pojawiły się w tej wersji i nie wspieram OS 2.0 czy OS 1.3.

Rozumiem zatem kolegę Vojo, że korzysta z nowych funkcji systemowych OS 3.2 i nie wspiera wcześniejszych wersji.

Ostatnia aktualizacja: 19.05.2025 08:39:02 przez Hexmage960
1
[#20] Re: GoSnap

@Hexmage960, post #19

Zapytam z ciekawości dlaczego nie wchodzą w rachubę?
[#21] Re: GoSnap

@alt_, post #20

Zapytam z ciekawości dlaczego nie wchodzą w rachubę?

Nie potrafię zamontować kości. Poza tym wiąże się to z ryzykiem niepoprawnego montażu.

Ostatnia aktualizacja: 19.05.2025 10:24:28 przez Hexmage960
[#22] Re: GoSnap

@Hexmage960, post #21

To nie jest wiedza tajemna.
Poza tym przecież możesz znaleźć kogoś, kto ci pomoże.
[#23] Re: GoSnap

@vojo, post #1

Fajne i przydatne. OK Kiedyś człowiek chciał okien wychodzących poza krawędzie ekranu (chyba pozwalał na to MCP), a gdy później to dostaliśmy to okazało się, że czasem przydałoby się jednak nie wychodzić poza krawędź.

Ze wszystkich rozwiązań tego typu mi najbardziej pasuje, bardzo proste, standardowe zachowanie z MorphOS (działa chyba od ćwierć wieku). Czyli okna można przesuwać poza krawędzie ekranu, a gdy nacisnę Ctrl to przesuwane okno jest cofane do krawędzi ekran (i wtedy zachowuję się jak w AmigaOS 3.1). Dzięki temu, jeżeli potrzebuję, mogę ustawić sobie okno 5 pixeli od krawędzi ekranu i nic mi tej pozycji nie zmodyfikuje, nie przyciągnie. A gdy chcę dokładnie na krawędzi to przesuwam za nią, naciskam Ctrl i jest idealnie.

Ostatnia aktualizacja: 19.05.2025 12:03:09 przez MDW
[#24] Re: GoSnap

@Gandalf, post #22

To nie jest wiedza tajemna.
Poza tym przecież możesz znaleźć kogoś, kto ci pomoże.

Tak, domyślam się, że kolega _Alt potrafi wymieniać kostki ROM i na pewno chętnie by dopomógł.

Jednakże nie zdecyduję się na ten krok, ponieważ uważam, że ROM 3.1 jest bardzo stabilny, niezawodny i dopracowany. I nie sprawia u mnie żadnych problemów z działaniem.

Natomiast ROM 3.2 jest rozwijany i są robione poprawki błędów.

Aktualizacja systemu Amigi do wersji OS 3.2 na CD-ROMie powoduje u mnie problemy. Działa, tak jak napisałem mapowanie samego ROM poleceniem BlizKick.

Być może wystarczyłoby wrzucić wywołanie BlizKick oraz przekopiować ręcznie potrzebne komponenty, bez nowego SetPatch i LoadModule.

Ale wolałbym by taka oficjalna aktualizacja systemu Amigi nie sprawiała problemów. Karty ACA i TF to nowe konstrukcje.

Już się powtarzam, sorki. Przepraszam autora wątku za te moje wpisy dot. OS 3.2, a nie tematu.

Ostatnia aktualizacja: 19.05.2025 12:58:27 przez Hexmage960
1
[#25] Re: GoSnap

@Hexmage960, post #24

Jak piszesz OS 3.2, system jest rozwijany. Sprawdzałeś nową wersję 3.2.3 u siebie? Przyznam, że mnie aktualizacja pomieszała trochę kolory w FullPalette, ale zawsze miałem z tym problemy, a Ciebie nie podejrzewam o używanie VisualPrefs+Birdie
[#26] Re: GoSnap

@tukinem, post #25

Sprawdzałeś nową wersję 3.2.3 u siebie?

Nie, tej najnowszej wersji nie sprawdzałem. Ale czytałem szczegółowe Release Notes OS 3.2.3 i niestety nie znalazłem adnotacji o lepszym wspieraniu Blizzardów w rozdziale o wspieranych kartach ani w rozdziale o modułach.

Ostatnia aktualizacja: 19.05.2025 13:14:29 przez Hexmage960
[#27] Re: GoSnap

@vojo, post #1

Wersja 0.14,
poprawka w snapowaniu okien nieskalowalnych.
[#28] Re: GoSnap

@vojo, post #27

Odpaliłem, potestowałem, kilka spostrzeżeń.
  • Jeżeli jest ustawione KEEP_MENUBAR=YES, to górne krawędzie okien są i tak przyciągane do górnej krawędzi ekranu, a nie spodu belki ekranu. Jeżeli następuje zmiana rozmiaru, to już jest ok, ale jeżeli tylko dosuwam, to belka jest zasłaniana.
  • Jeżeli odpalę Opusa Magellana na Workbenchu, to jego listery są przyciągane, ale nie działa zmiana rozmiaru.
  • Wyzwalanie zmiany rozmiaru okna działa jakoś... opornie. Co dokładnie trzeba zrobić, dosunąć wskaźnik myszy dokładnie do ostatniego piksela przy krawędzi?
  • Zdarza się dość często, że po dosunięciu okna do jednego z boków ekranu, jego górna krawędź znajduje się o jeden piksel za wysoko i zasłania czarną dolną krawędź belki ekranu. Psuje to moje aspergerowe poczucie estetyki.


Ostatnia aktualizacja: 19.05.2025 19:05:59 przez Krashan
[#29] Re: GoSnap

@Krashan, post #28

Jeżeli jest ustawione KEEP_MENUBAR=YES, to górne krawędzie okien są i tak przyciągane do górnej krawędzi ekranu, a nie spodu belki ekranu. Jeżeli następuje zmiana rozmiaru, to już jest ok, ale jeżeli tylko dosuwam, to belka jest zasłaniana.

Wyzwalanie zmiany rozmiaru okna działa jakoś... opornie. Co dokładnie trzeba zrobić, dosunąć wskaźnik myszy dokładnie do ostatniego piksela przy krawędzi?

Jaki masz SNAP_MARGIN? I czy odpalasz z Workbencha czy Shella?
Parametry z ToolType'ów czytane są tylko jeśli program odpalany jest z ikonki, z Shella defaultowa wartość SNAP_MARGIN to skromne 9 pikseli. A obsługi parametrów podawanych z Shella jescze się tu nie dorobiłem.
Przyciaganie powinno działać w zakresie 'n' pikseli od krawędzi ekranu, gdzie 'n' okresla właśnie parametr SNAP_MARGIN. Dla ekranów z większa rozdzielczością niż PALowy HiresLaced domyslna wartość to wąski pasek, powinno pomóc zwiększenie wartości tego parametru do np 20 pikseli. Wydaje mi się, że stąd też wynika zasłanianie belki gdzie rozmiar okna sie nie zmienia - po prostu nie dociągnąłeś do obszaru gdzie działa przyciaganie, i GoSnap nie zareagował.

Zdarza się dość często, że po dosunięciu okna do jednego z boków ekranu, jego górna krawędź znajduje się o jeden piksel za wysoko i zasłania czarną dolną krawędź belki ekranu. Psuje to moje aspergerowe poczucie estetyki.


Oj, bardzo dobrze to rozumiem :D Też to zauważyłem, i mam na liście TODO, jako mało istotne aczkolwiek dość irytujące ;)

Co do Magellana - sprawdzę, to brzmi jakby GoSnap zidentyfikował te okna jako nieskalowalne, co jest trochę dziwne...
[#30] Re: GoSnap

@vojo, post #29

Dla ekranów z większa rozdzielczością niż PALowy HiresLaced domyslna wartość to wąski pasek, powinno pomóc zwiększenie wartości tego parametru do np 20 pikseli.
Trochę tak. Mam ekran 1600x1200 w emulatorze, dałem 30 pikseli i jest poprawa. Ale wciąż jest to jakieś losowe, nie działa to pewnie, albo nie rozumiem kiedy wyzwoli się zmiana rozmiaru. Mam porównanie bo mam włączone podobne snapowanie okien pod Linuksem na tej samej maszynie, co emulator. Tam działa to intuicyjnie i pewnie.

Trochę mnie zaskoczyło zachowanie okien nieskalowalnych. Wziąłem okno programu Exchange, które nie skaluje się w żadnej osi. Jeżeli je ściągnę na dolną krawędź i spróbuję wyzwolić zmianę rozmiaru (oczywiście niemożliwą), to spodziewałbym się, że dolna krawędź tego okna znajdzie się na dole ekranu. Natomiast zachodzi takie zjawisko: GoSnap oblicza sobie gdzie znalazłaby się górna krawędź okna, gdyby dało się je przeskalować. W tym przypadku jest to połowa wysokości ekranu, więc tam zostaje przesunięte okno. W pewnym sensie logiczne, ale moim zdaniem nie takiej logiki spodziewa się użytkownik.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem