Kitty

Kitty
Aros Mascotte By Eric Schwartz

lunedì 9 aprile 2012

30 days with Os4.1 day 4

Hi! I finally was able to access blogspot. I had some problems to my internet connection, but now I'm here!
I wanted to talk to you of sketchblock. It's a native os4 painting, free hand program developed by Andy "broadblues" Broad, amigaworld.net user.
A really nice software, it allows you to draw with several blendings of pens and pencils. There are surely most advanced programs in this world but it's really useful and snappy.
It saves the drawing in a proprietary format but allows you to export it in the way you like.
Os4.1 sees my graphical tablet (an usb wakom bamboo) very well and, even if i'm not an artist, here's two sketches i did with sketchblock!!


Obviously you can download it from os4depot!! Bye!!!

giovedì 5 aprile 2012

30 Days with Os4.1 - Day 3

Day 3. Timberwolf doesn't give no more problems. Yes, it's not the speedest way of surfing the web but it does.
Far more way better there's owb. It's really a modern browser. Os4 version is a port done by kas1e based on fab original one.
I made some research on amigaworld.net. I want to use a drawing/painting program under os4.1 people suggested me several programs. Tonight i'll install them. I would like to install original ppc sware and not m68k or unix/amicygnix ones. Yes, m68k compatibility and the unix layer are good things but it's not my way of things.

domenica 1 aprile 2012

30 days with Amiga Os4.1 - Day 2

Today i decided to make some drawing with my os4.1 box.
Amiga was famous for its graphical capabilities so i thought it could be a good starting point to draw something.
I went on osdepot and i find lodepaint. I know it under aros and it's a good pixel drawing program.
I downloaded it but when i launch it, the screen totally corrupts and i rebooted several times.
No way.
Strange: i found no issues about this in amiga forum. Could be it needs some libraries?
I downloaded letsplay. It's a child colour game.
I plugged my wacom bamboo graphical usb tablet and it works!
Yes. My 4 years old child started to play with it, and it works very well.

sabato 31 marzo 2012

30 days with os4.1 day 1 #2

Downloaded Timberwolf 28/3/2012 alpha:
Whoa! It runs html5 videos! Very slowly but they run!
Only problem it freezes my sistem on exit...
I have to install a printer. I often use a printer.
Let's try to make it!
I have to download sabre msn to chat.
I'm trying ebuddy web messenger to see how it works!
Yes. Ebuddy allows me to correctly chat!
I played with my favourite online game too!
it's www.iregni.com
it's an online role playing game based in renaissant europe and it covers several european nation and several languages.
Unluckily on os4.1 there's no flash browsing support.

30 days - Amiga Os4.1 - Day 1

Hi! Just a month ago i bought a sam 440 ep with Amiga Os 4.1.
This is the last of the three amgoid systems i own: aros, morphos and os4.1.
I've decided to take an experiment: making a switchoff of windows for my daily works so i can try what it means to live only with an amiga today.
Let's talk about my system: sam440ep 667 MHz, 1GB Ram, 9250 Ati, 80GB Sata Disk and a Dvd sata writer with Os4.1 upg4.
This is my first post as it is my first day.
I'm writing by Kas1e port of Mui Owb.
Before writing this i was making a google research on the word "blog".
Wikipedia had a long long page about it and i find owb took some time to render it, meantime scroll bars worked as the two things were not tied at all.
Hi! See you later!

mercoledì 13 luglio 2011

Sempre sui MUI Menu

Siamo a metà luglio e fa un caldo boia.
Rebulator è andato avanti e i menu sono completi da un pò.
In questi giorni sto affrontando l'uso dei font per i singoli oggetti.
Qualcuno dirà: e che c'è da studiare sui font? Risposta: poi si vedrà...

Ritornando ai nostri bravi menu...

Come dicevo si tratta di creare la nostra menu strip e definire le nostre voci di menu, sottomenu e i loro attributi.
Qualche tempo fa accennavo alla struttura newmenu.
Cos'è nello specifico?
E'una struttura che contiene "la descrizione" di tutte le singole voci di menu con gli attributi.
L'uso di strutture per definire oggetti è una pratica che nasce "prima" dell'epoca degli oggetti.
Non per niente, in mui, che è object oriented grazie a boopsi, è vero che si può usare la struttura NewMenu ma, contemporaneamente, si può usare anche la gestione diretta degli oggetti in tempo reale.
Per carità ognuno ha o suoi gusti, io ho preferito optare per la seconda possibilità visto che MUI mi dava tale possibilità.
Spiegheremo anche la NewMenu ma prima parleremo dell'implementazione dei menu di rebulator alla maniera di MUI.
Riporto un frammento di codice che definisce i menu in rebulator 0.4:

La prima riga crea l'oggetto menustrip (notare il cast verso IPTR sennò Gcc rompe)
MUIA_Application_Menustrip, (IPTR)(MenustripObject,
La seconda crea invece il primo menu come oggetto Child della classe family (MUIA_Family_Child).
MUIA_Menu_Title come dice il nome imposta il nome del menu

MUIA_Family_Child,(IPTR)(MenuObject,MUIA_Menu_Title, "Rebulator",
Qui, sempre come oggetto child, creiamo (MUI_MakeObject) un Menuitem (cioè una voce di menu) a nome "About, che abbia come lettera di tastiera per selezionarlo (con il tasto amiga) la lettera "A" e che non abbia altre particolarità (0,0) a questo associo una variabile oggetto "infomenu"
MUIA_Family_Child, (IPTR)(infomenu = MUI_MakeObject(MUIO_Menuitem,"About", "A", 0,0)),
Idem qui:creo una voce di menu Quit associata a un oggetto quit.
MUIA_Family_Child, (IPTR) (quit = MUI_MakeObject(MUIO_Menuitem, "Quit", "Q",0,0)),
Lo end chiude "il menu object": i menu item non hanno bisogno di end!!
End),

Secondo menu chiamato Tools!
MUIA_Family_Child, (IPTR) (MenuObject,
MUIA_Menu_Title, "Tools",
Oops... ma come? prima di chiudere con un End il menu Tools aggiungo, non un menu item, bensì un altro oggetto menu (menuobject) chiamato keys?
Ebbene si: inserire un oggetto menu in un altro oggetto menu è la maniera di MUI per creare... I SOTTOMENU!!!
Niente di più semplice ma non so quanto tempo ho penato per capirlo (giuro per puro caso) Non c'è scritto da nessuna parte nella documentazione se non buttato la, in maniera peraltro semplicistica, nell'introduzione al capitolo dei menu. Roba che io le introduzioni non le leggo manco di solito...
MUIA_Family_Child, (IPTR) (MenuObject,
MUIA_Menu_Title, "Keys",
Qui riprende il flusso congeniale: un menu item per il nostro menu!! il suo titolo è base ed è associato all'oggetto "menu_standard", ed ha alcune particolarità:
1) possiede l'attributo MUIA_Menuitem_Checkit, TRUE: serve a dire che la voce di menu è "checkabile", cioè il click su di esso fa apparire un segno di spunta vicino al suo nome (per impostare qualcosa...)
2)

MUIA_Family_Child,(IPTR) (menu_standard = MenuitemObject, MUIA_Menuitem_Title, (IPTR)"Base",
MUIA_Menuitem_Shortcut, (IPTR) "b", MUIA_Menuitem_Checkit, TRUE, MUIA_Menuitem_Checked, TRUE, MUIA_Menuitem_Exclude, 2+4+8, End),


MUIA_Family_Child,(IPTR) (menu_extended = MenuitemObject, MUIA_Menuitem_Title, (IPTR)"+Extended",
MUIA_Menuitem_Shortcut, (IPTR) "x", MUIA_Menuitem_Checkit, TRUE, MUIA_Menuitem_Exclude, 1+4+8, End),

MUIA_Family_Child, (IPTR) (menu_trigonometric = MenuitemObject, MUIA_Menuitem_Title, (IPTR)"+Trigonometric",
MUIA_Menuitem_Shortcut, (IPTR) "t", MUIA_Menuitem_Checkit, TRUE, MUIA_Menuitem_Exclude, 1+2+8,End),




End),
End),
End),

giovedì 23 giugno 2011

0.4 FINALMENTE!!

0.4!
La principale novità della 0.4 rispetto alla 0.3 è l'introduzione dei menu. Certo, anche la correzione di alcuni bug (chiamarli così è riduttivo) è importante, ma l'introduzione dei menu è quel che mi ha portato ancora avanti nello studio di mui.
Vediamo...
Ovviamente tutti sappiamo cosa siano i menu in un programma: sono quelle liste di alimenti cucinati più o meno male a cui è associato un prezzo più o meno spropositato. Ennò... non è proprio così!
I menu sono uno degli elementi fondamentali dei sistemi operativi a finestre e, anzi, a volte la posizione, il comportamento degli stessi definisce un pò tutto l'aspetto del sistema operativo.
Prendete per esempio i vari sistemi amigoidi: tutti hanno la barra dei menu in alto con menu che si sviluppano verso il basso da sinistra verso destra. Stessa storia per i sistemi apple o per windows fino alla 3.x. Da win 9x in poi (ma già su nt) la barra menu principale è posta in basso e si sviluppa verso l'alto.
Un'altra caratteristica peculiare dei sistemi amiga (e dei sistemi apple...) è che i programmi non hanno menu perennemente visibili ma divengono visibili con la pressione del tasto destro del mouse. In windows invece ogni programma ha la barra menu che fa parte della finestra del programma stesso ed è sempre visibile. Anche se a vedere windows 7 le cose stanno cambiando anche lì (prendete office o ie9).
Ritorniamo ad amiga:
Su amiga (eventualmente anche per MUI) per poter usare dei menu in un programma bisogna definire una struttura NewMenu che contiene tutti i dati necessari per il comportamento dei menu del programma.
L'insieme di tutti i menu del programma vengono chiamati "menu strip". Tradotto letteralmente significa striscia di menu: se teniamo presente come è strutturato un insieme di menu, cioè l'uno affianco all'altro con i propri sottomenu, la definizione di striscia è visivamente azzeccata.
Quindi abbiamo questa striscia di menu. Composta di menu. I quali a loro volta sono composti di elementi singoli o di ulteriori sottomenu:
MENUSTRIP
-MENU1
---MENUITEM1.1
---MENUITEM1.2
---SUBMENU1.3
------MENUITEM1.3.1
------MENUITEM1.3.2
-MENU2
---MENUITEM2.1
---SUBMENU2.2
-----MENUITEM2.2.1
-----MENUITEM2.2.2
-----MENUITEM2.2.3
---MENUITEM2.3

Quello precedente è lo schema di una menustrip con due menu principali (menu1 e menu2),
Menu1 ha due elementi (item) menuitem1.1 e menuitem1.2, nonchè un sottomenu (submenu1.3).
Submenu1.3 ha due elementi menuitem1.3.1 e menuitem1.3.2.
Lo stesso vale per menu2.
P.S. la numerazione è qualcosa di messo da me e non fa parte nè del linguaggio nè di niente, serve solo per "dividere" i menu logicamente sulla carta. Ma non è imperativa.

In MUI la classe Menustrip (la barra menu) è una sottoclasse (sottoinsieme) della classe family. Dalla definizione che ne da Stuntz (per i nuovi arrivati è il creatore di MUI) las family.class è la classe di base per tutti quegli oggetti capaci di gestire liste di "oggetti figli". E se ci riflettiamo un menu ha nelle sue voci e nei suoi sottomenu, figuratamente, dei figli.
Tanto per iniziare MUI permette di definire una barra menu per l'applicazione o per la singola finestra. Quindi potremo avere un'applicazione composta da due finestre separate che ha due menustrip separate.
Un altro attributo fondamentale per le menustrip è MUIA_Menustrip_Enabled: booleano. Se settato a true la barra menu è attiva (enabled) altrimenti risulta disattivata.
Questo viene stabilito in fase di creazione della menustrip usando i seguenti attributi:
MUIA_Application_Menustrip
MUIA_Window_Menustrip
La prima, come si intuisce creerà una barra menu globale all'applicazione mentre la seconda riga creerà una barra menu relativa alla singola finestra nella quale sarà referenziata.
In rebulator ho usato la MUIA_Application_Menustrip ma vale anche per la MUIA_Window_Menustrip.
La riga
MUIA_Application_Menustrip, (IPTR) (MenustripObject,
crea le basi dell'oggetto MenuStrip.
Nello specifico MenuStripObject è una define (contenuta come al solito in mui.h).
Riporto di seguito le quattro define che riguardano i menu
#define MenustripObject MUI_NewObject(MUIC_Menustrip
#define MenuObject MUI_NewObject(MUIC_Menu
#define MenuObjectT(name) MUI_NewObject(MUIC_Menu,MUIA_Menu_Title,name
#define MenuitemObject MUI_NewObject(MUIC_Menuitem