kategorie: Amiga E, ANSI C, Reaction
[#1] ReBuild 1.0.0
Kilka dni temu Darren Coles opublikował program ReBuild, który jest edytorem GUI dla ReAction.
Jakoś nigdy nie mogłem się zmusić do ogranięcia GUI opartego o BOOPSI, czy to ReAction/ClassAct czy MUI, więc z okazji releasu takiego programu postanowiłem spróbować z ReAction.
A ten post to taka minirecka ReBuilda, może ktoś zamiast n'tej gierki w Amosie zrobi jakiegoś fajnego toola :)

Moim głównym narzędziem DEV na Amidze jest AmigaE, więc testowałem ReBuida pod kątem współpracy właśnie z tym językiem. Dedykowanym kompilatorem E, który najlepiej współpracuje z ReBuildem jest oczywiście E-VO, również rozwijane przez Darrena. Najlepiej zaopatrzyć się w ostatnią wersję E-VO 3.6.1 z czerwca ubiegłego roku, która ma moduły pod ostatnią wersję OS (3.2.2) oraz zestaw wszystkich makr używanych w kodzie generowanym przez ReBuilda.
Ale jak ktoś woli C, to ReBuild również potrafi generować kod dla C :)

Sam ReBuild ma GUI oparte o... ReAction, więc przed instalacją ReBuida trzeba zadbać o to, żeby na Amidze były odpowiednie biblioteki.
Najprościej jest skorzystać z OS 3.2, który ma ReAction w standardzie. Teoretycznie ReBuild będzie działać również na starszych wersjach OS po zainstalowaniu pakietu ClassAct, ale tego nie testowałem.

Po uruchomieniu ReBuild wyświetla dwa okna:
- głowne okno programu kreatora, z drzewem reprezentującym budowane GUI
- okno podglądu, gdzie po każdej zmianie jest prezentowane jak będzie wyglądac nasz projektowany interfejs

Każdy nowy projekt zaczynamy z domyślną strukturą, którą powinien mieć każdy program.
Mamy więc obiekty aplikacji, ekranu, arexxa, menu i okna z domyślnym layoutem.
Od tego momentu możemy już generowac kod naszej aplikacji - jeśli wybierzemy opcję "Generate full code", to otrzymamy kod źródłowy aplikacji ReAction, która się skompiluje i uruchomi bez błędów. Po dołożeniu do okna obiektu "Label", można zrobić okienkowe "Hello world" bez oglądania linijki kodu w C czy E :)

Każdy element, który dodamy do okna, można oczywiście dostosować do swoich potrzeb. I nie trzeba znać od razu nazw wszytskich tagów, przemyślane GUI ReBuilda szybko doprowadzi użytkownika do właściwego okienka.
Np. edytując obiekt projektowanego okna można zmienić podstawowe parametry okienka jak tytuł czy preferowane wymiary, ale też ustawić zdarzenia których bedziemy oczekiwać czy flagi okna.



Powyższa zasada dotyczy tez innych obiektów - gadżetów, layoutów, menu itd. A lista obiektów obsługiwanych przez ReBuilda jest bardzo bogata - zawiera praktycznie obsługę wszystkich standardowych klas ReAction z systemu OS 3.2, a dodatkowo ma dodana obsługę zewnętrznej klasy TextField.



Oprócz obsługi gadżetów, ReBuild posiada również managera list, które są wykorzystywane w takich obiektach jak Chooser (ComboBox) czy ListBox.
Można więc zbudować sobie listę wartości, która następnie jest dostępna w oknie edycji obiektu wykorzystującego listy.





Wygodnie też można zaprojektować górne menu programu, które standardowo jest dostępne pod prawym przyciskiem myszy.
Można budować złożone menu złożone z wielu menu, itemów i subitemów menu, wraz z barami oddzielającymi pozycje i skrótami klawiszowymi.



Dość wygodnie jest tez zrealizowany mechanizm modyfikacji drzewa projektu. Co prawda nie jest to drag & drop znane z nowoczesnych IDE, ale łatwo można przesuwać obiekty po drzewie, kopiować i powielać wraz z ich propertiesami, czy po prostu modyfikować. A efekt widać od razu na oknie podglądu. Przy czym warto przed większymi zmianami zapisać projekt na dysku - raz czy dwa zdarzyły mi się zawieszenia programu, w momencie kiedy przesuwałem gadżety między layoutami.



Jak już uznamy że nasze GUI jest takie jak chcieliśmy, można wygenerować kod źródłowy. Do wyboru mamy E lub C, oraz kilka opcji wpływających na wygląd kodu - czy chcemy wygenerować kod całej aplikacji czy tylko definicje GUI, oraz jak mają być zbudowane identyfikatory gadżetów - w formie tablicy czy zmiennych. Nie wiem jak dla C, ale dla E kompilacja przebiega bez żadnych błędów :)



Poniżej widok GUI aplikacji do tworzenia plików ADF - podgląd z ReBuilda i uruchomiony po skompilowaniu program GUI - w pakiecie dostajemy nawet podstawową obsługę zdarzeń.

Przykłady kod aplikacji w C i E (genrate full code).
test.c
test.e




Podsumowując - bardzo przydatna aplikacja dla programistów C/E, chcących odejść od gadtools i przejść na ReAction. Przy odrobinie praktyki można bardzo szybko tworzyć wymyślne GUI, od razu widząc efekt końcowy.
Oczywiście ReBuild ma jeszcze swoje problemy wieku dziecięcego, potrafi się od czasu do czasu zawiesić, ale widząc jak Darren Coles rozwija E-VO myślę że to tylko kwestia czasu, jak wszystkie błędy zostaną wyeliminowane.
I nawet jesli ktoś jest konserwatywnym klepaczem kodu w CEDzie, to można potraktować ReBuilda jako świetne narzędzie do nauki ReAction.
Zamiast szukać przykładów w necie (których jest jak na lekarstwo), można sobie wyklikać przykład samemu. No i nie jest to tez tak, że próg wejścia jest zerowy. Dobrze jest trochę znać C lub E, i mieć jakies wyobrażenie o obiektach, layoutach, tagach i ogólnie o API AmigaOS.

No i trzeba pamiętać, że ReBuild nie zrobi za nas aplikacji - funkcjonalność trzeba napisać sobie nadal samemu :)

Poniżej link do programu EmptyADF, jako prosty przykład wykorzystania ReBuilda.
Od pomysłu do realizacji minęło kilka godzin - wliczając w to naukę ReBuilda i robienie screenów do tego posta.
Program pozwala wykreować obrazy ADF pustych dysków OFS/FFS, DD/HD, z systemowym bootblockiem lub bez.
Czasem się przydają :) Sama funkcja kreowania jest wyrypana z GoADF, więc użytkownikom tego programu będzie znajoma.

Link do programu: https://www.bitplan.pl/amiga/



Ostatnia aktualizacja: 13.02.2024 15:22:08 przez vojo
4
[#2] Re: ReBuild 1.0.0

@vojo, post #1

Zaciekawiłeś mnie OK
1
[#3] Re: ReBuild 1.0.0

@QUAD, post #2

Zaciekawiłeś mnie


I o to chodziło OK

Zapomniałem dodać że Rebuild jesst dostępny ze źródłami na GitHubie:

Download:
https://github.com/dmcoles/ReBuild/releases/tag/1.0.0

Kod źródłowy i przykłady:
https://github.com/dmcoles/ReBuild/tree/main

Dodatkowym pakietem wartym uwagi jest obszerny tutorial dla ReBuild, autorstwa Michaela Bergmanna, który jest dostępny pod adresem: https://github.com/dmcoles/ReBuild/tree/1.0.0/tutorial
[#4] Re: ReBuild 1.0.0

@vojo, post #3

Powiem więcej, zara będzie u mnie w imp3 na stashu. ok, racja
[#5] Re: ReBuild 1.0.0

@vojo, post #1

Halo, halo, halo redakcja PPA, taki post zasługuje na zmianę na artykuł do szkółki :)
[#6] Re: ReBuild 1.0.0

@vojo, post #1

Przy odrobinie praktyki można bardzo szybko tworzyć wymyślne GUI
I taki mam właśnie problem tego rodzaju builderami. Autorzy programów robią w nich bezrefleksyjnie rozbudowane, żeby nie powiedzieć przegadane, GUI. Potem użytkownicy muszą się z tym użerać...
[#7] Re: ReBuild 1.0.0

@Krashan, post #6


Autorzy programów robią w nich bezrefleksyjnie rozbudowane, żeby nie powiedzieć przegadane, GUI. Potem użytkownicy muszą się z tym użerać...


To prawda, amigowe programy często mają niestety nieintuicyjne GUI. Ale to najczęściej wina ich autorów, a nie narzędzi których użyli.

Ostatnia aktualizacja: 13.02.2024 17:27:48 przez vojo
[#8] Re: ReBuild 1.0.0

@vojo, post #7

Narzędzia kształtują praktyki programistyczne. Jeżeli dodanie gadżetu wymaga pewnego wysiłku w kodzie, jest większa motywacja do przemyślenia, czy na pewno jest potrzebny.
1
[#9] Re: ReBuild 1.0.0

@Krashan, post #8

To działa też w drugą stronę - jeżeli dodanie gadżetu zwiększa wygodę użytkownika, ale wymaga wysiłku, to gadżet może w efekcie zostać nie dodany.
1
[#10] Re: ReBuild 1.0.0

@Rafael/ARMO, post #5

zgodnie z Regulaminem mógłbym przenosić sensowniejsze posty do wiki ppa,

6. Użytkownik wypowiadając się na Forum Dyskusyjnym tym samym wyraża zgodę na umieszczenie wypowiedzi lub jej fragmentów w innych publikacjach portalu PPA.

ktoś przeciwko?


Ostatnia aktualizacja: 13.02.2024 17:51:52 przez michal_zukowski
5
[#11] Re: ReBuild 1.0.0

@vojo, post #1

Fajna instrukcja OK
Dodam tylko, że ReAction jest w standardzie również w Workbenchu 3.5 i 3.9 ok, racja
[#12] Re: ReBuild 1.0.0

@michal_zukowski, post #10

Nikt. Dawaj do Szkółki.
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