Portál AbcLinuxu, 6. května 2025 20:09
Stále mě ještě nepřestalo bavit pracovat na Toolkitu. Dnes jsem se definitivně rozhodl, že nebude defaultně vytvořená statická knihovna, ale jen dynamická. Velikost knihovny je zatím 276 kB (překládáno s parametrem -fPIC
). Defaultně jí nebudu stripovat, ale bude možné to udělat příkazem make strip
. Po stripnutí má nějakých 70 kB. configure
skriptu bude možné předat parametr --enable-static
. To bude mít za následek i vytvoření statické knihovny.
Tak a teď k tomu stavu Toolkitu. Mám zatím dokončenu implementaci jen těchto widgetů:
Dále jsou dokončeny třídy AnsiString, WideString a UnicodeString s možností konverze mezi jednotlivými znakovými sadami nebo kódováními, třídy pro čtení a zápis souborů (File, InputFile, OutputFile) a nakonec třídy Array a Application.
Následuje zdrojový kód (pro ukázku), který je již opravdu přeložitelný (ten posledně byl jen návrh). Nejsou v něm ukázány všechny dosavadně implementované možnosti Toolkitu, spíš takové minimum. Je to prostě jen ukázka.
#include <Toolkit/Application.h> #include <Toolkit/Window.h> #include <Toolkit/Label.h> Toolkit::Application *app; class MainWindow: public Toolkit::Window{ public: MainWindow() { setTitle( app->getName() ); setDefaultSize( 500, 480 ); new Toolkit::Label( L"Hello world!\nHlavní okno", this ); } ~MainWindow() { app->quit(0); } }; class ChildWindow: public Toolkit::Window{ public: ChildWindow() { setDefaultSize( 400, 250 ); setTitle( L"Modální dialog" ); new Toolkit::Label( L"Hello world!\nModální okno", this ); } ~ChildWindow() { } }; MainWindow *mainWindow; ChildWindow *childWindow; int main( int argc, char **argv ) { app = new Toolkit::Application( &argc, &argv ); app->init( L"JXP Commander" ); mainWindow = new MainWindow; mainWindow->showAll(); childWindow = new ChildWindow; childWindow->setTransientFor(mainWindow); childWindow->setSkipTaskbarHint(true); childWindow->setModal(true); childWindow->showAll(); return app->run(); }
Update: Jedna výborná zpráva - glib obsahuje konverzní funkce pro řetězce používající iconv. Licence tedy zůstává BSD.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.