GIMP 3.0 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
Od 6. do 19. dubna proběhne volba vedoucího projektu Debian (DPL, Wikipedie) na další funkční období. Kandidují Gianfranco Costamagna, Julian Andres Klode, Andreas Tille a Sruthi Chandran.
Korespondenční seminář z programování (KSP) pražského Matfyzu pořádá i letos jarní soustředění pro začátečníky. Zváni jsou všichni středoškoláci a starší základoškoláci, kteří se chtějí naučit programovat, lépe uvažovat o informatických úlohách a poznat nové podobně smýšlející kamarády. Úplným začátečníkům bude určen kurz základů programování a kurz základních algoritmických dovedností, pokročilejším nabídneme různorodé
… více »Joe Brockmeier z Linux Weekly News vyzkoušel různé forky webového prohlížeče Mozilla Firefox: především GNU IceCat, Floorp, LibreWolf a Zen. V článku shrnuje, v čem se liší od výchozí konfigurace Firefoxu, co mají za vlastní funkcionalitu, jak a kým jsou udržované atd.
Byl vydán Debian 12.10, tj. desátá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Byla vydána nová verze 4.5 svobodného notačního programu MuseScore (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Byla vydána nová verze 8.6.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2025. Na programu je celá řada zajímavých přednášek a workshopů. Vstup je zdarma. Přednášky lze sledovat i online na YouTube.
Byla vydána nová verze 2.49.0 distribuovaného systému správy verzí Git. Přispělo 89 vývojářů, z toho 24 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Premiér Petr Fiala (ODS) dnes na síti X vyloučil, že by za jeho vlády mohla začít platit vyhláška, podle níž by poskytovatelé internetového připojení měli uchovávat adresy internetových stránek, na které se lidé připojují.
Ahoj,
pri click na element chci zavolat metodu
OnClick_.
Nevite jak zjednodusit ten zapis
.click (...)
Diky.
function Frm_Login (element)
{
$(element).click ( function (frm) {
return function () { frm.OnClick_(); };
}(this));
};
Frm_Login.prototype.OnClick_ = function ()
{
/* Nejake operace. */
};
function Frm_Login (element) { $(element).click ( function (frm) { return frm.OnClick_; }(this)); };
Zkousim takovou "okenni" aplikaci, ktera by bezela v internetovych prohlizecich.
Pomoci knihovny dhtmlx vytvarim okna (formulare). Na test treba Frm_Test.
var okno1 = new Frm_Test ();
var okno2 = new Frm_Test ();
A potrebuju aby pri stisku daneho tlacitka na formulari se zavolala metoda
daneho objektu. Tak mi to prislo podobne jako v desktop aplikacich.
S JS zacinam takze mozna to je blbost. Uvidim casem.
Tady je cely priklad:
function Geozone_Frm_Login (ownerWS)
{
/**
* PRIVATE
*/
var mThis = this;
var mWin;
var mCtlLogin;
var mBtnLogin;
var mOwnerWS = ownerWS;
/**
* PROPERTIES
*/
this.BtnLogin = function () { return mBtnLogin; };
this.Win = function () { return mWin; };
this.CtlLogin = function () { return mCtlLogin; };
this.OwnerWs = function () { return mOwnerWS; };
/**
* CONSTRUCTOR
*/
/* Vytvorime sebe. dhtmlxWindow. */
mWin = MV7.Dhtmlx ().CreateWindow ("FrmLogin" + MV7.UId (), 0, 0, 325, 125, 'Prihlaseni');
/* Prusvitnost. */
$(mWin).css ({'opacity' : '.90'});
/* Tlacitka formu. */
mWin.button('close').hide ();
mWin.button('minmax1').hide ();
mWin.button('park').hide ();
/* Umisteni. */
mWin.denyResize ();
mWin.center ();
/* Prvek Login */
mCtlLogin = new Geozone_Ctl_Login ();
mCtlLogin.Position (5, 5);
mBtnLogin = new MV7_Widget_Button ('Prihlasit');
mBtnLogin.Geometry (225, 70, 90, 30);
$(mBtnLogin.Ele ()).click (function () {
mThis.BtnLoginOnClick_ ();
});
/* Nahozeni prvku na form. */
mWin.attachObject (mCtlLogin.Ele ());
mWin.appendObject (mBtnLogin.Ele ());
};
Geozone_Frm_Login.prototype.BtnLoginOnClick_ = function ()
{
var mThis = this;
this.Win ().progressOn ();
$(this.BtnLogin ().Ele ()).attr ('disabled', 'disabled');
data = this.CtlLogin ().GetData ();
MV7.Log ().Trace ('name: ' + data.name + '; pass: ' +data.pass);
this.OwnerWs ().LoginTest (data.name, data.pass,
function (recv) {
mThis.LoginTestOnSuccess_ (recv);
},
function (obj)
{
return function (a, b) {obj.LoginTestOnError_ (a, b); };
}(this)
);
/*
function (obj)
{
return function (recv) { obj.LoginTestOnSuccess_ (recv); };
}(this),
*/
};
/**
* Volana po uspesnem zavolani WebSluzby Logintest.
* @param recv
* @return
*/
Geozone_Frm_Login.prototype.LoginTestOnSuccess_ = function (recv)
{
var res;
res = this.OwnerWs ().LoginTestResult (recv);
MV7.Log ().Trace ('ReturnCode:' + res.ReturnCode);
};
Geozone_Frm_Login.prototype.LoginTestOnError_ = function (a, b)
{
MV7.Log ().Info ('LoginTestOnError_' + a + b);
};
qooxdoo urcite vyzkousim.
Komplet strasne nebo snad jen nektere konstrukce ?
No mne pripada, ze v JS jde pouzit styl modul (podobne C) i objekt (C++,C#).
Modul soubor js podobny souboru v C:
qx.Class.define("myNamespace.A", { // Dědičnost. extend: qx.core.Object, // Konstruktor construct: function() { // Něco jako v jave super(), volání konstruktoru třídy, kterou rozšiřujeme (extend) this.base(arguments); // Něco ... }, members: { // metody, v js je všecho jako virtual v C++:) tell: function() { alert("myNamespace.A.tell()"); } } }); qx.Class.define("myNamespace.B", { // Dědičnost. extend: myNamespace.A, // Konstruktor construct: function() { // Něco jako v jave super(), volání konstruktoru třídy, kterou rozšiřujeme (extend) this.base(arguments); // Něco ... }, members: { // no a tady si tu metodu reimplementujeme tell: function() { // zavolá metodu tell z myNamespace.A this.base(arguments); // další kód... alert("myNamespace.B.tell()"); } } });Viz dokumentace Přijde mi to celkem čisté (na javascript až moc:) ). Qooxdoo umí i interfaces, mixins, properties, události, atd:)
taky mam s qooxdoo asi dvoulete zkusenosti, neni to uplne spatne, ale jak rikas neni to uplne lightweight.. jinak kdyz jsme migrovali z 0.6.x na 0.7.3 tak to byl docela porod a ted uz je 0.8, do cehoz jsme se radsi ani nepousteli - nase aplikace ma cca 40k radku ;]
Na ukazku narychlo splacnuta trida:qx.Class.define("b.tabview.ButtonFoo", { extend : qx.ui.pageview.tabview.Button, construct : function(title) { this.base(arguments, title); this.setAppearance("tab-view-button-Foo"); this.addEventListener('click', this.bar, this); }, members : { prop1 : 'OMG', foo : function(blah) { return blah.roflmao(); }, bar : function(e) { alert(e.getTarget().getLabel()); } });API
Po precteni clanku na root zdrojak sem to upravil takhle.
function Frm_Login (element)
{
var this_ = this;
$(element).click ( function () {
this_.OnClick_();
});
};
Frm_Login.prototype.OnClick_ = function ()
{
/* Nejake operace. */
};
$(element).click ( function () { this_.OnClick_(); });by mělo jít ještě trochu zjednodušit, asi tak na
$(element).click ( this_.OnClick_ );To vyplývá z toho, jak v jQuery funguje
click
: jako parametr dostane funkci, kterou zavolá při kliknutí na element. V původní variantě vytváříte anonymní funkci, která teprve zavolá tu, co chcete. Ale protože nic jiného se v ní nedělá, můžete funkci click
předat rovnou tu funkci, kterou potřebujete zavolat.
$(element).click ( this_.OnClick_ );
this
trochu šaškuje, jak já v tom pravidelně nepracuju a znám to jenom povrchně, tak jsem na to zapomněl. Ale na principu to nic nemění.
Tiskni
Sdílej: