kategoria: Blitz
[#1] "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)
Czesc
szukalem programu do zmiany ekranow z klawiatury i znalazlem ich duzo. Jesli dobrze pamietam to wiekszosc (jak nie wszystkie) uzywaly klawiszy ALT TAB. Dodatkowo zaden z nich nie pokazywal listy dostepnych ekranow tylko albo od razu przeskakiwal do kolejnego ekranu i ewentualnie wyswietlal jego nazwe. Tak wiec nic mi nie podpasowalo - chcialem miec cos co wyswietla LISTE dostepnych ekranow by z niej wybrac oraz NIE CHCIALEM trzymac ALT i wciskac TAB szeroki uśmiech

No wiec udalo mi sie (w ramach cwiczen) napisac wlasny program, ktory w tej chwili robi co chce i sie nie wiesza (jescze).
program jest tutaj
Nic tylko brac i uzywac



Ze wzgledu na moje ograniczone umiejetnosci programowania oraz brak dostatecznej wiedzy o systemie operacyjnym program ma JEDNA WIELKA wade - otwiera swoje okienko na WB - czyli gdy zostanie wywolany z innego ekranu to przeskoczy na WB i tam bedzie mozna dokonac wyboru.

- dziala jako Commodity
- wywoluje sie [rAlt strzalka w dol]
- jesli podczas otwartego okienka nacisniety zostanie [esc] to program zakonczy prace (jest to to samo co wcisniecie REMOVE w Exchange)
- [gora] [dol] - przemieszczanie sie po liscie
- [prawo] przeskok do zaznaczonego ekranu
- [lewo] zamkniecie okna (to NIE JEST zakonczeniem dzialania programu) i pozostanie na ekranie WB
- [poruszenie myszka] - zamkniecie okna przy automatycznym powrocie do ekranu z jakiego zostal program wywolany (ta opcja to swego rodzaju zabezbieczenie przed zwisem)

Program, poza jednym wyjatkiem, nigdy nie wyswietli WB na swojej liscie (wyjatek to gdy jest tylko ekran WB i by pokazac ze program ... wciaz dziala) . Gdy zostanie uaktywniony z innego ekranu to przeskoczy na WB a na liscie jako pierwszy bedzie ekran z ktorego przyszedl)

Na poczatku taka nawigacja moze sie wydawac dziwna ale sprawdza sie po czasie.

Do zrobienia:
duuuuzo :) czyli toolTypes i konfiguracja calego wygladu - od kolorow, przez styl czcionki a skonczywszy na pozycjonowaniu okna. Takze ekrany Multiview powinny wyswietlac sie jako nazwa otwrtego dokumentu a nie jak teraz .. Multiview,

Na aminecie jest program o nazwie screenMenu i on w jakis sposob uzywa menu na danym ekranie do otwierania listy ekranow (tak, ten program wyswietla liste) wiec nie ma potrzeby przeskakiwania do ekranu WB - jak rozgryze o co tu chodzi to tak to bedzie wygladalo - niestey program ten (screenMenu) nie pozwala na nawigowanie/wywolywanie z klawiatury wiec tez odpadl .
[#2] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #1

Wygląda bardzo zachęcająco. Brakowało mi takiej namiastki "expose" pod klasycznym AmigaOS. Sprawdzę dziś wieczorem, jak się spisuje OK
[#3] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@_arti, post #2

Mam nadzieje, ze spelni Twoje oczekiwania, hehe.

Z ostatniej chwili:
tam jest jedna "mala wtopa" o ktorej zapomnialem!!!
w programie do ktorego zalinkowalem jest "pozostalosc" w postaci przyjetej wysokosci fontu jako 8 albo 9 pikseli - innymi slowy, jesli ktos uzywa systemowej czcionki innej niz wspomniana to beda "kwiatki" w oknie - sory za to, wlasnie sobie o tym przypomnialem a teraz nie mam jak poprawic - dopiero za kilka godzin podesle wlasciwy plik.
[#4] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #1

Świetna rzecz! OK Własne ekrany (publiczne przede wszystkim) w Amiga OS są niedocenione i niewykorzystywane. Nie każdy chce trzymać wszystkiego na Workbenchu.
[#5] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@Hexmage960, post #4

Lepiej uruchom na swojej amidze i napisz czy wogole dziala :)
Ja to tylko testowalem na a1200+030
I nawet niepotrafie powiedziec czy przypadkiem nie ma tam jakis polecen wykorzystujacych np.WB3.1 - jesli jednak cos znajde to zamienie tak by dzialalo na starszych systemach.
[#6] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #5

Wymaganą wersję danej funkcji bibliotecznej znajdziesz w tzw. Autodokach (np. na tej stronie). Wymagana wersja biblioteki dla podanej funkcji znajduje się na prawo od jej nazwy i jest ujęta w nawiasy, np. (V39). Jeśli tej liczby nie ma, to znaczy że dana funkcja znajduje się w każdej wersji biblioteki.

Odniesienie do wersji kickstartu jest podane w poniższej tabelce. Uzupełniłem ją o wersje V39 (kickstart V3.0) oraz V40 (kickstart V3.1).

Oczywiście jakieś własne biblioteki (np. reqtools, medplayer, powerpacker itd.) mogą mieć własne wersje niezależne od tego.

Zaś co do testowania Twojego programu, to ja też mam Amigę 1200 z Blizzardem 1230-IV/50MHz i kickstartem V3.1.

System library
  version number  Kickstart release
  --------------  -----------------
       0          Any version
       30         Kickstart V1.0 (obsolete)
       31         Kickstart V1.1 (NTSC only - obsolete)
       32         Kickstart V1.1 (PAL only - obsolete)
       33         Kickstart V1.2 (the oldest revision still in use)
       34         Kickstart V1.3 (adds autoboot to V33)
       35         Special Kickstart version to support A2024
                  high-resolution monitor
       36         Kickstart V2.0 (old version of Release 2)
       37         Kickstart V2.04 (current version of Release 2)
       39         Kickstart V3.0
       40         Kickstart V3.1


Ostatnia aktualizacja: 31.01.2018 12:42:25 przez Hexmage960
[#7] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #1

Github! Github!
[#8] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #5

Jeszcze nie sprawdzałem ale już mam pare pytań (jestem podjaranym tym programem, serio!):
- dałoby rade to okienko na środek ekranu?
- dałoby rade zrobić tak, że ekrany są numerowane (1, 2, 3...) i mogę je od razu przełączyć "Amiga" + 1, "Amiga" + 2 itd.?
- jak zrozumiałem, wciśnięcie ESC zamyka program, tak? Mogłoby to być sterowane z tooltype'a? Np. albo zamyka program albo po prostu zamyka okienko? Wydaje mi się to bardziej intuiciyjne.
- czy program mógłby działać niezależnie na jakim ekranie jest? Tj. bez powracania do Wb? (pytam w kontekście tych numerowanych ekranów)
[#9] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@_arti, post #8

uwzglednia wysokosc fontu
niestety szerokosc okna wciaz ustawiana jest na zasadzie "chalupniczej": malyOdstep+(ilosc liter w najdluzszej nazwie)*8 + malyOdstep
Jak wyczaje o co to jest struktura iText (bo to chyba nie jest zwykly text) to zrobie to jak nalezy.



@Hexmage
dzieki serdeczne - to sie baaardzo przyda

@teh_KaiN
w swoim czasie :) musze sie jakos "przelamac", hehe, a to jest trudniejsze niz myslalem

@_arti
1. tak - to juz za niedlugo, przy uruchamianiu jako argument podawac bedzie sie cyfre (uklad z klawiatury numerycznej) i okienko bedzie wyskakiwalo w danym polozeniu, podanie cyfry 0 da mozliwosc wprowadzenia wlasnych wspolrzednych x,y
2. myslalem o tym wczoraj - jesli bede potrafil "w locie" przypisac klawisze to jak najbardziej
3. tak, to mialem na mysli piszac "duzo do zrobienia" - jak tylko wyczaje w jaki sposob przekazywac toolTypes do programu to zaden problem - KAZDY klawisz bedzie ustawiany przez uzytkownika
4. to niestety wykracza poza moja aktualna wiedze szeroki uśmiech na amidze sa ekrany nie-publiczne na ktorych wogole nie mozna otwierac okienek - moze i da sie tam wyswietlic jakas grafike ale o tym ni nic nie wiadomo - dlatego postanowilem wszystko przerzucac na WB by to ujednolicic - ale jak wspomnialem w poscie 1szym , tez mam na celu otwieranie tego na dowolnym ekranie
[#10] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #9

No to i tak zapowiada się fajnie. Standardowe pytanie - gdzie można opłacić dostęp do wersji early-bird?
[#11] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@_arti, post #10

He,
bede tutaj wrzucal kolejne wersje, np. dzis dodam pozycjonowanie na ekranie podawane jako argument w CLI (bo to pikus) - i zapodam nowy link
[#12] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #9

Najszybciej się przełamać nie myśląc a robiąc. Ściągnij GitKraken na dowolny nowożytny system - jest banalny w obsłudze. A jak chcesz prawilnie z wiersza poleceń to tu masz interaktywny tutorial.

No i jak planujesz kolejne wersje to Ci to bardzo ułatwia - będziesz mógł patrząc na zmiany względem ostatniego commitu szybciej znaleźć błędy.

Ostatnia aktualizacja: 31.01.2018 16:34:24 przez teh_KaiN
[#13] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #1

Fajne. pewnie się przyda - dzięki!
Czy to jest to co pisałeś w Blitzu?
[#14] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@retronav, post #13

Jedno z dwoch.
Staram sie przeniesc to co napisalem w Hollywood czyli Labirynt :) ale narazie projekt stanal w miejscu bo podczas wyswietlania grafiki mam jakies smieci - na EAB pisze prywatnie z jednym co zgodzil sie rzucic okiem , ale jak dotad nasze starania nie przynosza efektu.

A to jest drugi projekt i tez pisany w Blitz-ie.

W linku jest nowa wersja gdzie mozna podac jako parametr przy uruchamianiu z CLI cyfre od 1 do 9 np:
notAnAltTab 5

co wymusi pokazywanie okna na srodku ekranu (uklad klawiatury numerycznej odpowiada polozeniu okna), Domyslna wartos to 3 czyli dolny prawy naroznik (jesli nie zostanie podany zaden argument)

link

DODALEM
poprawilem tez rysowanie okna - znowu byla pozosalosc z pierwszej wersji gdzie wszystko bylo "na sztywno" i prawa ramka zostala zjadana przy innej czcionce niz moja.
Chyba faktycznie pomysle nad tym GitHub-em ...

Ostatnia aktualizacja: 31.01.2018 19:55:43 przez peceha
[#15] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #9

4. to niestety wykracza poza moja aktualna wiedze szeroki uśmiech na amidze sa ekrany nie-publiczne na ktorych wogole nie mozna otwierac okienek - moze i da sie tam wyswietlic jakas grafike ale o tym ni nic nie wiadomo - dlatego postanowilem wszystko przerzucac na WB by to ujednolicic - ale jak wspomnialem w poscie 1szym , tez mam na celu otwieranie tego na dowolnym ekranie


Zobacz IntuitionBase, tam masz coś takiego jak ActiveScreen i FirstScreen OK
[#16] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@forge, post #15

Hmmm, wlasciwie to ja korzystam z IntuitionBase by zdobyc liste wszystkich ekranow.
Teraz jak zaczalem czytac dokladniej o otwieraniu okna to chyba rysuje mi sie tu jakas mozliwosc szeroki uśmiech

Type = the screen type for this window. If this equal CUSTOMSCREEN,
you must have already opened a CUSTOMSCREEN (see text above).
Types available include:
- WBENCHSCREEN
- CUSTOMSCREEN
- PUBLICSCREEN (new for V36, see text below)

Screen = if your type is one of Intuition's standard screens, then
this argument is ignored. However, if Type == CUSTOMSCREEN,
this must point to the structure of your own screen

Czyli odczytuje typ aktywnego ekranu z pola Flags a nastepnie jesli jest to CUSTOMSCREEN to do pola "Screen" (tego przy otwieraniu okna) przypisuje strukture aktywnego ekranu ?
I tak oto otworze okno na takim ekranie? dobrze mysle?

Jesli tak to mam wieczor z glowy bo musze wyczaic jak otworzyc okno przy pomocy "OpenWindow_" bo tylko tam moge podac te wszystkie "tag-i" - do tej pory uzywalem wbudowanej komendy Blitz-a ktora otwiera okno na WB i wymaga tylko podania pozycji, rozmiaru, flag WFLG oraz tytulu.

Dzieki, poczytam zaraz o tym dokladniej.

DODALEM
no ale jesli to nie bedzie ekran publiczny to nie otworze tam okna chocby niewiem co. Czy sie myle? Przykladem moze byc ekran Multiview.

Ostatnia aktualizacja: 31.01.2018 20:53:04 przez peceha
[#17] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #16

No dobra, bedzie nowa wersja.
Udalo mi sie otworzyc okno nawet na ekranie MultiView wiec jest dobrze

Dzieki Panowie za roznego rodzaju wskazowki - jak widac wszystko sie przydaje.
[#18] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #17

Okno otworzysz na każdym ekranie. Tylko na ekranach "mniej" systemowych będzie miało najwyżej dziwne kolory. Kiedyś napisałem taki program w AmigaE i mogę podrzucić źródła jeśli chcesz :)
[#19] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@virago, post #18

O nie, musze to sam wykombinowac a nie zerżnąć z gotowcow

Zreszta skoro juz otwieram okno tego programu na innych ekranach no to jestem w domu.
Zostaly drobiazgi typu:
- poradzenie sobie z fontami bo z tego co widze czcionka jest rysowana tam gdzie komend MOVE_ go ustawi ale... jest rysowana do gory od tego punktu (mozliwe ze w tym punkcie ustwaiany jest "base line" fontu czyli musze sie dowiedziec jak odczytac baseLine fontu by to korygowac)
- wprowadzenie jednjej z komend : intuiTextLength (ale to za duzo zachodu), textLength, textExtent (ta da najdokladniejsze wyniki wiec chyba zostanie) do okreslania dlugosci okna
- no i cos wykombinowac przy ekranach z autoscroll-em nie mieszczacych sie w calosci na ekranie - chyba najlepszym rozwiazaniem w takim wypadku bedzie wyswietlenie okna pod wskaznikiem myszy bo on zawsze jest na monitorze (tylko nie wiem jeszce jak okreslic ze mam z takim ekranem doczynienia)
- jak ukryc wskaznik myszki? (wiem ze jest to mozliwe bo np keysMenu z internetu to potrafi)

Jesli ktos ma informacje na 2 ostatnie to bede wdzieczny za podpowiedzi.


Ostatnia aktualizacja: 01.02.2018 09:20:17 przez peceha
[#20] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #19

Normalnie trzymam kciuki, jutro na amiparty przetestuje :)
[#21] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #19

- no i cos wykombinowac przy ekranach z autoscroll-em nie mieszczacych sie w calosci na ekranie - chyba najlepszym rozwiazaniem w takim wypadku bedzie wyswietlenie okna pod wskaznikiem myszy bo on zawsze jest na monitorze (tylko nie wiem jeszce jak okreslic ze mam z takim ekranem doczynienia)


RKRM, rozdział Overscan and the Display Clip

When opening a window in an overscanned screen, it is often useful to open
it relative to the visible part of the screen rather than relative to the
entire screen. Use QueryOverscan() to find the overscan region and where
the screen is positioned relative to it.


Do programowania Intuition pomocne były dla mnie programy typu "system monitor" np. SysInspector, możesz nim wydobyć adres ekranu i wpisać go do Explorer'a, gdzie dwuklikiem na wskaźniku można wchodzić do struktur i przeglądać ich właściwości. :)

[#22] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@forge, post #21

Dzieki za wskazowke o overscan-ie.

Co do programow to wlasnie je pobralem - i powoli zaczne z nich korzystac bo widze, ze to zdecydowanie ulatwi prace.

Dzieki
[#23] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #22

ostatnia wersja
PLUSY
- commodity
- otwiera sie na dowolnym ekranie (i ten ekran pokazuje sie 1szy na liscie, moge to zmienic jak przeszkadza)
- pozycjonowanie okna przez podanie cyfry miedzy 1 a 9 jako parametr (domyslnie 5 czyli srodek ekranu)
- na liscie znajduja sie wszystkie ekrany (nie tylko publiczne)
- rozmiary okienka NARESZCIE sa wpelni uzaleznione od czcionki systemowej (mam nadzieje ze tu juz nie bedzie niespodzianek)

MINUSY
Najwiekszym jest to, ze po wprowadzeniu okna otwieranego przez sytemowe komendy a nie Blitz-a nie moge nasluchiwac na dwoch portach (ten od obslugi zdarzen intuition od obiektow Blitza nie slucha WaitPort_() i na te chwile nie potrafie tego polaczyc).
Bez tego niestety okno nie reaguje na zadne wiadomosci IDCMP bo jako pierszenstwo dalem wiadomosci od Commodity (a do tego uzywam bibliotek Blitza).
Czyli
- okno sie nie zamknie gdy myszka zostala ruszona lub zostal wcisniety jakis jej przycisk !!!
takze TRZEBA PAMIETAC by po wywolaniu okna nalerzy z niego skorzystac (strzalka w prawo) albo odwolac (strzalka w lewo) lub zamknac program (ESC)
Nie zostawiac okna otwartego i robic innych rzeczy - tak ten program nie powinien dzialac :)

Na niektorych ekranach (np program AGMS do odtwrzania "flmow") zakrywa okno filmem.
[#24] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #23

Dziwne, u mnie wszystko działa ok.
[#25] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@forge, post #24

dziala dla wersji z postu wyzej ???
czyli tej ?
[#26] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #25

Tak, wersje z postu #23 i #25 działają poprawnie.
[#27] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@forge, post #26

To dlaczego u mnie nie reaguje na ruch myszka (okno powinno zniknac a nie chce)???
[#28] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #27

Wybaczcie za tyle wersji ale na dzis to bedzie juz ostatnia.
ostatnia
Kolega Hexmage znalazl "bug-a" systemowego przy przypisywaniu fontow do okna - ta wersja jest na to odporna (przetestowalem na kilku ekranach i dla roznych ustawien fontow)

Ostatnia aktualizacja: 01.02.2018 19:47:31 przez peceha
[#29] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #28

Nowa odslona :)
- Okno sie chowa przy poruszeniu myszka.
- ekrany MultiView pokaza sie na liscie jako "MV.. tytul okna"
- ekran workbencha pokaze sie jako WB (zamiast dlugiego: Workbench Screen)
- po przelaczeniu ekranow program stara sie aktywowac pierwsze napotkane okno tak by jednoczesnie aktywowac nowy ekran
- po otwarciu okna kursor ustawia się na pozycji drugiej (pierwsza pozycja to aktualny ekran więc myślę że tak będzie lepiej)


link


Ostatnia aktualizacja: 02.02.2018 01:01:55 przez peceha
[#30] Re: "not an alt-tab" czyli jak ktos chce pouzywac to prosze bardzo :)

@peceha, post #29

ostateczna

zmiany:
- na liscie ekranow nie pojawia sie ekran na ktorym zostalo wywolane okno
- jesli jest tylko 1 ekran otwarty to okienko sie nie pojawi ale ekran mrygnie, sygnalizujac w ten sposob , ze dziala tylko nie otwiera okna

Wiecej poprawek do zasady dzialania na razie nie planuje.
Teraz tylko czeka:
- pozycjonowanie okna na ekranach wyswietlanych w overscan-ie
- dodanie skrotow klawiszowych do bezposredniego przeskakiwania na ekrany
- dodanie wlasnej czcionki (wtedy na kazdym ekranie bedzie taka sama)
- prosty tekstowy plik konfiguracyjny gdzie mozna wstawic skroty do obslugi programu (wszystkie) jak i przypisac do ekranow.
- wizulana zmiana zaznaczenia w oknie - wydaje mi sie ze bardziej czytelny bedzie sposob podswietlania tak jak w gornym menu
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