Byla vydána nová verze 25.12.6 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Opravena je řada zranitelností v základních síťových službách, které jsou ve výchozím nastavení aktivní a které lze zneužít na dálku. Důrazně je doporučena aktualizace.
Český projekt mapSTL.com promění vybrané místo na světě ve 3D mapu pro tisk, včetně měst, kopců a hor. Vytištěnou mapu můžete také pověsit na zeď jako obraz. STL i barevný 3MF stáhnete zdarma a bez registrace. Vyzkoušejte své oblíbené místo a podělte se o zpětnou vazbu.
Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 7. a 8. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.
Po 9 týdnech vývoje od vydání Linuxu 7.2 oznámil Linus Torvalds vydání Linuxu 7.3. Podrobný přehled novinek a vylepšení na Linux Kernel Newbies nebo LWN.net: první a druhá polovina začleňovacího okna.
Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).
Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.
O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.
Snažím se napsat "visťácké" menu pro gnome. Zatím pracuji na tlačítku, ale nedaří se mi ho zobrazit v panelu. Když kód zkompiluju jako normální aplikaci, tak se obrázek tlačítka zobrazí, když ho zkompiluju jako applet, tak se na panel přidá akorát tečka - jediný pixel, představující můj applet. Neví někdo, co je ještě třeba udělat?
#include <string.h>
#include <gtk/gtk.h>
#include <panel-applet.h>
#define START_PREFIX "/home/jarda/.themes/WE Ergo/gtk-2.0/PanelMenu/WE Ergo/"
#define START_NORMAL START_PREFIX "start-here.png"
#define START_HOVER START_PREFIX "start-here-glow.png"
#define START_PRESS START_PREFIX "start-here-depressed.png"
class PanelButton
{
GtkWidget* eventBox;
GtkWidget* image;
bool hover;
bool pressed;
public:
PanelButton()
{
eventBox = gtk_event_box_new();
image = gtk_image_new_from_file(START_NORMAL);
gtk_container_add(GTK_CONTAINER(eventBox), image);
}
~PanelButton()
{
}
GtkWidget* mainWidget() const { return eventBox; }
};
static void applet_destroy(GtkWidget *widget, gpointer *ptr)
{
PanelButton *button = (PanelButton*)ptr;
delete button;
}
// #define __TEST
#ifndef __TEST
static gboolean init_applet(PanelApplet *applet, const gchar *iid, gpointer data)
{
if (strcmp(iid, "OAFIID:Example") != 0)
{
return 0;
}
PanelButton* button = new PanelButton();
gtk_container_add(GTK_CONTAINER(applet), button->mainWidget());
g_signal_connect(G_OBJECT(applet), "destroy", G_CALLBACK(applet_destroy), button);
gtk_widget_show_all(GTK_WIDGET(applet));
return 1;
}
PANEL_APPLET_BONOBO_FACTORY("OAFIID:WEErgoMenu", PANEL_TYPE_APPLET, "WE Ergo Menu", "0", init_applet, NULL)
#else
int main(int argc, char **argv)
{
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
PanelButton* button = new PanelButton();
gtk_container_add(GTK_CONTAINER(window), button->mainWidget());
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(applet_destroy), button);
gtk_widget_show_all(GTK_WIDGET(window));
gtk_main();
return 0;
}
#endif
resize?
Tiskni
Sdílej: