Kaip jau yra įprasta, parašysime pirmąją C++ kalba programą
BeOS aplinkai, kuri formoje (lange) parašys tekstą "Sveikas,
pasauli!" (pasinaudosime Eric Shepherd'o pavyzdžiu).
Programos kodas:
-------------------------------------
//
// Sveikas, pasauli! 2000
// Copyright 1998, Be Incorporated
// Autorius: Eric Shepherd
//
#include <Application.h>
#include <Window.h>
#include <View.h>
//
// HelloView klasė (class)
//
// Ši klasė apibrėžia objektą vaizdas (view),
// kuriame parašysime "Sveikas, pasauli!" tekstą
//
class HelloView : public BView
{
public:
HelloView(BRect frame); // Vaizdo konstruktoriaus apibrėžimas
virtual void Draw(BRect updateRect); // Vaizdo piešimo procedūros
apibrėžimas
};
//
// HelloView::HelloView
//
// Vaizdo (view) konstruktorius, kuriame rašysime
// Kaip matote, jis nieko daug nedaro,
// mes tik nurodome konstantų B_FOLLOW_ALL_SIDES ir B_WILL_DRAW
// pagalba jo tipą.
//
HelloView::HelloView(BRect frame): BView(frame, "HelloView", B_FOLLOW_ALL_SIDES, B_WILL_DRAW)
{
}
//
// HelloView::Draw
//
// Ši procedūra bus iškviečiama, kai
// vaidui reikės persipaišyti, kadangi
// mes nurodėme B_WILL_DRAW konstantą konstruktoriuje.
//
// Ploteliu updateRect, mes nurodome kokią vaizdo dalį
// reikia perpaišyti.
// Dažniausiai to nereikia nurodyti, bet tai pagreitina
// programos darbą.
//
void HelloView::Draw(BRect updateRect)
{
MovePenTo(BPoint(20,75)); // Perkeliame į tam tikrą
formos vietą "pieštuką"
DrawString("Sveikas, pasauli"); // Rašome tekstą
"Sveikas, pasauli!"
}
//
// HelloWindow klasė (class)
//
// Ši klasė apibrėžia programos pagrindinį langą.
//
class HelloWindow : public BWindow
{
public:
HelloWindow(BRect frame); // Formos (lango) konstruktoriaus apibrėžimas
virtual bool QuitRequested(); // Pranešimo programai
"Baigti darbą" apdorojimo f-ja.
};
//
// HelloWindow::HelloWindow
//
// Pagrindinės formos (lango) konstruktorius,
// kuriame rašysime tekstą.
//
HelloWindow::HelloWindow(BRect frame): BWindow(frame, "Hello World", B_TITLED_WINDOW, B_NOT_RESIZABLE|B_NOT_ZOOMABLE)
{
AddChild(new HelloView(Bounds())); // Į langą "įstatome"
vaizdą (tuo pačiu metu ir jį sukuriame)
Show(); // Parodome langą
}
//
// HelloWindow::QuitRequested
//
// Kada programos langas yra uždaromas
// (galbūt vartotojas paspaudė lango uždarymo mygtuką arba kitu būdu),
// ši funkcija bus iškviesta.
// Čia galima įrašyti reikalingą papildomą programinį kodą,
// jei norime apdoroti tokį vartotojo pasirinkimą
// (pvz. paklausti ar vartotojas ištikrųjų nori tai daryti).
//
// Šiuo atveju, leisime sistemai uždaryti pagrindinį programos langą,
// t.y. baigsime darbą su programa.
//
bool HelloWindow::QuitRequested()
{
be_app->PostMessage(B_QUIT_REQUESTED); // siunčiame BeOS
sistemai pranešimą apie programos darbo baigimą
return true;
}
//
// HelloApp klasė (class)
//
// Ši klasė sukuriama iš BApplication klasės ir,
// apibrežia mūsų sukurtąją programą.
//
class HelloApp : public BApplication
{
public:
HelloApp(); // programos konstruktorius
private:
HelloWindow *theWindow; // rodyklė į programos langą
};
//
// HelloApp::HelloApp
//
// Programos konstruktorius. Jis sukurs programos langą.
//
HelloApp::HelloApp(): BApplication("application/x-vnd.Be-HelloWorld")
{
BRect windowRect; // kintamasis, skirtas apibrėžti lango
koordinatę ir dydį
windowRect.Set(50,50,200,200); // nustatome lango koordinatę ir
dydį
theWindow = new HelloWindow(windowRect); // sukuriame langą
}
//
// main
//
// Ši f-ja sukuria pačią programą ir sunaikina, kai ši baigia darbą.
//
int main(void)
{
HelloApp *theApp; // Rodyklė į mūsų programą
theApp = new(HelloApp); // Sukuriame programą
theApp->Run(); // Pradedame programos darbą ir laukiame kol ji
baigs darbą
delete theApp; // Sunaikiname programą ir atlaisviname sistemos
atmintį
}
-------------------------------------
Kitus programavimo pavyzdžius galite pasižiūrėti
čia...

|